WebDAV服务器应该使用文本模式打开和存储文本文件吗?

时间:2013-12-16 07:58:07

标签: webdav

我想知道WebDAV服务器是否应该以文本模式存储上传的文件,如果mime-type是'text /...'。

Unix,Windows和Mac OS使用不同的行结尾。 以写入+文本模式打开文件可以根据服务器系统约定(可能与WebDAV客户端不同)转换回车符/换行符。

显而易见的替代方法是将所有传入的文件存储为二进制blob,而不进行任何转换。

我在文本模式中看到了这个专业人士:

  • 可以使用文本编辑器
  • 在服务器上打开文本文件
  • 服务器软件(即xml解析器,脚本处理器)也可以更容易地解释上传的文本文件。
  • 所有客户端都获得具有相同行结束约定的所有文本文件(由服务器平台定义)
  • 我想我已经看到了这样做的实现

和文本模式的缺点

  • 客户端不能指望获取POST的相同文件内容。
  • 如果Windows WebDAV客户端将文件存储到Unix服务器,则文件大小不同。 I. e。资源'size'属性大于GET返回的数据长度。
  • 危险:如果文件声明mime类型为'text / foo',但该文件实际上是二进制文件(例如压缩的xml文件),则转换\n \r字节将损坏文件。< / LI>
  • 文本模式可能较慢,因为需要处理(?)

我错过了什么吗? 常见的WebDAV服务器如何处理这个问题?有最好的做法吗?

1 个答案:

答案 0 :(得分:0)

我不知道WebDAV服务器有多常见,但我认为这是一个坏主意。

正如您所提到的那样,损坏被认为是文本的二进制文件的风险使得它不值得做。以下是一些缺点:

  • 将WebDAV服务器的模型作为简单的存储和检索设备中断。作为用户:
    • 我认为这会损坏我的档案。
    • 我必须花时间弄清楚我的文件发生了变化的方式和原因。
    • 然后我想知道服务器可能代表我对我的文件做了什么其他事情。
  • 根据服务器的操作系统更改行结尾,而不是客户端(客户)。

如果我是仅限Windows或仅限Unix的用户,那么我的所有行结尾都适合我,我不希望服务器更改它们。如果我同时使用两者,那么我已经有了对行结尾不敏感或者可以在它们之间进行转换的工具。

近年来,我对文本处理客户端程序的经验是,他们对行结尾都不敏感。例如,XML解析器和脚本解释器可以使用任何一种行结尾样式。所以我认为抵消风险并没有多大好处。