ファイルストレージプロバイダー
デフォルトでは、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 のデフォルトの「プライマリエンドポイント」をパブリック URL として使用するために空白のままにできます。Logto は Azure SDK の助けを借りて、この値を「connectionString」から取得します。ストレージアカウントのプライマリエンドポイントについて詳しく知るには、公式の Azure Storage プライマリエンドポイントドキュメント を参照してください。
S3 Storage
S3 Storage は、Web サービスインターフェースを通じてオブジェクトストレージを提供するクラウドストレージサービスです。以下のレシピでは、Logto のストレージプロバイダーとして S3 Storage を設定する方法を紹介します。
前提条件
- S3 Storage アカウント または MinIO などの他の S3 互換ストレージサービス
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 は、Web サービスインターフェースを通じてオブジェクトストレージを提供するクラウドストレージサービスです。以下のガイドでは、Logto のストレージプロバイダーとして Google Cloud Storage を設定する方法を紹介します。
前提条件
- Google Cloud プロジェクト
- バケット、公式の Google Cloud ドキュメントを参照してください:https://cloud.google.com/storage/docs/creating-buckets.
キーファイルの取得
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 を使用していると仮定して、設定に次の内容を追加します:
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 を使用するために空白のままにできます。