Обзор

Введение

Движки хранения используются для сохранения файлов в конкретные сервисы, включая локальное хранилище (на жёстком диске сервера), облачные хранилища и т. п.

Перед загрузкой любых файлов необходимо настроить движок хранения. Во время установки система автоматически добавляет движок локального хранилища, который можно использовать сразу. Также вы можете добавить новые движки или изменить параметры существующих.

Типы движков хранения

В настоящее время NocoBase встроенно поддерживает следующие типы движков:

Во время установки система автоматически добавляет движок локального хранилища, который можно использовать сразу. Также вы можете добавить новые движки или изменить параметры существующих.

Общие параметры

Помимо специфических параметров разных типов движков, есть общие параметры (на примере локального хранилища):

Пример конфигурации движка хранения файлов

Название

Имя движка хранения для удобства различения людьми.

Системное имя

Системное имя движка хранения, используемое системой для идентификации. Оно должно быть уникальным в пределах системы. Если оставить пустым, система автоматически сгенерирует случайное значение.

Публичный префикс URL

Префикс публично доступного URL для файла. Это может быть базовый URL CDN, например: "https://cdn.nocobase.com/app" (без завершающего "/").

Путь

Относительный путь, используемый при хранении файлов. Эта часть также автоматически добавляется к итоговому URL при доступе. Например: "user/avatar" (без начальных и конечных "/").

Ограничение размера файла

Лимит размера файлов, загружаемых в этот движок хранения. Файлы, превышающие лимит, загрузить нельзя. Лимит по умолчанию — 20MB; его можно увеличить максимум до 1GB.

Типы файлов

Вы можете ограничить типы файлов, которые можно загружать, используя синтаксис MIME. Например, image/* означает файлы изображений. Несколько типов можно разделять запятыми, например: image/*, application/pdf — разрешает изображения и PDF.

Движок хранения по умолчанию

Если включено, этот движок становится движком хранения по умолчанию в системе. Когда поле вложения или коллекция файлов не указывает движок хранения, загруженные файлы сохраняются в движок по умолчанию. Движок по умолчанию нельзя удалить.

Сохранять файл при удалении записи

Если включено, загруженный файл в движке хранения будет сохранён даже при удалении записи данных во вложении или коллекции файлов. По умолчанию опция выключена — это означает, что файл в движке хранения будет удалён вместе с записью.

Подсказка

Если выбран «Исходный URL», итоговый адрес хранилища формируется из нескольких частей:

<Публичный префикс URL>/<Путь>/<Имя файла><Расширение>

Например: https://cdn.nocobase.com/app/user/avatar/20240529115151.png.

Если выбран «URL NocoBase», запись файла возвращает путь NocoBase в формате /files/.... При обращении к сервису хранения по-прежнему используется указанная выше конфигурация.

URL файлов и контроль доступа

Движок хранения может возвращать URL NocoBase или исходный URL сервиса хранения. По умолчанию используется URL NocoBase. Выбирайте исходный URL только тогда, когда внешнему сервису необходимо напрямую использовать адрес хранилища.

Эта настройка применяется отдельно к каждому движку хранения. После сохранения и существующие, и новые загруженные файлы этого движка возвращают URL в выбранном формате. Файлы не перемещаются и не загружаются повторно.

Настройка URL файла

URL NocoBase

Запись файла возвращает путь доступа, предоставленный NocoBase, например:

/files/main/main/attachments/1.png

Запросы к этому URL сначала проходят через NocoBase и учитывают разрешения на просмотр, настроенные для соответствующей записи файла. Только после успешной проверки разрешений NocoBase читает файл или перенаправляет на адрес, сформированный сервисом хранения.

Это рекомендуемый вариант по умолчанию. Запись файла возвращает путь NocoBase, поэтому вызывающей стороне не нужно знать, используется локальное или облачное хранилище.

Исходный URL

Запись файла напрямую возвращает адрес, сформированный сервисом хранения, например:

https://storage.example.com/path/to/file.png

Этот URL не проходит через NocoBase и не проверяет разрешения на просмотр записи файла. Для локального хранилища это адрес локального статического файла, а для облачного — обычно адрес объектного хранилища или CDN.

Выбирайте исходный URL только тогда, когда Markdown, внешней странице или стороннему сервису необходимо напрямую использовать адрес хранилища.

Примечание

После выбора исходного URL любой пользователь с действующим URL может обойти проверку разрешений NocoBase и получить доступ к файлу. Если URL не содержит подписи и срока действия, убедитесь, что бакет и файл доступны для публичного чтения.

Разрешить публичный доступ

«Разрешить публичный доступ» действует только при выборе «URL NocoBase». Если включить эту опцию, движок по-прежнему возвращает URL NocoBase, но NocoBase больше не проверяет разрешения записи файла при обращении к URL. Любой пользователь с URL сможет открыть файл.

Эта опция не изменяет настройки публичного чтения самого сервиса хранения. Она определяет только то, проверяет ли NocoBase разрешения записи файла.

Как выбрать

СценарийURL файлаРазрешить публичный доступ
Файлы должны учитывать ролевые разрешения и разрешения на данныеURL NocoBaseВыключено
Нужен публично доступный адрес файла NocoBaseURL NocoBaseВключено
Markdown, внешняя страница или сторонний сервис должны напрямую читать адрес хранилищаИсходный URLНе применяется
Примечание

Локальное хранилище, Amazon S3, Aliyun OSS и Tencent COS не создают временные подписанные URL. Даже если используются URL NocoBase и разрешения записи файла, пользователь, уже получивший исходный адрес сервиса хранения, по-прежнему может открыть файл напрямую.

Для договоров, документов, внутренних материалов и других непубличных файлов используйте S3 Pro и его отдельные настройки контроля доступа.

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