ruby-on-rails - Rails 6.1 中 Active Storage 的公共(public)访问

标签 ruby-on-rails amazon-s3 rails-activestorage

我在我的 Rails 站点上使用 Active Storage 和 AWS。升级到 6.1 后,我想根据 the guide 配置公共(public)访问所以我的图片有永久的网址。
我已确定我需要保持现有服务原样,以便之前上传的图像继续工作。我创建了一个新服务并将应用程序配置为使用它like this .
以前的图像继续这样工作,但新图像上传会导致 Aws::S3::Errors::AccessDenied。请注意,使用的凭据与以前的工作非公共(public)服务中的凭据完全相同。该指南提到存储桶需要具有适当的权限,而不是确切需要设置的权限。
在 AWS 中,“阻止公共(public)访问(存储桶设置)”部分全部设置为“关闭”。在“访问控制列表 (ACL)”中,“存储桶所有者(您的 AWS 账户)”对“对象”和“存储桶 ACL”都有“List, Write”。没有列出其他权限。我尝试将“所有人(公共(public)访问)”更改为包括“对象”的“列表”和“存储桶 ACL”的“读取”——似乎并没有解决问题。
如何获取与 Active Storage 一起使用的公共(public) URL?

最佳答案

从私有(private)访问切换到公共(public)访问所需的权限是PutObjectAcl .将此添加到 IAM Management Console让它工作。
此外,您可以通过 UI 或 via a script 将现有服务中的所有图像标记为公共(public)可读,而不是创建新服务。 .

关于ruby-on-rails - Rails 6.1 中 Active Storage 的公共(public)访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65315692/

相关文章:

python - 如何在 AWS Lambda 函数中使用 gnupg

ruby-on-rails - 事件存储 : Best practice to retain/cache uploaded file when form redisplays

mysql - 仅当用户登录匹配电子邮件时,Ruby On Rails API 更新记录

ruby-on-rails - Ruby on Rails - 有很多,通过 : find multiple conditions

ruby-on-rails - 找出已安装 gem 的来源

amazon-web-services - Amazon S3 复制对象权限

hadoop - 在 EMR 3.10 中添加步骤或引导操作以将文件从本地复制到 s3

ruby-on-rails - 列出与模型间接相关的 ActiveStorage 附件

ruby-on-rails - Heroku:在/app/config/storage.yml 中找不到 Active Storage 配置(运行时错误)

ruby-on-rails - rake Assets 预编译失败