При інтеграції Яндекс Object Storage з 1С-Бітрікс розробники часто стикаються з неочевидними проблемами: несумісністю підписів SigV4, блокуваннями CORS при завантаженні файлів з браузера, некоректною роботою кешування через CDN. Типовий магазин на Бітріксі зберігає в /upload/ від 10 до 50 ГБ зображень товарів. Перенесення в хмарне S3-сховище знижує навантаження на сервер на 40% та прискорює завантаження сторінок каталогу в 2–3 рази. Ми налаштовуємо хмарне сховище під ключ: від створення сервісного акаунту до підключення CDN. Наш досвід включає понад 50 проєктів для інтернет-магазинів та корпоративних порталів. Усуваємо ці проблеми за 2–3 дні, гарантуючи сумісність з будь-якими компонентами Бітрікса. Вартість зберігання 1 ГБ у Яндекс Object Storage — від $1–1ів на місяць, що в кілька разів дешевше виділеного дискового масиву.
Параметри підключення
Endpoint Яндекс Object Storage: https://storage.yandexcloud.net. Регіон: ru-central1. Формат публічного URL: https://[bucket].storage.yandexcloud.net/[key] — virtual hosted style.
У /bitrix/admin/main_cloud_storage.php вкажіть:
- Тип сховища: Amazon S3 (сумісно)
- Endpoint:
https://storage.yandexcloud.net - Region:
ru-central1 - Access Key: ідентифікатор статичного ключа з консолі Яндекс.Облако
- Secret Key: секретний ключ
- Bucket: ім'я бакету
Створення сервісного акаунту та ключів — у консолі Яндекс.Облако: IAM → Сервісні акаунти → Створити → Видати роль storage.editor на бакет → Створити статичний ключ доступу.
Налаштування S3-сумісного сховища
Модуль main.cloudstorages використовує AWS SDK PHP. При підключенні до Яндекс Object Storage SDK за замовчуванням може застосувати невірну версію підпису. Яндекс підтримує лише Signature Version 4 (SigV4), а SDK для кастомних endpoint іноді намагається використовувати SigV2. Без явного зазначення підпису авторизація не проходить. Виправлення — додати параметр 'signature' => 'v4' у конфігурацію клієнта:
$s3Client = new \Aws\S3\S3Client([ 'version' => 'latest', 'region' => 'ru-central1', 'endpoint' => 'https://storage.yandexcloud.net', 'signature' => 'v4', 'credentials' => [ 'key' => $accessKey, 'secret' => $secretKey, ], ]); Якщо інтерфейс модуля не дозволяє передати цей параметр, ми редагуємо клас-провайдер (з бекапом) або використовуємо успадкування. Такий підхід перевірено на десятках проєктів.
Виправлення помилок підпису SigV4
В офіційній документації 1С-Бітрікс немає готового рішення. На практиці допомагає патч /bitrix/modules/main/lib/cloudstorages/amazon.php: у конструкторі клієнта додати 'signature' => 'v4'. Або перевизначити метод getS3Client() у успадкованому класі. Джерело: документація Яндекс Object Storage — SigV4 обов'язковий.
Налаштування CORS для завантажень
При використанні presigned URL для прямого завантаження в Object Storage браузери блокують запити без CORS-заголовків. У консолі Яндекс.Облако, розділ "CORS", додайте правило:
<CORSConfiguration> <CORSRule> <AllowedOrigin>https://example.com</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <AllowedHeader>*</AllowedHeader> <MaxAgeSeconds>3600</MaxAgeSeconds> </CORSRule> </CORSConfiguration> Без цього налаштування TinyMCE та кастомні форми завантаження видадуть помилку. Ми включаємо CORS-конфігурацію в стандартний набір робіт.
Lifecycle-політики для тимчасових файлів
Яндекс Object Storage підтримує автоматичне видалення файлів старше N днів. Це корисно для папок /upload/tmp/ та /upload/import/, які Бітрікс не чистить. Приклад правила:
Приклад lifecycle-політики в JSON
{ "Rules": [{ "ID": "cleanup-tmp", "Status": "Enabled", "Filter": { "Prefix": "upload/tmp/" }, "Expiration": { "Days": 7 } }] } Налаштування через консоль або API. Економія місця — до 30% на місяць на типовому магазині. Для магазину з 20 ГБ тимчасових файлів це економія близько $5–8ів на місяць при зберіганні в хмарі.
Налаштування CDN
Яндекс Cloud CDN інтегрується з Object Storage за пару хвилин: створюєте CDN-ресурс з джерелом-бакетом, вказуєте домен CDN в опції cloud_storage_cdn_url. Після цього Бітрікс формує публічні URL через CDN, а файли роздаються з найближчої точки присутності. Параметр в коді:
\Bitrix\Main\Config\Option::set('main', 'cloud_storage_cdn_url', 'https://cdn.example.com'); Запис файлів йде напряму в бакет, читання — через CDN. Для ресайзів зображень це дає приріст швидкості завантаження сторінок каталогу в 2–3 рази. Для російських проєктів Яндекс CDN пропонує кращі показники latency порівняно з CloudFront — затримки нижчі на 30% завдяки дата-центрам у Москві та Санкт-Петербурзі.
Що входить у налаштування під ключ
Ми виконуємо повний цикл: створення сервісного акаунту, налаштування CORS, патч підпису, встановлення lifecycle-політик, інтеграцію CDN. Надаємо документацію з конфігурації та бекап вихідних файлів. Гарантуємо збереження даних та роботу після оновлень Бітрікса.
| Параметр | Яндекс Object Storage | AWS S3 |
|---|---|---|
| Endpoint | storage.yandexcloud.net | s3.amazonaws.com |
| Регіон | ru-central1 (один) | us-east-1 та ін. |
| Підпис | Тільки SigV4 | SigV2/V4 |
| CORS | Обов'язкова для браузера | Аналогічно |
| CDN | Яндекс Cloud CDN | CloudFront |
| Показник | Без CDN | З CDN |
|---|---|---|
| Час завантаження зображення (500 КБ) | ~1.2 с | ~0.4 с |
| Навантаження на сервер | 100% | до 20% |
| Вартість трафіку (за 1 ТБ) | ~$9–13 | ~$5–8 |
Зв'яжіться з нами для консультації — ми налаштуємо Object Storage за 2–3 дні, включаючи вихідні. Замовте налаштування та отримайте надійне хмарне сховище з CDN, яке прискорить ваш магазин та заощадить бюджет.







