はじめに
この記事では、CAIプロセスの実行を通じて、Secure Agent環境にファイルをアップロード(保存)する実装を確認します。
なお、この記事は次の記事の内容を理解していることを前提としています。
- はじめてCAIを使う際に
- プロセスの作成と実行(匿名認証と基本認証)
- 割り当てステップと、各種変数フィールドの利用
- プロセスオブジェクトによるユーザー定義変数の利用
- CAIでXQueryを利用する時に覚えておきたいこと
- テキストファイルの作成
ファイルアップロードとSecure Agent環境への保存(multipart/form-data)
CAI プロセスの作成
次の手順では、テキストファイルを multipart/form-data としてアップロードしてテキストファイルの作成で定義したアプリケーション接続 recipe-appConn-FileWrite のイベント File Writer を使ってSecure Agent環境に保存するCAIプロセスを作成しています
-
CAIプロセスを次の設定で作成します。
- 名前を recipe-pca-fileUploadMultipart とする
- 匿名アクセス を許可する
- クラウドサーバー にデプロイする
-
入力フィールド inputAttach を タイプ=添付(Attachment) として定義します。
-
一時フィールドとして tmpFile を定義します。定義された接続タイプ にはアプリケーション接続 recipe-appConn-FileWrite を指定、タイプ として File Write Task を指定します。
-
出力フィールドとして output を定義します。定義された接続タイプ にはアプリケーション接続 recipe-appConn-FileWrite を指定、タイプ として Delimited Content Serialization Result を指定します。
-
割り当てステップを選択して、次のように設定します。
計算式sff:getAttachmentName($input.inputAttach)
はアップロードしたファイル名を取得しています。 -
サービスステップの サービス タブを選択して サービスタイプ=接続、接続=recipe-appConn-FileWrite、アクション=FileWriter を指定します。
-
サービスステップの 入力フィールド タブを選択して、次のように設定します(Attachmentフィールドは、フィールドの追加ボタンをクリックして追加します)。
CAIプロセスの実行
curlコマンドを例とした動作確認結果です。ファイルのアップロードが行えている動作を確認できます。なお、curlの-Fオプションを使用しているため、HTTPリクエスト時のContent-Typeはmultipart/form-dataによりファイルのアップロード処理が実行されています。
//アップロード用のテキストファイル作成
echo "HelloWorld" > /opt/infaUSW5/ff/recipe-fileUploadMultipart.txt
//curlによるCAIプロセスの実行
curl https://<---ご利用のIICS/CAIサーバー--->recipe-psa-fileUploadMultipart \
> -F "inputAttach=@/opt/infaUSW5/ff/recipe-fileUploadMultipart.txt"
//実行結果の確認
$ cat /opt/infaUSW5/ff/tgt/recipe-fileUploadMultipart.txt
HelloWorld
興味深いポイントは、今回は、CAIプロセスのデプロイ先を クラウドサーバー としていましたが、実際にファイルが保存されている場所はSecure Agent実行環境という点です。これはアプリケーション接続がSecure Agentで動いていることに起因した動作です。
Secure Agentにファイルを保存したい場合であっても、必ずしもCAIプロセスをSecure Agentにデプロイする必要はありません。