

La AWS SDK pour JavaScript v2 est arrivée end-of-support. Nous vous recommandons de migrer vers la [AWS SDK pour JavaScript version 3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter cette [annonce](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

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
<a name="s3-example-configuring-buckets"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Cet exemple de code Node.js présente :**
+ Comment configurer les autorisations de partage des ressources cross-origine (CORS) d'un compartiment.

## Scénario
<a name="s3-example-configuring-buckets-scenario"></a>

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 :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketCors-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketCors-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketCors-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketCors-property)

Pour plus d'informations sur l'utilisation de la configuration CORS avec un compartiment Amazon S3, consultez [Cross-Origin Resource Sharing (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) dans le guide de l'utilisateur d'*Amazon Simple Storage Service*.

## Tâches prérequises
<a name="s3-example-configuring-buckets-prerequisites"></a>

Pour configurer et exécuter cet exemple, vous devez d'abord :
+ Installez Node.js. Pour plus d'informations sur l'installation de Node.js, consultez le [site web de Node.js](https://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier d'informations d'identification partagé, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Configuration du kit SDK
<a name="s3-example-configuring-buckets-configure-sdk"></a>

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
<a name="s3-example-configuring-buckets-get-cors"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_getcors.js).

## Définition d'une configuration CORS de compartiment
<a name="s3-example-configuring-buckets-put-cors"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_setcors.js).