問題タブ [virtualfilesystem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - ファイルのIDを判別するためのアルゴリズム
オープンソースプロジェクトの場合、ファイルシステムの上に抽象化レイヤーを作成しています。
このレイヤーを使用すると、メタデータと関係を各ファイルに添付できます。
ファイルの名前変更を適切に処理し、ファイルの名前変更/移動またはコピーが行われた場合にメタデータを維持するレイヤーが必要です。
これを行うには、ファイルのIDを計算するためのメカニズムが必要になります。明らかな解決策は、ファイルごとにSHA1ハッシュを計算してから、そのハッシュに対してメタデータを割り当てることです。しかし...それは特に映画にとっては本当に高価です。
ですから、100%正確ではありませんが、ほとんどの場合正しく、安価なアルゴリズムを考えていました。
そのようなアルゴリズムの1つは、ファイルサイズとそのファイルのバイトのサンプルを使用してハッシュを計算することです。
サンプルにはどのバイトを選択する必要がありますか?計算を安価で適度に正確に保つにはどうすればよいですか?ここにはトレードオフがあることは理解していますが、パフォーマンスは重要です。また、ユーザーはシステムがミスを犯した状況に対処できるようになります。
非常に大きなファイル(1GB以上および小さなファイル5K)で機能するには、このアルゴリズムが必要です。
編集
NTFSおよびすべてのSMB共有(LinuxまたはWindowsベース)で機能するには、このアルゴリズムが必要です。ファイルが1つの場所から別の場所にコピーされる状況をサポートしたいと思います(2つの物理コピーが存在する場合は1つのIDとして扱われます)。MP3が再タグ付けされている状況でこれを機能させることを検討することもできます(物理ファイルが変更されているため、ファイルタイプごとにIDプロバイダーがある場合があります)。
編集2
関連する質問:ファイルのIDを決定するためのアルゴリズム(最適化)
virtualfilesystem - 仮想ファイル? c/c++ または C# で
私がやりたいのは、ディレクトリ内のすべてのファイルを変更して、標準の暗号化を使用し、パスワードと独自の暗号化の第 2 層を必要とするようにすることです。アプリケーションにディレクトリを見てもらい、仮想の復号化されたディレクトリを作成して、これらのファイルを通常どおり開くようにしたいと思います。ノンリニア読み取り (つまり、録音する可能性のあるオーディオ ファイル) が必要です。ファイルパイプは解決策になりますか?
これどうやってするの?暗号化の部分は理解していますが、仮想ファイルについては理解していません。Truecryptについては承知していますが、これらの一部を DVD に入れる予定であり、4.3GB の Truecrypt ファイルをコピーしようとすると、ブロックが破損した場合にチェックサム エラーが発生するのではないかと心配しています。これにより、コピーできなくなります。
python - 解凍せずに python-webkit WebView で HTML を使用して zip アーカイブ内の大きなファイルにアクセスする
質問のタイトルからの混乱をお詫び申し上げます。私にとっては初めてのコンポーネントを使用した複雑な状況なので、簡潔に説明する方法がわかりません。
いくつかの xml データと画像をアーカイブ (この場合は zip ですが、簡単に tar または tar.gz にすることができます) にあり、python、gtk、および webkit を使用して、画像を webkit.WebView に配置します。その他のデータ。ファイルを抽出せずにxmlにアクセスするのは子供の遊びですが、画像は別の問題です。
特に画像が数十メガバイトに達する可能性があるため、画像を WebView に入れる前に hdd に抽出し、画像データの base64 エンコードを行うと、ぎこちなくなります。
基本的に、コンテナー ファイル内に格納されているファイルへの URI を構築する方法を探しています。
数日前に IRC で質問したところ、仮想ファイル システムについての指示がありました。私が行った検索では、zip ファイルから vfs を作成するための参考文献がいくつか見つかりましたが、例はなく、仮想ファイル システム自体 (gnomeVFS、gvfs、gio) に関するドキュメントもありませんでした。しかし、間違った場所。
.htaccess - .htaccess / httpsリダイレクト、例外を除いた仮想フォルダアクセス
/ *これは、10日前に尋ねた別の質問( .htaccess / https://www.example.comへのリダイレクトと仮想フォルダアクセス)の複製のように見えますが、(a)応答がありませんでした。私が質問に加えた変更、および(b)ここでのこの質問は、上記のより複雑なバージョンであり、新しいクエリが必要であると信じています* /
次のエンティティを持つサイトがあります:example.com/index.html example.com/main.php example.com/SPECIAL/main.php上記の他に、example.com / images /、/cssのようなフォルダーがありますスクリプトによって生成されたhtmlが指す/など。
以下のすべてに.htaccessマジックが必要です:
(a)ユーザーを「example.com」から「www.example.com」に永続的にリダイレクトします(301のもの)
(b)ユーザーをhttp://www.exampleから永続的にリダイレクトします。 comからhttps://www.example.com(301のもの)
(c)example.com/にアクセスするユーザーは、もちろんindex.htmlを参照する必要がありますが、 example.com/
ABCDEFまたは
example.com/ABCDEF/と入力する場合ABCDEFが実際のフォルダ(/ SPECIAL /、/ images /、/ css /など)である場合を除いて、
example.com / main.php?folder = ABCDEFにリダイレクトする必要があります
(d)ユーザーがexample.comにアクセスしようとした場合/ REALFOLDER /(例:/ images /)、example.com/にリダイレクトする必要があります
(e)これらすべてがexample.com/index.htmlの表示を台無しにしないでください
これが複雑に聞こえたら申し訳ありませんが、それはまさに私が必要としていることです!
S
c++ - std :: istreamがstreambufの所有権を引き継がないのはなぜですか?
私は、CRIミドルウェアのROFSのようなビデオゲーム用のある種の仮想ファイルシステムライブラリを書いています(ウィキペディアを参照)。ライブラリでの私の意図は、実行可能ファイルに埋め込まれたデータ、メディア、ローカルユーザーのハードドライブ(設定、ゲームファイルの保存など)に埋め込まれたデータを保存する、開発したゲームのリソースにアクセスする自然な手段を提供することです。 。
このようなリソースへのアクセスは、次のような電話をかけるのと同じくらい簡単である必要があります。
実際のやり方は実際には異なり、バックグラウンドの読み込みに別の抽象化レイヤーが使用されますが、ここでは重要ではありません。
私が知りたいのは、に関連付けられているが破棄されたときに削除されないことを考慮して、それをどのように返すことができるかauto_ptr<>
(またはunique_ptr<>
、選択した場合)です。std::streambuf<>
std::[i/o]stream<>
std::[i/o]stream<>
コンストラクターは所有権の転送セマンティクスを提示せず、ApacheのSTDCXX参照は所有権のトランサーについて言及していないため、構築時に渡されたstreambufに対する所有権を想定しないことを検討しています(私が見つけたstdlib参照もありません)インターネット上で)。
どのような選択肢がありますか?共有ポインターを返し、FSlibマネージャーが共有ポインターの一意のコピーを保持するまでそれを監視し続けることもできます。その場合、その一意のコピーとstreambufが破棄されます。図書館の組織モデルを考えると、これは実用的ですが、これはあまりエレガントでも効率的でもありません。
Boost.Iostreamsを見てみましたが、ストリーム自体のデバイスタイプがそのタイプに強く関連付けられているため、状況はさらに悪化しているようです(ストリームのデバイスはテンプレートパラメーターで定義する必要があります) )。この問題により、Boost.Iostreamsをライブラリで使用できなくなったようです。これは、ストリームをシームレスに使用して実行可能ファイル自体の内部にあるファイルを開くことができるように、ストリームの具体的な「ソース/シンク」実装を抽象化する必要があるためです。たとえば、システムのファイルシステムのファイル内、またはアーカイブタイプのファイル内。
これらの問題を処理するコンテナクラスを作成することもできますが、もっとクリーンに実行したいと思います(つまり、すでにストリームを返すだけです。必要なのはそれだけです!;)。
提案?
filesystems - 「仮想」ファイル
チャンクに分割された大きなファイルをダウンロードすることがあります。たとえば、1GByte のファイルをそれぞれ 100MByte の 10 個のチャンクに分割します。現在、全体としてアクセスできるようにするには、すべてのファイルを新しいファイルに連結する必要があります。これらのチャンクを仮想ファイル (仮想ファイル システムと同様) にグループ化して、このコピーを回避することは可能かどうか疑問に思っています。ところで、私は GNU/Linux ボックスを使用しています。
ruby-on-rails - Ruby 汎用ファイルシステム ライブラリ
ruby 用の「仮想ファイル システム」タイプ ライブラリを探しています。ローカル ファイルの使用と S3 の使用または FTP などの使用とを簡単に切り替えることができる、完全に汎用的なファイル システムを使用できるようにしたいと考えています。(VFS for Java と同じ)
ruby 用の一般的なファイル システムを使用した人はいますか (ローカル ファイルと Amazon S3 をサポートするために必要なだけです)。
どんなポインタでも大歓迎です。
.net - .NET の仮想ドライブ?
.NET で仮想ドライブをマウントするための簡単なライブラリはありますか?
アーカイブを仮想ドライブにマウントする必要があり、ほとんどの場合、仮想ファイル システムを使用します。
アーカイブ形式はフォルダーをサポートしていないため、ファイルとフォルダーをアーカイブから手動で提供する必要があります。属性もサポートされていませんが、メタデータ ファイルを使用してそれらを保存しています。
ドライブと FS をより細かく制御できるほど、より良い結果が得られます。
c - 仮想ファイルシステムをフォルダにマウントするにはどうすればよいですか?
Dokan を使用して仮想ファイルシステムを実装しました。ドライブ文字をCに設定しようとしましたが、毎回エラーになります。それを可能にする別の仮想ファイルシステムがあるかどうか、またはそれを修正する方法があるかどうか疑問に思っていました。フォルダー内のファイルシステムを再マウントできる Windows API 呼び出しはありますか?
ありがとう!!!
編集: Windows マネージャーは仮想ドライブを一覧表示しないため、通常の Windows インターフェイスからマウントできません。また、プロパティ インターフェイスを介してドライブ名を変更しようとしましたが、それもできませんでした。
fuse - 各リクエストをストリームにシリアル化するFUSEファイルシステムはすでにありますか?
コンセプト:
利点:
- 高水準言語でのサーバーの簡単な実装(JNIなどのアーチ依存のものは必要ありません)
- 箱から出してすぐに使えるシンプルなアドホックネットワークファイルシステム。
- 実際のFUSEなしのアクセシビリティ(アクセスできない場合):
FUSEメソッドの単純なRPCのように。プロトコルはIRCのように単純で、FUSEが処理できるすべてのものを処理する必要があります。
すでにそのようなものはありますか、それとも実装する必要がありますか?