できれば C# または Java を使用するプログラマーの観点から、オペレーティング システム内のフォルダーを操作して、たとえば FTP のように機能させるのはどれくらい難しいのでしょうか?
画像 http://www.jacks-log.de/wp-content/uploads/2011/02/Dropbox-Wurmloch-1.png
数年前にドロップボックスのことを聞いて以来、これを行うには何が必要なのだろうといつも思っていました。
できれば C# または Java を使用するプログラマーの観点から、オペレーティング システム内のフォルダーを操作して、たとえば FTP のように機能させるのはどれくらい難しいのでしょうか?
画像 http://www.jacks-log.de/wp-content/uploads/2011/02/Dropbox-Wurmloch-1.png
数年前にドロップボックスのことを聞いて以来、これを行うには何が必要なのだろうといつも思っていました。
特に Dropbox について言えば、難しいことは何もしていません。Windows ユーザー モード API によって提供されるメカニズムを使用して通常のフォルダを監視しているだけです。
ただし、カーネル モード ドライバーを使用すると、はるかに強力で興味深いことを行うことができます。
最初にできることは、仮想ディスクを作成し、それをフォルダーにマップすることです。こうすることで、コード (当社の製品を使用したカーネル モードまたはユーザー モードのいずれか) で、このフォルダー内のファイルに対するすべての OS 要求を処理できるようになります。フォルダーはディスク上に存在しませんが、仮想になります。その場でリモートサーバーからデータを選択したり、リモートサーバーに書き込んだりできます。特に、リモート SFTP サーバーをフォルダーにマップできます (FTP では部分的なアップロードがサポートされていないため、FTP の場合は少し複雑になります)。 )。一部のクラウド プロバイダーは、まさに私が説明したことを実行します。クラウド サービスへの「ゲート」である仮想ディスクまたは仮想フォルダーを提供し、そのような仮想フォルダーまたはディスクからデータを読み書きすると、データはクラウドとの間でやり取りされます。サーバ。
次に、ファイルシステム フィルター ドライバーを使用すると、実際のフォルダーを保持しながら、ファイルの内容を動的に提供できます。これは、一部のフォルダ エンクリプタが行う方法です (ファイル データを実際のディスクに書き込むときにファイル データを暗号化し、このエンクリタをアクティブにしないと、このフォルダ内のファイルから暗号化された「ジャンク」を読み取るだけです)。
ファイルシステム フィルター ドライバーを使用すると、誰がどのようにフォルダーにアクセスできるかを制御できます。つまり、フォルダー コンテンツへのアクセスをきめ細かく制御できます (これを暗号化と組み合わせると、便利なデータ保護メカニズムが得られます)。