Webdav

Webdav - 在特定的機器組合上上 傳超過 10kB 的文件失敗

  • January 20, 2022

我正在使用託管在我無權訪問的虛擬機 (vm-A) 中的 owncloud 10.0.10 伺服器。我可以從我的家用 PC 和我管理的付費提供商 (vm-B) 的虛擬機中使用 webdav 連接到它。一切順利(讀/寫文件)。我最近獲得了從我的工作 (vm-C) 訪問第三個虛擬機的權限。當設置從 vm-C 到 vm-A 中的 webdav 伺服器的 webdav 訪問時,我可以瀏覽共享,但寫入共享被破壞 - 它僅適用於非常小的文件 (<10kB)。davfs2 和 rclone 都會發生這種情況。

我很困惑,因為 vm-B(工作)和 vm-C(損壞)都是由我設置的,並且它們都是 Debian 穩定係統(使用的所有軟體都完全相同 - 配置文件是逐字複製的)。另外 vm-C 僅在與 vm-A “對話”時才會損壞,第二台機器上有一個 webdav 伺服器(vm-B - nextcloud - 最新穩定版本),vm-C 向該伺服器寫入大文件沒有問題使用 webdav。

使用 rclone 時,日誌顯示:

2022/01/10 21:47:31 DEBUG : PUT /remote.php/dav/files/username/testfile HTTP/1.1
Host: host.url
User-Agent: rclone/v1.53.3-DEV
Content-Length: 40960
Authorization: XXXX
Content-Type: application/octet-stream
Oc-Checksum: SHA1:c90116149196cbf74ffb453ecb3b12945372ebfa
Referer: https://host.url/remote.php/dav/files/username/
X-Oc-Mtime: 1641851243
Accept-Encoding: gzip

2022/01/10 21:47:31 DEBUG : &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
2022/01/10 21:47:51 DEBUG : &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
2022/01/10 21:47:51 DEBUG : HTTP RESPONSE (req 0xc000222100)
2022/01/10 21:47:51 DEBUG : Error: read tcp 192.168.193.13:55270-&gt;45.61.32.79:443: read: connection reset by peer

2022/01/10 21:53:04 DEBUG : DELETE /remote.php/dav/files/username/testfile HTTP/1.1
2022/01/10 21:53:04 DEBUG : &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
2022/01/10 21:53:05 DEBUG : &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
2022/01/10 21:53:05 DEBUG : HTTP RESPONSE (req 0xc00067ba00)
2022/01/10 21:53:05 DEBUG : HTTP/1.1 404 Not Found

相同的錯誤消息有時會出現在小文件 (<10kB) 上,但在第二次或第三次重試時上傳成功。

在對我可以訪問的虛擬機(vm-c)進行一些搜尋後,我發現有問題的兩台機器位於同一個本地網路中。它最終成為髮夾的路由器問題。我無法控制實際的路由器硬體來實際解決問題。作為一種解決方法,使用代理伺服器可以繞過該問題。在範例中

$ export https_proxy=“http://WORKING_PROXY_SERVER” $ rclone -vv 複製測試文件 webdav-server:

作品。

引用自:https://serverfault.com/questions/1089607