S3 버킷 및 모든 참조 변경

웹사이트의 S3 버킷을 변경하고 모든 에셋을 새 버킷으로 복사했습니다. 모든 것이 동일하며, 최소한 모든 파일이 공개적으로 읽을 수 있는지 확인했습니다.

 for i in $(cat files.txt | awk '{print $4}'); do  aws --profile gb_root  s3api put-object-acl --bucket gb-www-forum  --key $i --acl public-read ; done;

참조하는 일부 URL과 이미지는 여전히 이전 버킷 이름을 기반으로 하고 있습니다.

예를 들어: 로고 URL은 다음과 같이 설정되어 있습니다:

https://geek-beacon-www-forum.s3.dualstack.us-west-1.amazonaws.com/original/2X/8/8d0ac51fff56cdc704af2807c1c2efee13a3fd89.png

이것은 모든 참조가 새 버킷 이름으로 변경되어야 하는 이전 버킷이었습니다.

시도해 본 사항:

Rebake

cd /var/discourse
./launcher enter app
rake posts:rebake

성공적으로 작동했지만 아무것도 변경되지 않았습니다.

Remap (실행 실패)

Remap에 대해 언급이 있었지만 어떻게 작동하게 해야 할지 모르겠습니다.

root@forum-app:/var/www/discourse# rake --tasks  | grep remap
rake posts:remap[find,replace,type,ignore_case]                        # Remap all posts matching specific string
root@forum-app:/var/www/discourse# rake posts:remap["geek-beacon-www-forum", "gb-www-forum", "string",  false]
rake aborted!
Don't know how to build task 'posts:remap[geek-beacon-www-forum,' (See the list of available tasks with `rake --tasks`)
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)

아무도 답변을 주지 않아서 결국 SQL 쿼리를 직접 실행해 문제를 해결하려고 했습니다.

sudo ./launcher enter app
sudo -u postgres psql discourse

아마도 완전한 목록은 아닐 수 있지만, 다음 테이블들을 업데이트했습니다:

  • uploads
  • badges
  • optimized_images
  • post_custom_fields
  • post_revisions
  • posts
  • stylesheet_cache

포럼 상태가 훨씬 좋아졌지만, 여전히 특이한 현상이 발생합니다. 사진이 첨부된 게시글로 이동하면 이미지가 여전히 깨져 보이지만, 해당 게시글을 편집하려고 하면 이미지가 표시되고 미리보기도 정상적으로 작동합니다.

게시글을 저장해도 여전히 깨져 있고, 이미지를 다운로드했다가 다시 업로드해도 여전히 깨져 있습니다.

새로운 게시글을 작성하면 모든 것이 정상적으로 작동합니다.

무엇을 놓치고 있는지 아이디어가 있으신가요?