我正在使用 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并发现我可以设置环境变量。整洁多了。谢谢!