Properties WebDAV:客户端可以修改文件的mtime吗?

Properties WebDAV:客户端可以修改文件的mtime吗?,properties,webdav,Properties,Webdav,是一个WebDAV客户端,根据RFC,能够更新文件的修改日期时间戳。WebDAV将其列为“getlastmodified”属性。 移动文件时,能够对文件执行utime()操作非常重要,因为我认为mtime是基本的文件元数据。但例如,使用cadaver(我认为这是WebDAV的一种参考实现)执行propset时,它会不断地将GetLastModified属性映射到自己的命名空间中,从而将调用从实际的磁盘文件timestamo中转移出来,该文件可以通过utime进行更新 尸体发送的PROPPATCH

是一个WebDAV客户端,根据RFC,能够更新文件的修改日期时间戳。WebDAV将其列为“getlastmodified”属性。 移动文件时,能够对文件执行utime()操作非常重要,因为我认为mtime是基本的文件元数据。但例如,使用cadaver(我认为这是WebDAV的一种参考实现)执行propset时,它会不断地将GetLastModified属性映射到自己的命名空间中,从而将调用从实际的磁盘文件timestamo中转移出来,该文件可以通过utime进行更新

尸体发送的PROPPATCH请求示例:

<D:propertyupdate xmlns:D="DAV:">
  <D:set>
   <D:prop>
    <DAV:getlastmodified xmlns="http://webdav.org/cadaver/custom-properties/">Sun, 06 Nov 1994 08:49:37 GMT</DAV:getlastmodified>
   </D:prop>
 </D:set>
</D:propertyupdate>

太阳,1994年11月6日08:49:37格林尼治标准时间

我有一个正在运行的服务器,它将更新GetLastModified属性,只要它没有映射到其他名称空间…

我觉得您已经回答了自己的问题:


如果您的客户端发送了具有正确名称空间的PROPPATCH,则不会出现此问题。也许可以尝试修补cadaver,或者至少确定您将要使用的DAV客户端是否表现出这种行为。

DAV:getlastmodified属性在普通WebDAV服务器上是只读的。但是,如果您
放置
发布
文件,则会对其进行修改。如果以后要修改它,可以选择在服务器中实现类似于对
PROPSET
lastmodified
(注意缺少的get)的支持,该支持执行
utime()
调用


例如,ownCloud WebDAV服务器就是这样做的。

我使用mydav.php作为WebDAV服务器,使用webdrive作为WebDAV客户端(在设置中:设置文件上传后的修改时间以保留日期/时间)

mydav.php:

webdrive:


这个例子看起来可疑;它似乎格式不正确(前缀“DAV”似乎没有声明)。请注意,这实际上是个坏主意。如果其他客户端使用If-Modified-Since来确定文件是否已更改,则这可能不再有效。最好提供另一处房产。