使用跨來源資源共用 (CORS) - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用跨來源資源共用 (CORS)

跨來源資源共用 (CORS) 定義了將用戶端 Web 應用程式載入一個網域,以與不同網域中的資源互動的方式。透過 CORS支援,您可以使用 Amazon S3 建置豐富的用戶端 Web 應用程式,並選擇性地允許跨來源存取您的 Amazon S3 資源。

本節提供 的概觀CORS。子主題說明如何CORS使用 Amazon S3 主控台啟用 ,或使用 Amazon S3 RESTAPI和 以程式設計方式啟用 AWS SDKs。

跨來源資源分享:使用案例情境

以下是使用 的範例案例CORS。

案例 1

假設您正在名為 website 的 Amazon S3 儲存貯體中託管網站,如 使用 Amazon S3 託管靜態網站 所述。您的使用者載入了網站端點:

http://website.s3-website.us-east-1.amazonaws.com

現在,您想要在此儲存貯體中儲存的網頁 JavaScript 上使用 ,以便能夠使用儲存貯體的 Amazon S3 API端點 對同一儲存貯體提出驗證GET和PUT請求website.s3.us-east-1.amazonaws.com。瀏覽器通常會 JavaScript 封鎖允許這些請求,但CORS您可以使用 來設定儲存貯體,以明確啟用來自 的跨來源請求website.s3-website.us-east-1.amazonaws.com

案例 2

假設您希望從 S3 儲存貯體託管一個 Web 字型。同樣地,瀏覽器需要CORS檢查 (也稱為飛行前檢查) 才能載入 Web 字型。您可以設定裝載 Web 字體的儲存貯體,允許任何來源發出這些要求。

Amazon S3 如何評估儲存貯體上的CORS組態?

當 Amazon S3 從瀏覽器收到飛行前請求時,它會評估儲存貯體的CORS組態,並使用第一個符合傳入瀏覽器請求的CORSRule規則來啟用跨來源請求。符合規則必須滿足下列條件:

  • CORS 請求至儲存貯體的Origin標頭必須與CORS組態中 AllowedOrigins元素的原始伺服器相符。

  • 在CORS請求儲存貯體Access-Control-Request-Method的 中指定的HTTP方法,必須符合CORS組態中 AllowedMethods元素列出的方法。

  • 飛行前請求中Access-Control-Request-Headers標頭中列出的標頭必須與CORS組態中 AllowedHeaders 元素中的標頭相符。

注意

當您在儲存貯體CORS上啟用 時, ACLs和 政策會繼續套用。

Object Lambda Access Point 如何支援 CORS

當 S3 Object Lambda 從瀏覽器接收到請求,或請求包含 Origin 標頭時,S3 Object Lambda 一律會新增 “AllowedOrigins":"*" 標頭欄位。

如需使用 的詳細資訊CORS,請參閱下列主題。