azure-storage-blob 12.22.0__py3-none-any.whl → 12.23.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- azure/storage/blob/_container_client.py +6 -0
- azure/storage/blob/_container_client_helpers.py +7 -2
- azure/storage/blob/_generated/_azure_blob_storage.py +2 -1
- azure/storage/blob/_generated/_serialization.py +2 -0
- azure/storage/blob/_generated/aio/_azure_blob_storage.py +2 -1
- azure/storage/blob/_generated/aio/operations/_append_blob_operations.py +1 -7
- azure/storage/blob/_generated/aio/operations/_blob_operations.py +21 -47
- azure/storage/blob/_generated/aio/operations/_block_blob_operations.py +2 -10
- azure/storage/blob/_generated/aio/operations/_container_operations.py +13 -26
- azure/storage/blob/_generated/aio/operations/_page_blob_operations.py +3 -14
- azure/storage/blob/_generated/aio/operations/_service_operations.py +14 -17
- azure/storage/blob/_generated/operations/_append_blob_operations.py +1 -7
- azure/storage/blob/_generated/operations/_blob_operations.py +21 -47
- azure/storage/blob/_generated/operations/_block_blob_operations.py +2 -10
- azure/storage/blob/_generated/operations/_container_operations.py +13 -26
- azure/storage/blob/_generated/operations/_page_blob_operations.py +3 -14
- azure/storage/blob/_generated/operations/_service_operations.py +14 -17
- azure/storage/blob/_serialize.py +1 -0
- azure/storage/blob/_shared/base_client.py +2 -0
- azure/storage/blob/_shared/policies.py +8 -9
- azure/storage/blob/_shared/policies_async.py +18 -5
- azure/storage/blob/_shared/shared_access_signature.py +20 -2
- azure/storage/blob/_shared_access_signature.py +42 -1
- azure/storage/blob/_version.py +1 -1
- azure/storage/blob/aio/_container_client_async.py +6 -0
- azure/storage/blob/aio/_download_async.py +94 -71
- {azure_storage_blob-12.22.0.dist-info → azure_storage_blob-12.23.0.dist-info}/METADATA +3 -3
- {azure_storage_blob-12.22.0.dist-info → azure_storage_blob-12.23.0.dist-info}/RECORD +31 -32
- {azure_storage_blob-12.22.0.dist-info → azure_storage_blob-12.23.0.dist-info}/WHEEL +1 -1
- azure/storage/blob/_generated/_vendor.py +0 -16
- {azure_storage_blob-12.22.0.dist-info → azure_storage_blob-12.23.0.dist-info}/LICENSE +0 -0
- {azure_storage_blob-12.22.0.dist-info → azure_storage_blob-12.23.0.dist-info}/top_level.txt +0 -0
@@ -19,7 +19,7 @@ from typing import (
|
|
19
19
|
Tuple, TypeVar, Union, TYPE_CHECKING
|
20
20
|
)
|
21
21
|
|
22
|
-
from azure.core.exceptions import HttpResponseError
|
22
|
+
from azure.core.exceptions import DecodeError, HttpResponseError, IncompleteReadError
|
23
23
|
|
24
24
|
from .._shared.request_handlers import validate_and_format_range_headers
|
25
25
|
from .._shared.response_handlers import parse_length_from_content_range, process_storage_error
|
@@ -46,7 +46,8 @@ T = TypeVar('T', bytes, str)
|
|
46
46
|
async def process_content(data: Any, start_offset: int, end_offset: int, encryption: Dict[str, Any]) -> bytes:
|
47
47
|
if data is None:
|
48
48
|
raise ValueError("Response cannot be None.")
|
49
|
-
|
49
|
+
await data.response.read()
|
50
|
+
content = cast(bytes, data.response.content)
|
50
51
|
if encryption.get('key') is not None or encryption.get('resolver') is not None:
|
51
52
|
try:
|
52
53
|
return decrypt_blob(
|
@@ -120,20 +121,30 @@ class _AsyncChunkDownloader(_ChunkDownloader):
|
|
120
121
|
download_range[1],
|
121
122
|
check_content_md5=self.validate_content
|
122
123
|
)
|
123
|
-
try:
|
124
|
-
_, response = await cast(Awaitable[Any], self.client.download(
|
125
|
-
range=range_header,
|
126
|
-
range_get_content_md5=range_validation,
|
127
|
-
validate_content=self.validate_content,
|
128
|
-
data_stream_total=self.total_size,
|
129
|
-
download_stream_current=self.progress_total,
|
130
|
-
**self.request_options
|
131
|
-
))
|
132
124
|
|
133
|
-
|
134
|
-
|
125
|
+
retry_active = True
|
126
|
+
retry_total = 3
|
127
|
+
while retry_active:
|
128
|
+
try:
|
129
|
+
_, response = await cast(Awaitable[Any], self.client.download(
|
130
|
+
range=range_header,
|
131
|
+
range_get_content_md5=range_validation,
|
132
|
+
validate_content=self.validate_content,
|
133
|
+
data_stream_total=self.total_size,
|
134
|
+
download_stream_current=self.progress_total,
|
135
|
+
**self.request_options
|
136
|
+
))
|
137
|
+
except HttpResponseError as error:
|
138
|
+
process_storage_error(error)
|
135
139
|
|
136
|
-
|
140
|
+
try:
|
141
|
+
chunk_data = await process_content(response, offset[0], offset[1], self.encryption_options)
|
142
|
+
retry_active = False
|
143
|
+
except (IncompleteReadError, HttpResponseError, DecodeError) as error:
|
144
|
+
retry_total -= 1
|
145
|
+
if retry_total <= 0:
|
146
|
+
raise HttpResponseError(error, error=error) from error
|
147
|
+
await asyncio.sleep(1)
|
137
148
|
content_length = response.content_length
|
138
149
|
|
139
150
|
# This makes sure that if_match is set so that we can validate
|
@@ -342,66 +353,78 @@ class StorageStreamDownloader(Generic[T]): # pylint: disable=too-many-instance-
|
|
342
353
|
self._initial_range[1],
|
343
354
|
start_range_required=False,
|
344
355
|
end_range_required=False,
|
345
|
-
check_content_md5=self._validate_content
|
356
|
+
check_content_md5=self._validate_content
|
357
|
+
)
|
346
358
|
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
# Parse the total file size and adjust the download size if ranges
|
361
|
-
# were specified
|
362
|
-
self._file_size = parse_length_from_content_range(response.properties.content_range)
|
363
|
-
if self._file_size is None:
|
364
|
-
raise ValueError("Required Content-Range response header is missing or malformed.")
|
365
|
-
# Remove any extra encryption data size from blob size
|
366
|
-
self._file_size = adjust_blob_size_for_encryption(self._file_size, self._encryption_data)
|
367
|
-
|
368
|
-
if self._end_range is not None and self._start_range is not None:
|
369
|
-
# Use the length unless it is over the end of the file
|
370
|
-
self.size = min(self._file_size - self._start_range, self._end_range - self._start_range + 1)
|
371
|
-
elif self._start_range is not None:
|
372
|
-
self.size = self._file_size - self._start_range
|
373
|
-
else:
|
374
|
-
self.size = self._file_size
|
359
|
+
retry_active = True
|
360
|
+
retry_total = 3
|
361
|
+
while retry_active:
|
362
|
+
try:
|
363
|
+
location_mode, response = cast(Tuple[Optional[str], Any], await self._clients.blob.download(
|
364
|
+
range=range_header,
|
365
|
+
range_get_content_md5=range_validation,
|
366
|
+
validate_content=self._validate_content,
|
367
|
+
data_stream_total=None,
|
368
|
+
download_stream_current=0,
|
369
|
+
**self._request_options
|
370
|
+
))
|
375
371
|
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
#
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
self.
|
392
|
-
|
393
|
-
|
394
|
-
|
372
|
+
# Check the location we read from to ensure we use the same one
|
373
|
+
# for subsequent requests.
|
374
|
+
self._location_mode = location_mode
|
375
|
+
|
376
|
+
# Parse the total file size and adjust the download size if ranges
|
377
|
+
# were specified
|
378
|
+
self._file_size = parse_length_from_content_range(response.properties.content_range)
|
379
|
+
if self._file_size is None:
|
380
|
+
raise ValueError("Required Content-Range response header is missing or malformed.")
|
381
|
+
# Remove any extra encryption data size from blob size
|
382
|
+
self._file_size = adjust_blob_size_for_encryption(self._file_size, self._encryption_data)
|
383
|
+
|
384
|
+
if self._end_range is not None and self._start_range is not None:
|
385
|
+
# Use the length unless it is over the end of the file
|
386
|
+
self.size = min(self._file_size - self._start_range, self._end_range - self._start_range + 1)
|
387
|
+
elif self._start_range is not None:
|
388
|
+
self.size = self._file_size - self._start_range
|
389
|
+
else:
|
390
|
+
self.size = self._file_size
|
395
391
|
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
392
|
+
except HttpResponseError as error:
|
393
|
+
if self._start_range is None and error.response and error.status_code == 416:
|
394
|
+
# Get range will fail on an empty file. If the user did not
|
395
|
+
# request a range, do a regular get request in order to get
|
396
|
+
# any properties.
|
397
|
+
try:
|
398
|
+
_, response = cast(Tuple[Optional[Any], Any], await self._clients.blob.download(
|
399
|
+
validate_content=self._validate_content,
|
400
|
+
data_stream_total=0,
|
401
|
+
download_stream_current=0,
|
402
|
+
**self._request_options))
|
403
|
+
except HttpResponseError as e:
|
404
|
+
process_storage_error(e)
|
405
|
+
|
406
|
+
# Set the download size to empty
|
407
|
+
self.size = 0
|
408
|
+
self._file_size = 0
|
409
|
+
else:
|
410
|
+
process_storage_error(error)
|
411
|
+
|
412
|
+
try:
|
413
|
+
if self.size == 0:
|
414
|
+
self._current_content = b""
|
415
|
+
else:
|
416
|
+
self._current_content = await process_content(
|
417
|
+
response,
|
418
|
+
self._initial_offset[0],
|
419
|
+
self._initial_offset[1],
|
420
|
+
self._encryption_options
|
421
|
+
)
|
422
|
+
retry_active = False
|
423
|
+
except (IncompleteReadError, HttpResponseError, DecodeError) as error:
|
424
|
+
retry_total -= 1
|
425
|
+
if retry_total <= 0:
|
426
|
+
raise HttpResponseError(error, error=error) from error
|
427
|
+
await asyncio.sleep(1)
|
405
428
|
self._download_offset += len(self._current_content)
|
406
429
|
self._raw_download_offset += response.content_length
|
407
430
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: azure-storage-blob
|
3
|
-
Version: 12.
|
3
|
+
Version: 12.23.0
|
4
4
|
Summary: Microsoft Azure Blob Storage Client Library for Python
|
5
5
|
Home-page: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-blob
|
6
6
|
Author: Microsoft Corporation
|
@@ -20,12 +20,12 @@ Classifier: License :: OSI Approved :: MIT License
|
|
20
20
|
Requires-Python: >=3.8
|
21
21
|
Description-Content-Type: text/markdown
|
22
22
|
License-File: LICENSE
|
23
|
-
Requires-Dist: azure-core >=1.
|
23
|
+
Requires-Dist: azure-core >=1.30.0
|
24
24
|
Requires-Dist: cryptography >=2.1.4
|
25
25
|
Requires-Dist: typing-extensions >=4.6.0
|
26
26
|
Requires-Dist: isodate >=0.6.1
|
27
27
|
Provides-Extra: aio
|
28
|
-
Requires-Dist: azure-core[aio] >=1.
|
28
|
+
Requires-Dist: azure-core[aio] >=1.30.0 ; extra == 'aio'
|
29
29
|
|
30
30
|
# Azure Storage Blobs client library for Python
|
31
31
|
Azure Blob storage is Microsoft's object storage solution for the cloud. Blob storage is optimized for storing massive amounts of unstructured data, such as text or binary data.
|
@@ -3,8 +3,8 @@ azure/storage/blob/_blob_client.py,sha256=VFLd4oyTWawbxD1H7DBMfJHJcJNAUSXR-nzVxt
|
|
3
3
|
azure/storage/blob/_blob_client_helpers.py,sha256=7tfQzgpV-cnwYc4i-lZEr4YibDDkyl5RCPybQtJZ-i0,51905
|
4
4
|
azure/storage/blob/_blob_service_client.py,sha256=AKoFLHYt4pMREIeQQ3k892xs0XRfS6VV73365KLck-I,40366
|
5
5
|
azure/storage/blob/_blob_service_client_helpers.py,sha256=8jNCrF5rsgdJyAJQTdRR_mcOYuDCw4Nt9AirZk2RYUY,997
|
6
|
-
azure/storage/blob/_container_client.py,sha256=
|
7
|
-
azure/storage/blob/_container_client_helpers.py,sha256=
|
6
|
+
azure/storage/blob/_container_client.py,sha256=piG3Jv1lciW3FifKp_K1trQOtCorm4TTElbq2lMyiT0,84722
|
7
|
+
azure/storage/blob/_container_client_helpers.py,sha256=7H8-506B1iDoCvvwnx3masFjiFSzL1jt5gzIhPmnafA,12596
|
8
8
|
azure/storage/blob/_deserialize.py,sha256=VisgOi6WtpfkeOZ9lMcEAiZyg3A6AqR7oZO52WUXaWU,9937
|
9
9
|
azure/storage/blob/_download.py,sha256=nvj_IBZuSQWV1fO2iB0n_LAndv95SRhbscuGmxu9hHE,40069
|
10
10
|
azure/storage/blob/_encryption.py,sha256=yw1T7bw7WWSxi4utqCvbpcDTwiMBdsjw0-Eqvud_Ulc,47238
|
@@ -12,54 +12,53 @@ azure/storage/blob/_lease.py,sha256=ReF0nVfZE8p_clUGpebZPprBdXJ7lOGEqXmJUhvsX5U,
|
|
12
12
|
azure/storage/blob/_list_blobs_helper.py,sha256=smnTcpGSVkk93G0RI7YczhkIM0s0gx4bSGWj_DB8t_s,13160
|
13
13
|
azure/storage/blob/_models.py,sha256=c01JsL1fCAWecXfUUD6Dn50qpjV9r5ZiViXXCwNZVN4,66018
|
14
14
|
azure/storage/blob/_quick_query_helper.py,sha256=HO6ufvSEWQSaFJ4CanujE4IN7FYB6y1f8PU0-dItMsk,6663
|
15
|
-
azure/storage/blob/_serialize.py,sha256=
|
16
|
-
azure/storage/blob/_shared_access_signature.py,sha256=
|
15
|
+
azure/storage/blob/_serialize.py,sha256=5_MsQx2hVJnhNqlxP6_O7rksxEoGJXXSJSG3WIUd-iw,8146
|
16
|
+
azure/storage/blob/_shared_access_signature.py,sha256=VkoKyo5apDnKQ8wuEBp1C6MaKlqDHAZOf5wlqRcqdOA,35354
|
17
17
|
azure/storage/blob/_upload_helpers.py,sha256=-ZpqzST-wFdWqCm_I4oWGLTMQ5N0aYb3RHxaMvmf9Q4,14688
|
18
|
-
azure/storage/blob/_version.py,sha256=
|
18
|
+
azure/storage/blob/_version.py,sha256=qk_3SN9FXGO65fpW7ymqmUkdNnMNAuvdI-ea-NvmFzw,331
|
19
19
|
azure/storage/blob/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
20
|
azure/storage/blob/_generated/__init__.py,sha256=J2H2yiFhRSsMCNKUI7gaYFIQ4_AAbWjPtzXdOsHFQFI,835
|
21
|
-
azure/storage/blob/_generated/_azure_blob_storage.py,sha256=
|
21
|
+
azure/storage/blob/_generated/_azure_blob_storage.py,sha256=VKK-9xxlF9DfNHuxlOxG6LB0XOZDLFdviW8O4W2AqeI,5737
|
22
22
|
azure/storage/blob/_generated/_configuration.py,sha256=PV4kKjbnHhg6nD30e_acUENnsLuEKKjYRHz1VqEk9UQ,2566
|
23
23
|
azure/storage/blob/_generated/_patch.py,sha256=MdyWs5y2w9_vYRWulELR-RV2uRYkjYpdB7nTVz2tVY4,1532
|
24
|
-
azure/storage/blob/_generated/_serialization.py,sha256=
|
25
|
-
azure/storage/blob/_generated/_vendor.py,sha256=e3w-rd6okoiCIB8rNMtF0fehAYFWNlshwiwTsIRkEH4,778
|
24
|
+
azure/storage/blob/_generated/_serialization.py,sha256=KsZWmQKoQbf9OUEEXmJ0UV-b9-lZRA1tCkkYt_a-4AI,78971
|
26
25
|
azure/storage/blob/_generated/py.typed,sha256=dcrsqJrcYfTX-ckLFJMTaj6mD8aDe2u0tkQG-ZYxnEg,26
|
27
26
|
azure/storage/blob/_generated/aio/__init__.py,sha256=J2H2yiFhRSsMCNKUI7gaYFIQ4_AAbWjPtzXdOsHFQFI,835
|
28
|
-
azure/storage/blob/_generated/aio/_azure_blob_storage.py,sha256=
|
27
|
+
azure/storage/blob/_generated/aio/_azure_blob_storage.py,sha256=FPnirEqJ8Nb3mWn0JPL3qb8_myyaz8UCdUQNfOW8xDs,5880
|
29
28
|
azure/storage/blob/_generated/aio/_configuration.py,sha256=Q4jfjKwpMOvSe2gS9lOdvwwsHvVtsJZN37AYrf4ySgg,2576
|
30
29
|
azure/storage/blob/_generated/aio/_patch.py,sha256=MdyWs5y2w9_vYRWulELR-RV2uRYkjYpdB7nTVz2tVY4,1532
|
31
30
|
azure/storage/blob/_generated/aio/operations/__init__.py,sha256=a5HiO2T3KzSSX8reO6fCwbKcwXqd0A6GIeF4t63XmTA,1181
|
32
|
-
azure/storage/blob/_generated/aio/operations/_append_blob_operations.py,sha256=
|
33
|
-
azure/storage/blob/_generated/aio/operations/_blob_operations.py,sha256=
|
34
|
-
azure/storage/blob/_generated/aio/operations/_block_blob_operations.py,sha256=
|
35
|
-
azure/storage/blob/_generated/aio/operations/_container_operations.py,sha256=
|
36
|
-
azure/storage/blob/_generated/aio/operations/_page_blob_operations.py,sha256=
|
31
|
+
azure/storage/blob/_generated/aio/operations/_append_blob_operations.py,sha256=FtuAMOUlqQp0fGAowxhghw7Py0jeYblsScLPMAgRn_8,37309
|
32
|
+
azure/storage/blob/_generated/aio/operations/_blob_operations.py,sha256=x6rz3T7RZNBJtOmyc0TcnOYJMOKA8TbYi8emYIbbKkE,166403
|
33
|
+
azure/storage/blob/_generated/aio/operations/_block_blob_operations.py,sha256=DUu5kWJwMfjvKHI-5SIB_Nn9_Ea8H4KctB_YtdixICk,60610
|
34
|
+
azure/storage/blob/_generated/aio/operations/_container_operations.py,sha256=8BJPTAGM1pn8gvB4jQqDq2gYxp6Pb8lzkzJ5FzC9XzY,90725
|
35
|
+
azure/storage/blob/_generated/aio/operations/_page_blob_operations.py,sha256=jp5RocDr6Lp3gQRoGnNug8sVoX_G9G7vG-658KS8Z84,74976
|
37
36
|
azure/storage/blob/_generated/aio/operations/_patch.py,sha256=pYl0jxVFr3Yu0RHRFIgN3NwFrEZr1uL-7xbEXGgJzBw,794
|
38
|
-
azure/storage/blob/_generated/aio/operations/_service_operations.py,sha256=
|
37
|
+
azure/storage/blob/_generated/aio/operations/_service_operations.py,sha256=8UAsZEKJjT1a4sulVCWZ7B2_PVhL4WSVnFpU0BIlqrs,35960
|
39
38
|
azure/storage/blob/_generated/models/__init__.py,sha256=qOh_WzGPNB7Do1XSXfRosHQJ94zx1G5dVXpZdkNKLuM,6303
|
40
39
|
azure/storage/blob/_generated/models/_azure_blob_storage_enums.py,sha256=o1I_SPnUKEsx2Aec-goLDw6eqZMyTVqFxg7tKpSYg0I,13049
|
41
40
|
azure/storage/blob/_generated/models/_models_py3.py,sha256=JXhdrOvO8VKo_Vhz-cqnXI1gfDf6nkrcBDC7Cz0rL_s,110612
|
42
41
|
azure/storage/blob/_generated/models/_patch.py,sha256=pYl0jxVFr3Yu0RHRFIgN3NwFrEZr1uL-7xbEXGgJzBw,794
|
43
42
|
azure/storage/blob/_generated/operations/__init__.py,sha256=a5HiO2T3KzSSX8reO6fCwbKcwXqd0A6GIeF4t63XmTA,1181
|
44
|
-
azure/storage/blob/_generated/operations/_append_blob_operations.py,sha256=
|
45
|
-
azure/storage/blob/_generated/operations/_blob_operations.py,sha256=
|
46
|
-
azure/storage/blob/_generated/operations/_block_blob_operations.py,sha256=
|
47
|
-
azure/storage/blob/_generated/operations/_container_operations.py,sha256=
|
48
|
-
azure/storage/blob/_generated/operations/_page_blob_operations.py,sha256=
|
43
|
+
azure/storage/blob/_generated/operations/_append_blob_operations.py,sha256=T7Kqy8hKbPTmN7nF0M3XgKP-Pewyn0oGQ5mKTmhbnTs,55981
|
44
|
+
azure/storage/blob/_generated/operations/_blob_operations.py,sha256=AGGNddKS8creiGVfpf3mPxvP_0FvgnUV3xHMDml36xk,232577
|
45
|
+
azure/storage/blob/_generated/operations/_block_blob_operations.py,sha256=XgZ4fwZpbBrEw8ztdq7aeCKE4t7yfsGZXKkxlw72gqY,91414
|
46
|
+
azure/storage/blob/_generated/operations/_container_operations.py,sha256=XuWEdsPzEwdDeM9FpD1s6S9q5-YggBUUn848snvWCKU,128351
|
47
|
+
azure/storage/blob/_generated/operations/_page_blob_operations.py,sha256=Gj6szO76q2_3YGUNdznMz9E9UNMZKvarm4DCc5IO18o,112375
|
49
48
|
azure/storage/blob/_generated/operations/_patch.py,sha256=pYl0jxVFr3Yu0RHRFIgN3NwFrEZr1uL-7xbEXGgJzBw,794
|
50
|
-
azure/storage/blob/_generated/operations/_service_operations.py,sha256=
|
49
|
+
azure/storage/blob/_generated/operations/_service_operations.py,sha256=nq9AqOcEM340nLxhzaUlzta3gD0KyOZZhCI_808uYT0,49818
|
51
50
|
azure/storage/blob/_shared/__init__.py,sha256=Ohb4NSCuB9VXGEqjU2o9VZ5L98-a7c8KWZvrujnSFk8,1477
|
52
51
|
azure/storage/blob/_shared/authentication.py,sha256=KfUKWkjItNJxUTWNcCNusYfnENy-XbVelHlZM8fWc0Y,9450
|
53
|
-
azure/storage/blob/_shared/base_client.py,sha256=
|
52
|
+
azure/storage/blob/_shared/base_client.py,sha256=JJ0xwN2GGzfwB2a37TEyotxcL1WL-rvalAc1RnPWl9A,18628
|
54
53
|
azure/storage/blob/_shared/base_client_async.py,sha256=z1dyRk2XSurRn69CwKA_lQYC7kRFOMkwhIr-InPP5t8,11918
|
55
54
|
azure/storage/blob/_shared/constants.py,sha256=0TnhBNEaZpVq0vECmLoXWSzCajtn9WOlfOfzbMApRb4,620
|
56
55
|
azure/storage/blob/_shared/models.py,sha256=aDydzgBj2_-WfnlT1-nOhJt-FHxOU8BG0T0K68BejNk,24907
|
57
56
|
azure/storage/blob/_shared/parser.py,sha256=ACpdtwf6lhzmA0ukT3PmxpGVpimVXTy_mMSdixC55R8,1955
|
58
|
-
azure/storage/blob/_shared/policies.py,sha256=
|
59
|
-
azure/storage/blob/_shared/policies_async.py,sha256=
|
57
|
+
azure/storage/blob/_shared/policies.py,sha256=ZesS3wGCCtDvUGXmNUKGiRlRA9wKYFeYdiElhKpHJo0,30917
|
58
|
+
azure/storage/blob/_shared/policies_async.py,sha256=Fo0zEvHU5rBSSuD55mmYroD0XCSXEx3L6STcr27kMnE,13497
|
60
59
|
azure/storage/blob/_shared/request_handlers.py,sha256=0G9eyzMY_8BlLfHA6jbJF75ENcu3xqZ33bHfSRi9HTM,9755
|
61
60
|
azure/storage/blob/_shared/response_handlers.py,sha256=wqZ1hGRDTwh3GkRB0gPSjgm_7TP2quZc_ex4pYThW-8,9190
|
62
|
-
azure/storage/blob/_shared/shared_access_signature.py,sha256=
|
61
|
+
azure/storage/blob/_shared/shared_access_signature.py,sha256=ov8h9CStKwlfZBtlj54jeckpzuVjYcYvJNKgxQByZ9o,11130
|
63
62
|
azure/storage/blob/_shared/uploads.py,sha256=O7V-gxxnBozcNscQFzH_V9ZJv6i3Y_QXJePL0g9X3Io,22157
|
64
63
|
azure/storage/blob/_shared/uploads_async.py,sha256=ZFlwMgZIY2cYDzuhgVt0XCQV4ZtRI3PLi_A5cKTd0rw,16782
|
65
64
|
azure/storage/blob/_shared/avro/__init__.py,sha256=Ch-mWS2_vgonM9LjVaETdaW51OL6LfG23X-0tH2AFjw,310
|
@@ -71,15 +70,15 @@ azure/storage/blob/_shared/avro/schema.py,sha256=Z9qcHIEBDbXxkBBs_HYbEWHlZtAbvT3
|
|
71
70
|
azure/storage/blob/aio/__init__.py,sha256=tVgeGWdfxG32uyJxAE32waysCOGt93S_EeuQLJz7vEM,8344
|
72
71
|
azure/storage/blob/aio/_blob_client_async.py,sha256=wx76W_LrUDQ2vqBbgvS3RzKLtrnXbAe2INRtLXjtu2g,180606
|
73
72
|
azure/storage/blob/aio/_blob_service_client_async.py,sha256=3rOewtzrDmjUoYKwM0EBUwYLizqp3KHx71lEHDcN_Yw,41260
|
74
|
-
azure/storage/blob/aio/_container_client_async.py,sha256=
|
75
|
-
azure/storage/blob/aio/_download_async.py,sha256=
|
73
|
+
azure/storage/blob/aio/_container_client_async.py,sha256=sJaxiKPqA2iDBaDQtI4dnPIrsdmLc_aqSXPk_AJ4QME,85402
|
74
|
+
azure/storage/blob/aio/_download_async.py,sha256=zneaszZj69VblrUkWocBjvhvXedQJfJweL4uTqc9TpE,38078
|
76
75
|
azure/storage/blob/aio/_encryption_async.py,sha256=spbWeycNMj38H5ynZ03FRtRu0L0tnl1lQn5UJT6HMAY,2518
|
77
76
|
azure/storage/blob/aio/_lease_async.py,sha256=dy4_KZYuIhlxEvYO4GLTKdZz4UzFkpxcm7zfino6geE,18638
|
78
77
|
azure/storage/blob/aio/_list_blobs_helper.py,sha256=cbrJcaGVfOvVCcLYd5dGx-jV3JjSvKfDIi2AQjf79qs,9920
|
79
78
|
azure/storage/blob/aio/_models.py,sha256=fdv7OQc6utrGBIS8FSNuBhYK5Q65o1TbKvdeeQaeUOc,8143
|
80
79
|
azure/storage/blob/aio/_upload_helpers.py,sha256=zROsVN6PK2Cn59Ysq08Ide5T1IGG2yH7oK9ZCn5uQXs,14038
|
81
|
-
azure_storage_blob-12.
|
82
|
-
azure_storage_blob-12.
|
83
|
-
azure_storage_blob-12.
|
84
|
-
azure_storage_blob-12.
|
85
|
-
azure_storage_blob-12.
|
80
|
+
azure_storage_blob-12.23.0.dist-info/LICENSE,sha256=_VMkgdgo4ToLE8y1mOAjOKNhd0BnWoYu5r3BVBto6T0,1073
|
81
|
+
azure_storage_blob-12.23.0.dist-info/METADATA,sha256=xuw3F1eB7EGqb8Wjkm8v99XZp1_3LvtdOHYJM4oObJs,26252
|
82
|
+
azure_storage_blob-12.23.0.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
|
83
|
+
azure_storage_blob-12.23.0.dist-info/top_level.txt,sha256=S7DhWV9m80TBzAhOFjxDUiNbKszzoThbnrSz5MpbHSQ,6
|
84
|
+
azure_storage_blob-12.23.0.dist-info/RECORD,,
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# --------------------------------------------------------------------------
|
2
|
-
# Copyright (c) Microsoft Corporation. All rights reserved.
|
3
|
-
# Licensed under the MIT License. See License.txt in the project root for license information.
|
4
|
-
# Code generated by Microsoft (R) AutoRest Code Generator.
|
5
|
-
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
6
|
-
# --------------------------------------------------------------------------
|
7
|
-
|
8
|
-
from azure.core.pipeline.transport import HttpRequest
|
9
|
-
|
10
|
-
|
11
|
-
def _convert_request(request, files=None):
|
12
|
-
data = request.content if not files else None
|
13
|
-
request = HttpRequest(method=request.method, url=request.url, headers=request.headers, data=data)
|
14
|
-
if files:
|
15
|
-
request.set_formdata_body(files)
|
16
|
-
return request
|
File without changes
|
File without changes
|