Способ мониторинга загружаемых пользователями файлов 🖼️

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

На данный момент, насколько мне известно, единственные способы увидеть эти файлы — это:

  • Просмотр папки /uploads/

  • Использование поиска с фильтрами with:images или filetypes:ext1,ext2,ext3

  • Использование Data Explorer

Это не очень практичные способы мониторинга файлов, загружаемых на форум.

Я уже упоминал эту идею в другом месте, но лучше, если у неё будет отдельная тема.

Даже без полноценной медиатеки возможность отслеживать эти файлы была бы отличной.

Например, новый маршрут администратора, отображающий все недавно загруженные файлы с несколькими фильтрами:

  • Даты

  • Пользователи

  • Типы файлов

16 лайков

Это лишь доказательство концепции:

Плагин добавляет маршрут admin/uploads, доступный только администраторам, для просмотра и фильтрации загрузок пользователей по всему сайту.

Функционал:

  • Список всех загрузок с миниатюрами
  • Бесконечная прокрутка
  • Фильтрация по имени пользователя и датам

:warning: Код на 99% сгенерирован ИИ и не был действительно проверен. Не устанавливайте его, если не можете самостоятельно изучить код и убедиться в его безопасности.
Я не поддерживаю разработку плагинов с помощью ИИ людьми, не являющимися разработчиками, и этот плагин следует рассматривать исключительно как доказательство концепции.

Однако, если разработчик захочет взглянуть на этот, вероятно, ужасный код или использовать его как источник вдохновения для более серьёзного и надёжного проекта, пожалуйста, делайте это. :+1:

Репозиторий: https://github.com/Canapin/discourse-uploads-library


Редакция: теперь существует полноценный плагин, использующий некоторые актуальные функции (:framed_picture: Галерея тем).
Если цель полностью отличается от темы #feature, этот плагин также показывает загрузки пользователей с фильтрами и ограничениями в удобном для просмотра интерфейсе.

11 лайков

Я проголосовал за эту функцию, потому что считаю, что по мере роста числа пользователей форума загрузка медиафайлов, требующая всё большего объёма хранилища, в конечном итоге приведёт к необходимости обновления серверов, что, в свою очередь, увеличит затраты на содержание форума. В конце концов, большее количество пользователей может потребовать больше оперативной памяти или вычислительной мощности, но я подозреваю, что именно объём хранилища станет первым фактором, вынуждающим к обновлению. Возможность легко просматривать загружаемые файлы обеспечила бы уверенность в том, что хранилище не расходуется впустую. Одно изображение занимает столько же места, сколько очень большой объём текста.

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

Эта недавняя тема об оптимизации файлов была для меня интересной, так как я был достаточно уверен, что Discourse уменьшает разрешение и сжимает очень большие изображения, но мне стало спокойнее, когда я узнал больше. В Discourse есть много хороших инструментов для ограничения максимального размера загружаемых файлов. Какой-то инструмент для просмотра, пакетной оптимизации и возможного удаления изображений стал бы мощным административным инструментом для Discourse.

4 лайка

Да, эта идея тоже время от времени возникает и вписывается в более общую идею, предложенную в этой теме.

5 лайков

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

chrome_thl0b7CCfm.mxf-h264|видео

6 лайков

Это выглядит супер полезно! :smiley:
Я не квалифицирован для проверки кода, но надеюсь, что кто-нибудь возьмётся за это.

1 лайк

Отлично!

Одна небольшая проблема: если файл имеет расширение .png, он открывается на весь экран вместо отображения информации о местоположении файла.

1 лайк

Да, дело не в расширении — это происходило с файлами, не связанными ни с одним постом. То есть с файлами, использованными в удалённых постах, или загруженными другими способами (например, аватары или файлы, созданные самим Discourse).

Я исправил это (теперь сообщается, что связанных постов нет) и добавил автора каждой загрузки в библиотеку.

chrome_ASuIHjCMXz

Думаю, я не буду добавлять новые функции в этот плагин. Я добавил тесты на Ruby и JS для помощи, но на этом всё.

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

7 лайков