Recupera dati dall’archiviazione Azure
Questo articolo illustra come compilare un modulo adattivo con i dati memorizzati nell’archivio di Azure.
Si presume che i dati del modulo adattivo siano stati memorizzati nell’archivio di Azure e che ora si desideri precompilare il modulo adattivo con tali dati.
Crea richiesta GET
Il passaggio successivo consiste nel scrivere il codice per recuperare i dati dall’archiviazione di Azure utilizzando l’ID BLOB. Per recuperare i dati è stato scritto il seguente codice. L’URL è stato costruito utilizzando i valori sasToken e storageURI della configurazione OSGi e il blobID passato alla funzione 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 viene eseguito il rendering di un modulo adattivo con un parametro GUID nell’URL, il componente pagina personalizzato associato al modello recupera e popola il modulo adattivo con i dati dall’archiviazione di Azure.
Di seguito è riportato il codice nell’JSP del componente Pagina associato al modello
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);
}
Testare la soluzione
-
Importa il modello di modulo adattivo personalizzato e il componente Pagina associato al modello
-
Verifica che i dati siano archiviati nel contenitore di archiviazione Azure desiderato. Copia l’ID BLOB.
-
Visualizza l'anteprima del modulo BankAccount e specifica l'ID BLOB come parametro GUID nell'URL per il modulo da precompilare con i dati dall'archiviazione di Azure