

La versión 2 de AWS SDK para JavaScript ha llegado al final del soporte. Se recomienda que migre a [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalles e información adicionales sobre cómo realizar la migración, consulte este [anuncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Configuración de buckets de Amazon S3
<a name="s3-example-configuring-buckets"></a>

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

**Este ejemplo de código de Node.js muestra:**
+ Cómo configurar los permisos de uso compartido de recursos entre orígenes (CORS) para un bucket.

## El escenario
<a name="s3-example-configuring-buckets-scenario"></a>

En este ejemplo, se usan una serie de módulos Node.js para generar una lista de buckets de Amazon S3 y para configurar el registro de buckets y CORS. Los módulos de Node.js usan el SDK para JavaScript para configurar un bucket de Amazon S3 seleccionado utilizando estos métodos de la clase de cliente de 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)

Para obtener más información sobre cómo usar la configuración de CORS con un bucket de Amazon S3, consulte [Uso compartido de recursos entre orígenes (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) en la *Guía del usuario de Amazon Simple Storage Service*.

## Tareas previas necesarias
<a name="s3-example-configuring-buckets-prerequisites"></a>

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:
+ Instale Node.js. Para obtener más información acerca de la instalación de Node.js consulte el [sitio web de Node.js](https://nodejs.org).
+ Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información acerca de cómo crear un archivo de credenciales compartidas, consulte [Carga de credenciales en Node.js desde el archivo de credenciales compartidas](loading-node-credentials-shared.md).

## Configuración del SDK
<a name="s3-example-configuring-buckets-configure-sdk"></a>

Configure el SDK para JavaScript creando un objeto de configuración global y luego configurando la región para su código. En este ejemplo, la región está establecida en `us-west-2`.

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

## Recuperación de una configuración CORS de bucket
<a name="s3-example-configuring-buckets-get-cors"></a>

Cree un módulo de Node.js con el nombre de archivo `s3_getcors.js`. El módulo tomará un argumento de línea de comandos única para especificar el bucket cuya configuración de CORS desea. Configure el SDK como le hemos mostrado anteriormente. Cree un objeto de servicio `AWS.S3`. 

El único parámetro que necesita pasar es el nombre del bucket seleccionado al llamar al método `getBucketCors`. Si el bucket tiene actualmente una configuración CORS, Amazon S3 devuelve dicha configuración como la propiedad `CORSRules` del parámetro `data` que se pasa a la función de devolución de llamada.

Si el bucket seleccionado no tiene configuración CORS, dicha información se devuelve a la función de devolución de llamada en el parámetro `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));
  }
});
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node s3_getcors.js BUCKET_NAME
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_getcors.js).

## Configuración de CORS de bucket
<a name="s3-example-configuring-buckets-put-cors"></a>

Cree un módulo de Node.js con el nombre de archivo `s3_setcors.js`. El módulo acepta varios argumentos de línea de comandos, el primero de los cuales especifica el bucket cuya configuración CORS desea establecer. Los argumentos adicionales enumeran los métodos HTTP (POST, GET PUT, PATCH DELETE, POST) que desea permitir para el bucket. Configure el SDK como le hemos mostrado anteriormente.

 Cree un objeto de servicio `AWS.S3`. Luego cree un objeto JSON para almacenar los valores para la configuración CORS según las necesidades del método `putBucketCors` del objeto de servicio `AWS.S3`. Especifique `"Authorization"` para el valor `AllowedHeaders` y `"*"` para el valor `AllowedOrigins`. Establezca el valor de `AllowedMethods` como matriz vacía inicialmente.

Especifique los métodos permitidos como parámetros de línea de comandos en el módulo Node.js, añadiendo cada uno de los métodos que coincidan con uno de los parámetros. Añada la configuración CORS obtenida a la matriz de configuraciones contenida en el parámetro `CORSRules`. Especifique el bucket que desea configurar para CORS en el parámetro `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);
  }
});
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos que incluye uno o varios métodos HTTP, tal como se muestra.

```
node s3_setcors.js BUCKET_NAME get put
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_setcors.js).