Lagra formuläröverföringar i Azure Storage
I den här artikeln visas hur du gör REST-anrop för att lagra skickade AEM Forms-data i Azure Storage.
För att kunna lagra skickade formulärdata i Azure Storage måste följande steg följas.
Skapa Azure Storage-konto
Logga in på ditt Azure Portal-konto och skapa ett lagringskonto. Ange ett beskrivande namn för ditt lagringskonto, klicka på Granska och sedan på Skapa. Då skapas ditt lagringskonto med alla standardvärden. För den här artikeln har vi namngett vårt lagringskonto aemformstutorial
.
Skapa behållare
Nästa vi måste göra är att skapa en behållare för att lagra data från inskickade formulär.
Klicka på menyalternativet Behållare till vänster på sidan Lagringskonto och skapa en behållare med namnet formssubmissions
. Kontrollera att åtkomstnivån public är inställd på private
Skapa SAS i behållaren
Vi kommer att göra oss av med auktoriseringsmetoden för delad åtkomst eller SAS för att interagera med Azure Storage-behållaren.
Navigera till behållaren i lagringskontot, klicka på ellipsen och välj alternativet Generera SAS så som visas på skärmbilden
Se till att du anger rätt behörigheter och lämpligt slutdatum enligt skärmbilden nedan och klicka på Generera SAS-token och URL. Kopiera Blob SAS-token och Blob SAS url. Vi kommer att använda dessa två värden för våra HTTP-anrop
Ange Blob SAS-token och lagrings-URI
För att göra koden mer generisk kan de två egenskaperna konfigureras med OSGi-konfigurationen enligt nedan. aemformstutorial är namnet på lagringskontot, formsending är den behållare i vilken data ska lagras.
Kontrollera att du har / i slutet av lagringsURI:n och att SAS-token börjar med?
Skapa PUT-begäran
Nästa steg är att skapa en PUT-begäran om att lagra skickade formulärdata i Azure Storage. Varje formulärinlämning måste identifieras med ett unikt BLOB-ID. Det unika BLOB-ID:t skapas vanligtvis i koden och infogas i URL:en för PUT-begäran.
Följande är den partiella URL:en för begäran från PUT. aemformstutorial
är namnet på lagringskontot, formuläröverföringar är behållaren där data lagras med ett unikt BLOB ID. Resten av URL:en förblir densamma.
https://aemformstutorial.blob.core.windows.net/formsubmissions/blobid/sastoken
Följande funktion har skrivits för att lagra skickade formulärdata i Azure Storage med en PUT-begäran. Observera användningen av behållarnamnet och uuid i url:en. Du kan skapa en OSGi-tjänst eller en sling-server med exempelkoden nedan och lagra formulärskicken i Azure Storage.
public String saveFormDatainAzure(String formData) {
log.debug("in SaveFormData!!!!!" + formData);
String sasToken = azurePortalConfigurationService.getSASToken();
String storageURI = azurePortalConfigurationService.getStorageURI();
log.debug("The SAS Token is " + sasToken);
log.debug("The Storage URL is " + storageURI);
org.apache.http.impl.client.CloseableHttpClient httpClient = HttpClientBuilder.create().build();
UUID uuid = UUID.randomUUID();
String putRequestURL = storageURI + uuid.toString();
putRequestURL = putRequestURL + sasToken;
HttpPut httpPut = new HttpPut(putRequestURL);
httpPut.addHeader("x-ms-blob-type", "BlockBlob");
httpPut.addHeader("Content-Type", "text/plain");
try {
httpPut.setEntity(new StringEntity(formData));
CloseableHttpResponse response = httpClient.execute(httpPut);
log.debug("Response code " + response.getStatusLine().getStatusCode());
if (response.getStatusLine().getStatusCode() == 201) {
return uuid.toString();
}
} catch (IOException e) {
log.error("Error: " + e.getMessage());
throw new RuntimeException(e);
}
return null;
}
Verifiera lagrade data i behållaren
Testa lösningen
-
Importera den anpassade formulärmallen och sidkomponenten som är kopplad till mallen
-
Ange lämpliga värden i Azure Portal Configuration med OSGi-konfigurationskonsolen
-
Verifiera att data lagras i den Azure-lagringsbehållare du väljer. Kopiera blob-ID:t.
-
Förhandsgranska formuläret BankAccount och ange blob-ID som en GUID-parameter i URL:en för formuläret som ska fyllas i i förväg med data från Azure-lagringen