|
24 | 24 |
|
25 | 25 | ## Key Enhancements in this Fork |
26 | 26 |
|
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). |
34 | 34 | - **Docker GHCR Integration**: Automated CI pushes multi-arch images directly |
35 | 35 | to GitHub Container Registry (`ghcr.io/qingmuhy744/rclone`). |
36 | 36 |
|
| 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 | + |
37 | 47 | --- |
38 | 48 |
|
39 | 49 | Rclone *("rsync for cloud storage")* is a command-line program to sync files and |
|
0 commit comments