アーカイブ、コールドアーカイブ、ディープコールドアーカイブのオブジェクトは、読み取る前に解凍する必要があります。 このトピックでは、これらのオブジェクトを解凍する方法について説明します。
注意事項
`RestoreObject` メソッドは、アーカイブ、コールドアーカイブ、またはディープコールドアーカイブのオブジェクトに対してのみ呼び出すことができます。
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSS と同じリージョンにある他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。 OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス認証情報は環境変数から取得されます。 アクセス認証情報の設定方法の詳細については、「Python 1.0 用 OSS SDK を使用したアクセス認証情報の設定」をご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。 カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化」をご参照ください。
オブジェクトを解凍するには、
oss:RestoreObject権限が必要です。 詳細については、「RAM ユーザーへのカスタムアクセスポリシーのアタッチ」をご参照ください。
アーカイブオブジェクトの解凍
次のコードは、アーカイブオブジェクトを解凍する方法を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import RestoreConfiguration
# 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントに対応するリージョン ID を設定します。 例:cn-hangzhou。 このパラメーターは、署名バージョン 4 を使用する場合に必要です。
region = "cn-hangzhou"
# yourBucketName をご自身のバケット名に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# objectName をアーカイブオブジェクトの完全なパスに設定します。 パスにバケット名を含めないでください。
objectName = 'yourArchiveObjectName'
# オブジェクトが解凍状態を維持する日数を設定します。 デフォルト値は 1 です。 この例では、値を 2 に設定します。
days = 2
restore_config = RestoreConfiguration(days=days)
# 解凍リクエストを開始します。
bucket.restore_object(objectName, input=restore_config) コールドアーカイブオブジェクトの解凍
次のコードは、コールドアーカイブオブジェクトを解凍する方法を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import (RestoreJobParameters,
RestoreConfiguration,
RESTORE_TIER_EXPEDITED,
RESTORE_TIER_STANDARD,
RESTORE_TIER_BULK)
# 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントに対応するリージョン ID を設定します。 例:cn-hangzhou。 このパラメーターは、署名バージョン 4 を使用する場合に必要です。
region = "cn-hangzhou"
# yourBucketName をご自身のバケット名に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# object_name をコールドアーカイブオブジェクトの完全なパスに設定します。 パスにバケット名を含めないでください。
object_name = "yourColdArchiveObjectName"
# オブジェクトが解凍状態を維持する日数を設定します。 デフォルト値は 1 です。 この例では、値を 2 に設定します。
days = 2
# 解凍優先度を設定します。 この例では、優先度を RESTORE_TIER_BULK に設定します。
# RESTORE_TIER_EXPEDITED:オブジェクトは 1 時間以内に解凍されます。
# RESTORE_TIER_STANDARD:オブジェクトは 2~5 時間以内に解凍されます。
# RESTORE_TIER_BULK:オブジェクトは 5~12 時間以内に解凍されます。
job_parameters = RestoreJobParameters(RESTORE_TIER_BULK)
restore_config = RestoreConfiguration(days=days, job_parameters=job_parameters)
# 解凍リクエストを開始します。
bucket.restore_object(object_name, input=restore_config)ディープコールドアーカイブオブジェクトの解凍
次のコードは、ディープコールドアーカイブオブジェクトを解凍する方法を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import (RestoreJobParameters,
RestoreConfiguration,
RESTORE_TIER_EXPEDITED,
RESTORE_TIER_STANDARD)
# 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントに対応するリージョン ID を設定します。 例:cn-hangzhou。 このパラメーターは、署名バージョン 4 を使用する場合に必要です。
region = "cn-hangzhou"
# yourBucketName をご自身のバケット名に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# object_name をディープコールドアーカイブオブジェクトの完全なパスに設定します。 パスにバケット名を含めないでください。
object_name = "yourDeepColdArchiveObjectName"
# オブジェクトが解凍状態を維持する日数を設定します。 デフォルト値は 1 です。 この例では、値を 2 に設定します。
days = 2
# 解凍優先度を設定します。 この例では、優先度を RESTORE_TIER_STANDARD に設定します。
# RESTORE_TIER_EXPEDITED:オブジェクトは 12 時間以内に解凍されます。
# RESTORE_TIER_STANDARD:オブジェクトは 48 時間以内に解凍されます。
job_parameters = RestoreJobParameters(RESTORE_TIER_STANDARD)
restore_config = RestoreConfiguration(days=days, job_parameters=job_parameters)
# 解凍リクエストを開始します。
bucket.restore_object(object_name, input=restore_config)関連ドキュメント
アーカイブ、コールドアーカイブ、ディープコールドアーカイブオブジェクトを解凍するための完全なサンプルコードについては、「GitHub の例」をご参照ください。
アーカイブ、コールドアーカイブ、ディープコールドアーカイブオブジェクトを解凍するための API 操作の詳細については、「RestoreObject」をご参照ください。