我需要将大约2TB的备份文件发送到S3。我想最省心的选择可能是使用Linux scp命令(使用s3cmd有困难,也不希望使用过于复杂的Java或RoR)。
但是我不确定是否可行:如何在scp中使用S3的私有和公共密钥,并不知道我的目标IP/url/path是什么?
感谢您的提示。
我需要将大约2TB的备份文件发送到S3。我想最省心的选择可能是使用Linux scp命令(使用s3cmd有困难,也不希望使用过于复杂的Java或RoR)。
但是我不确定是否可行:如何在scp中使用S3的私有和公共密钥,并不知道我的目标IP/url/path是什么?
感谢您的提示。
command line tool (pip3 install awscli
) - note credentials need to be specified, I prefer via environment variables rather than a file: AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
.
aws s3 cp /tmp/foo/ s3://bucket/ --recursive --exclude "*" --include "*.jpg"
and an rsync-like command:
aws s3 sync . s3://mybucket
Web interface:
任何其他解决方案都依赖于第三方可执行文件(例如botosync,jungledisk...),只要它们得到支持就可以很好地运行。但是随着时间的推移,第三方工具会出现并消失,您的脚本将有更短的使用寿命。
编辑:实际上,AWS CLI 基于 botocore:
https://github.com/boto/botocore
因此,Botosync作为一位长者,应该得到比我之前给予他的更多尊重。
apt-get install awscli
安装AWS CLI,这可能比使用pip3 install awscli
更可取。 - Philip Couling这里有一个解决方案,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/
您无法使用SCP。
如果您不介意花费一些钱,最快的方法可能是将数据存储到磁盘上并邮寄给他们,他们会将其上传到服务器。请参阅他们的Import/Export服务。
给你,
scp USER@REMOTE_IP:/FILE_PATH >(aws s3 cp - s3://BUCKET/SAVE_FILE_AS_THIS_NAME)
<()
传递给aws
cli的stdin。 - GypsyCosmonaut提供了设置Amazon S3的指南这里,设置完成后,您可以将文件从本地计算机复制粘贴到S3,也可以设置自动同步。用户界面与WinSCP或Filezilla非常相似。
对于我们的AWS备份,我们使用duplicity和trickle duplicity的组合来进行rsync和加密,并使用trickle来限制上传速度。