Я использую boto-rsync для синхронизации файлов между моим локальным сервером и Amazon S3. Я также использую его с DreamObjects от Dreamhost. В настоящее время я либо использую символические ссылки, чтобы указать скрипту соответствующие учетные данные, либо просто добавляю их в скрипт с --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
Не совсем то, что рекомендовал Гарнаат, но вдохновленный его советом, я прочитал документы boto https://github.com/boto/boto и обнаружил, что могу устанавливать переменные среды. Гораздо аккуратнее. Спасибо!