Новый взгляд на хранение вложенных файлов

Пишите ваши предложения здесь.
Ответить
it@ivku.ru
Сообщения: 63
Зарегистрирован: 20 апр 2023, 10:16
Имя: Алексей
Откуда: Россия, Иваново

Новый взгляд на хранение вложенных файлов

Сообщение it@ivku.ru »

День добрый, уважаемые разработчики.
Я хотел бы попросить вас рассмотреть возможность немного изменить способ хранения файлов в вашей замечательной системе.
Сейчас все приложенные файлы хранятся непосредственно на сервере в папке uploads.
Однако обычно во всех конторах уже имеется свой samba сервак - под виндой или линухом.
Очень хотелось бы, чтобы приложенные в Руководитель файлы можно было хранить или привязывать именно туда.
*******************************************************
Смысл предложения:
1. на www сервере с Руководителем монтируется папка uploads как линк на файловую шару в режиме записи. У юзверей на эту шару есть доступ только в режиме чтения, у доверенных юзверей в режиме чтения/записи, но не удаления. Удалить или переименовать файл может только сисадмин и www сервер с Руководителем.
2. в момент, когда нужно прикрепить к документу (сущности) файлик, открывается окошко со списком файлов на файловой шаре и пользователь может выбрать, какой файлик из какой папки нужно прикрепить (прилинковать) к документу. Либо создать новый файл, но уже с нужным именем и в нужной папке.
Для юзверей будет удобно зайти в нужную папку по самбе (не через Руководитель) и увидеть там все файлики, относящиеся к данному проекту и поменять что-либо внутри нужного файла (если есть доступ).
Руководитель на сервере хранит только линки на файлы, которые вместе с конфой отлично бекапятся в маленький SQL файлик.
В результате имеем систему, где Руководитель можно реально бекапировать в виде SQL, а папки с файлами бекапятся вместе с файловой шарой средствами proxmox или как там у админа настроено.

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

Примечание:
я видел доработки, сделанные многоуважаемыми пользователями nruslan2 и Fait, но это немного не то.
Место хранения файлов все равно находится на www серваке. Можно конечно средствами команд mount тупо перелинковать папку uploads на нужную шару, но при этом нельзя при прикладывании файла указывать нужную папку и уже имеющийся файл либо создавать файлы в нужной папке.
На этом пока все. Извините за простыню текста. Хотелось бы узнать, что вы думаете по поводу данного предложения.
ktotut
Сообщения: 156
Зарегистрирован: 17 май 2022, 09:23
Имя: Дмитрий Пономаренко
Откуда: РФ Оренбург

Re: Новый взгляд на хранение вложенных файлов

Сообщение ktotut »

it@ivku.ru писал(а): 29 июл 2026, 10:55 День добрый, уважаемые разработчики.
Я хотел бы попросить вас рассмотреть возможность немного изменить способ хранения файлов в вашей замечательной системе.
Сейчас все приложенные файлы хранятся непосредственно на сервере в папке uploads.
Однако обычно во всех конторах уже имеется свой samba сервак - под виндой или линухом.
Очень хотелось бы, чтобы приложенные в Руководитель файлы можно было хранить или привязывать именно туда.
*******************************************************
Смысл предложения:
1. на www сервере с Руководителем монтируется папка uploads как линк на файловую шару в режиме записи. У юзверей на эту шару есть доступ только в режиме чтения, у доверенных юзверей в режиме чтения/записи, но не удаления. Удалить или переименовать файл может только сисадмин и www сервер с Руководителем.
2. в момент, когда нужно прикрепить к документу (сущности) файлик, открывается окошко со списком файлов на файловой шаре и пользователь может выбрать, какой файлик из какой папки нужно прикрепить (прилинковать) к документу. Либо создать новый файл, но уже с нужным именем и в нужной папке.
Для юзверей будет удобно зайти в нужную папку по самбе (не через Руководитель) и увидеть там все файлики, относящиеся к данному проекту и поменять что-либо внутри нужного файла (если есть доступ).
Руководитель на сервере хранит только линки на файлы, которые вместе с конфой отлично бекапятся в маленький SQL файлик.
В результате имеем систему, где Руководитель можно реально бекапировать в виде SQL, а папки с файлами бекапятся вместе с файловой шарой средствами proxmox или как там у админа настроено.

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

Примечание:
я видел доработки, сделанные многоуважаемыми пользователями nruslan2 и Fait, но это немного не то.
Место хранения файлов все равно находится на www серваке. Можно конечно средствами команд mount тупо перелинковать папку uploads на нужную шару, но при этом нельзя при прикладывании файла указывать нужную папку и уже имеющийся файл либо создавать файлы в нужной папке.
На этом пока все. Извините за простыню текста. Хотелось бы узнать, что вы думаете по поводу данного предложения.
Доброго дня!

Вот у меня есть такой плагин.
Коротко: приложенные к записям файлы больше не лежат
в uploads. В базе Руководителя хранится только ссылка — подключение, папка и имя файла.
Сам файл всё время находится на вашей samba-шаре, там же, где его видят люди из проводника.
Возможности:

1. «Хранить или привязывать файлы на файловой шаре»

Плагин добавляет новый тип поля — «Файл на сетевом диске (SMB)». Работает тремя
способами на выбор: шара, смонтированная к серверу (mount -t cifs, fstab, UNC под
Windows), расширение PHP smbclient или консольная утилита smbclient. Достаточно
одного.

Рекомендую смонтированную папку: быстрее всех и правами рулит операционная
система, а не PHP.

2. «Открывается окошко со списком файлов, пользователь выбирает, какой файлик из какой
папки прилинковать»

В форме записи кнопка «Выбрать файл на сетевом диске» открывает
окно с содержимым шары: навигация по папкам, хлебные крошки, галочки на файлах,
кнопка «Прикрепить выбранные». Файлы не копируются и не перемещаются — сохраняется
только путь. Уже прикреплённые помечаются, повторно выбрать нельзя.

3. «Либо создать новый файл, но уже с нужным именем и в нужной папке»

В том же окне есть загрузка файла в текущую папку и создание папок. При загрузке
можно сразу задать имя, под которым файл ляжет на шару. Если файл с таким именем уже
есть — к имени добавляется номер, ничего не перезатирается. На диске www-сервера
файл не остаётся вообще.

4. «Руководитель хранит только линки, которые отлично бекапятся в маленький SQL»

Три служебные таблицы, в них строки вида «подключение + папка + имя».
SQL-дамп остаётся маленьким, а файлы бекапятся вместе с шарой средствами инфраструктуры.

5. «Юзверям удобно зайти в нужную папку по самбе и увидеть там все файлики проекта»

Под каждым файлом в записи выводится полный сетевой путь \\server\share\папка\файл.doc —
можно скопировать и открыть напрямую. Скачать через саму CRM тоже можно, файл при этом
отдаётся потоком с шары.

6. «Удалить или переименовать может только сисадмин и www-сервер»

Со стороны плагина:
удаление файла с шары по умолчанию выключено, включается отдельной галочкой в поле
и отдельным правом группы доступа, и даже тогда работает только для файлов, которые
загрузили через CRM. Файл, который просто выбрали на шаре, плагин не удалит никогда.

--------------------------------------------------------------------------------
ЧТО ЕЩЁ УМЕЕТ
--------------------------------------------------------------------------------

- Несколько подключений: разные шары для разных сущностей и отделов.

- Папка по умолчанию с подстановками: {entity_id}, {field_id}, {item_id}, {Y}, {m}, {d}.
Например «Договоры/{Y}/{item_id}» — у каждого договора своя папка, создаётся сама
при первой загрузке файла. Можно запретить пользователю выходить выше неё.

- Права по группам доступа, отдельно на каждое подключение: просмотр шары, загрузка
файлов, создание папок, открепление, удаление с шары. Плюс «папка группы» — например,
отдел продаж видит только своё поддерево.

- Фильтр типов файлов: чёрный список на уровне подключения (по умолчанию все исполняемые
типы) и белый список на уровне поля. Ограничение размера загружаемого файла.

- Проверка подключения одной кнопкой: показывает, доступна ли шара и что в ней лежит.
Ошибки записи пишутся в log/smb.txt.

- Русский и английский интерфейс.

- При удалении записи ссылки чистятся автоматически, при копировании записи — не
дублируются.
Вложения
Screenshot_7.jpg
Screenshot_6.jpg
Screenshot_9.jpg
Screenshot_5.jpg
Screenshot_4.jpg
Screenshot_3.jpg
Screenshot_2.jpg
Screenshot_1.jpg
--------
по всем вопросам пишите в личное сообщение или в мессенджеры на 89033988566
Ответить