Listagem de objetos em um bucket
Funções
Esta operação lista objetos em um bucket. Para usar essa operação, você deve ter permissão para ler o bucket.
Se você especificar somente o nome do bucket no URI da solicitação, por exemplo GET /BucketName, o OBS retornará descrições para alguns ou todos os objetos (máximo de 1000 objetos) no bucket. Se você também especificar um ou mais parâmetros entre prefix, marker, max-keys, e delimiter na solicitação, o OBS retornará uma lista de objetos conforme especificado.
Você também pode adicionar o parâmetro versions à solicitação para listar várias versões de um objeto em um bucket.
Sintaxe da solicitação
1 2 3 4 |
GET / HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: authorization |
Sintaxe de solicitação (para objetos de várias versões)
1 2 3 4 |
GET /?versions HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: authorization |
Parâmetros de solicitação
Essa solicitação usa parâmetros para listar alguns objetos no bucket. Tabela 1 descreve os parâmetros.
Parâmetro |
Descrição |
Obrigatório |
---|---|---|
prefix |
Lista objetos que começam com o prefixo especificado. Tipo: string |
Não |
marker |
Especifica um marcador ao listar objetos em um bucket. Com um marcador configurado, os objetos após este marcador serão retornados em ordem alfabética. Tipo: string |
Não |
max-keys |
Define o número máximo de objetos (em ordem alfabética) retornados no corpo da resposta. O valor varia de 1 a 1.000. Se o valor excedeu o limite superior, os objetos 1 000 são retornados por padrão. Tipo: inteiro |
Não |
delimiter |
Separador usado para agrupar nomes de objetos. Se um prefixo for especificado, objetos com a mesma string do prefixo ao primeiro delimitador serão agrupados em uma CommonPrefixes. Se nenhum prefixo for especificado, objetos com a mesma string do primeiro caractere ao primeiro delimitador serão agrupados em uma CommonPrefixes. Por exemplo, há três objetos (abcd, abcde e bbcde) em um bucket. Se delimiter for definido como d e prefix for definido como a, os objetos abcd e abcde serão agrupados em um CommonPrefixes com abcd como prefixo. Se apenas delimiter for definido como d, os objetos abcd e abcde serão agrupados em um CommonPrefixes com abcd como prefixo, e bbcde será agrupado separadamente em outro CommonPrefixes com bbcd como prefixo. Tipo: string |
Não |
key-marker |
Posição para começar quando os objetos são listados Tipo: string Valor válido: valor de NextKeyMarker no corpo da resposta da última solicitação |
Não |
version-id-marker |
Este parâmetro só se aplica a objetos de versionamento. Especifica a ID de versão a ser iniciada quando os objetos em um bucket são listados. Os objetos são listados em ordem alfabética (um máximo de objetos 1 000 são exibidos por vez). Esse parâmetro é usado junto com o key-marker na solicitação. Se o valor de version-id-marker não for um ID de versão especificado por key-marker, version-id-marker será inválido. Tipo: string Valor válido: ID da versão do objeto, ou seja, o valor de NextVersionIdMarker no corpo da resposta da última solicitação |
Não |
encoding-type |
Codifica alguns elementos na resposta com base no tipo especificado. Se Delimiter, Marker (ou KeyMarker), Prefix, NextMarker (ou NextKeyMarker) e Key contiverem caracteres de controle que não são suportados pelos padrões XML 1.0, você poderá configurar encoding-type para codificar Delimitador, Marcador (ou KeyMarker), Prefixo (incluindo o Prefixo em CommonPrefixes), NextMarker (ou NextKeyMarker) e Key na resposta. Tipo: string Valor opcional: url |
No |
Cabeçalhos de solicitação
Esta solicitação usa cabeçalhos de solicitação comuns. Tabela 3 lista os cabeçalhos comuns da requisição.
Elementos de solicitação
Este pedido não contém elementos.
Sintaxe da resposta
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> |
Cabeçalhos de resposta
A resposta à solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 1.
Elementos de resposta
Essa resposta contém a lista XML de buckets pertencentes ao usuário. Tabela 2 descreve os elementos.
Elemento |
Descrição |
---|---|
ListBucketResult |
Uma lista de objetos em um bucket Tipo: XML |
Contents |
Metadados do objeto Tipo: XML Antepassado: ListBucketResult |
CommonPrefixes |
Informações do grupo. Se você especificar um delimitador na solicitação, a resposta conterá informações de grupo em CommonPrefixes. Tipo: XML Antepassado: ListBucketResult |
Delimiter |
O parâmetro delimitador especificado em uma solicitação Tipo: string Antepassado: ListBucketResult |
EncodingType |
Codifica alguns elementos na resposta com base no tipo especificado. Se o tipo de codificação for especificado na solicitação, o Delimitador, o Marcador, o Prefixo (incluindo o Prefixo em CommonPrefixes) e o Key na resposta serão codificados. Tipo: string Ancestor: ListBucketResult |
Etag |
Resumo MD5 de 128 bits do código Base64 de um objeto. ETag é o identificador exclusivo do conteúdo do objeto. Ele pode ser usado para identificar se o conteúdo do objeto é alterado. Por exemplo, se o valor de ETag for A quando um objeto for carregado e o valor de ETag for alterado para B quando o objeto for baixado, isso indicará que o conteúdo do objeto foi alterado. O ETag real é o valor de hash do objeto, que reflete apenas o conteúdo alterado em vez dos metadados. Um objeto carregado ou objeto copiado tem um ETag exclusivo após ser criptografado usando MD5. (Se o objeto estiver criptografado no lado do servidor, o valor ETag não será o resumo MD5 do objeto, mas o identificador exclusivo calculado por meio da criptografia do lado do servidor.) Tipo: string Antepassado: ListBucketResult.Contents |
Type |
Tipo de objeto. Este parâmetro é retornado quando o tipo de objeto não é Normal. Tipo: string Antepassado: ListBucketResult.Contents |
ID |
ID de locatário do proprietário do objeto Tipo: string Antepassado: ListBucketResult.Contents.Owner |
IsTruncated |
Determina se a lista de objetos retornada é truncada. O valor true indica que a lista foi truncada e false indica que a lista não foi truncada. Tipo: boolean Antepassado: ListBucketResult |
Key |
Nome do objeto Tipo: string Antepassado: ListBucketResult.Contents |
LastModified |
Hora (UTC) em que um objeto foi modificado pela última vez Tipo: data Antepassado: ListBucketResult.Contents |
Marker |
Marcador para a posição a partir da qual os objetos em um bucket serão listados Tipo: string Antepassado: ListBucketResult |
NextMarker |
Um marcador para o último objeto retornado na lista. NextMarker é retornado quando nem todos os objetos estão listados. Você pode definir o valor NextMarker para listar os objetos restantes nas solicitações de acompanhamento. Tipo: string Antepassado: ListBucketResult |
MaxKeys |
Número máximo de objetos retornados Tipo: string Antepassado: ListBucketResult |
Name |
Nome do bucket solicitado Tipo: string Antepassado: ListBucketResult |
Owner |
Informações do usuário, incluindo o ID do domínio e o nome de usuário Tipo: XML Antepassado: ListBucketResult.Contents |
Prefix |
Prefixo de um nome de objeto. Apenas os objetos cujos nomes têm esse prefixo são listados. Tipo: string Antepassado: ListBucketResult |
Size |
Tamanho do objeto em bytes. Tipo: string Antepassado: ListBucketResult.Contents |
StorageClass |
Classe de armazenamento de um objeto Tipo: enumeração Valor válido: STANDARD | WARM | COLD Antepassado: ListBucketResult.Contents |
Elemento |
Descrição |
---|---|
ListVersionsResult |
Contêiner para a lista de objetos (incluindo objetos com vários ID de versão) Tipo: recipiente |
Nome |
Nome do bucket Tipo: string Antepassado: ListVersionsResult |
EncodingType |
Codifica alguns elementos na resposta com base no tipo especificado. Se o tipo de codificação for especificado na solicitação, Delimiter, KeyMarker, Prefix (incluindo o prefixo em CommonPrefixes), NextKeyMarker e Key na resposta serão codificados. Tipo: string Ancestor: ListVersionsResult |
Prefix |
Prefixo de um nome de objeto. Apenas os objetos cujos nomes têm esse prefixo são listados. Tipo: string Antepassado: ListVersionsResult |
KeyMarker |
Marcador para a chave do objeto a partir do qual os objetos serão listados Tipo: string Antepassado: ListVersionsResult |
VersionIdMarker |
ID de versão do objeto para começar quando os objetos são listados Tipo: string Antepassado: ListVersionsResult |
NextKeyMarker |
Marcador de chave para o último objeto retornado na lista. NextKeyMarker é retornado quando nem todos os objetos estão listados. Você pode definir o valor NextKeyMarker para listar os objetos restantes nas solicitações de acompanhamento. Tipo: string Antepassado: ListVersionsResult |
NextVersionIdMarker |
Marcador de ID de versão para o último objeto retornado na lista. NextVersionIdMarker é retornado quando nem todos os objetos estão listados. Você pode definir o valor NextVersionIdMarker para listar os objetos restantes nas solicitações de acompanhamento. Tipo: string Antepassado: ListVersionsResult |
MaxKeys |
Número máximo de objetos retornados Tipo: string Antepassado: ListVersionsResult |
IsTruncated |
Indica se a lista de objetos retornada está truncada. O valor true indica que a lista foi truncada e false indica que a lista não foi truncada. Tipo: booleano Antepassado: ListVersionsResult |
Version |
Recipiente de informações de versão Tipo: recipiente Antepassado: ListVersionsResult |
DeleteMarker |
Contêiner para objetos com marcadores de exclusão Tipo: recipiente Antepassado: ListVersionsResult |
Key |
Nome do objeto Tipo: string Antepassado: ListVersionsResult.Version | ListVersionsResult.DeleteMarker |
VersionId |
ID da versão do objeto Tipo: string Antepassado: ListVersionsResult, Version | ListVersionsResult, DeleteMarker |
IsLatest |
Se o objeto é a versão mais recente. Se o valor do parâmetro fortrue, o objeto é a versão mais recente. Tipo: booleano Antepassado: ListVersionsResult.Version | ListVersionsResult.DeleteMarker |
LastModified |
Hora (UTC) em que um objeto foi modificado pela última vez Tipo: data Antepassado: ListVersionsResult.Version | ListVersionsResult.DeleteMarker |
ETag |
Resumo MD5 de 128 bits do código Base64 de um objeto. ETag é o identificador exclusivo do conteúdo do objeto. Ele pode ser usado para identificar se o conteúdo do objeto é alterado. O ETag real é o valor de hash do objeto. Por exemplo, se o valor de ETag for A quando um objeto for carregado e o valor de ETag for alterado para B quando o objeto for baixado, isso indicará que o conteúdo do objeto foi alterado. A ETag reflete apenas o conteúdo alterado em vez dos metadados. Um objeto carregado ou objeto copiado tem um ETag exclusivo após ser criptografado usando MD5. Tipo: string Antepassado: ListVersionsResult.Version |
Type |
Tipo de objeto. Este parâmetro é retornado quando o tipo de objeto não é Normal. Tipo: string Antepassado: ListVersionsResult.Version |
Size |
Tamanho do objeto em bytes. Tipo: string Antepassado: ListVersionsResult.Version |
Owner |
Informações do usuário, incluindo o ID do domínio e o nome de usuário Tipo: recipiente Antepassado: ListVersionsResult.Version | ListVersionsResult.DeleteMarker |
ID |
ID do domínio ao qual o proprietário do objeto pertence Tipo: string Antepassado: ListVersionsResult.Version.Owner | ListVersionsResult.DeleteMarker.Owner |
StorageClass |
Classe de armazenamento de um objeto Tipo: enumeração Antepassado: ListVersionsResult.Version |
CommonPrefixes |
Informações do grupo. Se você especificar um delimitador na solicitação, a resposta conterá informações de grupo em CommonPrefixes. Tipo: recipiente Antepassado: ListVersionsResult |
Prefix |
Indica um prefixo diferente nas informações do grupo em CommonPrefixes. Tipo: string Antepassado: ListVersionsResult.CommonPrefixes |
Respostas de erro
Nenhuma resposta de erro especial está envolvida. Para obter detalhes sobre respostas de erro, consulte Tabela 2.
Solicitação de exemplo 1
Listar todos os 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= |
Resposta de exemplo 1
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 |
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> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult> |
Solicitação de exemplo 2
Filtrar objetos.
Um usuário tem um bucket chamado examplebucket. O bucket tem três objetos denominados newfile, obj001, e obj002. Se você deseja exibir apenas o objeto obj002, o formato da mensagem de solicitação é o seguinte:
GET /?marker=obj002&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=
Resposta de exemplo 2
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 |
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>obj002</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> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult> |
Solicitação de exemplo 3
Versionamento
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= |
Resposta de exemplo 3
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 |
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> <Contents> <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> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListVersionsResult> |