バージョン管理は、バケット内のすべてのオブジェクトに適用されます。オブジェクトが誤って上書きまたは削除された場合に、以前の任意のバージョンに回復できます。
バケットには、バージョン管理が無効 (デフォルト)、バージョン管理が有効、バージョン管理が一時停止の 3 つのバージョン管理状態があります。バージョン管理状態の詳細については、「バージョン管理」をご参照ください。
注意事項
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス認証情報は環境変数から取得されます。アクセス認証情報の設定方法の詳細については、「OSS SDK for Python 1.0 を使用したアクセス認証情報の設定」をご参照ください。
このトピックでは、OSSClient インスタンスは OSS エンドポイントを使用して作成されます。カスタムドメイン名またはセキュリティトークンサービス (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化」をご参照ください。
バケットのバージョン管理状態を設定するには、
oss:PutBucketVersioning権限が必要です。バケットのバージョン管理状態を取得するには、oss:GetBucketVersioning権限が必要です。詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。
バケットのバージョン管理状態の設定
次のコードは、バケットのバージョン管理状態を有効または一時停止に設定する方法を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import BucketVersioningConfig
# 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、環境変数 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"
# バケットが配置されているリージョン (cn-hangzhou など) を指定します。注意:このパラメーターは V4 署名に必要です。
region = "cn-hangzhou"
# yourBucketName をバケット名に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# バケットのバージョン管理設定を作成します。
config = BucketVersioningConfig()
# ステータスを有効または一時停止に設定します。
config.status = oss2.BUCKET_VERSIONING_ENABLE
# バケットのバージョン管理状態を設定します。
result = bucket.put_bucket_versioning(config)
# HTTP リターンコードを表示します。
print('http response code:', result.status)バケットのバージョン管理状態の取得
次のコードは、バケットのバージョン管理状態を取得する方法を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、環境変数 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"
# バケットが配置されているリージョン (cn-hangzhou など) を指定します。注意:このパラメーターは V4 署名に必要です。
region = "cn-hangzhou"
# yourBucketName をバケット名に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# バケットのバージョン管理状態を取得します。
versioning_info = bucket.get_bucket_versioning()
# バケットのバージョン管理状態を表示します。バージョン管理が有効化されたことがある場合、状態は有効または一時停止になります。バージョン管理が有効化されたことがない場合、状態は None になります。
print('bucket versioning status:', versioning_info.status)関連ドキュメント
バージョン管理の完全なサンプルコードについては、「GitHub」をご参照ください。
バケットのバージョン管理状態を設定するために使用される API 操作の詳細については、「PutBucketVersioning」をご参照ください。
バケットのバージョン管理状態を取得するために使用される API 操作の詳細については、「GetBucketVersioning」をご参照ください。