12
12
from typing import AsyncIterator
13
13
14
14
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
17
17
18
18
from .._shared .request_handlers import validate_and_format_range_headers
19
19
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):
114
114
)
115
115
retry_active = False
116
116
117
- except HttpResponseError as error :
118
- process_storage_error (error )
119
- except ClientPayloadError as error :
117
+ except IncompleteReadError as error :
120
118
retry_total -= 1
121
119
if retry_total <= 0 :
122
120
raise ServiceResponseError (error , error = error )
123
121
await asyncio .sleep (1 )
124
122
123
+ except HttpResponseError as error :
124
+ process_storage_error (error )
125
+
125
126
chunk_data = await process_content (response , offset [0 ], offset [1 ], self .encryption_options )
126
127
127
128
@@ -356,6 +357,12 @@ async def _initial_request(self):
356
357
self .size = self ._file_size
357
358
retry_active = False
358
359
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
+
359
366
except HttpResponseError as error :
360
367
if self ._start_range is None and error .response .status_code == 416 :
361
368
# Get range will fail on an empty file. If the user did not
@@ -377,12 +384,6 @@ async def _initial_request(self):
377
384
else :
378
385
process_storage_error (error )
379
386
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
-
386
387
# get page ranges to optimize downloading sparse page blob
387
388
if response .properties .blob_type == 'PageBlob' :
388
389
try :
0 commit comments