Organizar objetos con prefijos - Amazon Simple Storage Service

Organizar objetos con prefijos

Puede utilizar prefijos para organizar los datos que almacena en los buckets de Amazon S3. Un prefijo es una cadena de caracteres al principio del nombre de la clave de objeto. Los prefijos pueden tener cualquier longitud, dentro de la longitud máxima permitida para los nombres de la clave de objeto (1024 bytes). Puede considerar los prefijos como una forma de organizar los datos similar a los directorios. No obstante, los prefijos no son directorios.

La búsqueda por prefijos limita los resultados solo a aquellas claves que comiencen con el prefijo especificado. El delimitador hace que una operación de lista acumule todas las claves que comparten un prefijo común en un solo resultado de lista de resumen.

El objetivo de los parámetros de prefijo y delimitador es ayudarle a organizar sus claves jerárquicamente y explorarlas. Para hacerlo, escoja un delimitador para su bucket, como una barra inclinada (/), que no esté presente en ninguno de sus nombres de clave esperados. Puede usar otro carácter como delimitador. No hay nada especial en el carácter de la barra inclinada (/), pero es un delimitador de prefijos muy común. A continuación, cree sus nombres de claves concatenando todos los niveles que contenga la jerarquía, separando cada nivel con el delimitador.

Por ejemplo, si estuviera almacenando información sobre ciudades, puede que quiera organizadla de forma natural por continente, país y provincia o estado. Dado que estos nombres no suelen contener puntuación, podría usar la barra inclinada (/) como delimitador. En el siguiente ejemplo se usa la barra inclinada (/) como delimitador:

  • Europa/Francia/Nueva Aquitania/Burdeos

  • Norteamérica/Canadá/Quebec/Montreal

  • Norteamérica/EE. UU./Washintgon/Bellevue

  • Norteamérica/EE. UU./Washintgon/Seattle

Si almacena datos para todas las ciudades del mundo siguiendo este esquema, sería extraño administrar un espacio de nombres plano para las claves. Si utiliza Prefix y Delimiter en la operación de lista, puede aprovechar la jerarquía que ha creado para enumerar los datos. Por ejemplo, para enumerar todas las zonas de EE. UU., establezca Delimiter='/' y Prefix='North America/USA/'. Para enumerar todas las provincias de Canadá para las que tenga datos, establezca Delimiter='/' y Prefix='North America/Canada/'.

Para obtener más información sobre delimitadores, prefijos y carpetas anidadas, consulte Diferencia entre los prefijos y las carpetas anidadas.

Descripción de objetos con prefijos y delimitadores

Si emite una solicitud de lista con un delimitador, puede explorar su jerarquía solo en un nivel, omitiendo y resumiendo las claves (posiblemente millones de ellas) anidadas en niveles más profundos. Por ejemplo, supongamos que tiene un bucket (DOC-EXAMPLE-BUCKET) con las siguientes claves:

sample.jpg

photos/2006/January/sample.jpg

photos/2006/February/sample2.jpg

photos/2006/February/sample3.jpg

photos/2006/February/sample4.jpg

El bucket de ejemplo solo tiene el objeto sample.jpg en el nivel raíz. Para enumerar solo los objetos en el nivel raíz del bucket, envíe una solicitud GET al bucket con el carácter delimitador barra (/). En respuesta, Amazon S3 devuelve la clave de objeto sample.jpg porque no contiene el carácter delimitador /. Todas las demás claves contienen el carácter delimitador. Amazon S3 agrupa estas claves y devuelve un solo elemento CommonPrefixes con un valor de prefijo photos/, que es una subcadena desde el comienzo de estas claves hasta la primera instancia del delimitador especificado.

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>DOC-EXAMPLE-BUCKET</Name> <Prefix></Prefix> <Marker></Marker> <MaxKeys>1000</MaxKeys> <Delimiter>/</Delimiter> <IsTruncated>false</IsTruncated> <Contents> <Key>sample.jpg</Key> <LastModified>2011-07-24T19:39:30.000Z</LastModified> <ETag>&quot;d1a7fb5eab1c16cb4f7cf341cf188c3d&quot;</ETag> <Size>6</Size> <Owner> <ID>75cc57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID> <DisplayName>displayname</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> <CommonPrefixes> <Prefix>photos/</Prefix> </CommonPrefixes> </ListBucketResult>

Para obtener más información sobre cómo describir claves de objeto mediante programación, consulte Descripción de claves de objeto mediante programación.