안녕하세요,
이 문제를 해결하지 못해서요. 모든 게시물에 여전히 구버전 엔드포인트가 남아 있습니다.
절차:
- 관리자 설정에서 “s3 Endpoint” 변경
- 모든 게시물 다시 생성 (“rake posts:rebake”)
- Redis 캐시 삭제
위 조치로 해결되지 않아서:
- rake posts:remap[‘http 없는 구 엔드포인트’, ‘http 없는 새 엔드포인트’] 실행
- 모든 게시물 다시 생성
- 컨테이너 재시작
- 서버 전체 재시작
이것도 안 되어서:
- SQL로 “posts” 테이블의 “raw” 및 “image_url” 컬럼에서 구 엔드포인트를 새 엔드포인트로 모두 교체
- 모든 게시물 다시 생성
이 모든 과정을 거쳤는데도, 기존 게시물뿐만 아니라 새 첨부파일이 포함된 새 게시물에도 여전히 구 엔드포인트가 표시됩니다. “short-url” 링크도 구 엔드포인트로 연결됩니다.
올바른 해결 절차는 무엇인가요?
#bringBackMinio
죄송하지만, 이걸 어떻게 해야 하는지 아시는 분 계신가요? 간단한 작업일 것 같은데 도저히 방법을 모르겠어요.
Falco
(Falco)
4
@plague69 환경 설정에 대해 더 자세한 내용을 공유해 주실 수 있나요?
기존 S3 Endpoint 값과 새 S3 Endpoint 값은 무엇인가요?
S3에 CDN을 사용 중인가요?
중요하지 않다고 생각했는데, 만약 변경된 후 잘못된 값이라면 수정할 수 있지만, 변경하는 데 어려움을 겪고 있습니다.
기존 엔드포인트:
http://discourse.domain.tld:9000
새 엔드포인트: (포트만 변경했습니다. 충돌이 발생하여 다른 서비스는 이동할 수 없습니다)
http://discourse.domain.tld:9001
CDN은 변경 없음:
http://files.domain.tld:80
필요하다면 CDN을 제거할 수 있으며, 현재로서는 그럴 필요가 없습니다.
@Falco 님, 감사합니다.
Falco
(Falco)
6
비표준 포트에서 S3 서버를 사용해 본 적이 없습니다. 이는 우리가 테스트하지 않는 항목이기 때문입니다.
그럼에도 불구하고, app.yml 파일의 환경 변수로 S3 엔드포인트를 설정해 보실 수 있을까요?
env:
# current settings ...
DISCOURSE_S3_ENDPOINT: http://discourse.domain.tld:9001
안타깝게도 해당 방법은 효과가 없었습니다. 여전히 9000에 멈춰 있습니다.
해당 환경 변수를 추가한 후, 컨테이너를 재시작하는 것만으로는 적용되지 않아 재빌드(rebuild)해야 했습니다. 설정에서 해당 옵션이 제거된 것을 확인했으므로, 재빌드 후 컨테이너의 시작 파라미터에 해당 변수가 포함된 상태에서 정상적으로 작동했음을 알 수 있습니다.
S3를 더 이상 사용하지 않는다면 모든 데이터를 로컬 드라이브로 다운로드할 수 있는 방법이 있을까요? 백업에 S3가 포함되지 않아서 백업과 복원조차 불가능한 상태입니다.
posts:rebake 명령을 실행하면 short-url도 다시 생성되나요?
pfaffman
(Jay Pfaffman)
8
S3에서 로컬로 데이터를 가져오는 rake 태스크가 있다고 생각합니다. 이 포럼에서 검색하거나 소스 코드를 확인해 보세요. 그것이 가장 좋은 방법일 것입니다.
예전에는 rake uploads:migrate_from_s3라는 명령어가 있었습니다. S3 URL 포맷이 서브도메인 방식에서 슬래시 방식으로 변경될 때 Minio에서 S3로 데이터를 이주하기 위한 스크립트였죠.
지금은 그 명령어조차 찾을 수 없네요