Todos os produtos
Search
Central de documentação

Object Storage Service:Restaurar objetos (Python SDK V2)

Última atualização: Jul 03, 2026

Restaure objetos Archive, Cold Archive e Deep Cold Archive antes de lê-los. A restauração cria uma cópia temporária que coexiste com o objeto original e é excluída automaticamente após a expiração do estado restaurado. Este tópico descreve como usar o OSS Python SDK para restaurar esses objetos.

Observações

  • O código de exemplo deste tópico usa um endpoint público na região China (Hangzhou) (ID da região: cn-hangzhou) como exemplo. Para acessar o OSS a partir de outro produto da Alibaba Cloud na mesma região, use um endpoint interno. Para obter mais informações sobre os endpoints de cada região do OSS, consulte Regiões e endpoints do OSS.

  • Para restaurar um objeto, você precisa da permissão oss:RestoreObject. Para obter mais informações, consulte Conceder permissões personalizadas a um usuário RAM.

Definição do método

restore_object(request: RestoreObjectRequest, **kwargs) → RestoreObjectResult

Parâmetros da solicitação

Parâmetro

Tipo

Descrição

request

RestoreObjectRequest

Os parâmetros da solicitação. Para obter mais informações, consulte RestoreObjectRequest

A tabela a seguir descreve os parâmetros comuns de RestoreObjectRequest.

Parâmetro

Tipo

Descrição

bucket

str

O nome do bucket.

key

str

O nome do objeto.

version_id

str

O ID da versão do objeto a ser restaurado. Se você não definir esse parâmetro, a versão mais recente do objeto será restaurada.

restore_request

RestoreRequest

Os parâmetros da solicitação de restauração. Para obter mais informações, consulte RestoreRequest.

A tabela a seguir descreve os parâmetros de RestoreRequest.

Parâmetro

Tipo

Descrição

days

int

A duração durante a qual o objeto permanece no estado restaurado. Para obter mais informações, consulte Restaurar objetos.

tier

str

O tempo necessário para restaurar o objeto. Para obter mais informações, consulte Restaurar objetos.

Valores de retorno

Tipo

Descrição

RestoreObjectResult

O valor de retorno. Para obter mais informações, consulte RestoreObjectResult.

Para obter a definição completa do método, consulte restore_object.py.

Código de exemplo

Use o código a seguir para restaurar objetos Archive, Cold Archive ou Deep Cold Archive:

import time
import argparse
import alibabacloud_oss_v2 as oss

# Create a command-line argument parser.
parser = argparse.ArgumentParser(description="restore object sample")
# Add the required command-line arguments.
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS.')
parser.add_argument('--key', help='The name of the object.', required=True)

def main():
    # Parse the incoming command-line arguments.
    args = parser.parse_args()

    # Load authentication information from environment variables.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Use the default SDK configurations.
    cfg = oss.config.load_default()
    # Set the credential provider to environment variable-based authentication.
    cfg.credentials_provider = credentials_provider
    # Set the region.
    cfg.region = args.region
    # If an endpoint is provided, set the endpoint as a configuration item.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Create an OSS client.
    client = oss.Client(cfg)

    # Execute the request to restore the object.
    result = client.restore_object(oss.RestoreObjectRequest(
        bucket=args.bucket,
        key=args.key,
        restore_request=oss.RestoreRequest(
            days=1,
            # Optional: Set the restoration priority for Cold Archive or Deep Cold Archive objects. Valid values: Expedited, Standard, and Bulk. Default value: Standard.
            # tier="Bulk",
        )
    ))

    # Print the result of the restore request.
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' version id: {result.version_id},'
          f' restore priority: {result.restore_priority},'
    )

    # Loop to check whether the object is restored.
    while True:
        # Get the object header.
        result = client.head_object(oss.HeadObjectRequest(
            bucket=args.bucket,
            key=args.key,
        ))

        # Check the restored state.
        if result.restore and result.restore != 'ongoing-request="true"':
            print('Restore is successful')
            break
        # Check again after 5 seconds.
        time.sleep(5)
        print(result.restore)

# Program entry point.
if __name__ == "__main__":
    main()

Referências

  • Para obter o código de exemplo completo sobre restauração de objetos, consulte restore_object.py.

  • Para obter mais informações sobre como restaurar objetos, consulte Restaurar objetos.