Créer la méthode SAS pour le conteneur

Nous allons utiliser la méthode d’autorisation par signature d’accès partagé, ou SAS, pour interagir avec le conteneur de stockage Azure.
Accédez au conteneur dans le compte de stockage, cliquez sur les points de suspension et sélectionnez l’option Générer SAS comme illustré dans la capture d’écran.
sas-on-container
Veillez à spécifier les autorisations et la date de fin appropriées, comme indiqué dans la capture d’écran ci-dessous, puis cliquez sur Générer un jeton SAS et une URL. Copiez le jeton et l’URL Blob SAS. Nous utiliserons ces deux valeurs pour effectuer nos appels HTTP.
shared-access-keys

Fournir le jeton Blob SAS et l’URI de stockage

Pour rendre le code plus générique, les deux propriétés peuvent être configurées à l’aide de la configuration OSGi, comme illustré ci-dessous.   aemformstutorial est le nom du compte de stockage et formsubmissions est le conteneur dans lequel les données seront stockées.
Assurez-vous que « / » se trouve à la fin de l’URI de stockage et que le jeton SAS commence par « ? ».
osgi-configuration

Créer une requête PUT

L’étape suivante consiste à créer une requête PUT pour stocker les données de formulaire envoyées dans le stockage Azure. Chaque envoi de formulaire doit être identifié par un ID d’objet blob unique. L’identifiant d’objet blob unique est généralement créé dans votre code et inséré dans l’URL de la requête PUT.
Voici l’URL partielle de la requête PUT. aemformstutorial est le nom du compte de stockage, formsubmissions est le conteneur dans lequel les données seront stockées avec un identifiant d’objet blob unique. Le reste de l’URL reste le même.
https://aemformstutorial.blob.core.windows.net/formsubmissions/blobid/sastoken
La fonction suivante est écrite pour stocker les données de formulaire envoyées dans le stockage Azure à l’aide d’une requête PUT. Notez l’utilisation du nom du conteneur et de l’UUID dans l’URL. Vous pouvez créer un service OSGi ou un servlet Sling à l’aide de l’exemple de code répertorié ci-dessous et stocker les envois de formulaire dans le stockage Azure.

 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;

}

Vérifier les données stockées dans le conteneur

form-data-in-container

Tester la solution

Page précédenteEnvoyer des e-mails avec SendGrid
Page suivanteRenseigner le formulaire avec Azure Blob

Experience Manager