疑難排解

常見問題與解決辦法。

本頁內容
  1. 忘記管理員密碼
  2. docker exec thirtyfile sh 無法執行
  3. 管理員遺失了手機和復原碼
  4. 分享連結以 http://127.0.0.1:8080 開頭
  5. 剛登入就退出了
  6. 所有人都看到「失敗嘗試過多」
  7. 大檔案上傳失敗
  8. 啟動時顯示「Permission denied」
  9. 檢視紀錄
  10. 檢查執行狀態
  11. 檢查已儲存的檔案
  12. 檔案如何受到保護
  13. 仍然無法解決?

忘記管理員密碼

docker exec -it thirtyfile thirtyfile reset-password admin

按提示輸入新密碼,避免密碼留在 shell 歷史中。如果帳號已停用,此操作也會重新啟用帳號。

docker exec thirtyfile sh 無法執行

映像僅包含 ThirtyFile 本身,沒有 shell 或其他程式,減少需要維護更新的元件。ThirtyFile 命令可按指南所示執行,例如 docker exec thirtyfile thirtyfile reset-password …。檢視檔案時,請使用主機上的 data 和 storage 資料夾,或 docker cp。

管理員遺失了手機和復原碼

其他管理員可在控制台 › 使用者中重設。如果沒有其他管理員,請在伺服器上關閉:

docker exec thirtyfile thirtyfile reset-two-factor admin

在控制台 › 一般 › 網站網址中設定大家實際存取的位址。

剛登入就退出了

THIRTYFILE_SECURE_COOKIE 設為 true,但網站使用 http:// 開啟。請透過 https:// 存取;如果不使用 HTTPS,則設為 false。

所有人都看到「失敗嘗試過多」

使用反向代理時,THIRTYFILE_TRUST_PROXY 必須設為 true(代理執行在另一台電腦時,需列出其位址),代理也必須按範例轉發訪客位址,否則所有人都會被視為同一訪客。

限制會在 15 分鐘後自動解除。

同一帳號從任何位址累計多次密碼錯誤後,每次重試都需等待更長時間,最長一分鐘。帳號本身永遠不會被鎖定。

大檔案上傳失敗

遇到 413 錯誤時,同時檢查 THIRTYFILE_MAX_UPLOAD_MB 和反向代理的請求大小限制。瀏覽器使用 32 MB 分段上傳;請像 nginx 範例一樣允許每次請求至少 64 MB。WebDAV 一次請求傳送完整檔案,需設定足夠容納該檔案的請求限制;參閱 WebDAV 疑難排解。還需檢查空間配額和儲存剩餘容量。

啟動時顯示「Permission denied」

容器啟動時會把資料夾交給使用者 1000。以下兩種情況無法完成:

檢視紀錄

docker logs --tail 100 thirtyfile

檢查執行狀態

http://files.example.com:8080/api/health 回傳伺服器狀態:"status": "ok";當 /data 或 /storage 剩餘容量不足 1 GB、儲存位置不可達,或過去一天內有背景工作因錯誤停止而重新啟動(紀錄會寫出是哪一項)時,回傳 "degraded"。它還列出兩個資料夾的剩餘和總容量,以及各儲存位置的 ok 或 offline 狀態,便於監控工具在磁碟用滿前警示。上傳和透過 WebDAV 傳送的檔案會先收進 /data,若收下後 /data 剩不到 64 MB,就會拒絕接收。請設定監控檢查 JSON 的 status:降級健康狀態仍回傳 HTTP 200。資料庫檢查失敗則回傳 HTTP 503 和 "status": "error"。Docker 健康探針接受 HTTP 200,所以剩餘空間不足或儲存位置離線本身不會導致容器重新啟動。降級狀態的紀錄警告每小時最多記錄一次。

只有在伺服器本機發出(不經反向代理)的要求,以及已登入的管理員,才會看到這些詳細資料。其他人只會看到 status。

任何人都可查詢此端點,所以它不顯示版本,避免陌生人據此查詢已知漏洞。登入後可從帳號選單最後一行檢視,例如 ThirtyFile 0.5.0。管理員也可在控制台右下角檢視,按一下可開啟該版本說明。在伺服器上執行 docker exec thirtyfile thirtyfile --version 可輸出版本。

檢查已儲存的檔案

如需檢查資料庫中的每個檔案是否仍位於儲存位置,以及儲存位置是否包含資料庫未知的檔案(例如手動留下的檔案),請執行:

docker exec thirtyfile thirtyfile check

命令會列出每個儲存位置中缺失、大小錯誤和未知的檔案,發現問題時以狀態碼 1 退出。未知檔案永遠不會刪除。新增 --verify 會讀取每個檔案,並將內容與指紋(SHA-256)比較,耗時相當於讀取全部資料。資料夾空間不在檢查範圍內:其中是磁碟上的一般檔案。

指紋在上傳過程中計算,即使上傳暫停或 ThirtyFile 重新啟動也會繼續,因此大檔案上傳完成時不需要再次讀取整個檔案。之後使用 --verify 才能確認磁碟內容仍與上傳時相同。

檔案如何受到保護

仍然無法解決?

請在 GitHub 回報問題,說明操作過程、預期結果和實際發生的情況。