A operação GetObject recupera um objeto de um bucket. Para chamar esta operação, é necessário ter permissões de leitura no objeto.
Sintaxe da requisição
GET /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Range: bytes=ByteRange (Optional)
Para obter informações sobre como calcular a assinatura do cabeçalho Authorization, consulte Cabeçalho de requisição Authorization.
Ao baixar objetos grandes (maiores que 100 MB) do OSS, a transferência pode falhar devido a problemas de rede. Utilize requisições HTTP Range para recuperar um objeto grande em partes. Esse método permite downloads retomáveis e simultâneos, melhorando a confiabilidade da transferência. Para mais informações, consulte Como obter recursos do OSS em segmentos usando requisições HTTP Range.
Notas de uso
Por padrão, a operação GetObject suporta acesso via HTTP e HTTPS, além de downloads multi-range. É possível especificar vários intervalos de bytes em uma única requisição para aumentar a eficiência do download.
Para permitir acesso exclusivamente via HTTPS, utilize uma política de bucket para conceder o acesso.
Caso o objeto esteja na classe de armazenamento Archive, envie primeiro uma requisição RestoreObject ou ative o acesso em tempo real para objetos Archive no bucket onde o objeto está armazenado.
Permissões
Controle de versão
Comportamento da API
Faturamento e limitação de taxa
Parâmetros da requisição
Cabeçalhos da requisição
O OSS suporta cabeçalhos de resposta personalizados em requisições GET. Os valores dos cabeçalhos de resposta são definidos com os valores especificados nos cabeçalhos da requisição GET apenas se a requisição for bem-sucedida e o código de retorno for 200 OK.
O OSS não suporta cabeçalhos de resposta personalizados em requisições GET para acesso anônimo.
|
Nome |
Tipo |
Obrigatório |
Descrição |
|
Range |
String |
Não |
Intervalo do objeto a ser transferido.
Valor padrão: nenhum |
|
x-oss-multi-range-behavior |
String |
Não |
Ativa o recurso de download multi-range.
Valor padrão: nenhum |
|
If-Modified-Since |
String |
Não |
Retorna o objeto com status 200 OK se o horário especificado for anterior ao horário de modificação real do objeto ou se o horário for inválido. Retorna 304 Not Modified se o horário especificado for igual ou posterior ao horário de modificação real. Formato: GMT. Exemplo: Valor padrão: nenhum |
|
If-Unmodified-Since |
String |
Não |
Transfere o objeto e retorna 200 OK se o horário especificado for igual ou posterior ao horário de modificação real do objeto. Retorna 412 Precondition Failed se o horário especificado for anterior ao horário de modificação real. Formato: GMT. Exemplo: É possível usar If-Modified-Since e If-Unmodified-Since simultaneamente. Valor padrão: nenhum |
|
If-Match |
String |
Não |
Transfere o objeto e retorna 200 OK se o ETag fornecido corresponder ao ETag do objeto. Retorna 412 Precondition Failed se o ETag fornecido não corresponder ao ETag do objeto. O ETag de um objeto serve para verificar se os dados foram alterados. Use o valor do ETag para validar a integridade dos dados. Valor padrão: nenhum |
|
If-None-Match |
String |
Não |
Transfere o objeto e retorna 200 OK se o ETag fornecido não corresponder ao ETag do objeto. Retorna 304 Not Modified se o ETag fornecido corresponder ao ETag do objeto. É possível usar If-Match e If-None-Match simultaneamente. Valor padrão: nenhum |
|
Accept-Encoding |
String |
Não |
Tipo de codificação do cliente. Para transferir o conteúdo retornado no formato compactado Gzip, adicione explicitamente Accept-Encoding:gzip ao cabeçalho da requisição. O OSS determina se deve compactar os dados usando Gzip durante a transferência com base no Content-Type e no tamanho (mínimo de 1 KB) do objeto. Se as condições forem atendidas, os dados serão transferidos no formato compactado; caso contrário, serão transferidos no formato original.
Valor padrão: nenhum |
Parâmetros de consulta
|
Nome |
Tipo |
Obrigatório |
Descrição |
|
response-content-language |
String |
Não |
Especifica o cabeçalho content-language que o OSS retorna para a requisição. Valor padrão: nenhum |
|
response-expires |
String |
Não |
Especifica o cabeçalho expires que o OSS retorna para a requisição. Valor padrão: nenhum |
|
response-cache-control |
String |
Não |
Especifica o cabeçalho cache-control que o OSS retorna para a requisição. Valor padrão: nenhum |
|
response-content-disposition |
String |
Não |
Especifica o cabeçalho content-disposition que o OSS retorna para a requisição. Valor padrão: nenhum |
|
response-content-encoding |
String |
Não |
Especifica o cabeçalho content-encoding que o OSS retorna para a requisição. Valor padrão: nenhum |
Parâmetros da resposta
Cabeçalhos da resposta
Se o objeto for um link simbólico, o conteúdo do objeto de destino será retornado. Nos cabeçalhos de resposta, Content-Length, ETag e Content-Md5 referem-se aos metadados do objeto de destino. Last-Modified corresponde ao horário de modificação mais recente entre o objeto de destino e o link simbólico. Os demais cabeçalhos contêm os metadados do link simbólico.
|
Nome |
Tipo |
Descrição |
|
x-oss-server-side-encryption |
String |
Se o objeto estiver armazenado com criptografia no lado do servidor, ele será descriptografado automaticamente e retornado ao enviar uma requisição GET. O cabeçalho x-oss-server-side-encryption é retornado na resposta para indicar o algoritmo de criptografia no lado do servidor do objeto. |
|
x-oss-sealed-time |
String |
Se o objeto for um objeto anexável no qual a operação Seal foi executada, este cabeçalho será retornado para indicar o momento em que a operação Seal foi realizada no arquivo. O valor é semelhante a |
|
x-oss-tagging-count |
String |
Número de tags associadas ao objeto. Este cabeçalho é retornado apenas se você tiver permissões para ler tags. |
|
x-oss-expiration |
String |
Data de expiração de um objeto em um bucket com regra de ciclo de vida configurada.
|
Exemplos
Download básico
-
Exemplo de requisição
GET /oss.jpg HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Fri, 24 Feb 2012 06:38:30 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemplo de resposta (quando o objeto é um arquivo)
HTTP/1.1 200 OK x-oss-request-id: 3a8f-2e2d-7965-3ff9-51c875b***** x-oss-object-type: Normal Date: Fri, 24 Feb 2012 06:38:30 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E0563E1B002CC607C*****" Content-Type: image/jpg Content-Length: 344606 Server: AliyunOSS [344606 bytes of object data] -
Exemplo de resposta (quando o objeto é uma pasta)
Quando o objeto é uma pasta, cabeçalhos de resposta personalizados como Range na requisição são ignorados.
HTTP/1.1 200 OK x-oss-request-id: 3a8f-2e2d-7965-3ff9-51c875b***** x-oss-object-type: Normal Date: Wed, 31 Mar 2021 06:38:30 GMT Last-Modified: Tue, 30 Mar 2021 06:07:48 GMT ETag: "null" Content-Type: application/x-directory Content-Length: 0 Server: AliyunOSS
Download por intervalo
-
Exemplo de requisição
GET /oss.jpg HTTP/1.1 Host:oss-example.oss-cn-hangzhou.aliyuncs.com Date: Fri, 28 Feb 2012 05:38:42 GMT Range: bytes=100-900 Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemplo de resposta
HTTP/1.1 206 Partial Content x-oss-request-id: 28f6-15ea-8224-234e-c0ce407***** x-oss-object-type: Normal Date: Fri, 28 Feb 2012 05:38:42 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E05E1B002CC607C*****" Accept-Ranges: bytes Content-Range: bytes 100-900/344606 Content-Type: image/jpg Content-Length: 801 Server: AliyunOSS [801 bytes of object data]
Download multi-range
-
Exemplo de requisição
GET /oss.jpg HTTP/1.1 Host:oss-example.oss-cn-hangzhou.aliyuncs.com Date: Fri, 28 Feb 2012 05:38:42 GMT Range: bytes=0-1,3-4,5-6,7-8 x-oss-multi-range-behavior: multi-range Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemplo de resposta
HTTP/1.1 206 Partial Content x-oss-request-id: 28f6-15ea-8224-234e-c0ce407***** x-oss-object-type: Normal Date: Fri, 28 Feb 2012 05:38:42 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E05E1B002CC607C*****" Accept-Ranges: bytes Content-Type: multipart/byteranges;boundary=63ce7776-c104-417f-8a65-ccaa3b17f428 Content-Length: 446 Server: AliyunOSS --63ce7776-c104-417f-8a65-ccaa3b17f428 Content-type: text/plain Content-range: bytes 0-1/10 [ 2 Bytes object content] --63ce7776-c104-417f-8a65-ccaa3b17f428 Content-type: text/plain Content-range: bytes 3-4/10 [ 2 Bytes object content] --63ce7776-c104-417f-8a65-ccaa3b17f428 Content-type: text/plain Content-range: bytes 5-6/10 [ 2 Bytes object content] --63ce7776-c104-417f-8a65-ccaa3b17f428 Content-type: text/plain Content-range: bytes 7-8/10 [ 2 Bytes object content] --63ce7776-c104-417f-8a65-ccaa3b17f428--
Cabeçalhos de resposta personalizados
-
Exemplo de requisição
GET /oss.jpg?response-expires=Thu%2C%2001%20Feb%202012%2017%3A00%3A00%20GMT&response-cache-control=No-cache&response-content-disposition=attachment%253B%2520filename%253Dtesting.txt&response-content-encoding=utf-8&response-content-language=%E4%B8%AD%E6%96%87 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com: Date: Fri, 24 Feb 2012 06:09:48 GMT -
Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC75A644***** x-oss-object-type: Normal Date: Fri, 24 Feb 2012 06:09:48 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E053D1B002CC607*****" Content-Length: 344606 Connection: keep-alive Content-disposition: attachment; filename=testing.txt Content-language: Chinese Content-type: jpg Cache-control: no-cache Expires: Fri, 24 Feb 2012 17:00:00 GMT Server: AliyunOSS [344606 bytes of object data]
Objeto de link simbólico
-
Exemplo de requisição
GET /link-to-oss.jpg HTTP/1.1 Accept-Encoding: identity Date: Tue, 08 Nov 2016 03:17:58 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemplo de resposta
HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 08 Nov 2016 03:17:58 GMT Content-Type: application/octet-stream Content-Length: 20 Connection: keep-alive x-oss-request-id: 582143E6A212AD***** Accept-Ranges: bytes ETag: "8086265EFC021F9A2F09BF4****" Last-Modified: Tue, 08 Nov 2016 03:17:58 GMT x-oss-object-type: Symlink Content-MD5: gIYmXvwCEe0fmi8Jv0Y****
Objeto Archive (restaurado)
-
Exemplo de requisição
GET /oss.jpg HTTP/1.1 Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com Date: Sat, 15 Apr 2017 09:38:30 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 58F723829F29F18D7F00***** x-oss-object-type: Normal x-oss-restore: ongoing-request="false", expiry-date="Sun, 16 Apr 2017 08:12:33 GMT" Date: Sat, 15 Apr 2017 09:38:30 GMT Last-Modified: Sat, 15 Apr 2017 06:07:48 GMT ETag: "5B3C1A2E0763E1B002CC607C*****" Content-Type: image/jpg Content-Length: 344606 Server: AliyunOSS [344606 bytes of object data]
Cenários de controle de versão
-
Especificar um ID de versão
-
Exemplo de requisição
GET /example?versionId=CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0**** HTTP/1.1 Host: versioning-get.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 02:58:06 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 5CAC0A3EDE0170***** x-oss-version-id: CAEQNhiBgM0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY***** x-oss-object-type: Normal Date: Tue, 17 Apr 2025 02:58:06 GMT Last-Modified: Fri, 22 Mar 2018 08:07:50 GMT ETag: "5B3C1A2E053D7002CC607C5A*****" Content-Type: text/html Content-Length: 362149 Server: AliyunOSS [362149 bytes of object data]
-
-
A versão atual é um marcador de exclusão
-
Exemplo de requisição
GET /example HTTP/1.1 Host: versioning-get.oss-cn-hangzhou.aliyuncs.com Date: Tue, 17 Apr 2025 03:22:33 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemplo de resposta
HTTP/1.1 404 Not Found x-oss-request-id: 5CAC0FEADE0170***** x-oss-delete-marker: true x-oss-version-id: CAEQNxiBgyA0BYiIDc4ZDdmNTA2MGViZTRiNjE5NzZlZWM4OWM5OT***** Date: Tue, 17 Apr 2025 03:22:33 GMT Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>NoSuchKey</Code> <Message>The specified key does not exist.</Message> <RequestId>5CAC0FEADE0170*****</RequestId> <HostId>versioning-get.oss-cn-hangzhou.aliyun*****</HostId> <Key>example</Key> </Error>
-
-
Especificar o ID de versão de um marcador de exclusão
-
Exemplo de requisição
GET /example?versionId=CAEQMxiBgMCfqaWA0BYiIDliMWI4MGQ0MTVmMjQ3MmE5MDNlMmY4YmFkYTk3**** HTTP/1.1 Host: versioning-get.oss-cn-hangzhou.aliyuncs.com Date: Tue, 17 Apr 2025 03:09:44 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Exemplo de resposta
HTTP/1.1 405 Method Not Allowed x-oss-request-id: 5CAC0CF8DE01700***** x-oss-delete-marker: true x-oss-version-id: CAEQMxiBgMCfqaWADliMWI4MGQ0MTVmMjQ3MmE5MDNlMmY4YmFkYTk***** Allow: DELETE Date: Tue, 17 Apr 2025 03:09:44 GMT Content-Type: application/xml Content-Length: 318 Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>MethodNotAllowed</Code> <Message>The specified method is not allowed against this resource.</Message> <RequestId>5CAC0CF8DE0170*****</RequestId> <HostId>versioning-get.oss-cn-hangzhou.aliyunc*****</HostId> <Method>GET</Method> <ResourceType>DeleteMarker</ResourceType> </Error>
-
Códigos de erro
Se uma requisição falhar, o OSS retorna um corpo de resposta contendo um código de erro. A tabela a seguir lista os códigos de erro para esta operação.
|
Código de erro |
Código de status HTTP |
Descrição |
|
NoSuchKey |
404 |
O objeto de destino não existe. |
|
SymlinkTargetNotExist |
404 |
O objeto é um link simbólico e o objeto de destino não existe. |
|
InvalidTargetType |
400 |
O objeto é um link simbólico e o objeto de destino também é um link simbólico. |
|
InvalidObjectState |
403 |
Ao baixar um objeto da classe de armazenamento Archive:
|
|
Not Modified |
304 |
Este erro é retornado pelos seguintes motivos:
|
|
Precondition Failed |
412 |
Este erro é retornado pelos seguintes motivos:
|
|
Not Found |
404 |
Este erro é retornado se o versionId de um objeto não for especificado na requisição e a versão atual do objeto for um marcador de exclusão. |
|
Method Not Allowed |
405 |
Este erro é retornado se o versionId de um objeto for especificado na requisição e o versionId corresponder a um marcador de exclusão. |
Métodos de integração
-
SDK
A tabela a seguir lista os kits de desenvolvimento de software (SDKs) para diferentes linguagens que podem ser usados para chamar a operação GetObject.
-
Interface de linha de comando ossutil
Para obter informações sobre o comando ossutil correspondente à operação GetObject, consulte get-object.