问题标签 [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 - 确定文件身份的算法
对于一个开源项目,我正在文件系统之上编写一个抽象层。
该层允许我将元数据和关系附加到每个文件。
如果文件被重命名/移动或复制,我希望该层能够优雅地处理文件重命名并维护元数据。
为此,我需要一种计算文件身份的机制。显而易见的解决方案是为每个文件计算一个 SHA1 哈希,然后针对该哈希分配元数据。但是……那真的很贵,尤其是电影。
所以,我一直在考虑一种算法,虽然不是 100% 正确,但在绝大多数情况下都是正确的,而且很便宜。
一种这样的算法可能是使用文件大小和该文件的字节样本来计算散列。
我应该为样本选择哪些字节?如何保持计算便宜且相当准确?我知道这里需要权衡,但性能至关重要。并且用户将能够处理系统出错的情况。
我需要这个算法来处理非常大的文件(1GB+ 和 5K 的小文件)
编辑
我需要这个算法在 NTFS 和所有 SMB 共享(基于 Linux 或 Windows)上工作,我希望它支持文件从一个位置复制到另一个位置的情况(存在 2 个物理副本被视为一个身份)。我什至可能会考虑希望它在 MP3 被重新标记的情况下工作(物理文件已更改,因此我可能对每种文件类型都有一个身份提供者)。
编辑 2
相关问题:确定文件身份的算法(优化)
virtualfilesystem - 虚拟文件?在 c/c++ 或 C# 中
我想做的是修改目录中的所有文件,以便它们使用标准加密,需要密码和我自己加密的第二层。我想让我的应用程序查看该目录并创建一个虚拟的解密目录以正常打开这些文件。它们需要非线性读取(即我可以录制的音频文件)。文件管道会是一个解决方案吗?
我怎样才能做到这一点?我了解加密部分,但不了解虚拟文件。我知道Truecrypt,但我会将其中一些放在 DVD 上,我担心如果我尝试复制 4.3gb Truecrypt 文件,如果块损坏,则会出现校验和错误。这将阻止我复制它。
python - 在 python-webkit WebView 中使用 HTML 访问 zip 存档中的大文件,而无需提取
对于问题标题的任何混淆,我深表歉意。这是一种复杂的情况,组件对我来说是新的,所以我不确定如何简洁地描述它。
我在存档中有一些 xml 数据和一个图像(在这种情况下是 zip,但很容易是 tar 或 tar.gz)并使用 python、gtk 和 webkit,将图像与一些其他数据。xml 是无需提取文件即可访问的儿童游戏,但图像是另一个问题。
我想避免在将图像放入 WebView 之前将图像提取到硬盘并且对图像数据进行 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/
它们应该被重定向到 example.com/main.php?folder=ABCDEF
除非 ABCDEF 是一个真正的文件夹(如 /SPECIAL/、/images/、/css/ 等)
(d) 如果用户尝试访问 example.com /REALFOLDER/(例如 /images/),他应该被重定向到 example.com/
(e) 所有这些都不应影响 example.com/index.html 的查看
对不起,如果这听起来很复杂,但这正是我需要的!
小号
c++ - 为什么 std::istream 不承担对其 streambuf 的所有权?
我正在为 CRI Middleware 的 ROFS 之类的视频游戏编写某种虚拟文件系统库(请参阅Wikipedia)。我使用库的目的是提供访问我开发的游戏资源的自然方式,其中存储了一些嵌入在可执行文件中的数据,一些在媒体上,一些在本地用户的硬盘驱动器上(首选项,保存游戏文件等) .
访问这些资源应该像拨打电话一样简单
实际的做事方式实际上是不同的,另外一个抽象层用于后台加载,但这并不重要。
我想知道的是,考虑到与关联的被销毁时它不会被它删除,我怎么能返回它auto_ptr<>
(或者,你选择)。unique_ptr<>
std::streambuf<>
std::[i/o]stream<>
我正在考虑std::[i/o]stream<>
不承担在构造时传递给它的 streambuf 的所有权,因为构造函数不存在所有权语义的转移,并且 Apache 的 STDCXX 参考没有提到所有权的转移(我发现的任何 stdlib 参考也没有在网上)。
我有什么选择?我还不如返回一个共享指针并继续观察它,直到 FSlib 管理器保留共享指针的唯一副本,在这种情况下,它会破坏其唯一副本以及 streambuf。考虑到图书馆的组织模型,这是很实用的,但这不是很优雅,也不是很有效。
我试过看一下 Boost.Iostreams,但对我来说,情况似乎更糟,因为流本身的设备类型与其类型密切相关(流的设备必须在其模板参数中定义)。这个问题似乎使我的库无法使用 Boost.Iostreams,因为它需要抽象出流的具体“源/接收器”实现,以便可以无缝地使用流来打开位于可执行文件本身内部的文件,例如,在系统文件系统的文件中或归档类型文件中。
我可以编写一个容器类来处理这些问题,但我宁愿做得更干净(即已经返回流;这就是它应该需要的全部!;)。
建议?
filesystems - “虚拟”文件
有时我会下载大文件,这些文件已被分成多个块,例如,一个 1GByte 的文件分成十个块,每个块 100MByte。目前,我必须将所有文件连接到一个新文件中才能整体访问它。我现在想知道是否可以将这些块分组到一个虚拟文件中(类似于虚拟文件系统),避免这种复制。顺便说一句,我使用的是 GNU/Linux 机器。
ruby-on-rails - Ruby 通用文件系统库
我正在寻找 ruby 的“虚拟文件系统”类型库。我希望能够拥有一个完全通用的文件系统,我可以轻松地在使用本地文件和使用 S3 或使用 FTP 或类似的东西之间切换。(与 Java 的 VFS 相同)
有没有人为 ruby 使用过任何类型的通用文件系统(我只需要它来支持本地文件和 Amazon S3)
任何指针将不胜感激。
.net - .NET 中的虚拟驱动器?
.NET 是否有任何简单的库来挂载虚拟驱动器?
我需要在虚拟驱动器中安装存档,并且很可能使用虚拟文件系统。
存档格式不支持文件夹,因此我需要从存档中手动提供文件和文件夹。也不支持属性,但我使用元数据文件来存储它们。
我对驱动器和 FS 的控制越多越好。
c - 如何在文件夹中挂载虚拟文件系统?
我使用 Dokan 实现了一个虚拟文件系统。我试图将驱动器号设置为 C,但每次都会出错。我想知道是否有不同的虚拟文件系统可以让我这样做,或者是否有办法修复它。是否有一些 Windows api 调用可以让我在文件夹中重新挂载文件系统?
谢谢!!!
编辑:Windows 管理器没有列出虚拟驱动器,所以我无法通过通常的 Windows 界面安装它。另外,我尝试通过属性界面更改驱动器名称,它也不会让我这样做。
fuse - 是否已经存在将每个请求序列化为流的 FUSE 文件系统?
概念:
好处:
- 用高级语言轻松实现服务器(不需要任何依赖于架构的东西,如 JNI 或其他)
- 开箱即用的简单 ad-hoc 网络文件系统。
- 没有实际 FUSE 的可访问性(当它无法访问时):
就像 FUSE 方法的简单 RPC。该协议应该像 IRC 一样简单,并且应该处理 FUSE 可以处理的所有事情。
是否已经有这样的事情或者我应该实施它?