S3 Object Storage: сравнение провайдеров и интеграция с PHP

Облако и DevOps · 19.04.2026
S3 Object Storage: сравнение провайдеров и интеграция с PHP

Облачное хранилище объектов: сравнение S3-провайдеров

Объектное хранилище (Object Storage) — оптимальный способ хранить статику, медиафайлы, бэкапы и ML-датасеты. Все провайдеры используют совместимый с S3 API, что упрощает смену провайдера.

Сравнение S3-провайдеров

ПровайдерЦена (GB/мес)Трафик исходящийРегион
Hetzner Object Storage€0.0049€0.010/GB (первые 1TB бесплатно)Германия, Финляндия
Backblaze B2$0.006$0.01/GBСША, ЕС
Cloudflare R2$0.015БЕСПЛАТНОГлобально
DigitalOcean Spaces$0.020$0.01/GB (первые 1TB бесплатно)США, ЕС, Азия
AWS S3$0.023$0.09/GBГлобально

Cloudflare R2: бесплатный исходящий трафик

# R2 через rclone
[cloudflare-r2]
type = s3
provider = Cloudflare
access_key_id = YOUR_R2_ACCESS_KEY
secret_access_key = YOUR_R2_SECRET_KEY
endpoint = https://ACCOUNT_ID.r2.cloudflarestorage.com
region = auto

Подключение к WordPress (WP Offload Media)

# wp-config.php
define('AS3CF_SETTINGS', serialize([
    'provider'    => 's3',
    'access-key-id'     => 'YOUR_KEY',
    'secret-access-key' => 'YOUR_SECRET',
    'bucket'      => 'my-wp-media',
    'region'      => 'eu-central-1',
    'domain'      => 'path',  // или custom domain через CDN
]));

PHP: загрузка файлов в S3

use Aws\S3\S3Client;

$s3 = new S3Client([
    'version'     => 'latest',
    'region'      => 'eu-central-1',
    'endpoint'    => 'https://YOUR_ENDPOINT',
    'credentials' => ['key' => 'KEY', 'secret' => 'SECRET'],
    'use_path_style_endpoint' => true,
]);

// Загрузить файл
$s3->putObject([
    'Bucket'      => 'my-bucket',
    'Key'         => 'uploads/' . basename($_FILES['file']['name']),
    'SourceFile'  => $_FILES['file']['tmp_name'],
    'ACL'         => 'public-read',
    'ContentType' => $_FILES['file']['type'],
]);

// Получить публичный URL
$url = $s3->getObjectUrl('my-bucket', 'uploads/photo.jpg');
Рекомендация: Для европейских клиентов используйте Hetzner Object Storage (дешевле всего при хранении) или Cloudflare R2 (если важен исходящий трафик). Оба совместимы с AWS S3 SDK.
← Назад в базу знаний Задать вопрос поддержке