修復 RcloneView 中的 S3 分段上傳失敗問題
S3 分段上傳會將大型檔案切割成多個區塊,以進行平行傳輸與可續傳性,但過程中若發生失敗,可能導致上傳不完整、浪費儲存空間並阻塞傳輸——以下說明如何在 RcloneView 中修復這些問題。
Amazon S3 與相容於 S3 的服務供應商(Wasabi、Backblaze B2 S3、Cloudflare R2、MinIO、DigitalOcean Spaces)要求超過 5 GB 的檔案必須使用分段上傳,並建議超過 100 MB 的檔案也採用此方式。檔案會被切割成多個部分(預設每段 5 MB 至 5 GB),以平行方式上傳,並在伺服器端組合完成。當此流程中途失敗時——原因可能是網路中斷、逾時,或分段大小設定錯誤——結果就是產生一個消耗儲存空間卻無法使用的不完整上傳物件。

在同一處管理與同步所有雲端
RcloneView 是 rclone 的跨平台 GUI。透過清爽的視覺化介面比較資料夾、傳輸或同步檔案,並自動化多雲工作流程。
- 一鍵作業:複製 · 同步 · 比較
- 排程器與歷史記錄,打造可靠的自動化
- 支援 Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTP 等
核心功能免費。Plus 提供自動化功能。
常見症狀
- 上傳停滯或卡住:大型檔案的傳輸似乎在中途停止。RcloneView 的監控畫面長時間顯示沒有進度。
- 「EntityTooSmall」錯誤:上傳的分段小於最小限制(大多數 S3 供應商為 5 MB)。這通常發生在區塊大小設定相對於檔案大小過小時。
- 「EntityTooLarge」錯誤:單一分段超過允許的最大大小(5 GB)。
- 「InvalidPart」或「InvalidPartOrder」:分段上傳順序錯誤,或某個分段在傳輸過程中損毀。伺服器會拒絕完成請求。
- 儲存用量增加但檔案未出現:不完整的分段上傳會消耗儲存空間。這些分段存在於伺服器上,但最終的物件卻從未被組合完成。
修復方法 1:調整區塊大小
分段上傳失敗最常見的原因,是區塊大小相對於檔案大小設定不正確。S3 每個上傳最多允許 10,000 個分段。如果區塊大小對於大型檔案來說太小,上傳就會超過分段數量限制而失敗。
範例:一個 500 GB 的檔案若使用預設的 5 MB 區塊大小,將需要 100,000 個分段——遠遠超過 10,000 個分段的限制。
在 RcloneView 中,可在設定 S3 遠端或作業的進階選項時調整區塊大小。一個好的經驗法則是:將區塊大小設定為至少 檔案大小 / 10,000。對於 500 GB 的檔案,至少應使用 50 MB 的區塊。對大多數工作負載而言,64 MB 到 128 MB 的區塊大小能在平行處理與可靠性之間取得良好平衡。
您可以在 RcloneView 的自訂旗標欄位中,使用 --s3-chunk-size 旗標設定此項目。
修復方法 2:增加上傳逾時時間
在速度較慢的連線上傳輸大型分段可能會超過預設的逾時時間。如果您的連線速度低於 10 Mbps,一個 128 MB 的區塊可能需要超過 100 秒才能上傳完成——接近預設逾時限制。
使用 --timeout 旗標增加逾時時間。例如,--timeout 300s 會給予每個分段最多 5 分鐘的完成時間。您也可以縮小區塊大小,讓個別分段能更快傳輸完成。
修復方法 3:降低傳輸並行數量
同時上傳過多分段可能會使您的網路連線或 S3 端點負荷過重。如果您在分段上傳過程中頻繁遇到逾時或連線重設,請降低同時傳輸的數量。
在 RcloneView 的作業設定中,將傳輸數量從預設值(4)降低為 2,甚至對於非常大的檔案降為 1。您也可以使用 --s3-upload-concurrency 來控制單一檔案有多少個分段以平行方式上傳(預設為 4)。
修復方法 4:清理孤立的分段上傳
失敗的分段上傳會在伺服器上留下孤立的分段,這些分段會持續消耗儲存空間並產生費用。這些分段不會以物件的形式顯示——無論是在 RcloneView 或 AWS 主控台瀏覽儲存貯體時,您都不會看到它們。
若要清理孤立的上傳:
- AWS S3:在儲存貯體上設定生命週期規則,於指定天數後(例如 7 天)自動中止不完整的分段上傳。此設定可在 AWS 主控台的儲存貯體「管理」分頁中完成。
- 使用 rclone:從 RcloneView 內建的終端機執行
rclone cleanup remote:bucket。此指令會中止指定儲存貯體上所有待處理的分段上傳。 - 相容於 S3 的服務供應商:大多數供應商都支援相同的生命週期規則或清理指令,但請查閱您的服務供應商文件以了解詳細資訊。
修復方法 5:啟用失敗重試
分段上傳過程中的網路中斷可能導致個別分段失敗。RcloneView 會自動重試失敗的操作(預設為 3 次重試,並採用指數退避策略)。如果您經常遇到暫時性的失敗,可在自訂旗標中使用 --retries 5 或 --retries 10 增加重試次數。
對於非常不穩定的連線,也可設定 --low-level-retries 10,在將某次操作判定為失敗前先重試個別的 HTTP 請求。
修復方法 6:盡可能使用伺服器端複製
如果您是在同一服務供應商的兩個相容於 S3 的儲存貯體之間進行複製,伺服器端複製可以完全避免分段上傳的問題——資料會在供應商的網路內移動,而不會經過您的電腦。當來源與目的地位於同一 S3 供應商時,RcloneView 會自動使用伺服器端複製。
對於跨供應商傳輸(例如從 AWS S3 傳輸到 Cloudflare R2),資料必須經過您的電腦,且分段上傳會套用於目的地端。