このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
添付ファイルフィールドとファイルコレクションのファイルアップロードは、どちらもHTTP APIで処理できます。添付ファイルやファイルコレクションが利用するストレージエンジンによって、呼び出し方法がそれぞれ異なります。
S3、OSS、COSなど、プロジェクトに組み込まれているオープンソースのストレージエンジンの場合、HTTP APIはUIのアップロード機能と同じように呼び出され、ファイルはすべてサーバーサイドでアップロードされます。APIを呼び出す際には、ユーザーログインに基づくJWTトークンをAuthorizationリクエストヘッダーに含める必要があります。含めないとアクセスが拒否されますのでご注意ください。
添付ファイルコレクション(attachments)リソースに対してcreate操作を実行し、POSTリクエストを送信してfileフィールドからバイナリコンテンツをアップロードします。この呼び出し後、ファイルはデフォルトのストレージエンジンにアップロードされます。
異なるストレージエンジンにファイルをアップロードしたい場合は、attachmentFieldパラメーターを使って、所属するコレクションフィールドに設定されているストレージエンジンを指定できます(設定されていない場合は、デフォルトのストレージエンジンにアップロードされます)。
ファイルコレクションにアップロードすると、自動的にファイルレコードが生成されます。ファイルコレクションリソースに対してcreate操作を実行し、POSTリクエストを送信してfileフィールドからバイナリコンテンツをアップロードしてください。
ファイルコレクションへのアップロードでは、ストレージエンジンを指定する必要はありません。ファイルは、そのコレクションに設定されているストレージエンジンにアップロードされます。
商用プラグイン S3-Pro を通じて提供されるS3互換のストレージエンジンの場合、HTTP APIでのアップロードはいくつかのステップに分けて呼び出す必要があります。
ストレージエンジン情報の取得
ストレージコレクション(storages)に対してgetBasicInfo操作を実行し、ストレージ名(storage name)を含めてストレージエンジンの設定情報をリクエストします。
返されるストレージエンジン設定情報の例:
サービスプロバイダーからプリサイン情報(Presigned URL)を取得
fileStorageS3リソースに対してcreatePresignedUrl操作を実行し、POSTリクエストを送信してbodyにファイル関連情報を含め、プリサインアップロード情報を取得します。
注:
name: ファイル名size: ファイルサイズ(バイト単位)type: ファイルのMIMEタイプです。参考:一般的なMIMEタイプstorageId: ストレージエンジンのID(ステップ1で返されるidフィールド)storageType: ストレージエンジンのタイプ(ステップ1で返されるtypeフィールド)リクエストデータの例:
取得したプリサイン情報のデータ構造は以下の通りです。
ファイルのアップロード
返されたputUrlを使ってPUTリクエストを実行し、ファイルをbodyとしてアップロードします。
注:
putUrl: 前のステップで返されたputUrlフィールドfile_path: アップロードするローカルファイルのパスリクエストデータの例:
ファイルレコードの作成
アップロードが成功したら、添付ファイルコレクション(attachments)リソースに対してcreate操作を実行し、POSTリクエストを送信してファイルレコードを作成します。
data-rawの依存データについて:
title: 前のステップで返されたfileInfo.titleフィールドfilename: 前のステップで返されたfileInfo.keyフィールドextname: 前のステップで返されたfileInfo.extnameフィールドpath: デフォルトは空size: 前のステップで返されたfileInfo.sizeフィールドurl: デフォルトは空mimetype: 前のステップで返されたfileInfo.mimetypeフィールドmeta: 前のステップで返されたfileInfo.metaフィールドstorageId: ステップ1で返されたidフィールドリクエストデータの例:
最初の3つのステップは添付ファイルフィールドへのアップロードと同じです。ただし、4番目のステップでは、ファイルコレクションリソースに対してcreate操作を実行し、POSTリクエストを送信してbodyにファイル情報をアップロードすることで、ファイルレコードを作成する必要があります。
data-rawの依存データについて:
title: 前のステップで返されたfileInfo.titleフィールドfilename: 前のステップで返されたfileInfo.keyフィールドextname: 前のステップで返されたfileInfo.extnameフィールドpath: デフォルトは空size: 前のステップで返されたfileInfo.sizeフィールドurl: デフォルトは空mimetype: 前のステップで返されたfileInfo.mimetypeフィールドmeta: 前のステップで返されたfileInfo.metaフィールドstorageId: ステップ1で返されたidフィールドリクエストデータの例: