Listado de objetos en un bucket
Funciones
Esta operación muestra los objetos de un bucket. Para usar esta operación, debe tener el permiso para leer el bucket.
Si especifica solo el nombre del bucket en la solicitud, OBS devuelve descripciones de algunos o de todos los objetos (un máximo de objetos 1,000) del bucket. Si también especifica uno o más parámetros entre prefix, marker, max-keys y delimiter en la solicitud, OBS devuelve una lista de objetos basada en la semántica especificada en Tabla 1.
También puede agregar el parámetro versions a la solicitud para listar varias versiones de un objeto en un bucket.
Sintaxis de solicitud
1 2 3 4 |
GET / HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: authorization |
Sintaxis de solicitud (para objetos de varias versiones)
1 2 3 |
GET /?versions HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: authorization |
Parámetros de solicitud
Esta solicitud utiliza parámetros para enumerar algunos objetos en un bucket. Tabla 1 describe los parámetros.
Parámetro |
Descripción |
Obligatorio |
---|---|---|
prefix |
Enumera los objetos que comienzan con el prefijo especificado. Tipo: string |
No |
marker |
Especifica un marcador al enumerar objetos en un bucket. Con un marcador configurado, los objetos después de este marcador se devolverán en orden alfabético. Este campo solo se utiliza para enumerar objetos. Tipo: string |
No |
max-keys |
Especifica el número máximo (de 1 a 1000) de los objetos devueltos (en orden alfabético) en la respuesta. Si el valor está más allá de este intervalo, solo se devuelven los objetos 1,000 de forma predeterminada. Tipo: integer |
No |
delimiter |
Separador utilizado para agrupar nombres de objetos. Si se especifica un prefijo, los objetos con la misma string del prefijo al primer delimitador se agrupan en un solo CommonPrefixes. Si no se especifica ningún prefijo, los objetos con la misma string desde el primer carácter hasta el primer delimitador se agrupan en un solo CommonPrefixes. Por ejemplo, hay tres objetos (abcd, abcde, and bbcde) en un cubo. Si delimiter se establece en d y prefix se establece en a, los objetos abcd y abcde se agrupan en un CommonPrefixes con abcd como prefijo. Si solo delimiter se establece en d, los objetos abcd y abcde se agrupan en un CommonPrefixes con abcd como prefijo, y bbcde se agrupa por separado en otro CommonPrefixes con bbcd como prefijo. Para un sistema de archivos paralelo, si no se especifica este parámetro, todo el contenido del directorio se enumera de forma recursiva por defecto, y también se enumeran los subdirectorios. En escenarios de big data, los sistemas de archivos paralelos generalmente tienen niveles de directorio profundos y cada directorio tiene un gran número de archivos. En tal caso, se recomienda configurar [delimiter=/] para listar el contenido en el directorio actual, pero no listar subdirectorios, mejorando así la eficiencia de la enumeración. Tipo: string |
No |
key-marker |
Posición con la que empezar cuando se enumeran los objetos. Este campo solo se utiliza para enumerar objetos versionados. Tipo: string Valor válido: valor de NextKeyMarker en el cuerpo de respuesta de la última solicitud |
No |
version-id-marker |
Este parámetro solo se aplica cuando el control de versiones está habilitado. Especifica el ID de versión por el que se va a empezar cuando se muestran los objetos de un bucket. Los objetos se enumeran en orden alfabético (un máximo de 1,000 se muestran objetos a la vez). Este parámetro se utiliza junto con el key-marker en la solicitud. Si el valor de version-id-marker no es un ID de versión especificado por key-marker, version-id-marker no es válido. Tipo: string Valor válido: ID de versión del objeto, es decir, el valor de NextVersionIdMarker en el cuerpo de respuesta de la última solicitud |
No |
encoding-type |
Codifica algunos elementos de la respuesta según el tipo especificado. Si Delimiter, Marker (o KeyMarker), Prefix, NextMarker (o NextKeyMarker) y Key contienen caracteres de control que no son compatibles con los estándares XML 1.0, puede configurar encoding-type para que codifique Delimiter, Marker (o KeyMarker), Prefix (incluido Prefix en CommonPrefixes), NextMarker (o NextKeyMarker) y Key en la respuesta. Tipo: string Opción de valor: url |
No |
Encabezados de solicitud
Esta solicitud utiliza encabezados de solicitud comunes. Tabla 3 Tabla 3 enumera los encabezados de solicitud comunes.
Elementos de solicitud
Esta solicitud no contiene elementos.
Sintaxis de respuesta
1 2 3 4 5 6 |
HTTP/1.1 status_code Date: date x-obs-bucket-location: region Content-Type: application/xml Content-Length: length <Response Body> |
Encabezados de respuesta
La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.
Elementos de respuesta
Esta respuesta muestra objetos en formato XML. En Tabla 2 se describen los elementos específicos.
Elemento |
Descripción |
---|---|
ListBucketResult |
Una lista de objetos en un bucket Tipo: XML |
Contents |
Metadatos de objeto Tipo: XML Antepasado: ListBucketResult |
CommonPrefixes |
Información del grupo. Si especifica un delimitador en la solicitud, la respuesta contiene información de grupo de CommonPrefixes. Tipo: XML Antepasado: ListBucketResult |
Delimiter |
El parámetro delimitador especificado en una solicitud Tipo: string Antepasado: ListBucketResult |
EncodingType |
Codifica algunos elementos de la respuesta según el tipo especificado. Si encoding-type se especifica en la solicitud, Delimiter, Marker, Prefix (incluido Prefix de CommonPrefixes), NextMarker y Key en la respuesta se codificarán. Tipo: string Antepasado: ListBucketResult |
ETag |
Resumen MD5 de 128 bits codificado en base64 de un objeto. ETag es el identificador único del contenido del objeto. Se puede utilizar para determinar si se cambia el contenido del objeto. Por ejemplo, si el valor ETag es A cuando se carga un objeto, pero este valor ha cambiado a B cuando se descarga el objeto, indica que se ha cambiado el contenido del objeto. El valor ETag es un hash del objeto. La ETag refleja los cambios en el contenido del objeto, en lugar de los metadatos del objeto. Un objeto cargado o copiado tiene una ETag única después de ser cifrado usando MD5. (Si el objeto está cifrado en el lado del servidor, el valor ETag no es el resumen MD5 del objeto, sino el identificador único calculado mediante la encriptación del lado del servidor.) Tipo: string Antepasado: ListBucketResult.Contents |
Type |
Tipo de objeto. Este parámetro se devuelve cuando el tipo de objeto no es Normal. Tipo: string Antepasado: ListBucketResult.Contents |
ID |
ID de dominio del propietario del objeto Tipo: string Antepasado: ListBucketResult.Contents.Owner |
IsTruncated |
Determina si la lista de objetos devuelta está truncada. El valor true indica que la lista se truncó y false indica que la lista no se truncó. Tipo: boolean Antepasado: ListBucketResult |
Key |
Nombre del objeto Tipo: string Antepasado: ListBucketResult.Contents |
LastModified |
El tiempo (UTC) en la que se modificó por última vez un objeto Tipo: date Antepasado: ListBucketResult.Contents |
Marker |
Marcador para la posición desde la que se mostrarán los objetos de un bucket Tipo: string Antepasado: ListBucketResult |
NextMarker |
Marcador para el último objeto devuelto de la lista. NextMarker se devuelve cuando no se muestran todos los objetos. Puede establecer el valor Marker para que muestre los objetos restantes en las solicitudes de seguimiento. Tipo: string Antepasado: ListBucketResult |
MaxKeys |
Número máximo de objetos devueltos Tipo: string Antepasado: ListBucketResult |
Name |
Nombre del bucket solicitado Tipo: string Antepasado: ListBucketResult |
Owner |
Información del usuario, incluido el ID de dominio y el nombre del propietario del objeto Tipo: XML Antepasado: ListBucketResult.Contents |
DisplayName |
Nombre del propietario del objeto Tipo: string Antepasado: ListBucketResult.Contents.Owner |
Prefix |
Prefijo de un nombre de objeto. Solo se listan los objetos cuyos nombres tienen este prefijo. Tipo: string Antepasado: ListBucketResult |
Size |
Tamaño del objeto, en bytes Tipo: string Antepasado: ListBucketResult.Contents |
StorageClass |
Clase de almacenamiento de un objeto Tipo: string Opciones de valor: STANDARD, WARM, COLD Antepasado: ListBucketResult.Contents |
Elemento |
Descripción |
---|---|
ListVersionsResult |
Contenedor para la lista de objetos (incluidos los objetos con varios ID de versión) Tipo: container |
Name |
Nombre del bucket Tipo: string Antepasado: ListVersionsResult |
EncodingType |
Codifica algunos elementos de la respuesta según el tipo especificado. Si se especifica encoding-type en la solicitud, se codificarán Delimiter, KeyMarker, Prefix (incluido Prefix en CommonPrefixes), NextKeyMarker y Key en la respuesta. Tipo: string Antepasado: ListVersionsResult |
Prefix |
Prefijo de un nombre de objeto. Solo se listan los objetos cuyos nombres tienen este prefijo. Tipo: string Antepasado: ListVersionsResult |
KeyMarker |
Marcador de la clave de objeto desde la que se mostrarán los objetos Tipo: string Antepasado: ListVersionsResult |
VersionIdMarker |
ID de versión del objeto para comenzar cuando se muestran los objetos Tipo: string Antepasado: ListVersionsResult |
NextKeyMarker |
Marcador de clave para el último objeto devuelto de la lista. NextKeyMarker se devuelve cuando no se muestran todos los objetos. Puede establecer el valor KeyMarker para que muestre los objetos restantes en las solicitudes de seguimiento. Tipo: string Antepasado: ListVersionsResult |
NextVersionIdMarker |
Marcador de ID de versión para el último objeto devuelto en la lista. NextVersionIdMarker se devuelve cuando no se muestran todos los objetos. Puede establecer el valor VersionIdMarker para que muestre los objetos restantes en las solicitudes de seguimiento. Tipo: string Antepasado: ListVersionsResult |
MaxKeys |
Número máximo de objetos devueltos Tipo: string Antepasado: ListVersionsResult |
IsTruncated |
Indica si la lista de objetos devuelta está truncada. El valor true indica que la lista se truncó y false indica que la lista no se truncó. Tipo: boolean Antepasado: ListVersionsResult |
Version |
Contenedor de información de versión Tipo: container Antepasado: ListVersionsResult |
DeleteMarker |
Contenedor para objetos con marcadores de eliminación Tipo: container Antepasado: ListVersionsResult |
Key |
Nombre del objeto Tipo: string Antepasado: ListVersionsResult.Version | ListVersionsResult.DeleteMarker |
VersionId |
ID de versión del objeto Tipo: string Antepasado: ListVersionsResult, Version | ListVersionsResult, DeleteMarker |
IsLatest |
Si el objeto es la última versión. Si el valor del parámetro es true, el objeto es la última versión. Tipo: boolean Antepasado: ListVersionsResult.Version | ListVersionsResult.DeleteMarker |
LastModified |
El tiempo (UTC) en la que se modificó por última vez un objeto Tipo: date Antepasado: ListVersionsResult.Version | ListVersionsResult.DeleteMarker |
ETag |
Resumen MD5 de 128 bits codificado en base64 de un objeto. ETag es el identificador único del contenido del objeto. Se puede utilizar para determinar si se cambia el contenido del objeto. La ETag real es el valor hash del objeto. Por ejemplo, si el valor ETag es A cuando se carga un objeto, pero este valor ha cambiado a B cuando se descarga el objeto, indica que se ha cambiado el contenido del objeto. La ETag refleja los cambios en el contenido del objeto, en lugar de los metadatos del objeto. Un objeto cargado o copiado tiene una ETag única después de ser cifrado usando MD5. Tipo: string Ancestro: ListVersionsResult.Version |
Type |
Tipo de objeto. Este parámetro se devuelve cuando el tipo de objeto no es Normal. Tipo: string Ancestro: ListVersionsResult.Version |
Size |
Tamaño del objeto, en bytes Tipo: string Ancestro: ListVersionsResult.Version |
Owner |
Información del usuario, incluido el ID de dominio y el nombre del propietario del objeto Tipo: container Antepasado: ListVersionsResult.Version | ListVersionsResult.DeleteMarker |
ID |
ID de dominio del propietario del objeto Tipo: string Antepasado: ListVersionsResult.Version.Owner | ListVersionsResult.DeleteMarker.Owner |
DisplayName |
Nombre del propietario del objeto Tipo: string Antepasado: ListVersionsResult.Version.Owner | ListVersionsResult.DeleteMarker.Owner |
StorageClass |
Clase de almacenamiento de un objeto Tipo: string Opciones de valor: STANDARD, WARM, COLD Ancestro: ListVersionsResult.Version |
CommonPrefixes |
Información del grupo. Si especifica un delimitador en la solicitud, la respuesta contiene información de grupo de CommonPrefixes. Tipo: container Antepasado: ListVersionsResult |
Prefix |
Indica un prefijo diferente en la información de grupo de CommonPrefixes. Tipo: string Antepasado: ListVersionsResult.CommonPrefixes |
Respuestas de error
No se devuelven respuestas de error especiales. Para obtener más información sobre las respuestas de error, consulte Tabla 2.
Ejemplo de solicitud: Listado de todos los objetos
1 2 3 4 5 6 |
GET / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:28:25 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:KiyoYze4pmRNPYfmlXBfRTVxt8c= |
Ejemplo de respuesta: Listado de todos los objetos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435D34E379ABD93320CB9 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSXiN7GPL/yXM6OSBaYCUV1zcY5OelWp Content-Type: application/xml Date: WED, 01 Jul 2015 02:23:30 GMT Content-Length: 586 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ListBucketResult xmlns="http://obs.ap-southeast-1.myhuaweicloud.com/doc/2015-06-30/"> <Name>examplebucket</Name> <Prefix/> <Marker/> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>object001</Key> <LastModified>2015-07-01T00:32:16.482Z</LastModified> <ETag>"2fa3bcaaec668adc5da177e67a122d7c"</ETag> <Size>12041</Size> <Owner> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> <DisplayName>ObjectOwnerName</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult> |
Ejemplo de solicitud: Listado de algunos objetos
Supongamos que tiene un bucket examplebucket que contiene los objetos newfile, obj001, obj002 y obs001. Si desea mostrar solo el objeto obj002, el mensaje de solicitud es el siguiente:
GET /?marker=obj001&prefix=obj HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:28:25 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:KiyoYze4pmRNPYfmlXBfRTVxt8c=
Ejemplo de respuesta: Listado de algunos objetos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435D758FBA857E0801874 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCShn/xAyk/xHBX6qgGSB36WXrbco0X80 Content-Type: application/xml Date: WED, 01 Jul 2015 02:29:48 GMT Content-Length: 707 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ListBucketResult xmlns="http://obs.ap-southeast-1.myhuaweicloud.com/doc/2015-06-30/"> <Name>examplebucket</Name> <Prefix>obj</Prefix> <Marker>obj001</Marker> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>obj002</Key> <LastModified>2015-07-01T02:11:19.775Z</LastModified> <ETag>"a72e382246ac83e86bd203389849e71d"</ETag> <Size>9</Size> <Owner> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> <DisplayName>ObjectOwnerName</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult> |
Ejemplo de solicitud: Listado de versiones de objetos
1 2 3 4 5 6 |
GET /?versions HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:29:45 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iZeDESIMxBK2YODk7vIeVpyO8DI= |
Ejemplo de respuesta: Listado de versiones de objetos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435D758FBA857E0801874 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCShn/xAyk/xHBX6qgGSB36WXrbco0X80 Content-Type: application/xml Date: WED, 01 Jul 2015 02:29:48 GMT Content-Length: 707 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ListVersionsResult xmlns="http://obs.ap-southeast-1.myhuaweicloud.com/doc/2015-06-30/"> <Name>bucket02</Name> <Prefix/> <KeyMarker/> <VersionIdMarker/> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Version> <Key>object001</Key> <VersionId>00011000000000013F16000001643A22E476FFFF9046024ECA3655445346485a</VersionId> <IsLatest>true</IsLatest> <LastModified>2015-07-01T00:32:16.482Z</LastModified> <ETag>"2fa3bcaaec668adc5da177e67a122d7c"</ETag> <Size>12041</Size> <Owner> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> <DisplayName>ObjectOwnerName</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Version> </ListVersionsResult> |