2011-09-07 101 views
15

我需要发送〜2TB的备份文件到S3。我想最无忧的选择将是Linux scp命令(具有s3cmd的difficulty,并且不希望过度使用java/RoR来这么做)。如何scp到亚马逊s3?

但是我不确定是否有可能:如何使用S3的私钥和公钥与scp,并且不知道什么是我的目标IP/url /路径?

我欣赏你的提示。

+0

p.s.在转移到最新版本的s3cmd并从put命令中删除--private-ack后,我的s3cmd问题似乎得到解决。 – qliq

回答

6

你不能SCP。

最快的方法是,如果你不介意花钱,可能只是将它发送给他们在磁盘上,他们会把它放在那里给你。请参阅他们的Import/Export服务。

+0

谢谢,但这太过于夸张了:) – qliq

+0

嗯,你有两个结核病,即使在非常快的网络上也需要一段时间:)你不能SCP,因为它不像EC2,没有机器运行SSH为你服务器给SCP。你可以使用他们的API上传,试试http://stackoverflow.com/questions/667478/how-do-i-bulk-upload-to-s3上的信息。 –

+1

'亚马逊S3备份工具列表'可能会有助于避免支付亚马逊:http://jeremy.zawodny.com/blog/archives/007641.html – qliq

-3

我们AWS备份我们使用表里不一的组合和涓流口是心非rsync的和加密和涓流限制上传速度

4

你为什么不它scp将EBS卷,然后从那里s3cmd使用?只要您的EBS卷和s3存储区位于同一区域,您只需支付一次入站数据费用(从您的网络到EBS卷)

我发现一旦在s3网络中, s3cmd更可靠,数据传输速率远高于直接到s3。

+0

说实话,如果矫枉过正。 – qliq

9

这里就是这个,boto-rsync。从任何Linux机器,安装博托 - rsync的,然后用它来传输/本地/路径/your_bucket /远程/路径/

boto-rsync -a your_access_key -s your_secret_key /local/path/ s3://your_bucket/remote/path/ 

的路径,也可以是文件。

对于除AWS以外的S3兼容的供应商,使用--endpoint:

boto-rsync -a your_access_key -s your_secret_key --endpoint some.provider.com /local/path/ s3://your_bucket/remote/path/ 
+3

这boto rsync的东西是真棒 –

+0

作品像魅力,谢谢! –

26

截至2015年,不支持SCP/SSH(也许永远不会在其他的答案中提到的原因)。

官方AWS工具从S3文件复制到/:

  1. command line toolpip3 install awscli - 注意证书需要指定,我通过环境变量喜欢:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY)。

    aws s3 cp /tmp/foo/ s3://bucket/ --recursive --exclude "*" --include "*.jpg" 
    

    和rsync的样命令:

    aws s3 sync . s3://mybucket 
    
  2. Web界面:

非AWS方法

任何其他解决方案依赖于第三方的可执行文件(例如, botosync,jungledisk ...),只要它们得到支持,它可以很棒。但是随着时间的流逝,第三方工具会随着时间的流逝而变化,而且您的脚本的保质期会更短。


编辑:其实,AWS CLI是基于botocore:

https://github.com/boto/botocore

所以botosync值得多一点尊重元老比我也许给了它。

+0

我想知道是否有办法SSH服务器,然后使用AWS shell而不是公开原始文件系统(AWS S3故意抽象)的传统shell。 –

1

有一个惊人的工具称为龙盘。它甚至可以用作同步工具,而不仅仅是简单的scp。

http://www.s3-client.com/

的指南来设置的Amazon S3提供here并设置它后,你可以复制从本地计算机中的文件粘贴到S3或设置自动同步。用户界面与WinSCP或Filezilla非常相似。