檔案傳輸卡在 100%:如何判斷驗證與最後處理是否完成
檔案傳輸卡在 100% 可能仍在讀回驗證或完成目的端作業。從紀錄、讀取流量與驗收結果,判斷還有哪些工作尚未結束。
傳輸進度到了 100%,網路流量降了下來,剪輯師卻還在等素材。重新啟動工作前,先確認百分比計算的是什麼:它可能只記錄已送出的資料量,驗證或目的端的最後一道作業仍在進行。
排查時,應分開看三個時間點:資料送出、目的端作業完成,以及交付驗收通過。這些時間點之間的落差,可以解釋等待時間;它本身不能證明檔案損壞或應用程式故障。
實際使用者回報了什麼
在 2026 年 7 月的 Synology 討論中,一位 rclone 1.74.3 使用者把加密資料複製到掛載的 SMB 分享資料夾,回報進度到 100% 後仍停留一段時間。貼出的紀錄最後顯示雜湊值吻合、複製完成;後續回覆則繼續描述其他測試。
這是特定配置的案例,可作為排查線索,不能推論所有 Synology 或加密傳輸都有相同原因。使用者後來關閉校驗和檢查的實驗,改變了實際執行的工作,因此不能視為同等驗證程度的成功交付。
另一則 2026 年 3 月的較早回報呈現相反現象:rclone 1.73.2/1.73.3 在成功的 S3 伺服器端複製期間一直顯示 0%。維護者後來指出 beta 版已有修正。這是歷史上的進度顯示案例,不代表目前版本仍有同樣問題。
兩個案例都說明,百分比必須連同作業內容解讀。下一步是查看數字背後正在執行的工作。
先找出尚未完成的階段
檔案傳輸可能包含數個無法用位元組計數完整表達的作業:
- 讀取並送出資料。 傳輸速度通常最容易反映這個階段。
- 檢查目的端。 驗證可能比對伺服器提供的雜湊值,也可能重新讀取檔案內容。
- 完成目的端作業。 儲存服務可能要組合已上傳的區塊;用戶端也可能仍在關閉檔案或設定中繼資料。
- 驗收交付。 收件者確認必要檔案齊全、驗證通過,而且預定使用的應用程式能正常開啟。
不同實作的階段可能重疊。應以紀錄判斷當下是哪一道作業,不要把所有停頓都歸因於校驗和計算。
Amazon S3 提供了一個具體例子。CompleteMultipartUpload 文件說明,最後處理可能耗時數分鐘,而且初始 HTTP 200 之後的回應本文仍可能包含錯誤。因此要看用戶端最終結果,不能只看區塊已上傳或初始回應。
對本機或掛載路徑,也要檢查最後的中繼資料作業。rclone 本機後端文件說明,複製後會更新修改時間,而 CIFS 掛載可能遇到權限問題。時間戳記錯誤與長時間讀取內容,需要不同的排查方向。
用實際活動縮小原因範圍
下表是排查架構,不代表每個應用程式都已確認有這些問題。
| 觀察到的現象 | 可能代表什麼 | 下一步檢查 |
|---|---|---|
| 位元組已到 100%,完成檔案數卻沒有增加 | 目前檔案仍有作業未結束 | 最後一筆紀錄、驗證狀態與目的端回應 |
| 上傳停止後,傳送端開始接收大量資料 | 可能正在讀回目的端內容做驗證 | 程序與網路計數,以及後端的雜湊計算方式 |
| 目的端磁碟或 CPU 仍持續忙碌 | 可能仍在計算雜湊、寫入或執行其他本機作業 | 佔用資源的程序及其紀錄 |
| 多段上傳的完成請求仍在等待 | 伺服器可能還在做最後處理 | 最終 API/用戶端結果與錯誤 |
| 權限或時間戳記錯誤反覆出現 | 中繼資料處理或重試行為 | 目的端擁有者、權限與確切失敗作業 |
| 沒有活動、沒有完成結果,且持續逾時 | 可能是連線停滯或重試迴圈 | 逾時與錯誤歷程;重試前先保存紀錄 |
傳送端流量低,無法單獨區分正常的伺服器端作業與停滯。同樣地,目錄裡看得到檔案,也不能證明檔案已完整寫入。應確認工作成功結束,並取得約定的驗證結果。
如果整段傳輸都慢,而不只在最後停留,請先參考上傳瓶頸排查指南。
雜湊在哪裡計算,會改變驗證成本
校驗和是從檔案內容計算出的摘要。兩端的值都已存在時,比對成本很低;取得摘要本身則可能需要再讀一次整個檔案。
掛載的 SMB 路徑,對傳輸應用程式可能看起來像本機路徑,但資料實際存放在另一台機器。若驗證會讀取這條路徑,資料就可能再次經過網路。必須確認實際後端與設定:rclone 原生 SMB 後端,與指向掛載分享資料夾的本機後端,是兩條不同路徑,不能假設雜湊行為相同。
rclone 的 SFTP 後端可透過獲准執行的遠端 shell 指令,在目的端計算雜湊。這可以避免把目的端整個檔案傳回來,但仍會消耗目的端的讀取頻寬與 CPU。受限制的 SFTP 帳號不一定允許執行這些指令。
只有符合既有存取政策時,才選擇這種配置。為了縮短驗證時間而授予廣泛的 shell 存取權,是另一項管理決策。若要改善資料傳送階段,可參考 SFTP 效能指南。
把驗證時間納入估算
以下是計算示例,不是實測:一個十進位 100 GB 檔案,以有效速率 100 MB/s 傳送,接著以 40 MB/s 完整讀取一次做驗證,兩個階段不重疊。
| 階段 | 計算 | 時間 |
|---|---|---|
| 資料傳送 | 100,000 MB / 100 MB/s | 16 分 40 秒 |
| 驗證讀取 | 100,000 MB / 40 MB/s | 41 分 40 秒 |
| 合計 | 1,000 + 2,500 秒 | 58 分 20 秒 |
此估算不包含列舉檔案、其他讀取、重試與最後處理。快取讀取、伺服器直接提供雜湊、階段重疊或較慢的硬體,都會改變結果。它說明的是:只用資料傳送的 ETA,可能嚴重低估交付剩餘時間。
驗證副本時,保留原本需要的檢查
驗收前,保持來源資料不變。既有 rclone 配置應選擇符合後端能力的驗證方式:
- rclone check比對檔案清單、大小與可用的相容雜湊。閱讀輸出,確認實際完成哪些檢查;只有大小一致,不能證明內容一致。
- rclone checksum用已保存的 SUM 清單比對目的端;必要時,可透過 download 選項讀取遠端內容後計算雜湊。
- rclone cryptcheck用於加密遠端的檢查,底層儲存必須支援雜湊。規劃時也要納入讀取與加密計算成本。
若無可用雜湊,rclone check 的 --download 模式會讀取內容做比對。對大型遠端資料集執行前,先估算額外網路流量與儲存負載。
關閉校驗和可能讓進度更快結束,原因是少做了一項檢查。如果要把傳送與驗證拆成不同排程,應分別保存兩者結果;驗證尚未完成時,不應標記為已驗收。
定義可用的完成條件
下次使用具代表性的資料交付時,記錄三個時間:資料傳送進度到終點、用戶端回報成功,以及收件端完成驗證。同時保存檔案數、總位元組數、錯誤與驗證方式,每次測試只改一項設定。
攝影原始素材在完整性驗證後,還要做具代表性的開啟或重新連結測試。遠端素材交付指南說明了清單與驗收流程。
如果最後的等待隨檔案大小與讀回活動增加,應檢查驗證在哪裡執行,以及該處的處理能力;若伴隨明確錯誤,就處理該錯誤。這些觀察能幫你決定下一步,避免每次百分比停住就重新啟動工作。