Studio · リファレンス

ファイルと成果物のストレージ

drive.disks で保存先を定義し、drive.default でアップロード用ディスクを選びます。ディスク名は任意で、driver が接続方式を決めます。

ドライバー用途
fsローカルファイルシステム
s3Amazon S3 または S3 互換サービス

必要な設定を config.yml に統合し、バケット、リージョン、認証情報を置き換えます。docker compose up -d --force-recreate studio で反映してください。

ローカルファイル(fs)

既定はローカル保存です。Docker では /app/storage を永続化したディレクトリにマウントします。

YAML
drive:
  default: local
  disks:
    local:
      driver: fs
      location: /app/storage
      visibility: private

location はコンテナ内のディレクトリで、Studio プロセスから書き込める必要があります。別の方式でデプロイする場合は、永続化した保存先を指定してください。

S3

この例は Amazon S3 を使います。S3 互換サービスの場合は、必要に応じて endpoint と forcePathStyle を追加します。

YAML
drive:
  default: s3
  disks:
    s3:
      driver: s3
      bucket: example-studio-files
      region: us-east-1
      supportsACL: false
      visibility: private
      credentials:
        accessKeyId: replace-with-access-key-id
        secretAccessKey: replace-with-access-key-secret
設定意味
bucket、regionバケット名とリージョン
endpointS3 互換サービスの URL。Amazon S3 では省略可能
forcePathStyleサービスが必要とする場合、パス形式でバケットにアクセス
supportsACLオブジェクト ACL への対応。ACL 無効のバケットは false
credentialsアクセスキー。{} で AWS SDK の既定の認証情報チェーンを使用

バケット自体も非公開にしてください。visibility: private ではバケットポリシーは変わりません。

リリース成果物

ファイルアップロードとビルド成果物は別設定です。drive.default を変えても、成果物の保存先は変わりません。成果物の既定値は /app/storage/releases/artifacts です。

上記の S3 ディスクに保存する場合:

YAML
releases:
  artifact:
    disk: s3
    prefix: releases/artifacts

disk は drive.disks の項目名、prefix は省略可能なオブジェクトキーの接頭辞です。成果物のディスクは非公開にします。名前で参照する成果物用ディスクには fs または s3 を使います。

Studio とプレビュー Host の両方から成果物にアクセスできる必要があります。ブラウザー用の直接ダウンロードリンクを生成するファイルディスクは、ブラウザーからも接続できるアドレスにしてください。

成果物の上限は既定で 256 MiB です。releases.maxArtifactSizeMB で変更できます。大きなアップロードには、リバースプロキシと API_BODY_LIMIT の制限も適用されます。

保存先を変更して確認する

ディスクの変更では既存ファイルを移行しません。先にファイルをコピーし、キーを維持してから切り替えます。プレフィックスを追加しても、過去の成果物は移動しません。オブジェクトストレージを使う場合も、Studio の storage は永続化してください。

  1. タスクやナレッジベースにテストファイルをアップロードし、再読み込みしてダウンロードします。
  2. ビルドを実行し、成果物のアップロード成功を確認します。
  3. PR プレビューを開き、成果物を取得して起動できることを確認します。

NocoBase ドキュメントアシスタント

NocoBase について何を知りたいですか?

質問は個別に回答され、過去の質問や回答は参照されません。必要な背景をすべて含めてください。