mahcr
(Mariano Alvarez)
1
经过大量研究,我尚未找到任何关于使用私有 ACL 将图片上传至 S3 的指南。
我遇到一个奇怪的问题:备份可以正常工作,但图片上传却无法成功。
我将问题缩小到存储桶的 ACL 问题上(我通过 SDK 在不指定 ACL 标志的情况下成功上传文件,从而证实了问题出在 ACL 上)。在某些情况下,“阻止公共访问”权限是在账户级别而非存储桶级别设置的,因此仅取消存储桶配置中的复选框无法解决问题。
我注意到 S3 上传配置代码已更新,现在 ACL 是根据某个参数设置的。是否有办法将该配置传递下去?discourse/lib/file_store/s3_store.rb at tests-passed · discourse/discourse · GitHub
1 个赞
pfaffman
(Jay Pfaffman)
2
Secure Uploads 介绍了如何限制仅允许已登录用户上传文件。这或许能帮到您?
2 个赞
mahcr
(Mariano Alvarez)
3
我试过了,图片已上传,但仪表板中显示 500 错误,没有任何线索或日志。
@mahcr ,
我遇到了同样的问题。我可以进行备份,但由于“存储桶不允许 ACL”而无法上传图片。
对于 IAM,我附加了 AmazonS3FullAccess 策略,但仍然是同样的错误。
你有什么解决方案吗?
1 个赞
seong
(Seong-Young Her)
5
我遇到了同样的问题:备份可以正常工作,但上传失败。
本指南已过时:
本指南似乎对 CDN 部分很有价值,但不是完整的解决方案:
我也遇到了同样的问题。备份上传可以正常工作,但图片上传显示“存储桶不允许 ACL”。
通过修改 IAM 中的一个权限和存储桶中的两个设置,问题得到了解决。
首先,我根据指南 https://meta.discourse.org/t/setting-up-file-and-image-uploads-to-s3/7229 将 IAM 权限从“s3:HeadBucket”更改为“s3:ListBucket”,因为亚马逊表示 HeadBucket 不是一个有效的权限。
然后,我按照指南在存储桶的权限页面进行了完全相同的设置。
然后是最重要的部分,启用 ACL。在权限选项卡中,它被称为“编辑对象所有权”。启用 ACL 并设置为“对象写入者”后,一切都正常了。
希望我的经验能帮到你。
3 个赞