2013-06-29 31 views
1

我正在使用boto-rsync同步本地服務器和Amazon S3之間的文件。我還將其與Dreamhost的DreamObjects一起使用。目前,我要麼使用符號鏈接將腳本指向相應的憑據,要麼使用--access-key KEY和--secret-key SECRET將它們添加到腳本中,以便處理不同的端點。boto-rsync多個憑據

我的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推薦什麼,但他的建議啓發我讀了博託文檔https://github.com/boto/boto,我發現我可以設置環境變量。很整潔。謝謝!

回答

1

我對boto-rsync並不瞭解,但我知道它在底層使用了boto,而boto支持一個BOTO_CONFIG環境變量,可用於指向您的boto配置文件。因此,您可以擁有兩個配置文件,一個配置您的AWS憑據,另一個配置您的Dreamhost憑據,然後在啓動時將BOTO_CONFIG環境變量設置爲指向相應的配置文件。