小编tid*_*dal的帖子

AWS S3 文件上传返回 403:禁止在 Rails 中使用 Carrierwave/fog gems

我已经为此摸不着头脑好几天了。目前正在学习Rails 教程的第 13 章(用户微博),虽然我的应用程序在开发中运行良好,但我似乎无法将图像上传到在生产中运行的 AWS S3(详细信息请参见教程)。该应用程序利用 ASW S3 存储桶进行存储,并利用CarrierWave /Fog gems 进行文件上传。

当我打开我的生产 Heroku 应用程序时,除了图像上传之外,一切正常。当我尝试在新的微帖子上上传图像时,我收到一条通用信息“很抱歉,但出了点问题”。浏览器中的错误。尝试访问存储桶时,Heroku 日志显示 :status 403 错误“Forbidden”(详细日志如下)。

其他人似乎也有类似的问题。在大多数情况下,解决方案似乎是设置适当的 IAM 用户权限设置 S3 存储桶策略,但我相当有信心我已正确设置这些权限,原因有两个:

  1. 我可以使用该用户帐户上的 Web GUI 来上传和管理存储桶中的文件,因此我知道它具有访问权限。
  2. 我安装了 aws 命令行工具,并使用与我的 Web 应用程序中使用的相同的用户访问密钥和密钥对其进行配置,并且我能够通过 CLI 从存储桶上传和检索信息。

尽管如此,我还是尝试了几种存储桶策略和用户权限,包括 Amazon S3 完全访问权限(我相信这是最通用的),以及几个更具体的版本(请参阅下面的最新版本)。

我尝试过的其他似乎对其他人有用的事情:

作为一名新开发人员,我觉得我还没有成熟的技术来诊断这个问题,坦率地说,这有点令人沮丧,所以我希望得到帮助。以下是我的一些问题以及我想进一步研究的可能的调查线索:

  • 问题:如果我能够使用 aws-cli 访问存储桶,我是否也应该能够使用相同的凭据将 heroku 与 Carrierwave/fog 结合使用,或者我是否误解了 heroku 如何访问 S3 …

ruby-on-rails amazon-s3 carrierwave railstutorial.org

6
推荐指数
1
解决办法
2006
查看次数