MacとFTPサーバー間で定期的にファイルを転送しているなら、こう思ったことがあるはずです:毎回手動でやるより良い方法があるはずだ。あります。ただし、すべてのアプローチが同じように機能するわけではなく、中には解決するより多くの問題を生み出すものもあります。
手動転送の問題
手動のFTP転送は、クライアントを開き、接続し、正しいフォルダに移動し、ファイルを選択し、待って、閉じる作業が毎回発生します。転送を忘れればファイルが溜まります。早すぎると書きかけのファイルを掴みます。記憶だけで作業すると、何を送ったか把握できなくなります。
定期的にファイルを移動する人。エージェンシーに納品するフォトグラファー、パートナーと同期する企業、アセットを配布するチーム。にとって、これは毎週何時間もの繰り返し作業に積み重なります。価値を生まない作業。機械がやるべき作業です。
一般的なアプローチが不十分な理由
最初の発想はたいていスクリプトを書くことです。スクリプトはFTP操作を自動化でき、動作します。何かが変わるまで。認証情報の変更、サーバー移行、ネットワークの問題。スクリプトは無音で失敗します。何かがおかしくなっても通知はなく、誰も見ていないログがあるだけで、リトライロジックは自分で書かなければなりません。スクリプトの保守には継続的な開発者の時間が必要です。技術的でないユーザーには、そもそも選択肢になりません。
汎用同期ツールはFTPを多くのバックエンドの一つとして扱います。結果は複雑な同期タスク向けに設計されたツール。マルチクラウド構成には強力ですが、「このFTPフォルダを監視して新しいファイルをダウンロードする」というシンプルなワークフローには過剰で複雑です。
AutomatorなどのmacOS組み込みツールはネイティブFTPサポートがありません。Automatorを使ったFTP自動化は結局シェルスクリプトが必要になります。
正しい解決策の条件
MacでFTP転送をうまく自動化するには、見た目より難しいいくつかの要件があります:
- ポーリングではなくイベント駆動の検知。アップロード用のローカルフォルダ監視には、macOSネイティブのファイルシステム通知API「FSEvents」を使い、1秒以下の検知を実現すべきです。スクリプトや汎用ツールはこれをしません。
- ファイル安定性チェック。まだ書き込み中のファイルをアップロードすると壊れた転送になります。正しいツールはファイルの変化が止まるまで待ちます。
- ネイティブMacのフィードバック。転送完了や失敗時のmacOS通知。リアルタイムアクティビティログ。メニューバーでの視覚的なステータス。
- 継続的なメンテナンスゼロ。一度設定したら無期限にバックグラウンドで動作し続けます。
- 認証情報のセキュリティ。パスワードはmacOSキーチェーンに保存。設定ファイルや平文テキストには保存しません。
FTPull + FTPush:まさにこのために作られた
FTPullとFTPushは、FTP自動化の各方向を担う2つの独立したMacアプリです。FTPullはリモートのFTP/SFTP/FTPSサーバーを監視し、新しいファイルを自動ダウンロードします。FTPushはローカルフォルダを監視し、新しいファイルが現れた瞬間に自動アップロードします。
どちらもメニューバーに常駐し、アイドル時はCPUをほぼ使いません。どちらも認証情報にmacOSキーチェーンを使用します。どちらも一度設定したらあとは放置です。
設計思想は明確です:一つのツール、一つの仕事、正しく実行。FTPアタッチメント付きのスイスアーミーナイフではありません。メンテナンスが必要なスクリプトでもありません。バックグラウンドで静かに動作し、ファイルを転送し、完了を知らせるアプリです。
FTPull + FTPushで得られるもの
- FTPull:任意のFTP/SFTP/FTPSサーバーからの自動ダウンロード、設定可能なポーリング間隔、拡張子フィルター、スケジューリング、再帰フォルダ監視、転送履歴
- FTPush:FSEventsによる瞬時のローカル検知、ファイル安定性チェッカー、同時アップロード、アップロード後のアクション(アーカイブ、削除、スクリプト実行)、帯域幅制限、Finderタグ
- 両方:複数の同時接続、macOS通知、リアルタイムログ、クレジットカード不要の14日間無料トライアル
MacとFTPサーバー間で定期的にファイルを移動しているなら、これが作業を完全になくす設定です。一度設定したら、永遠に忘れていい。
