全部產品
Search
文件中心

Object Storage Service:cors(跨域資源共用)

更新時間:Jul 31, 2024

跨域資源共用CORS(Cross-Origin Resource Sharing)簡稱跨域訪問,是HTML5提供的標準跨域解決方案,允許Web應用伺服器進行跨域存取控制,確保跨域資料轉送的安全性。本文介紹如何通過cors命令添加、修改、查詢、刪除儲存空間(Bucket)的CORS配置。

注意事項

  • 要添加或修改CORS配置,您需要具有oss:PutBucketCors許可權;要擷取CORS配置,您需要具有oss:GetBucketCors許可權;要刪除CORS配置,您需要具有oss:DeleteBucketCors許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

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

  • 關於跨域資源共用的更多資訊,請參見跨域資源共用

添加或修改CORS配置

如果Bucket此前未添加過CORS配置,則使用該命令將為Bucket添加CORS配置。如果Bucket此前已添加CORS配置,則使用該命令將直接覆蓋已有的CORS配置。

添加或修改CORS配置步驟如下:

  1. 建立本地檔案,並在檔案中添加CORS規則。

  2. ossutil先從本地檔案中讀取CORS配置,然後將讀取到CORS配置添加到指定的Bucket。

添加或修改CORS配置的命令格式及樣本如下:

  • 命令格式

    ossutil cors --method put oss://bucketname local_xml_file

    參數說明如下:

    參數

    說明

    bucketname

    待添加或修改CORS配置的Bucket名稱。

    local_xml_file

    配置CORS規則的本地檔案名稱,例如localfile.txt

  • 使用樣本

    1. 在本地建立名為localfile.txt檔案,並根據使用情境配置CORS規則。

      如下樣本表示在CORS規則中指定允許的跨域請求來源為www.aliyun.com、允許的跨域要求方法為PUT以及瀏覽器對特定資源的預取(OPTIONS)請求返回結果的緩衝時間為10000秒。

      <?xml version="1.0" encoding="UTF-8"?>
         <CORSConfiguration>
           <CORSRule>
               <AllowedOrigin>www.aliyun.com</AllowedOrigin>
               <AllowedMethod>PUT</AllowedMethod>
               <MaxAgeSeconds>10000</MaxAgeSeconds>
           </CORSRule>
       </CORSConfiguration>
    2. 為examplebucket添加CORS規則。

      ossutil cors --method put oss://examplebucket localfile.txt

      以下輸出結果表明已成功添加CORS規則。

      0.299514(s) elapsed

擷取CORS配置

  • 命令格式

    ossutil cors --method get oss://bucketname [local_xml_file]

    參數說明如下:

    參數

    說明

    bucketname

    擷取CORS配置的目標Bucket名稱。

    local_xml_file

    用於存放CORS配置的本地檔案名稱,例如localfile.txt。如果未指定此參數,則CORS配置將直接輸出到螢幕。

  • 使用樣本

    擷取目標儲存空間examplebucket的CORS配置。

    ossutil cors --method get oss://examplebucket localfile.txt

    以下輸出結果表明已成功擷取CORS配置,並將其寫入本地localfile.txt檔案。

    0.212407(s) elapsed

刪除CORS配置

  • 命令格式

    ossutil cors --method delete oss://bucketname
  • 使用樣本

    刪除examplebucket的CORS配置。

    ossutil cors --method delete oss://examplebucket

    以下輸出結果表明已刪除examplebucket的CORS配置。

    0.530750(s) elapsed

通用選項

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

例如您需要為另一個阿里雲帳號下,華東1(杭州)名為testbucket的Bucket添加CORS配置,命令如下:

ossutil cors --method put oss://testbucket localfile.txt -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

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