PostsController中的Aws :: Errors :: MissingCredentialsError#使用Paperclip和AWS更新

问题描述 投票:0回答:1

我已经花了几个小时研究这个问题并且无法解决这个问题。我运行git clean然后意识到我的s3.yml文件被删除了。我创建了新密钥并将它们放在一个新的s3.yml文件中。我之前没有改变任何其他工作就好了。我错过了什么?

我得到了:Aws::Errors::MissingCredentialsError (unable to sign request without credentials set):

这是我的代码:

development.rb

  config.paperclip_defaults = {
    storage: :s3,
    s3_region: 'us-east-1',
    bucket:'mybucket',
    s3_credentials: "#{Rails.root}/config/s3.yml"
  }

production.rb

config.paperclip_defaults = {
      storage: :s3,
      s3_credentials: {
        bucket: ENV.fetch('S3_BUCKET_NAME'),
        access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
        secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
        s3_region: ENV.fetch('AWS_REGION'),
      }
    }
    # Secret key base for non-existent secrets.yml file
    config.secret_key_base = ENV["SECRET_KEY_BASE"]

s3.yml(用新的快捷键)

S3_BUCKET_NAME: mybucket
AWS_ACCESS_KEY_ID: ***
AWS_SECRET_ACCESS_KEY: ***
AWS_REGION: us-east-1

发表课程

class Post < ApplicationRecord
  belongs_to :user, counter_cache: true
  belongs_to :category

  validates :title, :presence => true
  validates :content, :presence => true

  has_attached_file :thumbnail, styles: {
      medium: '270x170#',
      large: '560x280#',
      large2: '540x340#'
    }

    # Validate the attached image is image/jpg, image/png, etc
    validates_attachment_content_type :thumbnail, :content_type => /\Aimage\/.*\Z/
end
ruby-on-rails amazon-web-services amazon-s3 paperclip aws-sdk
1个回答
1
投票

当您在开发环境中收到错误时,我认为该错误是由于s3_credentials:“#{Rails.root} /config/s3.yml”。

鉴于您发布的s3.yml我不认为s3_credentials将填充json结构,就像您在生产环境中那样。

我建议您像在生产环境中一样加载文件并填充json。

© www.soinside.com 2019 - 2024. All rights reserved.