web-dev-qa-db-ja.com

SSHFSは、ファイルをロードするときにローカルマシンにファイルを保存しますか?

私の会社は、SSHFSを使用して安全なリモートサーバーからディレクトリをマウントしたいと考えています。ローカル(クライアント)マシン上のアプリケーションは、ファイルにアクセスしてコンテンツの読み取りと編集(読み取り/書き込み)を行う必要があります。ただし、私たちのビジネスでは、ファイルをクライアントマシンにローカルに保存しないようにする必要があります。 SSHFSのドキュメントを検索しましたが、これを理解できませんでした。アプリケーションがリモートファイルにアクセスするとき、ファイルはハードディスクのどこかにローカルに保存されていますか?もしそうなら、それらのファイルがアプリケーションによってアクセスされたとき、それらのファイルはどこにありますか?

1
Nick Ruiz

sshfs部分的なファイル操作をサポートするSFTPプロトコルのクライアントとして機能します。つまり、クライアントはファイル全体を取得する必要はありません(FTPのように)。たとえば、アプリケーションがseek(1024)に続いてread(256)を発行する場合、sshfs必要なのは要求された256バイトを取得します。

つまり、ファイル必要ありませんローカルのどこにでも保存する必要があります(アプリケーション自体がデータをメモリに読み込んだ場合を除く)。 sshfsクライアントは、操作が完了するとすぐに操作結果を破棄できます。

同様に、GNOMEアプリでsftp:// URLを開くと、「GVFS」SFTPクライアントが使用されます。このクライアントは、アプリケーションとサーバー間で直接個々の操作を渡すこともサポートしているため、ファイルをローカルにキャッシュする必要はありません。まったく。


ただし、すべてのSFTPクライアントがこのように機能できるわけではないことに注意してください。たとえば、KDEDolphinはKIOクライアントを介してsftp:// URLもサポートします。これは先月までサポートしていませんでした部分的な操作をサポートします–常にファイル全体を~/.cache/の下のどこかにダウンロードしますアプリに渡す前に。 (AFAIK、これはkio-Fuseの追加とともに、最新のリリースで最終的に解決されました。)

テキストエディタに組み込まれているSFTPクライアントも、ローカルコピーを使用する傾向があります。 Vimのnetrwはファイルを/tmpにダウンロードし、毎回アップロードし直します。

1
user1686