1

ローカル サーバーと Amazon S3 の間でファイルを同期するために boto-rsync を使用しています。また、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 構成ファイルを指すために使用できる BOTO_CONFIG 環境変数をサポートしていることは知っています。したがって、2 つの構成ファイル (1 つは AWS 資格情報、もう 1 つは Dreamhost 資格情報) を作成し、起動時に適切な構成ファイルを指すように BOTO_CONFIG 環境変数を設定できます。

于 2013-07-01T00:00:56.183 に答える