質問
HULFT Squareで作成したREST APIジョブに対してマルチパート/フォーム形式のリクエストを送信し、ファイルをアップロードする処理について、ファイル名を動的に指定する方法はありますか?
回答
REST APIジョブにアップロードするファイル名を動的に指定したい場合、APIクライアント側のリクエストデータにおいて、ファイルをアップロードしているパートデータの属性値「filename」の値を変更いただく事で指定いただけます。
APIプロジェクトのリクエスト本文に「マルチパート/フォームデータ」を、データタイプに「ファイル」を指定した場合、設定項目の右端にて指定するスクリプト変数にファイル名のデータが格納されます。
こちらのスクリプト変数に格納されるデータですが、データタイプに「ファイル」を指定したパートデータにけおる属性名「filename」の属性値のデータが格納される仕様となります。
以下の公式リファレンスにおける記載の通り、-Fオプションにおけるファイルパスの記載の後続に対してセミコロンを挟んで属性値を指定する事が可能です。
You can also explicitly change the name field of a file upload part by setting filename=, like this:
curl -F "file=@localfile;filename=nameinpost" example.com
アプリケーション側のリファレンスをご参照下さい。
補足
REST APIジョブの仕様として、
ヘッダーや本文のようなリクエスト内部の記述に日本語のようなマルチバイト文字を利用する事が出来ません。
ファイル名に対してマルチバイト文字を指定したい場合、マルチバイト文字をURLエンコードしたデータをクエリパラメータに指定していただく事で、指定したマルチバイト文字のデータ値をクエリパラメータ経由で受領する事が可能です。
クエリパラメータをREST APIジョブで受領する場合は、APIプロジェクトのリクエストでクエリパラメータを追記する事で任意のスクリプト変数に格納いただけます。
コメント
0件のコメント
記事コメントは受け付けていません。