diff --git a/sdk/storage/azure-storage-blob/CHANGELOG.md b/sdk/storage/azure-storage-blob/CHANGELOG.md index 98babd5d7bd6..d491967ba22d 100644 --- a/sdk/storage/azure-storage-blob/CHANGELOG.md +++ b/sdk/storage/azure-storage-blob/CHANGELOG.md @@ -1,5 +1,14 @@ # Release History +## 12.28.0 (Unreleased) + +### Features Added +- Stable release of features from 12.28.0b1 + +### Other Changes +- Changed the default `connection_data_block_size` for all clients from 4 KiB to 256 KiB. This should result in +significantly better throughput on large file downloads for most environments. + ## 12.28.0b1 (2025-12-04) ### Features Added diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/base_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/base_client.py index dbb3b369c6d2..5441488d86a9 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/base_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/base_client.py @@ -35,7 +35,14 @@ ) from .authentication import SharedKeyCredentialPolicy -from .constants import CONNECTION_TIMEOUT, DEFAULT_OAUTH_SCOPE, READ_TIMEOUT, SERVICE_HOST_BASE, STORAGE_OAUTH_SCOPE +from .constants import ( + CONNECTION_TIMEOUT, + DATA_BLOCK_SIZE, + DEFAULT_OAUTH_SCOPE, + READ_TIMEOUT, + SERVICE_HOST_BASE, + STORAGE_OAUTH_SCOPE, +) from .models import LocationMode, StorageConfiguration from .parser import DEVSTORE_ACCOUNT_KEY, _get_development_storage_endpoint from .policies import ( @@ -268,6 +275,7 @@ def _create_pipeline( transport = kwargs.get("transport") kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) kwargs.setdefault("read_timeout", READ_TIMEOUT) + kwargs.setdefault("connection_data_block_size", DATA_BLOCK_SIZE) if not transport: transport = RequestsTransport(**kwargs) policies = [ diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/base_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/base_client_async.py index d77258b3b426..16aba3116029 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/base_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/base_client_async.py @@ -24,7 +24,14 @@ from .authentication import SharedKeyCredentialPolicy from .base_client import create_configuration -from .constants import CONNECTION_TIMEOUT, DEFAULT_OAUTH_SCOPE, READ_TIMEOUT, SERVICE_HOST_BASE, STORAGE_OAUTH_SCOPE +from .constants import ( + CONNECTION_TIMEOUT, + DATA_BLOCK_SIZE, + DEFAULT_OAUTH_SCOPE, + READ_TIMEOUT, + SERVICE_HOST_BASE, + STORAGE_OAUTH_SCOPE, +) from .models import StorageConfiguration from .parser import DEVSTORE_ACCOUNT_KEY, _get_development_storage_endpoint from .policies import ( @@ -109,6 +116,7 @@ def _create_pipeline( transport = kwargs.get("transport") kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) kwargs.setdefault("read_timeout", READ_TIMEOUT) + kwargs.setdefault("connection_data_block_size", DATA_BLOCK_SIZE) if not transport: try: from azure.core.pipeline.transport import ( # pylint: disable=non-abstract-transport-import diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/constants.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/constants.py index 0926f04c4081..50c760369faa 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/constants.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/constants.py @@ -9,9 +9,10 @@ X_MS_VERSION = _SUPPORTED_API_VERSIONS[-1] -# Default socket timeouts, in seconds +# Connection defaults CONNECTION_TIMEOUT = 20 READ_TIMEOUT = 60 +DATA_BLOCK_SIZE = 256 * 1024 DEFAULT_OAUTH_SCOPE = "/.default" STORAGE_OAUTH_SCOPE = "https://storage.azure.com/.default" diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_version.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_version.py index fba707d3fede..b1d628fe687c 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_version.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_version.py @@ -4,4 +4,4 @@ # license information. # -------------------------------------------------------------------------- -VERSION = "12.28.0b1" +VERSION = "12.28.0" diff --git a/sdk/storage/azure-storage-blob/setup.py b/sdk/storage/azure-storage-blob/setup.py index c25bb083178e..012ceddd8d80 100644 --- a/sdk/storage/azure-storage-blob/setup.py +++ b/sdk/storage/azure-storage-blob/setup.py @@ -56,7 +56,7 @@ url='https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob', keywords="azure, azure sdk", classifiers=[ - 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python', 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3', diff --git a/sdk/storage/azure-storage-file-datalake/CHANGELOG.md b/sdk/storage/azure-storage-file-datalake/CHANGELOG.md index 3f7356161e7b..075e04c0fac3 100644 --- a/sdk/storage/azure-storage-file-datalake/CHANGELOG.md +++ b/sdk/storage/azure-storage-file-datalake/CHANGELOG.md @@ -1,5 +1,14 @@ # Release History +## 12.23.0 (Unreleased) + +### Features Added +- Stable release of features from 12.23.0b1 + +### Other Changes +- Changed the default `connection_data_block_size` for all clients from 4 KiB to 256 KiB. This should result in +significantly better throughput on large file downloads for most environments. + ## 12.23.0b1 (2025-12-04) ### Features Added diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/base_client.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/base_client.py index dbb3b369c6d2..5441488d86a9 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/base_client.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/base_client.py @@ -35,7 +35,14 @@ ) from .authentication import SharedKeyCredentialPolicy -from .constants import CONNECTION_TIMEOUT, DEFAULT_OAUTH_SCOPE, READ_TIMEOUT, SERVICE_HOST_BASE, STORAGE_OAUTH_SCOPE +from .constants import ( + CONNECTION_TIMEOUT, + DATA_BLOCK_SIZE, + DEFAULT_OAUTH_SCOPE, + READ_TIMEOUT, + SERVICE_HOST_BASE, + STORAGE_OAUTH_SCOPE, +) from .models import LocationMode, StorageConfiguration from .parser import DEVSTORE_ACCOUNT_KEY, _get_development_storage_endpoint from .policies import ( @@ -268,6 +275,7 @@ def _create_pipeline( transport = kwargs.get("transport") kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) kwargs.setdefault("read_timeout", READ_TIMEOUT) + kwargs.setdefault("connection_data_block_size", DATA_BLOCK_SIZE) if not transport: transport = RequestsTransport(**kwargs) policies = [ diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/base_client_async.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/base_client_async.py index d77258b3b426..16aba3116029 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/base_client_async.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/base_client_async.py @@ -24,7 +24,14 @@ from .authentication import SharedKeyCredentialPolicy from .base_client import create_configuration -from .constants import CONNECTION_TIMEOUT, DEFAULT_OAUTH_SCOPE, READ_TIMEOUT, SERVICE_HOST_BASE, STORAGE_OAUTH_SCOPE +from .constants import ( + CONNECTION_TIMEOUT, + DATA_BLOCK_SIZE, + DEFAULT_OAUTH_SCOPE, + READ_TIMEOUT, + SERVICE_HOST_BASE, + STORAGE_OAUTH_SCOPE, +) from .models import StorageConfiguration from .parser import DEVSTORE_ACCOUNT_KEY, _get_development_storage_endpoint from .policies import ( @@ -109,6 +116,7 @@ def _create_pipeline( transport = kwargs.get("transport") kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) kwargs.setdefault("read_timeout", READ_TIMEOUT) + kwargs.setdefault("connection_data_block_size", DATA_BLOCK_SIZE) if not transport: try: from azure.core.pipeline.transport import ( # pylint: disable=non-abstract-transport-import diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/constants.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/constants.py index 0926f04c4081..50c760369faa 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/constants.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/constants.py @@ -9,9 +9,10 @@ X_MS_VERSION = _SUPPORTED_API_VERSIONS[-1] -# Default socket timeouts, in seconds +# Connection defaults CONNECTION_TIMEOUT = 20 READ_TIMEOUT = 60 +DATA_BLOCK_SIZE = 256 * 1024 DEFAULT_OAUTH_SCOPE = "/.default" STORAGE_OAUTH_SCOPE = "https://storage.azure.com/.default" diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_version.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_version.py index 2d6a57d774cb..9bdabb440225 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_version.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_version.py @@ -4,4 +4,4 @@ # license information. # -------------------------------------------------------------------------- -VERSION = "12.23.0b1" +VERSION = "12.23.0" diff --git a/sdk/storage/azure-storage-file-datalake/setup.py b/sdk/storage/azure-storage-file-datalake/setup.py index 2ae9e78c9bc8..3fc5b859e2ee 100644 --- a/sdk/storage/azure-storage-file-datalake/setup.py +++ b/sdk/storage/azure-storage-file-datalake/setup.py @@ -57,7 +57,7 @@ url='https://github.com/Azure/azure-sdk-for-python', keywords="azure, azure sdk", classifiers=[ - 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python', 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3', @@ -79,7 +79,7 @@ python_requires=">=3.9", install_requires=[ "azure-core>=1.30.0", - "azure-storage-blob>=12.28.0b1", + "azure-storage-blob>=12.28.0", "typing-extensions>=4.6.0", "isodate>=0.6.1" ], diff --git a/sdk/storage/azure-storage-file-share/CHANGELOG.md b/sdk/storage/azure-storage-file-share/CHANGELOG.md index c88a9289c5ff..9dddb53c5efd 100644 --- a/sdk/storage/azure-storage-file-share/CHANGELOG.md +++ b/sdk/storage/azure-storage-file-share/CHANGELOG.md @@ -1,5 +1,14 @@ # Release History +## 12.24.0 (Unreleased) + +### Features Added +- Stable release of features from 12.24.0b1 + +### Other Changes +- Changed the default `connection_data_block_size` for all clients from 4 KiB to 256 KiB. This should result in +significantly better throughput on large file downloads for most environments. + ## 12.24.0b1 (2025-12-04) ### Features Added diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/base_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/base_client.py index dbb3b369c6d2..5441488d86a9 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/base_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/base_client.py @@ -35,7 +35,14 @@ ) from .authentication import SharedKeyCredentialPolicy -from .constants import CONNECTION_TIMEOUT, DEFAULT_OAUTH_SCOPE, READ_TIMEOUT, SERVICE_HOST_BASE, STORAGE_OAUTH_SCOPE +from .constants import ( + CONNECTION_TIMEOUT, + DATA_BLOCK_SIZE, + DEFAULT_OAUTH_SCOPE, + READ_TIMEOUT, + SERVICE_HOST_BASE, + STORAGE_OAUTH_SCOPE, +) from .models import LocationMode, StorageConfiguration from .parser import DEVSTORE_ACCOUNT_KEY, _get_development_storage_endpoint from .policies import ( @@ -268,6 +275,7 @@ def _create_pipeline( transport = kwargs.get("transport") kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) kwargs.setdefault("read_timeout", READ_TIMEOUT) + kwargs.setdefault("connection_data_block_size", DATA_BLOCK_SIZE) if not transport: transport = RequestsTransport(**kwargs) policies = [ diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/base_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/base_client_async.py index d77258b3b426..16aba3116029 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/base_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/base_client_async.py @@ -24,7 +24,14 @@ from .authentication import SharedKeyCredentialPolicy from .base_client import create_configuration -from .constants import CONNECTION_TIMEOUT, DEFAULT_OAUTH_SCOPE, READ_TIMEOUT, SERVICE_HOST_BASE, STORAGE_OAUTH_SCOPE +from .constants import ( + CONNECTION_TIMEOUT, + DATA_BLOCK_SIZE, + DEFAULT_OAUTH_SCOPE, + READ_TIMEOUT, + SERVICE_HOST_BASE, + STORAGE_OAUTH_SCOPE, +) from .models import StorageConfiguration from .parser import DEVSTORE_ACCOUNT_KEY, _get_development_storage_endpoint from .policies import ( @@ -109,6 +116,7 @@ def _create_pipeline( transport = kwargs.get("transport") kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) kwargs.setdefault("read_timeout", READ_TIMEOUT) + kwargs.setdefault("connection_data_block_size", DATA_BLOCK_SIZE) if not transport: try: from azure.core.pipeline.transport import ( # pylint: disable=non-abstract-transport-import diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/constants.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/constants.py index 0926f04c4081..50c760369faa 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/constants.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/constants.py @@ -9,9 +9,10 @@ X_MS_VERSION = _SUPPORTED_API_VERSIONS[-1] -# Default socket timeouts, in seconds +# Connection defaults CONNECTION_TIMEOUT = 20 READ_TIMEOUT = 60 +DATA_BLOCK_SIZE = 256 * 1024 DEFAULT_OAUTH_SCOPE = "/.default" STORAGE_OAUTH_SCOPE = "https://storage.azure.com/.default" diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_version.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_version.py index f67466f0741b..444bd6f8a740 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_version.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_version.py @@ -4,4 +4,4 @@ # license information. # -------------------------------------------------------------------------- -VERSION = "12.24.0b1" +VERSION = "12.24.0" diff --git a/sdk/storage/azure-storage-file-share/setup.py b/sdk/storage/azure-storage-file-share/setup.py index c2bd79bb1c36..a5e6c617a626 100644 --- a/sdk/storage/azure-storage-file-share/setup.py +++ b/sdk/storage/azure-storage-file-share/setup.py @@ -45,7 +45,7 @@ url='https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share', keywords="azure, azure sdk", classifiers=[ - 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python', 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3', diff --git a/sdk/storage/azure-storage-queue/CHANGELOG.md b/sdk/storage/azure-storage-queue/CHANGELOG.md index dab10a6dd082..31d5aa8ea05c 100644 --- a/sdk/storage/azure-storage-queue/CHANGELOG.md +++ b/sdk/storage/azure-storage-queue/CHANGELOG.md @@ -1,5 +1,10 @@ # Release History +## 12.15.0 (Unreleased) + +### Features Added +- Stable release of features from 12.15.0b1 + ## 12.15.0b1 (2025-12-04) ### Features Added diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/base_client.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/base_client.py index 9a5ab430bf8f..3f7609b9f026 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/base_client.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/base_client.py @@ -35,7 +35,14 @@ ) from .authentication import SharedKeyCredentialPolicy -from .constants import CONNECTION_TIMEOUT, DEFAULT_OAUTH_SCOPE, READ_TIMEOUT, SERVICE_HOST_BASE, STORAGE_OAUTH_SCOPE +from .constants import ( + CONNECTION_TIMEOUT, + DATA_BLOCK_SIZE, + DEFAULT_OAUTH_SCOPE, + READ_TIMEOUT, + SERVICE_HOST_BASE, + STORAGE_OAUTH_SCOPE, +) from .models import LocationMode, StorageConfiguration from .parser import DEVSTORE_ACCOUNT_KEY, _get_development_storage_endpoint from .policies import ( @@ -268,6 +275,7 @@ def _create_pipeline( transport = kwargs.get("transport") kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) kwargs.setdefault("read_timeout", READ_TIMEOUT) + kwargs.setdefault("connection_data_block_size", DATA_BLOCK_SIZE) if not transport: transport = RequestsTransport(**kwargs) policies = [ diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/base_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/base_client_async.py index 6fff66b5a920..400f7d6f6dff 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/base_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/base_client_async.py @@ -24,7 +24,14 @@ from .authentication import SharedKeyCredentialPolicy from .base_client import create_configuration -from .constants import CONNECTION_TIMEOUT, DEFAULT_OAUTH_SCOPE, READ_TIMEOUT, SERVICE_HOST_BASE, STORAGE_OAUTH_SCOPE +from .constants import ( + CONNECTION_TIMEOUT, + DATA_BLOCK_SIZE, + DEFAULT_OAUTH_SCOPE, + READ_TIMEOUT, + SERVICE_HOST_BASE, + STORAGE_OAUTH_SCOPE, +) from .models import StorageConfiguration from .parser import DEVSTORE_ACCOUNT_KEY, _get_development_storage_endpoint from .policies import ( @@ -109,6 +116,7 @@ def _create_pipeline( transport = kwargs.get("transport") kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) kwargs.setdefault("read_timeout", READ_TIMEOUT) + kwargs.setdefault("connection_data_block_size", DATA_BLOCK_SIZE) if not transport: try: from azure.core.pipeline.transport import ( # pylint: disable=non-abstract-transport-import diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/constants.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/constants.py index 0926f04c4081..50c760369faa 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/constants.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/constants.py @@ -9,9 +9,10 @@ X_MS_VERSION = _SUPPORTED_API_VERSIONS[-1] -# Default socket timeouts, in seconds +# Connection defaults CONNECTION_TIMEOUT = 20 READ_TIMEOUT = 60 +DATA_BLOCK_SIZE = 256 * 1024 DEFAULT_OAUTH_SCOPE = "/.default" STORAGE_OAUTH_SCOPE = "https://storage.azure.com/.default" diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_version.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_version.py index a2802d2b22cd..773eb79e21fa 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_version.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_version.py @@ -4,4 +4,4 @@ # license information. # -------------------------------------------------------------------------- -VERSION = "12.15.0b1" +VERSION = "12.15.0" diff --git a/sdk/storage/azure-storage-queue/setup.py b/sdk/storage/azure-storage-queue/setup.py index 36bcfbe34afc..bf1cc6706876 100644 --- a/sdk/storage/azure-storage-queue/setup.py +++ b/sdk/storage/azure-storage-queue/setup.py @@ -45,7 +45,7 @@ url="https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-queue", keywords="azure, azure sdk", classifiers=[ - "Development Status :: 4 - Beta", + "Development Status :: 5 - Production/Stable", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3",