TL;DR
症状总结:在Arch Linux (6.18.1) + GNOME49 下上传office文件(.docx, .xlsx, .pptx)到谷歌云盘或者其他网盘会被自动识别为ZIP,无法正常打开。
诊断结果为:WPS-Office 会注册自己的自定义 MIME 类型(application/wps-office.docx),这可能会泄露给依赖共享 MIME 数据库的应用程序(例如通过 gio、文件选择器门户等),这会导致 Google 云端硬盘上传/识别失败。因为docx/pptx文件本质上就是ZIP压缩容器,所以当Google Drive无法识别客户端提供的文件类型(或无法准确检测时),可能会退而求其次将其视ZIP文件。

修复方法:
1. 通过命令行确认哪些是“真实”内容,哪些是“关联”内容。
先找到一个受影响的office文件,然后运行以下命令行:
wyw@ArchLegion ~/Downloads/mime_test$ file --mime-type -b test.docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document
wyw@ArchLegion ~/Downloads/mime_test$ xdg-mime query filetype test.docx
application/wps-office.docx
wyw@ArchLegion ~/Downloads/mime_test$ gio info test.docx | grep -i content-type
standard::content-type: application/wps-office.docx
standard::fast-content-type: application/wps-office.docx
可见MIME文件格式被WPS直接劫持了。
2. 处理WPS的mime配置文件 ~/.local/share/mime/packages/Override.xml:
先来备份一下
mkdir -p ~/.local/share/mime/packages/backup
然后把目标文件移除启用的mime文件夹
if [ -f ~/.local/share/mime/packages/Override.xml ]; then
cp -a ~/.local/share/mime/packages/Override.xml ~/.local/share/mime/packages/backup/Override.xml.$(date +%F)
mv ~/.local/share/mime/packages/Override.xml ~/.local/share/mime/packages/Override.xml.disabled.$(date +%F)
fi
# 最后激活一下系统mime的数据库
update-mime-database ~/.local/share/mime
再来检查一下测试文件的mime类型:
wyw@ArchLegion ~/Downloads/mime_test$ xdg-mime query filetype test.docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document
wyw@ArchLegion ~/Downloads/mime_test$ file --mime-type -b test.docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document
wyw@ArchLegion ~/Downloads/mime_test$ gio info test.docx | grep -i content-type
standard::content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
standard::fast-content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
基本上已经正常。
3. 查看WPS的文件类型自动检测 ~/.config/Kingsoft/Office.conf:
为了防止重启后WPS容易继续修改系统mime数据库,把它自己的配置文件又加进来,这里需要修改一下Office.conf里的一行参数:
common\do_not_detect_file_association_while_startup=true
在添加之前这行基本上已经存在,并且被设置成true了,配置完成之后再来一遍:
update-mime-database ~/.local/share/mime
再看谷歌云盘上传的文件类型已经正常了:

至此,这个困扰了两三年的问题彻底解决了,感谢GPT5.2和Gemini3的troubleshooting ❤️

747

被折叠的 条评论
为什么被折叠?



