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
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:
-
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 Service, cree unAWS.S3
objeto de servicio. Llame a lalistBuckets
del 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 lacreateBucket
del 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 laupload
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 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 lalistObjects
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 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 lacreateBucket
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 muestra se puede encontrar aquí en GitHub