Object Storage Service (OSS) にアップロードされたデータの中には、アクセス頻度は低いものの、コンプライアンスやアーカイブの要件によりコールドストレージに保管する必要があるものがあります。また、不要になったデータを一括で削除して、ストレージコストを削減したい場合もあります。このような場合、最終更新日時にもとづいてライフサイクルルールを設定し、ホットデータを定期的にコールドデータに変換したり、不要なオブジェクトを削除したりすることができます。
注意事項
オブジェクトの最終更新日時にもとづいてライフサイクルルールを設定する前に、この機能についてよく理解しておいてください。詳細については、「最終更新日時にもとづくライフサイクルルール」をご参照ください。
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスするには、内部エンドポイントを使用します。サポートされているリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「OssClient の作成」をご参照ください。
ライフサイクルルールを設定するには、
oss:PutBucketLifecycle権限が必要です。ライフサイクルルールを表示するには、oss:GetBucketLifecycle権限が必要です。すべてのライフサイクルルールを削除するには、oss:DeleteBucketLifecycle権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。
バケットのライフサイクルルールの設定
次のサンプルコードは、examplebucket という名前のバケットに対して、最終更新日時にもとづくライフサイクルルールを設定する方法の例を示しています。ライフサイクルルールを変更するには、「1 つ以上のライフサイクルルールの設定を変更する方法」で説明されている手順に従ってください。
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# 中国 (杭州) のエンドポイントを例として使用します。実際のエンドポイントに置き換えてください。
endpoint: '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 に設定されているライフサイクルルールをクエリする方法の例を示しています。
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# 中国 (杭州) のエンドポイントを例として使用します。実際のエンドポイントに置き換えてください。
endpoint: '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
puts rulesバケットのすべてのライフサイクルルールの削除
次のサンプルコードは、examplebucket に設定されているライフサイクルルールを削除する方法の例を示しています。1 つ以上のライフサイクルルールを削除するには、「1 つ以上のライフサイクルルールを削除する方法」で説明されている手順に従ってください。
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# 中国 (杭州) のエンドポイントを例として使用します。実際のエンドポイントに置き換えてください。
endpoint: '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」をご参照ください。