Featured image of post Пример загрузки файлов на объектное хранилище AWS S3 с помощью PHP

Пример загрузки файлов на объектное хранилище AWS S3 с помощью PHP

Пример, в котором PHP принимает файлы, загруженные через HTML-форму, и загружает их в хранилище AWS S3. Начнем с простого HTML-кода для загрузки...

Пример, как PHP принимает файлы, загруженные через HTML-форму, и загружает их в хранилище AWS S3.

Сначала создадим простой HTML-код для загрузки, чтобы PHP мог принимать и загружать файлы. На странице HTML мы создаем простую форму для выбора файла, который хотим загрузить.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
|  | <!-- index.html --> |
| --- | --- |
|  | <!DOCTYPE html> |
|  | <html> |
|  | <head> |
|  | <meta charset="UTF-8"> |
|  | <title>Загрузка файлов</title> |
|  | </head> |
|  | <body> |
|  | <form action="upload.php" method="post" enctype="multipart/form-data"> |
|  | <input type="file" name="file"> |
|  | <button type="submit">Загрузить файл</button> |
|  | </form> |
|  | </body> |
|  | </html> |

В приведенном выше коде мы используем тег <form> для загрузки файла на скрипт upload.php, а также указываем атрибут enctype="multipart/form-data" для поддержки загрузки файлов.

Теперь в PHP мы будем использовать библиотеку AWS SDK for PHP, чтобы загрузить файл в хранилище S3.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|  | <?php |
| --- | --- |
|  | // upload.php |
|  |  |
|  | require 'vendor/autoload.php'; // Подключаем библиотеку AWS SDK для PHP |
|  |  |
|  | use Aws\S3\S3Client; |
|  |  |
|  | if ($_SERVER['REQUEST_METHOD'] === 'POST') {if (isset($_FILES['file'])) {$bucketName = 'your-bucket-name'; // Замените на название вашего S3 хранилища |
|  | $s3Key = 'uploads/' . basename($_FILES['file']['name']); |
|  | $file = $_FILES['file']['tmp_name']; |
|  |  |
|  | $s3 = new S3Client(['version' => 'latest', |
|  | 'region' => 'your-region', // Укажите регион вашего S3 хранилища |
|  | 'credentials' => ['key' => 'your-access-key', |
|  | 'secret' => 'your-secret-key', |
|  | ], |
|  | ]); |
|  |  |
|  | try {$s3->putObject(['Bucket' => $bucketName, |
|  | 'Key' => $s3Key, |
|  | 'Body' => fopen($file, 'r'), |
|  | 'ACL' => 'public-read', // Устанавливаем доступ на чтение для всех |
|  | ]); |
|  | echo 'Файл успешно загружен'; |
|  | } catch (Exception $e) {echo 'Ошибка загрузки файла: ' . $e->getMessage();} |
|  | } else {echo 'Файл не выбран для загрузки';} |
|  | } else {echo 'Неверный метод запроса';} |

В приведенном коде PHP мы сначала подключаем библиотеку AWS SDK для PHP и создаем объект клиента S3. Затем мы получаем загружаемый файл из глобальной переменной $_FILES и используем объект клиента S3 для загрузки файла в указанное хранилище.

Обратите внимание, что вам необходимо сначала создать хранилище S3 в AWS и настроить соответствующие права доступа. В этом примере мы устанавливаем загружаемые файлы на общедоступный доступ.

Licensed under CC BY-NC-SA 4.0
Создано при помощи Hugo
Тема Stack, дизайн Jimmy