2010-08-26 92 views
1

是一個WebDAV客戶端,根據RFC,能夠更新文件的修改日期時間戳。 WebDAV將其列爲「getlastmodified」屬性。 移動文件時,能夠對文件執行utime()是非常重要的,因爲我將mtime視爲基本文件元數據。但是,例如,使用屍體(我認爲它是WebDAV的一種參考實現)製作propset時,它不斷將getlastmodifed屬性映射到其自己的名稱空間,從而將該調用從實際的磁盤文件timestamo導向,從而可以通過該文件更新UTIME ...WebDAV:客戶端可以修改文件的mtime嗎?

例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> 

我有一個服務器上運行這將更新getlastmodifed屬性,只要它沒有被映射到不同的命名空間...

+0

示例看起來腥;它似乎沒有形成良好(前綴「DAV」似乎沒有被宣佈)。 – 2012-09-28 16:39:34

回答

0

DAV:getlastmodified屬性只能在通常的WebDAV服務器上讀取。但是,如果您使用PUTPOST文件進行修改。如果你想稍後修改它,在服務器上實現一些東西,如支持PROPSETlastmodified(請注意丟失的東西),utime()調用可能是一個選項。

例如ownCloud WebDAV服務器就是這樣做的。

+0

請注意,這實際上是一個壞主意。如果其他客戶端使用If-Modified-Since查找文件是否更改,則可能不再有效。提供另一種財產更好。 – Evert 2014-01-26 22:26:05

1

這聽起來像你回答了你自己的問題:

如果你有一個用正確的命名空間發送PROPPATCH的客戶端,那麼你就不會有這個問題。也許嘗試補丁屍體,或者至少解決你要使用的DAV客戶端是否展示了這種行爲。

相關問題