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

В современную эпоху облачных приложений загрузка файлов в удаленное хранилище является обычным требованием. Amazon Simple Storage Service (S3) — популярный выбор для масштабируемого и надежного хранилища файлов. В этой статье мы рассмотрим различные способы загрузки файлов в корзину S3 с помощью PHP с понятными объяснениями и практическими примерами кода.

Метод 1. Использование AWS SDK для PHP

AWS SDK для PHP предоставляет полный набор инструментов и библиотек для взаимодействия с различными сервисами AWS, включая S3. Для начала убедитесь, что в вашем проекте установлен SDK. Вы можете использовать Composer, менеджер пакетов PHP, чтобы легко его установить:

composer require aws/aws-sdk-php

После установки вы можете использовать SDK для загрузки файла в корзину S3 следующим образом:

require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
$bucketName = 'your-bucket-name';
$keyName = 'file.txt';
$filePath = '/path/to/file.txt';
$s3 = new S3Client([
    'region' => 'us-west-2',
    'version' => 'latest',
]);
try {
    $result = $s3->putObject([
        'Bucket' => $bucketName,
        'Key' => $keyName,
        'SourceFile' => $filePath,
    ]);
    echo "File uploaded successfully!\n";
    echo "File URL: " . $result['ObjectURL'] . "\n";
} catch (AwsException $e) {
    echo $e->getMessage() . "\n";
}

Метод 2: использование cURL

Если вы предпочитаете более простой подход, вы можете использовать библиотеку cURL для загрузки файлов в корзину S3. Вот пример:

$bucketName = 'your-bucket-name';
$keyName = 'file.txt';
$filePath = '/path/to/file.txt';
$region = 'us-west-2';
$url = "https://{$bucketName}.s3.{$region}.amazonaws.com/{$keyName}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_INFILE, fopen($filePath, 'r'));
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filePath));
$response = curl_exec($ch);
curl_close($ch);
if ($response === true) {
    echo "File uploaded successfully!\n";
    echo "File URL: {$url}\n";
} else {
    echo "File upload failed!\n";
}

Метод 3. Использование интерфейса командной строки (CLI) AWS

Если на вашем сервере или в среде разработки установлен AWS CLI, вы можете использовать его для загрузки файлов в корзину S3 непосредственно из командной строки. Вот пример:

aws s3 cp /path/to/file.txt s3://your-bucket-name/file.txt

Убедитесь, что вы заранее настроили интерфейс командной строки AWS с необходимыми учетными данными и регионом.

В этой статье мы рассмотрели три различных метода загрузки файлов в корзину S3 с помощью PHP. Независимо от того, предпочитаете ли вы использовать AWS SDK для PHP, cURL или интерфейс командной строки AWS, у вас есть несколько вариантов выполнения этой задачи. Выберите метод, который соответствует требованиям вашего проекта и рабочему процессу разработки. Приятного кодирования!