Чем заменить модуль Upload в 6-ке?

Главные вкладки

Аватар пользователя PC_M@niac PC_M@niac 24 декабря 2007 в 21:23

Собственно говоря встал вопрос ребром.

Сразу скажу что меня не устраивает в Upload module:
1. Нет возможности структурировать загружаемые файлы (все они сваливаются в бесхозную кучу)
2. Нет возможности ограничивать доступ к отдельным файлам
3. Все файлы лежат, так сказать, в одном адресном пространстве и одинаковые имена файлов недопустимы даже если они загружены разными нодами
4. При удалении ноды не удаляются связанные с ней файлы.

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

На 4.0 у меня была связка:
для файлов fscache + filestore2. Плюсы: организованное хранилище файлов, страница со списком и рейтинговые блоки. Минусы: файло складывается в систему подкаталогов, именуемую на основании MD5 хэша что усложняет "ручную уборку".
для картинок image + img_assist - почти визифиг

На 4.7 я использую:
для файлов disknode + самописный disknode_page (генерирует страницу со всеми дискнодами и блок Top10). Плюсы: область действия ссылки ограничена нодой и соответственно правами на доступ к ней, есть страница со списком и рейтинговый блок (уже сам дописывал). Минусы: файло нужно заливать самому по FTP но благодаря этому добавляется ещё один плюс: файло легко структурировать.
image + image_gallery + img_assist для картинок - как и раньше почти визифиг.

На 5.5 использую CCK + FileField + Image. Плюсы: легко структурировать закачанные файлы на основании настроек типов контента. Минусы: никакого намёка на визифиг, жёстко заданные поля.

Как быть с 6-кой? Уж очень хочется структурированности, разделения адресных пространств, ограничения доступа и не такой жёсткости как в CCK.

Комментарии

Аватар пользователя PC_M@niac PC_M@niac 25 декабря 2007 в 16:53

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

А ведь самое простое и само собой напрашивающееся решение - это доработать модуль Upload, чтобы он для каждой ноды создавал отдельный подкаталог и все файлы лил туда. Так и проще за ними следить и потом подчищать при удалении ноды (пусть даже и ручками) и конфликты имён разршатся. В общем очень нужное дело, вот только кто-бы взялся)

Аватар пользователя clubwave.ru clubwave.ru 2 января 2008 в 16:11

по каждому пункту:

1. структурируются файлы в бд, при помощи привязки к нодам. То, что не нужно создавать лишние папки и т.п. при добавлении файла - большо плюс!

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

3. не вижу ничего плохого в этом, но вам виднее

4. при удалении нодов файлы удаляются.. по крайней мере должны

Аватар пользователя kiev1 kiev1 2 января 2008 в 19:36

> То, что не нужно создавать лишние папки и т.п. при добавлении файла - большо плюс

это большой минус - так как .максимальное количество файлов в одной системной папке не бесконечно!

Аватар пользователя Natalie Natalie 3 января 2008 в 8:05

Clubwave, к пользователю

Из changelog:

File handling improvements:
* Entries in the files table are now keyed to a user, and not a node.
* Added re-usable validation functions to check for uploaded file sizes,
extensions, and image resolution.
* Added ability to create and remove temporary files during a cron job.

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 15 февраля 2008 в 18:26

Конечно все прикрепленные к ноде файлы удаляются при ее удалении!
Дело в том, что в шестерке помимо таблицы files c привязкой файлов к пользователям, есть еще и таблица upload в которой содержится информация о том к каким нодам какой файл прикреплен.