kodbox讀取alist檔案失敗,問題解決過程

远志梦边發表於2024-03-18

讓我先把相關的報錯資訊透過文字貼到下方,方便被檢索出來

出錯了! (warning!)
curl error code=403;
系統錯誤 (explorer.editor.fileGet)
explorer/editor.class.php[64] IO::fileSubstr(0,1,2)
bin/data.bin[2]
[Linux 6.2.0-35-generic/8.2.11/mysqli/1.49.10]

在使用kodbbox的過程中想著透過webdav協議將alist掛載到kodbox中去,但是在實際操作過程中發現真正掛載的上去的檔案並不能被開啟,只能新建、儲存、修改,不能檢視,遂查詢問題的根源。

說一下我的環境和除錯工具,透過1panel一鍵啟動的alist和kodbox,並透過1panel中的openresty將兩個應用加上https並且反向代理出去了,而且無法直接訪問兩者的http埠。

透過在kodbox中各種手動下error_log的方式,發現在kodbox內部函式的執行過程中,檔案被認為是拿到了的(即某些用來判定檔案下載成功與否的變數為true),但是實際用來儲存檔案內容的變數,其中並沒有任何可用的資料(即資料為空值)。

上述圖片中前7行都說明kodbox認為成功獲得了檔案內容,最後一行的變數則是用來儲存實際檔案內容的,反而什麼也沒有。

kodbox除錯無果之後,將矛頭轉向了alist的日誌,但是alist的docker日誌並不是很清楚,僅僅記錄了啟動時的配置載入,並沒有什麼有效資訊,無奈最終只能轉向alist網站的訪問日誌。

結果發現了日誌中的問題——kodbox訪問之後日誌為302重定向,遂懷疑kodbox在訪問正常的alist的webdav路徑之後,並沒有進行重定向訪問。

然後將alist中所有的儲存的webDAV策略都配置成本機代理,kodbox的訪問就正常了。

相關文章