12.29.0-beta.1 (2026-11-05)
Features Added
- Added support for Session Authentication for
TokenCredential-authenticated clients using GET Blob operations. This is currently disabled by default and can be enabled viaDataLakeClientOptions.SessionOptions.SessionMode. - Added support for locality-aware downloads for
DataLakeFileClient.ReadTo,DataLakeFileClient.ReadToAsync,DataLakeFileClient.OpenRead, andDataLakeFileClient.OpenReadAsyncoperations. This is currently disabled by default and can be enabled viaDataLakeFileReadToOptions.LayoutAwareRoutingandDataLakeOpenReadOptions.LayoutAwareRouting. - Added support for scheduling file deletion with
DataLakeFileClient.UploadandUploadAsync.
Breaking Changes
- Changed the default value of
StorageTransferOptions.InitialTransferSizeused by partitioned uploads and downloads when it is not set by the caller. It now matches the default size of subsequent chunks instead of 256 MB:- Downloads (
DataLakeFileClient.ReadTo/ReadToAsync): the first range request now defaults to 4 MB, the same as subsequent ranges. Previously, it was 256 MB when no transfer checksum was used. - Uploads (
DataLakeFileClient.Upload/UploadAsync): a file is now uploaded in a single Append and Flush only if its content is smaller than the default block size (4 MB, or 8 MB for content of 100 MB or more). Previously, content smaller than 256 MB was uploaded in a single append. - This means uploads and downloads may be partitioned more often, leading to more requests.
- Explicitly set
InitialTransferSizeandMaximumTransferSizevalues are still respected. To restore the previous behavior, setStorageTransferOptions.InitialTransferSizeto 256 MB.
- Downloads (
Bugs Fixed
- Fixed SAS timestamp handling for non-UTC
DateTimeOffsetvalues. SAS times are now normalized to UTC before formatting/signing, preventing unintended validity windows in st/se (Start Time, Expiry Time) and related delegation key fields. Affected APIs include:DataLakeFileSystemClient.GenerateSasUri(...)DataLakeFileSystemClient.GenerateUserDelegationSasUri(...)DataLakePathClient.GenerateSasUri(...)DataLakePathClient.GenerateUserDelegationSasUri(...)DataLakeServiceClient.GenerateAccountSasUri(...)DataLakeSasBuilder