12.31.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 viaBlobClientOptions.SessionOptions.SessionMode. - Changed the default value of
GetBlobsOptions.ResponseFormatandGetBlobsByHierarchyOptions.ResponseFormattoStorageResponseFormat.Arrow. The default value was previouslyStorageResponseFormat.Xml. This change will improve performance and modify the response format of theGetBlobsandGetBlobsByHierarchyAPIs when the caller does not explicitly set the response format. Callers that require XML responses should explicitly set the response format toStorageResponseFormat.Xml. - Added support for locality-aware downloads for
BlobBaseClient.DownloadTo,BlobBaseClient.DownloadToAsync,BlobBaseClient.OpenRead, andBlobBaseClient.OpenReadAsyncoperations. This is currently disabled by default and can be enabled viaBlobDownloadToOptions.LayoutAwareRoutingandBlobOpenReadOptions.LayoutAwareRouting.
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 (
BlobBaseClient.DownloadTo/DownloadToAsync): 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 (
BlobClient.Upload/UploadAsync,BlockBlobClient.Upload/UploadAsync): a blob is now uploaded in a single Put Blob request 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 request. - 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 client-side encryption v1 decryption of ranged downloads so the 16-byte IV is fully read even when the ciphertext stream returns short reads, and a truncated IV now fails instead of silently corrupting plaintext.
- 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:BlobBaseClient.GenerateSasUri(...)BlobBaseClient.GenerateUserDelegationSasUri(...)BlobContainerClient.GenerateSasUri(...)BlobContainerClient.GenerateUserDelegationSasUri(...)BlobServiceClient.GenerateAccountSasUri(...)BlobSasBuilder