...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Загрузка файлов в Amazon S3 с помощью AWS PHP SDK

760

Вы хотите программно загружать файлы в Amazon S3? Amazon S3 – это облачная служба хранения, в которой можно хранить файлы, изображения и т.д. Эти документы могут быть общедоступными или частными в зависимости от выбора владельца. В этой статье мы изучаем, как загружать файлы в Amazon S3 с помощью официальной библиотеки AWS PHP SDK.

Amazon S3 предоставляет масштабируемое объектное хранилище. Благодаря своей надежности и производительности это популярный среди пользователей облачный сервис.

Зачем нужно загружать файлы на Amazon S3?

Что ж, есть несколько причин хранить ваши файлы на Amazon S3. Поскольку это облачный сервис, вы можете получить доступ к своим файлам из любого места. Используя эту услугу, пользователи могут сохранять конфиденциальность своих документов. AWS предоставляет вам возможность сохранить ваш документ как общедоступным, так и частным. Во-вторых, если у вас есть веб-сайт, то хранение файлов в облаке сэкономит вам много трафика. Это экономит место на вашем хостинге и снижает нагрузку на ваш сервер.

При этом давайте посмотрим, как загружать файлы на Amazon S3 с помощью PHP.

Получите свои учетные данные

Чтобы начать работу с S3, у вас должна быть учетная запись на AWS. После создания учетной записи AWS обязательно активируйте сервис S3, выполнив процесс проверки.

После активации службы S3 получите учетные данные безопасности, которые нам понадобятся при работе с API.

Загрузка файлов в Amazon S3 с помощью AWS PHP SDK

Код для загрузки файлов в Amazon S3

Мы готовы с ключами API AWS. Затем установите в свой проект официальную библиотеку AWS PHP SDK. Я рекомендую использовать Composer для установки этой библиотеки. Откройте терминал в корневом каталоге вашего проекта и выполните следующую команду.

composer require aws/aws-sdk-php

Эта команда установит библиотеки вместе с их зависимостями в ваш проект.

Создайте корзину на AWS

В AWS нам нужно создать Bucket для хранения наших файлов. Корзина – это не что иное, как логическая единица хранения в AWS. Все ваши файлы будут храниться в корзине.

Вы можете создать корзину непосредственно на панели инструментов S3. Но если кто-то хочет создать его динамически, обратитесь к приведенному ниже коду.

create-bucket.php

<?php
require 'vendor/autoload.php';
use AwsS3S3Client;
 
$bucketName = 'YOUR_BUCKET_NAME';
 
$client = new S3Client([
    'version' => 'latest',
    'region' => 'YOUR_AWS_REGION',
    'credentials' => [
        'key'    => 'ACCESS_KEY_ID',
        'secret' => 'SECRET_ACCESS_KEY'
    ]
]);
 
try {
    $result = $client->createBucket([
        'Bucket' => $bucketName, // REQUIRED
        'ACL'    => 'public-read',
    ]);
    echo "Bucket created successfully.";
} catch (AwsS3ExceptionS3Exception $e) {
    // output error message if fails
    echo $e->getMessage();
}

Обязательно замените заполнители фактическими значениями. Этот код создает корзину на панели инструментов S3. Мы будем загружать файлы из этого ведра через API.

В приведенном выше коде я передал пару ключ => значение как 'ACL' => 'public-read'. Эта пара устанавливает общий доступ к вашей корзине или файлам. Если вы хотите, чтобы ваше хранилище было приватным, удалите эту строку из кода.

Следующая работа – написание кода для загрузки файлов на Amazon S3. Ради учебника я создаю разные файлы PHP и пишу в них код. В вашем случае не стесняйтесь реализовывать логику в зависимости от потока вашего проекта.

Upload File to Amazon S3

Вы готовы с ведром для хранения файлов. Создайте файл upload-to-s3.phpи поместите в него приведенный ниже код.

загрузить-в-s3.php

<?php
require 'vendor/autoload.php';
 
use AwsS3S3Client;
 
// Instantiate an Amazon S3 client.
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'YOUR_AWS_REGION',
    'credentials' => [
        'key'    => 'ACCESS_KEY_ID',
        'secret' => 'SECRET_ACCESS_KEY'
    ]
]);
 
 
$bucketName = 'YOUR_BUCKET_NAME';
$file_Path = __DIR__. '/my-image.png';
$key = basename($file_Path);
 
// Upload a publicly accessible file. The file size and type are determined by the SDK.
try {
    $result = $s3->putObject([
        'Bucket' => $bucketName,
        'Key'    => $key,
        'Body'   => fopen($file_Path, 'r'),
        'ACL'    => 'public-read',
    ]);
    echo "Image uploaded successfully. Image path is: ". $result->get('ObjectURL');
} catch (AwsS3ExceptionS3Exception $e) {
    echo "There was an error uploading the file.n";
    echo $e->getMessage();
}

Здесь вы должны присвоить $bucketNameпеременной имя корзины. В моем случае я загружаю файл «my-image.png», путь к которому я указал в коде. Соответственно, вам следует скорректировать путь к вашим файлам. Наконец, я печатаю путь к загруженному файлу, используя get()метод в полученном ответе.

Все сделано! Теперь запустите upload-to-s3.phpфайл в браузере, и ваш файл должен быть загружен в корзину Amazon S3.

Надеюсь, вы понимаете, что такое создание корзины и загрузка файлов в Amazon S3. Вы также можете проверить примеры кодов, предоставленные AWS на GitHub.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее