Public 在 Rails 6.1 中访问 Active Storage
Public access for Active Storage in Rails 6.1
我在我的 Rails 站点上使用 Active Storage 和 AWS。升级到 6.1 后,我想根据 the guide 配置 public 访问权限,以便我的图片具有永久 URL。
我确定我需要保持现有服务不变,以便之前上传的图像继续工作。我创建了一项新服务并将应用配置为使用它 like this。
以前的图像继续这样工作,但新图像上传导致 Aws::S3::Errors::AccessDenied。请注意,使用的凭据与之前的工作中的非 public 服务完全相同。该指南提到存储桶需要具有适当的权限,但没有提到具体需要设置什么。
在 AWS 中查看,“阻止 public 访问(存储桶设置)”部分全部设置为“关闭”。在“访问控制列表 (ACL)”中,“存储桶所有者(您的 AWS 帐户)”对“对象”和“存储桶 ACL”均具有“列出、写入”。没有列出其他权限。我已尝试更改“所有人(public 访问权限)”以包括“对象”的“列表”和“存储桶 ACL”的“读取”- 似乎无法解决问题。
如何获取 public 与 Active Storage 一起使用的 URL?
从私人访问切换到 public 时需要的权限是 PutObjectAcl
。在 IAM Management Console 中添加它使其工作。
此外,您可以通过 UI 或 via a script.[=13= 将现有服务中的所有图像标记为 public-可读,而不是创建新服务。 ]
我在我的 Rails 站点上使用 Active Storage 和 AWS。升级到 6.1 后,我想根据 the guide 配置 public 访问权限,以便我的图片具有永久 URL。
我确定我需要保持现有服务不变,以便之前上传的图像继续工作。我创建了一项新服务并将应用配置为使用它 like this。
以前的图像继续这样工作,但新图像上传导致 Aws::S3::Errors::AccessDenied。请注意,使用的凭据与之前的工作中的非 public 服务完全相同。该指南提到存储桶需要具有适当的权限,但没有提到具体需要设置什么。
在 AWS 中查看,“阻止 public 访问(存储桶设置)”部分全部设置为“关闭”。在“访问控制列表 (ACL)”中,“存储桶所有者(您的 AWS 帐户)”对“对象”和“存储桶 ACL”均具有“列出、写入”。没有列出其他权限。我已尝试更改“所有人(public 访问权限)”以包括“对象”的“列表”和“存储桶 ACL”的“读取”- 似乎无法解决问题。
如何获取 public 与 Active Storage 一起使用的 URL?
从私人访问切换到 public 时需要的权限是 PutObjectAcl
。在 IAM Management Console 中添加它使其工作。
此外,您可以通过 UI 或 via a script.[=13= 将现有服务中的所有图像标记为 public-可读,而不是创建新服务。 ]