我正在使用boto-rsync在本地服务器和Amazon S3之间同步文件。我也在Dreamhost的DreamObjects中使用它。目前,我要么使用符号链接将脚本指向适当的凭据,要么只是使用--access-key KEY和--secret-key SECRET将它们添加到脚本中,以便处理不同的端点。
我的bash脚本可以根据需要销毁/创建链接,但这看起来有点乱。如果我将密钥和秘密放入脚本中,它们就会在进程列表中暴露出来,这不是什么大问题,因为我是我服务器上唯一的那个,但也不是最优的。
有没有人有更好的主意?
* 所以我的脚本现在看起来像这样:
#!/bin/bash
i=bucketname
date
echo "***** syncing media to Amazon S3 *****"
export AWS_ACCESS_KEY_ID=s3-access-key
export AWS_SECRET_ACCESS_KEY=s3-secret-access-key
/usr/local/bin/boto-rsync /media/$i/ s3://$i/
date
echo "***** syncing media to DreamObjects *****"
export AWS_ACCESS_KEY_ID=dreamobjects-access-key
export AWS_SECRET_ACCESS_KEY=dreamobjects-secret-access-key
/usr/local/bin/boto-rsync --endpoint objects.dreamhost.com /media/$i/ s3://$i/
echo "***** finished syncing files *****"
date
exit 0
不完全是garnaat推荐的,但受他的建议启发我读了boto docs https://github.com/boto/boto并发现我可以设置环境变量。更整洁。谢谢!
答案 0 :(得分:1)
我对boto-rsync了解不多,但我知道它在底层使用boto并且boto支持可用于指向boto配置文件的BOTO_CONFIG环境变量。因此,您可以拥有两个配置文件,一个包含您的AWS凭据,另一个包含您的Dreamhost凭据,然后在启动时将BOTO_CONFIG环境变量设置为指向相应的配置文件。