我想通過Cloudfront從AWS S3獲取對象,但我遇到了CORS問題。AWS S3不返回起源作爲訪問控制 - 允許 - 起源值
據我瞭解,我向Cloudfront的請求包含一個標題爲Origin
的標題,它告訴服務器請求來自哪裏。當Cloudfront請求對象時,S3會根據S3的CORS配置返回對象以及標頭。這些頭文件中有Access-Control-Allow-Origin
,它向瀏覽器指定哪些來源可以訪問該對象。
我的問題是,我需要支持動態子域在我CORS的配置,所以我在S3配置CORS像這樣:
<AllowedOrigin>*</AllowedOrigin>
但自從我使用Access-Control-Allow-Credentials: true
頭,通配符不允許的。
現在,根據this article,其中指出:
換句話說,有2種方式的資源與多個起源共享:
- 服務器在HTTP響應報頭
返回Access-Control-Allow-Origin: *
- 服務器根據HTTP請求標頭中指定的
Origin
動態生成Access-Control-Allow-Origin
(這是S3所做的)
S3應該能夠看我的Origin
頭,回到它的價值Access-Control-Allow-Origin
,從而防止有關通配符的任何錯誤。但是我從S3那裏得到的是Access-Control-Allow-Origin: *
。
如何讓S3將我的Origin
鏡像爲Access-Control-Allow-Origin
的值?
這篇文章有點舊,所以我想S3自2013年以來更新了他們如何處理這些頭文件,但是還有辦法做到這一點嗎?
注:這是使用AWS-SDK-V2紅寶石