Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-14 GMT+08:00

Download de objetos

Funções

Esta operação baixa objetos do OBS. Antes de usar esta operação GET, verifique se você tem a permissão de leitura para o objeto alvo. Se o proprietário do objeto tiver concedido a usuários anônimos a permissão de leitura do objeto, os usuários anônimos poderão acessar esse objeto sem usar o campo de cabeçalho de autenticação.

Criptografia do lado do servidor

Se o objeto carregado no servidor for criptografado no servidor usando a chave de criptografia fornecida pelo cliente, o download do objeto exigirá a inclusão da chave de criptografia na mensagem.

Controle de versões

Por padrão, a operação GET retorna a versão atual de um objeto. Se a versão atual do objeto for um marcador de exclusão, o OBS retornará um código que significa a não existência do objeto. Para obter um objeto de uma versão especificada, o parâmetro versionId pode ser usado para especificar a versão desejada.

Objetos de Archive do OBS

Se o objeto a ser baixado for um objeto Um arquivo, restaure-o antes de baixá-lo. A resposta varia com o status de recuperação do objeto. Se o objeto foi restaurado, o cabeçalho x-obs-restore é retornado indicando a data de expiração do objeto quando ele é baixado com sucesso. Se você solicitar o download de objetos Archive que não foram restaurados ou estão sendo restaurados, um erro 403 Forbidden será retornado.

Sintaxe da solicitação

1
2
3
4
5
6
GET /ObjectName HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date
Authorization: authorization
Range:bytes=byte_range 
<Optional Additional Header>

O campo é opcional. Se não existir, você pode obter todo o conteúdo.

Parâmetros de solicitação

Em uma solicitação GET, você pode substituir valores para um conjunto de cabeçalhos de mensagem usando os parâmetros de solicitação. Os cabeçalhos de mensagem que você pode substituir são Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, e Content-Encoding. Se o objeto de destino tiver várias versões, use o parâmetro versionId para especificar a versão a ser baixada. Para mais detalhes, consulte Tabela 1.

OBS não processa Accept-Encoding transportado em um pedido ou compactar ou descompactar os dados carregados. O cliente determina se deve compactar ou descompactar os dados. Alguns clientes HTTP podem descompactar dados com base no Content-Encoding retornado pelo servidor. O programa cliente precisa determinar se descompactar e como descompactar os dados. Para descomprimir os dados, ele pode modificar Content-Encoding (os metadados do objeto armazenados no OBS) ou reescrever Content-Encoding o objeto é baixado. Se uma solicitação de download de objeto especificar o cabeçalho de reescrita, o cabeçalho da mensagem HTTP padrão retornado pelo OBS estará sujeito ao conteúdo de reescrita especificado na solicitação.

Tabela 1 Parâmetros de solicitação

Parâmetro

Descrição

Obrigatório

response-content-type

Reescreve o cabeçalho Content-Type na resposta.

Tipo: string

Não

response-content-language

Reescreve o cabeçalho Content-Language na resposta.

Tipo: string

Não

response-expires

Reescreve o cabeçalho Expires na resposta.

Tipo: string

Não

response-cache-control

Reescreve o cabeçalho Cache-Control na resposta.

Tipo: string

Não

response-content-disposition

Reescreve o cabeçalho Content-Disposition na resposta.

Tipo: string

Exemplo:

response-content-disposition=attachment; filename*=utf-8''name1

Neste exemplo, o objeto baixado é renomeado como name1. Se o novo nome contiver caracteres chineses, ele deverá ser codificado por URL.

Não

response-content-encoding

Reescreve o cabeçalhoContent-Encoding na resposta.

Tipo: string

Não

versionId

Indica a ID de versão do objeto cujo conteúdo é obtido.

Tipo: string

Não

x-image-process

Serviço de processamento de imagens.

Um exemplo é fornecido como segue:

Comando: x-image-process=image/commands

Estilo: x-image-process=style/stylename

Para obter detalhes, consulte o Guia de recursos de processamento de imagens.

Não

attname

Reescreve o cabeçalho Content-Disposition na resposta.

Tipo: string

Exemplo:

attname=name1

Renomeie o objeto baixado como name1.

Não

Cabeçalhos de solicitação

Essa solicitação usa cabeçalhos comuns. Além disso, você pode adicionar cabeçalhos adicionais a essa solicitação. Tabela 2 descreve os cabeçalhos adicionais.

Tabela 2 Cabeçalhos de solicitação

Cabeçalho

Descrição

Obrigatório

Range

Obtém o conteúdo do objeto dentro do escopo definido por Range. Se o valor do parâmetro for inválido, o objeto inteiro é obtido.

O valor do Range começa em 0, e o valor máximo é igual ao comprimento do objeto menos 1. O valor inicial de Range é obrigatório. Se somente o valor inicial for especificado, o sistema obterá o conteúdo do objeto a partir do valor inicial até o valor máximo padrão.

Após o campo de cabeçalho Range é transportado, o valor de ETag na mensagem de resposta é o ETag do objeto em vez do ETag do objeto no campo Range.

Tipo: string

bytes=bucket_de_bytes

Exemplo 1: bytes=0-4

Exemplo 2: bytes=1024

Exemplo 3: bytes=10-20, 30-40 (múltiplos buckets)

Não

If-Modified-Since

Retorna o objeto somente se ele tiver sido modificado desde o tempo especificado por este cabeçalho. Caso contrário, 304 Not Modified é retornado.

Tipo: Cadeia de caracteres de tempo HTTP em conformidade com o formato especificado em http://www.ietf.org/rfc/rfc2616.txt

Não

If-Unmodified-Since

Retorna o objeto somente se ele não tiver sido modificado desde o tempo especificado por este cabeçalho. Caso contrário, 412 Precondition Failed falhou é retornado.

Tipo: Cadeia de caracteres de tempo HTTP em conformidade com o formato especificado em http://www.ietf.org/rfc/rfc2616.txt

Não

If-Match

Retorna o objeto somente se sua ETag for a mesma especificada por este cabeçalho. Caso contrário, 412 Precondition Failed falhou é retornado.

Tipo: string

(Exemplo: 0f64741bf7cb1089e988e4585d0d3434)

Não

If-None-Match

Retorna o objeto somente se sua ETag for diferente da especificada por este cabeçalho. Caso contrário, 304 Not Modified é retornado.

Tipo: string

(Exemplo: 0f64741bf7cb1089e988e4585d0d3434)

Não

x-obs-server-side-encryption-customer-algorithm

Indica um algoritmo de encriptação. O cabeçalho é usado no modo SSE-C.

Tipo: string

Exemplo: x-obs-server-encryption-customer-algorithm:AES256

Restrições: Este cabeçalho deve ser usado em conjunto com x-obs-server-side-encryption-customer-key e x-obs-server-side-encryption-customer-key-MD5.

Se você selecionar No, esse cabeçalho será necessário quando SSE-C for usado.

x-obs-server-side-encryption-customer-key

Indica uma chave usada para criptografar objetos. O cabeçalho é usado no modo SSE-C. Essa chave é usada para descriptografar objetos.

Tipo: string

Exemplo: x-obs-server-encryption-side-customer-key:K7QkYpBkM5+hcs27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrições: Esse cabeçalho é uma chave de 256 bits codificada em Base64 e deve ser usado em conjunto com x-obs-server-side-encryption-customer-algorithm e x-obs-server-side-encryption-customer-key-MD5.

Se algum processo é anormal: Este cabeçalho é necessário quando SSE-C é usado.

x-obs-server-side-encryption-customer-key-MD5

Indica o valor MD5 de uma chave usada para criptografar objetos. O cabeçalho é usado no modo SSE-C. O valor MD5 é usado para verificar se ocorre algum erro durante a transmissão da chave.

Tipo: string

Exemplo: x-obs-server-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

Restrições: Esse cabeçalho é uma string codificada em Base64 de 128 bits e deve ser usada em conjunto com x-obs-server-side-encryption-customer-algorithm e x-obs-server-side-encryption-customer-key.

Não. Este cabeçalho é necessário quando SSE-C é usado.

Elementos de solicitação

Este pedido não envolve elementos.

Sintaxe da resposta

1
2
3
4
5
6
7
8
HTTP/1.1 status_code 
Content-Type: type 
Date: date 
Content-Length: length 
Etag: etag 
Last-Modified: time 

<Object Content>

Cabeçalhos de resposta

A resposta à solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 1.

Além da resposta comum cabeçalhos, a seguinte mensagem cabeçalhos também podem ser utilizados. Para mais detalhes, consulte Tabela 3.

Tabela 3 Parâmetros adicionais de cabeçalho de resposta

Cabeçalho

Descrição

x-obs-expiration

Quando um objeto tem sua regra de ciclo de vida, o tempo de expiração do objeto está sujeito à sua regra de ciclo de vida. Esse campo de cabeçalho é usar expiry-date para descrever a data de expiração do objeto. Se a regra do ciclo de vida for configurada somente para o bucket inteiro, não para objetos individuais, o tempo de expiração do objeto estará sujeito à regra do ciclo de vida do bucket. Esse campo de cabeçalho usa expiry-date e rule-id para descrever as informações detalhadas de expiração dos objetos. Se nenhuma regra de ciclo de vida estiver configurada, esse campo de cabeçalho não estará contido na resposta.

Tipo: string

x-obs-website-redirect-location

Indica o local redirecionado para. Se o bucket for configurado com informações do site, esse parâmetro poderá ser definido para os metadados do objeto, de modo que o ponto de extremidade do site avalie a solicitação do objeto como um redirecionamento 301 para outro objeto no mesmo bucket ou para um URL externo.

Tipo: string

x-obs-delete-marker

Indica se um objeto é um marcador de exclusão. Se o objeto não estiver marcado como excluído, a resposta não conterá esse cabeçalho.

Tipo: booleano

Valores válidos: true ou false

O valor padrão é false.

x-obs-version-id

ID da versão do objeto. Se o objeto não tiver um número de versão especificado, a resposta não conterá esse cabeçalho.

Valor válido: string de caracteres

Não há valor padrão.

x-obs-server-side-encryption

Este cabeçalho é incluído em uma resposta se SSE-KMS for usado.

Tipo: string

Exemplo: x-obs-server-side-encryption:kms

x-obs-server-side-encryption-kms-key-id

Indica a ID da chave mestra. Este cabeçalho é incluído em uma resposta se SSE-KMS for usado.

Tipo: string

Formato:regionID:domainID:key/key_id

regionID é o ID da região à qual a chave pertence. domainID é o ID da conta do locatário ao qual a chave pertence. key_id é o ID da chave usado nessa criptografia.

Exemplo: x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

x-obs-server-side-encryption-customer-algorithm

Indica um algoritmo de descriptografia. Este cabeçalho é incluído em uma resposta se SSE-C é usado.

Tipo: string

Exemplo: x-obs-server-encryption-customer-algorithm:AES256

x-obs-server-side-encryption-customer-key-MD5

Indica o valor MD5 de uma chave usada para descriptografar objetos. Este cabeçalho é incluído em uma resposta se SSE-C é usado.

Tipo: string

Exemplo: x-obs-server-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

x-obs-object-type

Se o objeto não for normal, este campo de cabeçalho é retornado. O valor pode ser Appendable.

Tipo: string

x-obs-next-append-position

Este campo de cabeçalho é retornado quando o objeto é um objeto anexável.

Tipo: inteiro

Elementos de resposta

Esta resposta não contém elementos.

Respostas de erro

Nenhuma resposta de erro especial é retornada. Para obter detalhes sobre respostas de erro, consulte Tabela 2.

Solicitação de exemplo 1

Baixe o objeto inteiro.

1
2
3
4
5
6
GET /object01 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 04:24:33 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=

Resposta de exemplo 1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E
Accept-Ranges: bytes
ETag: "3b46eaf02d3b6b1206078bb86a7b7013"
Last-Modified: WED, 01 Jul 2015 01:20:29 GMT
Content-Type: binary/octet-stream
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSQwxJ2I1VvxD/Xgwuw2G2RQax30gdXU
Date: WED, 01 Jul 2015 04:24:33 GMT
Content-Length: 4572

[4572 Bytes object content]

Solicitação de exemplo 2

Baixar o bucket especificado de um objeto (baixar um intervalo de um objeto)..

1
2
3
4
5
6
7
GET /object01 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: Mon, 14 Sep 2020 09:59:04 GMT
Range:bytes=20-30
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mNPLWQMDWg30PTkAWiqJaLl3ALg=

Baixar o intervalo especificado de um objeto (baixar vários intervalos de um objeto)..

1
2
3
4
5
6
7
GET /object01 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: Mon, 14 Sep 2020 10:02:43 GMT
Range:bytes=20-30,40-50
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:ZwM7Vk2d7sD9o8zRsRKehgKQDkk=

Resposta de exemplo 2

Baixar o intervalo especificado de um objeto (baixar um intervalo de um objeto)..

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
HTTP/1.1 206 Partial Content
Server: OBS
x-obs-request-id: 000001748C0DBC35802E360C9E869F31
Accept-Ranges: bytes
ETag: "2200446c2082f27ed2a569601ca4e360"
Last-Modified: Mon, 14 Sep 2020 01:16:20 GMT
Content-Range: bytes 20-30/4583
Content-Type: binary/octet-stream
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSn2JHu4okx9NBRNZAvBGaws3lt3g31g
Date: Mon, 14 Sep 2020 09:59:04 GMT
Content-Length: 11

[ 11 Bytes object content]

Baixar o intervalo especificado de um objeto (baixar vários intervalos de um objeto)..

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
HTTP/1.1 206 Partial Content
Server: OBS
x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E
Accept-Ranges: bytes
ETag: "2200446c2082f27ed2a569601ca4e360"
Last-Modified: Mon, 14 Sep 2020 01:16:20 GMT
Content-Type: multipart/byteranges;boundary=35bcf444-e65f-4c76-9430-7e4a68dd3d26
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSIBWFOVW8eeWujkqSnoIANC2mNR1cdF
Date: Mon, 14 Sep 2020 10:02:43 GMT
Content-Length: 288

--35bcf444-e65f-4c76-9430-7e4a68dd3d26
Content-type: binary/octet-stream
Content-range: bytes 20-30/4583
[ 11 Bytes object content]
--35bcf444-e65f-4c76-9430-7e4a68dd3d26
Content-type: binary/octet-stream
Content-range: bytes 40-50/4583
[ 11 Bytes object content]
--35bcf444-e65f-4c76-9430-7e4a68dd3d26

Solicitação de exemplo 3

Baixe uma imagem redimensionada.

1
2
3
4
5
6
GET /example.jpg?x-image-process=image/resize,w_100 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 04:20:51 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:9Nsx45WjaVxlLnxlO9awasXn83N=

Resposta da exemplo 3

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E
x-image-process:image/resize,w_100
Accept-Ranges: bytes
ETag: "3b46eaf02d3b6b1206078bb86a7b7013"
Last-Modified: WED, 01 Jul 2015 01:20:29 GMT
Content-Type: image/jpeg
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSQwxJ2I1VvxD/Xgwuw2G2RQax30gdXU
Date: WED, 01 Jul 2015 04:20:51 GMT
Content-Length: 49

[ 49 Bytes object content]

Solicitação de exemplo 4

Faça o download de um objeto se seu valor Etag corresponder.

1
2
3
4
5
6
7
GET /object01 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 04:24:33 GMT
If-Match: 682e760adb130c60c120da3e333a8b09
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=

Resposta de exemplo 4-1 (Etag não correspondente)

Se o valor Etag do objeto armazenado não for 682e760adb130c60c120da3e333a8b09, o sistema exibirá uma mensagem indicando que o download falha.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
HTTP/1.1 412 Precondition Failed
Server: OBS
x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E
Content-Type: application/xml
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSQwxJ2I1VvxD/Xgwuw2G2RQax30gdXU
Date: WED, 01 Jul 2015 04:20:51 GMT

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Error>
  <Code>PreconditionFailed</Code>
  <Message>At least one of the pre-conditions you specified did not hold</Message> 
  <RequestId>8DF400000163D3F2A89604C49ABEE55E</RequestId>      
  <HostId>Hw0ZGaSKVm+uLOrCXXtx4Qn1aLzvoeblctVXRAqA7pty10mzUUW/yOzFue04lBqu</HostId>
  <Condition>If-Match</Condition>
</Error>

Resposta da amostra 4-2 (Download bem-sucedido)

Se o valor Etag do objeto armazenado for 682e760adb130c60c120da3e333a8b09, o download é bem-sucedido.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 5DEB00000164A21E1FC826C58F6BA001
Accept-Ranges: bytes
ETag: "682e760adb130c60c120da3e333a8b09"
Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT
Content-Type: application/octet-stream
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSbkdml1sLSvKnoHaRcOwRI+6+ustDwk
Date: Mon, 16 Jul 2015 08:04:00 GMT
Content-Length: 8

[ 8 Bytes object content]

Solicitação de exemplo 5

Leve a assinatura no URL ao fazer o download de um objeto.

GET /object02?AccessKeyId=H4IPJX0TQTHTHEBQQCEC&Expires=1532688887&Signature=EQmDuOhWLUrzrzRNZxwS72CXeXM%3D HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: Fri, 27 Jul 2018 10:52:31 GMT

Resposta de exemplo 5

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00
ETag: "682e760adb130c60c120da3e333a8b09"
Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT
Content-Type: application/octet-stream
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw
Date: Fri, 27 Jul 2018 10:52:31 GMT
Content-Length: 8

[ 8 Bytes object content]

Solicitação de exemplo 6

Use o parâmetro response-content-disposition para fazer download e renomear um objeto.

1
2
3
4
5
6
GET /object01?response-content-disposition=attachment; filename*=utf-8''name1 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 04:24:33 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=

Resposta de exemplo 6

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00
ETag: "682e760adb130c60c120da3e333a8b09"
Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT
Content-Type: application/octet-stream
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw
Date: Fri, 27 Jul 2018 10:52:31 GMT
Content-Length: 8
Content-Disposition: attachment; filename*=utf-8''name1

[ 8 Bytes object content]

Solicitação de exemplo 7

Use o parâmetro attname para baixar e renomear um objeto.

1
2
3
4
5
6
GET /object01?attname=name1 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 04:24:33 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=

Resposta de exemplo 7

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00
ETag: "682e760adb130c60c120da3e333a8b09"
Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT
Content-Type: application/octet-stream
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw
Date: Fri, 27 Jul 2018 10:52:31 GMT
Content-Length: 8
Content-Disposition: attachment; filename*=utf-8''name1

[ 8 Bytes object content]