全部產品
Search
文件中心

Object Storage Service:Ruby管理檔案存取權限

更新時間:Feb 28, 2024

除Bucket層級ACL以外,OSS還提供了Object層級的ACL。您可以在上傳Object時設定相應的ACL,也可以在Object上傳後的任意時間內根據自己的業務需求隨時修改ACL。

讀寫權限類型

Object包含以下4種讀寫權限:

說明

Object的存取權限優先順序高於Bucket的存取權限。例如,Bucket的存取權限為私人,而Object的存取權限是公用讀取,則任何人(包括匿名使用者)都可以對該Object進行讀操作。

權限類別型

描述

許可權值

繼承Bucket(預設許可權)

當Object未設定讀寫權限時,該Object遵循Bucket的讀寫權限,即Bucket是什麼許可權,Object就是什麼許可權。

Aliyun::OSS::ACL::DEFAULT

私人

只有Object的擁有者可以對該Object進行讀寫操作,其他人無法訪問該Object。

Aliyun::OSS::ACL::PRIVATE

公用讀取

只有該Object的擁有者可以對該Object進行寫操作,任何人(包括匿名訪問者)都可以對該Object進行讀操作。

警告

互連網上任何使用者都可以對該Object進行訪問,這有可能造成您資料的外泄以及費用激增,請謹慎操作。

Aliyun::OSS::ACL::PUBLIC_READ

公用讀寫

任何人(包括匿名訪問者)都可以對該Object進行讀寫操作。

警告

互連網上任何使用者都可以對該Object進行訪問,並且向該Object寫入資料。這有可能造成您資料的外泄以及費用激增,如果被人惡意寫入違法資訊還可能會侵害您的合法權益。除特殊情境外,不建議您配置公用讀寫許可權。

Aliyun::OSS::ACL::PUBLIC_READ_WRITE

範例程式碼

以下代碼用於設定和擷取Object ACL。

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名稱,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# 填寫Object完整路徑,完整路徑中不能包含Bucket名稱,例如exampledir/example.txt。
# 擷取上傳Object時設定的Object ACL。
acl = bucket.get_object_acl('exampledir/example.txt')
puts acl
# 修改Object ACL。
bucket.set_object_acl('exampledir/example.txt', Aliyun::OSS::ACL::PUBLIC_READ)
acl = bucket.get_object_acl('exampledir/example.txt')
puts acl                

相關文檔

  • 關於設定Object ACL的API介面說明,請參見PutObjectACL

  • 關於擷取Object ACL的API介面說明,請參見GetObjectACL