前回の記事では、FileMakerのcurlを使ってファイル内容を取得しました。
今回は、ファイルサーバーなどからファイル自身をダウンロードする方法です。
前回の記事を読まなくても大丈夫!
ホスト側に他システムからcsvやExcelでテンポラリ的にデータを出力して、FileMakerにそのデータを取り込む、というような流れです。
図にすると、こんな感じですね。
実行環境
前回同様、cURLの扱えるようになったFileMaker Pro ver.16以上でお試しください。
この記事用に作成したサンプルは、FileMaker Pro 19.6.3です。
curlがちょっと不安な方
こちらで、注意点をまとめています。
合わせてご覧ください。
本家curlオプション一覧
Claris FileMakerのヘルプにある、「サポートされている cURL オプション」は必ずチェックしましょう。
今回、この記事で使用しているオプションは、ほんの一例です。
前提
ファイルサーバーなどで、ポートを開けておく設定などはすでに済んでいるものとします。
基本的なダウンロードのcurl文
curl -u {user}:{pass} -O ftp://{host}/{file}
"-u"はFTP用に割り振られたユーザ名とパスワードを指定します。
"-O"はアウトプットの"O"です。
接続先のアドレスとダウンロードするファイルをcurl文に指定することで、目的のファイルをダウンロードできます。
ということで、今回必要な情報は、以下になります。
・FTPなどのユーザー名
・FTPなどのパスワード
・接続するサーバーのアドレス
・ダウンロードするファイル名
FileMakerのステップに割り当てる
この、curl文をFileMakerの「URL から挿入」に割り当てます。
基本的にcurlで使うオプションは同じように使えます。
FileMakerでサポートされているcurlオプションには限りがありますので、ヘルプのサポートされている cURL オプションは必ずチェックしましょう。
大事なことなので、記事中2回言いました。
実装はこれだけです。
この1行だけです。
実際に運用で使えるようにするには、エラー処理やファイル名の組み立てなどあるかと思いますが、実際にファイルをダウンロードする行はこの1行のみです。
TLS/SSLの場合のオプション
TLS/SSL通信を使う場合は、curlでいう"--ftp-ssl"は、FileMakerでは"--ssl"を指定します。
「URL から挿入」のcURLオプションの指定部分に、"--ssl"を追加するだけです。
"--ssl"を"-o"の後ろにつづけて書くと、ファイル名と認識されてしまうので、前につけましょう。
SCP/SFTPの場合のオプション
基本的にオプションは変わらないです。
変わるのは、「URL を指定」の部分で指定する、"ftp"が"scp"や"sftp"に変わるだけです。
ファイル転送のプロトコルが変わるので、プロトコル名を変更する、という感じでしょうか。。。
追加するオプションがあるとすれば、"--pubkey"など、セキュリティ関連でパブリックキーファイルを指定して使用します。
FTPはユーザー名やパスワードなどの認証情報や転送するデータを暗号化しないで送ります。
このため、ファイルの盗聴などリスキーと言われています。
TLS/SSLやSFTPなどでより安全にデータの送受信を実装しましょう〜
ファイルをダウンロードできたら
あとは煮るなり焼くなりしましょう。
例えば、csvファイルでしたら、「ファイルに関連するスクリプトステップ」で中身をFileMakerのテーブルなどに展開するもよし、加工して再度ファイルをアップロードしてもよし。
そしたらアップロードもしたいよね
ということで、アップロードも備忘録として次回残しておきます。