안녕하세요,
저장 공간 부족으로 인해 자체 호스팅 인스턴스에서 Discourse 업로드 위치를 외부 저장소로 변경하려고 시도하고 있습니다. CIFS 공유를 마운트했고, 기존 업로드 파일을 동일한 디렉터리 구조를 유지한 채 마운트된 위치에 복사했습니다.
그런 다음 app.yml에 다음 줄을 추가했습니다:
- volumes:
- volume:
host: /<storage-location>/uploads
guest: /shared/uploads
./launcher rebuild app 명령으로 컨테이너를 재빌드한 후(저는 root 사용자입니다), 웹사이트에서 이미지가 더 이상 표시되지 않습니다. 모든 이미지가 404 코드를 반환하는 것으로 보입니다.
CIFS 공유를 root:root 및 _default_hostname:www-data로 마운트하여도 시도해 보았지만, 매번 이미지가 표시되지 않았습니다.
업로드 위치를 변경하는 가장 좋은(또는 올바른) 방법은 무엇인가요?
미리 감사합니다!
pfaffman
(Jay Pfaffman)
2
기본 설정은 다음과 같습니다:
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
아래와 같은 구성이 필요할 것입니다:
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /your/cifs/share/discourse-uploads
guest: /shared/uploads
맞아요! 그 방법으로 시도해 봤는데 잘 작동했습니다. 다만 마운트된 저장 위치에는 적절한 권한이 부여되어 있어야 한다는 점을 염두에 두어야 합니다. root:root는 작동하지 않지만, _default_hostname:www-data는 잘 작동하는 것 같습니다.
또 하나 눈치챈 점이 있습니다: 주제(토픽)에 대한 업로드는 새 저장 위치로 이동하더라도 더 이상 작동하지 않아서 다시 업로드해야 합니다. 다른 이미지/업로드(로고, 헤더 등)는 정상적으로 작동합니다.
감사합니다!
pfaffman
(Jay Pfaffman)
4
그렇게는 되어서는 안 됩니다. 아마도 파일을 잘못된 위치로 복사하신 것 같습니다.
저도 같은 생각을 하고 있었지만, shared/standalone/에서 외부 저장소 위치로 uploads 폴더 전체를 복사했는지, default 및 기타 하위 폴더를 포함하여 두 번 확인해 보았습니다.
외부 저장소 설정(주로 파일 및 폴더 권한)을 여러 가지로 바꿔가며 업로드 위치를 변경해 본 적이 몇 번 있었고, 그 사이에 첨부 파일이 다시 작동하도록 하려는 시도로 rake posts:rebake를 실행해 보았는데, 아마 그 과정에서 문제가 발생한 것 같습니다…
pfaffman
(Jay Pfaffman)
6
다시 업로드하면 문제가 해결된다는 점이 이상합니다.
Rails에서 Uploads.pluck(:url)을 확인해 보면 이상한 부분이 있는지 살펴볼 수 있습니다.