「デルタアップロード」を許可するFTPまたはFTPのようなクライアントはありますか。つまり、変更されたファイルの一部のみをアップロードしますか?


9

FTP経由でかなり大きなテキストファイル(Web開発用のCSSファイル)に小さな変更を加えることがよくあります。インターネット接続が非常に遅いため、非常に苦痛なプロセスです。

ファイルの1文字だけを変更した場合でも、ファイル全体がサーバーに再アップロードされるまで、しばらく座って待つ必要があります。

リモートコンピューターでホストされているファイルをローカルコンピューターで編集できる方法はありますか。ファイルを保存するとき、変更されたファイルの部分のみをアップロードしますか?

編集:現時点では、FTPクライアントをどのように使用しているのかはっきりしていません。基本的に、WinSCPを使用してSFTP経由でリモートファイルを開きます。WinSCPはそれをtmpフォルダーに保存し、Sublime Textを起動して、編集を開始します。保存をクリックすると、WinSCPがファイルを自動的に再アップロードします。ファイルをコンピューターに永続的に保存することはありません。すべてWinSCPの一時フォルダーを介して行われます。そのため、この「ヒットアンドラン」タイプの方法で使用できるソリューションを探しています。


前のディスカッション

以前にこの質問をServerFaultに投稿しましたが、説明したように、gitなどの使用が提案されています。

gitまたは同様のバージョン管理ツールを使用すると、ファイルを保存するたびにコミットする必要がありますよね?それが自動的に実行できたとしても(つまり、Sublime Text保存ファイルでCtrl-Sを作成し、同時にgit pushを実行するマクロがある場合)、1時間あたり50〜100のCSSファイルの小さな編集を行う可能性があります。確かに私はスパムログアウトしたコミットログになってしまいますか?また、gitソリューションは柔軟性がありません。これは、編集しているファイルがgitリポジトリの一部であることに依存しているためです。

これまでに考えられる唯一の解決策は、rsyncを使用したある種のハッキングされたプロセスですが、それでも非常に面倒です。

  1. 必要なファイルを自分のコンピューターにダウンロードします(FTP / rsync / whatever経由)。
  2. (例)Sublime Textでファイルを開き、編集を開始します。
  3. バックグラウンドプロセスは、フォルダーのファイルの変更を監視しています。ファイルを保存すると、そのプロセスによってコンピューターからサーバーへのrsync操作が即座にトリガーされ、ファイルの変更された部分が転送されます。

ただし、リモートファイルまたはディレクトリパスを手動で設定または指定する必要があります。そうしないと、ローカルのrsyncスクリプトがファイルのrsyncの場所を認識できないため、この方法はまだ柔軟性がありません。この方法では、即座にランダムファイルを参照し、それを開いて、FTPクライアントのように保存することはできません。

このメソッドには、アップロードの進行状況バーのような目に見えるフィードバックもありません。


7
gitを使用するのが正解です。ここで探しているのは、練習不足の回避策です。あなたが何か間違ったことをして、物事を壊したらどうなりますか?Gitはロールバックを提供します。
TRiG 2016年

1
同意しません。リポジトリの一部ではない大きなテキストファイルの1行を単に変更したい場合はどうでしょうか。組織がgitを許可またはサポートしていない場合はどうなりますか?私の使用例は、リモートでホストされ、「ライブ」および「インプレース」で編集する必要があるファイルに対して、何百もの小さな変更を行っていることです。
WackGet 2016年

現在、大きなファイルでテストする時間がないので、これを回答ではなくコメントとして投稿しますが、Beyond Compareを調べてください。これは、FTP / SFTPで編集できるクロスプラットフォームのGUI差分ファイルであり、次のことができます。同期するラインを選択します。おそらくまだ理想的ではありませんが、実行可能です。彼らは無料の試用版も持っています。
Nick

回答:


7

Vimにはnetrwと呼ばれる組み込みプラグインがあり、Vimでリモートファイルを編集できます。Rsyncは、使用できるプロトコルの1つです。

:e rsync://user@hostname:port/path
:w rsync://user@hostname:port/path

もちろん、リモートマシンへのSSHアクセスがあり、それにVimがインストールされている場合は、Vimをリモートで使用する方が簡単な場合があります。その場合、Nano、Emacs、およびコマンドラインインターフェイスを備えたその他のエディターもオプションです。ただし、接続状態の悪さによっては、これは適切なオプションではない場合があります。


それはすべて言った、

リモートでホストされ、「ライブ」および「インプレース」で編集する必要があるファイルに数百の小さな変更を加える

gitが提供できるような信頼できるロールバックシステムがなければ、あなたとあなたの組織は避けられない間違いを犯したときに苦痛を懇願するだけです。


サーバーが任意のバージョンのLinuxを実行している場合、SSHは明らかな答えのようです。サーバーでまだ実行されていない場合は、サーバー管理者に設定を依頼します。
Charles Burge

あなたがた両方に感謝します; 私は完全なSSHアクセスがあり、サーバーで必要なものを構成できます。待ち時間が非常に長いことが多いため、リモートでVimを使用することはできません。また、Sublimeのようなデスクトップエディターを使用できるようにしたいと考えています。現在のところ、FTPクライアントをどのように使用しているのかはっきりしていません。基本的に、WinSCPを使用してリモートファイルを開き、編集を開始します。保存を押すと、WinSCPはファイルを自動的に再アップロードします。私は実際にそれを私のコンピューターの永続的なディレクトリにダウンロードしていません-WinSCPの一時フォルダーを介してすべてが行われます。質問を編集して明確にします。
WackGet 2016年

@WackGet Vimはデスクトップでも機能します。GVimと呼ばれます。CreamはVimの特定の構成であり、Sublime、メモ帳、Textmateなどのエディターに慣れているユーザーにとっては比較的簡単なはずです。WinSCPで実行しているのは、基本的にnetrwの動作です。一時的な場所にダウンロードし、保存するのを待ってから、指定したプロトコルを使用してリモートサーバーに書き込みます。
8ビットツリー2016年

@ 8bittreeありがとう、これは確かに役立つでしょう。これをVimベースのプラグインの使用に制限するため、これを元の質問への回答としてマークしません。誰かがnetrwのようなデルタ転送をFTPまたはFTPのようなクライアントに実装できれば、それは完璧です。現在、これはまだ見つかりませんが、存在することを期待しています。
WackGet 2016年

1

Beyond Compareは、フォルダーとファイルを比較およびマージできる差分ツールです。FTPサーバーもサポートされており、ローカルフォルダーのように処理できます。これはプロプライエタリであり、1回のインストールのライフタイムライセンスは、スタンダードエディション(FTP付き)の場合は30米ドル、プロフェッショナルエディション(SFTP付き)の場合は60米ドルです。Windows、Mac OS、Linuxで動作します。個人的には自宅のコンピューターでWebサイトを開発し、満足したら変更をWebサーバーにアップロードします。Beyond Compareを使用して手動で変更を行いますが、これも自動化できます。それを試して、完全なファイルまたは変更のチャンクのみがアップロードされるかどうかを確認できます。それについてはよくわかりません。


比較を超えて素晴らしい-SSHアクセスがなくても完璧ですが、ファイルがリモートサーバーで同期されていることを確認する必要があります(FTP over SSLがサポートされています)
Sam Heuck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.