Skip to content

Commit e40d3e1

Browse files
Steven Jinlmazuel
andauthored
[storage.blob] Remove aiohttp as dependency for storage.blob.aio (#24965)
* Don't import from aiohttp in blob.aio * update changelog * remove dead code * changelog formatting * add retries back in * Catch correct exception * Update sdk/storage/azure-storage-blob/CHANGELOG.md * missing import * catch azure.core exceptions * Revert * changelog typo * changelog formatting * more changelog * merge main Co-authored-by: Laurent Mazuel <[email protected]>
1 parent 6bea2f0 commit e40d3e1

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

sdk/storage/azure-storage-blob/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
## 12.13.0 (Unreleased)
44

55
### Features Added
6+
7+
### Bugs Fixed
68
- Stable release of features from 12.13.0b1.
79
- Added support for deleting versions in `delete_blobs` by supplying `version_id`.
10+
- Removed forced `aiohttp` import from storage async download. (#24965)
811

912
## 12.13.0b1 (2022-06-15)
1013

sdk/storage/azure-storage-blob/azure/storage/blob/aio/_download_async.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
from typing import AsyncIterator
1313

1414
import asyncio
15-
from aiohttp import ClientPayloadError
16-
from azure.core.exceptions import HttpResponseError, ServiceResponseError
15+
16+
from azure.core.exceptions import HttpResponseError, ServiceResponseError, IncompleteReadError
1717

1818
from .._shared.request_handlers import validate_and_format_range_headers
1919
from .._shared.response_handlers import process_storage_error, parse_length_from_content_range
@@ -114,14 +114,15 @@ async def _download_chunk(self, chunk_start, chunk_end):
114114
)
115115
retry_active = False
116116

117-
except HttpResponseError as error:
118-
process_storage_error(error)
119-
except ClientPayloadError as error:
117+
except IncompleteReadError as error:
120118
retry_total -= 1
121119
if retry_total <= 0:
122120
raise ServiceResponseError(error, error=error)
123121
await asyncio.sleep(1)
124122

123+
except HttpResponseError as error:
124+
process_storage_error(error)
125+
125126
chunk_data = await process_content(response, offset[0], offset[1], self.encryption_options)
126127

127128

@@ -356,6 +357,12 @@ async def _initial_request(self):
356357
self.size = self._file_size
357358
retry_active = False
358359

360+
except IncompleteReadError as error:
361+
retry_total -= 1
362+
if retry_total <= 0:
363+
raise ServiceResponseError(error, error=error)
364+
await asyncio.sleep(1)
365+
359366
except HttpResponseError as error:
360367
if self._start_range is None and error.response.status_code == 416:
361368
# Get range will fail on an empty file. If the user did not
@@ -377,12 +384,6 @@ async def _initial_request(self):
377384
else:
378385
process_storage_error(error)
379386

380-
except ClientPayloadError as error:
381-
retry_total -= 1
382-
if retry_total <= 0:
383-
raise ServiceResponseError(error, error=error)
384-
await asyncio.sleep(1)
385-
386387
# get page ranges to optimize downloading sparse page blob
387388
if response.properties.blob_type == 'PageBlob':
388389
try:

0 commit comments

Comments
 (0)