Pyftp 1月31日, 2021

1 REMOTE_PATHは,リモートのルート(例えば'public_html/')
2 LOCAL_PATHは,ローカルのルート(例えば'/Users/_NAME_/sites/_HP_/')
3 PWの扱いには更に工夫が必要
FTPする時,遥か昔は初期の"Cyberduck"が好みだった。でもその有料版が併存し初めた頃からはNcFTPに乗り換え,便利に使用してきた。そして,去年,思いたってPythonのスクリプトで省力化した。
省力化の背景は,ホームページのデータはwebbyというRubyのプログラムを使用して組み上げていることにある。MacBook Proに用意したポスト記事を,メニューや画像とともにページに仕立ててサーバーに転送する。転送先がsshに対応していれば,転送までwebbyがやってくれるので造作もないが,そうでない場合は,webbyが更新したファイルのリストを吐くので,そのファイルをNcFTPに指定して手動で送る。この更新ファイルリストを読み取って,サーバーに転送する手順は自動化がそう難しくないと思ったのだ。
スクリプトでは,一応,転送先がより古いことを確認した上で更新ファイルを送っていて,ファイルが存在しない場合はそのまま転送する。実に速い。不要になるファイルがある場合に削除するのは,従来通りNcFTPによる。つまり手動。スクリプトにこの処理も加えることはできそうだけど,それならファイル更新というより,「フォルダーの同期」として広げた方がよいか。簡単そうだし,そのうち考えてみよう。それにそこまでやれば,ssh以外の手段としてwebbyに組み込むこともできそうに思える。