全部產品
Search
文件中心

Object Storage Service:Ruby生命週期

更新時間:Jun 19, 2024

並不是所有上傳至OSS的資料都需要頻繁訪問,但基於資料合規或者存檔等原因,部分資料仍需要繼續以冷儲存類型進行儲存。或者基於業務使用情境,希望大量刪除Bucket內不再需要儲存的資料。您可以配置基於最後一次修改時間(Last Modified Time)的生命週期規則,定期將Object從熱儲存類型轉為冷儲存類型或者刪除Object,以降低儲存成本。

注意事項

  • 本文以華東1(杭州)外網Endpoint為例。如果您希望通過與OSS同地區的其他阿里雲產品訪問OSS,請使用內網Endpoint。關於OSS支援的Region與Endpoint的對應關係,請參見訪問網域名稱和資料中心

  • 本文以OSS網域名稱建立OSSClient為例。如果您希望通過自訂網域名、STS等方式建立OSSClient,請參見建立OssClient

  • 要設定生命週期規則,您必須具有oss:PutBucketLifecycle許可權;要查看生命週期規則,您必須具有oss:GetBucketLifecycle許可權;要清空生命週期規則,您必須具有oss:DeleteBucketLifecycle許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

設定生命週期規則

以下代碼用於為examplebucket設定基於最後一次修改時間的生命週期規則。設定完成後,如果您希望修改其中的一條或多條生命週期規則,請參見如何修改其中一條或多條生命週期規則配置?

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Endpoint以華東1(杭州)為例,其它Region請按實際情況填寫。
  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名稱。
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以華東1(杭州)為例,其它Region請按實際情況填寫。
  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名稱。
bucket = client.get_bucket('examplebucket')
# 查看生命週期規則。
rules = bucket.lifecycle
puts rules

清空生命週期規則

以下代碼用於清空examplebucket的所有生命週期規則。如果您需要刪除其中一條或者多條生命週期規則,請參見如何刪除其中一條或多條生命週期規則?

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Endpoint以華東1(杭州)為例,其它Region請按實際情況填寫。
  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名稱。
bucket = client.get_bucket('examplebucket')
# 清空生命週期規則。
bucket.lifecycle = []

相關文檔