HTTP API
添付ファイルフィールドとファイルコレクションへのファイルアップロードは、HTTP API を介して行うことができます。添付ファイルフィールドまたはファイルコレクションが使用するストレージエンジンによって、呼び出し方法が異なります。
サーバーサイドアップロード
プロジェクトに組み込まれている S3、OSS、COS などのオープンソースのストレージエンジンでは、HTTP API を使ったアップロードはユーザーインターフェースからのアップロードと同じように機能し、ファイルはすべてサーバー経由でアップロードされます。API を呼び出す際には、ユーザーログインに基づく JWT トークンを Authorization リクエストヘッダーに含める必要があります。含めないと、アクセスは拒否されます。
添付ファイルフィールド
添付ファイルテーブル(attachments)リソースに対して create 操作を実行し、POST リクエストを送信します。file フィールド経由でバイナリコンテンツをアップロードすると、ファイルはデフォルトのストレージエンジンにアップロードされます。
ファイルを別のストレージエンジンにアップロードしたい場合は、attachmentField パラメーターを使って、対象のコレクションフィールドに設定されているストレージエンジンを指定できます(設定されていない場合は、デフォルトのストレージエンジンにアップロードされます)。
ファイルコレクション
ファイルコレクションにアップロードすると、自動的にファイルレコードが生成されます。ファイルコレクションリソースに対して create 操作を実行し、POST リクエストを送信して、file フィールド経由でバイナリコンテンツをアップロードしてください。
ファイルコレクションにアップロードする際、ストレージエンジンを指定する必要はありません。ファイルは、そのコレクションに設定されているストレージエンジンにアップロードされます。
クライアントサイドアップロード
商用プラグイン S3-Pro を介して提供される S3 互換のストレージエンジンでは、HTTP API を使ったアップロードはいくつかのステップに分けて実行する必要があります。
添付ファイルフィールド
-
ストレージエンジン情報の取得
storagesコレクションに対してgetBasicInfo操作を実行し、ストレージ名(storage name)を渡してストレージエンジンの設定情報をリクエストします。返されるストレージエンジンの設定情報の例:
-
サービスプロバイダーからの署名付きURL情報の取得
fileStorageS3リソースに対してcreatePresignedUrl操作を実行し、POST リクエストを送信します。リクエストボディにファイル関連情報を含めることで、署名付きアップロード情報を取得できます。説明:
- name: ファイル名
- size: ファイルサイズ(バイト単位)
- type: ファイルの MIME タイプ。詳細は 一般的な MIME タイプ を参照してください。
- storageId: ストレージエンジンのID(最初のステップで返される
idフィールド) - storageType: ストレージエンジンのタイプ(最初のステップで返される
typeフィールド)
リクエストデータの例:
取得される署名付き情報のデータ構造は以下の通りです。
-
ファイルのアップロード
返された
putUrlを使ってPUTリクエストを送信し、ファイルをボディとしてアップロードします。説明:
- putUrl:前のステップで返された
putUrlフィールド - file_path:アップロードするローカルファイルのパス
リクエストデータの例:
- putUrl:前のステップで返された
-
ファイルレコードの作成
アップロードが成功したら、添付ファイルテーブル(
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: 最初のステップで返された
idフィールド
リクエストデータの例:
- title: 前のステップで返された
ファイルコレクション
最初の3つのステップは添付ファイルフィールドのアップロードと同じですが、4番目のステップではファイルレコードを作成する必要があります。ファイルコレクションリソースに対して 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: 最初のステップで返された
idフィールドリクエストデータの例:

