

Ferramentas da AWS para PowerShell O V4 entrou no modo de manutenção.

Recomendamos que você migre para a [Ferramentas da AWS para PowerShell V5](https://docs.aws.amazon.com/powershell/v5/userguide/). Para obter detalhes e informações adicionais sobre como migrar, consulte nosso [anúncio do modo de manutenção](https://aws.amazon.com/blogs/developer/aws-tools-for-powershell-v4-maintenance-mode-announcement/).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Amazon S3 e Tools for Windows PowerShell
<a name="pstools-s3"></a>

Nesta seção, criamos um site estático com o AWS Tools for Windows PowerShell usando o Amazon S3 e o CloudFront. No processo, demonstramos uma série de tarefas comuns com esses serviços. Essa demonstração é modelada com base no Guia de conceitos básicos para [Hospedar um site estático](https://aws.amazon.com/getting-started/projects/host-static-website/), que descreve um processo semelhante usando o [Console de gerenciamento da AWS](https://console.aws.amazon.com/s3/home).

Os comandos mostrados aqui supõem que você tenha definido credenciais padrão e uma região padrão para a sua sessão do PowerShell. Portanto, credenciais e regiões não estão incluídas na chamada dos cmdlets.

**nota**  
No momento, não há nenhuma API do Amazon S3 para renomear um bucket ou um objeto e, portanto, nenhum cmdlet específico do Tools for Windows PowerShell para executar esta tarefa. Para renomear um objeto no S3, recomendamos copiar o objeto usando um novo nome, executando o cmdlet [Copy-S3Object](https://docs.aws.amazon.com/powershell/v4/reference/items/Copy-S3Object.html) e excluir o objeto original, executando o cmdlet [Remove-S3Object](https://docs.aws.amazon.com/powershell/v4/reference/items/Remove-S3Object.html).

**Consulte também**
+  [Trabalhe com AWS serviços no Ferramentas da AWS para PowerShell](pstools-using.md) 
+  [Hospedagem de um site estático no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) 
+  [Console do Amazon S](https://console.aws.amazon.com/s3/home) 

**Topics**
+ [Criar um bucket do Amazon S3, verificar sua região e, opcionalmente, removê-lo](pstools-s3-bucket-create.md)
+ [Configurar um bucket do Amazon S3 como um site e ativar o registro em log](pstools-s3-create-website.md)
+ [Fazer upload de objetos para um bucket do Amazon S3](pstools-s3-upload-object.md)
+ [Excluir objetos e buckets do Amazon S3](pstools-s3-delete-website.md)
+ [Upload de conteúdo de texto em linha para o Amazon S3](pstools-s3-upload-in-line-text.md)

# Criar um bucket do Amazon S3, verificar sua região e, opcionalmente, removê-lo
<a name="pstools-s3-bucket-create"></a>

Use o cmdlet `New-S3Bucket` para criar um novo bucket do Amazon S3. Os exemplos a seguir criam um bucket chamado `website-example`. O nome do bucket deve ser globalmente exclusivo em todas as regiões. O exemplo cria o bucket na região `us-west-1`.

```
PS > New-S3Bucket -BucketName website-example -Region us-west-2

CreationDate         BucketName
------------         ----------
8/16/19 8:45:38 PM   website-example
```

Você pode verificar a região em que o bucket está localizado usando o cmdlet `Get-S3BucketLocation`.

```
PS > Get-S3BucketLocation -BucketName website-example

Value
-----
us-west-2
```

Quando terminar este tutorial, você poderá usar a linha a seguir para remover esse bucket. Sugerimos que você deixe esse bucket no lugar, pois o usaremos em exemplos subsequentes.

```
PS > Remove-S3Bucket -BucketName website-example
```

Observe que o processo de remoção do bucket leva algum tempo para ser concluído. Se você tentar recriar um bucket com o mesmo nome imediatamente, poderá haver falha no cmdlet `New-S3Bucket` até que o antigo tenha sido removido completamente.

## Consulte também
<a name="pstools-seealso-s3-bucket-create"></a>
+  [Trabalhe com AWS serviços no Ferramentas da AWS para PowerShell](pstools-using.md) 
+  [Put bucket (Referência de serviços do Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUT.html) 
+  [AWS PowerShell Regiões do Amazon S3](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 

# Configurar um bucket do Amazon S3 como um site e ativar o registro em log
<a name="pstools-s3-create-website"></a>

Use o cmdlet `Write-S3BucketWebsite` para configurar um bucket do Amazon S3 como um site estático. O exemplo a seguir especifica um nome `index.html` para a página da web de conteúdo padrão e um nome `error.html` para a página da web de erro padrão. Observe que esse cmdlet não cria essas páginas. Elas precisam ser [carregadas como objetos do Amazon S3](pstools-s3-upload-object.md).

```
PS > Write-S3BucketWebsite -BucketName website-example -WebsiteConfiguration_IndexDocumentSuffix index.html -WebsiteConfiguration_ErrorDocument error.html
RequestId      : A1813E27995FFDDD
AmazonId2      : T7hlDOeLqA5Q2XfTe8j2q3SLoP3/5XwhUU3RyJBGHU/LnC+CIWLeGgP0MY24xAlI
ResponseStream :
Headers        : {x-amz-id-2, x-amz-request-id, Content-Length, Date...}
Metadata       : {}
ResponseXml    :
```

## Consulte também
<a name="pstools-seealso-s3-create-website"></a>
+  [Trabalhe com AWS serviços no Ferramentas da AWS para PowerShell](pstools-using.md) 
+  [Site Put bucket (Referência de APIs do Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html) 
+  [ACL Put bucket (Referência de APIs do Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) 

# Fazer upload de objetos para um bucket do Amazon S3
<a name="pstools-s3-upload-object"></a>

Use o cmdlet `Write-S3Object` para fazer upload de arquivos do seu sistema de arquivos local para um bucket do Amazon S3 como objetos. O exemplo a seguir cria e carrega dois arquivos HTML simples para um bucket do Amazon S3 e verifica a existência dos objetos carregados. O parâmetro `-File` para `Write-S3Object` especifica o nome do arquivo no sistema de arquivos local. O parâmetro `-Key` especifica o nome que o objeto correspondente terá no Amazon S3.

A Amazon deduz o tipo de conteúdo dos objetos a partir das extensões de arquivos, nesse caso, ".html".

```
PS > # Create the two files using here-strings and the Set-Content cmdlet
PS > $index_html = @"
>> <html>
>>   <body>
>>     <p>
>>       Hello, World!
>>     </p>
>>   </body>
>> </html>
>> "@
>>
PS > $index_html | Set-Content index.html
PS > $error_html = @"
>> <html>
>>   <body>
>>     <p>
>>       This is an error page.
>>     </p>
>>   </body>
>> </html>
>> "@
>>
>>$error_html | Set-Content error.html
>># Upload the files to Amazon S3 using a foreach loop
>>foreach ($f in "index.html", "error.html") {
>> Write-S3Object -BucketName website-example -File $f -Key $f -CannedACLName public-read
>> }
>>
PS > # Verify that the files were uploaded
PS > Get-S3BucketWebsite -BucketName website-example

IndexDocumentSuffix                                         ErrorDocument
-------------------                                         -------------
index.html                                                  error.html
```

 *Opções pré-configuradas de ACL* 

Os valores para especificar ACLs pré-configuradas com o Tools for Windows PowerShell são os mesmos que os usados pelo AWS SDK para .NET. Observe, no entanto, que eles são diferentes dos valores usados pela ação `Put Object` do Amazon S3. O Tools for Windows PowerShell oferece suporte às seguintes ACLs pré-configuradas:
+ NoACL
+ privado
+ public-read
+ public-read-write
+ aws-exec-read
+ authenticated-read
+ bucket-owner-read
+ bucket-owner-full-control
+ log-delivery-write

Para obter mais informações sobre essas configurações de ACL pré-configurada, consulte [Visão geral da lista de controle de acesso](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).

## Observação sobre multipart upload
<a name="note-regarding-multipart-upload"></a>

Se você usar a API do Amazon S3 para fazer upload de um arquivo com mais de 5 GB, será necessário utilizar o carregamento fracionado. No entanto, o cmdlet `Write-S3Object` fornecido pelo Tools for Windows PowerShell pode tratar de maneira transparente uploads de arquivos com mais de 5 GB.

### Testar o site
<a name="pstools-amazon-s3-test-website"></a>

Nesse momento, você pode testar o site, navegando até ele com um navegador. Os URLs para sites estáticos hospedados no Amazon S3 seguem um formato padrão.

```
http://<bucket-name>.s3-website-<region>.amazonaws.com
```

Por exemplo:

```
http://website-example.s3-website-us-west-1.amazonaws.com
```

### Consulte também
<a name="pstools-seealso-amazon-s3-test-website"></a>
+  [Trabalhe com AWS serviços no Ferramentas da AWS para PowerShell](pstools-using.md) 
+  [Objeto Put (Referência de APIs do Amazon S)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) 
+  [ACLs pré-configuradas (Referência de APIs do Amazon S)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL) 

# Excluir objetos e buckets do Amazon S3
<a name="pstools-s3-delete-website"></a>

Esta seção descreve como excluir o site que você criou nas seções anteriores. Você pode simplesmente excluir os objetos para os arquivos HTML e, em seguida, excluir o bucket do Amazon S3 para o site.

Primeiramente, execute o cmdlet `Remove-S3Object` para excluir os objetos dos arquivos HTML do bucket do Amazon S3.

```
PS > foreach ( $obj in "index.html", "error.html" ) {
>> Remove-S3Object -BucketName website-example -Key $obj
>> }
>> 
IsDeleteMarker
--------------
False
```

A resposta `False` é um artefato esperado da forma como o Amazon S3 processa a solicitação. Neste contexto, ela não indica um problema.

Agora, é possível executar o cmdlet `Remove-S3Bucket` para excluir o bucket do Amazon S3 vazio do site.

```
PS > Remove-S3Bucket -BucketName website-example

RequestId      : E480ED92A2EC703D
AmazonId2      : k6tqaqC1nMkoeYwbuJXUx1/UDa49BJd6dfLN0Ls1mWYNPHjbc8/Nyvm6AGbWcc2P
ResponseStream :
Headers        : {x-amz-id-2, x-amz-request-id, Date, Server}
Metadata       : {}
ResponseXml    :
```

Na versão 1.1 e em versões mais recentes do Ferramentas da AWS para PowerShell, é possível adicionar o parâmetro `-DeleteBucketContent` ao `Remove-S3Bucket`, que primeiro exclui todos os objetos e as versões do objeto no bucket especificado antes de tentar remover o bucket. Dependendo do número de objetos ou versões de objetos no bucket, essa operação pode demorar um intervalo substancial de tempo. Nas versões do Tools for Windows PowerShell anteriores à 1.1, era necessário que o bucket estivesse vazio para que o `Remove-S3Bucket` pudesse excluí-lo.

**nota**  
A menos que o parâmetro `-Force` seja adicionado, o Ferramentas da AWS para PowerShell solicitará confirmação antes que o cmdlet seja executado.

## Consulte também
<a name="pstools-seealso-amazon-s3-delete-website"></a>
+  [Trabalhe com AWS serviços no Ferramentas da AWS para PowerShell](pstools-using.md) 
+  [Excluir objeto (Referência de APIs do Amazon S)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html) 
+  [Excluir bucket (Referência de APIs do Amazon S)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETE.html) 

# Upload de conteúdo de texto em linha para o Amazon S3
<a name="pstools-s3-upload-in-line-text"></a>

O cmdlet `Write-S3Object` oferece suporte à capacidade de fazer upload de conteúdo de texto em linha para o Amazon S3. Usando o parâmetro `-Content` (alias `-Text`), você pode especificar o conteúdo baseado em texto que deve ser carregados para o Amazon S3 sem a necessidade de colocá-lo em um arquivo primeiro. O parâmetro aceita sequências de uma linha simples, bem como strings que contêm várias linhas.

```
PS > # Specifying content in-line, single line text:
PS > write-s3object amzn-s3-demo-bucket -key myobject.txt -content "file content"

PS > # Specifying content in-line, multi-line text: (note final newline needed to end in-line here-string)
PS > write-s3object amzn-s3-demo-bucket -key myobject.txt -content @"
>> line 1
>> line 2
>> line 3
>> "@
>> 
PS > # Specifying content from a variable: (note final newline needed to end in-line here-string)
PS > $x = @"
>> line 1
>> line 2
>> line 3
>> "@
>> 
PS > write-s3object amzn-s3-demo-bucket -key myobject.txt -content $x
```