メインコンテンツまでスキップ

ファイルストレージプロバイダー

デフォルトでは、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 を設定する方法を紹介します。

前提条件

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 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 を使用するために空白のままにできます。