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

Anunciamos el próximo fin del soporte para AWS SDK for JavaScript v2. Se recomienda que migre a AWS SDK for JavaScript v3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

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 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:

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

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

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

Obtención de listas 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 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.

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