owncloud 在用了一陣子後,其實真的是算蠻好用的,除了 iOS 的 owncloud 要收費以外要媲美目前所有的雲端硬碟是沒問題的
但在這段使用期間遇到了一個問題,在上傳檔案的時候,因為網路中斷導致檔案上傳不完整,結果小弟天真的直接去 Server 上把檔案刪除了
結果 owncloud 上面的 file list 連結失效,每每在 sync 的時候都會出現 sync 錯誤
錯誤訊息
Fatal webdav Sabre_DAV_Exception_NotFound: File with name Testfile could not be located
使用網頁來檢測一下 webdav
https://ServerName/remote.php/webdav
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"> <s:exception>Sabre_DAV_Exception_NotFound</s:exception> <s:message> File with name Testfile could not be located </s:message> <s:sabredav-version>1.7.6</s:sabredav-version> </d:error>
這是由於 webdav 在取得 file list 的時候其中 Testfile 找不到檔案,這下糗了卡了一個無效連結,這跟一般 AP 系統直接砍掉 Content 一樣遭
一般 file link 都會藏在 DB 裡面存檔,在 owncloud 翻箱倒櫃後找到一個 oc_filecache 資料表
在 filecache 裡面都是放一些 file cache 的名稱,很可疑
然後在 ownCloud 論壇找到一篇也是相同問題的文章 Sabre_DAV_Exception_NotFound
討論了兩頁,在最後的結論竟然是砍掉 oc_filecache 裡面的資料讓他重新抓就 OK 了
DELETE FROM oc_filecache;
打完收工!
註*
WebDav 是 Windows 俗稱的網路磁碟機,在 owncloud 也可以支援此功能,代表你可以不需要安裝 owncloud client,透過網路磁碟機來連到 owncloud file