Полное удаление предыдущих версий поста или сообщения

Допустим, вам нужно отправить кому-то лог отладки Android. Эти логи содержат конфиденциальную информацию. Не следует публиковать такую ссылку в открытом доступе, а если вы отправляете её лично, то ссылку или вложение следует удалить вскоре после отправки.

Даже администраторы или модераторы не должны иметь возможности восстановить эту ссылку или вложение.
Если мы не сможем её удалить, она навсегда останется видимой для отправителя, а также для всех администраторов и модераторов. Такие логи накапливаются со временем, и вечно хранится огромное количество конфиденциальных данных.

Как можно не просто скрыть эту ссылку или вложение, а фактически удалить их?

С этим PR это, похоже, возможно. Мне нравится :slight_smile:

Звучит как то, что нам действительно нужно. И это должно также применяться к сообщениям. Ух ты, это было закоммичено всего 3 часа назад? Отлично!

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

Хочу просто рассказать, как удалить вложение из версии поста на самостоятельно размещённых экземплярах. К сожалению, метод из Search attachments by storage name в данном случае не подходит (невозможно получить sha1 из имени файла).

Сначала найдите sha1 с помощью SQL:

sudo /var/discourse/launcher enter app
su - discourse
psql
SELECT filesize, original_filename, sha1 FROM uploads WHERE filesize > 3000000 order BY filesize desc;

После этого вы получите sha1. Далее закройте соединение с базой данных, выйдите из пользователя в root и откройте командную строку Rails:

ctrl+d
ctrl+d
rails c
pry(main)> Upload.find_by(sha1: '<sha1>')

В итоге вы получите URL вложения, указывающий на расположение в файловой системе. Вопрос темы всё ещё открыт.