Logto 의 파일 저장소로 Google Cloud Storage 설정하기
Logto 의 파일 저장소로 Google Cloud Storage 를 설정하는 실습 가이드입니다.
기본적으로 Logto Console 은 아바타와 같은 정적 파일 URL 을 위한 텍스트 입력을 사용합니다. 드래그 앤 드롭 기능을 통해 더 직관적인 파일 업로드 경험을 제공하기 위해서는 저장소 공급자를 구성해야 합니다.
이 기사에서는 Google Cloud Storage 를 저장소 공급자로 설정하는 단계별 가이드를 제공합니다.
사전 준비사항
- Node.js 에서 네이티브로 실행되거나 Docker 컨테이너에서 실행되는 Logto 인스턴스. 인스턴스가 없다면 이 가이드를 확인해 보세요: https://docs.logto.io/docs/tutorials/get-started/#local
- Google Cloud 프로젝트
버킷 준비
버킷을 만드는 것은 간단합니다. 공식 Google Cloud 문서를 참조하세요: https://cloud.google.com/storage/docs/creating-buckets.
버킷이 준비되면 다음 단계는 공용 보기 액세스를 설정하는 것입니다. 방법은 다음과 같습니다:
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
- 버킷 목록에서 공용으로 만들고자 하는 버킷의 이름을 클릭합니다.
- 페이지 상단의 권한 탭을 선택합니다.
- 권한 섹션에서 액세스 부여 버튼을 클릭합니다.
- 새 원칙 필드에
allUsers
를 입력합니다. - 역할 선택 드롭다운에서 Storage Object Viewer 를 필터 상자에 입력하고 필터링된 결과에서 Storage Object Viewer 를 선택합니다.
- 저장을 클릭합니다.
- 공용 액세스 허용을 클릭합니다.
"Storage Object Viewer" 역할이 할당되었는지 확인하세요. 참고하십시오:
키 파일 얻기
Google Cloud SDK 는 일반적으로 "키 파일"을 사용합니다. Google Cloud 를 처음 접하는 경우 이 부분이 가장 어려울 수 있습니다. 방법은 다음과 같습니다:
- 서비스 계정 페이지로 이동합니다: https://console.cloud.google.com/iam-admin/serviceaccounts
- 계정을 생성하고 이름을 입력한 다음 계속합니다.
- 다음 단계에서 "Storage Object User" 역할을 선택합니다. 필터를 사용하여 찾을 수 있습니다.
- 계정 생성을 완료하면 계정 세부 정보 페이지로 이동하여 "키" 탭을 선택합니다.
- "키 추가"를 클릭하고 "새 키 생성"을 선택하며 대화 상자에서 "json"을 선택한 다음 json 파일을 다운로드합니다.
Logto 에 키 파일 추가하기
Logto 는 키 파일에 액세스할 수 있어야 합니다.
Node.js 에서 실행하는 경우
파일을 /path/to/logto/core
에 복사하고 google-storage-key.json
으로 이름을 변경합니다.
Docker 컨테이너에서 실행하는 경우
Logto 를 Docker 컨테이너에서 실행 중인 경우 파일을 컨테이너에 마운트해야 합니다. Docker Compose 를 사용하는 경우 다음을 구성에 추가합니다:
/path/to
를 실제 경로로 교체하는 것을 잊지 마세요.
공급자 구성 업데이트
Logto 의 CLI 를 사용하여 공급자 구성을 업데이트할 것입니다. CLI 는 보통 Logto 인스턴스의 루트 폴더에 있습니다. 자세한 내용을 알아보려면 이 링크를 확인하세요: https://docs.logto.io/docs/references/using-cli/
JSON 준비
여기 샘플 구성 JSON 이 있습니다:
projectId
와 bucketName
을 본인의 값으로 교체하세요.
CLI 를 통한 업데이트
JSON 을 문자열로 변환하고 다음 명령을 실행합니다:
설정 테스트
모든 설정이 완료되었으므로 Logto 를 다시 시작하고 시도해 보세요. "로그인 경험" 섹션으로 이동하여 로고를 업로드를 시도할 수 있습니다.
이 단계들이 복잡하다고 느낀다면, Logto 클라우드 버전을 사용하는 것을 고려해 보세요. 우리는 모든 것을 대신 처리해 드립니다!