또한 업로드된 파일을 어쨌든 삭제해야 했습니다. 일부 파일은 다른 포럼 소프트웨어에서 가져온 것이며, 가져온 게시물에 아직 올바르게 참조되지 않아 정리(cleanup) 작업이 활성화되어 있지 않기 때문입니다. 따라서 수동으로 삭제하는 방법을 찾아야 했습니다. 다음 방법은 작동하지만 깔끔하지는 않습니다 …
-
해당 업로드가 현재 버전의 어떤 게시물에도 더 이상 존재하지 않는지 확인하십시오. 이렇게 하면 Discourse가 이를 고아(orphaned) 파일로 간주하여 삭제 시 문제를 일으키지 않습니다.
-
Data Explorer 플러그인 또는 다른 방법을 사용하여 Discourse 데이터베이스를 쿼리하여 고아 업로드를 나열하고, 관련 항목을 찾아 그 upload_id와 파일명을 기록하십시오. 관련 쿼리:
SELECT uploads.id, uploads.user_id, uploads.created_at, uploads.url, uploads.filesize FROM uploads LEFT OUTER JOIN post_uploads ON uploads.id = post_uploads.upload_id WHERE post_uploads.post_id IS NULL ORDER BY created_at DESC LIMIT 100 -
데이터베이스 또는 Discourse용 Rails 콘솔을 사용하여 upload ID를 기준으로
uploads테이블에서 해당 레코드를 삭제하십시오. 여기서는 Rails 콘솔을 사용합니다:Upload.where(id: 16384).first.delete -
SSH를 통해 파일 시스템에서 관련 파일 및 모든 최적화 버전(이미지의 경우 해당)을 삭제하십시오. 여기서는 접미사가 붙는 최적화 버전도 함께 포착하도록 파일 확장자 앞에 와일드카드를 추가한 것에 유의하십시오. 물론,
cd /path/to/discourse/shared/public/ find . -name 43adade7a4cc64426adb8232a56cb2c3b49fb7c9*.pdf -type f -delete