Todos os produtos
Search
Central de documentação

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

Última atualização: Oct 10, 2026

Após restaurar objetos Archive, Cold Archive ou Deep Cold Archive no Object Storage Service (OSS), confirme se os objetos foram totalmente restaurados antes de lê-los. Para verificar vários objetos em lote, chame as operações de API relevantes, especifique um prefixo e visualize o estado de restauração. Para verificar poucos objetos, chame a operação HeadObject, especifique o nome exato do objeto e visualize seu estado de restauração.

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

Para verificar o estado de restauração de vários objetos em lote, chame a operação ListObjectsV2, ListObjects ou ListObjectVersions. Em seguida, verifique o elemento de resposta RestoreInfo para obter as seguintes informações:

  • Caso o objeto não esteja restaurado ou o tempo limite da operação tenha expirado, a resposta não incluirá o campo RestoreInfo.

  • Se o objeto estiver sendo restaurado, o campo RestoreInfo exibirá ongoing-request="true".

  • Se o objeto estiver restaurado, o campo RestoreInfo exibirá ongoing-request="false" e incluirá um expiry-date que indica quando o estado de leitura do objeto expirará.

Observações

As operações ListObjectsV2, ListObjects e ListObjectVersions não permitem especificar a classe de armazenamento. Para filtrar os resultados e incluir apenas 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

  • Para verificar o estado de restauração de objetos em lote, é necessária a permissão oss:ListObjects.

  • Para verificar o estado de restauração de todas as versões dos objetos em lote, é necessária a permissão oss:ListObjectVersions.

  • Para mais informações, consulte Grant custom permissions to a RAM user.

Importante

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

Usar os SDKs do Alibaba Cloud

O exemplo de código em Python a seguir mostra 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)

Veja a seguir um 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 ver exemplos de código em outras linguagens de programação, consulte Listar objetos em SDK overview.

Usar a API REST

Se o seu programa exigir um alto nível de personalização, envie solicitações diretamente à API REST. Para isso, escreva manualmente o código 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 verifique o cabeçalho de resposta x-oss-restore para obter as seguintes informações:

  • Caso o objeto não esteja restaurado ou o tempo limite da operação tenha expirado, a resposta não incluirá o campo x-oss-restore.

  • Se o objeto estiver sendo restaurado, o campo x-oss-restore exibirá ongoing-request="true".

  • Se o objeto estiver restaurado, o campo x-oss-restore exibirá ongoing-request="false" e incluirá um expiry-date que indica quando o estado de leitura do objeto expirará.

Observações

Chamar a operação HeadObject para muitos objetos gera custos elevados de solicitações GET. Para mais informações, consulte Request fees.

Permissões

Para verificar o estado de restauração de um objeto específico, é necessária a permissão oss:GetObject. Para mais informações, consulte Grant custom permissions to a RAM user.

Usar o console do OSS

  1. Faça login no console do OSS.

  2. Clique em Buckets e, em seguida, clique no nome do bucket de destino.

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

  4. Na coluna Actions do objeto de destino, escolha Details.

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

    • Se o objeto estiver sendo restaurado, Restoring é exibido à direita de Object Name no painel Details.

    • Se o objeto estiver restaurado, Restored é exibido à direita de Object Name no painel Details. A data de expiração do estado de leitura é exibida à direita de Restored State Expiration.

Usar os SDKs do Alibaba Cloud

O exemplo de código em Python a seguir mostra como chamar a operação HeadObject para verificar o estado de restauração do objeto Archive chamado exampleobject.txt 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))

Veja a seguir um 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 ver exemplos de código em outras linguagens de programação, consulte Obter metadados do objeto em SDK overview.

Usar a interface de linha de comando ossutil

Execute o seguinte comando 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

Veja a seguir um 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 (View bucket and object information).

Usar a API REST

Se o seu programa exigir um alto nível de personalização, envie solicitações diretamente à API REST. Para isso, escreva manualmente o código para calcular as assinaturas. Para mais informações, consulte HeadObject.