«Облачное хранилище файлов» — компонент для InstantCMS 2.18.2, который добавляет универсальное поле загрузки файлов в Облако Mail, Яндекс Диск или Google Drive.
Поле можно подключить к статьям, товарам, объявлениям, документам и любым другим типам контента. Пользователь загружает файл в обычной форме InstantCMS, после чего компонент передаёт его выбранному облачному провайдеру. На диске сайта постоянная копия не создаётся и не забивает ресурсы сервера.
Для чего это нужно
Дополнение подходит сайтам, которые публикуют архивы, инструкции, документы, таблицы, презентации и другие загружаемые материалы, но не хотят хранить весь объём файлов на хостинге.
Облачное хранение помогает:
— экономить дисковое пространство сервера;
— отделить файлы от файловой системы сайта;
— использовать привычные облачные аккаунты;
— централизованно управлять подключениями;
— сохранить обычную форму добавления и редактирования материалов InstantCMS.
Поддерживаемые хранилища
- Облако Mail
- Яндекс Диск
- Google Drive
Для каждого поля можно использовать общий провайдер компонента или выбрать отдельное подключение.
Как это работает
1. Администратор один раз подключает облачный аккаунт в настройках компонента.
2. В нужном типе контента создаётся поле «Файл в облачном хранилище».
3. Автор материала выбирает файл и при необходимости задаёт собственный текст ссылки.
4. Компонент передаёт файл в облако и сохраняет в материале только служебные метаданные.
5. Посетитель скачивает файл через защищённую ссылку сайта.
6. Перед выдачей файла повторно проверяются подпись ссылки, состояние материала, права доступа и приватность.
Основные преимущества
— файлы не занимают постоянное место в каталоге `upload`;
— встроенные инструкции подключения всех провайдеров;
— автоматическое создание папок;
— гибкая структура путей по типу контента, полю и дате;
— популярные архивы, документы, таблицы и презентации разрешены по умолчанию, но настраиваются админом;
— размер по умолчанию настраиваются админом, но с учётом серверного ограничения PHP;
— автоматические иконки форматов;
— необязательный собственный анкор ссылки;
— отображение имени, размера и счётчика скачиваний настраивается отдельно для каждого поля;
— административный список всех файлов с поиском, сортировкой и ссылками на исходное облако;
— удаление файла из облака при подтверждённом удалении или замене в материале;
— пароли, секреты и OAuth-токены хранятся в зашифрованном виде;
— совместимость со стандартными шаблонами default и modern.
Безопасность
Ссылка на скачивание подписывается и привязывается к типу контента, полю, материалу и конкретному файлу. Одной подписи недостаточно: при каждом скачивании компонент заново проверяет доступность материала для текущего пользователя.
Компонент не показывает провайдерские токены посетителям и не записывает пароли в значения материалов или URL. OAuth-подключения доступны только администратору.
Установка
Дополнение устанавливается штатным ZIP-пакетом InstantCMS. После установки достаточно подключить провайдера и добавить новое поле к нужному типу контента. Демонстрационные материалы и поля автоматически не создаются.
Совместимость
— InstantCMS 2.18.2;
— PHP 7.2+;
— Облако Mail, Яндекс Диск и Google Drive.