Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-18 GMT+08:00

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.

Tabla 1 Parámetros de solicitud

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.

Tabla 2 Elementos de respuesta

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

Tabla 3 Elementos en el mensaje de respuesta para listar objetos varias versiones.

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>