限制文件资源管理器迷你读取

时间:2012-05-25 13:47:55

标签: python filesystems google-docs-api fuse

我正在为Google云端硬盘实施一个FUSE驱动程序。目的是允许用户将其Google云端硬盘/文档帐户作为虚拟文件系统安装。完整来源https://github.com/jforberg/drivefs。我使用fusepy绑定将FUSE与Python集成,并使用Google的Document List API来访问云端硬盘。

我的驱动程序完成程度readdir(2),stat(2)和read(2)按预期工作。在文件系统中,每个读取的文件都转换为具有大量开销的HTTPS请求。我设法通过强制读取更大的缓冲区大小来限制开销。

现在我的问题。像Thunar和Nautilus这样的文件浏览器通过读取每个文件的第一部分(前4k字节左右)来构建大拇指并确定文件类型。但是在我的文件系统中,一次读取多个文件是一个痛苦的过程,与简单的 ls (每个文件只有stat(2))相比,在thunar中获取文件列表需要很长时间)。

我需要一些方法来告诉文件浏览器我的文件系统不能很好地使用“迷你读取”,或者某种方式来识别这些迷你读取并提供它们的组成数据以使它们满意。任何帮助将不胜感激!

编辑:问题不在于HTTPS开销,而在于我处理Google的原生“doc”格式。当有人试图读取本机文档时,我添加了一行使read(2)返回一个空字符串,文件列表现在几乎是即时的。

这似乎是一个温和的限制,因为即使Google的官方客户端程序也无法编辑原生文档。

1 个答案:

答案 0 :(得分:2)

这是pycloudfuse,这是一个类似的尝试,但对于云文件/ openstack对象存储,你可能会找到有用的位。

写这篇文章时,我不能说我注意到Thunar和Nautilus与目录列表有任何问题。

我认为你不能为文件管理员提供数据 - 这必然会导致问题。

我喜欢这个选项是向文件资源管理器发出信号,不要做缩略图等,但我认为这也不可能。

我认为最好的选择是提醒您的用户drivefs不是真正的文件系统,并列出其限制,如果它类似于pycloudfuse,那么会有很多!