AWS SDK для PHP
AWS SDK для PHP
Подготовка к работе
- Создайте сервисный аккаунт.
- Назначьте сервисному аккаунту роли, необходимые для вашего проекта. Подробнее о ролях см. в документации Identity and Access Management.
- Создайте статический ключ доступа.
Примечание
Сервисный аккаунт может просматривать список бакетов только в том каталоге, в котором он был создан.
Сервисный аккаунт может выполнять действия с объектами в бакетах, которые созданы в каталогах, отличных от каталога сервисного аккаунта. Для этого назначьте сервисному аккаунту роли на нужный каталог или бакет в нем.
Установка
Для установки AWS SDK для PHP воспользуйтесь инструкцией
Настройка
-
Создайте в домашнем каталоге файл
.aws/credentials
и укажите в нем статический ключ:[default] aws_access_key_id = <идентификатор_ключа> aws_secret_access_key = <секретный_ключ>
-
Если вы используете образ LAMP из Cloud Marketplace, добавьте в конфигурационный файл Apache
httpd.conf
(для Debian и Ubuntu —apache2.conf
) переменную окруженияHOME
с указанием на домашний каталог:SetEnv HOME <домашний_каталог>
Подробнее о расположении и названии конфигурационного файла Apache для разных ОС см. на Apache HTTP Server Wiki
.
Также вы можете использовать вместо файла .aws/credentials
переменные среды AWS_ACCESS_KEY_ID
и AWS_SECRET_ACCESS_KEY
.
Для доступа к Object Storage используйте адрес storage.yandexcloud.net
.
Примеры кода
Список имен бакетов:
// Предполагается, что AWS SDK установлен через Composer
require '/path/to/vendor/autoload.php';
use Aws\S3\S3Client;
$s3 = new S3Client([
'version' => 'latest',
'endpoint' => 'https://storage.yandexcloud.net',
'region' => 'ru-central1',
]);
$buckets = $s3->listBuckets();
foreach ($buckets['Buckets'] as $bucket) {
echo $bucket['Name'] . "\n";
}
Также см. примеры кода