Descripción de claves de objeto mediante programación
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
La compatibilidad con SOAP por HTTP está obsoleta, pero SOAP aún se encuentra disponible con HTTPS. Las características nuevas de Amazon S3 no son compatibles con SOAP. En vez de usar SOAP, le recomendamos que utilice la API de 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.
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 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
En los siguientes ejemplos de código, se muestra cómo utilizar ListObjects
.