Todos os produtos
Search
Central de documentação

Object Storage Service:Como verificar se um objeto do OSS foi restaurado

Última atualização: Jul 03, 2026

Após restaurar objetos Archive, Cold Archive ou Deep Cold Archive no Object Storage Service (OSS), confirme a conclusão total da restauração antes de lê-los. Para verificar vários objetos em lote, chame as operações de API relevantes e especifique um prefixo para visualizar o estado de restauração. Para verificar poucos objetos, use a operação HeadObject e informe o nome exato do objeto para consultar seu status.

Verificar o estado de restauração de objetos em lote

Para consultar o estado de restauração de múltiplos objetos simultaneamente, chame a operação ListObjectsV2, ListObjects ou ListObjectVersions. Em seguida, analise o elemento de resposta RestoreInfo para obter as seguintes informações:

  • Se o objeto não estiver restaurado ou a operação tiver expirado, o campo RestoreInfo não será retornado.

  • Durante a restauração, o campo RestoreInfo exibirá ongoing-request="true".

  • Com a restauração concluída, o campo RestoreInfo mostrará ongoing-request="false" e incluirá uma expiry-date indicando quando o estado legível do objeto expira.

Observações

As operações ListObjectsV2, ListObjects e ListObjectVersions não permitem especificar uma classe de armazenamento. Para filtrar resultados por objetos Archive, Cold Archive ou Deep Cold Archive, verifique manualmente a propriedade storage-class de cada objeto e aplique o filtro no lado do cliente.

Permissões

  • A verificação do estado de restauração de objetos em lote requer a permissão oss:ListObjects.

  • A consulta do estado de restauração de todas as versões dos objetos em lote exige a permissão oss:ListObjectVersions.

  • Para mais detalhes, consulte Conceder permissões personalizadas a um usuário RAM.

Importante

O console do OSS e a interface de linha de comando ossutil não suportam a verificação do estado de restauração de objetos em lote por meio das operações ListObjectsV2, ListObjects ou ListObjectVersions.

Usar SDKs da Alibaba Cloud

O código de exemplo em Python abaixo demonstra como chamar a operação ListObjects para verificar o estado de restauração de objetos com o prefixo exampledir/ no bucket examplebucket:

# -*- 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 set.
auth = oss2.ProviderAuth(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.
# Specify the bucket name, for example, examplebucket.
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# List all objects in the exampledir folder of the bucket.
for obj in oss2.ObjectIterator(bucket, prefix='exampledir/'):
    # Check whether the storage class of the object is Archive, Cold Archive, or Deep Archive.
    if obj.storage_class in ['Archive', 'ColdArchive', 'DeepArchive']:
        print("etag:", obj.etag)
        print("key:", obj.key)
        print("last_modified:", obj.last_modified)
        print("size:", obj.size)
        print("storage_class:", obj.storage_class)
        print("type:", obj.type)
        print("restore_info:", obj.restore_info)
        print("owner.id:", obj.owner.id)
        print("owner.display_name:", obj.owner.display_name)

Exemplo de resposta:

etag: 1797116AF33DB090B2DC79FE70E6F685
key: exampledir/exampleobjec2.txt
last_modified: 1704262519
size: 941
storage_class: DeepColdArchive
type: Normal
restore_info: None
owner.id: 137918634953****
owner.display_name: 137918634953****
etag: 1797116AF33DB090B2DC79FE70E6F685
key: exampledir/exampleobject.txt
last_modified: 1704262504
size: 941
storage_class: ColdArchive
type: Normal
restore_info: None
owner.id: 137918634953****
owner.display_name: 137918634953****
etag: 1797116AF33DB090B2DC79FE70E6F685
key: exampledir/exampleobject1.txt
last_modified: 1704262612
size: 941
storage_class: Archive
type: Normal
restore_info: None
owner.id: 137918634953****
owner.display_name: 137918634953****

Para exemplos de código em outras linguagens de programação, consulte Listar objetos em Visão geral do SDK.

Usar REST API

Caso seu programa exija alto nível de personalização, envie solicitações diretamente à REST API. Para isso, escreva manualmente o código necessário para calcular as assinaturas. Para mais informações, consulte ListObjectsV2 (GetBucketV2), GetBucket (ListObjects) e ListObjectVersions (GetBucketVersions).

Verificar o estado de restauração de um objeto específico

Para verificar o estado de restauração de poucos objetos, chame a operação HeadObject e examine o cabeçalho de resposta x-oss-restore para obter as seguintes informações:

  • Se o objeto não estiver restaurado ou a operação tiver atingido o tempo limite, o campo x-oss-restore não será retornado.

  • Durante a restauração, o campo x-oss-restore apresentará ongoing-request="true".

  • Com a restauração concluída, o campo x-oss-restore indicará ongoing-request="false" e conterá uma expiry-date informando quando o estado legível do objeto expira.

Observações

Chamar a operação HeadObject para muitos objetos gera custos elevados com solicitações GET. Para mais detalhes, consulte Taxas de solicitação.

Permissões

A verificação do estado de restauração de um objeto específico requer a permissão oss:GetObject. Para mais informações, consulte Conceder permissões personalizadas a um usuário RAM.

Usar o console do OSS

  1. Faça login no console do OSS.

  2. Clique em Buckets e, em seguida, clique em o nome do bucket desejado.

  3. No painel de navegação à esquerda, escolha Files > Objects.

  4. Na coluna Actions do objeto alvo, selecione Details.

    • Se o objeto não estiver restaurado ou a operação tiver expirado, Restore aparecerá à direita de Object Name no painel Details.

    • Enquanto o objeto estiver sendo restaurado, Restoring será exibido à direita de Object Name no painel Details.

    • Após a conclusão da restauração, Restored ficará visível à direita de Object Name no painel Details. O horário de expiração do estado legível aparecerá ao lado de Restored State Expiration.

Usar SDKs da Alibaba Cloud

O exemplo de código Python a seguir ilustra como invocar a operação HeadObject para verificar o estado de restauração do objeto Archive chamado exampleobject.txt, localizado na pasta exampledir do bucket examplebucket:

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
import json

# 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 set.
auth = oss2.ProviderAuth(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.
# Specify the bucket name, for example, examplebucket.
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# Get the metadata of the object.
result = bucket.head_object('exampledir/exampleobject.txt')

# Print the HTTP response headers to get some metadata about the object. Use json.dumps to format the JSON output.
print(json.dumps(dict(result.headers), indent=4))

Exemplo de resposta:

{
    "Server": "AliyunOSS",
    "Date": "Wed, 03 Jan 2024 03:32:58 GMT",
    "Content-Type": "text/plain",
    "Content-Length": "941",
    "Connection": "keep-alive",
    "x-oss-request-id": "6594D56AE80D013535FE****",
    "Accept-Ranges": "bytes",
    "ETag": "\"1797116AF33DB090B2DC79FE70E6F685\"",
    "Last-Modified": "Wed, 03 Jan 2024 03:26:50 GMT",
    "x-oss-object-type": "Normal",
    "x-oss-hash-crc64ecma": "10914985812740272941",
    "x-oss-storage-class": "Archive",
    "x-oss-restore": "ongoing-request=\"false\", expiry-date=\"Thu, 04 Jan 2024 03:28:54 GMT\"",
    "x-oss-expiration": "expiry-date=\"Thu, 04 Jan 2024 00:00:00 GMT\", rule-id=\"ae01d217-94e8-44a6-989a-b89583b****\"",
    "x-oss-version-id": "null",
    "Content-MD5": "F5cRavM9sJCy3Hn+cOb2hQ==",
    "x-oss-server-time": "54"
}

Para códigos de exemplo em outras linguagens de programação, consulte Obter metadados de objeto em Visão geral do SDK.

Usar a interface de linha de comando ossutil

Execute o comando abaixo para verificar o estado de restauração do objeto com a chave exampledir/exampleobject.txt no bucket examplebucket:

ossutil stat oss://examplebucket/exampledir/exampleobject.txt

Exemplo de resposta para uma operação de restauração concluída:

ACL                   : private
Accept-Ranges         : bytes
Content-Length        : 941
Content-Md5           : F5cRavM9sJCy3Hn+cOb2hQ==
Content-Type          : text/plain
Etag                  : 1797116AF33DB090B2DC79FE70E6F685
Last-Modified         : 2024-01-03 11:26:50 +0800 CST
Owner                 : 137918634953****
X-Oss-Expiration      : expiry-date="Thu, 04 Jan 2024 00:00:00 GMT", rule-id="ae01d217-94e8-44a6-989a-b89583b****"
X-Oss-Hash-Crc64ecma  : 10914985812740272941
X-Oss-Object-Type     : Normal
X-Oss-Restore         : ongoing-request="false", expiry-date="Thu, 04 Jan 2024 03:28:54 GMT"
X-Oss-Storage-Class   : Archive
X-Oss-Version-Id      : null

0.291855(s) elapsed

Para mais informações, consulte stat (Visualizar informações de bucket e objeto).

Usar REST API

Se o seu programa demandar alta personalização, envie solicitações diretamente à REST API. Nesse caso, implemente manualmente o cálculo das assinaturas no código. Para mais detalhes, consulte HeadObject.