Todos os produtos
Search
Central de documentação

Object Storage Service:Download a file (Python SDK V1)

Última atualização: Sep 22, 2026

Em um bucket com controle de versão ativado, a operação GetObject retorna, por padrão, apenas a versão atual do objeto. Também é possível baixar uma versão específica ao informar o respectivo ID da versão.

Informações básicas

Ao chamar a operação GetObject em um bucket, ocorre um dos cenários a seguir:

  • Se a versão atual do objeto for um marcador de exclusão, o OSS retornará 404 Not Found.

  • Caso você especifique o versionId no parâmetro de consulta, a versão correspondente será retornada. Ao definir o versionId como "null", o sistema retornará a versão do objeto que possui versionId nulo.

  • Se você tentar recuperar um marcador de exclusão ao especificar o respectivo versionId, o OSS retornará 405 Method Not Allowed.

Observações

  • Este tópico utiliza o endpoint público da região China (Hangzhou). Caso pretenda acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, utilize um endpoint interno. Para saber mais sobre as regiões e endpoints do OSS, consulte Regions and endpoints.

  • As credenciais de acesso utilizadas neste exemplo são obtidas por meio de variáveis de ambiente. Para detalhes sobre como configurar essas credenciais, consulte Configure access credentials using OSS SDK for Python 1.0.

  • O código abaixo demonstra como criar uma instância OSSClient com um endpoint do OSS. Para configurações alternativas, como o uso de domínio personalizado ou autenticação via Security Token Service (STS), consulte Initialization.

  • Para baixar um objeto, você precisa da permissão oss:GetObject. Para mais detalhes, consulte Grant a custom policy.

Código de exemplo

O exemplo a seguir ilustra como baixar uma versão específica de um objeto:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Specify the endpoint of the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the region that corresponds to the endpoint, for example, cn-hangzhou. Note that this parameter is required for V4 signatures.
region = "cn-hangzhou"

# Replace yourBucketName with the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)

# Download a specific version of an object.
params = dict()
params['versionId'] = '<yourObjectVersionId>'
object_stream = bucket.get_object('<yourObjectName>', params=params)

# Read the content of the downloaded object.
read_content = object_stream.read()
print('get object content:', read_content)
# View the version ID of the downloaded object.
print('get object versionid:', object_stream.versionid)

# The get_object operation returns a stream. The CRC checksum is calculated only after read() is called.
# Therefore, you must perform a CRC check after the call.
if object_stream.client_crc != object_stream.server_crc:
   print("The CRC checksum between client and server is inconsistent!")

Referências

Para conhecer os detalhes da API, consulte GetObject.