Skip to content

4.3.0

Choose a tag to compare

@nuwang nuwang released this 10 Jul 19:45
· 23 commits to main since this release
b3912fa

Release highlights

This release adds cross-provider ranged, parallel downloads, completing the transfer story started with 4.2.0's multipart uploads. Fully backward compatible — no code changes are required.

What's new

  • Cross-provider ranged, parallel downloads. The new BucketObject.download_to_file fetches objects larger than the configured threshold as ranged reads of part_size bytes, up to max_concurrency parts in parallel, so large downloads are no longer bound to a single connection (and the whole object is never held in memory). AWS delegates to boto3's TransferManager and Azure to azure-storage-blob's concurrent downloader; GCP and OpenStack Swift use CloudBridge's generic driver, which fetches ranges in parallel via cloned providers. A new BucketObjectService.download_range primitive is also available directly for partial reads. The per-call TransferConfig knobs (threshold, part size, concurrency) now tune transfers in both directions — pass a different instance per call to tune uploads and downloads differently.

Pull Requests

  • Add cross-provider ranged, parallel downloads by @nuwang in #340

Full Changelog: v4.2.1...v4.3.0