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

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

使用跨來源資源分享 (CORS)

跨來源資源分享 (CORS) 會定義一種方式,讓載入單一個網域的用戶端 Web 應用程式,能與不同網域中的資源互動。透過 CORS 支援,您可以使用 Amazon S3 建立功能豐富的用戶端 Web 應用程式,而且也可以選擇性地允許跨來源存取您的 Amazon S3 資源。

本節提供 CORS 的概觀。這些副主題說明如何使用 Amazon S3 主控台啟用 CORS,或透過使用 Amazon S3 REST API 和開發套件以程式設計方式啟用 CORS。 AWS

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

以下為使用 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 規則來啟用跨來源要求。符合規則必須滿足下列條件:

  • 要求的 Origin 標頭必須符合 AllowedOrigin 元素。

  • 要求的方法 (例如 GET 或 PUT) 或預檢 Access-Control-Request-Method 要求的 OPTIONS 標頭,必須是 AllowedMethod 元素中的其中之一。

  • 預檢要求上要求的 Access-Control-Request-Headers 標頭中所列出之每一個標頭,都必須符合 AllowedHeader 元素。

注意

在儲存貯體上啟用 CORS 時,仍繼續適用 ACL 及政策。

Object Lambda 存取點如何支援 CORS

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

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