소스 인스턴스에 관리자 권한이 없는 상태에서 카테고리를 다른 인스턴스로 이전하는 방법

저희 팀은 현재 다른 Discourse 인스턴스에서 게스트로 운영되고 있습니다. 저희만의 Discourse 인스턴스를 구축 중이며, 기존 인스턴스의 카테고리를 새 인스턴스로 이식하고 싶습니다. 기존 서버에 관리자 권한이 없지만, 관리자가 카테고리 내보내기를 수행해 줄 의향이 있습니다. 그러나 이 내보내기에는 첨부파일이나 이미지가 포함되어 있지 않습니다. 기존 인스턴스에 대한 API 접근 권한은 있지만, 저희 카테고리에만 한정되어 있습니다. 새 인스턴스에는 관리자 권한이 있습니다.

기존 인스턴스에 대한 API만 사용하여 첨부파일과 이미지를 이식할 수 있을까요?

내보낸 JSON을 살펴보니, 첨부파일 이름은 브라우저에서 제공되는 것과 다른 무작위 문자열로 되어 있어, 첨부파일과 이미지를 다운로드하기 위해 API를 역공학하는 것이 그리 간단하지 않습니다. 설령 기존 인스턴스에서 모든 첨부파일을 다운로드할 수 있다 해도, 이를 새 인스턴스에 어떻게 추가해야 하는지 명확하지 않습니다. 이 게시물을 보면, 파일명이 내보낸 JSON의 내용과 동일하다는 전제 하에 해당 위치에 파일을 배치하기만 하면 된다는 인상을 받지만, 실제로는 그렇게 작동하지 않는 것 같습니다.

어떤 아이디어라도 있을까요?

이것이 무슨 뜻인지 설명해 주시겠습니까?

json 게시물 스트림의 cooked 데이터를 확인하면 일반 첨부 파일 URL을 얻을 수 있습니다.

죄송합니다. 저는 신규 사용자이고 계정이 보류 상태에 있었기 때문에 답장을 드리지 못했습니다.

카테고리 내보내기 JSON(위에서 링크된 방법을 사용)에서 특정 게시물의 첨부 파일은 다음과 같이 표시됩니다.

![image|505x473](upload://yyWAy3WPpjetoctRNL9hmPvNNwm.jpeg

API에서 가져온 cooked JSON에서는 동일한 이미지가 다음 URL을 가지고 있습니다.

https://my.server.com/uploads/default/original/2X/f/f23d29caba9a31b2b63b93f4104d746623703ca2.jpeg

파일명 사이에 어떤 관계도 없어 보입니다. 이 정보를 바탕으로 내보내기 파일에 포함되지 않은 첨부 파일을 API를 통해 가져올 수는 있습니다. 하지만 어떤 파일명을 부여해야 하는지, 그리고 새 서버에서 어디에 파일을 배치해야 하는지 확신이 서지 않습니다.

이 부분이 해결되면, 마이그레이션 이전과 마찬가지로 렌더링된 토픽 페이지를 불러올 때 첨부 파일이 표시되도록 할 수 있을까요?

API를 통해 렌더링된 결과를 확인하면(예: 이 링크), 이미지 전체 URL이 표시되는 것을 볼 수 있습니다.

하지만 아마도 다음 항목을 찾고 계실 수도 있습니다:

테스트 인스턴스에서 작동하는 해결책을 가지고 돌아왔습니다. 프로덕션 환경에서는 아직 테스트하지 않았습니다.

이 내용은 실제로 마이그레이션을 수행할 팀이나 유사한 작업이 필요한 다른 사람들을 위해, 미래의 저를 통해 전달하기 위한 것입니다.

첨부 파일에는 긴 형식의 이름을 사용해야 하며, 이는 JSON의 짧은 형식에서 Converting short upload URLs to full URLs 에 있는 Python 스크립트를 통해 변환할 수 있습니다.

첨부 파일은 discourse/public/uploads/tombstone/default/original/ 디렉토리에 배치해야 합니다.

그런 다음 /var/discourse/ 디렉토리에서 uploads:recover_from_tombstone 명령을 실행합니다.