Стабильный URL
File managerCommunity Edition+Файлы, управляемые хранилищем NocoBase, доступны через стабильный URL. NocoBase проверяет запись файла и права доступа, а затем перенаправляет запрос на фактический URL, созданный хранилищем.
Формат
При APP_PUBLIC_PATH=/nocobase путь начинается с /nocobase/files/. ID и расширение нельзя изменить после создания, поэтому URL остаётся стабильным, пока существует запись.
Поведение в NocoBase
- Поля вложений, таблицы файлов и HTTP API воз вращают стабильные значения
urlиpreview - Markdown сохраняет стабильный URL и поддерживает закрытые S3, OSS, COS и S3 Pro
- Поле URL вложения сохраняет введённые вручную внешние URL, а для управляемых файлов использует стабильный URL
- Обычный предпросмотр использует текущую сессию и права NocoBase
- Публичная форма даёт ограниченный доступ только к файлам, загруженным в текущей сессии формы
Предпросмотр Office
Microsoft Office Online Viewer не может использовать cookie пользователя NocoBase. При открытии NocoBase сначала проверяет право просмотра, а затем выдаёт временный URL, привязанный к файлу. По умолчанию он действует 10 минут; параметр TEMPORARY_FILE_ACCESS_EXPIRES_IN допускает значение от 5 до 10 минут.
Не сохраняйте временный URL в полях, Markdown или бизнес-данных и не используйте его как ссылку общего доступа.
Важные замечания
- Стабильный не означает публичный; получателю всё равно нужны права
- Удаление или перенос записи делает старый URL недействительным
- Ответ представляет собой перенаправление
302, которому должен следовать клиент - Не сохраняйте
302 LocationиtemporaryAccessToken - Обратный прокси должен передавать маршрут
/files/в пределахAPP_PUBLIC_PATHв NocoBase. При развёртывании в подпути также сохраните совместимый корневой маршрут/files/. Конфигурации, созданные NocoBase CLI, автоматически включают оба правила - В развёртываниях, где страницы обращаются к API между разными origin (
API_BASE_URLуказывает на другой origin), origin страницы нужно добавить вCORS_ORIGIN_WHITELIST. Иначе cookie входа не будет сохранена, а stable URL вернёт403из-за отсутствия учётных данных. См. Переменные окружения - Используйте отдельный
hostnameдля каждого независимого сервиса NocoBase, а не различайте сервисы только по порту. Cookies браузера не изолируются по портам; см. Развёртывание в рабочей среде - Подприложения в одном развёртывании NocoBase различаются по имени приложения и не требуют отдельных hostnames. Однако независимый сервис на другом порт у всё равно должен быть изолирован по hostname, если он содержит основное или дочернее приложение с тем же именем
Связанные ссылки
- HTTP API — Загрузка и получение файлов
- Предпросмотр файлов — Поддерживаемые форматы
- Предпросмотр Office — Настройка Office Viewer
- Хранилища — Настройка файлового хранилища

