跨源資源共享 (CORS) 可讓不同來源的資源互動,但通常為防止惡意行為而遭到禁止。本頁說明如何在 Cloud Storage bucket 中設定 CORS,以及如何查看 bucket 中設定的 CORS。如需 CORS 設定範例,請參閱「CORS 設定範例」。
必要的角色
如要取得設定及查看 bucket CORS 設定所需的權限,請要求管理員授予 bucket 的 Storage 管理員 (roles/storage.admin) 角色。
這個預先定義的角色具備設定及查看 CORS 設定所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.buckets.getstorage.buckets.update
如要瞭解如何授予值區角色,請參閱「設定及管理值區的 IAM 政策」。
設定值區的 CORS 設定
如要進行值區的 CORS 設定,請指定能夠識別該值區可接受的要求類型相關資訊,例如 HTTP 方法及來源網域。
請按照下列步驟,在值區中設定 CORS 設定:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
按一下 bucket 名稱。
按一下 [設定] 標籤。
在「跨源資源共享」部分,按一下「編輯 CORS 設定」。
選取「允許跨源資源共享」核取方塊。
按一下「新增設定」,然後執行下列操作:
在設定中提供欄位值:
允許的來源清單:您要允許與這個值區進行跨源資源共享的來源。
指定方法:您要允許與這個值區進行跨源資源共享的 HTTP 方法。
允許的回應標頭清單:您要允許與這個 bucket 進行跨源資源共享的回應標頭。
快取到期時間:瀏覽器可發出要求的秒數,之後就必須重複預檢要求。
如要進一步瞭解每個欄位,請參閱「CORS 設定的元件」。
按一下 [完成]。
選用:如要新增其他設定,請重複上一個步驟。
按一下 [儲存]。
指令列
使用加上
--cors-file旗標的gcloud storage buckets update指令:gcloud storage buckets update gs://BUCKET_NAME --cors-file=CORS_CONFIG_FILE
其中:
BUCKET_NAME是相關值區的名稱。例如:my-bucket。CORS_CONFIG_FILE是您在步驟 1 建立的 JSON 檔案路徑。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何設定值區的 CORS 設定:
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何設定值區的 CORS 設定:
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何設定值區的 CORS 設定:
Java
詳情請參閱「Cloud Storage Java API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何設定值區的 CORS 設定:
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何設定值區的 CORS 設定:
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何設定值區的 CORS 設定:
Python
詳情請參閱「Cloud Storage Python API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何設定值區的 CORS 設定:
Ruby
詳情請參閱「Cloud Storage Ruby API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何設定值區的 CORS 設定:
Rust
下例示範如何設定值區的 CORS 設定:
REST API
JSON API
建立 JSON 檔案,並加入要套用的 CORS 設定。如需 JSON 檔案範例,請參閱設定範例。
使用
cURL來透過PATCH值區要求呼叫 JSON API:curl --request PATCH \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=cors' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' \ --header 'Content-Type: application/json' \ --data-binary @CORS_CONFIG_FILE
其中:
BUCKET_NAME是值區名稱。例如:my-bucket。CORS_CONFIG_FILE是您在步驟 2 建立的 JSON 檔案路徑。
XML API
建立 XML 檔案,並加入要套用的 CORS 設定。如需 XML 檔案範例,請參閱設定範例。
使用
cURL透過PUT Bucket要求呼叫 XML API,範圍限定為?cors:curl -X PUT --data-binary @CORS_CONFIG_FILE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME?cors"
其中:
BUCKET_NAME是值區名稱。例如:my-bucket。PROJECT_ID是與值區相關聯的專案 ID。例如:my-project。CORS_CONFIG_FILE是您在步驟 2 建立的 XML 檔案路徑。
查看值區的 CORS 設定
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
按一下 bucket 名稱。
按一下 [設定] 標籤。
在「跨源資源共享」部分,按一下「編輯 CORS 設定」。
按一下設定。
選用:編輯設定,或按一下「取消」關閉對話方塊。
指令列
使用加上 --format 旗標的 gcloud storage buckets describe 指令:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(cors_config)"
其中 BUCKET_NAME 是您要查看 CORS 設定的值區名稱。例如:my-bucket。
用戶端程式庫
如要使用用戶端程式庫查看值區的 CORS 設定,請按照顯示值區中繼資料的指示操作,並在回應中尋找 CORS 欄位:
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
Java
詳情請參閱「Cloud Storage Java API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
Python
詳情請參閱「Cloud Storage Python API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
Ruby
詳情請參閱「Cloud Storage Ruby API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
Rust
REST API
JSON API
使用
cURL透過GETBucket 要求呼叫 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=cors"
其中
BUCKET_NAME是您要查看 CORS 設定的值區名稱。例如:my-bucket。
XML API
從值區移除 CORS 設定
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
按一下 bucket 名稱。
按一下 [設定] 標籤。
在「跨源資源共享」部分,按一下「編輯 CORS 設定」。
執行下列任一動作:
如要刪除特定 CORS 設定,請按一下要移除設定的「刪除」。
如要停用 CORS 並刪除 bucket 的所有 CORS 設定,請取消勾選「允許跨源資源共享」核取方塊。
按一下 [儲存]。
指令列
如要從值區移除 CORS 設定,請使用帶有 --clear-cors 標記的 gcloud storage buckets update 指令:
gcloud storage buckets update gs://BUCKET_NAME --clear-cors
將 BUCKET_NAME 替換為要移除 CORS 設定的值區名稱。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何從值區移除所有現有的 CORS 設定:
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何從值區移除所有現有的 CORS 設定:
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何從值區移除所有現有的 CORS 設定:
Java
詳情請參閱「Cloud Storage Java API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何從值區移除所有現有的 CORS 設定:
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何從值區移除所有現有的 CORS 設定:
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何從值區移除所有現有的 CORS 設定:
Python
詳情請參閱「Cloud Storage Python API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何從值區移除所有現有的 CORS 設定:
Ruby
詳情請參閱「Cloud Storage Ruby API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
下例示範如何從值區移除所有現有的 CORS 設定:
Rust
下例示範如何從值區移除所有現有的 CORS 設定:
REST API
後續步驟
- 請參閱 CORS 設定範例。
- 進一步瞭解 CORS。
- 瞭解如何排解 CORS 要求問題。