Todos os produtos
Search
Central de documentação

Object Storage Service:Baixe um arquivo (Python SDK V1)

Última atualização: Jul 03, 2026

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

Informações básicas

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

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

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

  • Ao tentar recuperar um marcador de exclusão especificando seu versionId, o OSS retorna 405 Method Not Allowed.

Observações

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

  • As credenciais de acesso neste exemplo são obtidas de variáveis de ambiente. Para saber como configurar credenciais de acesso, consulte Configurar credenciais de acesso (Python SDK V1).

  • O exemplo demonstra a criação de uma instância OSSClient com um endpoint do OSS. Para outras configurações, como uso de domínio personalizado ou autenticação via Security Token Service (STS), visualize Inicialização.

  • Para baixar um objeto, é necessária a permissão oss:GetObject. Para mais informações, consulte Conceder uma política personalizada.

Código de exemplo

O código abaixo mostra 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 detalhes da API, consulte GetObject.