

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/).

# Creación y uso de buckets de Amazon S3
<a name="s3-example-creating-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 obtener y mostrar una lista de buckets de Amazon S3 en su cuenta.
+ Cómo crear un bucket de Amazon S3.
+ Cómo cargar un objeto en un bucket especificado.

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

En este ejemplo, se utiliza una serie de módulos de Node.js para obtener una lista de los buckets de Amazon S3 existentes, crear un bucket y cargar un archivo en un bucket especificado. Estos módulos de Node.js utilizan el SDK para JavaScript para obtener información y cargar archivos en un bucket de Amazon S3 con estos métodos de la clase de cliente de Amazon S3:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createBucket-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createBucket-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucket-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucket-property)

## Tareas previas necesarias
<a name="s3-example-creating-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-creating-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'});
```

## Visualización de una lista de buckets de Amazon S3
<a name="s3-example-creating-buckets-list-buckets"></a>

Cree un módulo de Node.js con el nombre de archivo `s3_listbuckets.js`. Configure el SDK como le hemos mostrado anteriormente. Para acceder a Amazon Simple Storage Service, cree un objeto de servicio de `AWS.S3`. Llame al método `listBuckets` del objeto de servicio de Amazon S3 para recuperar una lista de sus buckets. El parámetro `data` de la función de devolución de llamada tiene una propiedad `Buckets` que contiene una matriz de mapas para representar los buckets. Muestre la lista de buckets registrándola en la consola.

```
// 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);
  }
});
```

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

```
node s3_listbuckets.js
```

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_listbuckets.js).

## Creación del bucket de Amazon S3
<a name="s3-example-creating-buckets-new-bucket"></a>

Cree un módulo de Node.js con el nombre de archivo `s3_createbucket.js`. Configure el SDK como le hemos mostrado anteriormente. Cree un objeto de servicio `AWS.S3`. El módulo tomará un argumento de línea de comandos único para especificar un nombre para el nuevo bucket.

Añada una variable para almacenar los parámetros que se utilizan para llamar al método `createBucket` del objeto de servicio de Amazon S3, incluido el nombre del bucket que se acaba de crear. La función de devolución de llamada registra la ubicación del nuevo bucket después de que Amazon S3 lo cree correctamente.

```
// 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);
  }
});
```

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

```
node s3_createbucket.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_createbucket.js).

## Carga de un archivo en un bucket de Amazon S3
<a name="s3-example-creating-buckets-upload-file"></a>

Cree un módulo de Node.js con el nombre de archivo `s3_upload.js`. Configure el SDK como le hemos mostrado anteriormente. Cree un objeto de servicio `AWS.S3`. El módulo ocupará dos argumentos de la línea de comandos, la primera para especificar el bucket de destino y la segunda para especificar el archivo que desea cargar.

Cree una variable con los parámetros necesarios para llamar al método `upload` del objeto de servicio de Amazon S3. Proporcione el nombre del bucket de destino en el parámetro de `Bucket`. El parámetro `Key` se establece en el nombre del archivo seleccionado, que puede obtener mediante el módulo `path` de Node.js. El parámetro `Body` se establece en el contenido del archivo, que puede obtener mediante `createReadStream` del módulo `fs` de 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);
  }
});
```

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

```
node s3_upload.js BUCKET_NAME FILE_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_upload.js).

## Obtención de listas de objetos en un bucket de Amazon S3
<a name="s3-example-listing-objects"></a>

Cree un módulo de Node.js con el nombre de archivo `s3_listobjects.js`. Configure el SDK como le hemos mostrado anteriormente. Cree un objeto de servicio `AWS.S3`. 

Añada una variable para almacenar los parámetros que se utilizan para llamar al método `listObjects` del objeto de servicio de Amazon S3, incluido el nombre del bucket que se va a leer. La función de devolución de llamada registra un lista de objetos (archivos) o un mensaje de 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" });

// 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);
  }
});
```

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

```
node s3_listobjects.js
```

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_listobjects.js).

## Eliminación de un bucket de Amazon S3
<a name="s3-example-deleting-buckets"></a>

Cree un módulo de Node.js con el nombre de archivo `s3_deletebucket.js`. Configure el SDK como le hemos mostrado anteriormente. Cree un objeto de servicio `AWS.S3`. 

Añada una variable para almacenar los parámetros que se utilizan para llamar al método `createBucket` del objeto de servicio de Amazon S3, incluido el nombre del bucket que se va a eliminar. El bucket tiene que estar vacío para eliminarlo. La función de devolución de llamada registra un mensaje de éxito o de 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" });

// 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);
  }
});
```

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

```
node s3_deletebucket.js
```

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_deletebucket.js).