linux – 有没有办法强制快速内容类型确定慢速文件系统

我有一个虚拟文件系统,它本身很慢,因为它使用Web服务作为后端(Google Docs API).

它完全正常,但有一点需要注意:GTK应用程序使用GtkFileChooser,它试图确定文件内容类型以显示图标或其他内容.当遇到无法通过扩展识别的文件时,它会读取初始数据块以尝试使用它来确定文件类型.在我的情况下,这会导致整个文件从网络下载,这极大地减慢了文件对话框中的目录列表.

事实证明,Gio(GtkFileChooser的后端)支持2种模式用于内容类型发现常规(具有属性’standard :: content-type’)和fast(‘standard :: fast-content-type’),其仅查看文件扩展名.但是,似乎GtkFileChooser仅查询’standard :: content-type’.

GTK真的总是尝试使用慢速算法进行内容类型发现吗?即使已知像NFS这样的慢速文件系统?

有没有办法安装我的文件系统,以便它只使用快速内容类型发现?

最佳答案
看一下glib的源代码,我相信没有办法强制安装在操作系统文件系统层次结构中的虚拟文件系统的快速内容类型发现.从gio的POV,它是一个本地文件系统,因此它假定它具有快速读取访问权限.其他远程文件系统(例如NFS)不受影响,因为精确的内容类型发现只需要查看前4KB的数据.

因此,对于您的情况,我建议以下解决方案:

>下载glib的源代码.在Ubuntu中,您可以输入以下命令:

apt-get source glib2.0

>打开文件gio / glocalfile.c.
>找到函数get_content_type.
>在函数开头添加以下行:

fast = 1;

>编译glib.
>在系统位置安装glib,或使用LD_PRELOAD加载新的gio库.

希望这可以帮助.如果您需要更多细节,请随时告诉我.

相关文章

文件查找(find) 1 find 简单的说,就是实时查找指定的内容或条件。特点:最新、最快、最准确。 用法:...
非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,...
编译安装httpd 1 去官网下载源码包 为避免非法软件,一定要去官网下载http://www.apache.org httpd-2.4...
gdisk用法 gdisk - InteractiveGUIDpartitiontable (GPT) manipulator GPTfdisk (akagdisk) isatext-mo...
1 一定用快捷键 这里简单的说下几个常用的快捷按键。 1.1 移动光标快捷键 Crtl + a 光标回到命令行...
bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径。如果test命令中列出的条件成立...