1

我正在使用 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 文档https://github.com/boto/boto并发现我可以设置环境变量。整洁多了。谢谢!

4

1 回答 1

1

我对 boto-rsync 了解不多,但我知道它在后台使用 boto 并且 boto 支持 BOTO_CONFIG 环境变量,该变量可用于指向您的 boto 配置文件。因此,您可以有两个配置文件,一个带有您的 AWS 凭证,一个带有您的 Dreamhost 凭证,然后在启动时将 BOTO_CONFIG 环境变量设置为指向适当的配置文件。

于 2013-07-01T00:00:56.183 回答