跨源資源共享 (CORS) 可讓不同來源的資源互動,但通常為防止惡意行為而遭到禁止。本頁說明如何在 Cloud Storage bucket 中設定 CORS,以及如何查看 bucket 中設定的 CORS。如需 CORS 設定範例,請參閱「CORS 設定範例」。
必要的角色
如要取得設定及查看 bucket CORS 設定所需的權限,請要求管理員授予 bucket 的 Storage 管理員 (roles/storage.admin) 角色。
這個預先定義的角色具備設定及查看 CORS 設定所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.buckets.getstorage.buckets.update
如要瞭解如何授予 bucket 角色,請參閱「在 bucket 上設定及管理 IAM 政策」。
設定 bucket 的 CORS 設定
如要進行值區的 CORS 設定,請指定能夠識別該值區可接受的要求類型相關資訊,例如 HTTP 方法及來源網域。
請按照下列步驟,在值區中設定 CORS 設定:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
按一下 bucket 名稱。
按一下 [設定] 標籤。
在「跨源資源共享」部分,按一下「編輯 CORS 設定」。
選取「允許跨源資源共享」核取方塊。
按一下「新增設定」,然後執行下列操作:
在設定中提供欄位值:
允許的來源清單:您要允許與這個值區進行跨源資源共享的來源。
指定方法:您要允許與這個值區進行跨源資源共用的 HTTP 方法。
允許的回應標頭清單:您要允許與這個值區進行跨源資源共用的回應標頭。
快取到期時間:瀏覽器可發出要求,但必須重複預檢要求之前的秒數。
如要進一步瞭解每個欄位,請參閱「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
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
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是 bucket 的名稱。例如:my-bucket。CORS_CONFIG_FILE是您在步驟 2 建立的 JSON 檔案路徑。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
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是 bucket 的名稱。例如: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
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 請求問題。