在我的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的解决方案或替代方案。非常感谢任何帮助!