

# Uso de Amazon S3 en la AWS CLI
<a name="cli-services-s3"></a>


| Una introducción a Amazon Simple Storage Service (Amazon S3) | 
| --- | 
|    | 

Para obtener acceso a las características de Amazon Simple Storage Service (Amazon S3), utilice la AWS Command Line Interface (AWS CLI). Amazon S3 es un servicio de almacenamiento de objetos altamente escalable y duradero. Amazon S3 está diseñado para ofrecer una capacidad de almacenamiento prácticamente ilimitada, lo que lo convierte en una solución ideal para una amplia gama de necesidades de almacenamiento y administración de datos.

Amazon S3 permite almacenar y recuperar cualquier cantidad de datos en forma de objetos, desde archivos pequeños hasta conjuntos de datos de gran tamaño. Cada objeto se almacena en un contenedor denominado bucket, al que se puede acceder y que se puede administrar mediante la Consola de administración de AWS o programáticamente mediante los AWS SDK, las herramientas y la AWS CLI.

Amazon S3, con almacenamiento básico, también ofrece una gama de características que incluyen la administración del ciclo de vida, el control de versiones, la escalabilidad y la seguridad. Se integran con otros Servicios de AWS, lo que le permite crear soluciones basadas en la nube que se adapten a sus necesidades.

La AWS CLI ofrece dos niveles de comandos para obtener acceso a Amazon S3:
+ **s3**: comandos de alto ‎nivel personalizados, creados específicamente para AWS CLI, que simplifican la realización de tareas comunes, como crear, manipular, eliminar y sincronizar objetos y buckets.
+ **s3api**: expone el acceso directo a todas las operaciones de la API de Simple Storage Service (Amazon S3), lo que le permite llevar a cabo operaciones avanzadas.

**Topics**
+ [Uso de comandos de alto nivel (s3) en la AWS CLI](cli-services-s3-commands.md)
+ [Uso de comandos de nivel de API (s3api) en la AWS CLI](cli-services-s3-apicommands.md)
+ [Ejemplo de scripts para el ciclo de vida para un bucket de Amazon S3 en la AWS CLI](cli-services-s3-lifecycle-example.md)

# Uso de comandos de alto nivel (s3) en la AWS CLI
<a name="cli-services-s3-commands"></a>

En este tema se describe alguno de los comandos que puede utilizar para administrar los buckets y los objetos de Amazon S3 mediante comandos [https://docs.aws.amazon.com/cli/latest/reference/s3/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html) en la AWS CLI. Para ver los comandos que no se tratan en este tema y ejemplos de comandos adicionales, consulte los comandos [https://docs.aws.amazon.com/cli/latest/reference/s3/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html) en la *Referencia de la AWS CLI*.

Los comandos de `aws s3` de alto nivel simplifican la administración de objetos de Amazon S3. Estos comandos le permiten administrar el contenido de Amazon S3 dentro de sí mismo y con directorios locales.

**Topics**
+ [Requisitos previos](#using-s3-commands-prereqs)
+ [Antes de comenzar](#using-s3-commands-before)
+ [Crear un bucket](#using-s3-commands-managing-buckets-creating)
+ [Lista de buckets y objetos](#using-s3-commands-listing-buckets)
+ [Eliminar buckets](#using-s3-commands-delete-buckets)
+ [Eliminar objetos](#using-s3-commands-delete-objects)
+ [Mover objetos](#using-s3-commands-managing-objects-move)
+ [Copia de objetos](#using-s3-commands-managing-objects-copy)
+ [Sincronización de objetos](#using-s3-commands-managing-objects-sync)
+ [Opciones utilizadas con frecuencia para los comandos s3](#using-s3-commands-managing-objects-param)
+ [Recursos](#using-s3-commands-managing-buckets-references)

## Requisitos previos
<a name="using-s3-commands-prereqs"></a>

Para ejecutar los comandos de `s3`, debe:
+ Instalar y configurar la AWS CLI. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md), y [Credenciales de autenticación y acceso para la AWS CLI](cli-chap-authentication.md).
+ El perfil que utilice debe tener permisos que permitan las operaciones que AWS realizó por los ejemplos.
+ Comprenda estos términos de Amazon S3:
  + **Bucket**: una carpeta de Amazon S3 de nivel superior.
  + **Prefijo**: una carpeta de Amazon S3 en un bucket.
  + **Objeto**: cualquier artículo alojado en un bucket de Amazon S3.

## Antes de comenzar
<a name="using-s3-commands-before"></a>

En esta sección se describen algunas cosas que hay que tener en cuenta antes de utilizar los comandos de `aws s3`.

### Cargas de objetos grandes
<a name="using-s3-commands-before-large"></a>

Cuando utiliza comandos `aws s3` para cargar objetos grandes en un bucket de Amazon S3, la AWS CLI automáticamente realiza una carga multiparte. Los errores de carga no pueden reanudarse cuando se usan estos comandos de `aws s3`. 

Si la carga multiparte falla debido a que se agota el tiempo de espera, o si canceló en forma manual en la AWS CLI, la AWS CLI detiene la carga y limpia los archivos que se han creado. Este proceso puede tardar varios minutos. 

Si el proceso de carga o limpieza multiparte se cancela por un comando de cierre o un error del sistema, los archivos creados permanecen en el bucket de Amazon S3. Para limpiar la carga multiparte, utilice el comando [s3api abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html).

### Propiedades de archivo y etiquetas en copias multiparte
<a name="using-s3-commands-before-tags"></a>

Cuando se utiliza la versión 1 de la AWS CLI de comandos en el espacio de nombres de `aws s3` para copiar un archivo de una ubicación de bucket de Amazon S3 a otra ubicación de bucket de Amazon S3, y esa operación utiliza la [copia multiparte](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CopyingObjctsMPUapi.html), no se copian propiedades de archivo del objeto fuente en el objeto de destino.

De forma predeterminada, los comandos de la versión 2 de la AWS CLI del espacio de nombres de `s3` que realizan copias multiparte transfieren todas las etiquetas y el siguiente conjunto de propiedades del origen a la copia de destino: `content-type`, `content-language`, `content-encoding`, `content-disposition`, `cache-control`, `expires` y `metadata`.

Esto puede dar lugar a llamadas de la API de AWS adicionales al punto de enlace de Amazon S3 que no se habrían realizado si hubiera utilizado la versión 1 de la AWS CLI. Estos pueden incluir: `HeadObject`, `GetObjectTagging` y `PutObjectTagging`.

Si necesita cambiar este comportamiento predeterminado en los comandos de la versión 2 de la AWS CLI, utilice el parámetro `--copy-props` para especificar una de las siguientes opciones:
+ **predeterminada**: el valor predeterminado. Especifica que la copia incluye todas las etiquetas asociadas al objeto de origen y las propiedades abarcadas por el parámetro `--metadata-directive` utilizado para copias no multiparte: `content-type`, `content-language`, `content-encoding`, `content-disposition`, `cache-control`, `expires` y `metadata`.
+ **directiva de metadatos**: especifica que la copia incluye solo las propiedades abarcadas por el parámetro `--metadata-directive` utilizado para copias no multiparte. No copia ninguna etiqueta.
+ **ninguno**: especifica que la copia no incluye ninguna de las propiedades del objeto fuente.

## Crear un bucket
<a name="using-s3-commands-managing-buckets-creating"></a>

Utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html) para crear un bucket. Los nombres de los buckets deben ser ***globalmente*** únicos (únicos en todo Amazon S3) y deben ser compatibles con DNS. 

Los nombres de los buckets pueden contener minúsculas, números, guiones y puntos. Los nombres de los buckets solo pueden empezar y terminar con una letra o número, y no pueden contener un punto junto a un guion u otro punto. 

**Sintaxis**

```
$ aws s3 mb <target> [--options]
```

### Ejemplos de s3 mb
<a name="using-s3-commands-managing-buckets-creating-examples"></a>

En el siguiente ejemplo se crea el bucket `s3://amzn-s3-demo-bucket`.

```
$ aws s3 mb s3://amzn-s3-demo-bucket
```

## Lista de buckets y objetos
<a name="using-s3-commands-listing-buckets"></a>

Para mostrar los buckets, carpetas u objetos, utilice el comando ‎[https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html). El uso del comando sin destino u opciones muestra todos los buckets. 

**Sintaxis**

```
$ aws s3 ls <target> [--options]
```

Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos, consulte [Opciones utilizadas con frecuencia para los comandos s3](#using-s3-commands-managing-objects-param). Para ver una lista completa de las opciones ‎disponibles, consulte [https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html)‎ en la *Referencia de comandos de AWS CLI*.

### Ejemplos de s3 ls
<a name="using-s3-commands-managing-objects-list-examples"></a>

En el siguiente ejemplo se enumeran todos los buckets de Amazon S3.

```
$ aws s3 ls
2018-12-11 17:08:50 amzn-s3-demo-bucket1
2018-12-14 14:55:44 amzn-s3-demo-bucket2
```

El siguiente comando muestra todos los objetos y prefijos de un bucket. En este resultado de ejemplo, el prefijo `example/` tiene un archivo llamado `MyFile1.txt`.

```
$ aws s3 ls s3://amzn-s3-demo-bucket
                           PRE example/
2018-12-04 19:05:48          3 MyFile1.txt
```

Para filtrar la salida por un prefijo específico, inclúyalo en el comando. El siguiente comando muestra los objetos en *bucket-name/example/* (es decir, los objetos que estén en *bucket-name* filtrados por el prefijo *example/*).

```
$ aws s3 ls s3://amzn-s3-demo-bucket/example/
2018-12-06 18:59:32          3 MyFile1.txt
```

Para mostrar solo los buckets y los objetos de una región específica, use las opciones de `--region`

```
$ aws s3 ls --region us-east-2
2018-12-06 18:59:32          3 MyFile1.txt
```

Si tiene una lista grande de buckets y objetos, puede paginar los resultados con las opciones `--max-items` o `--page-size`. La opción `--max-items` limita el número total de buckets y objetos que se devuelven en una llamada y la opción `--page-size` limita el número de objetos que se muestran en una página.

```
$ aws s3 ls --max-items 100 --page-size 10
```

Para obtener más información sobre paginación, consulte [Cómo usar el parámetro —page-size](cli-usage-pagination.md#cli-usage-pagination-pagesize) y [Cómo usar el parámetro —max-items](cli-usage-pagination.md#cli-usage-pagination-maxitems).

## Eliminar buckets
<a name="using-s3-commands-delete-buckets"></a>

Para eliminar un bucket, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/s3/rb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rb.html). 

**Sintaxis**

```
$ aws s3 rb <target> [--options]
```

### Ejemplos de s3 rb
<a name="using-s3-commands-removing-buckets-examples"></a>

En el siguiente ejemplo se quita el bucket `s3://amzn-s3-demo-bucket`.

```
$ aws s3 rb s3://amzn-s3-demo-bucket
```

De forma predeterminada, el bucket debe estar vacío para que la operación se realice correctamente. Para eliminar un bucket que no esté vacío, debe incluir la opción `--force`. Si utiliza un bucket versionado que contenga objetos eliminados previamente, pero que se conservan, este comando *no* le permitirá eliminar el bucket. En primer lugar, debe eliminar todo el contenido.

El siguiente ejemplo elimina todos los objetos y los prefijos en el bucket, luego elimina el bucket.

```
$ aws s3 rb s3://amzn-s3-demo-bucket --force
```

## Eliminar objetos
<a name="using-s3-commands-delete-objects"></a>

Para eliminar objetos en un bucket o en el directorio local, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html). 

**Sintaxis**

```
$ aws s3 rm  <target> [--options]
```

Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos, consulte [Opciones utilizadas con frecuencia para los comandos s3](#using-s3-commands-managing-objects-param). Para ver una lista completa de opciones, consulte [https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html)‎ en la *Referencia de comandos de AWS CLI*.

### Ejemplos de s3 rm
<a name="using-s3-commands-delete-objects-examples"></a>

En el siguiente ejemplo se elimina `filename.txt` de `s3://amzn-s3-demo-bucket/example`.

```
$ aws s3 rm s3://amzn-s3-demo-bucket/example/filename.txt
```

En el siguiente ejemplo se eliminan todos los objetos de `s3://amzn-s3-demo-bucket/example` utilizando la opción `--recursive`.

```
$ aws s3 rm s3://amzn-s3-demo-bucket/example --recursive
```

## Mover objetos
<a name="using-s3-commands-managing-objects-move"></a>

Use el comando [https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html) para mover objetos de un bucket o un directorio local. El comando `s3 mv` copia el objeto de origen o el archivo de origen en el destino especificado y, a continuación, elimina dicho objeto o archivo.

**Sintaxis**

```
$ aws s3 mv <source> <target> [--options]
```

Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos, consulte [Opciones utilizadas con frecuencia para los comandos s3](#using-s3-commands-managing-objects-param). Para ver una lista completa de las opciones ‎disponibles, consulte [https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html)‎ en la *Referencia de comandos de AWS CLI*.

**aviso**  
Si utiliza algún tipo de ARN de punto de acceso o alias de punto de acceso en las URI de origen o destino de Amazon S3, debe prestar especial atención a que los URI de Amazon S3 de origen y destino se resuelvan en diferentes buckets subyacentes. Si los buckets de origen y destino son los mismos, el archivo u objeto de origen se puede mover sobre sí mismo, lo que puede provocar la eliminación accidental dicho archivo u objeto. Para comprobar que los buckets de origen y destino no son los mismos, utilice el parámetro `--validate-same-s3-paths` o defina la variable de entorno ``AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS`` en `true`.

### Ejemplos de s3 mv
<a name="using-s3-commands-managing-objects-move-examples"></a>

En el siguiente ejemplo se mueven todos los objetos de `s3://amzn-s3-demo-bucket/example` a `s3://amzn-s3-demo-bucket/`.

```
$ aws s3 mv s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
```

En el siguiente ejemplo se mueve un archivo local del directorio de trabajo actual al bucket de Amazon S3 con el comando de `s3 mv`.

```
$ aws s3 mv filename.txt s3://amzn-s3-demo-bucket
```

En el siguiente ejemplo se mueve un archivo del bucket de Amazon S3 a su directorio de trabajo actual, donde `./` especifica su directorio de trabajo actual.

```
$ aws s3 mv s3://amzn-s3-demo-bucket/filename.txt ./
```

## Copia de objetos
<a name="using-s3-commands-managing-objects-copy"></a>

‎Use el comando [https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) para copiar objetos de un bucket o un directorio local. 

**Sintaxis**

```
$ aws s3 cp <source> <target> [--options]
```

Puede usar el parámetro guión para el streaming de archivos a la entrada estándar (`stdin`) o salida estándar (`stdout`). 

**aviso**  
Si está utilizando PowerShell, el shell podría alterar la codificación de un CRLF o agregar un CRLF a la entrada o salida canalizada, o a la salida redirigida.

El comando `s3 cp` utiliza la siguiente sintaxis para cargar una secuencia de archivos desde `stdin` hasta un bucket especificado.

**Sintaxis**

```
$ aws s3 cp - <target> [--options]
```

El comando `s3 cp` utiliza la siguiente sintaxis para descargar una secuencia de archivos de Amazon S3 para `stdout`.

**Sintaxis**

```
$ aws s3 cp <target> [--options] -
```

Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos, consulte [Opciones utilizadas con frecuencia para los comandos s3](#using-s3-commands-managing-objects-param). Para ver una lista completa de opciones, consulte [https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) en ‎la *Referencia de comandos de AWS CLI*.

### `s3 cp`Ejemplos de
<a name="using-s3-commands-managing-objects-copy-examples"></a>

El siguiente ejemplo copia todos los registros de `s3://amzn-s3-demo-bucket/example` a `s3://amzn-s3-demo-bucket/`.

```
$ aws s3 cp s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
```

En el siguiente ejemplo se copian un archivo local del directorio de trabajo actual en el bucket de Amazon S3 con el`s3 cp`comando.

```
$ aws s3 cp filename.txt s3://amzn-s3-demo-bucket
```

En el siguiente ejemplo se copia un archivo de su bucket de Amazon S3 en su directorio de trabajo actual, donde `./` especifica su directorio de trabajo actual.

```
$ aws s3 cp s3://amzn-s3-demo-bucket/filename.txt ./
```

En el siguiente ejemplo se utiliza la repetición para transmitir el texto “hola mundo” al archivo `s3://bucket-name/filename.txt`.

```
$ echo "hello world" | aws s3 cp - s3://amzn-s3-demo-bucket/filename.txt
```

En el ejemplo siguiente se transmite el archivo `s3://amzn-s3-demo-bucket/filename.txt` a `stdout` y se imprime el contenido en la consola.

```
$ aws s3 cp s3://amzn-s3-demo-bucket/filename.txt -
hello world
```

En el siguiente ejemplo se transmiten los contenidos de `s3://bucket-name/pre` a `stdout`, se utiliza el comando `bzip2` para comprimir los archivos y se carga el nuevo archivo comprimido llamado `key.bz2` a `s3://bucket-name`.

```
$ aws s3 cp s3://amzn-s3-demo-bucket/pre - | bzip2 --best | aws s3 cp - s3://amzn-s3-demo-bucket/key.bz2
```

## Sincronización de objetos
<a name="using-s3-commands-managing-objects-sync"></a>

‎El comando [https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) sincroniza el contenido de un bucket y un directorio o los contenidos de dos buckets. Normalmente, `s3 sync` copia archivos u objetos que estén desactualizados o que falten entre el origen y el destino. Sin embargo, también puede introducir la opción `--delete` para quitar archivos u objetos desde el destino que no se encuentran en el origen. 

**Sintaxis**

```
$ aws s3 sync <source> <target> [--options]
```

Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos, consulte [Opciones utilizadas con frecuencia para los comandos s3](#using-s3-commands-managing-objects-param). Para ver una lista completa de opciones, consulte [https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html)‎ en la *Referencia de comandos de AWS CLI*.

### Ejemplos de sincronización de s3
<a name="using-s3-commands-managing-objects-sync-examples"></a>

En el siguiente ejemplo se sincroniza el contenido de un prefijo Amazon S3 llamado *ruta* en el bucket denominado *amzn-s3-demo-bucket* con el directorio activo actual. 

`s3 sync` actualiza los archivos que tengan un tamaño o tiempo de modificación diferente que los archivos con el mismo nombre en el destino. La salida muestra las operaciones específica realizadas durante la sincronización. Observe que la operación sincroniza de forma recursiva el subdirectorio `MySubdirectory` y su contenido con `s3://amzn-s3-demo-bucket/path/MySubdirectory`.

```
$ aws s3 sync . s3://amzn-s3-demo-bucket/path
upload: MySubdirectory\MyFile3.txt to s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt
upload: MyFile2.txt to s3://amzn-s3-demo-bucket/path/MyFile2.txt
upload: MyFile1.txt to s3://amzn-s3-demo-bucket/path/MyFile1.txt
```

En el siguiente ejemplo, que amplía el anterior, se muestra cómo funciona la opción `--delete`.

```
// Delete local file
$ rm ./MyFile1.txt

// Attempt sync without --delete option - nothing happens
$ aws s3 sync . s3://amzn-s3-demo-bucket/path

// Sync with deletion - object is deleted from bucket
$ aws s3 sync . s3://amzn-s3-demo-bucket/path --delete
delete: s3://amzn-s3-demo-bucket/path/MyFile1.txt

// Delete object from bucket
$ aws s3 rm s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt
delete: s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt

// Sync with deletion - local file is deleted
$ aws s3 sync s3://amzn-s3-demo-bucket/path . --delete
delete: MySubdirectory\MyFile3.txt

// Sync with Infrequent Access storage class
$ aws s3 sync . s3://amzn-s3-demo-bucket/path --storage-class STANDARD_IA
```

Cuando se utiliza la opción `--delete`, las opciones `--exclude` y `--include` pueden filtrar archivos u objetos para eliminarlos durante una operación de `s3 sync`. En este caso, la cadena del parámetro debe especificar qué archivos se deben excluir o incluir en la eliminación, en el contexto del directorio o bucket de destino. A continuación se muestra un ejemplo.

```
Assume local directory and s3://amzn-s3-demo-bucket/path currently in sync and each contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt
'''

// Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while remote MyFile1.txt is not.
$ aws s3 sync . s3://amzn-s3-demo-bucket/path --delete --exclude "path/MyFile?.txt"
delete: s3://amzn-s3-demo-bucket/path/MyFile88.txt
'''

// Sync with delete, excluding MyFile2.rtf - local file is NOT deleted
$ aws s3 sync s3://amzn-s3-demo-bucket/path . --delete --exclude "./MyFile2.rtf"
download: s3://amzn-s3-demo-bucket/path/MyFile1.txt to MyFile1.txt
'''

// Sync with delete, local copy of MyFile2.rtf is deleted
$ aws s3 sync s3://amzn-s3-demo-bucket/path . --delete
delete: MyFile2.rtf
```

## Opciones utilizadas con frecuencia para los comandos s3
<a name="using-s3-commands-managing-objects-param"></a>

Las siguientes opciones se utilizan con frecuencia para los comandos descritos en este tema. ‎Para obtener una lista completa de las opciones que puede utilizar en un comando, consulte el comando específico en la [Guía de referencia de la AWS CLI versión 2](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**acl**  
`s3 sync` y `s3 cp` pueden utilizar la opción `--acl`. Esto le permite configurar los permisos de acceso para archivos copiados en Amazon S3. La opción `--acl` admite los valores `private`, `public-read` y `public-read-write`. Para obtener más información, consulte [ACL predefinidas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) en la *Guía del usuario de Amazon S3*.  

```
$ aws s3 sync . s3://amzn-s3-demo-bucket/path --acl public-read
```

**excluya**  
Cuando utiliza el comando `s3 cp`, `s3 mv`, `s3 sync` o `s3 rm`, puede filtrar los resultados mediante la opción `--exclude` o `--include`. La opción `--exclude` establece reglas para excluir únicamente objetos del comando y las opciones se aplican en el orden especificado. Esto se muestra en el siguiente ejemplo.  

```
Local directory contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt

// Exclude all .txt files, resulting in only MyFile2.rtf being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt"

// Exclude all .txt files but include all files with the "MyFile*.txt" format, resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt"

// Exclude all .txt files, but include all files with the "MyFile*.txt" format, but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and MyFile88.txt being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt"
```

**incluir**  
Cuando utiliza el comando `s3 cp`, `s3 mv`, `s3 sync` o `s3 rm`, puede filtrar los resultados utilizando la opción `--exclude` o `--include`. La opción `--include` establece reglas para incluir únicamente objetos específicos para el comando y las opciones se aplican en el orden especificado. Esto se muestra en el siguiente ejemplo.  

```
Local directory contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt

// Include all .txt files, resulting in MyFile1.txt and MyFile88.txt being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt"

// Include all .txt files but exclude all files with the "MyFile*.txt" format, resulting in no files being copied
$ aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt"

// Include all .txt files, but exclude all files with the "MyFile*.txt" format, but include all files with the "MyFile?.txt" format resulting in MyFile1.txt being copied

$ aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt" --include "MyFile?.txt"
```

**concesión**  
Los comandos `s3 cp`, `s3 mv` y `s3 sync` incluyen una opción `--grants` que puede usar para conceder permisos sobre el objeto a usuarios o grupos específicos. Configure la opción `--grants` para obtener una lista de permisos mediante la siguiente sintaxis. Reemplace `Permission`, `Grantee_Type` y `Grantee_ID` por sus propios valores.  
**Sintaxis**  

```
--grants Permission=Grantee_Type=Grantee_ID
         [Permission=Grantee_Type=Grantee_ID ...]
```
Cada valor contiene los siguientes elementos:  
+ *Permiso*: especifica los permisos concedidos. Se puede establecer en `read`, `readacl`, `writeacl` o `full`.
+ *Tipo de beneficiario*: especifica cómo identificar al beneficiario. Se puede establecer en `uri`, `emailaddress` o `id`.
+ *Grantee\$1ID*: especifica el beneficiario del permiso según *Grantee\$1Type*.
  + `uri`: URI del grupo. Para obtener más información, consulte la sección [¿Quién es un beneficiario?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ACLOverview.html#SpecifyingGrantee)
  + `emailaddress`: dirección de correo electrónico de la cuenta.
  + `id`: ID canónico de la cuenta.
Para obtener más información acerca de cómo controlar el acceso a Amazon S3, consulte la sección de [Control de acceso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingAuthAccess.html).  
En el siguiente ejemplo se copia un objeto en un bucket. Concede permisos `read` sobre el objeto a todos los usuarios y permisos `full` (`read`, `readacl` y `writeacl`) a la cuenta asociada con `user@example.com`.   

```
$ aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com
```
También puede especificar una clase de almacenamiento no predeterminada (`REDUCED_REDUNDANCY` o `STANDARD_IA`) para los objetos que se cargan en Amazon S3. Para ello, utilice la opción `--storage-class`.  

```
$ aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --storage-class REDUCED_REDUNDANCY
```

**no-overwrite**  
Los comandos `s3 cp`, `s3 mv` y `s3 sync` incluyen una opción de `--no-overwrite` que puede utilizar para evitar que se sobrescriban los objetos que ya existen en el destino.  
En el ejemplo siguiente, se copia un objeto de un bucket al directorio local solo si aún no existe en el directorio local.  

```
$ aws s3 cp --no-overwrite s3://amzn-s3-demo-bucket/file.txt file.txt
```
En el ejemplo siguiente, se copian de forma recursiva archivos de un directorio local a un bucket. Solo copiará archivos que ya no existen en el bucket.  

```
$ aws s3 cp --recursive --no-overwrite /path/to/demo-files/ s3://amzn-s3-demo-bucket/demo-files/
```
En el ejemplo siguiente, se mueve un objeto de un directorio local a un bucket solo si aún no existe en la ubicación de destino del bucket.  

```
$ aws s3 mv --no-overwrite file.txt s3://amzn-s3-demo-bucket/file.txt
```
En el ejemplo siguiente, se sincronizan archivos de un directorio local a un bucket. Solo sincronizará archivos que ya no existen en el bucket de destino.  

```
$ aws s3 sync --no-overwrite /path/to/demo-files/ s3://amzn-s3-demo-bucket/demo-files/
```

**recursive**  
Cuando use esta opción, el comando se ejecuta en todos los objetos o archivos del directorio especificado o con el prefijo indicado. En el siguiente ejemplo se elimina `s3://amzn-s3-demo-bucket/path` y todos sus contenidos.  

```
$ aws s3 rm s3://amzn-s3-demo-bucket/path --recursive
```

## Recursos
<a name="using-s3-commands-managing-buckets-references"></a>

**AWS CLI referencia de:**
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/rb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rb.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html)

**Referencia de servicio:**
+ [Uso de buckets de Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingBucket.html) en la *Guía del usuario de Amazon S3*
+ [Uso de objetos de Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingObjects.html) en la *Guía del usuario de Amazon S3*
+ [Listado jerárquico de las claves con un prefijo y un delimitador](https://docs.aws.amazon.com//AmazonS3/latest/userguide/ListingKeysHierarchy.html) en la *Guía del usuario de Amazon S3*
+ [Anulación de cargas multiparte a un bucket de S3 con AWS SDK para .NET (bajo nivel)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/LLAbortMPUnet.html) en la *Guía del usuario de Amazon S3*

# Uso de comandos de nivel de API (s3api) en la AWS CLI
<a name="cli-services-s3-apicommands"></a>

Los comandos de nivel de API (incluidos en el conjunto de comandos de `s3api`) proporcionan acceso directo a las API de Amazon Simple Storage Service (Amazon S3) y permiten realizar algunas operaciones no expuestas en los comandos de `s3` de alto nivel. Estos comandos son el equivalente de los otros servicios de AWS que proporcionan acceso de nivel de API a la funcionalidad de los servicios. Para obtener más información acerca de los comandos `s3`, consulte [Uso de comandos de alto nivel (s3) en la AWS CLI](cli-services-s3-commands.md)

En este tema, se incluyen ejemplos en los que se muestra cómo se usan los comandos de más bajo nivel que se asignan a las API de Amazon S3. Además, puede encontrar ejemplos para cada comando de API de S3 en la sección `s3api` ‎de la [Guía de referencia de la AWS CLI versión 2](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html).

**Topics**
+ [Requisitos previos](#cli-services-s3-apicommands-prereqs)
+ [Aplicación de una ACL personalizada](#cli-services-s3-apicommands-acls)
+ [Configuración de una política de registro](#cli-services-s3-apicommands-logpol)
+ [Recursos](#cli-services-s3-apicommands-resources)

## Requisitos previos
<a name="cli-services-s3-apicommands-prereqs"></a>

Para ejecutar los comandos de `s3api`, debe:
+ Instalar y configurar la AWS CLI. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md), y [Credenciales de autenticación y acceso para la AWS CLI](cli-chap-authentication.md).
+ El perfil que utilice debe tener permisos que permitan las operaciones que AWS realizó por los ejemplos.
+ Comprenda estos términos de Amazon S3:
  + **Bucket**: una carpeta de Amazon S3 de nivel superior.
  + **Prefijo**: una carpeta de Amazon S3 en un bucket.
  + **Objeto**: cualquier artículo alojado en un bucket de Amazon S3.

## Aplicación de una ACL personalizada
<a name="cli-services-s3-apicommands-acls"></a>

Con los comandos de alto nivel, puede utilizar la opción `--acl` para aplicar las listas de control de acceso (ACL) predefinidas en objetos de Amazon S3. Sin embargo, no puede usar ese comando para establecer ACL en todo el bucket. Sin embargo, ‎puede hacerlo con el comando por API ```[put-bucket-acl](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html)`. 

En el siguiente ejemplo se muestra cómo conceder control total a dos usuarios de AWS (*user1@example.com* y *user2@example.com*) y permisos de lectura a todos los usuarios. El identificador para "everyone" (todos) proviene de un URI especial que se pasa como parámetro.

```
$ aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --grant-full-control 'emailaddress="user1@example.com",emailaddress="user2@example.com"' --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'
```

Para obtener más información acerca de cómo construir las ACL, consulte [PUT Bucket acl](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) en la *Referencia de la API de Amazon Simple Storage Service*. Los comandos ACL de `s3api` en la CLI, como `put-bucket-acl`, usan la misma [notación abreviada de argumentos](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-shorthand.html).

## Configuración de una política de registro
<a name="cli-services-s3-apicommands-logpol"></a>

El comando de la API `put-bucket-logging` configura una política de registro del bucket. 

En el siguiente ejemplo, se concede al usuario de AWS *user@example.com* control total sobre los archivos de registro, y todos los usuarios tendrán acceso de lectura a ellos. Tenga en cuenta que el comando `put-bucket-acl` también es necesario para conceder al sistema de entrega de registros de Amazon S3 (especificado por un URI) los permisos necesarios para leer y escribir los registros en el bucket.

```
$ aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --grant-read-acp 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"'
$ aws s3api put-bucket-logging --bucket amzn-s3-demo-bucket --bucket-logging-status file://logging.json
```

El archivo `logging.json` del comando anterior contiene lo siguiente.

```
{
  "LoggingEnabled": {
    "TargetBucket": "amzn-s3-demo-bucket",
    "TargetPrefix": "amzn-s3-demo-bucketLogs/",
    "TargetGrants": [
      {
        "Grantee": {
          "Type": "AmazonCustomerByEmail",
          "EmailAddress": "user@example.com"
        },
        "Permission": "FULL_CONTROL"
      },
      {
        "Grantee": {
          "Type": "Group",
          "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
        },
        "Permission": "READ"
      }
    ]
  }
}
```

## Recursos
<a name="cli-services-s3-apicommands-resources"></a>

**AWS CLI referencia de:**
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-logging.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-logging.html)

**Referencia de servicio:**
+ [Uso de buckets de Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingBucket.html) en la *Guía del usuario de Amazon S3*
+ [Uso de objetos de Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingObjects.html) en la *Guía del usuario de Amazon S3*
+ [Listado jerárquico de las claves con un prefijo y un delimitador](https://docs.aws.amazon.com//AmazonS3/latest/userguide/ListingKeysHierarchy.html) en la *Guía del usuario de Amazon S3*
+ [Anulación de cargas multiparte a un bucket de S3 con AWS SDK para .NET (bajo nivel)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/LLAbortMPUnet.html) en la *Guía del usuario de Amazon S3*

# Ejemplo de scripts para el ciclo de vida para un bucket de Amazon S3 en la AWS CLI
<a name="cli-services-s3-lifecycle-example"></a>

En este tema se utiliza un ejemplo de scripting de Bash para las operaciones del ciclo de vida del bucket de Amazon S3 mediante la AWS Command Line Interface (AWS CLI). ‎En este ejemplo de scripting se utiliza el conjunto de comandos de [https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html). Los scripts de shell son programas diseñados para ejecutarse en una interfaz de línea de comandos.

**Topics**
+ [Antes de comenzar](#cli-services-s3-lifecycle-example-before)
+ [Acerca de este ejemplo](#cli-services-s3-lifecycle-example-about)
+ [Archivos](#cli-services-s3-lifecycle-example-files)
+ [Referencias](#cli-services-s3-lifecycle-example-references)

## Antes de comenzar
<a name="cli-services-s3-lifecycle-example-before"></a>

Antes de que pueda ejecutar cualquiera de los siguientes ejemplos, se debe completar lo siguiente.
+ Instalar y configurar la AWS CLI. Para obtener más información, consulte [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md), y [Credenciales de autenticación y acceso para la AWS CLI](cli-chap-authentication.md).
+ El perfil que utilice debe tener permisos que permitan las operaciones que AWS realizó por los ejemplos.
+ Como práctica recomendada de AWS, conceda a este código privilegios mínimos o solo los permisos necesarios para llevar a cabo una tarea. Para obtener más información, consulte [Concesión de mínimos privilegios](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) en la *Guía del usuario de IAM*.
+ Este código no se ha probado en todas las regiones de AWS. Algunos servicios de AWS solo están disponibles en regiones específicas. Para obtener más información, consulte [Puntos de enlace de servicio y cuotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) en la *Guía de referencia general de AWS*. 
+ La ejecución de este código puede resultar en cargos en su cuenta de AWS. Es su responsabilidad asegurarse de que los recursos creados por este script se eliminen cuando haya terminado con ellos. 

El servicio Amazon S3 utiliza los siguientes términos:
+ Bucket: una carpeta de Amazon S3 de nivel superior.
+ Prefijo: una carpeta de Amazon S3 en un bucket.
+ Objeto: cualquier artículo alojado en un bucket de Amazon S3.

## Acerca de este ejemplo
<a name="cli-services-s3-lifecycle-example-about"></a>

En este ejemplo se muestra cómo interactuar con algunas de las operaciones básicas de Amazon S3 mediante un conjunto de funciones en archivos de script de shell. Las funciones se encuentran en el archivo de script de shell llamado `bucket-operations.sh`. Puede llamar a estas funciones en otro archivo. Cada archivo de script contiene comentarios que describen cada una de las funciones.

Para ver los resultados intermedios de cada paso, ejecute el script con un parámetro `-i`. Para ver el estado actual del bucket o su contenido, puede usar la consola de Amazon S3. El scripting solo pasa al siguiente paso cuando se pulsa **Enter (Intro)** en el símbolo del sistema. 

Para obtener el ejemplo completo y los archivos de script descargables, consulte [Operaciones del ciclo de vida de bucket de Amazon S3](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/s3/bucket-lifecycle-operations) en el *Repositorio de ejemplos de código deAWS* en *GitHub*.

## Archivos
<a name="cli-services-s3-lifecycle-example-files"></a>

El ejemplo contiene los siguientes archivos:

**bucket-operations.sh**  
Este archivo de script principal puede obtenerse de otro archivo. Incluye funciones que realizan las siguientes tareas:  
+ Creación de un bucket y verificación de que existe
+ Copia de un archivo desde el equipo local a un bucket
+ Copia de un archivo desde una ubicación de bucket a otra ubicación de bucket
+ Listado de contenidos de un bucket
+ Eliminación a archivos desde un bucket 
+ Eliminar un bucket
Vea el código de `[bucket-operations.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/s3/bucket-lifecycle-operations/bucket_operations.sh)` en *GitHub*.

**test-bucket-operations.sh**  
El archivo de script de shell `test-bucket-operations.sh` muestra cómo llamar a las funciones mediante el suministro de archivo `bucket-operations.sh` y el llamando a cada una de las funciones. Después de llamar a las funciones, el script de prueba elimina todos los recursos que creó.   
Vea el código de `[test-bucket-operations.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/s3/bucket-lifecycle-operations/test_bucket_operations.sh)` en *GitHub*.

**awsdocs-general.sh**  
El archivo de script `awsdocs-general.sh` contiene funciones de uso general utilizadas en ejemplos de código avanzados para la AWS CLI.  
Vea el código de `[awsdocs-general.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/s3/bucket-lifecycle-operations/awsdocs_general.sh)` en *GitHub*.

## Referencias
<a name="cli-services-s3-lifecycle-example-references"></a>

**AWS CLI referencia de:**
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-bucket.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-bucket.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/head-bucket.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-bucket.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)

**Otra referencia:**
+ [Uso de buckets de Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingBucket.html) en la *Guía del usuario de Amazon S3*
+ [Uso de objetos de Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingObjects.html) en la *Guía del usuario de Amazon S3*
+ Para ver y contribuir al AWS SDK y los ejemplos de código de AWS CLI, consulte el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/) en *GitHub*.