このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
添付ファイルフィールドとファイルコレクションへのファイルアップロードは、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:アップロードするローカルファイルのパス
リクエストデータの例:
ファイルレコードの作成
アップロードが成功したら、添付ファイルテーブル(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フィールドリクエストデータの例:
最初の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フィールドリクエストデータの例: