![数字海洋空间 S3:是否可以向所有请求添加 access-control-allow-origin:*?](https://linux22.com/image/744240/%E6%95%B0%E5%AD%97%E6%B5%B7%E6%B4%8B%E7%A9%BA%E9%97%B4%20S3%EF%BC%9A%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%90%91%E6%89%80%E6%9C%89%E8%AF%B7%E6%B1%82%E6%B7%BB%E5%8A%A0%20access-control-allow-origin%EF%BC%9A*%EF%BC%9F.png)
如果你卷曲我的形象
curl -i https://local-spaces.fra1.digitaloceanspaces.com/test.jpg
您将看到响应中没有 Access-Control-Allow-Origin 标头。
如果你像这样卷曲,则标题设置如下:
curl -H "Origin: http://example.com/" -i https://local-spaces.fra1.digitaloceanspaces.com/test.jpg
现在我很疑惑,因为所有大型 CDN 页面总是设置Access-Control-Allow-Origin: *
,即使Sec-Fetch-Mode: no-cors
。
要测试它,请执行以下操作:
curl -i https://scontent.cdninstagram.com/vp/02a788f9e7f55880601ed240a0e3142a/5E29CBDE/t51.2885-15/sh0.08/e35/s640x640/72271766_155986088835033_6677460235579468035_n.jpg\?_nc_ht\=scontent.cdninstagram.com
或者
curl -i https://loremflickr.com/480/640/girl,boy,man,men,woman\?lock\=4446
答案1
支持人员向我提供了以下帮助:
目前,没有办法强制执行此操作。如果不设置 Origin,则不会提供标头。可以使用代理服务,但这可能不是大多数用例的最佳选择。
答案2
看起来 Digital Ocean Spaces 不允许在其 UI 中使用 * CORS 标头。我最终不得不使用 Just CORS (https://justcors.com) 是一个代理,它将 CORS 标头添加到响应中,以避免出现这种情况。