Этот документ был переведён с помощью ИИ. Для получения точной информации обратитесь к английской версии.
Разработка расширений
Расширение движков хранения
Серверная часть
-
Наследование
StorageTypeСоздайте новый класс и реализуйте методы
make()иdelete(). При необходимости переопределите хукиgetFileURL(),getFileStream()иgetFileData().
Пример:
- Зарегистрировать новый тип
Внедрите новую реализацию хранилища в жизненный циклbeforeLoadилиloadплагина:
После регистрации конфигурация хранилища появится в ресурсе storages так же, как и встроенные типы. Конфигурацию, предоставляемую StorageType.defaults(), можно использовать для автозаполнения форм или инициализации записей по умолчанию.
Расширение типов файлов на фронтенде
Для загруженных файлов можно показывать разные варианты предпросмотра в интерфейсе в зависимости от типа файла. Поле вложений файлового менеджера имеет встроенный предпросмотр в браузере (внутри iframe), который поддерживает большинство ф орматов (изображения, видео, аудио и PDF) напрямую в браузере. Если формат не поддерживается браузером или требуется особое взаимодействие, можно расширить компонент предпросмотра по типу файла.
Пример
Например, если вы хотите интегрировать пользовательский онлайн-предпросмотр для файлов Office, можно использовать следующий код:
Здесь filePreviewTypes — это объект входа из @nocobase/plugin-file-manager/client для расширения предпросмотра файлов. Используйте метод add, чтобы добавить объект описания типа файла.
Каждый тип файла должен реализовать метод match() для проверки соответствия. В примере используется matchMimetype для проверки атрибута mimetype файла. Если он соответствует типу docx, файл считается подходящим. Если нет, будет использован встроенный механизм обработки типов.
Свойство Previewer в объекте описания типа — это компонент для предпросмотра. Когда тип файла совпадает, этот компонент рендерится в диалоге предпросмотра. Можно вернуть любой React-вид (например, iframe, плеер или график).
API
filePreviewTypes
filePreviewTypes — это глобальный экземпляр, импортируемый из @nocobase/plugin-file-manager/client:
filePreviewTypes.add()
Регистрирует новый объект описания типа файла в реестре типов файлов. Тип описания — FilePreviewType.
FilePreviewType
match()
Метод сопоставления формата файла.
Входной параметр file — это объект данных загруженного файла, содержащий свойства, полезные для проверки типа:
mimetype: описание mimetypeextname: расширение файла, включая "."path: относительный путь хранения файлаurl: URL файла
Возвращает boolean, указывающий на совпадение.
getThumbnailURL
Возвращает URL миниатюры для списка файлов. Если возвращаемое значение пустое, используется встроенное изображение-заполнитель.
Previewer
React-компонент для предпросмотра файлов.
Входные Props:
file: текущий объект файла (может быть строковым URL или объектом сurl/preview)index: индекс файла в спискеlist: список файлов

