5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FileMakerAdvent Calendar 2017

Day 11

FileMakerでFTPにアップロード

Last updated at Posted at 2017-12-10

はじめに

前回、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サーバにアップロードしてみます。
スクリプトは以下になります。

定義.jpg

ポイントとしては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になって、外部とのやり取りがだいぶ楽になりました!

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?