방금 오래된 토픽의 제목을 변경해 보았습니다. 그런데 토픽 안의 모든 이미지가 이제 transparent.png로 바뀌어 제대로 표시되지 않는다는 사실을 알게 되었습니다.
rake uploads:recover를 실행한 뒤 rake posts:rebake를 실행했지만 문제가 해결되지 않았습니다.
https://talk.zabanshenas.com/uploads/default/original/3X/8/7/8726fbef7b69ac8226d28568b46f3e06afe2fb4f.jpeg 로 이미지를 접근할 수 있습니다.
업로드 자체는 다음과 같습니다: 
하지만 이렇게 실행하면:
Upload.where( "url LIKE '%8726fbef7b69ac8226d28568b46f3e06afe2fb4f%'" )
=> []
이렇게 반환됩니다.
아무 아이디어가 있으신가요?
다른 곳에 완전히 동일한 이미지를 다시 업로드하면, 재베이(rebake) 후에도 기존 게시글에 이미지가 표시될 것입니다. 따라서 이전에 업로드된 일부 파일의 인덱싱과 관련된 문제라고 생각합니다. 모든 업로드된 파일의 인덱스를 다시 생성하는 방법은 무엇인가요? 아니면 더 좋게 말하면, 누락된 파일의 인덱싱을 하는 방법은요.
업데이트:
몇 가지 rake 작업을 읽어 보다가 rake posts:recover_uploads_from_index라는 명령어를 발견했는데, 이 명령어가 제 문제를 해결해 주는 것 같습니다. 하지만 다음과 같은 오류가 발생합니다:
undefined method `split' for nil:NilClass
from /var/www/discourse/app/models/site_setting.rb:151:in `s3_base_url'
제 웹사이트에서는 S3 업로드를 활성화하지 않았습니다
![]()
업데이트:
위 오류에 대해 임시로 지저분한 수정을 가했습니다(이 라인 주석 처리)하고 rake 작업을 실행했습니다. 하지만 제 예상과는 달랐습니다:
Searching for upload://dC9HyffX3S1XbwwdUOsHe5aMyJX.jpeg (dC9HyffX3S1XbwwdUOsHe5aMyJX) in index
Skipping upload://dC9HyffX3S1XbwwdUOsHe5aMyJX.jpeg in https://talk.zabanshenas.com/t/topic/4430/1 cause it appears to have a short file name
Searching for upload://kWx14u8XkQ8qd6NvOoDLN6usTl8.jpeg (kWx14u8XkQ8qd6NvOoDLN6usTl8) in index
Skipping upload://kWx14u8XkQ8qd6NvOoDLN6usTl8.jpeg in https://talk.zabanshenas.com/t/topic/4430/1 cause it appears to have a short file name
rake 태스크 rake uploads:recover를 더 자세히 살펴봤습니다. 다음 줄에 문제가 있는 것 같습니다:
제 이해로는 uploads/default/original 디렉터리 내의 모든 파일이 @paths에 추가되어야 합니다. 그러나 @paths를 파일로 출력해 보니 토무스톤(tombstone) 파일만 나열되어 있었습니다.
무엇을 놓치고 있는 건가요?
@cvx
아래와 같이 수정해야 한다고 생각합니다.
concat(Dir.glob(File.join(
Rails.root, "public", Discourse.store.upload_path,
'original',
'**',
'*.*'
)))
