Оптимизация файлового хранилища 1С-Битрикс с S3

Диск на сервере заканчивается. Или нужно разнести несколько серверов и синхронизировать загруженные файлы между ними. Перенос `/upload/` в S3-совместимое хранилище (MinIO, Selectel, VK Cloud, Cloudflare R2) решает обе задачи — но только если настроить правильно, иначе Битрикс начнёт записывать пути
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Оптимизация файлового хранилища 1С-Битрикс с S3
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1164

Диск на сервере заканчивается. Или нужно разнести несколько серверов и синхронизировать загруженные файлы между ними. Перенос /upload/ в S3-совместимое хранилище (MinIO, Selectel, VK Cloud, Cloudflare R2) решает обе задачи — но только если настроить правильно, иначе Битрикс начнёт записывать пути к файлам некорректно. Мы часто видим проекты, где после переноса ломаются ссылки на изображения или падает производительность из-за неверной адресации бакета. Наш опыт работы с Битрикс — более 10 лет, мы настраивали S3 для проектов с каталогами на 100 000+ товаров, и знаем все подводные камни. Для быстрой и безопасной настройки свяжитесь с нами.

Почему стоит перенести файлы в S3?

Локальный диск — это узкое горлышко. Он ограничен по объёму, не масштабируется и требует ручного мониторинга. S3-хранилище даёт практически неограниченное пространство, автоматическую репликацию и доступ через API. Для Битрикс это особенно актуально, если сайт работает в кластере — все серверы видят единую файловую систему без NFS-кошмаров. S3-хранилище в 2-3 раза дешевле локального SSD, а скорость загрузки не уступает при правильной настройке CDN.

Сравнение локального хранения и S3:

Параметр Локальный диск S3-хранилище
Ёмкость Физический лимит сервера От нескольких ТБ до петабайт
Отказоустойчивость Зависит от RAID Автоматическая репликация в разные зоны
Скорость для новых файлов Ограничена IOPS диска Зависит от провайдера, обычно 100+ МБ/с
Цена за 1 ТБ ~$50/мес (SSD) ~$20/мес (S3 стандарт)
Интеграция с Битрикс Из коробки Через модуль main.cloudstorages

Как настроить S3-хранилище для 1С-Битрикс?

Битрикс поддерживает облачные хранилища через модуль main.cloudstorages (официальная документация на dev.1c-bitrix.ru). Он абстрагирует работу с файлами через провайдеров. Для S3-совместимых хранилищ используется провайдер amazon (совместимость на уровне API S3).

Настройка провайдера производится в /bitrix/admin/main_cloud_storage.php. Параметры для S3-совместимого хранилища:

  • Endpoint URL — URL сервиса (для MinIO: http://minio:9000, для Selectel: https://s3.selectel.ru)
  • Key — Access Key ID
  • Secret — Secret Access Key
  • Bucket — имя бакета
  • Region — регион (для кастомных S3 часто us-east-1)

Конфигурация в коде (для автоматизации настройки):

\Bitrix\Main\Config\Option::set('main', 'cloud_storage_active', 'Y'); \Bitrix\Main\Config\Option::set('main', 'cloud_storage_provider', 'amazon'); \Bitrix\Main\Config\Option::set('main', 'cloud_storage_endpoint', 'https://s3.example.com'); \Bitrix\Main\Config\Option::set('main', 'cloud_storage_access_key', 'ACCESS_KEY'); \Bitrix\Main\Config\Option::set('main', 'cloud_storage_secret_key', 'SECRET_KEY'); \Bitrix\Main\Config\Option::set('main', 'cloud_storage_bucket', 'bitrix-uploads'); \Bitrix\Main\Config\Option::set('main', 'cloud_storage_path', 'upload/'); 

Path style vs virtual hosted style: почему это важно

Самая частая проблема при подключении не-AWS S3 — неверная адресация бакета. AWS использует virtual hosted style: https://bucket.s3.amazonaws.com/key. Большинство S3-совместимых сервисов поддерживают path style: https://s3.example.com/bucket/key.

Стандартный модуль Битрикса использует virtual hosted style. Для сервисов, которые не поддерживают его (например, MinIO в локальной сети без wildcard DNS), нужно патчить класс провайдера /bitrix/modules/main/lib/cloudstorages/amazon.php — добавить параметр use_path_style_endpoint: true при инициализации AWS SDK:

$s3Client = new \Aws\S3\S3Client([ 'version' => 'latest', 'region' => $region, 'endpoint' => $endpoint, 'use_path_style_endpoint' => true, 'credentials' => [ 'key' => $accessKey, 'secret' => $secretKey, ], ]); 

Сравнение популярных S3-провайдеров для Битрикс:

Провайдер Endpoint Path style Цена за 1 ТБ/мес Особенности
MinIO http://minio:9000 Требуется Бесплатно (свой сервер) Локальная разработка, низкая задержка
Selectel https://s3.selectel.ru Поддерживается ~$22 Дата-центры в РФ, SLA 99.9%
VK Cloud https://hb.bizmrg.com Поддерживается ~$20 Интеграция с CDN, РФ
Cloudflare R2 https://<account>.r2.cloudflarestorage.com Поддерживается ~$15 Нет платы за исходящий трафик

Как перенести существующие файлы в S3?

После подключения хранилища Битрикс начинает загружать новые файлы в S3, но старые остаются локально. Для миграции используется встроенная утилита: /bitrix/admin/main_cloud_copy.php. Она запускает агент, который пакетами переносит файлы из /upload/ в хранилище и обновляет пути в b_file.

При переносе важно: поле SUBDIR в b_file хранит относительный путь файла. После миграции в S3 пути становятся URL-адресами бакета. Если миграция прервётся на середине, часть файлов будет в S3, часть — локально. Битрикс определяет источник файла по полю EXTERNAL_ID в b_file — если оно заполнено, файл считается облачным.

Публичный доступ и CDN

Файлы в S3 должны быть публично доступны для прямых ссылок на изображения. Настройка политики бакета (bucket policy) для публичного чтения:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bitrix-uploads/*" }] } 

Для подключения CDN перед бакетом (CloudFront, Cloudflare) в настройках модуля указывается параметр CDN_URL — Битрикс будет формировать публичные URL через CDN, а запись в S3 будет идти напрямую.

Что входит в услугу

Мы подключаем S3-хранилище под ключ. В работе:

  • Аудит текущей инфраструктуры и расчёт нагрузки
  • Настройка модуля main.cloudstorages с корректным endpoint и path style
  • Миграция существующих файлов из /upload/ с проверкой целостности
  • Настройка политик бакета и CDN (опционально)
  • Документация по доступам и конфигурации
  • Техническая поддержка на этапе внедрения

Наши инженеры сертифицированы по 1С-Битрикс и AWS. Гарантия на корректную работу файлового хранилища после переноса — если возникнут проблемы, исправляем бесплатно. Официальная документация 1С-Битрикс по облачным хранилищам.

Типичные ошибки при настройке S3

  1. Выбран virtual hosted style, который не поддерживается провайдером — файлы не загружаются.
  2. Не настроена политика бакета — пользователи видят 403 ошибки на изображения.
  3. Перенос выполнен без проверки b_file — пути остались локальными, файлы дублируются.
  4. Кэш перенесён в S3 — резкое падение производительности из-за задержек.

Сроки и стоимость

Настройка S3-хранилища занимает от 3 до 7 дней в зависимости от объёма файлов и необходимости миграции. Стоимость рассчитывается индивидуально после аудита. Оставьте заявку — мы оценим ваш проект и предложим оптимальное решение.

Закажите настройку S3-хранилища для вашего Битрикса — мы гарантируем корректную работу.

Обратитесь к нам, чтобы получить консультацию по настройке S3 для вашего Битрикс-проекта. Мы гарантируем стабильную работу файлового хранилища без сюрпризов.