

# Descripción de claves de objeto mediante programación
<a name="ListingKeysUsingAPIs"></a>

En Amazon S3, las claves se pueden describir por prefijo. Puede elegir un prefijo común para los nombres de claves relacionadas y marcar estas claves con un carácter especial que delimite la jerarquía. A continuación, puede utilizar la operación de lista para seleccionar y examinar las claves jerárquicamente. La operación es similar a cómo se almacenan los archivos en directorios de un sistema de archivos. 

Amazon S3 expone una operación de lista que le permite enumerar las claves que contiene un bucket. Las claves se seleccionan para la lista por bucket y prefijo. Por ejemplo, considere un bucket llamado “`dictionary`” que contiene una clave para cada palabra en inglés. Podría realizar una llamada para enumerar todas las claves en ese bucket que comiencen por la letra "q". Los resultados de listas siempre se devuelven en orden binario UTF-8. 

 Tanto las operaciones de lista SOAP como REST devuelven un documento XML que contiene los nombres de las claves coincidentes e información sobre el objeto identificado por cada clave. 

**nota**  
 Las API de SOAP para Amazon S3 no están disponibles para nuevos clientes y se acercan al fin de la vida útil (EOL) el 31 de agosto de 2025. Le recomendamos que utilice la API REST o los SDK de AWS. 

Los grupos de claves que comparten un prefijo que termina con un delimitador especial se pueden acumular por el prefijo común para realizar las listas. Esto permite que las aplicaciones organicen y exploren sus claves jerárquicamente, del mismo modo que se organizarían los archivos en directorios en un sistema de archivos. 

Por ejemplo, para ampliar el bucket dictionary de modo que contenga más palabras, además de las que están en inglés, podría formar claves si pone un prefijo a cada palabra con su idioma y un delimitador, como "`French/logical`". Con este esquema de nomenclatura y la función de listado jerárquico, podría recuperar una lista de palabras solo en francés. También podría explorar la lista de nivel superior de idiomas disponibles sin tener que iterar por todas las claves que intervienen lexicográficamente. Para obtener más información sobre este aspecto de la descripción, consulte [Organizar objetos con prefijos](using-prefixes.md). 

**API de REST**  
Si su aplicación lo requiere, puede enviar solicitudes REST directamente. Puede enviar una solicitud GET para devolver algunos o todos los objetos de un bucket, o puede usar criterios de selección para devolver un subconjunto de los objetos en un bucket. Para obtener más información, consulte [Bucket GET (List Objects) versión 2](https://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html) en la *Referencia de API de Amazon Simple Storage Service*.

**Eficacia de implementación de listas**  
El rendimiento de la lista no se ve afectado sustancialmente por el número total de claves en el bucket. Tampoco se ve afectado por la presencia o ausencia de los argumentos `prefix`, `marker`, `maxkeys` o `delimiter`. 

**Iteración en resultados de varias páginas**  
Dado que los buckets pueden contener un número virtualmente ilimitado de claves, los resultados completos de una consulta de lista pueden ser extremadamente grandes. Para administrar conjuntos de resultados grandes, la API de Amazon S3 admite la paginación, de modo que los divide en varias respuestas. Cada respuesta de lista de claves devuelve una página con hasta 1000 claves y un indicador que identifica si la respuesta está incompleta. Enviará una serie de solicitudes de listas de claves hasta que haya recibido todas las claves. AWS Las bibliotecas de encapsulamiento de los SDK facilitan la misma paginación. 

## Ejemplos
<a name="ListingKeysUsingAPIs_examples"></a>

Cuando publique todos los objetos de su bucket, tenga en cuenta que debe tener el permiso `s3:ListBucket`.

------
#### [ CLI ]

**list-objects**  
En el siguiente ejemplo se utiliza el comando `list-objects` para mostrar los nombres de todos los objetos del bucket especificado:  

```
aws s3api list-objects --bucket text-content --query 'Contents[].{Key: Key, Size: Size}'
```
En el ejemplo se utiliza el argumento `--query` para filtrar la salida de `list-objects` hasta el valor de la clave y el tamaño de cada objeto  
Para obtener más información sobre los objetos, consulte [Trabajo con objetos en Amazon S3](uploading-downloading-objects.md).  
+  Para obtener detalles de la API, consulte [ListObjects](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-objects.html) en la *Referencia de comandos de AWS CLI*. 

**ls**  
El siguiente comando enumera todos los objetos y prefijos de un bucket mediante el comando `ls`.  
Para utilizar este comando de ejemplo, sustituya **amzn-s3-demo-bucket** con el nombre de su bucket.  

```
$ aws s3 ls s3://amzn-s3-demo-bucket
```
+  Para obtener más información sobre el comando de alto nivel `ls`, consulte [Enumerar buckets y objetos](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-listing-buckets) en *Guía del usuario de AWS Command Line Interface*. 

------
#### [ PowerShell ]

**Herramientas para PowerShell V4**  
**Ejemplo 1: este comando recupera la información sobre todos los elementos del bucket “test-files".**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket
```
**Ejemplo 2: este comando recupera la información sobre el elemento “sample.txt” del bucket “test-files".**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt
```
**Ejemplo 3: este comando recupera la información sobre todos los elementos con el prefijo “sample” del bucket “test-files".**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket -KeyPrefix sample
```
+  Para obtener información sobre la API, consulte [ListObjects](https://docs.aws.amazon.com/powershell/v4/reference) en la *Referencia de Cmdlet de Herramientas de AWS para PowerShell (V4)*. 

**Herramientas para PowerShell V5**  
**Ejemplo 1: este comando recupera la información sobre todos los elementos del bucket “test-files".**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket
```
**Ejemplo 2: este comando recupera la información sobre el elemento “sample.txt” del bucket “test-files".**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt
```
**Ejemplo 3: este comando recupera la información sobre todos los elementos con el prefijo “sample” del bucket “test-files".**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket -KeyPrefix sample
```
+  Para obtener información sobre la API, consulte [ListObjects](https://docs.aws.amazon.com/powershell/v5/reference) en la *Referencia de Cmdlet de Herramientas de AWS para PowerShell (V5)*. 

------