AWS SDK para JavaScript
Guia do desenvolvedor do SDK v2

Criar e usar buckets do Amazon S3

JavaScript code example that applies to Node.js execution

Este exemplo de código Node.js mostra:

  • Como obter e exibir uma lista de buckets do Amazon S3 na sua conta.

  • Como criar um bucket do Amazon S3.

  • Como fazer upload de um objeto em um bucket especificado.

O cenário

Neste exemplo, uma série de módulos do Node.js é usada para obter uma lista dos buckets do Amazon S3 existentes, criar um bucket e fazer upload do arquivo a um bucket específico. Esses módulos do Node.js usam o SDK for JavaScript para obter informações dos arquivos e carregá-los em um bucket do Amazon S3 usando estes métodos da classe de cliente Amazon S3:

Tarefas de pré-requisito

Para configurar e executar este exemplo, você deve primeiro concluir estas tarefas:

Como configurar o SDK

Configure o SDK for JavaScript criando um objeto de configuração global e definindo a região do código. Neste exemplo, a região é definida como us-west-2.

// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'us-west-2'});

Exibir uma lista de buckets no Amazon S3

Crie um módulo do Node.js com o nome de arquivo s3_listbuckets.js. Configure o SDK conforme mostrado anteriormente. Para acessar o Amazon Simple Storage Service, crie um objeto de serviço AWS.S3. Chame o método listBuckets do objeto de serviço do Amazon S3 para recuperar uma lista dos seus buckets. O parâmetro data da função de retorno de chamada tem uma propriedade Buckets que contém um array de mapas para representar os buckets. Exiba a lista de buckets ao fazer login no console.

// 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 executar o exemplo, digite o seguinte na linha de comando.

node s3_listbuckets.js

Este código de exemplo pode ser encontrado aqui no GitHub.

Criar um bucket do Amazon S3

Crie um módulo do Node.js com o nome de arquivo s3_createbucket.js. Configure o SDK conforme mostrado anteriormente. Crie um objeto de serviço do AWS.S3. O módulo precisa de um único argumento de linha de comando para especificar um nome para o novo bucket.

Adicione uma variável para armazenar os parâmetros usados para chamar o método createBucket do objeto de serviço do Amazon S3, incluindo o nome do bucket recém-criado. A função de retorno de chamada registra o local do novo bucket no console depois de criar o Amazon S3 com êxito.

// 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], ACL : 'public-read' }; // 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 executar o exemplo, digite o seguinte na linha de comando.

node s3_createbucket.js BUCKET_NAME

Este código de exemplo pode ser encontrado aqui no GitHub.

Fazer upload de um arquivo a um bucket do Amazon S3

Crie um módulo do Node.js com o nome de arquivo s3_upload.js. Configure o SDK conforme mostrado anteriormente. Crie um objeto de serviço do AWS.S3. O módulo levará dois argumentos de linha de comando: o primeiro para especificar o bucket de destino e o segundo para especificar o arquivo para upload.

Crie uma variável com os parâmetros necessários para chamar o método upload do objeto de serviço do Amazon S3. Forneça o nome do bucket de destino no parâmetro Bucket. O parâmetro Key é definido como o nome do arquivo selecionado, que você pode obter usando o módulo path do Node.js. O parâmetro Body é definido como o conteúdo do arquivo, que você pode obter usando createReadStream do módulo fs do 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 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 executar o exemplo, digite o seguinte na linha de comando.

node s3_upload.js BUCKET_NAME FILE_NAME

Este código de exemplo pode ser encontrado aqui no GitHub.

Listar objetos dentro de um bucket do Amazon S3

Crie um módulo do Node.js com o nome de arquivo s3_listobjects.js. Configure o SDK conforme mostrado anteriormente. Crie um objeto de serviço do AWS.S3.

Adicione uma variável para armazenar os parâmetros usados para chamar o método listObjects do objeto de serviço do Amazon S3, incluindo o nome do bucket a ser lido. A função de retorno de chamada registra uma lista de objetos (arquivos) ou uma mensagem de falha.

// 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 executar o exemplo, digite o seguinte na linha de comando.

node s3_listobjects.js

Este código de exemplo pode ser encontrado aqui no GitHub.

Excluir um bucket do Amazon S3

Crie um módulo do Node.js com o nome de arquivo s3_deletebucket.js. Configure o SDK conforme mostrado anteriormente. Crie um objeto de serviço do AWS.S3.

Adicione uma variável para armazenar os parâmetros usados para chamar o método createBucket do objeto de serviço do Amazon S3, incluindo o nome do bucket a ser excluído. Para ser excluído, o bucket deve estar vazio. A função de retorno de chamada registra uma mensagem de êxito ou falha.

// 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 executar o exemplo, digite o seguinte na linha de comando.

node s3_deletebucket.js

Este código de exemplo pode ser encontrado aqui no GitHub.