지정 시간 이후에도 Discourse에서 첨부 파일이 삭제되지 않음

버전: 3.2.0.beta3-dev (Docker 셀프 호스팅)
설정: clean orphan uploads grace period hours를 1시간으로 설정했습니다.

원하는 내용

업로드한 후 첨부 파일을 이름 변경하고 싶습니다.

아래 설명에서 1.txt와 2.txt는 동일한 파일이지만 파일 이름이 다릅니다.

재현 단계

  1. 1.txt 파일을 게시물에 업로드하고 저장합니다.
  2. 5분 후 게시물을 편집하여 1.txt 링크를 제거하고 저장합니다.
  3. 1.txt의 이름을 2.txt로 변경합니다.
  4. 1시간 후 2.txt를 다시 게시물에 업로드합니다.
  5. 첨부 파일 이름이 여전히 1.txt로 유지됩니다. 2.txt가 아닙니다.

하지만 다음 상황에서는 clean orphan 설정이 정상적으로 작동합니다.

  1. 1.txt 업로드
  2. 게시물을 저장하지 않음
  3. 1시간 후 2.txt 파일을 다시 업로드
  4. 다운로드할 때 새 첨부 파일 링크가 2.txt로 표시됩니다.

그 상황은 clean orphan uploads..가 하는 일과는 다른 거 아닌가요?

아마 제가 잘못 이해하고 있는 것 같습니다.

제가 아는 한, 업로드한 파일 이름을 변경하려면 파일을 삭제하고 Discourse가 파일을 삭제할 때까지 기다린 후 다시 업로드하는 것 외에는 다른 방법이 없습니다.

저는 파일을 제거하기 위해 이 가이드(포스트를 편집하여 첨부 파일 링크를 제거)를 따랐습니다.

제 생각에는 '제거’란 하드 드라이브에서 파일을 삭제하는 것을 의미합니다.

하지만 이 동작은 확인해 드릴 수 있습니다. 파일이 이름만 변경된 경우 Discourse는 이전 파일을 제공합니다. (그것이 정말로 오래된 파일인지, 아니면 단순히 오래된 파일명을 링크로 사용하는 것인지 확인하는 수고는 하지 않았습니다.)

코드나 코딩에 대해서는 잘 모르지만, Discourse가 어떤 종류의 해싱을 사용하는 것 같습니다. 그리고 콘텐츠가 변경되지 않는 한, 해당 이름은 일종의 캐시로 유지됩니다. 첨부 파일을 실제로 변경하면 Discourse가 링크도 함께 변경합니다.

4개의 좋아요