すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSS オブジェクトの解凍状態を確認する方法

最終更新日:Mar 01, 2026

Archive、コールドアーカイブ、およびディープコールドアーカイブのオブジェクトは、読み取る前に解凍する必要があります。解凍を開始した後、以下のいずれかの方法を使用して、操作が完了したかどうかを確認します。

  • 少数のオブジェクト: HeadObject を呼び出し、x-oss-restore 応答ヘッダーを確認します。OSS コンソール、SDK、ossutil、および API を介して利用可能です。

  • 多数のオブジェクト: ListObjectsV2ListObjects、または ListObjectVersions を呼び出し、RestoreInfo 応答要素を確認します。SDK および API を介してのみ利用可能です。

復元状態

どちらの方法も、以下の3つの状態のいずれかを返します。

状態HeadObject (x-oss-restore ヘッダー)ListObjects (RestoreInfo 要素)
復元されていませんまたは復元がタイムアウトしましたヘッダーが返されない要素が返されない
復元中ongoing-request="true"ongoing-request="true"
復元完了ongoing-request="false", expiry-date="<date>"ongoing-request="false", expiry-date="<date>"

解凍が完了すると、expiry-date の値は、オブジェクトが再び読み取り不可になる日時を示します。

特定のオブジェクトの確認

HeadObject を使用して、個々のオブジェクトの解凍状態を確認します。

注意事項

多数のオブジェクトに対して HeadObject を呼び出すと、高額な GET リクエスト料金が発生します。詳細については、「API 操作呼び出し料金」をご参照ください。一度に多数のオブジェクトを確認するには、代わりに「バッチクエリ方式」を使用してください。

権限

oss:GetObject 権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。

OSS コンソール

  1. OSS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[バケット] をクリックします。[バケット]ページで、管理するバケットをクリックします。

  3. 左側のナビゲーションツリーで、[オブジェクト管理] > [オブジェクト] を選択します。

  4. 管理するオブジェクトの操作列で、[詳細の表示] をクリックします。

    • 復元操作が実行されなかった場合、または復元操作がタイムアウトした場合、[Restore][Object Name] フィールドの右側に、[View Details] パネル内に表示されます。

    • 復元操作が進行中の場合、[詳細表示] パネルの [オブジェクト名] フィールドの右側に [復元中] が表示されます。

    • 復元操作が完了すると、[詳細表示] パネルの [オブジェクト名] フィールドの右側に [復元済み] が表示され、[復元状態の有効期間] フィールドの右側にはオブジェクトを読み取ることができる期間が表示されます。

OSS SDK

以下の Python の例は、HeadObject を呼び出して、examplebucket バケットの exampledir ディレクトリにある exampleobject.txt という名前の Archive オブジェクトの解凍状態を確認します。

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

# 環境変数からアクセス認証情報を取得します。
# OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.AuthProvider(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンのエンドポイントを指定します。
# 例: https://oss-cn-hangzhou.aliyuncs.com
# バケット名を指定します。例: examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# バケットの exampledir ディレクトリ内のすべてのオブジェクトを一覧表示します。
for obj in oss2.ObjectIterator(bucket, prefix='exampledir/'):
    # ストレージクラスがアーカイブ、コールドアーカイブ、またはディープコールドアーカイブであるかどうかを確認します。
    if obj.storage_class in ['Archive', 'ColdArchive', 'DeepArchive']:
        print("ETag:", obj.etag)
        print("キー:", obj.key)
        print("最終更新日時:", obj.last_modified)
        print("サイズ:", obj.size)
        print("ストレージクラス:", obj.storage_class)
        print("タイプ:", obj.type)
        print("解凍情報:", obj.restore_info)
        print("オーナー ID:", obj.owner.id)
        print("オーナー表示名:", obj.owner.display_name)

復元完了 -- ongoing-requestfalse の場合のサンプル応答:

{
    "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"
}

この応答では、x-oss-restore ヘッダーが ongoing-request="false" を示しており、解凍が完了したことを意味します。オブジェクトは expiry-date で指定された日時まで読み取り可能です。

他のプログラミング言語での SDK の例については、「概要」をご参照ください。

ossutil

次のコマンドは、exampledir/exampleobject.txt の復元ステータスを examplebucket バケットで確認します。

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

復元完了 -- オブジェクトが復元された場合の応答例:

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

出力で X-Oss-Restore フィールドを探します。このフィールドが存在しない場合、オブジェクトは解凍されていないか、解凍がタイムアウトしています。詳細については、「stat」をご参照ください。

OSS API

RESTful API を直接呼び出すには、コードに署名計算を含めます。詳細については、「HeadObject」をご参照ください。

複数のオブジェクトを一度に確認する

ListObjectsV2ListObjects、または ListObjectVersions を使用して、プレフィックスで複数のオブジェクトの解凍状態を確認します。

重要

OSS コンソールと ossutil は、バッチ解凍ステータスクエリをサポートしていません。SDK または API を使用してください。

注意事項

これらの操作は、ストレージクラスでオブジェクトをフィルタリングしません。Archive、コールドアーカイブ、またはディープコールドアーカイブのオブジェクトのみを確認するには、クライアント側で storage-class 属性によって結果をフィルタリングします。

権限

  • oss:ListObjects 権限が必要です。

  • オブジェクトバージョンをリストするには、oss:ListObjectVersions 権限も必要です。

詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。

OSS SDK

以下の Python の例は、ListObjects を呼び出して、examplebucket バケットの exampledir/ プレフィックスを持つオブジェクトをリストし、その解凍状態を出力します。

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

# Obtain access credentials from environment variables.
# Make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.AuthProvider(EnvironmentVariableCredentialsProvider())

# Specify the endpoint of the region in which the bucket is located.
# Example: https://oss-cn-hangzhou.aliyuncs.com
# Specify the name of the bucket. Example: examplebucket.
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# List all objects in the exampledir directory of the bucket.
for obj in oss2.ObjectIterator(bucket, prefix='exampledir/'):
    # Check whether the storage class is Archive, Cold Archive, or Deep Cold 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)

応答例:

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****

この応答では、restore_info: None は解凍操作が実行されていないか、解凍がタイムアウトしたことを意味します。解凍が進行中の場合、値は ongoing-request="true" です。解凍が完了すると、値には ongoing-request="false"expiry-date が含まれます。

他のプログラミング言語での SDK の例については、「概要」をご参照ください。

OSS API

RESTful API を直接呼び出すには、コードに署名計算を含めます。詳細については、「ListObjectsV2 (GetBucketV2)」、「GetBucket (ListObjects)」、および「ListObjectVersions (GetBucketVersions)」をご参照ください。