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

Object Storage Service:ライフサイクル (Ruby SDK)

最終更新日:Nov 30, 2025

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」をご参照ください。