Skip to content

Commit 8e3cd39

Browse files
author
yang.zhao
committed
remove rapid upload
1 parent b87dcb8 commit 8e3cd39

File tree

3 files changed

+108
-180
lines changed

3 files changed

+108
-180
lines changed

README.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,26 @@
2424
2525
## Key Enhancements in this Fork
2626

27-
- **Bypy-style Streaming Upload**: Re-implemented the Baidu upload logic to
28-
use in-memory chunking. Enjoy **zero additional disk overhead** even when
29-
uploading terabyte-sized files.
30-
- **Rapid Upload (秒传) Support**: Automatically calculates MD5, Slice-MD5,
31-
and CRC32 to instantly upload files already present on Baidu servers.
32-
- **Pipe/Stream Friendly**: Fully supports uploading from standard input or
33-
pipes without temporary files.
27+
- **Optimized Chunked Upload**: Re-implemented Baidu upload logic with intelligent
28+
caching strategies. Uses **memory buffering for small files** and **disk spooling
29+
for large files** to handle uploads efficiently without OOM issues.
30+
- **AsyncReader Compatibility**: Fully compatible with rclone's AsyncReader wrapper,
31+
which provides asynchronous read-ahead buffering for improved throughput.
32+
- **Stream-Friendly**: Supports uploading from standard input, pipes, and network
33+
streams through adaptive caching (memory for ≤128MB, temp files for larger).
3434
- **Docker GHCR Integration**: Automated CI pushes multi-arch images directly
3535
to GitHub Container Registry (`ghcr.io/qingmuhy744/rclone`).
3636

37+
### Technical Notes
38+
39+
- **No Rapid Upload**: Due to rclone's AsyncReader wrapping (which improves performance
40+
but removes Seek capability), rapid upload (秒传) is not supported. The framework
41+
prevents access to original file paths required for pre-calculating hashes.
42+
- **Baidu API Limitations**: Baidu's pre-upload API requires submitting all chunk MD5
43+
hashes before uploading data, which conflicts with stream-based uploads. Current
44+
implementation uses caching to work around this design.
45+
46+
3747
---
3848

3949
Rclone *("rsync for cloud storage")* is a command-line program to sync files and

0 commit comments

Comments
 (0)