게시물 또는 메시지의 이전 버전을 완전히 삭제하는 방법

누군가에게 Android 디버그 로그를 보내야 한다고 가정해 보겠습니다. 이러한 로그에는 개인 정보가 포함되어 있습니다. 해당 URL을 공개적으로 게시해서는 안 되며, 개인적으로 메시지를 통해 전달하더라도 URL 또는 첨부 파일은 가능한 한 빨리 삭제해야 합니다.

관리자나 모더레이터도 해당 URL이나 첨부 파일을 복구할 수 없어야 합니다.
삭제할 수 없다면, 해당 정보는 발신자와 모든 관리자 및 모더레이터에게 영원히 노출된 채로 남게 됩니다. 이러한 로그는 시간이 지남에 따라 쌓이게 되며, 민감한 정보가 영원히 남아 있게 되는 셈입니다.

해당 URL이나 첨부 파일을 단순히 숨기는 것에서 나아가 실제로 삭제할 방법은 무엇일까요?

이 PR로 인해 가능해 보이는 것 같습니다. 좋습니다 :slight_smile:

정말 필요한 것 같은데요. 메시지에도 적용되어야 합니다.
와, 이거 3시간 전에 커밋된 거예요? 대단하네요!

안녕하세요, 'feature merged’가 제목에 포함된 내용과 일치하지 않는 것 같습니다. 데이터 탐색기를 통해 특정 위키 주제의 일부 버전에서 큰 첨부파일이 있는 것을 발견했는데, 이를 삭제하고 싶습니다.

자호스팅 인스턴스에서 게시물의 특정 버전에서 첨부파일을 삭제하는 방법에 대해 알려드리고자 합니다. 불행히도 Search attachments by storage name 에 제시된 방법은 이 경우 적용할 수 없습니다(파일명에서 sha1을 가져올 수 없기 때문).

먼저 SQL을 사용하여 sha1을 찾습니다:

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을 얻을 수 있습니다. 해당 주제의 질문은 아직 해결되지 않은 상태입니다.