Выполнение команды CLI AWS из php не может найти учетные данные

1

У меня есть такая же проблема, как и выполнение команды AWS CLI из результатов php в Невозможно найти учетные данные

Я сделал:

cd ~/.aws
mv config credentials

Но это не помогло.

Так что я сделал, и конфиг и учетные данные имеют один и тот же контент:

[по умолчанию]

aws_access_key_id = AKIAJIPLT472C32RD6AQ

Уровеньвыше.

output = json

region = ap-southeast-1

Код, который я использую в моем файле PHP:

$s3 = system("aws s3 cp /var/www/html/v2/upload/__rmx4hqf.png s3://<bucket>/somefolder 2>&1");
  • 0
    удалите 2>&1 с конца, чтобы получить ошибку.
  • 0
    @Jigar при удалении этой строки ошибка не отображается, но файл все еще не загружается
Показать ещё 1 комментарий
Теги:
amazon-s3
aws-cli

3 ответа

0

например, колчан говорит, что apache2 запускается от другого пользователя, а затем пользователя termina вы можете видеть apache user ENV vars с помощью команды getenv(); для добавления vars в apache2 ENV вам нужно использовать putenv ("string");

вам нужно добавить aws cerdentials таким образом

putenv('AWS_DEFAULT_REGION='. $region); putenv('AWS_ACCESS_KEY_ID='. $key); putenv('AWS_SECRET_ACCESS_KEY='. $secret);e print_r(getenv());

только это решение wotks для меня, когда я пытаюсь запустить aws cli из php файла

исходный ответ aws forum

0

Попробуйте добавить свой регион

$s3 = system("aws s3 cp /var/www/html/v2/upload/__rmx4hqf.png s3://<bucket>/somefolder 2>&1 --region ap-southeast-1");
0

Я предполагаю, что команда php не может найти файл учетных данных aws, потому что пользователь, $ aws configure вы запускали $ aws configure, отличается от пользователя php. Вы не предоставили достаточно информации о том, как вы запускали команду configure или как выполнялся скрипт php, так что это просто моя догадка.

Что произойдет, если вы явно передаете путь к файлу учетных данных через переменную среды AWS_CONFIG_FILE (например, $s3 = system("AWS_CONFIG_FILE=/path/to/credential aws s3 cp...)?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню