При интеграции Яндекс 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, которое ускорит ваш магазин и сэкономит бюджет.







