

Herramientas de AWS para PowerShell La V4 ha entrado en modo de mantenimiento.

Le recomendamos que migre a la [Herramientas de AWS para PowerShell V5](https://docs.aws.amazon.com/powershell/v5/userguide/). Para obtener información y detalles adicionales sobre cómo realizar la migración, consulta nuestro [anuncio sobre el modo de mantenimiento](https://aws.amazon.com/blogs/developer/aws-tools-for-powershell-v4-maintenance-mode-announcement/).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

En esta sección, crearemos un sitio web estático mediante el uso de AWS Tools for Windows PowerShell con Amazon S3 y CloudFront. En el proceso, mostraremos una serie de tareas comunes con estos servicios. Esta explicación sigue la Guía de introducción para [Alojar un sitio web estático](https://aws.amazon.com/getting-started/projects/host-static-website/), que describe un proceso similar con el uso de la [consola de administración de AWS](https://console.aws.amazon.com/s3/home).

Los comandos que se muestran aquí presuponen que ya ha definido credenciales predeterminadas y una región predeterminada para su sesión de PowerShell. Por lo tanto, las credenciales y las regiones no se incluyen en la invocación de los cmdlets.

**nota**  
En la actualidad, no existe ninguna API de Amazon S3 para cambiar el nombre de los buckets o los objetos y, por tanto, ningún cmdlet de Tools for Windows PowerShell para realizar esta tarea. Para cambiar el nombre de los objetos de S3, le recomendamos que copie el objeto con un nuevo nombre ejecutando el cmdlet [Copy-S3Object](https://docs.aws.amazon.com/powershell/v4/reference/items/Copy-S3Object.html) y que, a continuación, elimine el objeto original ejecutando el cmdlet [Remove-S3Object](https://docs.aws.amazon.com/powershell/v4/reference/items/Remove-S3Object.html).

**Véase también**
+  [Trabaje con AWS los servicios del Herramientas de AWS para PowerShell](pstools-using.md) 
+  [Alojamiento de un sitio web estático en Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) 
+  [Consola de Amazon S](https://console.aws.amazon.com/s3/home) 

**Topics**
+ [Creación de un bucket de Amazon S3, verificación de su región y eliminación de este (opcional)](pstools-s3-bucket-create.md)
+ [Configuración de un bucket de Amazon S3 como un sitio web y habilitación del registro](pstools-s3-create-website.md)
+ [Carga de objetos en un bucket de Amazon S3](pstools-s3-upload-object.md)
+ [Eliminación de objetos y buckets de Amazon S3](pstools-s3-delete-website.md)
+ [Carga de contenido de texto insertado en Amazon S3](pstools-s3-upload-in-line-text.md)

# Creación de un bucket de Amazon S3, verificación de su región y eliminación de este (opcional)
<a name="pstools-s3-bucket-create"></a>

Utilice el cmdlet `New-S3Bucket` para crear un nuevo bucket de Amazon S3. En los ejemplos siguientes se crea un bucket denominado `website-example`. El nombre del bucket debe ser único en todas las regiones. En el ejemplo el bucket se crea en la región `us-west-1`.

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

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

Puede verificar la región en la que se encuentra el bucket con el cmdlet `Get-S3BucketLocation`.

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

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

Cuando haya terminado este tutorial, puede utilizar la siguiente línea para eliminar este bucket. Le recomendamos que mantenga este bucket ya que lo usaremos en los siguientes ejemplos.

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

Tenga en cuenta que el proceso de eliminación del bucket puede tardar algún tiempo en completarse. Si intenta volver a crear un bucket inmediatamente con el mismo nombre, el cmdlet `New-S3Bucket` puede producir un error hasta que el bucket anterior haya desaparecido por completo.

## Véase también
<a name="pstools-seealso-s3-bucket-create"></a>
+  [Trabaje con AWS los servicios del Herramientas de AWS para PowerShell](pstools-using.md) 
+  [Put Bucket (Referencia del servicio de Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUT.html) 
+  [AWS PowerShell Regiones de Amazon S3](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 

# Configuración de un bucket de Amazon S3 como un sitio web y habilitación del registro
<a name="pstools-s3-create-website"></a>

Utilice el cmdlet `Write-S3BucketWebsite` para configurar un bucket de Amazon S3 como un sitio web estático. El siguiente ejemplo especifica un nombre de `index.html` para la página web de contenido predeterminada y un nombre de `error.html` para la página web de error predeterminada. Tenga en cuenta que este cmdlet no crea esas páginas. Deben ser [cargados como objetos de 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    :
```

## Véase también
<a name="pstools-seealso-s3-create-website"></a>
+  [Trabaje con AWS los servicios del Herramientas de AWS para PowerShell](pstools-using.md) 
+  [Put Bucket Website (Referencia de la API de Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html) 
+  [Put Bucket ACL (Referencia de la API de Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) 

# Carga de objetos en un bucket de Amazon S3
<a name="pstools-s3-upload-object"></a>

Utilice el cmdlet `Write-S3Object` para cargar archivos del sistema de archivos local en un bucket de Amazon S3 como objetos. En el siguiente ejemplo se crean y cargan dos archivos HTML sencillos en un bucket de Amazon S3 y se verifica la existencia de los objetos cargados. El parámetro `-File` de `Write-S3Object` especifica el nombre del archivo en el sistema de archivos local. El parámetro `-Key` especifica el nombre que el objeto correspondiente tendrá en Amazon S3.

Amazon determina el tipo de contenido de los objetos de las extensiones de archivo (en este 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
```

 *Opciones de ACL empaquetadas* 

Los valores para especificar ACL predefinidas con Tools for Windows PowerShell son los mismos que aquellos que utiliza AWS SDK para .NET. Tenga en cuenta, sin embargo, que son diferentes de los valores utilizados por la acción `Put Object` de Amazon S3. Tools for Windows PowerShell admite las siguientes ACL predefinidas:
+ NoACL
+ private
+ public-read
+ public-read-write
+ aws-exec-read
+ authenticated-read
+ bucket-owner-read
+ bucket-owner-full-control
+ log-delivery-write

Para obtener más información acerca de estos ajustes de listas de control de acceso empaquetadas, consulte [Información general de las Access Control Lists (ACL, Listas de control de acceso)](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).

## Nota relativa a la carga multiparte
<a name="note-regarding-multipart-upload"></a>

Si utiliza la API de Amazon S3 para cargar un archivo que sobrepasa los 5 GB de tamaño, debe utilizar la carga multiparte. Sin embargo, el cmdlet `Write-S3Object` proporcionado por Tools for Windows PowerShell puede encargarse de las cargas de archivos con un tamaño superior a 5 GB de manera transparente.

### Probar el sitio web
<a name="pstools-amazon-s3-test-website"></a>

En este punto, puede probar el sitio web visitándolo desde un navegador. Las URL de los sitios web estáticos alojados en Amazon S3 siguen un formato estándar.

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

Por ejemplo:

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

### Véase también
<a name="pstools-seealso-amazon-s3-test-website"></a>
+  [Trabaje con AWS los servicios del Herramientas de AWS para PowerShell](pstools-using.md) 
+  [Put Object (Referencia de la API de Amazon S)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) 
+  [Canned ACLs (Referencia de la API de Amazon S)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL) 

# Eliminación de objetos y buckets de Amazon S3
<a name="pstools-s3-delete-website"></a>

En esta sección se describe cómo eliminar el sitio web que creó en las secciones anteriores. Puede simplemente eliminar los objetos de los archivos HTML y, a continuación, eliminar el bucket de Amazon S3 del sitio.

En primer lugar, ejecute el cmdlet `Remove-S3Object` para eliminar los objetos de los archivos HTML del bucket de Amazon S3.

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

La respuesta `False` es un artefacto esperado de la forma en la que Amazon S3 procesa la solicitud. En este contexto, no indica un problema.

Ahora, ejecute el cmdlet `Remove-S3Bucket` para eliminar el bucket de Amazon S3 que ahora está vacío del sitio.

```
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    :
```

En 1.1 y versiones más recientes de las Herramientas de AWS para PowerShell, puede añadir el parámetro `-DeleteBucketContent` a `Remove-S3Bucket`, que primero elimina todos los objetos y versiones de objeto del bucket especificado antes de intentar eliminar el propio bucket. En función del número de objetos o versiones de objeto del bucket, esta operación puede tardar una cantidad de tiempo considerable. En las versiones de Tools for Windows PowerShell anteriores a la 1.1, el bucket tenía que estar vacío para que `Remove-S3Bucket` pudiera eliminarlo.

**nota**  
A menos que agregue el parámetro `-Force`, las Herramientas de AWS para PowerShell solicitan la confirmación antes de que se ejecute el cmdlet.

## Véase también
<a name="pstools-seealso-amazon-s3-delete-website"></a>
+  [Trabaje con AWS los servicios del Herramientas de AWS para PowerShell](pstools-using.md) 
+  [Delete Object (Referencia de la API de Amazon S)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html) 
+  [DeleteBucket (Referencia de la API de Amazon S)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETE.html) 

# Carga de contenido de texto insertado en Amazon S3
<a name="pstools-s3-upload-in-line-text"></a>

El cmdlet `Write-S3Object` permite cargar contenido de texto insertado en Amazon S3. Con el parámetro `-Content` (alias `-Text`), puede especificar el contenido de texto que debe cargarse en Amazon S3 sin necesidad de incluirlo primero en un archivo. El parámetro acepta cadenas sencillas de una sola línea, así como cadenas de varias líneas.

```
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
```