Anunciamos
Criação e uso de buckets do Amazon S3
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:
-
Instale o Node.js. Para obter mais informações sobre como instalar Node.js, consulte o website de Node.js
. -
Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais compartilhadas, consulte Carregar credenciais em Node.js do arquivo de credenciais compartilhado.
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