

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

# Usar um bucket do Amazon S3 como um host estático da Web
<a name="s3-example-static-web-host"></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 um bucket do Amazon S3 como web host estático.

## O cenário
<a name="s3-example-static-web-host-scenario"></a>

Neste exemplo, uma série de módulos do Node.js é usada para configurar qualquer um dos seus buckets para atuar como um web host estático. 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#getBucketWebsite-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketWebsite-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketWebsite-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketWebsite-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucketWebsite-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucketWebsite-property)

Para obter mais informações sobre como usar um bucket do Amazon S3 como host estático da Web, consulte [Como hospedar um site estático no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html) no *Guia de usuário do Amazon Simple Storage Service*.

## Tarefas de pré-requisito
<a name="s3-example-static-web-host-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-static-web-host-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 de site do bucket atual
<a name="s3-example-static-web-host-get-website"></a>

Crie um módulo do Node.js com o nome de arquivo `s3_getbucketwebsite.js`. O módulo usa um único argumento de linha de comando que especifica o bucket do qual você deseja a configuração do website. Configure o SDK como mostrado anteriormente.

Crie um objeto de serviço do `AWS.S3`. Crie uma função que recupera a configuração do site do bucket atual para o bucket selecionado na lista de buckets. O único parâmetro que você precisa passar é o nome do bucket selecionado ao chamar o método `getBucketWebsite`. Se o bucket já tiver uma configuração do site, ela será retornada pelo Amazon S3 no parâmetro `data` passado para a função de retorno de chamada.

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

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

var bucketParams = { Bucket: process.argv[2] };

// call S3 to retrieve the website configuration for selected bucket
s3.getBucketWebsite(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data);
  }
});
```

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

```
node s3_getbucketwebsite.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_getbucketwebsite.js).

## Definir uma configuração de site do bucket
<a name="s3-example-static-web-host-set-website"></a>

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

Crie uma função que aplica uma configuração do site do bucket. A configuração permite que o bucket selecionado sirva como web host estático. As configurações do site são especificadas no JSON. Primeiro, crie um objeto JSON que contenha todos os valores para especificar a configuração do site, exceto para o valor `Key`, que identifica o documento de erro e o valor `Suffix` que identifica o documento de índice.

Insira os valores dos elementos de entrada de texto no objeto JSON. Prepare os parâmetros para o método `putBucketWebsite`, incluindo o nome do bucket e a configuração do site JSON.

```
// 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 JSON for putBucketWebsite parameters
var staticHostParams = {
  Bucket: "",
  WebsiteConfiguration: {
    ErrorDocument: {
      Key: "",
    },
    IndexDocument: {
      Suffix: "",
    },
  },
};

// Insert specified bucket name and index and error documents into params JSON
// from command line arguments
staticHostParams.Bucket = process.argv[2];
staticHostParams.WebsiteConfiguration.IndexDocument.Suffix = process.argv[3];
staticHostParams.WebsiteConfiguration.ErrorDocument.Key = process.argv[4];

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

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

```
node s3_setbucketwebsite.js BUCKET_NAME INDEX_PAGE ERROR_PAGE
```

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

## Excluir uma configuração do site de um bucket
<a name="s3-example-static-web-host-delete-website"></a>

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

Crie uma função que exclui a configuração de site do bucket selecionado. O único parâmetro que você precisa passar ao chamar o método `deleteBucketWebsite` é o nome do bucket selecionado.

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

var bucketParams = { Bucket: process.argv[2] };

// call S3 to delete website configuration for selected bucket
s3.deleteBucketWebsite(bucketParams, function (error, data) {
  if (error) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data);
  }
});
```

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

```
node s3_deletebucketwebsite.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_deletebucketwebsite.js).