✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Завантажте файли на Amazon S3 за допомогою AWS PHP SDK

26

Ви хочете завантажити файли на 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 нам потрібно створити сегмент для зберігання наших файлів. Сегмент – це не що інше, як логічна одиниця зберігання в 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і помістіть у цей файл код нижче.

upload-to-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, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі