Как настроить учетные данные AWS в Media Temple DV - PullRequest
0 голосов
/ 14 сентября 2018

Мне сложно настроить учетные данные для использования AWS S3 через aws-php-sdk в Media Temple.

Я продолжаю получать сообщение об ошибке: Cannot read credentials from /.aws/credentials

Я пытался следовать руководству по установке интерфейса командной строки AWS с помощью https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-linux.html. Затем я использовал следующее для установки учетных данных с помощью https://docs.aws.amazon.com/cli/latest/userguide/tutorial-ec2-ubuntu.html#configure-cli

... Но я все еще получаю эту ошибку.

Затем я поболтал с поддержкой Media Temple, который создал файл .aws / credentials в корневом каталоге, но затем сообщение об ошибке изменилось на:

Warning: is_readable(): open_basedir restriction in effect. File(/.aws/credentials) is not within the allowed path(s)

MT посоветовал мне не изменять настройки basedir. Они также посоветовали мне просто изменить, где учетные данные считываются, если это возможно.

Кто-нибудь успешно использовал учетные данные AWS на MT?

1 Ответ

0 голосов
/ 14 сентября 2018

Попытка сделать это с помощью интерфейса командной строки AWS через SSH была все равно, что бить себя головой о кирпичную стену в Media Temple.

Затем я попытался установить учетные данные с помощью переменных среды, но это было невозможно..

Затем мне пришла идея поместить файл учетных данных в каталог, к которому PHP может получить доступ.Тем не менее, я должен был установить место, где aws-php-sdk будет искать его.Я нашел переменную окружения в какой-то документации и попытался установить переменную с помощью функции setenv() в php.Никаких кубиков.

Затем я искал aws-php-sdk начальную ошибку, которую я видел, возвращаясь назад, пока не смог найти, где находится местоположение файла учетных данных.Оказывается, документация была неправильной, и правильное имя переменной среды было HOME.

В конце концов, все, что нужно было установить HOME до использования AWS.Достаточно легко, но должно было быть в 100 раз легче понять.Что-то вроде этого:

// Set environment variable for credentials location
putenv('HOME=../');

// Set bucket name
$this->bucket = $bucket;

// Create an S3Client
$this->s3Client = new Aws\S3\S3Client([
    'profile' => $this->profile,
    'version' => $this->version,
    'region'  => $this->region
]);
...