Назад | Перейти на главную страницу

awscli перенаправляет файл кеша в другой каталог

Я пишу сценарий Bash для загрузки некоторых объектов из S3. У учетной записи пользователя, которая запускает этот сценарий, нет доступного домашнего каталога. значение - папка, на которую ссылается $ HOME, не существует.

Я использовал переменные среды для перенаправления учетных данных и файлов конфигурации. Это работает, файлы создаются в новом месте

export AWS_CONFIG_FILE=/newfolder/.aws/config
export AWS_SHARED_CREDENTIALS_FILE=/newfolder/.aws/credentials

При выполнении этой команды я получаю сообщение об ошибке Permission denied.

/usr/local/bin/aws --profile thisprofile s3 ls $BUCKET$FOLDER --recursive

Он пытается выполнить запись в файл кеша в домашнем каталоге пользователя, но не может, потому что каталог $ HOME не существует.

$HOME/.aws/cli/cache/a5e04d49e9fc210124ee0431e237dccc5ed84794.json

Я попытался экспортировать HOME в допустимую папку. Это работает, но я не думаю, что это лучший способ решить эту проблему. Этот сценарий правильно работает с учетной записью пользователя, имеющей домашний каталог.

Предполагая, что я не могу просто исправить отсутствующий домашний каталог, есть ли способ перенаправить этот файл кеша или все в .aws в новое место, подобное тому, что я сделал с учетными данными?

Изменить: в дополнение к ответу Anon Cowards, показывающему, где он явно вызывает переменную HOME, есть открытый запрос функции для отключения кеширования

Найденный вами обходной путь - единственное реальное решение. По сути, если есть какой-либо сценарий, в котором boto3 необходимо использовать роль предположения, следующий код в конечном итоге называется:

    CACHE_DIR = os.path.expanduser(os.path.join('~', '.aws', 'boto', 'cache'))

Как видите, надежды на настройку нет, поскольку расширение тильды, выполняемое программой Python os.path.expanduser() явно использует $HOME. Технически код, использующий CACHE_DIR в JSONFileCache имеет аварийный люк, позволяющий указать другой каталог, но эта опция не используется ни одной из вызывающих функций.