私は頻繁に FTP 接続を介して Web サイト開発をライブで行っています。つまり、私は組み込みの FTP ウィンドウを備えたコード エディターを使用し、ファイルをプッシュ/プルして作業したり、変更をアップロードしたりします。これは主に、ローカル開発サーバーを作成しようとするのが合理的でないためです。いずれにせよ、多くの作業をせずに実用的にするには、コンピューターが多すぎます。
問題は、我が家のインターネット接続が安定していないことです。これは高速で信頼性が高いですが、私が取り組んできた他のどの接続 (ワイヤレス DSL) よりもはるかに頻繁に不具合が発生する傾向があり、その結果、接続が切断される頻度が高すぎます。(この点に関しては、AT&T の電話と同じくらい信頼できます。) FTP を使用している場合、ファイル転送の途中で接続が切断されると、回復が困難になる可能性があります。まず、接続が切断されると、空のファイルがサーバーに保存されます (これはどのように役立ちますか?)、作業していたページが完全に壊れてしまいます。それ自体がタイムアウトになり、そのファイルに再度アクセスするには、SSH で接続して再起動する必要があります。
このプロセスだけでも有益でした。クライアント側でいくつかのデータ保護技術を構築し、切断された接続によってクライアントがハングしたりクラッシュしたりした場合にサーバーが最近の変更を食べないようにすることを教えてくれたからです。とはいえ、全体としてはかなり失敗した状況であり、まったく仕事ができていないことに驚いています。
長い、長い文脈、私は知っていますが、私の質問はこれです:私のような「不安定な」接続を処理するように設計されたファイル転送プロトコルはありますか? たとえば、3G テザー接続を介してファイルを転送しようとすると、特に旅行中に同じ結果になると思います。FTP と SFTP はどちらも永続的な接続に依存しているようで、ドロップされたパケットを処理できますが、再接続によるソケット全体の損失は処理できません。ファイル転送デーモンは、対話しているユーザーの状態を保存できる必要があるように思えます。したがって、失敗した転送を検出し、ユーザーが適切な時間内に再接続した場合に「再開」する準備ができている必要があります。
何か知っている人がいたらよろしくお願いします。私はそのようなプロトコルを自分で書こうと真剣に考えています (たとえば、ページで ajax をコーディングして障害のある接続を処理することに成功しました) が、既に利用可能な解決策がある場合は飛び込みたくありません。 .