本地fakes3和capistrano - 身份验证错误

时间:2016-01-12 07:42:08

标签: linux ruby-on-rails-4 amazon-s3 capistrano

在我的ruby on rails应用程序中,我目前正在测试更新我的应用程序'库'的功能。它是为了与capistrano和s3合作而构建的,之前的团队在生产环境中进行了设置。

作为团队的新成员,我正在弄清楚应用程序,并希望在本地测试他们的设置。 fakes3似乎是伪造s3服务的理想解决方案。该应用程序在Linux系统上运行。

但是,当我尝试执行任何命令时,例如cap fakes3 deploy:setup,它会给我以下消息:

triggering load callbacks
  * 2016-01-12 08:19:43 08:19:43 == Currently executing `rbenv:setup_default_environment'
  * executing "echo \"$HOME/.rbenv\""
    servers: ["127.0.0.1"]
connection failed for: 127.0.0.1 (Net::SSH::AuthenticationFailed: Authentication failed for user ubuntu@127.0.0.1)

对于用户ubuntu,我已经创建了一个帐户,我可以通过ssh登录服务器。每当我尝试使用cap命令时,我的auth.log文件都会抛出这一行:

Jan 12 08:19:43 ubuntu sshd[2296]: Connection closed by 127.0.0.1 [preauth]

我不确定这意味着什么,但这似乎是一个至关重要的错误。对此行的任何评论都表示赞赏。

以下是我目前所做的事情

在我的主机文件中,我添加了以下行:127.0.0.1 local.s3.endpoint local-bucket.local.s3.endpoint

我已执行命令fakes3 -r /mnt/fakes3_root -p 1234,此服务已启动并正在运行:

Loading FakeS3 with /mnt/fakes3_root on port 1234 with hostname s3.amazonaws.com
[2016-01-12 08:18:54] INFO  WEBrick 1.3.1
[2016-01-12 08:18:54] INFO  ruby 2.2.3 (2015-08-18) [x86_64-linux]
[2016-01-12 08:18:54] INFO  WEBrick::HTTPServer#start: pid=1944 port=1234
localhost - - [12/Jan/2016:08:19:18 CET] "PUT /local-bucket HTTP/1.1" 200 0
- -> /local-bucket

在我的rails控制台中,我执行了以下操作:

s3=AWS::S3.new(
  :access_key_id => '',
  :secret_access_key => '',
  :s3_endpoint       => 'local.s3.endpoint',
  :s3_port           => 1234,
  :use_ssl           => false,
  :s3_force_path_style => true
)
s3.buckets.create('local-bucket')

最后,在我的项目deploy.yml中,我添加了s3设置如下:

s3:
  storage: filesystem
  path: /ec2-dev/:class/:attachment/:id_partition/:style/:filename
  s3_credentials:
    access_key_id: "anything"
    secret_access_key: "anything"
  bucket: "local-bucket"
  s3_host_name: "local.s3.endpoint"
  # default_host: "local.s3.endpoint"
  url: ":s3_alias_url"
  s3_host_alias: "local-bucket.local.s3.endpoint:1234"
  s3_options:
    use_ssl: false
    s3_port: 1234
  creds: i3

我也试过设置这些,因为这些设置更符合正常的s3设置:

 s3:
   storage: filesystem
   bucket: local-bucket
   upload_bucket: local-bucket
   region: eu-west-1
   path: /ec2-dev/:class/:attachment/:id_partition/:style/:filename
   url: :s3_alias_url
   creds: i3

毋庸置疑,这些设置几乎没有差别。

回顾一下:我已经完成了所有这些设置,而且我无法连接到我的fakes3存储桶,或者看起来如此。 (connection failed for: 127.0.0.1 (Net::SSH::AuthenticationFailed: Authentication failed for user ubuntu@127.0.0.1))我正在寻找一种在本地测试s3的解决方案或替代方案。非常感谢任何帮助!

0 个答案:

没有答案