Object Storage Service (OSS) にアップロードされた一部のデータは、頻繁にアクセスされない場合がありますが、コンプライアンスまたはアーカイブ要件のため、コールドストレージに保存する必要があります。 また、ストレージコストを削減するために、バッチで不要になったデータを削除することもできます。 このような場合、最新の変更時刻に基づいてライフサイクルルールを設定し、定期的にホットデータをコールドデータに変換したり、不要なオブジェクトを削除したりできます。
使用上の注意
オブジェクトの最終変更時刻に基づいてライフサイクルルールを設定する前に、この機能に慣れていることを確認してください。 詳細については、「最終変更時刻に基づくライフサイクルルール」をご参照ください。
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSecurity Token Service (STS) を使用してOSSClientインスタンスを作成する場合は、「OSSClientインスタンスの作成」をご参照ください。
ライフサイクルルールを設定するには、
oss:PutBucketLifecycle
権限が必要です。 ライフサイクルルールをクエリするには、oss:GetBucketLifecycle
権限が必要です。 ライフサイクルルールを削除するには、oss:DeleteBucketLifecycle
権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。
バケットのライフサイクルルールの設定
次のサンプルコードは、examplebucketという名前のバケットの最終変更時刻に基づいてライフサイクルルールを設定する方法の例を示しています。 ライフサイクルルールを変更するには、「1つ以上のライフサイクルルールの設定を変更する方法」の手順に従います。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケット名を指定します。
bucket = client.get_bucket('examplebucket')
# ライフサイクルルールを設定します。
bucket.lifecycle = [
Aliyun::OSS::LifeCycleRule.new (
: id => 'rule1' 、: enable => true、: prefix => 'foo/'、: expiry => 3) 、
Aliyun::OSS::LifeCycleRule.new (
: id => 'rule2', :enable => false, :prefix => 'bar/', :expiry => Date.new(2016, 1, 1))
]
バケットのライフサイクルルールの照会
次のサンプルコードは、examplebucket用に設定されたライフサイクルルールを照会する方法の例を示しています。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケット名を指定します。
bucket = client.get_bucket('examplebucket')
# ライフサイクルルールを照会します。
rules = bucket.lifecycle
置くルール
バケットのライフサイクルルールをすべて削除する
次のサンプルコードは、examplebucket用に設定されたライフサイクルルールを削除する方法の例です。 1つ以上のライフサイクルルールを削除するには、「1つ以上のライフサイクルルールを削除する方法」の手順に従います。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケット名を指定します。
bucket = client.get_bucket('examplebucket')
# バケットに設定されているライフサイクルルールを削除します。
bucket.lifecycle = []
参考資料
ライフサイクルルールを設定するために呼び出すことができるAPI操作の詳細については、「PutBucketLifecycle」をご参照ください。
ライフサイクルルールを照会するために呼び出すAPI操作の詳細については、「GetBucketLifecycle」をご参照ください。
ライフサイクルルールを削除するために呼び出すことができるAPI操作の詳細については、「DeleteBucketLifecycle」をご参照ください。