Utilisation d'AWS SDK for Java avec Amazon S3 Glacier - Amazon S3 Glacier

Cette page s'adresse uniquement aux clients existants du service S3 Glacier utilisant Vaults et l'API REST d'origine datant de 2012.

Si vous recherchez des solutions de stockage d'archives, nous vous conseillons d'utiliser les classes de stockage S3 Glacier dans Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive. Pour en savoir plus sur ces options de stockage, consultez les sections Classes de stockage S3 Glacier et Stockage de données à long terme à l'aide des classes de stockage S3 Glacier dans le guide de l'utilisateur Amazon S3. Ces classes de stockage utilisent l'API Amazon S3, sont disponibles dans toutes les régions et peuvent être gérées au sein de la console Amazon S3. Ils offrent des fonctionnalités telles que l'analyse des coûts de stockage, Storage Lens, des fonctionnalités de sécurité, notamment de multiples options de cryptage, etc.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation d'AWS SDK for Java avec Amazon S3 Glacier

L'AWS SDK for Java fournit des API de bas et haut niveau pour Amazon S3 Glacier (S3 Glacier), comme décrit dans Utilisation des AWS kits SDK avec Amazon S3 Glacier. Pour en savoir plus sur le téléchargement d'AWS SDK for Java, consultez Kit SDK Amazon pour Java.

Note

L'AWS SDK for Java fournit des clients thread-safe pour accéder à S3 Glacier. En tant que bonne pratique, vos applications doivent créer un seul client et le réutiliser entre les threads.

Utilisation de l'API de bas niveau

La classe AmazonGlacierClient de bas niveau fournit toutes les méthodes correspondant aux opérations REST sous-jacentes de S3 Glacier (Informations de référence sur les API pour Amazon S3 Glacier). Lorsque vous appelez l'une de ces méthodes, vous devez créer un objet de demande correspondant et fournir un objet de réponse dans lequel la méthode peut renvoyer la réponse de S3 Glacier à l'opération.

Par exemple, la classe AmazonGlacierClient fournit la méthode createVault pour créer un coffre. Cette méthode est mappée à l'opération REST de création de coffre sous-jacente (consultez la section Création de coffre (PUT vault)). Pour utiliser cette méthode, vous devez créer des instances de l'objet CreateVaultResult qui reçoit la réponse de S3 Glacier, comme l'illustre l'extrait de code Java suivant :

AmazonGlacierClient client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); CreateVaultRequest request = new CreateVaultRequest() .withAccountId("-") .withVaultName(vaultName); CreateVaultResult result = client.createVault(createVaultRequest);

Tous les exemples de bas niveau de ce manuel utilisent ce modèle.

Note

Le segment de code précédent spécifie la valeur AccountID lors de la création de la demande. Toutefois, lors de l'utilisation du kit AWS SDK for Java, il n'est pas nécessaire de spécifier la valeur AccountId dans la demande, par conséquent, aucun des exemples de bas niveau illustrés dans ce guide ne définit cette valeur. La valeur de AccountId est l'ID de Compte AWS. Cette valeur doit correspondre à l'ID de Compte AWS associé aux informations d'identification utilisées pour signer la demande. Vous pouvez spécifier l'ID de Compte AWS ou un « - » facultatif. Dans ce cas, S3 Glacier utilise l'ID de Compte AWS associé aux informations d'identification utilisées pour signer la demande. Si vous spécifiez votre ID de compte, n'incluez pas les traits d'union. Lorsque vous utilisez le kit AWS SDK for Java, si vous ne fournissez pas l'ID de compte, la bibliothèque définit l'ID de compte sur '-'.

Utilisation de l'API de haut niveau

Pour simplifier davantage le développement de vos applications, le kit AWS SDK for Java fournit la classe ArchiveTransferManager qui implémente une abstraction de plus haut niveau pour certaines des méthodes de l'API de bas niveau. Il fournit des méthodes utiles, telles que les méthodes upload et download, pour les opérations d'archivage.

Par exemple, l'extrait de code Java suivant utilise la méthode de haut niveau upload pour charger une archive.

String vaultName = "examplevault"; String archiveToUpload = "c:/folder/exampleArchive.zip"; ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); String archiveId = atm.upload(vaultName, "Tax 2012 documents", new File(archiveToUpload)).getArchiveId();

Notez que les opérations que vous effectuez s'appliquent à la région AWS que vous avez spécifiée lors de la création de l'objet ArchiveTransferManager. Si vous ne spécifiez pas de région AWS, AWS SDK for Java définit us-east-1 comme région AWS par défaut.

Tous les exemples de haut niveau de ce manuel utilisent ce modèle.

Note

La classe ArchiveTransferManager de haut niveau peut être construite avec une instance AmazonGlacierClient ou AWSCredentials.

Exécution d'exemples Java pour Amazon S3 Glacier en utilisant Eclipse

Pour démarrer avec les exemples de code Java, la méthode la plus simple consiste à installer le kit AWS Toolkit for Eclipse le plus récent. Pour plus d'informations sur l'installation ou la mise à jour de la boîte à outils la plus récente, accédez à la page http://aws.amazon.com/eclipse. Les tâches suivantes vous guident à travers la création et le test des exemples de code Java fournis dans cette section.

1

Créez un profil d'informations d'identification par défaut pour vos informations d'identification AWS, comme indiqué dans la rubrique Spécification des informations d'identification AWS dans le kit SDK Amazon pour Java de la documentation AWS SDK for Java.

2

Créez un projet Java AWS dans Eclipse. Ce projet est préconfiguré avec le kit AWS SDK for Java.

3

Copiez le code dans la section que vous êtes en train de consulter et collez-le dans votre projet.

4

Mettez à jour le code en fournissant les données requises. Par exemple, si vous chargez un fichier, indiquez le chemin du fichier et le nom du compartiment.

5

Exécutez le code. Vérifiez si l'objet a été créé à l'aide de AWS Management Console. Pour plus d'informations sur la AWS Management Console, accédez à la page http://aws.amazon.com/console/.

Définition du point de terminaison

Par défaut, le kit AWS SDK for Java utilise le point de terminaison https://glacier.us-east-1.amazonaws.com. Vous pouvez définir le point de terminaison de manière explicite, comme illustré dans les extraits de code Java suivants.

L'extrait de code suivant montre comment définir le point de terminaison sur la région USA Ouest (Oregon) (us-west-2) dans l'API de bas niveau.

client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com");

L'extrait de code suivant montre comment définir le point de terminaison sur la région USA Ouest (Oregon) dans l'API de haut niveau.

glacierClient = new AmazonGlacierClient(credentials); sqsClient = new AmazonSQSClient(credentials); snsClient = new AmazonSNSClient(credentials); glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com"); sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com"); snsClient.setEndpoint("sns.us-west-2.amazonaws.com"); ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);

Pour obtenir la liste des régions AWS et des points de terminaison pris en charge, consultez Accès à Amazon S3 Glacier.