pkg: "@nocobase/plugin-file-storage-s3-pro"
ファイルストレージ:S3 (Pro)
ファイルストレージ:S3 (Pro)Professional Edition+はじめに
ファイル管理プラグインを基盤として、S3 プロトコル互換のファイルストレージタイプを新たに追加しました。Amazon S3、Alibaba Cloud OSS、Tencent Cloud COS、MinIO、Cloudflare R2 など、S3 プロトコルをサポートするあらゆるオブジェクトストレージサービスを簡単に連携でき、ストレージサービスの互換性と柔軟性がさらに向上します。
機能
-
クライアントアップロード:ファイルのアップロードは NocoBase サーバーを経由せず、ストレージサービスに直接接続されます。これにより、より効率的で高速なアップロード体験が実現します。
-
プライベートアクセス:ファイルにアクセスする際、すべての URL は署名付きの一時的な認証アドレスとなります。これにより、ファイルアクセスのセキュリティと有効期限が保証されます。
ユースケース
-
ファイルテーブル管理:アップロードされたすべてのファイルを一元的に管理・保存し、さまざまなファイルタイプと保存方法をサポートすることで、ファイルの分類と検索を容易にします。
-
添付ファイルフィールドストレージ:フォームやレコードでアップロードされた添付ファイルのデータストレージとして使用され、特定のデータレコードとの関連付けをサポートします。
プラグイン設定
-
plugin-file-storage-s3-proプラグインを有効にします。 -
「Setting -> FileManager」をクリックして、ファイル管理設定にアクセスします。
-
「Add new」ボタンをクリックし、「S3 Pro」を選択します。

- ポップアップウィンドウが表示されたら、多くのフォーム項目を記入する必要があります。以下のドキュメントを参照して、ご利用のファイルサービスに関連するパラメーター情報を取得し、フォームに正しく入力してください。

サービスプロバイダーの設定
Amazon S3
バケットの作成
-
Amazon S3 コンソールにアクセスします。
-
右側の「Create bucket」ボタンをクリックします。

- バケット名(Bucket Name)を入力し、その他のフィールドはデフォルト設定のままで構いません。ページ下部までスクロールし、「Create」ボタンをクリックして作成を完了します。


CORS 設定
- バケットリストから、先ほど作成したバケットを見つけてクリックし、詳細ページにアクセスします。

- 「Permission」タブに移動し、CORS 設定セクションまでスクロールします。


- 以下の設定を入力し(必要に応じてカスタマイズ可能)、保存します。

AccessKey と SecretAccessKey の取得
- ページ右上の「Security credentials」ボタンをクリックします。

- 「Access Keys」セクションまでスクロールし、「Create Access Key」ボタンをクリックします。

- 規約に同意します(ここではメインアカウントでのデモンストレーションですが、本番環境では IAM の使用を推奨します)。

- 表示された Access Key と Secret Access Key を保存します。

パラメーターの取得と設定
-
AccessKey ID と AccessKey Secret は、前の手順で取得した値です。正確に入力してください。
-
バケットの詳細ページの「Properties」パネルにアクセスすると、バケット名とリージョン(Region)情報を取得できます。

パブリックアクセス(オプション)
これは必須の設定ではありません。アップロードしたファイルを完全に公開する必要がある場合に設定します。
- 「Permissions」パネルに移動し、「Object Ownership」までスクロールして「Edit」をクリックし、ACL を有効にします。

- 「Block public access」までスクロールし、「Edit」をクリックして、ACL による制御を許可するように設定します。

- NocoBase で「Public access」にチェックを入れます。
サムネイル設定(オプション)
この設定はオプションであり、画像プレビューのサイズや効果を最適化したい場合に使用します。このデプロイメントには追加費用が発生する可能性があるため、詳細については AWS の関連規約を参照してください。
-
Dynamic Image Transformation for Amazon CloudFront にアクセスします。
-
ページ下部の「
Launch in the AWS Console」ボタンをクリックして、デプロイを開始します。
-
プロンプトに従って設定を完了します。以下のオプションには特に注意が必要です。
- スタックを作成する際、ソース画像を含む Amazon S3 バケット名を指定する必要があります。以前に作成したバケット名を入力してください。
- デモ UI をデプロイすることを選択した場合、デプロイ完了後にそのインターフェースを使用して画像処理機能をテストできます。AWS CloudFormation コンソールでスタックを選択し、 「Outputs」タブに移動して「DemoUrl」キーに対応する値を見つけ、そのリンクをクリックしてデモインターフェースを開きます。
- このソリューションは、
sharpNode.js ライブラリを使用して画像を効率的に処理します。GitHub リポジトリからソースコードをダウンロードし、必要に応じてカスタマイズできます。

-
設定が完了したら、デプロイステータスが「
CREATE_COMPLETE」になるまで待ちます。 -
NocoBase の設定では、以下の点に注意してください。
Thumbnail rule:画像処理に関連するパラメーター(例:?width=100)を入力します。詳細については、AWS ドキュメントを参照してください。Access endpoint:デプロイ後の Outputs -> ApiEndpoint の値を入力します。Full access URL style:Ignore を選択する必要があります(設定時にバケット名が入力されているため、アクセス時には不要です)。

設定例

Alibaba Cloud OSS
バケットの作成
- OSS コンソールを開きます。

- 左側メニューの「Buckets」を選択し、「Create Bucket」ボタンをクリックしてバケットの作成を開始します。

-
バケット関連情報を入力し、最後に「Create」ボタンをクリックします。
-
バケット名(Bucket Name):ご自身のビジネス要件に合わせて自由に設定してください。
-
リージョン(Region):ユーザーに最も近いリージョンを選択してください。
-
その他の設定は、デフォルトのままでも、必要に応じてカスタマイズしても構いません。
-

CORS 設定
- 前の手順で作成したバケットの詳細ページに移動します。

- 中央メニューの「Content Security -> CORS」をクリックします。

- 「Create Rule」ボタンをクリックし、関連する内容を入力して下までスクロールし、「OK」をクリックします 。以下のスクリーンショットを参考にしたり、より詳細な設定を行ったりすることも可能です。

AccessKey と SecretAccessKey の取得
- 右上のアバターの下にある「AccessKey」をクリックします。

-
ここではデモンストレーションの便宜上、メインアカウントを使用して AccessKey を作成します。本番環境での使用には RAM を使用して作成することを推奨します。詳細については、Alibaba Cloud ドキュメントを参照してください。
-
「Create AccessKey」ボタンをクリックします。

- アカウント認証を行います。

- 表示された Access Key と Secret Access Key を保存します。

パラメーターの取得と設定
-
AccessKey ID と AccessKey Secret は、前の手順で取得した値です。
-
バケットの詳細ページに移動して、バケット名を取得します。

- 下にスクロールしてリージョン(Region)を取得します(末尾の「.aliyuncs.com」は不要です)。

- エンドポイントアドレスを取得し、NocoBase に入力する際には「https://」プレフィックスを追加する必要があります。

サムネイル設定(オプション)
この設定はオプションであり、画像プレビューのサイズや効果を最適化する必要がある場合にのみ使用します。
-
Thumbnail ruleに関連するパラメーターを入力します。具体的なパラメーター設定については、画像処理パラメーターに関する Alibaba Cloud ドキュメントを参照してください。 -
Full upload URL styleとFull access URL styleは同じ設定のままで構いません。
設定例

MinIO
バケットの作成
- 左側の「Buckets」メニューをクリックし、「Create Bucket」をクリックして作成ページに移動します。
- バケット名を入力後、「保存」ボタンをクリックします。
AccessKey と SecretAccessKey の取得
- 「Access Keys」に移動し、「Create access key」ボタンをクリックして作成ページに移動します。

- 「保存」ボタンをクリックします。

- ポップアップウィンドウに表示される Access Key と Secret Key を保存し、その後の設定で使用します。

パラメーター設定
-
NocoBase の「File manager」ページに移動します。
-
「Add new」ボタンをクリックし、「S3 Pro」を選択します。
-
フォームに記入します。
- AccessKey ID と AccessKey Secret:前の手順で保存したテキストを使用します。
- Region:プライベートデプロイされた MinIO にはリージョンの概念がないため、「"auto"

