

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/).

# Configurar buckets do Amazon S3
<a name="s3-example-configuring-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 configurar as permissões do CORS (cross-origin resource sharing, compartilhamento de recursos de origem cruzada) para um bucket.

## O cenário
<a name="s3-example-configuring-buckets-scenario"></a>

Neste exemplo, uma série de módulos do Node.js é usada para listar seus buckets do Amazon S3 e configurar o CORS e o registro dos buckets. Os módulos do Node.js usam o SDK para JavaScript para configurar um bucket do Amazon S3 selecionado usando estes métodos na classe de cliente do Amazon S3:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketCors-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketCors-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketCors-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketCors-property)

Para obter mais informações sobre a configuração do CORS com um bucket do Amazon S3, consulte [Compartilhamento de recursos entre origens (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) no *Guia do usuário do Amazon Simple Storage Service*.

## Tarefas de pré-requisito
<a name="s3-example-configuring-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-configuring-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'});
```

## Recuperar a configuração do CORS de um bucket
<a name="s3-example-configuring-buckets-get-cors"></a>

Crie um módulo do Node.js com o nome de arquivo `s3_getcors.js`. O módulo usará um único argumento de linha de comando para especificar o bucket que você deseja para a configuração do CORS. Configure o SDK conforme mostrado anteriormente. Crie um objeto de serviço do `AWS.S3`. 

O único parâmetro que você precisa passar é o nome do bucket selecionado ao chamar o método `getBucketCors`. Se o bucket atualmente tiver uma configuração do CORS, essa configuração será retornada pelo Amazon S3 como a propriedade `CORSRules` do parâmetro passado para a função de retorno de chamada.

Se o bucket selecionado ainda não tiver a configuração do CORS, essa informação será retornada para a função de retorno de chamada no parâmetro `error`.

```
// 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" });

// Set the parameters for S3.getBucketCors
var bucketParams = { Bucket: process.argv[2] };

// call S3 to retrieve CORS configuration for selected bucket
s3.getBucketCors(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", JSON.stringify(data.CORSRules));
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node s3_getcors.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_getcors.js).

## Definir a configuração de CORS de um bucket
<a name="s3-example-configuring-buckets-put-cors"></a>

Crie um módulo do Node.js com o nome de arquivo `s3_setcors.js`. O módulo leva vários argumentos de linha de comando, sendo que o primeiro especifica o bucket cuja configuração do CORS você deseja definir. Outros argumentos enumeram os métodos HTTP (POST, GET, PUT, PATCH, DELETE, POST) que você deseja permitir para o bucket. Configure o SDK como mostrado anteriormente.

 Crie um objeto de serviço do `AWS.S3`. Em seguida, crie um objeto JSON para armazenar os valores para a configuração do CORS, conforme exigido pelo método `putBucketCors` do objeto de serviço do `AWS.S3`. Especifique `"Authorization"` para o valor `AllowedHeaders` e `"*"` para o valor `AllowedOrigins`. Inicialmente, defina o valor de `AllowedMethods` como array vazio.

Especifique os métodos permitidos como parâmetros de linha de comando para o módulo Node.js, adicionando cada um dos métodos que correspondem a um dos parâmetros. Adicione a configuração do CORS resultante ao array de configurações contido no parâmetro `CORSRules`. Especifique o bucket que você deseja configurar para o CORS no parâmetro `Bucket`.

```
// 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 initial parameters JSON for putBucketCors
var thisConfig = {
  AllowedHeaders: ["Authorization"],
  AllowedMethods: [],
  AllowedOrigins: ["*"],
  ExposeHeaders: [],
  MaxAgeSeconds: 3000,
};

// Assemble the list of allowed methods based on command line parameters
var allowedMethods = [];
process.argv.forEach(function (val, index, array) {
  if (val.toUpperCase() === "POST") {
    allowedMethods.push("POST");
  }
  if (val.toUpperCase() === "GET") {
    allowedMethods.push("GET");
  }
  if (val.toUpperCase() === "PUT") {
    allowedMethods.push("PUT");
  }
  if (val.toUpperCase() === "PATCH") {
    allowedMethods.push("PATCH");
  }
  if (val.toUpperCase() === "DELETE") {
    allowedMethods.push("DELETE");
  }
  if (val.toUpperCase() === "HEAD") {
    allowedMethods.push("HEAD");
  }
});

// Copy the array of allowed methods into the config object
thisConfig.AllowedMethods = allowedMethods;
// Create array of configs then add the config object to it
var corsRules = new Array(thisConfig);

// Create CORS params
var corsParams = {
  Bucket: process.argv[2],
  CORSConfiguration: { CORSRules: corsRules },
};

// set the new CORS configuration on the selected bucket
s3.putBucketCors(corsParams, function (err, data) {
  if (err) {
    // display error message
    console.log("Error", err);
  } else {
    // update the displayed CORS config for the selected bucket
    console.log("Success", data);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando, incluindo um ou mais métodos HTTP, como mostrado.

```
node s3_setcors.js BUCKET_NAME get put
```

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_setcors.js).