概要
はじめに
ストレージエンジンは、ローカルストレージ(サーバーのハードドライブに保存)やクラウドストレージなど、特定のサービスにファイルを保存するために使用されます。
ファイルをアップロードする前に、ストレージエンジンを設定する必要があります。システムインストール時にローカルストレージエンジンが自動的に追加され、すぐに使用できます。また、新しいエンジンを追加したり、既存のエンジンのパラメーターを編集したりすることも可能です。
ストレージエンジンの種類
現在、NocoBaseが組み込みでサポートしているストレージエンジンの種類は以下の通りです。
システムインストール時にローカルストレージエンジンが自動的に追加され、すぐに使用できます。新しいエンジンを追加したり、既存のエンジンのパラメーターを編集したりすることも可能です。
共通パラメーター
異なるエンジンの種類に固有のパラメーターに加えて、以下の項目は共通パラメーターです(例としてローカルストレージを使用します)。

タイトル
ストレージエンジンの名前です。人間が識別するために使用します。
システム名
ストレージエンジンのシステム名で、システムが識別するために使用します。システム内で一意である必要があります。空欄の場合、システムが自動的にランダムな名前を生成します。
アクセスURLプレフィックス
ファイルが外部からアクセス可能なURLアドレスのプレフィックス部分です。CDNのアクセスURLのベースとして使用できます。例:https://cdn.nocobase.com/app(末尾の「/」は不要です)。
パス
ファイルを保存する際に使用される相対パスです。アクセス時には、この部分も最終的なURLに自動的に追加されます。例:user/avatar(先頭と末尾の「/」は不要です)。
ファイルサイズ制限
このストレージエンジンにアップロードされるファイルのサイズ制限です。この設定サイズを超えるファイルはアップロードできません。システムのデフォルト制限は20MBですが、最大1GBまで調整可能です。
ファイルタイプ
アップロードできるファイルのタイプを制限できます。MIME 構文の記述形式を使用します。例えば、image/* は画像ファイルを表します。複数のタイプはカンマ(,)で区切ることができます。例:image/*, application/pdf は画像タイプとPDFタイプのファイルを許可することを意味します。
デフォルトストレージエンジン
チェックを入れると、システムのデフォルトストレージエンジンとして設定されます。添付ファイルフィールドまたはファイルコレクションがストレージエンジンを指定していない場合、アップロードされたファイルはすべてデフォルトストレージエンジンに保存されます。デフォルトストレージエンジンは削除できません。
レコード削除時にファイルを保持
チェックを入れると、添付ファイルまたはファイルコレクションのデータレコードが削除されても、ストレージエンジン内のアップロード済みファイルは保持されます。デフォルトではチェックが入っていません。つまり、レコードが削除されると、ストレージエンジン内のファイルも同時に削除されます。
「元の URL」を選択した場合、最終的なストレージアドレスはいくつかの部分を結合して構成されます。
例:https://cdn.nocobase.com/app/user/avatar/20240529115151.png。
「NocoBase URL」を選択した場合、ファイルレコードは /files/... 形式の NocoBase パスを返します。ストレージサービスへのアクセス時には、上記の設定が引き続き使用されます。
ファイル URL とアクセス制御
ストレージエンジンは、NocoBase URL またはストレージサービスの元の URL を返すことができます。デフォルトでは NocoBase URL が使用されます。外部サービスがストレージアドレスを直接使用する必要がある場合にのみ、元の URL を選択してください。
この設定はストレージエンジン単位で適用されます。保存すると、そのエンジンの既存ファイルと新しくアップロードされたファイルの両方が、選択した形式の URL を返します。ファイルの移動や再アップロードは行われません。

NocoBase URL
ファイルレコードは、NocoBase が提供するアクセスパスを返します。例:
この URL へのリクエストは最初に NocoBase を経由し、対応するファイルレコードに設定された閲覧権限に従います。権限チェックに成功した後で、NocoBase がファイルを読み取るか、ストレージサービスが生成したアドレスへリダイレクトします。
これは推奨されるデフォルト設定です。ファイルレコードは NocoBase パスを返すため、呼び出し側はローカルストレージとクラウドストレージのどちらが使用されているかを意識する必要がありません。
元の URL
ファイルレコードは、ストレージサービスが生成したアドレスを直接返します。例:
この URL は NocoBase を経由せず、ファイルレコードの閲覧権限もチェックしません。ローカルストレージではローカルの静的ファイルアドレス、クラウドストレージでは通常、オブジェクトストレージまたは CDN のアドレスになります。
Markdown、外部ページ、またはサードパーティサービスがストレージアドレスを直接使用する必要がある場合にのみ、元の URL を選択してください。
元の URL を選択すると、有効な URL を持つすべてのユーザーが NocoBase の権限チェックを迂回してファイルにアクセスできます。URL に署名や有効期限がない場合は、Bucket とファイルが公開読み取りを許可していることを確認してください。
公開アクセスを許可
「公開アクセスを許可」は「NocoBase URL」を選択した場合にのみ有効です。チェックすると、ストレージエンジンは引き続き NocoBase URL を返しますが、アクセス時に NocoBase がファイルレコードの権限をチェックしなくなります。URL を持つすべてのユーザーがファイルにアクセスできます。
このオプションは、ストレージサービス自体の公開読み取り設定を変更しません。NocoBase がファイルレコードの権限をチェックするかどうかだけを制御します。
選択方法
ローカルストレージ、Amazon S3、Aliyun OSS、Tencent COS は一時署名 URL を生成しません。NocoBase URL とファイルレコードの権限を有効にしていても、ストレージサービスの元のアドレスをすでに取得しているユーザーは、引き続きファイルへ直接アクセスできます。
契約書、身分証明書、社内資料など公開すべきでないファイルには S3 Pro を使用し、専用のアクセス制御設定を参照してください。
公開ストレージエンジンをすでに使用していて、既存ファイルを S3 Pro に移行する場合は、S3 Pro への移行を参照してください。

