From 9f66f6bce7d777b34c03dc9a633148acd0c4f238 Mon Sep 17 00:00:00 2001 From: vincenttran-msft <101599632+vincenttran-msft@users.noreply.github.com> Date: Tue, 5 Jul 2022 17:44:50 -0700 Subject: [PATCH] [Storage] Revert removing aiohttp dependency for storage.blob.aio (#25084) --- sdk/storage/azure-storage-blob/CHANGELOG.md | 1 - .../azure/storage/blob/aio/_download_async.py | 23 +++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/sdk/storage/azure-storage-blob/CHANGELOG.md b/sdk/storage/azure-storage-blob/CHANGELOG.md index 18d56c848932..198aa384f583 100644 --- a/sdk/storage/azure-storage-blob/CHANGELOG.md +++ b/sdk/storage/azure-storage-blob/CHANGELOG.md @@ -7,7 +7,6 @@ ### Bugs Fixed - Stable release of features from 12.13.0b1. - Added support for deleting versions in `delete_blobs` by supplying `version_id`. -- Removed forced `aiohttp` import from storage async download. (#24965) ## 12.13.0b1 (2022-06-15) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py index ddcadc22e7bc..8131c0076489 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py @@ -12,8 +12,8 @@ from typing import AsyncIterator import asyncio - -from azure.core.exceptions import HttpResponseError, ServiceResponseError, IncompleteReadError +from aiohttp import ClientPayloadError +from azure.core.exceptions import HttpResponseError, ServiceResponseError from .._shared.request_handlers import validate_and_format_range_headers from .._shared.response_handlers import process_storage_error, parse_length_from_content_range @@ -114,15 +114,14 @@ async def _download_chunk(self, chunk_start, chunk_end): ) retry_active = False - except IncompleteReadError as error: + except HttpResponseError as error: + process_storage_error(error) + except ClientPayloadError as error: retry_total -= 1 if retry_total <= 0: raise ServiceResponseError(error, error=error) await asyncio.sleep(1) - except HttpResponseError as error: - process_storage_error(error) - chunk_data = await process_content(response, offset[0], offset[1], self.encryption_options) @@ -357,12 +356,6 @@ async def _initial_request(self): self.size = self._file_size retry_active = False - except IncompleteReadError as error: - retry_total -= 1 - if retry_total <= 0: - raise ServiceResponseError(error, error=error) - await asyncio.sleep(1) - except HttpResponseError as error: if self._start_range is None and error.response.status_code == 416: # Get range will fail on an empty file. If the user did not @@ -384,6 +377,12 @@ async def _initial_request(self): else: process_storage_error(error) + except ClientPayloadError as error: + retry_total -= 1 + if retry_total <= 0: + raise ServiceResponseError(error, error=error) + await asyncio.sleep(1) + # get page ranges to optimize downloading sparse page blob if response.properties.blob_type == 'PageBlob': try: