

O AWS SDK para JavaScript v2 chegou ao fim do suporte. Recomendamos migrar para o [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalhes e informações sobre como migrar, consulte este [anúncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Criação e uso de buckets do Amazon S3
<a name="s3-example-creating-buckets"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/pt_br/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**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
<a name="s3-example-creating-buckets-scenario"></a>

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:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createBucket-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createBucket-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucket-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucket-property)

## Tarefas de pré-requisito
<a name="s3-example-creating-buckets-prerequisites"></a>

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](https://nodejs.org).
+ 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](loading-node-credentials-shared.md).

## Como configurar o SDK
<a name="s3-example-creating-buckets-configure-sdk"></a>

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
<a name="s3-example-creating-buckets-list-buckets"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_listbuckets.js).

## Criando um Bucket do Amazon S3
<a name="s3-example-creating-buckets-new-bucket"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_createbucket.js).

## Fazer upload de um arquivo em um bucket do Amazon S3
<a name="s3-example-creating-buckets-upload-file"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_upload.js).

## Listar os objetos em um bucket do Amazon S3
<a name="s3-example-listing-objects"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_listobjects.js).

## Excluir um bucket do Amazon S3
<a name="s3-example-deleting-buckets"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_deletebucket.js).