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.

NOTE
Il codice di questo articolo non funziona con un modulo adattivo basato su componenti core.L’articolo equivalente per il modulo adattivo basato su componenti core è disponibile qui

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

recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e