Задать вопрос

Как хранить и показывать локальные файлы в CRM (frontend + backend)?

Здравствуйте. Вопрос для расширения кругозора.
Подскажите статьи, или идеи, как локально хранят файлы во всяких CRM, ERP, и т.д. А так же позволяют работать с файлами на фронте.
У меня сейчас сделано достаточно просто. Пользователь на фронте дает задачу на создание файла (например создать счет для заказа). Бек генерирует фаил, и кладет его в папку на общем диске, название папки равно ID заказа. (.../ORDERS/124/счет.xlsx). После чего пользователь может открыть фаил у себя на компьютере через фронт, так как файлы хранятся локально на общем диске. Сделано это немного коряво, через URL Protocol + скрипт powershell, на каждом компьютере.
У этого способа есть недостатки (как по мне).
1) Бэкенд не знает какие файлы у него есть, так как после создания файла он просто кладет его в папку.
2) Так же не получается узнать, какие файлы уже были созданы (Например для заказа это счет, накладная, ТТН, и т.д.), и не получается сделать пометку для пользователя (например "Для отгрузки заказа не хватает таких-то файлов")
3) Не известно, кто создал этот фаил, когда создал, когда редактировал, когда удалили фаил (а был ли он создан вообще)
4) Сам способ открытия локального файла из браузера, сделано через URL Protocol + скрипт powershell. Вроде как коряво, но в принципе работает.

Но есть и удобства.
1) Открытие файлов в один клик из браузера, в привычной тебе программе (Word, Excel, PDF reader, и т.д.)
2) Можно просто открыть папку с файлами, и оттуда скопировать, переслать, переименовать фаил.
3) Редактирование файлов на лету. (Открыл - изменил - Нажал кнопку сохранить)
4) Печать файлов, так же открыл фаил и нажал на кнопку печати.
5) Так же удобно складывать все подряд файлы в папку. Например открыл папку с работником, и накидал туда файлы со сканами документов. А потом их можно легко просмастривать.

Вроде все это работает. Но все это выглядит костыльно и коряво), хотелось бы узнать как это делают серьезные ребята. Слышан что можно хранить файлы в БД. Но плохо себе представляю как это делается. Особенно открытие, редактирование, печать файла.
Вопрос создан с целью просветления знаний.
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Хранить файлы в БД - это либо очень узкий кейс с файлами меньше 4 кб, либо некомпетентность.
В БД хранится информация о файлах.
Сами файлы складываются в папочку storage под хэшированным именем, а в БД хранится:
- их настоящее имя и расширение (возможно, тип)
- доступ (публичный или через скрипт после авторизации)
- принадлежность (не автор, а объект в бизнес-логике, которому этот файл принадлежит)
- ну, и та техническая информация, которая требуется (вот тут автор, время, правки etc.)
Соответственно, для фронта бэком генерируются ссылки на нужные файлы, публичные - прямые, непубличные - на роутер, который их обработает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы