iPhone等iOS设备向samba服务器写入文件时遇到“未能完成该操作,属性错误”的提示
如果你在Linux服务器上搭建了samba服务用于局域网共享文件,那么当你尝试使用iPhone等iOS设备自带的“文件”app向服务器写入文件时,就可能会遇到“未能完成该操作。找不到属性。”的提示。
这是因为,当年微软为了让mac也能访问samba,专门适配了mac的文件流格式。这个也不是什么mac特立独行的操作,其它文件系统包括微软自己的NTFS也有类似的机制。其实就是给一个文件分了好几个流,(平时我们只会用到一个流,就是正常向文件里写内容的那个流),除了正常的文件内容能往里写,还可以写入文件的图标之类的东西。
这个东西就叫ADS。据说,Edge浏览器也会向其它的文件流里写数据。如果你使用Edge浏览器下载文件,保存地址是一个samba目录,而且这个samba目录没有配置ADS;那么也是会报错的。
如何在Linux的samba服务上配置ADS呢?这样搞:
修改smb.conf,在global段添加如下配置:
[global]
vfs objects = catia fruit streams_xattr
然后重启samba服务:
sudo systemctl restart smbd
就OK了。
来源:
本文由博客园用户madbunny创作,谢绝转载!
浙公网安备 33010602011771号