使用亚马逊SDK宝石时的加载问题

时间:2018-11-06 07:18:56

标签: ruby-on-rails amazon-web-services amazon-s3 paperclip

我正在尝试将s3集成到我的项目中。 Gemfile如下。

gem 'paperclip', '~> 5.0.0'
gem 'aws-sdk-s3'

development.rb

    config.paperclip_defaults = {
      :storage => :s3,
      :bucket => 'name_ofbucket'
    }
    Paperclip.options[:command_path] = "/usr/local/bin/"

config / aws.yml

development:
  access_key_id: AWS_ACCESS_KEY_ID
  secret_access_key: AWS_SECRET_KEY_ID

production:
  access_key_id: AWS_ACCESS_KEY_ID
  secret_access_key: AWS_SECRET_KEY_ID

型号

 has_attached_file :logo, styles: { medium: '300x300>', thumb: '150x150>' },
                    :storage => :s3,
                    :s3_credentials => "#{Rails.root}/config/aws.yml",
                    :path => ":class/:attachment/:token/:style.:extension",
                    :bucket => 'name_of_bucket',
                    default_url: '/images/missing.jpg'

现在我遇到以下错误。

  

无法加载此类文件-aws-sdk(您可能需要安装aws-sdk gem)

我已经安装了gems并重新启动了服务器。 我经历了类似的话题,但无法解决问题。

我不确定为什么会收到此错误。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:0)

您的Gemfile声明:

gem 'aws-sdk-s3'

错误消息如下:

  

无法加载此类文件-aws-sdk(您可能需要安装aws-sdk gem)

您是否尝试过将gem 'aws-sdk'放入Gemfile中?

我知道您只想使用s3而不是整个aws-sdk,但是也许paperclip需要加载的库比最小条数要多。

答案 1 :(得分:0)

对我来说是因为我添加了s3_region亚马逊错误 如果您使用的是S3存储,则aws-sdk> = 2.0.0要求您做一些小准备。 更改:

  • 您必须设置s3_region
  • 如果您要在任何地方(例如在初始化程序中)显式设置权限, 请注意,权限的格式从使用下划线更改为 使用连字符。例如,:public_read需要更改为 public-read