微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

S3 存储桶的全局 CORS 策略怎么可能不适用于存储桶中的所有文件?

如何解决S3 存储桶的全局 CORS 策略怎么可能不适用于存储桶中的所有文件?

我有一个 S3 存储桶用于媒体文件存储,最重要的是用于 mp4 视频。所有这些都有一个 Web 前端。 (不涉及 CloudFront,由于额外费用,我不想注册一个。)当浏览器遇到 mp4 视频的原始 URL 时,认行为是在单击时播放 mp4 文件(就地或在取决于 target HTML 标签的新标签)。然后您可以从本机浏览器播放器下载视频,但这需要多次点击,我们讨论的是播放列表中有时有 40 个视频,与直接下载视频相比,这会极大地影响生产力。

因此可以理解的是,用户需要一个下载按钮来允许下载视频而不是播放视频。经过数小时的研究,我偶然发现 StreamSaver.js 效果很好,我什至可以为下载的视频指定一个有意义的名称(运动员姓名、位置、球衣#等)而不是 GUID,但有一个缺点:我遇到了 CORS 政策错误,例如 Access to fetch at 'https://sportsboardmedia.s3.amazonaws.com/uploads/video/{GUID}_{GUID}.mp4' from origin 'https://app.sportsboard.io' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs,set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

我的存储桶从一开始就可供公众使用。经过一番研究,我将存储桶切换到静态网站托管模式 (as per this SO entry),并且还应用了 CORS 策略 advised by this SO entry

enter image description here

目前的情况是一些视频文件现在可以下载,但其他文件(我们说的是同一个bucket)仍然会抛出CORS错误。这怎么可能呢? CORS 策略应该对整个存储桶是全局的,据我所知,从 CORS 的角度来看,每个文件都应该是平等的。我从哪里开始解决这个问题?

我几天前应用了这个 CORS 政策,我的存储桶包含大约 5TB 的视频。我认为这对亚马逊来说不算什么。这是一个示例运动员储物柜,其中一些视频引发 CORS 错误https://app.sportsboard.io/playerlocker/media/event/6272C5BE-CE03-4344-BED1-29369306C831/5e267f70-f1de-11e7-b8d3-f23c91087063/videos/


我也打开了 AWS 论坛帖子,但我只听到那里也有蟋蟀:https://forums.aws.amazon.co/thread.jspa?messageID=991094#991094


现在我也打开了一个 AWS IQ 请求:https://iq.aws.amazon.com/p/N3SFMRLKRH


我也录制了一个视频:https://youtu.be/Dy38JRI5-oU

也许我也应该录制一个 TikTok 视频???

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。