Однако текущий тип подключения к облачному хранилищу, совместимый с Minio, выполнял обмен информацией с ошибками, не отражая изменения в облачном хранилище. Эта проблема усугублялась необходимостью обмениваться информацией только с конкретного дискового пространства корпоративного портала, тогда как система Битрикс24 не имеет гибких настроек обмена.
Команда разработчиков проанализировала возможные пути решения. На текущий момент обмен с Minio доступен только в виде подключения S3 Compatible Storage, входящего в ядро продукта Битрикс24, и в виде пользовательского решения gvinston/minio_bitrix. Первый вариант не решает проблему обмена данных с определённых дисковых пространств и при попытке расширения функционала неизбежно будет затираться с выпуском новых обновлений. Второй вариант оказался функционально ограниченным и не поддерживал работу с модулем “Диск”.
Было принято решение реализовать собственный класс-подключение к облачному хранилищу по аналогии с S3 Compatible Storage и оформить работу нового подключения в отдельном модуле. Такое решение обеспечивает возможность расширить стандартный функционал, настроить его под нужды клиента и гарантировать корректную работу при обновлениях системы.
В модуле были вынесены настройки для выбора дискового пространства, откуда выполняется передача данных в облако. В новом подключении была описана логика отправки данных и проверка выгрузки с корректного дискового пространства.
Результат
Новый тип подключения к облачному хранилищу был успешно выведен в административном интерфейсе с помощью обработчика событий.
Это позволило расширить стандартный функционал ядра Bitrix Framework, добавив новое подключение к хранилищу Minio. В результате клиент получил отдельный облачный диск без больших затрат, сохранив производительность и стабильность системы. Решение было оформлено в виде отдельного модуля, что обеспечило защиту клиента от потенциальных рисков во время обновления системы.