Anunciamos
Conceitos básicos de Node.js
Este exemplo de código Node.js mostra:
Como criar o manifesto
package.json
para o projeto.Como instalar e incluir os módulos usados pelo projeto.
Como criar um objeto de serviço Amazon Simple Storage Service (Amazon S3) da classe de cliente
AWS.S3
.Como criar um bucket do Amazon S3 e fazer upload de um objeto para esse bucket.
O cenário
O exemplo mostra como configurar e executar um módulo Node.js simples que cria um bucket do Amazon S3 e adiciona um objeto de texto a ele.
Como nomes de bucket no Amazon S3 devem ser exclusivos globalmente, este exemplo inclui um módulo Node.js de terceiros que gera um valor de ID exclusivo que você pode incorporar ao nome do bucket. Este módulo adicional se chama uuid
.
Tarefas de pré-requisito
Para configurar e executar este exemplo, você deve primeiro concluir estas tarefas:
Crie um diretório de trabalho para desenvolver o módulo Node.js. Nomeie este diretório
awsnodesample
. Observe que o diretório deve ser criado em um local que possa ser atualizado por aplicativos. Por exemplo, no Windows, não crie o diretório em "C:\Arquivos de Programas".Instale o Node.js. Para obter mais informações, consulte o website Node.js
. Você pode encontrar downloads das versões atuais e LTS do Node.js para uma grande variedade de sistemas operacionais em https://nodejs.org/en/download/current/ .
Sumário
Etapa 1: Instalar o SDK e as dependências
Você instala o pacote SDK para JavaScript usando npm (o gerenciador de pacotes Node.js)
No diretório awsnodesample
no pacote, digite o seguinte na linha de comando.
npm install aws-sdk
Esse comando instala o SDK para JavaScript no projeto e atualiza package.json
para listar o SDK como uma dependência de projeto. Você pode encontrar informações sobre esse pacote procurando "aws-sdk" no site do npm
Instale o módulo uuid
no projeto digitando o seguinte na linha de comando, que instala o módulo e atualiza package.json
. Para obter mais informações sobre uuid
, consulte a página do módulo em https://www.npmjs.com/package/uuid
npm install uuid
Esses pacotes e os códigos associados são instalados no subdiretório node_modules
do projeto.
Para obter mais informações sobre como instalar pacotes Node.js, consulte Downloading and installing packages locally
Etapa 2: Configurar as credenciais
Você precisa fornecer credenciais para a AWS, de maneira que apenas a sua conta e os seus recursos sejam acessados pelo SDK. Para obter mais informações sobre como obter as credenciais da conta, consulte Autenticação do SDK com AWS.
Para armazenar essas informações, recomendamos criar um arquivo de credenciais compartilhadas. Para saber como, consulte Carregar credenciais em Node.js do arquivo de credenciais compartilhado. O arquivo de credenciais deve ser semelhante ao exemplo a seguir.
[default] aws_access_key_id =
YOUR_ACCESS_KEY_ID
aws_secret_access_key =YOUR_SECRET_ACCESS_KEY
É possível determinar se você definiu as credenciais corretamente executando o seguinte código com 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); } });
Da mesma maneira, se você tiver definido a região corretamente no arquivo config
, poderá exibir esse valor definindo a variável de ambiente AWS_SDK_LOAD_CONFIG
como qualquer valor e usando o seguinte código:
var AWS = require("aws-sdk"); console.log("Region: ", AWS.config.region);
Etapa 3: Criar o JSON do pacote para o projeto
Depois de criar o diretório do projeto awsnodesample
, você vai criar e adicionar um arquivo package.json
para manter os metadados do seu projeto Node.js. Para obter detalhes sobre como usar o package.json
em um projeto Node.js, consulte Como criar im arquivo package.json
No diretório de projeto, crie um novo arquivo chamado package.json
. Adicione esse JSON ao arquivo.
{ "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
" }
Salve o arquivo. À medida que você instalar os módulos de que você precisar, a parte dependencies
do arquivo será concluída. Você pode encontrar um arquivo JSON que mostra um exemplo dessas dependências aqui no GitHub
Etapa 4: Escrever o código Node.js
Crie um novo arquivo chamado sample.js
para conter o código de exemplo. Comece adicionando as chamadas de função require
para incluir o SDK para JavaScript e os módulos uuid
para que eles estejam disponíveis para uso.
Crie um nome do bucket exclusivo que será usado para criar um bucket do Amazon S3 anexando um valor de ID exclusivo a um prefixo reconhecível, neste caso 'node-sdk-sample-'
. Você gera o ID exclusivo chamando o módulo uuid
. Crie um nome para o parâmetro Key
usado para fazer upload de um objeto no bucket.
Crie um objeto promise
para chamar o método createBucket
do objeto de serviço AWS.S3
. Em uma resposta bem-sucedida, crie os parâmetros necessários para fazer upload de texto no bucket recém-criado. Usando outra promessa, chame o método putObject
para fazer upload do objeto de texto no 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 exemplo pode ser encontrado aqui no GitHub
Etapa 5: Executar o exemplo
Digite o seguinte comando para executar o exemplo.
node sample.js
Se o upload for bem-sucedido, você verá uma mensagem de confirmação na linha de comando. Você também pode encontrar o bucket e o objeto de texto carregado no console do Amazon S3