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
.
Примеры кода
Не забудьте указать путь к вашему проекту в строке с подключением файла autoload.php
:
<?php
// Предполагается, что AWS SDK установлен через Composer
require "<путь_к_проекту>/vendor/autoload.php";
use Aws\S3\S3Client;
$s3 = new S3Client([
"version" => "latest",
"endpoint" => "https://storage.yandexcloud.net",
"region" => "ru-central1",
]);
$buckets = $s3->listBuckets();
$bucket_count = 1;
echo "<b>Well, here are your buckets:</b></br></br>";
foreach ($buckets["Buckets"] as $bucket) {
echo $bucket_count . ". " . $bucket["Name"] . "</br>";
$bucket_count++;
}
?>
Также см. примеры кода