NVIDIA/multi-storage-client 1.3.0
NVIDIA/multi-storage-client
Captured source
source ↗published Oct 23, 2026seen 19hcaptured 19hhttp 200method plain
1.3.0
Repository: NVIDIA/multi-storage-client
Tag: 1.3.0
Published: 2026-10-23T19:08:55Z
Prerelease: no
Release notes: This release adds resumable Rust multipart downloads and richer local sync progress, with fixes for range reads, caching, paths, and storage transfers.
New Features
- Batch
download_filesandupload_filesaccept an optionaltransfer_callback; local sync progress shows active-file counts and details by default in interactive terminals. - Rust multipart downloads to local files now resume automatically after interruption.
- Local sync progress bars now show the combined network rate of MSC and its workers on macOS and Linux.
StorageClient.download_fileaccepts optionalmetadatafrominfoto avoid a repeated provider lookup.
Bug Fixes
- Ordering comparisons between MSC paths and equivalent standard-library paths are consistent for all comparison operators.
- Small Rust-backed S3 downloads and GCS transfers now translate storage errors consistently with multipart transfers, including permission failures during GCS metadata lookup.
- Rust batch downloads resolve symlink targets and use their metadata for multipart decisions.
- Non-MSC URLs such as
s3://bucket/shard#1.tarorgs://bucket/file?.txt, including ones resolved throughpath_mapping, keep the?and#parts of the object key instead of dropping them. - Reads through replicas honor byte ranges when the local cache is disabled.
- The fsspec filesystem (
msc://URLs) honorsstartandendincat_file, socat_ranges,read_bytes, and Zarr partial reads, such as those of sharded arrays, return the requested bytes instead of the whole object. - Failed Python-backed S3 staged downloads attempt to remove partial files and preserve the existing destination.
- Object paths with a leading slash now create cache lock files beside their cached data under the configured cache directory.
- Manifest metadata lookups recognize the profile root when it contains files.
- Attribute filter expressions evaluate
ANDbeforeOR, soa = "1" AND b = "2" OR c = "3"also matches objects that only satisfyc = "3". - GCS multipart
StringIOtransfers use UTF-8 consistently, including on systems with non-UTF-8 locales. - Range reads now reuse complete cached files without requiring an ETag when source version checking is disabled, avoiding unnecessary chunk downloads and assembly.
- Immutable configuration dictionaries reject in-place union updates with
|=. - Pending manifest overwrites return the new metadata when
include_pending=True. - Cancelling a local
msc syncwith Ctrl+C now stops worker processes and network sampling, removes temporary files staged by stopped worker processes, and exits promptly with status 130 instead of waiting for in-flight transfer thread pools. - Explorer previews pass the supported byte-range type, avoiding an unnecessary full-file fallback for range-capable clients.
Path.write_text()now honors itserrorsargument when encoding text.- Opening an object for a full download now reuses its initial metadata lookup, avoiding an extra storage request for direct reads.
- Cached reads skip unnecessary access-time updates with FIFO, RANDOM, and NO_EVICTION policies, reducing filesystem overhead while preserving LRU and MRU tracking.