Configuration 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.

Configuration de compartiments Amazon S3

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment configurer les autorisations de partage des ressources cross-origine (CORS) d'un compartiment.

Scénario

Dans cet exemple, une série de modules Node.js est utilisée pour répertorier vos compartiments Amazon S3 et configurer le partage CORS ainsi que la journalisation des compartiments. Les modules Node.js utilisent le SDK pour configurer un compartiment Amazon S3 sélectionné JavaScript à l'aide des méthodes suivantes de la classe client Amazon S3 :

Pour plus d'informations sur l'utilisation de la configuration CORS avec un compartiment Amazon S3, consultez Cross-Origin Resource Sharing (CORS) dans le guide de l'utilisateur d'Amazon Simple Storage Service.

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

Extraction de la configuration CORS d'un compartiment

Créez un module Node.js nommé s3_getcors.js. Le module prend un seul argument de ligne de commande pour spécifier le compartiment de la configuration CORS que vous souhaitez. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service AWS.S3.

Le seul paramètre à passer est le nom du compartiment sélectionné lorsque vous appelez la méthode getBucketCors. Si le compartiment possède actuellement une configuration CORS, cette configuration est renvoyée par Amazon S3 en tant que CORSRules propriété du data paramètre transmis à la fonction de rappel.

Si le compartiment sélectionné ne dispose pas de configuration CORS, ces informations sont retournées à la fonction de rappel dans le paramètre error.

// 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" }); // Set the parameters for S3.getBucketCors var bucketParams = { Bucket: process.argv[2] }; // call S3 to retrieve CORS configuration for selected bucket s3.getBucketCors(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else if (data) { console.log("Success", JSON.stringify(data.CORSRules)); } });

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

node s3_getcors.js BUCKET_NAME

Cet exemple de code se trouve ici sur GitHub.

Définition d'une configuration CORS de compartiment

Créez un module Node.js nommé s3_setcors.js. Le module prend plusieurs arguments de ligne de commande: le premier spécifie le compartiment de la configuration CORS que vous souhaitez définir. D'autres arguments énumèrent les méthodes HTTP (POST, GET, PUT, PATCH, DELETE, POST) que vous souhaitez autoriser pour le compartiment. Configurez le kit SDK comme illustré précédemment.

Créez un objet de service AWS.S3. Ensuite, créez un objet JSON pour contenir les valeur de la configuration CORS selon les besoins de la méthode putBucketCors de l'objet de service AWS.S3. Spécifiez "Authorization" pour la valeur AllowedHeaders et "*" pour la valeur AllowedOrigins. Tout d'abord, définissez la valeur AllowedMethods comme un tableau vide.

Spécifiez les méthodes autorisées comme paramètres de ligne de commande pour le module Node.js, en ajoutant chacune des méthodes correspondant à l'un des paramètres. Ajoutez la configuration CORS obtenue au tableau des configurations du paramètre CORSRules. Spécifiez le compartiment que vous souhaitez configurer pour CORS dans le paramètre Bucket.

// 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 initial parameters JSON for putBucketCors var thisConfig = { AllowedHeaders: ["Authorization"], AllowedMethods: [], AllowedOrigins: ["*"], ExposeHeaders: [], MaxAgeSeconds: 3000, }; // Assemble the list of allowed methods based on command line parameters var allowedMethods = []; process.argv.forEach(function (val, index, array) { if (val.toUpperCase() === "POST") { allowedMethods.push("POST"); } if (val.toUpperCase() === "GET") { allowedMethods.push("GET"); } if (val.toUpperCase() === "PUT") { allowedMethods.push("PUT"); } if (val.toUpperCase() === "PATCH") { allowedMethods.push("PATCH"); } if (val.toUpperCase() === "DELETE") { allowedMethods.push("DELETE"); } if (val.toUpperCase() === "HEAD") { allowedMethods.push("HEAD"); } }); // Copy the array of allowed methods into the config object thisConfig.AllowedMethods = allowedMethods; // Create array of configs then add the config object to it var corsRules = new Array(thisConfig); // Create CORS params var corsParams = { Bucket: process.argv[2], CORSConfiguration: { CORSRules: corsRules }, }; // set the new CORS configuration on the selected bucket s3.putBucketCors(corsParams, function (err, data) { if (err) { // display error message console.log("Error", err); } else { // update the displayed CORS config for the selected bucket console.log("Success", data); } });

Pour exécuter l'exemple, saisissez la ligne de commande suivante, y compris une ou plusieurs méthodes HTTP comme illustré.

node s3_setcors.js BUCKET_NAME get put

Cet exemple de code se trouve ici sur GitHub.