Hämta data från Azure-lagring

I den här artikeln visas hur du fyller i ett adaptivt formulär med data som lagras i Azure-lagringen.
Du förutsätts ha lagrat de adaptiva formulärdata i Azure-lagringsplatsen och nu vill förifylla ditt adaptiva formulär med dessa data.

NOTE
Koden i den här artikeln fungerar inte med grundläggande komponentbaserade adaptiva formulär.Motsvarande artikel för grundläggande komponentbaserad adaptiv form finns här

Skapa GET-förfrågan

Nästa steg är att skriva koden för att hämta data från Azure Storage med hjälp av blobID. Följande kod skrevs för att hämta data. URL:en konstruerades med ASToken- och storageURI-värden från OSGi-konfigurationen och det blobID som skickades till funktionen 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;
}

När ett adaptivt formulär återges med en guid-parameter i url hämtas och fylls det adaptiva formuläret med data från Azure-lagringen av den anpassade sidkomponenten som är kopplad till mallen.
Här följer koden i jsp för den sidkomponent som är associerad med mallen

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);

}

Testa lösningen

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