Webdav
Webdav - 在特定的機器組合上上 傳超過 10kB 的文件失敗
我正在使用託管在我無權訪問的虛擬機 (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 : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2022/01/10 21:47:51 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 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->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 : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2022/01/10 21:53:05 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 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:
作品。