加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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

发布时间:2021-01-09 10:29:04 所属栏目:Linux 来源:网络整理
导读:我有一个虚拟文件系统,它本身很慢,因为它使用Web服务作为后端(Google Docs API). 它完全正常,但有一点需要注意:GTK应用程序使用GtkFileChooser,它试图确定文件的内容类型以显示图标或其他内容.当遇到无法通过扩展识别的文件时,它会读取初始数据块以尝试使

我有一个虚拟文件系统,它本身很慢,因为它使用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库.

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

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读