Buscar dados do armazenamento do Azure
Este artigo mostra como preencher um formulário adaptável com os dados armazenados no armazenamento do Azure.
Pressupõe-se que você tenha armazenado os dados do formulário adaptável no armazenamento do Azure e agora queira preencher previamente seu formulário adaptável com esses dados.
Criar solicitação GET
A próxima etapa é gravar o código para buscar os dados do Armazenamento do Azure usando a blobID. O código a seguir foi gravado para buscar os dados. O URL foi construído usando os valores sasToken e storageURI da configuração OSGi e o blobID passado para a função getBlobData
@Override
public String getBlobData(String blobID) {
String sasToken = azurePortalConfigurationService.getSASToken();
String storageURI = azurePortalConfigurationService.getStorageURI();
log.debug("The SAS Token is " + sasToken);
log.debug("The Storage URL is " + storageURI);
String httpGetURL = storageURI + blobID;
httpGetURL = httpGetURL + sasToken;
HttpGet httpGet = new HttpGet(httpGetURL);
org.apache.http.impl.client.CloseableHttpClient httpClient = HttpClientBuilder.create().build();
CloseableHttpResponse httpResponse = null;
try {
httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
String blobData = EntityUtils.toString(httpEntity);
log.debug("The blob data I got was " + blobData);
return blobData;
} catch (ClientProtocolException e) {
log.debug("Got Client Protocol Exception " + e.getMessage());
} catch (IOException e) {
log.debug("Got IOEXception " + e.getMessage());
}
return null;
}
Quando um formulário adaptável é renderizado com um parâmetro guid no url, o componente de página personalizado associado ao modelo busca e preenche o formulário adaptável com os dados do armazenamento do Azure.
Este é o código na jsp do componente Página associado ao modelo
com.aemforms.saveandfetchfromazure.StoreAndFetchDataFromAzureStorage azureStorage = sling.getService(com.aemforms.saveandfetchfromazure.StoreAndFetchDataFromAzureStorage.class);
String guid = request.getParameter("guid");
if(guid!=null&&!guid.isEmpty())
{
String dataXml = azureStorage.getBlobData(guid);
slingRequest.setAttribute("data",dataXml);
}
Testar a solução
-
Importe o modelo de formulário adaptável personalizado e o componente de página associado ao modelo
-
Verifique se os dados estão armazenados no contêiner de armazenamento do Azure de sua escolha. Copie a ID do blob.
-
Visualize o formulário BankAccount e especifique a ID Blob como um parâmetro guid na URL para o formulário a ser preenchido com os dados do armazenamento do Azure