【问题标题】:Cant upload images to s3 bucket with rails app and paperclip无法使用 Rails 应用程序和回形针将图像上传到 s3 存储桶
【发布时间】:2014-11-26 10:03:40
【问题描述】:

嗨,任何人都可以指出我做错了什么的方向。我正在尝试使用开发中的 rails 应用程序将图像上传到爱尔兰欧盟地区的 S3 存储桶。这是我收到错误的错误

  • ProductsController 中的 SocketError
  • getaddrinfo:提供节点名或服务名,或未知

在下面一行:TCPSocket.open(conn_address, conn_port, @local_host, @local_port)

我正在使用 aws-sdk gem 和回形针 4.2。

这里有一些代码sn-ps

在:

config/enviroments/development.rb

config.paperclip_defaults = {
  :storage => :s3,
  :s3_host_name => "s3-eu-west-1.amazonaws.com",
  :s3_credentials => {
  :bucket => 'S3_BUCKET_NAME',
  :access_key_id => 'AWS_ACCESS_KEY_ID',
  :secret_access_key => 'AWS_SECRET_ACCESS_KEY'
 }

 config/aws.yml
    development:
       AWS_ACCESS_KEY_ID: "xxx"
       AWS_SECRET_ACCESS_KEY: "xxx"
       S3_BUCKET_NAME: "xxx"
       s3_host_name: 's3-eu-west-1.amazonaws.com'

在我的模型中

class Product < ActiveRecord::Base

  validates :avatar,
    attachment_content_type: { content_type: /\Aimage\/.*\Z/ },
    attachment_size: { less_than: 5.megabytes }

  has_attached_file :avatar, styles: {
    thumb: '100x100>',
    square: '200x200#',
    medium: '300x300>'
  }
end

我错过了什么?我查看了可以在网上找到的每个示例,并尝试进行调整,但没有成功。

谢谢

【问题讨论】:

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


    【解决方案1】:

    试试这个:

    #config/enviroments/development.rb
    
    config.paperclip_defaults = {
      :storage => :s3,
      :s3_host_name => "s3-eu-west-1.amazonaws.com",
      :s3_credentials => {
      :bucket => ENV["S3_BUCKET_NAME"],
      :access_key_id => ENV["AWS_ACCESS_KEY_ID"],
      :secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"]
     }
    

    【讨论】:

    • 选择的答案是您的建议吗?
    【解决方案2】:

    好的,我通过将 AWS 凭证硬编码到 development.rb 文件中解决了这个问题。所以看起来问题是 aws.yml 文件没有被加载,有人知道为什么或如何解决这个问题吗?

    再次感谢

    【讨论】:

      猜你喜欢
      • 2013-09-09
      • 1970-01-01
      • 2020-02-14
      • 2017-02-01
      • 2017-11-01
      • 2011-12-13
      • 1970-01-01
      • 2014-12-19
      • 2017-10-01
      相关资源
      最近更新 更多