Anunciamos
Creación y uso de buckets de Amazon S3
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:
-
Instale Node.js. Para obtener más información acerca de la instalación de Node.js consulte el sitio web de Node.js
. -
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.
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