我在S3 + Cloudfront +簽名的Url上堅持使用CORS。AWS CloudFront訪問控制 - 允許來源和簽名Cookie/Url
我的使用情況是:
第一個故事(成功):
我有一個Amazon S3存儲用的Cloudfront。文件由
DOMAIN1/file
鏈接我寫了一個簡單的測試,JS腳本從DOMAIN1獲取文件,並把它放在
DOMAIN2/test.html
- 我能夠得到文件成功訪問。 CORS很好。
第二種情況(太成功):
- 我用標識的URL限制雲鋒分佈。
- 起初我試過的是在DOMAIN1 下訪問一個文件,沒有簽名。被拒絕訪問。沒關係,因爲請求沒有簽名。
- 我創建了一個簽名的URL,並且能夠成功下載該文件。
第三種情況(失敗)
- 我把標識的URL(從第二種情況)的
DOMAIN2/test.html
測試腳本 - 並始終得到了
No 'Access-Control-Allow-Origin' header
錯誤。
因此,Cloudfront在分發受限的情況下不會發送頭。
CORS XML是:
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>10</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
它必須在CloudFront的/ S3/IAM設置一些問題。我如何解決它?
如果您可以從失敗的案例中捕獲請求和響應頭文件,那麼您將更容易理解您要報告的內容。 –