如何scp到亚马逊s3?

时间:2011-09-07 04:25:39

标签: linux amazon-s3 scp

我需要将〜2TB的备份文件发送到S3。我想最麻烦的选择是Linux scp命令(对{s3cmd有difficulty并且不希望有过多的java / RoR这样做)。

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

我很感激你的提示。

7 个答案:

答案 0 :(得分:33)

截至2015年,SCP / SSH不受支持(可能永远不会出于其他答案中提到的原因)。

用于将文件复制到S3

的正式AWS工具
  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. 网络界面:

  3. 非AWS方法

    任何其他解决方案都依赖于第三方可执行文件(例如botosync,jungledisk ......),只要它们受到支持,它们就可以很好。但是,随着时间的推移,第三方工具会随之而来,而且您的脚本的保质期会缩短。

    编辑:实际上,AWS CLI基于botocore:

    https://github.com/boto/botocore

    因此,作为一位年长的政治家,botosync应该得到更多的尊重,而不是我给它。

答案 1 :(得分:11)

这就是事情,boto-rsync。在任何Linux机器上,安装boto-rsync,然后使用它将 / local / path / 传输到 your_bucket / remote / path /

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/

答案 2 :(得分:8)

你不能SCP。

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

答案 3 :(得分:4)

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

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

答案 4 :(得分:1)

有一个名为Dragon Disk的神奇工具。它甚至可以作为同步工具使用,而不仅仅是简单的scp。

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

设置亚马逊s3的指南here,在设置之后,您可以将文件从本地计算机复制粘贴到s3或设置自动同步。用户界面与WinSCP或Filezilla非常相似。

答案 5 :(得分:1)

Here you go,

scp USER@REMOTE_IP:/FILE_PATH >(aws s3 cp - s3://BUCKET/SAVE_FILE_AS_THIS_NAME)

答案 6 :(得分:-3)

对于我们的AWS备份,我们使用双重性和欺骗性双重性来进行rsync和加密,并使用涓流来限制上传速度

相关问题