Linux 如何将scp连接到AmazonS3?

Linux 如何将scp连接到AmazonS3?,linux,amazon-s3,scp,Linux,Amazon S3,Scp,我需要将~2TB的备份文件发送到S3。我想最省事的选项应该是LinuxSCP命令(使用s3cmd,不希望过度使用java/RoR) 然而,我不确定是否可能:如何将S3的私钥和公钥用于scp,并且不知道我的目标IP/url/path是什么 我很感激你的提示。你不能这么做 如果你不介意花钱的话,最快的方法可能就是把钱放在磁盘上寄给他们,他们会帮你放在那里。查看他们的服务。对于我们的AWS备份,我们对rsync使用duplicity和trickle duplicity的组合,加密和trickle限制上

我需要将~2TB的备份文件发送到S3。我想最省事的选项应该是LinuxSCP命令(使用s3cmd,不希望过度使用java/RoR)

然而,我不确定是否可能:如何将S3的私钥和公钥用于scp,并且不知道我的目标IP/url/path是什么

我很感激你的提示。

你不能这么做


如果你不介意花钱的话,最快的方法可能就是把钱放在磁盘上寄给他们,他们会帮你放在那里。查看他们的服务。

对于我们的AWS备份,我们对rsync使用duplicity和trickle duplicity的组合,加密和trickle限制上传速度

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


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

这就是问题所在。从任何Linux设备上安装boto rsync,然后使用它将/local/path/传输到您的存储桶/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/

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

用于将文件复制到S3或从S3复制文件的官方AWS工具
  • pip3安装awscli
    )-注意需要指定凭据,我更喜欢通过环境变量而不是文件:
    AWS\u ACCESS\u KEY\u ID
    AWS\u SECRET\u ACCESS\u KEY

    aws s3 cp /tmp/foo/ s3://bucket/ --recursive --exclude "*" --include "*.jpg"
    
    和类似rsync的命令:

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

  • 非AWS方法 任何其他解决方案都依赖于第三方可执行文件(例如botosync、jungledisk…),只要它们得到支持,这些文件就非常有用。但是,随着时间的推移,第三方工具来来去去去,您的脚本将有更短的保存期限


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


    因此,作为一位年长的政治家,botosync应该得到比我可能给予它更多的尊重。

    有一种叫做龙盘的神奇工具。它甚至可以作为一个同步工具,而不仅仅是普通的scp

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

    给你

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

    谢谢,但这太过分了:)好吧,你有两个TB,即使在非常快的网络上也需要一段时间:)你不能SCP,因为它不像EC2,没有机器运行SSH服务器供你SCP。你可以使用他们的API上传,试试下面的信息:“亚马逊S3备份工具列表”可能有助于避免向亚马逊付费:我的服务器可以以5-10MB/s的速度上传。此外,我使用crontab来实现这一点,因此实际上不需要“等待”备份上传完成。这就是我寻找命令行解决方案的原因。声称拥有您所需要的,“同步:一个用于将您计算机上的目录与Amazon S3或Google存储帐户同步的命令行应用程序。非常适合在不同计算机之间执行备份或同步文件。”。在移动到最新版本的s3cmd并从put命令中删除--private ack之后,我的s3cmd问题似乎得到了解决!老实说,这种boto-rsync的东西太可怕了。我想知道是否有办法通过ssh连接到服务器,然后使用AWS外壳,而不是传统的外壳,公开原始文件系统(AWS S3有意将其抽象出来)请注意,在ubuntu上,您可以
    获得安装awscli
    ,这可能比使用
    pip3安装awscli
    更好,可以使用除
    -
    以外的任何东西吗@吉普赛人你什么意思
    -
    表示使用bash的进程替换传递给awscli的stdin
    这几乎正是我想要的,只是在另一个方向。