Creación y uso de buckets de Amazon S3 - AWS SDK for JavaScript

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación y uso de buckets de Amazon S3


                        JavaScript code example that applies to Node.js execution

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

En este ejemplo, se utiliza una serie de módulos 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 Node.js usan 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:

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:

Configuración del SDK

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

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 Service, cree unAWS.S3objeto de servicio. Llame a lalistBucketsdel objeto de servicio de Amazon S3 para recuperar una lista de sus buckets de. 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 muestra se puede encontrar aquí en GitHub.

Creación del bucket de Amazon S3

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 a lacreateBucketdel objeto de servicio de Amazon S3, incluido el nombre del bucket recién creado. 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 muestra se puede encontrar aquí en GitHub.

Carga de un archivo en un bucket de Amazon S3

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 a lauploaddel 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 muestra se puede encontrar aquí en GitHub.

Publicación de objetos en un bucket de Amazon S3

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 a lalistObjectsdel 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 muestra se puede encontrar aquí en GitHub.

Eliminación de un bucket de Amazon S3

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 a lacreateBucketdel 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 muestra se puede encontrar aquí en GitHub.