Création et utilisation de compartiments Amazon S3 - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

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.

Création et utilisation de compartiments Amazon S3

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment obtenir et afficher une liste des compartiments Amazon S3 dans votre compte.

  • Comment créer un compartiment Amazon S3.

  • Comment charger un objet dans un compartiment spécifié.

Scénario

Dans cet exemple, une série de modules Node.js sont utilisés pour obtenir une liste des compartiments Amazon S3 existants, créer un compartiment et charger un fichier dans un compartiment spécifié. Ces modules Node.js utilisent le SDK pour JavaScript obtenir des informations et télécharger des fichiers dans un compartiment Amazon S3 en utilisant les méthodes suivantes de la classe client Amazon S3 :

Tâches prérequises

Pour configurer et exécuter cet exemple, vous devez d'abord :

Configuration du kit SDK

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est us-west-2.

// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the Region AWS.config.update({region: 'us-west-2'});

Afficher la liste des compartiments Amazon S3

Créez un module Node.js nommé s3_listbuckets.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon Simple Storage Service, créez un objet AWS.S3 de service. Appelez la listBuckets méthode de l'objet de service Amazon S3 pour récupérer la liste de vos buckets. Le paramètre data de la fonction de rappel dispose d'une propriété Buckets contenant un tableau de cartes pour représenter les compartiments. Affichez la liste des compartiments en la connectant à la console.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Call S3 to list the buckets s3.listBuckets(function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Buckets); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node s3_listbuckets.js

Cet exemple de code se trouve ici sur GitHub.

Création d’un compartiment Amazon S3

Créez un module Node.js nommé s3_createbucket.js. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service AWS.S3. Le module prend un seul argument de ligne de commande pour spécifier un nom pour le nouveau compartiment.

Ajoutez une variable contenant les paramètres utilisés pour appeler la createBucket méthode de l'objet de service Amazon S3, y compris le nom du compartiment nouvellement créé. La fonction de rappel enregistre l'emplacement du nouveau compartiment sur la console une fois qu'Amazon S3 l'a créé avec succès.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Create the parameters for calling createBucket var bucketParams = { Bucket: process.argv[2], }; // call S3 to create the bucket s3.createBucket(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Location); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node s3_createbucket.js BUCKET_NAME

Cet exemple de code se trouve ici sur GitHub.

Chargement d'un fichier dans un compartiment Amazon S3

Créez un module Node.js nommé s3_upload.js. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service AWS.S3. Le module prend deux arguments de ligne de commande : le premier pour spécifier le compartiment de destination et le deuxième pour spécifier le fichier à charger.

Créez une variable avec les paramètres nécessaires pour appeler la upload méthode de l'objet de service Amazon S3. Indiquez le nom du compartiment cible dans le paramètre Bucket. Le paramètre Key est défini sur le nom du fichier sélectionné que vous pouvez obtenir à l'aide du module path Node.js. Le paramètre Body est défini sur les contenus du fichier que vous pouvez obtenir à l'aide de createReadStream à partir du module fs Node.js.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object var s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // call S3 to retrieve upload file to specified bucket var uploadParams = { Bucket: process.argv[2], Key: "", Body: "" }; var file = process.argv[3]; // Configure the file stream and obtain the upload parameters var fs = require("fs"); var fileStream = fs.createReadStream(file); fileStream.on("error", function (err) { console.log("File Error", err); }); uploadParams.Body = fileStream; var path = require("path"); uploadParams.Key = path.basename(file); // call S3 to retrieve upload file to specified bucket s3.upload(uploadParams, function (err, data) { if (err) { console.log("Error", err); } if (data) { console.log("Upload Success", data.Location); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node s3_upload.js BUCKET_NAME FILE_NAME

Cet exemple de code se trouve ici sur GitHub.

Répertorier des objets dans un compartiment Amazon S3

Créez un module Node.js nommé s3_listobjects.js. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service AWS.S3.

Ajoutez une variable contenant les paramètres utilisés pour appeler la listObjects méthode de l'objet de service Amazon S3, y compris le nom du compartiment à lire. La fonction de rappel journalise une liste d'objets (fichiers) ou un message d'erreur.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Create the parameters for calling listObjects var bucketParams = { Bucket: "BUCKET_NAME", }; // Call S3 to obtain a list of the objects in the bucket s3.listObjects(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node s3_listobjects.js

Cet exemple de code se trouve ici sur GitHub.

Supprimer un compartiment Amazon S3

Créez un module Node.js nommé s3_deletebucket.js. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service AWS.S3.

Ajoutez une variable contenant les paramètres utilisés pour appeler la createBucket méthode de l'objet de service Amazon S3, y compris le nom du compartiment à supprimer. Pour être supprimé, le compartiment doit être vide. La fonction de rappel journalise un message de réussite ou d'échec.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Create params for S3.deleteBucket var bucketParams = { Bucket: "BUCKET_NAME", }; // Call S3 to delete the bucket s3.deleteBucket(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node s3_deletebucket.js

Cet exemple de code se trouve ici sur GitHub.