Criação e uso de buckets do Amazon S3 - AWS SDK for JavaScript

Anunciamos o próximo fim do suporte para o AWS SDK for JavaScript v2. Recomendamos migrar para o AWS SDK for JavaScript v3. Para saber as datas e receber detalhes adicionais e informações sobre como migrar, consulte o anúncio vinculado.

Criação e uso de 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 para JavaScript para obter informações dos arquivos e carregá-los em um bucket do Amazon S3 usando estes métodos da classe de cliente do 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 para 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 de 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.

Criando 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 , 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], }; // 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 em 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 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 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 os objetos em 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.