Rails:AWS S3 访问拒绝回形针上传错误

问题描述

每当我尝试使用回形针和 aws-sdk-s3 上传图像时,我都会收到 Aws::S3::Errors::AccessDenied Access Denied

我几乎尝试了互联网上所有可用的解决方案。

我尝试从 here

配置回形针认选项

使用的宝石 gem "paperclip",git: "git://github.com/thoughtbot/paperclip.git" and gem 'aws-sdk-s3','~> 1'

我的development.rb文件配置看起来像

config.paperclip_defaults = {
    storage: :s3,path: '/:class/:attachment/:id_partition/:style/:filename',s3_credentials: {
      access_key_id: ENV['AWS_ACCESS_KEY_ID'],secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],s3_region: ENV['AWS_REGION'],},bucket: ENV['AWS_BUCKET'],}

我的 model.rb 文件看起来像

has_attached_file :photo
has_attached_file :image
has_attached_file :signature

我的 paperclip.rb 文件看起来像

Paperclip::Attachment.default_options[:s3_protocol] = 'http'
Paperclip::Attachment.default_options[:url] = ':s3_domain_url'

我的 aws.yml 文件看起来像

development:
    access_key_id: MY_AWS_ACCESS_KEY_ID
    secret_access_key: MY_AWS_SECRET_ACCESS_KEY

我正在使用 gem 'figaro' 来保存我的开发环境的环境变量。

如果有人可以帮助我,我将不胜感激。

解决方法

我收到 Aws::S3::Errors::AccessDenied 拒绝访问的原因是我的预制 ACL 属性没有正确配置。

谢谢,它可能会帮助某人。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...