1개 답변
- 최신
- 최다 투표
- 가장 많은 댓글
0
【以下的回答经过翻译处理】 嗨,Gabriel
我了解并使用CloudFront和S3,我希望可以帮助你解决问题。
首先,你的使用情况是非常常见的,所以没有什么问题。
通常,当bucket的权限不正确或者你试图访问不存在的文件路径/文件时,S3会返回403错误。而使用OAI是访问私有bucket的最佳方式。
因此,请确保你的设置如下:
S3 Bucket
- 确保你的源是S3源类型,而不是自定义源。这将针对静态bucket和媒体bucket。
- S3 Bucket Access,选择你的OAI,并让CloudFront为你更新bucket策略。
- 保存更改。
CloudFront
对于行为,我假设你的静态网站位于bucket的根目录。这没有问题。
- 确保媒体内容在文件夹中,而不是bucket的根目录。示例:bucket-name/mediafolder/mediafile.mp4
- 创建一个行为,将行为路径设置为/ mediafolder/ *。
- 对于源,选择S3媒体桶。
- 选择你的协议和允许的方法。
- 如果你想缓存内容,请选择CachingOptimized策略,否则选择CachingDisabled策略。
- 对于源请求策略,选择CORS-S3Origin。但是,如果你不做CORS请求,则可以将其保留为None并保存行为。
- 为所有其他请求设置默认行为,主要针对你的静态bucket。
请注意,在使用S3时,URL和行为路径需要与S3文件夹结构匹配。如果你的URL是https://example.com/media/mediafile.mp4,那么就需要有这样的文件夹结构。bucketname/media/mediafile.mp4。
如果上述方法不起作用,请告诉我。我们可以进一步研究