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

Object Storage Service:OSSオブジェクトが復元されているかどうかを確認するにはどうすればよいですか。

最終更新日:May 06, 2024

Archive、Cold Archive、またはDeep Cold Archiveオブジェクトを復元した後、オブジェクトを読む前にオブジェクトが復元されていることを確認してください。 多数のオブジェクトを復元した後、ListObjectsV2ListObjects、またはListObjectVersions操作を呼び出して、名前に特定のプレフィックスが含まれるオブジェクトがRestoreInfo応答要素に基づいて復元されているかどうかを確認できます。 少数のオブジェクトを復元した後、HeadObject操作を呼び出し、オブジェクト名を指定して、オブジェクトがx-oss-restoreレスポンスヘッダーに基づいて復元されているかどうかを確認できます。

複数のオブジェクトに関する復元情報を同時にクエリ

複数のオブジェクトに関する復元情報を同時にクエリする場合は、ListObjectsV2ListObjects、またはListObjectVersions操作を呼び出して、RestoreInfo応答要素を確認します。

  • 復元操作が実行されなかった場合、または復元操作がタイムアウトした場合、RestoreInfo応答要素は返されません。

  • 復元操作が進行中の場合は、RestoreInfo応答要素の右側にprocessive-request="true" が表示されます。

  • 復元操作が完了した場合、RestoreInfo応答要素の右側にcending-request="false" が表示されます。 この場合、オブジェクトを読み取ることができない時間を示すために、RestoreInfo応答要素にexpiry-dateが含まれます。

使用上の注意

ListObjectsV2ListObjects、またはListObjectVersions操作を呼び出す場合、オブジェクトのストレージクラスを指定することはできません。 アーカイブ、コールドアーカイブ、ディープコールドアーカイブなどのストレージクラスに基づいて、返された結果のオブジェクトをフィルタリングする場合は、各オブジェクトのstorage-class属性を確認し、ストレージクラスがクライアントで指定されていないオブジェクトを除外します。

権限

重要

ListObjectsV2ListObjects、またはListObjectVersions操作を呼び出して、Object Storage Service (OSS) コンソールまたはossutilを使用して複数のオブジェクトに関する復元情報を同時に照会することはできません。

OSS SDKの使用

次のサンプルコードは、PythonでListObjects操作を呼び出して、名前にexamplebucketという名前のバケット内のexampledir/ プレフィックスが含まれるオブジェクトに関する復元情報を照会する方法の例を示しています。

# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsから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')

# バケットのexamlpedirディレクトリにあるすべてのオブジェクトを一覧表示します。 
oss2.ObjectIteratorのobjの場合 (bucket, prefix='exampledir/'):
    # オブジェクトのストレージクラスがArchive、Cold Archive、またはDeep Cold Archiveかどうかを確認します。
    if obj.storage_class in ['Archive', 'ColdArchive', 'DeepArchive']:
        print("etag:", obj.etag)
        print("key:", obj.key)
        プリント ("last_modified:", obj.last_modified)
        プリント ("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
キー: exampledir /exampleobject2.txt
last_modified: 1704262519
サイズ: 941
storage_class: DeepColdArchive
タイプ: ノーマル
restore_info: なし
owner.id: 137918634953 ****
owner.display_name: 137918634953 ****
etag: 1797116AF33DB090B2DC79FE70E6F685
キー: exampledir/exampleobject.txt
last_modified: 1704262504
サイズ: 941
storage_class: ColdArchive
タイプ: ノーマル
restore_info: なし
owner.id: 137918634953 ****
owner.display_name: 137918634953 ****
etag: 1797116AF33DB090B2DC79FE70E6F685
キー: exampledir/exampleobject1.txt
last_modified: 1704262612
サイズ: 941
storage_class: アーカイブ
タイプ: ノーマル
restore_info: なし
owner.id: 137918634953 ****
owner.display_name: 137918634953 **** 

他のプログラミング言語でオブジェクトを一覧表示するために使用されるサンプルコードについては、「概要」をご参照ください。

OSS APIの使用

ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 詳細については、「ListObjectsV2 (GetBucketV2) 」、「GetBucket (ListObjects) 」、および「ListObjectVersions (GetBucketVersions) 」をご参照ください。

特定のオブジェクトに関する復元情報のクエリ

少数の特定のオブジェクトに関する復元情報を照会する場合は、HeadObject操作を呼び出して、オブジェクトがx-oss-restoreレスポンスヘッダーに基づいて復元されているかどうかを確認できます。

  • 復元操作が実行されない場合、または復元操作がタイムアウトした場合、x-oss-restore応答ヘッダーは返されません。

  • 復元操作が進行中の場合は、x-oss-restoreレスポンスヘッダーの右側にprocessive-request="true" が表示されます。

  • 復元操作が完了すると、x-oss-restoreレスポンスヘッダーの右側にcending-request="false" が表示されます。 この場合、expiry-dateがx-oss-restore応答ヘッダーに含まれ、オブジェクトを読み取ることができなくなるまでの時間を示します。

使用上の注意

HeadObject操作を呼び出して多数のオブジェクトに関する復元情報を照会すると、GETリクエストに対して高額の料金が発生します。 詳細については、「API操作呼び出し料金」をご参照ください。

権限

特定のオブジェクトに関する復元情報をクエリするには、oss:GetObject権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

OSSコンソールの使用

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

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

  3. 左側のナビゲーションツリーで、オブジェクト管理>オブジェクト.

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

    • 復元操作が実行されなかった場合、または復元操作がタイムアウトした場合、[詳細を表示] パネルの [オブジェクト名] フィールドの右側に [復元] が表示されます。

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

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

OSS SDKの使用

次のサンプルコードは、PythonでHeadObject操作を呼び出して、examplebucketバケットのexampledirディレクトリにあるexampleobject.txtという名前のアーカイブオブジェクトに関する復元情報を照会する方法の例を示しています。

# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
jsonのインポート

# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
# バケットの名前を指定します。 例: examplebucket. 
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')

# オブジェクトのメタデータを照会します。 
result = bucket.head_object('exampledir/exampleobject.txt ')

# HTTPレスポンスヘッダーを返して、オブジェクトの特定のメタデータを照会します。 json.dumpsを使用して、表示されるJSONデータをフォーマットします。 
print(json.dumps(dict(result.headers), indent=4)) 

レスポンス例:

{
    "サーバー": "AliyunOSS" 、
    「日付」: 「水曜日、1月2024日03:32:58 GMT」、
    "Content-Type": "text/plain" 、
    "Content-Length": "941" 、
    "接続": "キープアライブ" 、
    "x-oss-request-id": "6594D56AE80D013535FE ****" 、
    "Accept-Ranges": "bytes" 、
    "ETag": "\" 1797116AF33DB090B2DC79FE70E6F685\"" 、
    「最終修正」: 「水曜日、3 1月2024日03:26:50 GMT」、
    "x-oss-object-type": "Normal" 、
    "x-oss-hash-crc64ecma": "10914985812740272941" 、
    "x-oss-storage-class": "アーカイブ" 、
    "x-oss-restore": "継続的な-要求=\" false\"、有効期限=\" Thu、04 Jan 2024 03:28:54 GMT\"" 、
    "x-oss-expiry": "expiry-date=\" 木曜日、4 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"
} 

他のプログラミング言語でオブジェクトメタデータを照会するために使用されるサンプルコードについては、「概要」をご参照ください。

ossutilの使用

次のコマンドを実行して、examplebucketバケット内のexampledir/exampleobject.txtという名前のオブジェクトに関する復元情報を照会します。

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

復元が完了した場合のサンプル応答:

ACL: プライベート
Accept-Ranges: バイト
コンテンツ-長さ: 941
Content-Md5 : F5cRavM9sJCy3Hn + cOb2hQ==
Content-Type : text/plain
Etag : 1797116AF33DB090B2DC79FE70E6F685
最終変更: 2024-01-03 11:26:50 + 0800 CST
所有者: 137918634953 ****
X-Oss-有効期限: 有効期限="木曜日、4 Jan 2024 00:00:00 GMT" 、rule-id="ae01d217-94e8-44a6-989a-b89583b ****"
X-Oss-Hash-Crc64ecma : 10914985812740272941
X-Oss-オブジェクト型: Normal
X-Oss-Restore: 継続的-要求="false" 、有効期限="木曜日、2024年1月4日03:28:54 GMT"
X-Oss-ストレージクラス: アーカイブ
X-Oss-バージョンId : null

0.291855経過 

詳細は、「stat」をご参照ください。

OSS APIの使用

ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 詳細については、「HeadObject」をご参照ください。