Errno :: ECONNREFUSED:连接被拒绝 - 连接(2)for" bucketname.s3-eu-west-1.amazonaws.com"

时间:2015-07-09 09:49:48

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

我有一个默认文件,在注册新帐户后,会发送到亚马逊桶。那很有效。但突然间,在不更改任何代码的情况下,我使用此方法的所有测试都失败并显示错误:

  

Errno :: ECONNREFUSED:连接被拒绝 - 连接(2)for   "(bucketname).S3-EU-西1.amazonaws.com"港口443

导致此错误突然出现的原因是什么?测试错误都指向下面方法中的obj.upload_file(drawingfile)

发送文件的模型方法尚未更改,并且是:

def self.upload_empty_drawing(id)  # In the S3 bucket's I've granted access to my heroku domain as well as to https://<name>.c9.io (I'm programming in Cloud9, an IDE solution)
  s3 = Aws::S3::Resource.new(
          credentials: Aws::Credentials.new(
            Rails.application.secrets.S3_ACCESS_KEY,
            Rails.application.secrets.S3_SECRET_KEY),
          region: Rails.application.secrets.AWS_REGION
       )
  drawingfile = 'app/assets/emptyexample.xml'
  filename = "example/#{id}/example-#{id}.xml"
  obj = s3.bucket(Rails.application.secrets.S3_BUCKET_EXAMPLES).object(filename)
  obj.upload_file(drawingfile)
  Drawing.create!(organization_id: id, example_file: obj.public_url)
end

更新:我认为除了模型方法中的错误外,还有其他事情可能发生。这是因为:

  • 我的生产网站也受到影响。我尝试在我的生产网站上注册并收到错误We're sorry, but something went wrong
  • 在终端中输入heroku logs --tail(正如我所提到的,我使用的是Cloud9 IDE),产生了错误Unable to connect to api.heroku.com
  • 如果我尝试在开发服务器上注册,则在注册时,我会遇到与运行测试时提到/获得的connection refused错误。
  • 在终端中输入heroku config,会产生错误Unable to connect to Heroku API, please check internet connectivity and try again

不确定发生了什么......!?任何想法如何找出问题,都表示赞赏。

2 个答案:

答案 0 :(得分:0)

我有类似的问题与权限有关,所以我更新了我的

中的代码
`......image.rb`............

    has_attached_file :avatar,
     :styles => 
     {
      :medium => "x300",
      :small => "150x150>",
      :thumb => "90x90>",
      },
    :storage => :s3,
    :s3_permissions => :private,
    :s3_credentials => S3_CREDENTIALS      

      .....config/initializers/paperclip.rb...............

         S3_CREDENTIALS = Rails.root.join("config/s3.yml")
         Paperclip::Attachment.default_options[:url] = ':s3_domain_url'
         Paperclip::Attachment.default_options[:path] = '/:class/:id/:style/:filename'

      .....config/s3.yml....................
        development:
        bucket: mybucketname
        access_key_id: xxxxxxxxxxxxxxxxxxxxx
        secret_access_key: xxxxxxxxxxxxxxxx+xxxxxxxxx

答案 1 :(得分:0)

我已经与用于编写代码的IDE保持联系。他们非常友好地重置/重新启动我的帐户或其他东西(不确定他们做了什么,但我已经&#34;重新连接&#34;在我的屏幕上几分钟)。在此之后,所有问题都消失了。因此,原因似乎是IDE侧面的配置设置。

(PS生产方面的问题有不同的原因:虽然我设置了一个秘密变量的密钥,但在secrets.yml我还没有定义在生产中使用它(仅在开发和测试中))