本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用跨來源資源共用 (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,請參閱下列主題。