全部產品
Search
文件中心

Object Storage Service:set-acl(設定或修改ACL)

更新時間:Jul 31, 2024

ACL是授予儲存空間(Bucket)和檔案(Object)存取權限的存取原則。您可以在建立Bucket或上傳Object時設定ACL,也可以在建立Bucket或上傳Object後的任意時間內修改ACL。set-acl命令用於設定或修改Bucket或Object的存取權限ACL。

注意事項

  • 要設定或修改Bucket ACL,您必須具有oss:PutBucketAcl許可權;要設定或修改Object ACL,您必須具有oss:PutObjectAcl許可權;要批量修改Object ACL,您必須具有oss:PutObjectAcloss:ListObjects許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

  • 從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考

設定或修改Bucket ACL

  • 命令格式

    ossutil set-acl oss://bucketname acl -b [--retry-times <value>]

    參數及選項說明如下:

    配置項

    說明

    bucketname

    待設定或修改ACL的Bucket名稱。

    acl

    Bucket的讀寫權限ACL。取值如下:

    • private(預設值):只有該Bucket的擁有者可以對該Bucket內的檔案進行讀寫操作,其他人無法訪問該Bucket內的檔案。

    • public-read:只有Bucket擁有者可以對該Bucket內的檔案進行寫操作,其他使用者(包括匿名訪問者)都可以對該Bucket中的檔案進行讀操作。這有可能造成您資料的外泄以及費用激增,若被人惡意寫入違法資訊還可能會侵害您的合法權益。除特殊情境外,不建議您配置公用讀寫許可權。

    • public-read-write:任何人(包括匿名訪問者)都可以對該Bucket內檔案進行讀寫操作。這有可能造成您資料的外泄以及費用激增,請謹慎操作。

    -b

    不添加此選項,預設對Object設定ACL。如果需要對Bucket設定ACL時,須添加此選項。

    --retry-times

    發生錯誤後的重試次數。預設值為10,取值範圍為1~500。

  • 使用樣本

    設定目標儲存空間examplebucket的ACL為private。

    ossutil set-acl oss://examplebucket private -b   

設定或修改Object ACL

  • 命令格式

    ossutil set-acl oss://bucketname[/prefix] acl
    [-r]
    [--include <value>] 
    [--exclude <value>]
    [--version-id <value>]
    [--job <value>] 
    [--retry-times <value>]
    [--encoding-type <value>]

    參數及選項說明如下:

    配置項

    說明

    bucketname

    Bucket名稱。

    prefix

    Bucket下的資源,例如目錄、檔案等。

    acl

    Object的讀寫權限ACL。取值如下:

    • default:繼承Bucket的讀寫權限。

    • private(預設值):只有該Bucket的擁有者可以對該Bucket內的檔案進行讀寫操作,其他人無法訪問該Bucket內的檔案。

    • public-read:只有Bucket擁有者可以對該Bucket內的檔案進行寫操作,其他使用者(包括匿名訪問者)都可以對該Bucket中的檔案進行讀操作。這有可能造成您資料的外泄以及費用激增,若被人惡意寫入違法資訊還可能會侵害您的合法權益。除特殊情境外,不建議您配置公用讀寫許可權。

    • public-read-write:任何人(包括匿名訪問者)都可以對該Bucket內檔案進行讀寫操作。這有可能造成您資料的外泄以及費用激增,請謹慎操作。

    -r

    如果指定該選項時,ossutil會對Bucket下所有符合prefix條件的Object設定ACL。如果不指定該選項,則ossutil只對cloud_url中指定的單個Object設定ACL。

    --include

    包含符合指定條件的所有Object。

    更多資訊,請參見include和exclude選項

    --exclude

    不包含任何符合指定條件的Object。

    更多資訊,請參見include和exclude選項

    --version-id

    Object的指定版本ID。僅適用於已開啟或暫停版本控制狀態Bucket下的Object。

    --job

    多檔案操作時的並發任務數,預設值為3,取值範圍為1~10000。

    --retry-times

    發生錯誤後的重試次數。預設值為10,取值範圍為1~500。

    --encoding-type

    oss://bucket_name之後的prefix進行編碼,取值為url。如果不指定該選項,則表示prefix未經過編碼。

  • 使用樣本

    • 將目標儲存空間examplebucket下的exampleobject.txt檔案的讀寫權限ACL設定為private。

      ossutil set-acl oss://examplebucket/exampleobject.txt private
    • 將目標儲存空間examplebucket下指定版本ID為CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****的exampleobject.txt檔案的讀寫權限ACL設定為private。

      ossutil set-acl oss://examplebucket/exampleobject.txt private --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
    • 將目標儲存空間examplebucket下所有符合指定首碼為test的檔案讀寫權限ACL設定為default。

      ossutil set-acl oss://examplebucket/test default -r
    • 將目標儲存空間examplebucket下所有尾碼為.jpg的檔案讀寫權限設定為private。

      ossutil set-acl oss://examplebucket private --include "*.jpg" -r
    • 將目標儲存空間examplebucket下檔案名稱包含abc,且尾碼不是.png和.txt的檔案讀寫權限設定為default。

      ossutil set-acl oss://examplebucket default --include "*abc*" --exclude "*.png" --exclude "*.txt" -r

通用選項

當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。

例如您需要擷取另一個阿里雲帳號下,華東2(上海)地區下名為testbucket的儲存空間設定讀寫權限ACL為private,命令如下:

ossutil set-acl oss://testbucket private -b -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

關於此命令的其他通用選項的更多資訊,請參見通用選項