Anunciamos
Introducción a Node.js
Este ejemplo de código de Node.js muestra:
Cómo crear el manifiesto
package.json
para su proyecto.Cómo instalar e incluir los módulos que su proyecto utiliza.
Cómo crear un objeto de servicio de Amazon Simple Storage Service (Amazon S3) a partir de la clase de cliente
AWS.S3
.Cómo crear un bucket de Amazon S3 y cargar un objeto en dicho bucket.
El escenario
En el ejemplo se muestra cómo configurar y ejecutar un módulo de Node.js sencillo que crea un bucket de Amazon S3 y luego le añade un objeto de texto.
Dado que los nombres en Amazon S3 deben ser únicos a nivel global, este ejemplo incluye un módulo de Node.js de terceros que genera un valor de ID único que puede incorporar en el nombre de bucket. Este módulo adicional se llama uuid
.
Tareas previas necesarias
Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:
Crear un directorio de trabajo para desarrollar su módulo Node.js. Llame
awsnodesample
a este directorio. Tenga en cuenta que el directorio se debe crear en una ubicación donde las aplicaciones lo puedan actualizar. Por ejemplo, en Windows, no cree el directorio en la sección "C:\Archivos de programa".Instale Node.js. Para obtener más información, consulte el sitio web de Node.js
. Puede encontrar descargas de las versiones LTS y actual de Node.js para una serie de sistemas operativos en https://nodejs.org/en/download/current/ .
Contenido
Paso 1: Instalar el SDK y las dependencias
El paquete del SDK para JavaScript se instala usando npm (el administrador de paquetes de Node.js)
En el directorio awsnodesample
del paquete, escriba lo siguiente en la línea de comandos.
npm install aws-sdk
Este comando instala el SDK para JavaScript en su proyecto y actualiza package.json
para incluir el SDK como dependencia de un proyecto. Puede encontrar información sobre este paquete buscando "aws-sdk" en el sitio web de npm
A continuación, instale el módulo uuid
en el proyecto escribiendo lo siguiente en la línea de comandos, para instalar el módulo y las actualizaciones package.json
. Para obtener más información acerca de uuid
, consulte la página del módulo en https://www.npmjs.com/package/uuid
npm install uuid
Estos paquetes y su código asociado se instalan en el subdirectorio node_modules
del proyecto.
Para obtener más información acerca de la instalación de paquetes Node.js, consulte las secciones sobre cómo descargar e instalar paquetes locales
Paso 2: Configurar sus credenciales
Debe proporcionar credenciales para AWS, de modo que el SDK solo obtenga acceso a su cuenta y sus recursos. Para obtener más información sobre cómo obtener sus credenciales de cuenta, consulte Autenticación de SDK con AWS.
Para almacenar esta información, le recomendamos que cree un archivo de credenciales compartidas. Para saber cómo hacerlo, consulte Carga de credenciales en Node.js desde el archivo de credenciales compartidas. Su archivo de credenciales debe parecerse al siguiente ejemplo.
[default] aws_access_key_id =
YOUR_ACCESS_KEY_ID
aws_secret_access_key =YOUR_SECRET_ACCESS_KEY
Puede determinar si ha configurado las credenciales correctamente ejecutando el siguiente código con Node.js:
var AWS = require("aws-sdk"); AWS.config.getCredentials(function(err) { if (err) console.log(err.stack); // credentials not loaded else { console.log("Access key:", AWS.config.credentials.accessKeyId); } });
Del mismo modo, si ha definido la región correctamente en el archivo config
, puede mostrar ese valor estableciendo la variable de entorno AWS_SDK_LOAD_CONFIG
en cualquier valor y utilizando el siguiente código:
var AWS = require("aws-sdk"); console.log("Region: ", AWS.config.region);
Paso 3: Crear el JSON del paquete para el proyecto
Después de crear el directorio del proyecto awsnodesample
, debe crear y añadir un archivo package.json
para guardar los metadatos de su proyecto de Node.js. Para obtener información detallada acerca de cómo utilizar package.json
en un proyecto Node.js, consulte la sección sobre creación de un archivo package.json
En el directorio del proyecto, cree un archivo nuevo denominado package.json
. Luego añada este JSON al archivo.
{ "dependencies": {}, "name": "aws-nodejs-sample", "description": "A simple Node.js application illustrating usage of the SDK for JavaScript.", "version": "1.0.1", "main": "sample.js", "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "
NAME
", "license": "ISC
" }
Guarde el archivo. A medida que instale los módulos que necesita, la parte dependencies
del archivo se completará. Puede encontrar un archivo JSON que muestra un ejemplo de estas dependencias aquí, en GitHub
Paso 4: Escriba el código de Node.js
Cree un archivo nuevo denominado sample.js
para que contenga el código de ejemplo. Para empezar, añada que las llamadas a la función require
deben incluir el SDK para JavaScript y los módulos uuid
, de modo que estén disponibles para que los use.
Cree un nombre de bucket único que se utilice para crear un bucket de Amazon S3 añadiendo un valor de ID único a un prefijo fácil de reconocer, en este caso 'node-sdk-sample-'
. Puede generar el ID único llamando al módulo uuid
. A continuación, cree un nombre para el parámetro Key
utilizado para cargar un objeto en el bucket.
Cree un objeto promise
para llamar al método createBucket
del objeto de servicio AWS.S3
. Si obtiene una respuesta correcta, cree los parámetros necesarios para cargar texto al bucket que acaba de crear. Usando otra promesa, llame al método putObject
para cargar el objeto de texto en el bucket.
// Load the SDK and UUID var AWS = require("aws-sdk"); var uuid = require("uuid"); // Create unique bucket name var bucketName = "node-sdk-sample-" + uuid.v4(); // Create name for uploaded object key var keyName = "hello_world.txt"; // Create a promise on S3 service object var bucketPromise = new AWS.S3({ apiVersion: "2006-03-01" }) .createBucket({ Bucket: bucketName }) .promise(); // Handle promise fulfilled/rejected states bucketPromise .then(function (data) { // Create params for putObject call var objectParams = { Bucket: bucketName, Key: keyName, Body: "Hello World!", }; // Create object upload promise var uploadPromise = new AWS.S3({ apiVersion: "2006-03-01" }) .putObject(objectParams) .promise(); uploadPromise.then(function (data) { console.log( "Successfully uploaded data to " + bucketName + "/" + keyName ); }); }) .catch(function (err) { console.error(err, err.stack); });
Este código de ejemplo se puede encontrar aquí en GitHub
Paso 5: Ejecución de la muestra
Escriba el comando siguiente para ejecutar el ejemplo.
node sample.js
Si la carga se realiza correctamente, verá un mensaje de confirmación en la línea de comandos. También puede encontrar el bucket y el objeto de texto cargado en la consola de Amazon S3