はじめに
前回、JSONの文字列を作成しました。
あとは作成したJSON文字列をFTPでファイルでアップロードできれば、
データの作成からアップロードまでをFileMakerだけで完結できて、
少し幸せになれそうです♪
そこで今回は、作成したJSON文字列をファイルでFTPにアップロードしたいと思います。
ちなみに、環境はFileMaker 16 (またはAdvanced)です。
今までのやり方
パッと思いつくところでこんな感じですが、
みなさん、どうされていますでしょうか?
- プラグインを使う。
- AppleScriptまたはバッチ(PowerShell)を使う。
- いったんファイルを出力して、別プログラムでFTPにアップロードする。
ちなみに私は、プラグインがなんか苦手 & AppleScriptやバッチは両方対応しようとすると、
開発環境が2ついる事から、いったんファイル出力→別プログラムでUPすることが多いです。
でも、どれも面倒ですよね。。。
FileMaker16から追加されたcURLオプション
URLから挿入
は、FileMaker12で追加されたときから、
FTPプロトコルがサポートされていました。
が、大体FTPって認証があるので、上手く使えない状態でした。
ところが、FileMaker16から追加されたcURLオプションで
ユーザ情報も送れるみたいなので、実際にやってみましょう!
(httpプロトコルならヘッダ情報が送れるのも夢が広がりますよねっ!)
JSONファイルをアップしてみた
ここではSSLの不要なFTPサーバにアップロードしてみます。
スクリプトは以下になります。
ポイントとしては2つあり、
ひとつは、URLから挿入
のURLを指定
では、
ftpプロトコル + アップしたいファイルパスを記載します。
ちなみに、既に同じ名前のファイルが存在するときは上書きされました。
もうひとつは、cURLオプションでJSONの内容を渡すとき、一度変数に入れて
"-T $MakeJSON"
のように、変数名を文字の中に入れることです。
この、変数名を文字の中に入れるのがちょっと違和感あるのですが。。。
FileMakerの独自仕様なんでしょうか?
ここをいつもの感じで "-T " & $MakeJSON
としてしまうと、
ファイルがアップロードされないので、注意してください。
まとめ
ぜひ一度、みなさんの環境でチャレンジしてみてください。
あと試せていないですが、SSLが必要なFTPは、
ftps://~というURLに変更して、cURLオプションに--tlsv1.2
など、
サーバにあったSSLのバージョンを指定すればできそうな気がします。
(また試してみたいと思います。)
あと今回JSONをUPしたんですが、cURLにJSONの文字列を渡しているだけなので
ExecuteSQLなどでCSVの形式で渡しても、FTPにCSVもアップロードできそうです!
(これも試してみたいー!)
ほんとにFileMaker16になって、外部とのやり取りがだいぶ楽になりました!