본문으로 건너뛰기

파일 저장소 제공자

기본적으로, Logto Console은 아바타와 같은 정적 파일 URL에 대해 텍스트 입력을 사용합니다. 드래그 앤 드롭을 통한 보다 직관적인 파일 업로드 경험을 활성화하려면 저장소 제공자를 구성해야 합니다.

Logto는 AWS S3, Azure Storage를 포함한 여러 저장소 제공자를 지원합니다. 이 레시피에서는 Logto에 저장소 제공자를 구성하는 방법을 보여줍니다.

구성은 DB의 systems 테이블에 저장되지만, CLI를 사용하여 저장소 제공자를 구성하는 것이 권장됩니다. 자세한 정보는 "help" 명령어를 사용해 보세요:

pnpm logto db system --help

Azure Storage

Azure Storage는 클라우드에서 데이터를 저장하고 관리할 수 있는 강력하고 확장 가능한 클라우드 저장소 솔루션입니다. 다음 레시피는 Logto의 저장소 제공자로 Azure Storage를 구성하는 방법을 보여줍니다.

사전 준비 사항

CLI를 사용한 구성

사용 예:

pnpm logto db system set storageProvider '{"provider":"AzureStorage","connectionString":"DefaultEndpointsProtocol=https;AccountName=logto;AccountKey=oRhfTBHOHiBxxxxxxxxxxxxxxxxZ0se6XROftl/Xrow==;EndpointSuffix=core.windows.net","container":"logto"}'

connectionString

Azure Storage에 접근하려면, 저장소 계정에 연결하기 위한 필수 정보를 포함하는 문자열인 연결 문자열을 사용해야 합니다.

연결 문자열을 얻으려면 공식 Azure Storage 연결 문자열 문서를 참조하세요.

container

컨테이너는 블롭을 저장하는 저장소 리소스입니다. 컨테이너를 사용하여 블롭을 조직하고 데이터에 대한 접근을 제어할 수 있습니다.

컨테이너를 생성하려면 공식 Azure Storage 컨테이너 문서를 참조하세요.

publicUrl

선택 사항.

공용 URL은 저장소 리소스에 공개적으로 접근할 수 있는 URL입니다. CDN을 사용하지 않는 경우, Azure Storage의 기본 "Primary endpoint"를 공용 URL로 사용하기 위해 비워둘 수 있습니다. Logto는 Azure SDK의 도움으로 "connectionString"에서 이 값을 가져옵니다. 저장소 계정의 기본 엔드포인트에 대해 더 알고 싶다면 공식 Azure Storage 기본 엔드포인트 문서를 참조하세요.

S3 Storage

S3 Storage는 웹 서비스 인터페이스를 통해 객체 저장소를 제공하는 클라우드 저장소 서비스입니다. 다음 레시피는 Logto의 저장소 제공자로 S3 Storage를 구성하는 방법을 보여줍니다.

사전 준비 사항

CLI를 사용한 구성

사용 예:

pnpm logto db system set storageProvider '{"provider":"S3Storage","accessKeyId":"my-access-key-id","accessSecretKey": "my-secret-access-key","bucket":"logto","endpoint":"https://s3.us-east-2.amazonaws.com"}'

accessKeyId

액세스 키 ID는 AWS 계정의 식별자입니다. AWS 계정의 액세스 키 ID를 찾으려면 공식 AWS 액세스 키 ID 문서를 참조하세요.

accessSecretKey

비밀 액세스 키는 액세스 키 ID와 함께 프로그래매틱 요청에 서명하는 데 사용됩니다. AWS 계정의 액세스 키 비밀을 찾으려면 공식 AWS 액세스 키 비밀 문서를 참조하세요.

bucket

버킷은 Amazon S3에 저장된 객체의 컨테이너입니다. 버킷을 생성하려면 공식 AWS S3 버킷 문서를 참조하세요.

region

선택 사항.

리전은 AWS S3 버킷이 위치한 지리적 지역입니다. endpoint가 표준 AWS S3 엔드포인트인 경우, endpoint에서 파싱할 수 있습니다. AWS S3 리전을 찾으려면 공식 AWS S3 리전 문서를 참조하세요.

S3 호환 저장소 서비스를 사용하는 경우 이 필드를 비워둘 수 있습니다.

endpoint

선택 사항.

엔드포인트는 AWS S3 서비스를 접근하는 데 사용되는 URL입니다. AWS S3 엔드포인트를 찾으려면 공식 AWS S3 엔드포인트 문서를 참조하세요.

리전의 기본 엔드포인트를 사용하려면 이 필드를 비워둘 수 있습니다. S3 호환 저장소 서비스를 사용하는 경우, 서비스의 엔드포인트를 사용할 수 있습니다.

publicUrl

선택 사항.

공용 URL은 저장소 리소스에 공개적으로 접근할 수 있는 URL입니다. CDN을 사용하지 않는 경우, S3 Storage의 기본 URL을 사용하기 위해 비워둘 수 있습니다.

Google Cloud Storage

Google Cloud Storage는 웹 서비스 인터페이스를 통해 객체 저장소를 제공하는 클라우드 저장소 서비스입니다. 다음 가이드는 Logto의 저장소 제공자로 Google Cloud Storage를 구성하는 방법을 보여줍니다.

사전 준비 사항

키 파일 얻기

Google Cloud SDK는 일반적으로 "키 파일"을 사용합니다. Google Cloud에 익숙하지 않다면, 이것이 가장 어려운 부분일 수 있습니다. 다음은 키 파일을 얻는 방법입니다:

  1. 서비스 계정 페이지로 이동하세요: https://console.cloud.google.com/iam-admin/serviceaccounts
  2. 계정을 생성하고 이름을 입력한 후 계속합니다.
  3. 다음 단계에서 "Storage Object User" 역할을 선택합니다. 필터를 사용하여 찾을 수 있습니다.
  4. 계정 생성을 완료한 후, 계정 세부 정보 페이지로 이동하여 "키" 탭을 선택합니다.
  5. "키 추가"를 클릭하고 "새 키 생성"을 선택한 후, 대화 상자에서 "json"을 선택하고 json 파일을 다운로드합니다.

키 파일을 Logto에 추가

Logto는 키 파일에 접근할 수 있어야 합니다.

Node.js에서 실행 중인 경우

파일을 /path/to/logto/core로 복사하고 google-storage-key.json으로 이름을 변경합니다.

Docker 컨테이너에서 실행 중인 경우

Logto를 Docker 컨테이너에서 실행 중이라면, 파일을 컨테이너에 마운트해야 합니다. Docker Compose를 사용 중이라면, 구성에 다음을 추가하세요:

volumes:
- ./path/to/google-storage-key.json:/etc/logto/core/google-storage-key.json

/path/to를 실제 경로로 대체하는 것을 잊지 마세요.

CLI를 사용한 구성

사용 예:

pnpm logto db system set storageProvider '{"provider":"GoogleStorage","projectId":"psychic-trainer-403801","keyFilename":"google-storage-key.json","bucketName":"logto-test2"}'

projectId

Google Cloud 프로젝트 ID입니다.

keyFilename

키 파일의 이름입니다. 위의 단계를 따르면 google-storage-key.json입니다.

bucketName

버킷 이름입니다.

publicUrl

선택 사항.

공용 URL은 저장소 리소스에 공개적으로 접근할 수 있는 URL입니다. CDN을 사용하지 않는 경우, S3 Storage의 기본 URL을 사용하기 위해 비워둘 수 있습니다.