From 4b6a57c3550bc8e750b1e6974bda01ea4c012073 Mon Sep 17 00:00:00 2001 From: xiafu Date: Thu, 30 Apr 2020 10:52:52 -0700 Subject: [PATCH 1/5] [Blob][Versioning]Add Blob Versioning Suport --- .../azure/storage/blob/_blob_client.py | 9 + .../azure/storage/blob/_models.py | 15 +- .../azure/storage/blob/_shared/models.py | 10 +- .../storage/blob/_shared_access_signature.py | 22 +- .../storage/blob/aio/_blob_client_async.py | 1 + ...ob.test_get_blob_properties_using_vid.yaml | 178 ++++ ...nc.test_get_blob_properties_using_vid.yaml | 118 +++ ...tions.test_put_block_list_returns_vid.yaml | 324 ++++++ ...async.test_put_block_list_returns_vid.yaml | 228 +++++ ..._copy.test_sync_copy_blob_returns_vid.yaml | 216 ++++ ...async.test_sync_copy_blob_returns_vid.yaml | 142 +++ ...ommon_blob.test_copy_blob_returns_vid.yaml | 86 ++ ...reate_blob_and_download_blob_with_vid.yaml | 151 +++ ...test_create_blob_snapshot_returns_vid.yaml | 335 ++++++ ...lob.test_delete_blob_version_with_sas.yaml | 409 ++++++++ ...lob.test_delete_specific_blob_version.yaml | 327 ++++++ ...ob.test_set_blob_metadata_returns_vid.yaml | 210 ++++ ..._blob.test_sync_copy_blob_returns_vid.yaml | 135 +++ ...blob_async.test_copy_blob_returns_vid.yaml | 141 +++ ...reate_blob_and_download_blob_with_vid.yaml | 951 ++++++++++++++++++ ...test_create_blob_snapshot_returns_vid.yaml | 194 ++++ ...est_delete_blob_version_with_blob_sas.yaml | 196 ++++ ...ync.test_delete_specific_blob_version.yaml | 178 ++++ ...nc.test_set_blob_metadata_returns_vid.yaml | 139 +++ ...lob.test_create_page_blob_returns_vid.yaml | 184 ++++ ...ync.test_create_page_blob_returns_vid.yaml | 122 +++ .../tests/test_append_blob.py | 31 +- .../tests/test_append_blob_async.py | 23 +- .../tests/test_blob_access_conditions.py | 21 + .../test_blob_access_conditions_async.py | 26 +- .../tests/test_block_blob_sync_copy.py | 19 + .../tests/test_block_blob_sync_copy_async.py | 23 +- .../tests/test_common_blob.py | 132 ++- .../tests/test_common_blob_async.py | 147 ++- .../tests/test_page_blob.py | 15 + .../tests/test_page_blob_async.py | 18 +- 36 files changed, 5456 insertions(+), 20 deletions(-) create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_append_blob.test_get_blob_properties_using_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_append_blob_async.test_get_blob_properties_using_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_blob_access_conditions.test_put_block_list_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_blob_access_conditions_async.test_put_block_list_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_block_blob_sync_copy.test_sync_copy_blob_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_block_blob_sync_copy_async.test_sync_copy_blob_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_copy_blob_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_and_download_blob_with_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_snapshot_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_blob_version_with_sas.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_specific_blob_version.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_set_blob_metadata_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_sync_copy_blob_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_copy_blob_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_and_download_blob_with_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_snapshot_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_blob_version_with_blob_sas.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_specific_blob_version.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_set_blob_metadata_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_page_blob.test_create_page_blob_returns_vid.yaml create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_page_blob_async.test_create_page_blob_returns_vid.yaml diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py index 3800a25b867a..674cd3f54837 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py @@ -155,6 +155,8 @@ def __init__( except TypeError: self.snapshot = snapshot or path_snapshot + self.version_id = kwargs.pop('version_id', None) + self._query_str, credential = self._format_query_string(sas_token, credential, snapshot=self.snapshot) super(BlobClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) self._client = AzureBlobStorage(self.url, pipeline=self._pipeline) @@ -524,6 +526,7 @@ def _download_blob_options(self, offset=None, length=None, **kwargs): 'config': self._config, 'start_range': offset, 'end_range': length, + 'version_id': kwargs.pop('version_id', None) or self.version_id, 'validate_content': validate_content, 'encryption_options': { 'required': self.require_encryption, @@ -637,6 +640,7 @@ def _delete_blob_options(self, delete_snapshots=False, **kwargs): raise ValueError("The delete_snapshots option cannot be used with a specific snapshot.") options = self._generic_delete_blob_options(delete_snapshots, **kwargs) options['snapshot'] = self.snapshot + options['version_id'] = kwargs.pop('version_id', None) or self.version_id return options @distributed_trace @@ -736,6 +740,10 @@ def get_blob_properties(self, **kwargs): Required if the blob has an active lease. Value can be a BlobLeaseClient object or the lease ID as a string. :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + It for service version 2019-10-10 and newer. :keyword ~datetime.datetime if_modified_since: A DateTime value. Azure expects the date value passed in to be UTC. If timezone is included, any non-UTC datetimes will be converted to UTC. @@ -785,6 +793,7 @@ def get_blob_properties(self, **kwargs): try: blob_props = self._client.blob.get_properties( timeout=kwargs.pop('timeout', None), + version_id=kwargs.pop('version_id', None) or self.version_id, snapshot=self.snapshot, lease_access_conditions=access_conditions, modified_access_conditions=mod_conditions, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_models.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_models.py index e59fb4bec9eb..2bf2a9e645e2 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_models.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_models.py @@ -483,6 +483,8 @@ def __init__(self, **kwargs): self.name = kwargs.get('name') self.container = None self.snapshot = kwargs.get('x-ms-snapshot') + self.version_id = kwargs.get('x-ms-version-id') + self.is_current_version = kwargs.get('x-ms-is-current-version') self.blob_type = BlobType(kwargs['x-ms-blob-type']) if kwargs.get('x-ms-blob-type') else None self.metadata = kwargs.get('metadata') self.encrypted_metadata = kwargs.get('encrypted_metadata') @@ -534,6 +536,8 @@ def _from_generated(cls, generated): blob.blob_tier_inferred = generated.properties.access_tier_inferred blob.archive_status = generated.properties.archive_status blob.blob_tier_change_time = generated.properties.access_tier_change_time + blob.version_id = generated.version_id + blob.is_current_version = generated.is_current_version return blob @@ -994,19 +998,23 @@ class BlobSasPermissions(object): destination of a copy operation within the same account. :param bool delete: Delete the blob. + :param bool delete_version: + Delete the blob version for the versioning enabled storage account. """ def __init__(self, read=False, add=False, create=False, write=False, - delete=False): + delete=False, delete_version=False): self.read = read self.add = add self.create = create self.write = write self.delete = delete + self.delete_version = delete_version self._str = (('r' if self.read else '') + ('a' if self.add else '') + ('c' if self.create else '') + ('w' if self.write else '') + - ('d' if self.delete else '')) + ('d' if self.delete else '') + + ('x' if self.delete_version else '')) def __str__(self): return self._str @@ -1029,8 +1037,9 @@ def from_string(cls, permission): p_create = 'c' in permission p_write = 'w' in permission p_delete = 'd' in permission + p_delete_version = 'x' in permission - parsed = cls(p_read, p_add, p_create, p_write, p_delete) + parsed = cls(p_read, p_add, p_create, p_write, p_delete, p_delete_version) parsed._str = permission # pylint: disable = protected-access return parsed diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py index c72fc6d510e4..48f60c06631b 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py @@ -310,6 +310,8 @@ class AccountSasPermissions(object): Permits write permissions to the specified resource type. :param bool delete: Valid for Container and Object resource types, except for queue messages. + :param bool delete_version: + Delete the blob version for the versioning enabled storage account. :param bool list: Valid for Service and Container resource types only. :param bool add: @@ -323,11 +325,13 @@ class AccountSasPermissions(object): :param bool process: Valid for the following Object resource type only: queue messages. """ - def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin + def __init__(self, read=False, write=False, delete=False, delete_version=False, + list=False, # pylint: disable=redefined-builtin add=False, create=False, update=False, process=False): self.read = read self.write = write self.delete = delete + self.delete_version = delete_version self.list = list self.add = add self.create = create @@ -336,6 +340,7 @@ def __init__(self, read=False, write=False, delete=False, list=False, # pylint: self._str = (('r' if self.read else '') + ('w' if self.write else '') + ('d' if self.delete else '') + + ('x' if self.delete_version else '') + ('l' if self.list else '') + ('a' if self.add else '') + ('c' if self.create else '') + @@ -361,13 +366,14 @@ def from_string(cls, permission): p_read = 'r' in permission p_write = 'w' in permission p_delete = 'd' in permission + p_delete_version = 'x' in permission p_list = 'l' in permission p_add = 'a' in permission p_create = 'c' in permission p_update = 'u' in permission p_process = 'p' in permission - parsed = cls(p_read, p_write, p_delete, p_list, p_add, p_create, p_update, p_process) + parsed = cls(p_read, p_write, p_delete, p_delete_version, p_list, p_add, p_create, p_update, p_process) parsed._str = permission # pylint: disable = protected-access return parsed diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared_access_signature.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared_access_signature.py index 84f909af9186..811d4cb024c3 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared_access_signature.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared_access_signature.py @@ -9,7 +9,8 @@ ) from azure.storage.blob._shared import sign_string, url_quote -from azure.storage.blob._shared.constants import X_MS_VERSION +# TODO: Uncomment the next line +# from azure.storage.blob._shared.constants import X_MS_VERSION from azure.storage.blob._shared.models import Services from azure.storage.blob._shared.shared_access_signature import SharedAccessSignature, _SharedAccessHelper, \ QueryStringConstants @@ -24,6 +25,8 @@ BlobSasPermissions ) +X_MS_VERSION = '2019-10-10' + class BlobQueryStringConstants(object): SIGNED_TIMESTAMP = 'snapshot' @@ -50,7 +53,7 @@ def __init__(self, account_name, account_key=None, user_delegation_key=None): super(BlobSharedAccessSignature, self).__init__(account_name, account_key, x_ms_version=X_MS_VERSION) self.user_delegation_key = user_delegation_key - def generate_blob(self, container_name, blob_name, snapshot=None, permission=None, + def generate_blob(self, container_name, blob_name, snapshot=None, version_id=None, permission=None, expiry=None, start=None, policy_id=None, ip=None, protocol=None, cache_control=None, content_disposition=None, content_encoding=None, content_language=None, @@ -122,8 +125,12 @@ def generate_blob(self, container_name, blob_name, snapshot=None, permission=Non sas = _BlobSharedAccessHelper() sas.add_base(permission, expiry, start, ip, protocol, self.x_ms_version) sas.add_id(policy_id) - sas.add_resource('b' if snapshot is None else 'bs') - sas.add_timestamp(snapshot) + + resource = 'bs' if snapshot else 'b' + resource = 'bv' if version_id else resource + sas.add_resource(resource) + + sas.add_timestamp(snapshot or version_id) sas.add_override_response_headers(cache_control, content_disposition, content_encoding, content_language, content_type) @@ -467,6 +474,7 @@ def generate_blob_sas( container_name, # type: str blob_name, # type: str snapshot=None, # type: Optional[str] + version_id=None, # type: Optional[str] account_key=None, # type: Optional[str] user_delegation_key=None, # type: Optional[UserDelegationKey] permission=None, # type: Optional[Union[BlobSasPermissions, str]] @@ -490,6 +498,8 @@ def generate_blob_sas( The name of the blob. :param str snapshot: An optional blob snapshot ID. + :param str version_id: + An optional blob version ID. This parameter is only for versioning enabled account :param str account_key: The account key, also called shared key or access key, to generate the shared access signature. Either `account_key` or `user_delegation_key` must be specified. @@ -553,7 +563,8 @@ def generate_blob_sas( """ if not user_delegation_key and not account_key: raise ValueError("Either user_delegation_key or account_key must be provided.") - + if version_id and snapshot: + raise ValueError("snapshot and version_id cannot be set at the same time.") if user_delegation_key: sas = BlobSharedAccessSignature(account_name, user_delegation_key=user_delegation_key) else: @@ -562,6 +573,7 @@ def generate_blob_sas( container_name, blob_name, snapshot=snapshot, + version_id=version_id, permission=permission, expiry=expiry, start=start, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py index 2b626f16e85d..8a5716297511 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py @@ -480,6 +480,7 @@ async def get_blob_properties(self, **kwargs): try: blob_props = await self._client.blob.get_properties( timeout=kwargs.pop('timeout', None), + version_id=kwargs.pop('version_id', None), snapshot=self.snapshot, lease_access_conditions=access_conditions, modified_access_conditions=mod_conditions, diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_append_blob.test_get_blob_properties_using_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_append_blob.test_get_blob_properties_using_vid.yaml new file mode 100644 index 000000000000..d0ad8c1091a0 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_append_blob.test_get_blob_properties_using_vid.yaml @@ -0,0 +1,178 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 07:30:03 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer1de214f4?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 07:30:03 GMT + etag: + - '"0x8D7EC0F22727B7E"' + last-modified: + - Wed, 29 Apr 2020 07:30:04 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 07:30:04 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainersource1de214f4?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 07:30:03 GMT + etag: + - '"0x8D7EC0F22817256"' + last-modified: + - Wed, 29 Apr 2020 07:30:04 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - AppendBlob + x-ms-date: + - Wed, 29 Apr 2020 07:30:04 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer1de214f4/blob1de214f4 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 07:30:03 GMT + etag: + - '"0x8D7EC0F22A034BD"' + last-modified: + - Wed, 29 Apr 2020 07:30:04 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T07:30:04.5803709Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 07:30:04 GMT + x-ms-version: + - '2019-10-10' + method: HEAD + uri: https://storagename.blob.core.windows.net/utcontainer1de214f4/blob1de214f4?versionid=2020-04-29T07%3A30%3A04.5803709Z + response: + body: + string: '' + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-type,x-ms-blob-committed-block-count,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: + - '0' + content-type: + - application/octet-stream + date: + - Wed, 29 Apr 2020 07:30:04 GMT + etag: + - '"0x8D7EC0F22A034BD"' + last-modified: + - Wed, 29 Apr 2020 07:30:04 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '0' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Wed, 29 Apr 2020 07:30:04 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T07:30:04.5803709Z' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_append_blob_async.test_get_blob_properties_using_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_append_blob_async.test_get_blob_properties_using_vid.yaml new file mode 100644 index 000000000000..71b8774179de --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_append_blob_async.test_get_blob_properties_using_vid.yaml @@ -0,0 +1,118 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:20:04 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainera5121771?restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:20:03 GMT + etag: '"0x8D7EC93D925C263"' + last-modified: Wed, 29 Apr 2020 23:20:04 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainera5121771?restype=container +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:20:04 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainersourcea5121771?restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:20:03 GMT + etag: '"0x8D7EC93D92E0144"' + last-modified: Wed, 29 Apr 2020 23:20:04 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainersourcea5121771?restype=container +- request: + body: null + headers: + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - AppendBlob + x-ms-date: + - Wed, 29 Apr 2020 23:20:04 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainera5121771/bloba5121771 + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:20:03 GMT + etag: '"0x8D7EC93D93604E9"' + last-modified: Wed, 29 Apr 2020 23:20:04 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:20:04.4758249Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainera5121771/bloba5121771 +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:20:04 GMT + x-ms-version: + - '2019-10-10' + method: HEAD + uri: https://storagename.blob.core.windows.net/utcontainera5121771/bloba5121771?versionid=2020-04-29T23:20:04.4758249Z + response: + body: + string: '' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-type,x-ms-blob-committed-block-count,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '0' + content-type: application/octet-stream + date: Wed, 29 Apr 2020 23:20:03 GMT + etag: '"0x8D7EC93D93604E9"' + last-modified: Wed, 29 Apr 2020 23:20:04 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: '0' + x-ms-blob-type: AppendBlob + x-ms-creation-time: Wed, 29 Apr 2020 23:20:04 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:20:04.4758249Z' + status: + code: 200 + message: OK + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainera5121771/bloba5121771?versionid=2020-04-29T23:20:04.4758249Z +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_blob_access_conditions.test_put_block_list_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_blob_access_conditions.test_put_block_list_returns_vid.yaml new file mode 100644 index 000000000000..3dd4a57d31b8 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_blob_access_conditions.test_put_block_list_returns_vid.yaml @@ -0,0 +1,324 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:57:15 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerd76a1868?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 18:57:15 GMT + etag: + - '"0x8D7EC6F227F3C39"' + last-modified: + - Wed, 29 Apr 2020 18:57:16 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 18:57:16 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerd76a1868/blob1 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - 1B2M2Y8AsgTpgAmY7PhCfg== + date: + - Wed, 29 Apr 2020 18:57:15 GMT + etag: + - '"0x8D7EC6F22AB07BB"' + last-modified: + - Wed, 29 Apr 2020 18:57:16 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - AAAAAAAAAAA= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T18:57:16.3383506Z' + status: + code: 201 + message: Created +- request: + body: AAA + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:57:16 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerd76a1868/blob1?blockid=MQ%3D%3D&comp=block + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 18:57:15 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - Cc/2Kr4DuKg= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: BBB + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:57:16 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerd76a1868/blob1?blockid=Mg%3D%3D&comp=block + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 18:57:15 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - +3yuPEA7IqE= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: CCC + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:57:16 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerd76a1868/blob1?blockid=Mw%3D%3D&comp=block + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 18:57:16 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - VRJmMeosVKY= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: ' + + MQ==Mg==Mw==' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '125' + Content-Type: + - application/xml; charset=utf-8 + If-Modified-Since: + - Wed, 29 Apr 2020 18:42:16 GMT + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:57:16 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerd76a1868/blob1?comp=blocklist + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 18:57:16 GMT + etag: + - '"0x8D7EC6F22DE07E2"' + last-modified: + - Wed, 29 Apr 2020 18:57:16 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - dAoQ5rLgKr0= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T18:57:16.6725874Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:57:16 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainerd76a1868/blob1 + response: + body: + string: AAABBBCCC + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: + - '9' + content-range: + - bytes 0-8/9 + content-type: + - application/octet-stream + date: + - Wed, 29 Apr 2020 18:57:16 GMT + etag: + - '"0x8D7EC6F22DE07E2"' + last-modified: + - Wed, 29 Apr 2020 18:57:16 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 29 Apr 2020 18:57:16 GMT + x-ms-is-current-version: + - 'true' + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T18:57:16.6725874Z' + status: + code: 206 + message: Partial Content +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_blob_access_conditions_async.test_put_block_list_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_blob_access_conditions_async.test_put_block_list_returns_vid.yaml new file mode 100644 index 000000000000..cd925ffb6673 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_blob_access_conditions_async.test_put_block_list_returns_vid.yaml @@ -0,0 +1,228 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:23:55 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer72a41ae5?restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:23:55 GMT + etag: '"0x8D7EC9463145B14"' + last-modified: Wed, 29 Apr 2020 23:23:55 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer72a41ae5?restype=container +- request: + body: null + headers: + Content-Length: + - '0' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 23:23:55 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer72a41ae5/blob1 + response: + body: + string: '' + headers: + content-length: '0' + content-md5: 1B2M2Y8AsgTpgAmY7PhCfg== + date: Wed, 29 Apr 2020 23:23:55 GMT + etag: '"0x8D7EC94631FC5A0"' + last-modified: Wed, 29 Apr 2020 23:23:55 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: AAAAAAAAAAA= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:23:55.8556064Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer72a41ae5/blob1 +- request: + body: AAA + headers: + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:23:55 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer72a41ae5/blob1?blockid=MQ%3D%3D&comp=block + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:23:55 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: Cc/2Kr4DuKg= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer72a41ae5/blob1?blockid=MQ%3D%3D&comp=block +- request: + body: CCC + headers: + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:23:55 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer72a41ae5/blob1?blockid=Mw%3D%3D&comp=block + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:23:55 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: VRJmMeosVKY= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer72a41ae5/blob1?blockid=Mw%3D%3D&comp=block +- request: + body: BBB + headers: + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:23:55 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer72a41ae5/blob1?blockid=Mg%3D%3D&comp=block + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:23:55 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: +3yuPEA7IqE= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer72a41ae5/blob1?blockid=Mg%3D%3D&comp=block +- request: + body: ' + + MQ==Mg==Mw==' + headers: + Content-Length: + - '125' + Content-Type: + - application/xml; charset=utf-8 + If-Modified-Since: + - Wed, 29 Apr 2020 23:08:56 GMT + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:23:56 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer72a41ae5/blob1?comp=blocklist + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:23:55 GMT + etag: '"0x8D7EC94634B2347"' + last-modified: Wed, 29 Apr 2020 23:23:56 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: dAoQ5rLgKr0= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:23:56.1408087Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer72a41ae5/blob1?comp=blocklist +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:23:56 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer72a41ae5/blob1 + response: + body: + string: AAABBBCCC + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '9' + content-range: bytes 0-8/9 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 23:23:56 GMT + etag: '"0x8D7EC94634B2347"' + last-modified: Wed, 29 Apr 2020 23:23:56 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 23:23:56 GMT + x-ms-is-current-version: 'true' + x-ms-lease-state: available + x-ms-lease-status: unlocked + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:23:56.1408087Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer72a41ae5/blob1 +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_block_blob_sync_copy.test_sync_copy_blob_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_block_blob_sync_copy.test_sync_copy_blob_returns_vid.yaml new file mode 100644 index 000000000000..90cad2ed0268 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_block_blob_sync_copy.test_sync_copy_blob_returns_vid.yaml @@ -0,0 +1,216 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 17:48:43 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainera92a1795?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 17:48:43 GMT + etag: + - '"0x8D7EC658F545687"' + last-modified: + - Wed, 29 Apr 2020 17:48:43 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '8192' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 17:48:43 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainera92a1795/srcbloba92a1795 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - IhmUBAsUKUvff7wSjmZjPA== + date: + - Wed, 29 Apr 2020 17:48:43 GMT + etag: + - '"0x8D7EC658F61DB4F"' + last-modified: + - Wed, 29 Apr 2020 17:48:43 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ERTjv26IbjE= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T17:48:43.7621583Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-copy-source: + - https://cdm03r01aversioning16.blob.core.windows.net/utcontainera92a1795/srcbloba92a1795?se=2020-04-29T18%3A48%3A43Z&sp=r&sv=2019-10-10&sr=b&sig=rCQzDxUFrO0Jg2jha/5lIyUHiZoaGzcHBDjqPdX%2Bw5Q%3D + x-ms-date: + - Wed, 29 Apr 2020 17:48:43 GMT + x-ms-requires-sync: + - 'True' + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainera92a1795/destbloba92a1795 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 17:48:43 GMT + etag: + - '"0x8D7EC658F8C398D"' + last-modified: + - Wed, 29 Apr 2020 17:48:44 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ERTjv26IbjE= + x-ms-copy-id: + - 5e09bdde-538f-47b5-8f5b-ca95d5b21694 + x-ms-copy-status: + - success + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T17:48:44.0443580Z' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 17:48:44 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainera92a1795/destbloba92a1795 + response: + body: + string: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-copy-id,x-ms-copy-source,x-ms-copy-status,x-ms-copy-progress,x-ms-copy-completion-time,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: + - '8192' + content-range: + - bytes 0-8191/8192 + content-type: + - application/octet-stream + date: + - Wed, 29 Apr 2020 17:48:43 GMT + etag: + - '"0x8D7EC658F8C398D"' + last-modified: + - Wed, 29 Apr 2020 17:48:44 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: + - IhmUBAsUKUvff7wSjmZjPA== + x-ms-blob-type: + - BlockBlob + x-ms-copy-completion-time: + - Wed, 29 Apr 2020 17:48:44 GMT + x-ms-copy-id: + - 5e09bdde-538f-47b5-8f5b-ca95d5b21694 + x-ms-copy-progress: + - 8192/8192 + x-ms-copy-source: + - https://cdm03r01aversioning16.blob.core.windows.net/utcontainera92a1795/srcbloba92a1795?se=2020-04-29T18%3A48%3A43Z&sp=r&sv=2019-10-10&sr=b + x-ms-copy-status: + - success + x-ms-creation-time: + - Wed, 29 Apr 2020 17:48:44 GMT + x-ms-is-current-version: + - 'true' + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T17:48:44.0443580Z' + status: + code: 206 + message: Partial Content +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_block_blob_sync_copy_async.test_sync_copy_blob_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_block_blob_sync_copy_async.test_sync_copy_blob_returns_vid.yaml new file mode 100644 index 000000000000..fc8f7cc35a33 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_block_blob_sync_copy_async.test_sync_copy_blob_returns_vid.yaml @@ -0,0 +1,142 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:27:38 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer3fa81a12?restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:27:38 GMT + etag: '"0x8D7EC94E7AC40E3"' + last-modified: Wed, 29 Apr 2020 23:27:38 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer3fa81a12?restype=container +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Content-Length: + - '8192' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 23:27:38 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer3fa81a12/srcblob3fa81a12 + response: + body: + string: '' + headers: + content-length: '0' + content-md5: IhmUBAsUKUvff7wSjmZjPA== + date: Wed, 29 Apr 2020 23:27:38 GMT + etag: '"0x8D7EC94E7B6C7A1"' + last-modified: Wed, 29 Apr 2020 23:27:38 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: ERTjv26IbjE= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:27:38.3045025Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer3fa81a12/srcblob3fa81a12 +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-copy-source: + - https://cdm03r01aversioning16.blob.core.windows.net/utcontainer3fa81a12/srcblob3fa81a12?se=2020-04-30T00%3A27%3A38Z&sp=r&sv=2019-10-10&sr=b&sig=zJ%2Buq%2BYalKSDdVb2SaP3fTY98i%2BSqUaoOlTbTgd5PDA%3D + x-ms-date: + - Wed, 29 Apr 2020 23:27:38 GMT + x-ms-requires-sync: + - 'True' + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer3fa81a12/destblob3fa81a12 + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:27:38 GMT + etag: '"0x8D7EC94E7CB192D"' + last-modified: Wed, 29 Apr 2020 23:27:38 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: ERTjv26IbjE= + x-ms-copy-id: bbccaef8-def8-400d-910a-843aa0b09a0e + x-ms-copy-status: success + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:27:38.4426000Z' + status: + code: 202 + message: Accepted + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer3fa81a12/destblob3fa81a12 +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:27:38 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer3fa81a12/destblob3fa81a12 + response: + body: + string: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-copy-id,x-ms-copy-source,x-ms-copy-status,x-ms-copy-progress,x-ms-copy-completion-time,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '8192' + content-range: bytes 0-8191/8192 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 23:27:38 GMT + etag: '"0x8D7EC94E7CB192D"' + last-modified: Wed, 29 Apr 2020 23:27:38 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: IhmUBAsUKUvff7wSjmZjPA== + x-ms-blob-type: BlockBlob + x-ms-copy-completion-time: Wed, 29 Apr 2020 23:27:38 GMT + x-ms-copy-id: bbccaef8-def8-400d-910a-843aa0b09a0e + x-ms-copy-progress: 8192/8192 + x-ms-copy-source: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer3fa81a12/srcblob3fa81a12?se=2020-04-30T00%3A27%3A38Z&sp=r&sv=2019-10-10&sr=b + x-ms-copy-status: success + x-ms-creation-time: Wed, 29 Apr 2020 23:27:38 GMT + x-ms-is-current-version: 'true' + x-ms-lease-state: available + x-ms-lease-status: unlocked + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:27:38.4426000Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer3fa81a12/destblob3fa81a12 +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_copy_blob_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_copy_blob_returns_vid.yaml new file mode 100644 index 000000000000..229c2b984404 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_copy_blob_returns_vid.yaml @@ -0,0 +1,86 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 17:46:39 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer853711c1?timeout=5&restype=container + response: + body: + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:88fc1367-e01e-005e-344e-1e3122000000\nTime:2020-04-29T17:46:39.7771444Z" + headers: + content-length: + - '230' + content-type: + - application/xml + date: + - Wed, 29 Apr 2020 17:46:38 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ContainerAlreadyExists + x-ms-version: + - '2019-10-10' + status: + code: 409 + message: The specified container already exists. +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 17:46:39 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer853711c1/blob853711c1 + response: + body: + string: "\uFEFFBlobAlreadyExistsThe + specified blob already exists.\nRequestId:88fc1386-e01e-005e-4d4e-1e3122000000\nTime:2020-04-29T17:46:39.8972299Z" + headers: + content-length: + - '220' + content-type: + - application/xml + date: + - Wed, 29 Apr 2020 17:46:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - BlobAlreadyExists + x-ms-version: + - '2019-10-10' + status: + code: 409 + message: The specified blob already exists. +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_and_download_blob_with_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_and_download_blob_with_vid.yaml new file mode 100644 index 000000000000..48566159d5de --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_and_download_blob_with_vid.yaml @@ -0,0 +1,151 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:51:39 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a?timeout=5&restype=container + response: + body: + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:1997df1c-601e-007f-5578-1e1559000000\nTime:2020-04-29T22:51:39.5986512Z" + headers: + content-length: + - '230' + content-type: + - application/xml + date: + - Wed, 29 Apr 2020 22:51:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ContainerAlreadyExists + x-ms-version: + - '2019-10-10' + status: + code: 409 + message: The specified container already exists. +- request: + body: '?' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:51:39 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%3Fa%3Fa%3F + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - 0UV7csP7MjomcRJa7z6rXQ== + date: + - Wed, 29 Apr 2020 22:51:39 GMT + etag: + - '"0x8D7EC8FE1132DE8"' + last-modified: + - Wed, 29 Apr 2020 22:51:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - 2uQl1pRJNrI= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T22:51:39.6833528Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:51:40 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%3Fa%3Fa%3F?versionid=2020-04-29T22%3A51%3A39.6833528Z + response: + body: + string: '?' + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 29 Apr 2020 22:51:40 GMT + etag: + - '"0x8D7EC8FE1132DE8"' + last-modified: + - Wed, 29 Apr 2020 22:51:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: + - 0UV7csP7MjomcRJa7z6rXQ== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 29 Apr 2020 22:51:39 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T22:51:39.6833528Z' + status: + code: 206 + message: Partial Content +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_snapshot_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_snapshot_returns_vid.yaml new file mode 100644 index 000000000000..508a591b101e --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_snapshot_returns_vid.yaml @@ -0,0 +1,335 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:49:14 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer60dc1649?timeout=5&restype=container + response: + body: + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:26f6bc1a-701e-0087-5256-1e49a7000000\nTime:2020-04-29T18:49:14.5968616Z" + headers: + content-length: + - '230' + content-type: + - application/xml + date: + - Wed, 29 Apr 2020 18:49:13 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ContainerAlreadyExists + x-ms-version: + - '2019-10-10' + status: + code: 409 + message: The specified container already exists. +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 18:49:14 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer60dc1649/blob60dc1649 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - yaNM/IXZgmmMasifdgcavQ== + date: + - Wed, 29 Apr 2020 18:49:13 GMT + etag: + - '"0x8D7EC6E0393E6F5"' + last-modified: + - Wed, 29 Apr 2020 18:49:14 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ov8U1LLnyKc= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T18:49:14.6796789Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:49:14 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer60dc1649/blob60dc1649?comp=snapshot + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 18:49:13 GMT + etag: + - '"0x8D7EC6E0393E6F5"' + last-modified: + - Wed, 29 Apr 2020 18:49:14 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'false' + x-ms-snapshot: + - '2020-04-29T18:49:14.8548012Z' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T18:49:14.8558012Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:49:14 GMT + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer60dc1649?include=versions&restype=container&comp=list + response: + body: + string: "\uFEFFblob60dc16492020-04-29T17:56:27.8127671ZWed, + 29 Apr 2020 17:56:27 GMTWed, 29 Apr 2020 17:56:27 + GMT0x8D7EC66A3FA5C371024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T17:56:28.1810271ZWed, + 29 Apr 2020 17:56:27 GMTWed, 29 Apr 2020 17:56:27 + GMT0x8D7EC66A3FA5C371024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:24:15.3482518ZWed, + 29 Apr 2020 18:24:15 GMTWed, 29 Apr 2020 18:24:15 + GMT0x8D7EC6A85E815161024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:24:15.5253757ZWed, + 29 Apr 2020 18:24:15 GMTWed, 29 Apr 2020 18:24:15 + GMT0x8D7EC6A85E815161024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:37:39.2262625ZWed, + 29 Apr 2020 18:37:39 GMTWed, 29 Apr 2020 18:37:39 + GMT0x8D7EC6C650E21E11024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:37:43.2020851ZWed, + 29 Apr 2020 18:37:39 GMTWed, 29 Apr 2020 18:37:39 + GMT0x8D7EC6C650E21E11024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:48:46.5308063ZWed, + 29 Apr 2020 18:48:46 GMTWed, 29 Apr 2020 18:48:46 + GMT0x8D7EC6DF2CCB99F1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:48:46.6248706ZWed, + 29 Apr 2020 18:48:46 GMTWed, 29 Apr 2020 18:48:46 + GMT0x8D7EC6DF2CCB99F1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:49:14.6796789ZWed, + 29 Apr 2020 18:49:14 GMTWed, 29 Apr 2020 18:49:14 + GMT0x8D7EC6E0393E6F51024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:49:14.8558012ZtrueWed, + 29 Apr 2020 18:49:14 GMTWed, 29 Apr 2020 18:49:14 + GMT0x8D7EC6E0393E6F51024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" + headers: + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding + content-type: + - application/xml + date: + - Wed, 29 Apr 2020 18:49:14 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-10-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:49:15 GMT + x-ms-delete-snapshots: + - include + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer60dc1649/blob60dc1649 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 18:49:14 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'false' + x-ms-version: + - '2019-10-10' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 18:49:15 GMT + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer60dc1649?include=snapshots%2Cversions&restype=container&comp=list + response: + body: + string: "\uFEFFblob60dc16492020-04-29T17:56:27.8127671ZWed, + 29 Apr 2020 17:56:27 GMTWed, 29 Apr 2020 17:56:27 + GMT0x8D7EC66A3FA5C371024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T17:56:28.1810271ZWed, + 29 Apr 2020 17:56:27 GMTWed, 29 Apr 2020 17:56:27 + GMT0x8D7EC66A3FA5C371024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:24:15.3482518ZWed, + 29 Apr 2020 18:24:15 GMTWed, 29 Apr 2020 18:24:15 + GMT0x8D7EC6A85E815161024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:24:15.5253757ZWed, + 29 Apr 2020 18:24:15 GMTWed, 29 Apr 2020 18:24:15 + GMT0x8D7EC6A85E815161024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:37:39.2262625ZWed, + 29 Apr 2020 18:37:39 GMTWed, 29 Apr 2020 18:37:39 + GMT0x8D7EC6C650E21E11024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:37:43.2020851ZWed, + 29 Apr 2020 18:37:39 GMTWed, 29 Apr 2020 18:37:39 + GMT0x8D7EC6C650E21E11024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:48:46.5308063ZWed, + 29 Apr 2020 18:48:46 GMTWed, 29 Apr 2020 18:48:46 + GMT0x8D7EC6DF2CCB99F1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:48:46.6248706ZWed, + 29 Apr 2020 18:48:46 GMTWed, 29 Apr 2020 18:48:46 + GMT0x8D7EC6DF2CCB99F1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:49:14.6796789ZWed, + 29 Apr 2020 18:49:14 GMTWed, 29 Apr 2020 18:49:14 + GMT0x8D7EC6E0393E6F51024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob60dc16492020-04-29T18:49:14.8558012ZWed, + 29 Apr 2020 18:49:14 GMTWed, 29 Apr 2020 18:49:14 + GMT0x8D7EC6E0393E6F51024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrue" + headers: + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding + content-type: + - application/xml + date: + - Wed, 29 Apr 2020 18:49:14 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-10-10' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_blob_version_with_sas.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_blob_version_with_sas.yaml new file mode 100644 index 000000000000..ed1e397437ca --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_blob_version_with_sas.yaml @@ -0,0 +1,409 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 17:50:38 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer9ff148b?timeout=5&restype=container + response: + body: + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:f3d257ee-601e-0032-5f17-1fdab5000000\nTime:2020-04-30T17:50:38.9634960Z" + headers: + content-length: + - '230' + content-type: + - application/xml + date: + - Thu, 30 Apr 2020 17:50:38 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ContainerAlreadyExists + x-ms-version: + - '2019-10-10' + status: + code: 409 + message: The specified container already exists. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 17:50:39 GMT + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer9ff148b/blob9ff148b + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 30 Apr 2020 17:50:38 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'false' + x-ms-version: + - '2019-10-10' + status: + code: 202 + message: Accepted +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 30 Apr 2020 17:50:39 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer9ff148b/blob9ff148b + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - yaNM/IXZgmmMasifdgcavQ== + date: + - Thu, 30 Apr 2020 17:50:38 GMT + etag: + - '"0x8D7ED2EFE8E98AA"' + last-modified: + - Thu, 30 Apr 2020 17:50:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ov8U1LLnyKc= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-30T17:50:39.1251114Z' + status: + code: 201 + message: Created +- request: + body: abcde + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '5' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 30 Apr 2020 17:50:39 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer9ff148b/blob9ff148b + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - q1a02StAcTrMWviZhdS3hg== + date: + - Thu, 30 Apr 2020 17:50:38 GMT + etag: + - '"0x8D7ED2EFE9C7DDE"' + last-modified: + - Thu, 30 Apr 2020 17:50:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ExJGZ9Dkswo= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-30T17:50:39.2181765Z' + status: + code: 201 + message: Created +- request: + body: abc + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 30 Apr 2020 17:50:39 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer9ff148b/blob9ff148b + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - kAFQmDzST7DWlj99KOF/cg== + date: + - Thu, 30 Apr 2020 17:50:38 GMT + etag: + - '"0x8D7ED2EFEA7CA8D"' + last-modified: + - Thu, 30 Apr 2020 17:50:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - 6/rBP7vK5QU= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-30T17:50:39.2912285Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 17:50:39 GMT + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer9ff148b/blob9ff148b?versionid=2020-04-30T17%3A50%3A39.2181765Z&se=2020-04-30T18%3A50%3A39Z&sp=dx&sv=2019-10-10&sr=bv&sig=isxrIFQAZIbP24o5DcKewizWmtMN8CfreeCDP0LNWe4%3D + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 30 Apr 2020 17:50:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'false' + x-ms-version: + - '2019-10-10' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 17:50:39 GMT + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer9ff148b?include=versions&restype=container&comp=list + response: + body: + string: "\uFEFFblob9ff148b2020-04-30T07:46:11.0243590ZThu, + 30 Apr 2020 07:46:11 GMTThu, 30 Apr 2020 07:46:11 + GMT0x8D7ECDA8D159B061024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T07:46:11.1114202ZThu, + 30 Apr 2020 07:46:11 GMTThu, 30 Apr 2020 07:46:11 + GMT0x8D7ECDA8D2295B33application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T07:47:26.7261391ZThu, + 30 Apr 2020 07:47:26 GMTThu, 30 Apr 2020 07:47:26 + GMT0x8D7ECDABA34A0B81024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T07:47:27.2224894ZThu, + 30 Apr 2020 07:47:27 GMTThu, 30 Apr 2020 07:47:27 + GMT0x8D7ECDABA805D6E3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T08:02:24.5019834ZThu, + 30 Apr 2020 08:02:24 GMTThu, 30 Apr 2020 08:02:24 + GMT0x8D7ECDCD15280BA1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T08:02:24.6130622ZThu, + 30 Apr 2020 08:02:24 GMTThu, 30 Apr 2020 08:02:24 + GMT0x8D7ECDCD16325973application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T08:02:45.2297109ZThu, + 30 Apr 2020 08:02:45 GMTThu, 30 Apr 2020 08:02:45 + GMT0x8D7ECDCDDAD4D951024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T08:02:45.3357857ZThu, + 30 Apr 2020 08:02:45 GMTThu, 30 Apr 2020 08:02:45 + GMT0x8D7ECDCDDBD56113application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T08:13:01.2883889ZThu, + 30 Apr 2020 08:13:01 GMTThu, 30 Apr 2020 08:13:01 + GMT0x8D7ECDE4CE065B11024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T08:13:01.4024699ZThu, + 30 Apr 2020 08:13:01 GMTThu, 30 Apr 2020 08:13:01 + GMT0x8D7ECDE4CF1A6EB3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T08:13:17.5279305ZThu, + 30 Apr 2020 08:13:17 GMTThu, 30 Apr 2020 08:13:17 + GMT0x8D7ECDE568E5AC91024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T08:13:17.6089866ZThu, + 30 Apr 2020 08:13:17 GMTThu, 30 Apr 2020 08:13:17 + GMT0x8D7ECDE569A91FA3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T08:18:46.9918774ZThu, + 30 Apr 2020 08:18:46 GMTThu, 30 Apr 2020 08:18:46 + GMT0x8D7ECDF1AEE90361024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T08:18:47.1089600ZThu, + 30 Apr 2020 08:18:47 GMTThu, 30 Apr 2020 08:18:47 + GMT0x8D7ECDF1B001F993application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T08:23:19.9166398ZThu, + 30 Apr 2020 08:23:19 GMTThu, 30 Apr 2020 08:23:19 + GMT0x8D7ECDFBD9B93BE1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T08:23:20.0287186ZThu, + 30 Apr 2020 08:23:20 GMTThu, 30 Apr 2020 08:23:20 + GMT0x8D7ECDFBDAC5FAB3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T08:24:26.1874258ZThu, + 30 Apr 2020 08:24:26 GMTThu, 30 Apr 2020 08:24:26 + GMT0x8D7ECDFE51BB2521024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T08:24:26.3685530ZThu, + 30 Apr 2020 08:24:26 GMTThu, 30 Apr 2020 08:24:26 + GMT0x8D7ECDFE5372E8A3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T17:48:30.6288266ZThu, + 30 Apr 2020 17:48:30 GMTThu, 30 Apr 2020 17:48:30 + GMT0x8D7ED2EB1F79E8A1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T17:48:30.7839358ZThu, + 30 Apr 2020 17:48:30 GMTThu, 30 Apr 2020 17:48:30 + GMT0x8D7ED2EB20EFB573application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T17:49:02.5555040ZThu, + 30 Apr 2020 17:49:02 GMTThu, 30 Apr 2020 17:49:02 + GMT0x8D7ED2EC4FF17491024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T17:49:02.7326287ZThu, + 30 Apr 2020 17:49:02 GMTThu, 30 Apr 2020 17:49:02 + GMT0x8D7ED2EC51A1E3F3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob9ff148b2020-04-30T17:50:22.4282473ZThu, + 30 Apr 2020 17:50:22 GMTThu, 30 Apr 2020 17:50:22 + GMT0x8D7ED2EF49ADB691024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T17:50:22.5373238ZThu, + 30 Apr 2020 17:50:22 GMTThu, 30 Apr 2020 17:50:22 + GMT0x8D7ED2EF4AB59265application/octet-streamq1a02StAcTrMWviZhdS3hg==BlockBlobHottruetrueblob9ff148b2020-04-30T17:50:39.1251114ZThu, + 30 Apr 2020 17:50:39 GMTThu, 30 Apr 2020 17:50:39 + GMT0x8D7ED2EFE8E98AA1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob9ff148b2020-04-30T17:50:39.2912285ZtrueThu, + 30 Apr 2020 17:50:39 GMTThu, 30 Apr 2020 17:50:39 + GMT0x8D7ED2EFEA7CA8D3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottrueunlockedavailabletrue" + headers: + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding + content-type: + - application/xml + date: + - Thu, 30 Apr 2020 17:50:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-10-10' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_specific_blob_version.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_specific_blob_version.yaml new file mode 100644 index 000000000000..cf2846ac7c0a --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_specific_blob_version.yaml @@ -0,0 +1,327 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 00:24:38 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer884146f?timeout=5&restype=container + response: + body: + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:393c0c5f-c01e-0059-7f85-1e5d41000000\nTime:2020-04-30T00:24:38.6738281Z" + headers: + content-length: + - '230' + content-type: + - application/xml + date: + - Thu, 30 Apr 2020 00:24:38 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ContainerAlreadyExists + x-ms-version: + - '2019-10-10' + status: + code: 409 + message: The specified container already exists. +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 30 Apr 2020 00:24:39 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer884146f/blob884146f + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - yaNM/IXZgmmMasifdgcavQ== + date: + - Thu, 30 Apr 2020 00:24:39 GMT + etag: + - '"0x8D7EC9CDF2E7E90"' + last-modified: + - Thu, 30 Apr 2020 00:24:39 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ov8U1LLnyKc= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-30T00:24:39.9634064Z' + status: + code: 201 + message: Created +- request: + body: abc + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 30 Apr 2020 00:24:40 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer884146f/blob884146f + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - kAFQmDzST7DWlj99KOF/cg== + date: + - Thu, 30 Apr 2020 00:24:39 GMT + etag: + - '"0x8D7EC9CDF3A196E"' + last-modified: + - Thu, 30 Apr 2020 00:24:40 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - 6/rBP7vK5QU= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-30T00:24:40.0414613Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 00:24:40 GMT + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer884146f/blob884146f + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 30 Apr 2020 00:24:40 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'false' + x-ms-version: + - '2019-10-10' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 00:24:41 GMT + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer884146f?include=versions&restype=container&comp=list + response: + body: + string: "\uFEFFblob884146f2020-04-29T16:35:36.6627534ZWed, + 29 Apr 2020 16:35:36 GMTWed, 29 Apr 2020 16:35:36 + GMT0x8D7EC5B58779CCE1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T16:44:36.3266215ZWed, + 29 Apr 2020 16:44:36 GMTWed, 29 Apr 2020 16:44:36 + GMT0x8D7EC5C9A21C8A71024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T16:44:40.7587498ZWed, + 29 Apr 2020 16:44:40 GMTWed, 29 Apr 2020 16:44:40 + GMT0x8D7EC5C9CC5C4833application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T16:58:48.2798624ZWed, + 29 Apr 2020 16:58:48 GMTWed, 29 Apr 2020 16:58:48 + GMT0x8D7EC5E95EF88201024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T16:58:48.5760726ZWed, + 29 Apr 2020 16:58:48 GMTWed, 29 Apr 2020 16:58:48 + GMT0x8D7EC5E961C6CAF3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T16:59:00.5055423ZWed, + 29 Apr 2020 16:59:00 GMTWed, 29 Apr 2020 16:59:00 + GMT0x8D7EC5E9D3905BF1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T16:59:00.6406382ZWed, + 29 Apr 2020 16:59:00 GMTWed, 29 Apr 2020 16:59:00 + GMT0x8D7EC5E9D4D54CB3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T16:59:14.5815376ZWed, + 29 Apr 2020 16:59:14 GMTWed, 29 Apr 2020 16:59:14 + GMT0x8D7EC5EA59CD9501024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T16:59:14.6766032ZWed, + 29 Apr 2020 16:59:14 GMTWed, 29 Apr 2020 16:59:14 + GMT0x8D7EC5EA5AB0CAD3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T17:00:54.8857565ZWed, + 29 Apr 2020 17:00:54 GMTWed, 29 Apr 2020 17:00:54 + GMT0x8D7EC5EE1660EDD1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T17:00:57.7367792ZWed, + 29 Apr 2020 17:00:57 GMTWed, 29 Apr 2020 17:00:57 + GMT0x8D7EC5EE318C8C83application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T17:13:50.1574010ZWed, + 29 Apr 2020 17:13:50 GMTWed, 29 Apr 2020 17:13:50 + GMT0x8D7EC60AF7F1F7A1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T17:13:50.2474639ZWed, + 29 Apr 2020 17:13:50 GMTWed, 29 Apr 2020 17:13:50 + GMT0x8D7EC60AF8CB67F3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T22:09:38.9927326ZWed, + 29 Apr 2020 22:09:38 GMTWed, 29 Apr 2020 22:09:38 + GMT0x8D7EC8A02A050831024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T22:09:39.1008082ZWed, + 29 Apr 2020 22:09:39 GMTWed, 29 Apr 2020 22:09:39 + GMT0x8D7EC8A02B0CE423application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T22:11:41.5616281ZWed, + 29 Apr 2020 22:11:41 GMTWed, 29 Apr 2020 22:11:41 + GMT0x8D7EC8A4BAEFF191024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T22:11:41.6436863ZWed, + 29 Apr 2020 22:11:41 GMTWed, 29 Apr 2020 22:11:41 + GMT0x8D7EC8A4BBB5D6F3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T23:43:12.7709682ZWed, + 29 Apr 2020 23:43:12 GMTWed, 29 Apr 2020 23:43:12 + GMT0x8D7EC9714B30BF21024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T23:43:12.8480228ZWed, + 29 Apr 2020 23:43:12 GMTWed, 29 Apr 2020 23:43:12 + GMT0x8D7EC9714BEA6D43application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T23:46:16.0752235ZWed, + 29 Apr 2020 23:46:16 GMTWed, 29 Apr 2020 23:46:16 + GMT0x8D7EC9781F50E6B1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T23:46:16.1532784ZWed, + 29 Apr 2020 23:46:16 GMTWed, 29 Apr 2020 23:46:16 + GMT0x8D7EC978200D0603application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-29T23:48:10.1072544ZWed, + 29 Apr 2020 23:48:10 GMTWed, 29 Apr 2020 23:48:10 + GMT0x8D7EC97C5ECF6A01024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-29T23:48:10.1863099ZWed, + 29 Apr 2020 23:48:10 GMTWed, 29 Apr 2020 23:48:10 + GMT0x8D7EC97C5F8DFAB3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-30T00:23:35.2344109ZThu, + 30 Apr 2020 00:23:35 GMTThu, 30 Apr 2020 00:23:35 + GMT0x8D7EC9CB899A22D1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-30T00:23:35.3604999ZThu, + 30 Apr 2020 00:23:35 GMTThu, 30 Apr 2020 00:23:35 + GMT0x8D7EC9CB8ACB8773application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-04-30T00:24:39.9634064ZThu, + 30 Apr 2020 00:24:39 GMTThu, 30 Apr 2020 00:24:39 + GMT0x8D7EC9CDF2E7E901024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-04-30T00:24:40.0414613ZThu, + 30 Apr 2020 00:24:40 GMTThu, 30 Apr 2020 00:24:40 + GMT0x8D7EC9CDF3A196E3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrue" + headers: + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding + content-type: + - application/xml + date: + - Thu, 30 Apr 2020 00:24:42 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-10-10' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_set_blob_metadata_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_set_blob_metadata_returns_vid.yaml new file mode 100644 index 000000000000..efc35ee561c2 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_set_blob_metadata_returns_vid.yaml @@ -0,0 +1,210 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 17:38:29 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer1f2114f2?timeout=5&restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 17:38:29 GMT + etag: + - '"0x8D7EC64215B5716"' + last-modified: + - Wed, 29 Apr 2020 17:38:29 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 17:38:29 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer1f2114f2/blob1f2114f2 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - yaNM/IXZgmmMasifdgcavQ== + date: + - Wed, 29 Apr 2020 17:38:29 GMT + etag: + - '"0x8D7EC642169F896"' + last-modified: + - Wed, 29 Apr 2020 17:38:29 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ov8U1LLnyKc= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T17:38:29.7702313Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 17:38:29 GMT + x-ms-meta-UP: + - UPval + x-ms-meta-hello: + - world + x-ms-meta-number: + - '42' + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer1f2114f2/blob1f2114f2?comp=metadata + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 17:38:29 GMT + etag: + - '"0x8D7EC642177416D"' + last-modified: + - Wed, 29 Apr 2020 17:38:29 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T17:38:29.8582928Z' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 17:38:29 GMT + x-ms-version: + - '2019-10-10' + method: HEAD + uri: https://storagename.blob.core.windows.net/utcontainer1f2114f2/blob1f2114f2 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,x-ms-meta-hello,x-ms-meta-number,x-ms-meta-UP,Content-Type,Last-Modified,ETag,x-ms-creation-time,Content-MD5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-server-encrypted,x-ms-access-tier,x-ms-access-tier-inferred,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: + - '1024' + content-md5: + - yaNM/IXZgmmMasifdgcavQ== + content-type: + - application/octet-stream + date: + - Wed, 29 Apr 2020 17:38:29 GMT + etag: + - '"0x8D7EC642177416D"' + last-modified: + - Wed, 29 Apr 2020 17:38:29 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Hot + x-ms-access-tier-inferred: + - 'true' + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 29 Apr 2020 17:38:29 GMT + x-ms-is-current-version: + - 'true' + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-meta-hello: + - world + x-ms-meta-number: + - '42' + x-ms-meta-up: + - UPval + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T17:38:29.8582928Z' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_sync_copy_blob_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_sync_copy_blob_returns_vid.yaml new file mode 100644 index 000000000000..237be4d59288 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_sync_copy_blob_returns_vid.yaml @@ -0,0 +1,135 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 17:46:13 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere4d913dd?timeout=5&restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 17:46:12 GMT + etag: + - '"0x8D7EC6535C42B55"' + last-modified: + - Wed, 29 Apr 2020 17:46:13 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 17:46:13 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere4d913dd/blobe4d913dd + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - yaNM/IXZgmmMasifdgcavQ== + date: + - Wed, 29 Apr 2020 17:46:12 GMT + etag: + - '"0x8D7EC6535D20C43"' + last-modified: + - Wed, 29 Apr 2020 17:46:13 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ov8U1LLnyKc= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T17:46:13.5024707Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-copy-source: + - https://cdm03r01aversioning16.blob.core.windows.net/utcontainere4d913dd/blobe4d913dd + x-ms-date: + - Wed, 29 Apr 2020 17:46:13 GMT + x-ms-requires-sync: + - 'True' + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere4d913dd/blob1copy + response: + body: + string: "\uFEFFCannotVerifyCopySourceThe + specified resource does not exist.\nRequestId:1e6549d2-c01e-0082-2d4e-1e9b7c000000\nTime:2020-04-29T17:46:13.7137314Z" + headers: + content-length: + - '229' + content-type: + - application/xml + date: + - Wed, 29 Apr 2020 17:46:13 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - CannotVerifyCopySource + x-ms-version: + - '2019-10-10' + status: + code: 404 + message: The specified resource does not exist. +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_copy_blob_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_copy_blob_returns_vid.yaml new file mode 100644 index 000000000000..299c3d76d5b8 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_copy_blob_returns_vid.yaml @@ -0,0 +1,141 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:17:36 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerf8e5143e?timeout=5&restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:17:36 GMT + etag: '"0x8D7EC9380E5A14F"' + last-modified: Wed, 29 Apr 2020 23:17:36 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerf8e5143e?timeout=5&restype=container +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 23:17:36 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerf8e5143e/blobf8e5143e + response: + body: + string: '' + headers: + content-length: '0' + content-md5: yaNM/IXZgmmMasifdgcavQ== + date: Wed, 29 Apr 2020 23:17:36 GMT + etag: '"0x8D7EC9380EE1600"' + last-modified: Wed, 29 Apr 2020 23:17:36 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: ov8U1LLnyKc= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:17:36.3649024Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerf8e5143e/blobf8e5143e +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-copy-source: + - https://cdm03r01aversioning16.blob.core.windows.net/utcontainerf8e5143e/blobf8e5143e + x-ms-date: + - Wed, 29 Apr 2020 23:17:36 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerf8e5143e/blob1copy + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:17:36 GMT + etag: '"0x8D7EC9380F6A307"' + last-modified: Wed, 29 Apr 2020 23:17:36 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-copy-id: 984f93ea-5fea-436c-8dad-5690993fb3f9 + x-ms-copy-status: success + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:17:36.4209415Z' + status: + code: 202 + message: Accepted + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerf8e5143e/blob1copy +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:17:36 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainerf8e5143e/blob1copy + response: + body: + string: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-copy-id,x-ms-copy-source,x-ms-copy-status,x-ms-copy-progress,x-ms-copy-completion-time,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1024' + content-range: bytes 0-1023/1024 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 23:17:36 GMT + etag: '"0x8D7EC9380F6A307"' + last-modified: Wed, 29 Apr 2020 23:17:36 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: yaNM/IXZgmmMasifdgcavQ== + x-ms-blob-type: BlockBlob + x-ms-copy-completion-time: Wed, 29 Apr 2020 23:17:36 GMT + x-ms-copy-id: 984f93ea-5fea-436c-8dad-5690993fb3f9 + x-ms-copy-progress: 1024/1024 + x-ms-copy-source: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerf8e5143e/blobf8e5143e + x-ms-copy-status: success + x-ms-creation-time: Wed, 29 Apr 2020 23:17:36 GMT + x-ms-is-current-version: 'true' + x-ms-lease-state: available + x-ms-lease-status: unlocked + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:17:36.4209415Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerf8e5143e/blob1copy +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_and_download_blob_with_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_and_download_blob_with_vid.yaml new file mode 100644 index 000000000000..8115a42294ac --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_and_download_blob_with_vid.yaml @@ -0,0 +1,951 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:20 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7?timeout=5&restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 22:32:20 GMT + etag: '"0x8D7EC8D2E6BB940"' + last-modified: Wed, 29 Apr 2020 22:32:20 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7?timeout=5&restype=container +- request: + body: '-' + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/-a-a- + response: + body: + string: '' + headers: + content-length: '0' + content-md5: M21evFQ2U05h0W5j3fyjJw== + date: Wed, 29 Apr 2020 22:32:20 GMT + etag: '"0x8D7EC8D2E771542"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: qZnwPj9XCzQ= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.0314562Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/-a-a- +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/-a-a-?versionid=2020-04-29T22:32:21.0314562Z + response: + body: + string: '-' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2E771542"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: M21evFQ2U05h0W5j3fyjJw== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.0314562Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/-a-a-?versionid=2020-04-29T22:32:21.0314562Z +- request: + body: . + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/.a.a. + response: + body: + string: '' + headers: + content-length: '0' + content-md5: UFjxr4OIYz9gnK23WnXcnQ== + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2E8B3D27"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: IgKubmdGuLU= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.1635495Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/.a.a. +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/.a.a.?versionid=2020-04-29T22:32:21.1635495Z + response: + body: + string: . + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2E8B3D27"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: UFjxr4OIYz9gnK23WnXcnQ== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.1635495Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/.a.a.?versionid=2020-04-29T22:32:21.1635495Z +- request: + body: _ + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/_a_a_ + response: + body: + string: '' + headers: + content-length: '0' + content-md5: sUp7gFnZwFWVTJJnTOYAMg== + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2E9D68DB"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: txY3vV5trZQ= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.2826331Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/_a_a_ +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/_a_a_?versionid=2020-04-29T22:32:21.2826331Z + response: + body: + string: _ + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2E9D68DB"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: sUp7gFnZwFWVTJJnTOYAMg== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.2826331Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/_a_a_?versionid=2020-04-29T22:32:21.2826331Z +- request: + body: ' ' + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20 + response: + body: + string: '' + headers: + content-length: '0' + content-md5: chXunH2dwinSkhpA6JnsXw== + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2EAD9864"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: KliQ/jCuGyQ= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.3887076Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20 +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20?versionid=2020-04-29T22:32:21.3887076Z + response: + body: + string: ' ' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2EAD9864"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: chXunH2dwinSkhpA6JnsXw== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.3887076Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20?versionid=2020-04-29T22:32:21.3887076Z +- request: + body: / + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%2Fa%2Fa%2F + response: + body: + string: '' + headers: + content-length: '0' + content-md5: ZmbNdvlpVkaee+OddQzH2Q== + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2EBF00B1"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: W4ubXq+21so= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.5027889Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/%2Fa%2Fa%2F +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%2Fa%2Fa%2F?versionid=2020-04-29T22:32:21.5027889Z + response: + body: + string: / + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2EBF00B1"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: ZmbNdvlpVkaee+OddQzH2Q== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.5027889Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/%2Fa%2Fa%2F?versionid=2020-04-29T22:32:21.5027889Z +- request: + body: ( + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/(a(a( + response: + body: + string: '' + headers: + content-length: '0' + content-md5: hMQEc0FMry7Up7EoPki79A== + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2ED12C62"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: X6aEloRCB4I= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.6228729Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/(a(a( +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/(a(a(?versionid=2020-04-29T22:32:21.6228729Z + response: + body: + string: ( + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2ED12C62"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: hMQEc0FMry7Up7EoPki79A== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.6228729Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/(a(a(?versionid=2020-04-29T22:32:21.6228729Z +- request: + body: ) + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/)a)a) + response: + body: + string: '' + headers: + content-length: '0' + content-md5: k3HXouOuhqAKq0dx450lXQ== + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2EE1F84F"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: Ji+xpkyyaf0= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.7319503Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/)a)a) +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/)a)a)?versionid=2020-04-29T22:32:21.7319503Z + response: + body: + string: ) + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2EE1F84F"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: k3HXouOuhqAKq0dx450lXQ== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.7319503Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/)a)a)?versionid=2020-04-29T22:32:21.7319503Z +- request: + body: $ + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/$a$a$ + response: + body: + string: '' + headers: + content-length: '0' + content-md5: w+l91ul/tRJWiMl/NnIMvg== + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2EF4994D"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: pe7RZkNLee0= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.8550372Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/$a$a$ +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/$a$a$?versionid=2020-04-29T22:32:21.8550372Z + response: + body: + string: $ + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2EF4994D"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: w+l91ul/tRJWiMl/NnIMvg== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.8550372Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/$a$a$?versionid=2020-04-29T22:32:21.8550372Z +- request: + body: '=' + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:21 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/=a=a= + response: + body: + string: '' + headers: + content-length: '0' + content-md5: Q+w+Xe5ucGr3dm//6lEnIQ== + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2F076162"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: KPZOtgSo60w= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.9771234Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/=a=a= +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:22 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/=a=a=?versionid=2020-04-29T22:32:21.9771234Z + response: + body: + string: '=' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:21 GMT + etag: '"0x8D7EC8D2F076162"' + last-modified: Wed, 29 Apr 2020 22:32:21 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: Q+w+Xe5ucGr3dm//6lEnIQ== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:21.9771234Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/=a=a=?versionid=2020-04-29T22:32:21.9771234Z +- request: + body: '''' + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:22 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/'a'a' + response: + body: + string: '' + headers: + content-length: '0' + content-md5: NZDLivC7ueeMNDtSuTdzyQ== + date: Wed, 29 Apr 2020 22:32:22 GMT + etag: '"0x8D7EC8D2F1A0260"' + last-modified: Wed, 29 Apr 2020 22:32:22 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: LnWPNhtaymw= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:22.0992096Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/'a'a' +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:22 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/'a'a'?versionid=2020-04-29T22:32:22.0992096Z + response: + body: + string: '''' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:22 GMT + etag: '"0x8D7EC8D2F1A0260"' + last-modified: Wed, 29 Apr 2020 22:32:22 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: NZDLivC7ueeMNDtSuTdzyQ== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:22 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:22.0992096Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/'a'a'?versionid=2020-04-29T22:32:22.0992096Z +- request: + body: ',' + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:22 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/,a,a, + response: + body: + string: '' + headers: + content-length: '0' + content-md5: wMtfD88jmrPZwfzTH/8e/A== + date: Wed, 29 Apr 2020 22:32:22 GMT + etag: '"0x8D7EC8D2F2C7C47"' + last-modified: Wed, 29 Apr 2020 22:32:22 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: 0BDFDvenZUs= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:22.2202951Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/,a,a, +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:22 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/,a,a,?versionid=2020-04-29T22:32:22.2202951Z + response: + body: + string: ',' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:22 GMT + etag: '"0x8D7EC8D2F2C7C47"' + last-modified: Wed, 29 Apr 2020 22:32:22 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: wMtfD88jmrPZwfzTH/8e/A== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:22 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:22.2202951Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/,a,a,?versionid=2020-04-29T22:32:22.2202951Z +- request: + body: '~' + headers: + Content-Length: + - '1' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:32:22 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/~a~a~ + response: + body: + string: '' + headers: + content-length: '0' + content-md5: THYfFw4BaDb/hEmCArmYJw== + date: Wed, 29 Apr 2020 22:32:22 GMT + etag: '"0x8D7EC8D2F3F6B73"' + last-modified: Wed, 29 Apr 2020 22:32:22 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: zEB+nOFjAho= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:22.3443827Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/~a~a~ +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:32:22 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/~a~a~?versionid=2020-04-29T22:32:22.3443827Z + response: + body: + string: '~' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1' + content-range: bytes 0-0/1 + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:32:22 GMT + etag: '"0x8D7EC8D2F3F6B73"' + last-modified: Wed, 29 Apr 2020 22:32:22 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: THYfFw4BaDb/hEmCArmYJw== + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:32:22 GMT + x-ms-is-current-version: 'true' + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:32:22.3443827Z' + status: + code: 206 + message: Partial Content + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/~a~a~?versionid=2020-04-29T22:32:22.3443827Z +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_snapshot_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_snapshot_returns_vid.yaml new file mode 100644 index 000000000000..df953274a54b --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_snapshot_returns_vid.yaml @@ -0,0 +1,194 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:15:23 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerefe918c6?timeout=5&restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:15:23 GMT + etag: '"0x8D7EC9331DA7F3C"' + last-modified: Wed, 29 Apr 2020 23:15:23 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerefe918c6?timeout=5&restype=container +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 23:15:23 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerefe918c6/blobefe918c6 + response: + body: + string: '' + headers: + content-length: '0' + content-md5: yaNM/IXZgmmMasifdgcavQ== + date: Wed, 29 Apr 2020 23:15:23 GMT + etag: '"0x8D7EC9331E343AF"' + last-modified: Wed, 29 Apr 2020 23:15:23 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: ov8U1LLnyKc= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:15:23.7549766Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerefe918c6/blobefe918c6 +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:15:23 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerefe918c6/blobefe918c6?comp=snapshot + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:15:23 GMT + etag: '"0x8D7EC9331E343AF"' + last-modified: Wed, 29 Apr 2020 23:15:23 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: 'false' + x-ms-snapshot: '2020-04-29T23:15:23.8250251Z' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:15:23.8260251Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerefe918c6/blobefe918c6?comp=snapshot +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:15:23 GMT + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainerefe918c6?include=snapshots&restype=container&comp=list + response: + body: + string: "\uFEFFblobefe918c62020-04-29T23:15:23.8250251ZWed, + 29 Apr 2020 23:15:23 GMTWed, 29 Apr 2020 23:15:23 + GMT0x8D7EC9331E343AF1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblobefe918c62020-04-29T23:15:23.8260251ZtrueWed, + 29 Apr 2020 23:15:23 GMTWed, 29 Apr 2020 23:15:23 + GMT0x8D7EC9331E343AF1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" + headers: + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding + content-type: application/xml + date: Wed, 29 Apr 2020 23:15:23 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: chunked + x-ms-version: '2019-10-10' + status: + code: 200 + message: OK + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerefe918c6?include=snapshots&restype=container&comp=list +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:15:24 GMT + x-ms-delete-snapshots: + - only + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainerefe918c6/blobefe918c6 + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:15:23 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: 'false' + x-ms-version: '2019-10-10' + status: + code: 202 + message: Accepted + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerefe918c6/blobefe918c6 +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:15:24 GMT + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainerefe918c6?include=snapshots,versions&restype=container&comp=list + response: + body: + string: "\uFEFFblobefe918c62020-04-29T23:15:23.7549766ZWed, + 29 Apr 2020 23:15:23 GMTWed, 29 Apr 2020 23:15:23 + GMT0x8D7EC9331E343AF1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblobefe918c62020-04-29T23:15:23.8260251ZtrueWed, + 29 Apr 2020 23:15:23 GMTWed, 29 Apr 2020 23:15:23 + GMT0x8D7EC9331E343AF1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" + headers: + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding + content-type: application/xml + date: Wed, 29 Apr 2020 23:15:23 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: chunked + x-ms-version: '2019-10-10' + status: + code: 200 + message: OK + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainerefe918c6?include=snapshots,versions&restype=container&comp=list +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_blob_version_with_blob_sas.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_blob_version_with_blob_sas.yaml new file mode 100644 index 000000000000..15f6b9443487 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_blob_version_with_blob_sas.yaml @@ -0,0 +1,196 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 17:57:07 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer7f01906?timeout=5&restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Thu, 30 Apr 2020 17:57:07 GMT + etag: '"0x8D7ED2FE6773E5C"' + last-modified: Thu, 30 Apr 2020 17:57:08 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer7f01906?timeout=5&restype=container +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 30 Apr 2020 17:57:08 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer7f01906/blob7f01906 + response: + body: + string: '' + headers: + content-length: '0' + content-md5: yaNM/IXZgmmMasifdgcavQ== + date: Thu, 30 Apr 2020 17:57:07 GMT + etag: '"0x8D7ED2FE6859F53"' + last-modified: Thu, 30 Apr 2020 17:57:08 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: ov8U1LLnyKc= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-30T17:57:08.2977107Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer7f01906/blob7f01906 +- request: + body: abcde + headers: + Content-Length: + - '5' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 30 Apr 2020 17:57:08 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer7f01906/blob7f01906 + response: + body: + string: '' + headers: + content-length: '0' + content-md5: q1a02StAcTrMWviZhdS3hg== + date: Thu, 30 Apr 2020 17:57:07 GMT + etag: '"0x8D7ED2FE68E5375"' + last-modified: Thu, 30 Apr 2020 17:57:08 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: ExJGZ9Dkswo= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-30T17:57:08.3557509Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer7f01906/blob7f01906 +- request: + body: abc + headers: + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 30 Apr 2020 17:57:08 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer7f01906/blob7f01906 + response: + body: + string: '' + headers: + content-length: '0' + content-md5: kAFQmDzST7DWlj99KOF/cg== + date: Thu, 30 Apr 2020 17:57:07 GMT + etag: '"0x8D7ED2FE6977CE6"' + last-modified: Thu, 30 Apr 2020 17:57:08 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: 6/rBP7vK5QU= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-30T17:57:08.4157942Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer7f01906/blob7f01906 +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 17:57:08 GMT + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer7f01906/blob7f01906?versionid=2020-04-30T17:57:08.3557509Z&se=2020-04-30T18:57:08Z&sp=dx&sv=2019-10-10&sr=bv&sig=rh9IJsN235ri%2BnMyDFGWRHKd0cRyTh5Gdy7TJJWhiZw%3D + response: + body: + string: '' + headers: + content-length: '0' + date: Thu, 30 Apr 2020 17:57:07 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: 'false' + x-ms-version: '2019-10-10' + status: + code: 202 + message: Accepted + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer7f01906/blob7f01906?versionid=2020-04-30T17:57:08.3557509Z&se=2020-04-30T18:57:08Z&sp=dx&sv=2019-10-10&sr=bv&sig=rh9IJsN235ri%2BnMyDFGWRHKd0cRyTh5Gdy7TJJWhiZw%3D +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 30 Apr 2020 17:57:08 GMT + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer7f01906?include=versions&restype=container&comp=list + response: + body: + string: "\uFEFFblob7f019062020-04-30T17:57:08.2977107ZThu, + 30 Apr 2020 17:57:08 GMTThu, 30 Apr 2020 17:57:08 + GMT0x8D7ED2FE6859F531024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob7f019062020-04-30T17:57:08.4157942ZtrueThu, + 30 Apr 2020 17:57:08 GMTThu, 30 Apr 2020 17:57:08 + GMT0x8D7ED2FE6977CE63application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottrueunlockedavailabletrue" + headers: + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding + content-type: application/xml + date: Thu, 30 Apr 2020 17:57:07 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: chunked + x-ms-version: '2019-10-10' + status: + code: 200 + message: OK + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer7f01906?include=versions&restype=container&comp=list +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_specific_blob_version.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_specific_blob_version.yaml new file mode 100644 index 000000000000..93d47aed8df8 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_specific_blob_version.yaml @@ -0,0 +1,178 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:09:41 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec?timeout=5&restype=container + response: + body: + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:ef88df9d-001e-0034-1b7b-1ee90a000000\nTime:2020-04-29T23:09:41.6020503Z" + headers: + content-length: '230' + content-type: application/xml + date: Wed, 29 Apr 2020 23:09:40 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: ContainerAlreadyExists + x-ms-version: '2019-10-10' + status: + code: 409 + message: The specified container already exists. + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec?timeout=5&restype=container +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 23:09:41 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + response: + body: + string: '' + headers: + content-length: '0' + content-md5: yaNM/IXZgmmMasifdgcavQ== + date: Wed, 29 Apr 2020 23:09:41 GMT + etag: '"0x8D7EC9265FB3CD8"' + last-modified: Wed, 29 Apr 2020 23:09:41 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: ov8U1LLnyKc= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:09:41.6558808Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec +- request: + body: abc + headers: + Content-Length: + - '3' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 23:09:41 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + response: + body: + string: '' + headers: + content-length: '0' + content-md5: kAFQmDzST7DWlj99KOF/cg== + date: Wed, 29 Apr 2020 23:09:41 GMT + etag: '"0x8D7EC9266061446"' + last-modified: Wed, 29 Apr 2020 23:09:41 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: 6/rBP7vK5QU= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:09:41.7279318Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:09:41 GMT + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:09:41 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: 'false' + x-ms-version: '2019-10-10' + status: + code: 202 + message: Accepted + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:09:41 GMT + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec?include=versions&restype=container&comp=list + response: + body: + string: "\uFEFFblob8d9d16ec2020-04-29T23:02:14.8399485ZWed, + 29 Apr 2020 23:02:14 GMTWed, 29 Apr 2020 23:02:14 + GMT0x8D7EC915BA8897D1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob8d9d16ec2020-04-29T23:02:14.8989898ZWed, + 29 Apr 2020 23:02:14 GMTWed, 29 Apr 2020 23:02:14 + GMT0x8D7EC915BB13DA33application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob8d9d16ec2020-04-29T23:03:53.7502259ZWed, + 29 Apr 2020 23:03:53 GMTWed, 29 Apr 2020 23:03:53 + GMT0x8D7EC91969CE51C1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob8d9d16ec2020-04-29T23:03:53.8162718ZWed, + 29 Apr 2020 23:03:53 GMTWed, 29 Apr 2020 23:03:53 + GMT0x8D7EC9196A6D1F73application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob8d9d16ec2020-04-29T23:09:41.6558808ZWed, + 29 Apr 2020 23:09:41 GMTWed, 29 Apr 2020 23:09:41 + GMT0x8D7EC9265FB3CD81024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob8d9d16ec2020-04-29T23:09:41.7279318ZWed, + 29 Apr 2020 23:09:41 GMTWed, 29 Apr 2020 23:09:41 + GMT0x8D7EC92660614463application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrue" + headers: + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding + content-type: application/xml + date: Wed, 29 Apr 2020 23:09:41 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: chunked + x-ms-version: '2019-10-10' + status: + code: 200 + message: OK + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec?include=versions&restype=container&comp=list +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_set_blob_metadata_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_set_blob_metadata_returns_vid.yaml new file mode 100644 index 000000000000..c19dd994fb15 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_set_blob_metadata_returns_vid.yaml @@ -0,0 +1,139 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:38:12 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainera6b7176f?timeout=5&restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 22:38:12 GMT + etag: '"0x8D7EC8DFFDCF96B"' + last-modified: Wed, 29 Apr 2020 22:38:12 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainera6b7176f?timeout=5&restype=container +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 29 Apr 2020 22:38:12 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainera6b7176f/bloba6b7176f + response: + body: + string: '' + headers: + content-length: '0' + content-md5: yaNM/IXZgmmMasifdgcavQ== + date: Wed, 29 Apr 2020 22:38:12 GMT + etag: '"0x8D7EC8DFFEC8752"' + last-modified: Wed, 29 Apr 2020 22:38:12 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: ov8U1LLnyKc= + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:38:12.4449618Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainera6b7176f/bloba6b7176f +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:38:12 GMT + x-ms-meta-UP: + - UPval + x-ms-meta-hello: + - world + x-ms-meta-number: + - '42' + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainera6b7176f/bloba6b7176f?comp=metadata + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 22:38:12 GMT + etag: '"0x8D7EC8DFFF62608"' + last-modified: Wed, 29 Apr 2020 22:38:12 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:38:12.5100074Z' + status: + code: 200 + message: OK + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainera6b7176f/bloba6b7176f?comp=metadata +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 22:38:12 GMT + x-ms-version: + - '2019-10-10' + method: HEAD + uri: https://storagename.blob.core.windows.net/utcontainera6b7176f/bloba6b7176f + response: + body: + string: '' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,x-ms-meta-hello,x-ms-meta-number,x-ms-meta-UP,Content-Type,Last-Modified,ETag,x-ms-creation-time,Content-MD5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-server-encrypted,x-ms-access-tier,x-ms-access-tier-inferred,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1024' + content-md5: yaNM/IXZgmmMasifdgcavQ== + content-type: application/octet-stream + date: Wed, 29 Apr 2020 22:38:12 GMT + etag: '"0x8D7EC8DFFF62608"' + last-modified: Wed, 29 Apr 2020 22:38:12 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: Hot + x-ms-access-tier-inferred: 'true' + x-ms-blob-type: BlockBlob + x-ms-creation-time: Wed, 29 Apr 2020 22:38:12 GMT + x-ms-is-current-version: 'true' + x-ms-lease-state: available + x-ms-lease-status: unlocked + x-ms-meta-hello: world + x-ms-meta-number: '42' + x-ms-meta-up: UPval + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T22:38:12.5100074Z' + status: + code: 200 + message: OK + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainera6b7176f/bloba6b7176f +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_page_blob.test_create_page_blob_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_page_blob.test_create_page_blob_returns_vid.yaml new file mode 100644 index 000000000000..e06e90ff19a3 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_page_blob.test_create_page_blob_returns_vid.yaml @@ -0,0 +1,184 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 19:01:56 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerdb99138a?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 19:01:56 GMT + etag: + - '"0x8D7EC6FC9F6B602"' + last-modified: + - Wed, 29 Apr 2020 19:01:57 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 19:01:57 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainersourcedb99138a?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 19:01:57 GMT + etag: + - '"0x8D7EC6FCA053792"' + last-modified: + - Wed, 29 Apr 2020 19:01:57 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-10-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-content-length: + - '1024' + x-ms-blob-type: + - PageBlob + x-ms-date: + - Wed, 29 Apr 2020 19:01:57 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainerdb99138a/blobdb99138a + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 29 Apr 2020 19:01:57 GMT + etag: + - '"0x8D7EC6FCA12BDD4"' + last-modified: + - Wed, 29 Apr 2020 19:01:57 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T19:01:57.1975403Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 19:01:57 GMT + x-ms-version: + - '2019-10-10' + method: HEAD + uri: https://storagename.blob.core.windows.net/utcontainerdb99138a/blobdb99138a + response: + body: + string: '' + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-blob-sequence-number,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: + - '1024' + content-type: + - application/octet-stream + date: + - Wed, 29 Apr 2020 19:01:57 GMT + etag: + - '"0x8D7EC6FCA12BDD4"' + last-modified: + - Wed, 29 Apr 2020 19:01:57 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-sequence-number: + - '0' + x-ms-blob-type: + - PageBlob + x-ms-creation-time: + - Wed, 29 Apr 2020 19:01:57 GMT + x-ms-is-current-version: + - 'true' + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-04-29T19:01:57.1975403Z' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_page_blob_async.test_create_page_blob_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_page_blob_async.test_create_page_blob_returns_vid.yaml new file mode 100644 index 000000000000..6295bb2750ad --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_page_blob_async.test_create_page_blob_returns_vid.yaml @@ -0,0 +1,122 @@ +interactions: +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:21:31 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer5b391607?restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:21:30 GMT + etag: '"0x8D7EC940CFA468E"' + last-modified: Wed, 29 Apr 2020 23:21:31 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer5b391607?restype=container +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:21:31 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainersource5b391607?restype=container + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:21:30 GMT + etag: '"0x8D7EC940D02AC8B"' + last-modified: Wed, 29 Apr 2020 23:21:31 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: '2019-10-10' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainersource5b391607?restype=container +- request: + body: null + headers: + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-content-length: + - '1024' + x-ms-blob-type: + - PageBlob + x-ms-date: + - Wed, 29 Apr 2020 23:21:31 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer5b391607/blob5b391607 + response: + body: + string: '' + headers: + content-length: '0' + date: Wed, 29 Apr 2020 23:21:30 GMT + etag: '"0x8D7EC940D0BF07F"' + last-modified: Wed, 29 Apr 2020 23:21:31 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:21:31.4415743Z' + status: + code: 201 + message: Created + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer5b391607/blob5b391607 +- request: + body: null + headers: + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 29 Apr 2020 23:21:31 GMT + x-ms-version: + - '2019-10-10' + method: HEAD + uri: https://storagename.blob.core.windows.net/utcontainer5b391607/blob5b391607 + response: + body: + string: '' + headers: + accept-ranges: bytes + access-control-allow-origin: '*' + access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-blob-sequence-number,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: '1024' + content-type: application/octet-stream + date: Wed, 29 Apr 2020 23:21:30 GMT + etag: '"0x8D7EC940D0BF07F"' + last-modified: Wed, 29 Apr 2020 23:21:31 GMT + server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-sequence-number: '0' + x-ms-blob-type: PageBlob + x-ms-creation-time: Wed, 29 Apr 2020 23:21:31 GMT + x-ms-is-current-version: 'true' + x-ms-lease-state: available + x-ms-lease-status: unlocked + x-ms-server-encrypted: 'true' + x-ms-version: '2019-10-10' + x-ms-version-id: '2020-04-29T23:21:31.4415743Z' + status: + code: 200 + message: OK + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer5b391607/blob5b391607 +version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/test_append_blob.py b/sdk/storage/azure-storage-blob/tests/test_append_blob.py index e978856ce81a..17ad1617385f 100644 --- a/sdk/storage/azure-storage-blob/tests/test_append_blob.py +++ b/sdk/storage/azure-storage-blob/tests/test_append_blob.py @@ -42,8 +42,14 @@ def _setup(self, bsc): self.container_name = self.get_resource_name('utcontainer') self.source_container_name = self.get_resource_name('utcontainersource') if self.is_live: - bsc.create_container(self.container_name) - bsc.create_container(self.source_container_name) + try: + bsc.create_container(self.container_name) + except: + pass + try: + bsc.create_container(self.source_container_name) + except: + pass def _teardown(self, file_name): if path.isfile(file_name): @@ -103,6 +109,27 @@ def test_create_blob(self, resource_group, location, storage_account, storage_ac self.assertEqual(blob_properties.etag, create_resp.get('etag')) self.assertEqual(blob_properties.last_modified, create_resp.get('last_modified')) + @GlobalStorageAccountPreparer() + def test_get_blob_properties_using_vid(self, resource_group, location, storage_account, storage_account_key): + # Arrange + bsc = BlobServiceClient(self.account_url(storage_account, "blob"), storage_account_key, max_block_size=4 * 1024) + self._setup(bsc) + blob_name = self._get_blob_reference() + + # Act + blob = bsc.get_blob_client(self.container_name, blob_name) + create_resp = blob.create_append_blob() + # create operation will return a version id + self.assertIsNotNone(create_resp['version_id']) + + # Assert + blob_properties = blob.get_blob_properties(version_id=create_resp['version_id']) + self.assertIsNotNone(blob_properties) + self.assertTrue(blob_properties.is_current_version) + self.assertIsNotNone(blob_properties.version_id) + self.assertEqual(blob_properties.etag, create_resp.get('etag')) + self.assertEqual(blob_properties.last_modified, create_resp.get('last_modified')) + @GlobalStorageAccountPreparer() def test_create_blob_with_lease_id(self, resource_group, location, storage_account, storage_account_key): bsc = BlobServiceClient(self.account_url(storage_account, "blob"), storage_account_key, max_block_size=4 * 1024) diff --git a/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py index 75e6425817cf..e8543735e242 100644 --- a/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py @@ -54,7 +54,7 @@ async def send(self, request, **config): return response -class StorageAppendBlobTestAsync(AsyncStorageTestCase): +class StorageAppendBlobAsyncTest(AsyncStorageTestCase): # --Helpers----------------------------------------------------------------- async def _setup(self, bsc): @@ -127,6 +127,27 @@ async def test_create_blob_async(self, resource_group, location, storage_account self.assertEqual(blob_properties.last_modified, create_resp.get('last_modified')) @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_get_blob_properties_using_vid(self, resource_group, location, storage_account, storage_account_key): + bsc = BlobServiceClient(self.account_url(storage_account, "blob"), storage_account_key, max_block_size=4 * 1024, + transport=AiohttpTestTransport()) + await self._setup(bsc) + blob_name = self._get_blob_reference() + + # Act + blob = bsc.get_blob_client(self.container_name, blob_name) + create_resp = await blob.create_append_blob() + # create operation will return a version id + self.assertIsNotNone(create_resp['version_id']) + + # Assert + blob_properties = await blob.get_blob_properties(version_id=create_resp['version_id']) + self.assertIsNotNone(blob_properties) + self.assertEqual(blob_properties.etag, create_resp.get('etag')) + self.assertEqual(blob_properties.last_modified, create_resp.get('last_modified')) + + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test async def test_create_blob_with_lease_id_async(self, resource_group, location, storage_account, storage_account_key): bsc = BlobServiceClient(self.account_url(storage_account, "blob"), storage_account_key, max_block_size=4 * 1024, diff --git a/sdk/storage/azure-storage-blob/tests/test_blob_access_conditions.py b/sdk/storage/azure-storage-blob/tests/test_blob_access_conditions.py index 7fed3d6da5fe..5e3d7687c28c 100644 --- a/sdk/storage/azure-storage-blob/tests/test_blob_access_conditions.py +++ b/sdk/storage/azure-storage-blob/tests/test_blob_access_conditions.py @@ -1523,6 +1523,27 @@ def test_put_block_list_with_if_modified(self, resource_group, location, storage content = blob.download_blob() self.assertEqual(content.readall(), b'AAABBBCCC') + @GlobalStorageAccountPreparer() + def test_put_block_list_returns_vid(self, resource_group, location, storage_account, storage_account_key): + bsc = BlobServiceClient(self.account_url(storage_account, "blob"), storage_account_key, connection_data_block_size=4 * 1024) + self._setup() + container, blob = self._create_container_and_block_blob( + self.container_name, 'blob1', b'', bsc) + blob.stage_block('1', b'AAA') + blob.stage_block('2', b'BBB') + blob.stage_block('3', b'CCC') + test_datetime = (datetime.utcnow() - + timedelta(minutes=15)) + + # Act + block_list = [BlobBlock(block_id='1'), BlobBlock(block_id='2'), BlobBlock(block_id='3')] + resp = blob.commit_block_list(block_list, if_modified_since=test_datetime) + + # Assert + self.assertIsNotNone(resp['version_id']) + content = blob.download_blob() + self.assertEqual(content.readall(), b'AAABBBCCC') + @GlobalStorageAccountPreparer() def test_put_block_list_with_metadata(self, resource_group, location, storage_account, storage_account_key): bsc = BlobServiceClient(self.account_url(storage_account, "blob"), storage_account_key, connection_data_block_size=4 * 1024) diff --git a/sdk/storage/azure-storage-blob/tests/test_blob_access_conditions_async.py b/sdk/storage/azure-storage-blob/tests/test_blob_access_conditions_async.py index 66f1432b5f00..9c0be519b791 100644 --- a/sdk/storage/azure-storage-blob/tests/test_blob_access_conditions_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_blob_access_conditions_async.py @@ -51,7 +51,7 @@ async def send(self, request, **config): return response -class StorageBlobAccessConditionsTestAsync(AsyncStorageTestCase): +class StorageBlobAccessConditionsAsyncTest(AsyncStorageTestCase): def _setup(self): self.container_name = self.get_resource_name('utcontainer') @@ -1621,6 +1621,30 @@ async def test_put_block_list_with_if_modified(self, resource_group, location, s content = await content.readall() self.assertEqual(content, b'AAABBBCCC') + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_put_block_list_returns_vid(self, resource_group, location, storage_account, storage_account_key): + bsc = BlobServiceClient(self.account_url(storage_account, "blob"), storage_account_key, connection_data_block_size=4 * 1024, transport=AiohttpTestTransport()) + self._setup() + container, blob = await self._create_container_and_block_blob( + self.container_name, 'blob1', b'', bsc) + await asyncio.gather(*[ + blob.stage_block('1', b'AAA'), + blob.stage_block('2', b'BBB'), + blob.stage_block('3', b'CCC')]) + test_datetime = (datetime.utcnow() - + timedelta(minutes=15)) + + # Act + block_list = [BlobBlock(block_id='1'), BlobBlock(block_id='2'), BlobBlock(block_id='3')] + resp = await blob.commit_block_list(block_list, if_modified_since=test_datetime) + + # Assert + self.assertIsNotNone(resp['version_id']) + content = await blob.download_blob() + content = await content.readall() + self.assertEqual(content, b'AAABBBCCC') + @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test async def test_put_block_list_with_if_modified_fail(self, resource_group, location, storage_account, storage_account_key): diff --git a/sdk/storage/azure-storage-blob/tests/test_block_blob_sync_copy.py b/sdk/storage/azure-storage-blob/tests/test_block_blob_sync_copy.py index 327d27e00278..b267e53fc09a 100644 --- a/sdk/storage/azure-storage-blob/tests/test_block_blob_sync_copy.py +++ b/sdk/storage/azure-storage-blob/tests/test_block_blob_sync_copy.py @@ -144,3 +144,22 @@ def test_copy_blob_sync(self, resource_group, location, storage_account, storage # Verify content content = dest_blob.download_blob().readall() self.assertEqual(self.source_blob_data, content) + + @GlobalStorageAccountPreparer() + def test_sync_copy_blob_returns_vid(self, resource_group, location, storage_account, storage_account_key): + self._setup(storage_account, storage_account_key) + dest_blob_name = self.get_resource_name('destblob') + dest_blob = self.bsc.get_blob_client(self.container_name, dest_blob_name) + + # Act + copy_props = dest_blob.start_copy_from_url(self.source_blob_url, requires_sync=True) + + # Assert + self.assertIsNotNone(copy_props['version_id']) + self.assertIsNotNone(copy_props) + self.assertIsNotNone(copy_props['copy_id']) + self.assertEqual('success', copy_props['copy_status']) + + # Verify content + content = dest_blob.download_blob().readall() + self.assertEqual(self.source_blob_data, content) \ No newline at end of file diff --git a/sdk/storage/azure-storage-blob/tests/test_block_blob_sync_copy_async.py b/sdk/storage/azure-storage-blob/tests/test_block_blob_sync_copy_async.py index e434d01bb829..c3ecf16597e0 100644 --- a/sdk/storage/azure-storage-blob/tests/test_block_blob_sync_copy_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_block_blob_sync_copy_async.py @@ -41,7 +41,7 @@ async def send(self, request, **config): return response -class StorageBlockBlobTestAsync(AsyncStorageTestCase): +class StorageBlockBlobAsyncTest(AsyncStorageTestCase): async def _setup(self, storage_account, key): # test chunking functionality by reducing the size of each chunk, # otherwise the tests would take too long to execute @@ -173,3 +173,24 @@ async def test_copy_blob_sync_async(self, resource_group, location, storage_acco # Verify content content = await (await dest_blob.download_blob()).readall() self.assertEqual(self.source_blob_data, content) + + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_sync_copy_blob_returns_vid(self, resource_group, location, storage_account, storage_account_key): + # Arrange + await self._setup(storage_account, storage_account_key) + dest_blob_name = self.get_resource_name('destblob') + dest_blob = self.bsc.get_blob_client(self.container_name, dest_blob_name) + + # Act + copy_props = await dest_blob.start_copy_from_url(self.source_blob_url, requires_sync=True) + + # Assert + self.assertIsNotNone(copy_props['version_id']) + self.assertIsNotNone(copy_props) + self.assertIsNotNone(copy_props['copy_id']) + self.assertEqual('success', copy_props['copy_status']) + + # Verify content + content = await (await dest_blob.download_blob()).readall() + self.assertEqual(self.source_blob_data, content) diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob.py b/sdk/storage/azure-storage-blob/tests/test_common_blob.py index 0878effb3f1b..37d4b6281a87 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob.py @@ -85,6 +85,7 @@ def _get_blob_reference(self): def _create_block_blob(self): blob_name = self._get_blob_reference() blob = self.bsc.get_blob_client(self.container_name, blob_name) + blob.delete_blob() blob.upload_blob(self.byte_data, length=len(self.byte_data)) return blob_name @@ -215,7 +216,6 @@ def test_create_blob_with_question_mark(self, resource_group, location, storage_ self.assertIsNotNone(data) self.assertEqual(data.readall(), blob_data) - @GlobalStorageAccountPreparer() def test_create_blob_with_special_chars(self, resource_group, location, storage_account, storage_account_key): self._setup(storage_account, storage_account_key) @@ -230,8 +230,21 @@ def test_create_blob_with_special_chars(self, resource_group, location, storage_ data = blob.download_blob(encoding='utf-8') self.assertEqual(data.readall(), blob_data) + @GlobalStorageAccountPreparer() + def test_create_blob_and_download_blob_with_vid(self, resource_group, location, storage_account, storage_account_key): + self._setup(storage_account, storage_account_key) - # Assert + # Act + for c in '-._ /()$=\',~': + blob_name = '{0}a{0}a{0}'.format(c) + blob_data = c + blob = self.bsc.get_blob_client(self.container_name, blob_name) + resp = blob.upload_blob(blob_data, length=len(blob_data), overwrite=True) + self.assertIsNotNone(resp.get('version_id')) + + data = blob.download_blob(encoding='utf-8', version_id=resp.get('version_id')) + self.assertEqual(data.readall(), blob_data) + self.assertIsNotNone(data.properties.get('version_id')) @GlobalStorageAccountPreparer() def test_create_blob_with_lease_id(self, resource_group, location, storage_account, storage_account_key): @@ -602,6 +615,26 @@ def test_set_blob_metadata_with_upper_case(self, resource_group, location, stora self.assertEqual(md['UP'], 'UPval') self.assertFalse('up' in md) + @GlobalStorageAccountPreparer() + def test_set_blob_metadata_returns_vid(self, resource_group, location, storage_account, storage_account_key): + # bug in devtools...converts upper case header to lowercase + # passes live. + self._setup(storage_account, storage_account_key) + metadata = {'hello': 'world', 'number': '42', 'UP': 'UPval'} + blob_name = self._create_block_blob() + + # Act + blob = self.bsc.get_blob_client(self.container_name, blob_name) + resp = blob.set_blob_metadata(metadata) + + # Assert + self.assertIsNotNone(resp['version_id']) + md = blob.get_blob_properties().metadata + self.assertEqual(3, len(md)) + self.assertEqual(md['hello'], 'world') + self.assertEqual(md['number'], '42') + self.assertEqual(md['UP'], 'UPval') + self.assertFalse('up' in md) @GlobalStorageAccountPreparer() def test_delete_blob_with_existing_blob(self, resource_group, location, storage_account, storage_account_key): @@ -615,6 +648,56 @@ def test_delete_blob_with_existing_blob(self, resource_group, location, storage_ # Assert self.assertIsNone(resp) + @GlobalStorageAccountPreparer() + def test_delete_specific_blob_version(self, resource_group, location, storage_account, storage_account_key): + self._setup(storage_account, storage_account_key) + blob_name = self._create_block_blob() + blob_client = self.bsc.get_blob_client(self.container_name, blob_name) + + resp = blob_client.upload_blob(b'abc', overwrite=True) + self.assertIsNotNone(resp['version_id']) + + # Act + resp = blob_client.delete_blob(version_id=resp['version_id']) + + blob_list = list(self.bsc.get_container_client(self.container_name).list_blobs(include="versions")) + + # Assert + self.assertIsNone(resp) + self.assertTrue(len(blob_list) > 0) + + @GlobalStorageAccountPreparer() + def test_delete_blob_version_with_blob_sas(self, resource_group, location, storage_account, storage_account_key): + self._setup(storage_account, storage_account_key) + blob_name = self._create_block_blob() + blob_client = self.bsc.get_blob_client(self.container_name, blob_name) + resp = blob_client.upload_blob(b'abcde', overwrite=True) + + version_id = resp['version_id'] + self.assertIsNotNone(version_id) + blob_client.upload_blob(b'abc', overwrite=True) + + token = generate_blob_sas( + blob_client.account_name, + blob_client.container_name, + blob_client.blob_name, + version_id=version_id, + account_key=storage_account_key, + permission=BlobSasPermissions(delete=True, delete_version=True), + expiry=datetime.utcnow() + timedelta(hours=1), + ) + + # Act + blob_client_using_sas = BlobClient.from_blob_url(blob_client.url, credential=token) + resp = blob_client_using_sas.delete_blob(version_id=version_id) + + # Assert + self.assertIsNone(resp) + + blob_list = list(self.bsc.get_container_client(self.container_name).list_blobs(include="versions")) + # make sure the deleted version is not in the blob version list + for blob in blob_list: + self.assertNotEqual(blob.version_id, version_id) @GlobalStorageAccountPreparer() def test_delete_blob_with_non_existing_blob(self, resource_group, location, storage_account, storage_account_key): @@ -628,7 +711,6 @@ def test_delete_blob_with_non_existing_blob(self, resource_group, location, stor # Assert - @GlobalStorageAccountPreparer() def test_delete_blob_snapshot(self, resource_group, location, storage_account, storage_account_key): self._setup(storage_account, storage_account_key) @@ -664,6 +746,28 @@ def test_delete_blob_snapshots(self, resource_group, location, storage_account, self.assertEqual(len(blobs), 1) self.assertIsNone(blobs[0].snapshot) + @GlobalStorageAccountPreparer() + def test_create_blob_snapshot_returns_vid(self, resource_group, location, storage_account, storage_account_key): + self._setup(storage_account, storage_account_key) + container = self.bsc.get_container_client(self.container_name) + + blob_name = self._create_block_blob() + blob = self.bsc.get_blob_client(self.container_name, blob_name) + resp = blob.create_snapshot() + blobs = list(container.list_blobs(include='versions')) + + self.assertIsNotNone(resp['version_id']) + # Both create blob and create snapshot will create a new version + self.assertTrue(len(blobs) >= 2) + + # Act + blob.delete_blob(delete_snapshots='include') + + # Assert + blobs = list(container.list_blobs(include=['snapshots', 'versions'])) + # versions are not deleted so blob lists shouldn't be empty + self.assertTrue(len(blobs) > 0) + self.assertIsNone(blobs[0].snapshot) @GlobalStorageAccountPreparer() def test_delete_blob_with_snapshots(self, resource_group, location, storage_account, storage_account_key): @@ -912,6 +1016,28 @@ def test_copy_blob_with_existing_blob(self, resource_group, location, storage_ac copy_content = copyblob.download_blob().readall() self.assertEqual(copy_content, self.byte_data) + @GlobalStorageAccountPreparer() + def test_copy_blob_returns_vid(self, resource_group, location, storage_account, storage_account_key): + self._setup(storage_account, storage_account_key) + blob_name = self._create_block_blob() + blob = self.bsc.get_blob_client(self.container_name, blob_name) + + # Act + sourceblob = '{0}/{1}/{2}'.format( + self.account_url(storage_account, "blob"), self.container_name, blob_name) + + copyblob = self.bsc.get_blob_client(self.container_name, 'blob1copy') + copy = copyblob.start_copy_from_url(sourceblob) + + # Assert + self.assertIsNotNone(copy) + self.assertIsNotNone(copy['version_id']) + self.assertEqual(copy['copy_status'], 'success') + self.assertFalse(isinstance(copy['copy_status'], Enum)) + self.assertIsNotNone(copy['copy_id']) + + copy_content = copyblob.download_blob().readall() + self.assertEqual(copy_content, self.byte_data) @GlobalStorageAccountPreparer() def test_copy_blob_with_blob_tier_specified(self, resource_group, location, storage_account, storage_account_key): diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py index 614b90d411a8..f529de4232c3 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py @@ -71,7 +71,7 @@ async def send(self, request, **config): return response -class StorageCommonBlobTestAsync(AsyncStorageTestCase): +class StorageCommonBlobAsyncTest(AsyncStorageTestCase): # --Helpers----------------------------------------------------------------- async def _setup(self, storage_account, key): @@ -266,6 +266,23 @@ async def test_create_blob_with_special_chars(self, resource_group, location, st content = data.decode('utf-8') self.assertEqual(content, blob_data) + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_create_blob_and_download_blob_with_vid(self, resource_group, location, storage_account, + storage_account_key): + # Arrange + await self._setup(storage_account, storage_account_key) + # Act + for c in '-._ /()$=\',~': + blob_name = '{0}a{0}a{0}'.format(c) + blob_data = c + blob = self.bsc.get_blob_client(self.container_name, blob_name) + resp = await blob.upload_blob(blob_data, length=len(blob_data)) + self.assertIsNotNone(resp.get('version_id')) + + data = await (await blob.download_blob(version_id=resp.get('version_id'))).readall() + content = data.decode('utf-8') + self.assertEqual(content, blob_data) # Assert @GlobalStorageAccountPreparer() @@ -707,6 +724,28 @@ async def test_set_blob_metadata_with_upper_case(self, resource_group, location, self.assertEqual(md['UP'], 'UPval') self.assertFalse('up' in md) + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_set_blob_metadata_returns_vid(self, resource_group, location, storage_account, storage_account_key): + # bug in devtools...converts upper case header to lowercase + # passes live. + # Arrange + await self._setup(storage_account, storage_account_key) + metadata = {'hello': 'world', 'number': '42', 'UP': 'UPval'} + blob_name = await self._create_block_blob() + + # Act + blob = self.bsc.get_blob_client(self.container_name, blob_name) + resp = await blob.set_blob_metadata(metadata) + + # Assert + self.assertIsNotNone(resp['version_id']) + md = (await blob.get_blob_properties()).metadata + self.assertEqual(3, len(md)) + self.assertEqual(md['hello'], 'world') + self.assertEqual(md['number'], '42') + self.assertEqual(md['UP'], 'UPval') + self.assertFalse('up' in md) @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test @@ -722,6 +761,59 @@ async def test_delete_blob_with_existing_blob(self, resource_group, location, st # Assert self.assertIsNone(resp) + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_delete_specific_blob_version(self, resource_group, location, storage_account, storage_account_key): + # Arrange + await self._setup(storage_account, storage_account_key) + blob_name = await self._create_block_blob() + + # Act + blob = self.bsc.get_blob_client(self.container_name, blob_name) + resp = await blob.upload_blob(b'abc', overwrite=True) + + # Assert + self.assertIsNotNone(resp['version_id']) + + # Act + resp = await blob.delete_blob(version_id=resp['version_id']) + blob_list = [] + async for blob in self.bsc.get_container_client(self.container_name).list_blobs(include="versions"): + blob_list.append(blob) + # Assert + self.assertIsNone(resp) + self.assertTrue(len(blob_list) > 0) + + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_delete_blob_version_with_blob_sas(self, resource_group, location, storage_account, storage_account_key): + await self._setup(storage_account, storage_account_key) + blob_name = await self._create_block_blob() + blob_client = self.bsc.get_blob_client(self.container_name, blob_name) + resp = await blob_client.upload_blob(b'abcde', overwrite=True) + + version_id = resp['version_id'] + self.assertIsNotNone(version_id) + await blob_client.upload_blob(b'abc', overwrite=True) + + token = generate_blob_sas( + blob_client.account_name, + blob_client.container_name, + blob_client.blob_name, + version_id=version_id, + account_key=storage_account_key, + permission=BlobSasPermissions(delete=True, delete_version=True), + expiry=datetime.utcnow() + timedelta(hours=1), + ) + + # Act + blob_client_using_sas = BlobClient.from_blob_url(blob_client.url, credential=token) + resp = await blob_client_using_sas.delete_blob(version_id=version_id) + + # Assert + self.assertIsNone(resp) + async for blob in self.bsc.get_container_client(self.container_name).list_blobs(include="versions"): + self.assertNotEqual(blob.version_id, version_id) @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test @@ -782,6 +874,35 @@ async def test_delete_blob_snapshots(self, resource_group, location, storage_acc self.assertEqual(len(blobs), 1) self.assertIsNone(blobs[0].snapshot) + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_create_blob_snapshot_returns_vid(self, resource_group, location, storage_account, storage_account_key): + # Arrange + await self._setup(storage_account, storage_account_key) + container = self.bsc.get_container_client(self.container_name) + + blob_name = await self._create_block_blob() + blob = self.bsc.get_blob_client(self.container_name, blob_name) + resp = await blob.create_snapshot() + blobs = [] + async for b in container.list_blobs(include='snapshots'): + blobs.append(b) + + # Assert + self.assertIsNotNone(resp['version_id']) + # Both create blob and create snapshot will create a new version + self.assertTrue(len(blobs) >= 2) + + # Act + await blob.delete_blob(delete_snapshots='only') + + # Assert + blobs = [] + async for b in container.list_blobs(include=['snapshots', 'versions']): + blobs.append(b) + self.assertTrue(len(blobs) > 0) + self.assertIsNone(blobs[0].snapshot) + @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test @@ -1052,6 +1173,30 @@ async def test_soft_delete_with_leased_blob(self, resource_group, location, stor finally: await self._disable_soft_delete() + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_copy_blob_returns_vid(self, resource_group, location, storage_account, storage_account_key): + # Arrange + await self._setup(storage_account, storage_account_key) + blob_name = await self._create_block_blob() + blob = self.bsc.get_blob_client(self.container_name, blob_name) + + # Act + sourceblob = '{0}/{1}/{2}'.format( + self.account_url(storage_account, "blob"), self.container_name, blob_name) + + copyblob = self.bsc.get_blob_client(self.container_name, 'blob1copy') + copy = await copyblob.start_copy_from_url(sourceblob) + + # Assert + self.assertIsNotNone(copy) + self.assertIsNotNone(copy['version_id']) + self.assertEqual(copy['copy_status'], 'success') + self.assertFalse(isinstance(copy['copy_status'], Enum)) + self.assertIsNotNone(copy['copy_id']) + + copy_content = await (await copyblob.download_blob()).readall() + self.assertEqual(copy_content, self.byte_data) @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test diff --git a/sdk/storage/azure-storage-blob/tests/test_page_blob.py b/sdk/storage/azure-storage-blob/tests/test_page_blob.py index 16954123396e..0b2012e0c1a6 100644 --- a/sdk/storage/azure-storage-blob/tests/test_page_blob.py +++ b/sdk/storage/azure-storage-blob/tests/test_page_blob.py @@ -129,6 +129,21 @@ def test_create_blob(self, resource_group, location, storage_account, storage_ac self.assertIsNotNone(resp.get('last_modified')) self.assertTrue(blob.get_blob_properties()) + @GlobalStorageAccountPreparer() + def test_create_page_blob_returns_vid(self, resource_group, location, storage_account, storage_account_key): + bsc = BlobServiceClient(self.account_url(storage_account, "blob"), credential=storage_account_key, connection_data_block_size=4 * 1024, max_page_size=4 * 1024) + self._setup(bsc) + blob = self._get_blob_reference(bsc) + + # Act + resp = blob.create_page_blob(1024) + + # Assert + self.assertIsNotNone(resp['version_id']) + self.assertIsNotNone(resp.get('etag')) + self.assertIsNotNone(resp.get('last_modified')) + self.assertTrue(blob.get_blob_properties()) + @GlobalStorageAccountPreparer() def test_create_blob_with_metadata(self, resource_group, location, storage_account, storage_account_key): bsc = BlobServiceClient(self.account_url(storage_account, "blob"), credential=storage_account_key, connection_data_block_size=4 * 1024, max_page_size=4 * 1024) diff --git a/sdk/storage/azure-storage-blob/tests/test_page_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_page_blob_async.py index 34485a61bbac..0073cf1080e6 100644 --- a/sdk/storage/azure-storage-blob/tests/test_page_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_page_blob_async.py @@ -57,7 +57,7 @@ async def send(self, request, **config): return response -class StoragePageBlobTestAsync(AsyncStorageTestCase): +class StoragePageBlobAsyncTest(AsyncStorageTestCase): #--Helpers----------------------------------------------------------------- async def _setup(self, bsc): @@ -154,6 +154,22 @@ async def test_create_blob(self, resource_group, location, storage_account, stor self.assertIsNotNone(resp.get('last_modified')) self.assertTrue(await blob.get_blob_properties()) + @GlobalStorageAccountPreparer() + @AsyncStorageTestCase.await_prepared_test + async def test_create_page_blob_returns_vid(self, resource_group, location, storage_account, storage_account_key): + bsc = BlobServiceClient(self.account_url(storage_account, "blob"), credential=storage_account_key, connection_data_block_size=4 * 1024, max_page_size=4 * 1024, transport=AiohttpTestTransport()) + await self._setup(bsc) + blob = self._get_blob_reference(bsc) + + # Act + resp = await blob.create_page_blob(1024) + + # Assert + self.assertIsNotNone(resp['version_id']) + self.assertIsNotNone(resp.get('etag')) + self.assertIsNotNone(resp.get('last_modified')) + self.assertTrue(await blob.get_blob_properties()) + @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test async def test_create_blob_with_metadata(self, resource_group, location, storage_account, storage_account_key): From 6d138dfd967e5e0e8e7b4668eee791334f134197 Mon Sep 17 00:00:00 2001 From: xiafu Date: Thu, 30 Apr 2020 17:34:12 -0700 Subject: [PATCH 2/5] fix test --- ...ommon_blob.test_copy_blob_returns_vid.yaml | 189 ++- ...reate_blob_and_download_blob_with_vid.yaml | 1254 ++++++++++++++++- ...lob.test_delete_specific_blob_version.yaml | 118 +- ...ob.test_set_blob_metadata_returns_vid.yaml | 85 +- ...st_soft_delete_only_snapshots_of_blob.yaml | 460 ------ ...reate_blob_and_download_blob_with_vid.yaml | 543 ++++--- ...ync.test_delete_specific_blob_version.yaml | 117 +- .../tests/test_append_blob_async.py | 4 +- .../tests/test_common_blob.py | 10 +- .../tests/test_common_blob_async.py | 9 +- 10 files changed, 1867 insertions(+), 922 deletions(-) delete mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_soft_delete_only_snapshots_of_blob.yaml diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_copy_blob_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_copy_blob_returns_vid.yaml index 229c2b984404..868387dd9d1d 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_copy_blob_returns_vid.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_copy_blob_returns_vid.yaml @@ -13,7 +13,7 @@ interactions: User-Agent: - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 17:46:39 GMT + - Fri, 01 May 2020 00:18:31 GMT x-ms-version: - '2019-10-10' method: PUT @@ -21,14 +21,14 @@ interactions: response: body: string: "\uFEFFContainerAlreadyExistsThe - specified container already exists.\nRequestId:88fc1367-e01e-005e-344e-1e3122000000\nTime:2020-04-29T17:46:39.7771444Z" + specified container already exists.\nRequestId:10a87b08-001e-009d-6d4e-1f2878000000\nTime:2020-05-01T00:18:31.5241386Z" headers: content-length: - '230' content-type: - application/xml date: - - Wed, 29 Apr 2020 17:46:38 GMT + - Fri, 01 May 2020 00:18:31 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-error-code: @@ -38,6 +38,42 @@ interactions: status: code: 409 message: The specified container already exists. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 01 May 2020 00:18:31 GMT + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer853711c1/blob853711c1 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Fri, 01 May 2020 00:18:31 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'false' + x-ms-version: + - '2019-10-10' + status: + code: 202 + message: Accepted - request: body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa headers: @@ -58,29 +94,156 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 17:46:39 GMT + - Fri, 01 May 2020 00:18:31 GMT x-ms-version: - '2019-10-10' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer853711c1/blob853711c1 response: body: - string: "\uFEFFBlobAlreadyExistsThe - specified blob already exists.\nRequestId:88fc1386-e01e-005e-4d4e-1e3122000000\nTime:2020-04-29T17:46:39.8972299Z" + string: '' headers: content-length: - - '220' - content-type: + - '0' + content-md5: + - yaNM/IXZgmmMasifdgcavQ== + date: + - Fri, 01 May 2020 00:18:31 GMT + etag: + - '"0x8D7ED652E14C0CC"' + last-modified: + - Fri, 01 May 2020 00:18:31 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ov8U1LLnyKc= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-05-01T00:18:31.6806348Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-copy-source: + - https://cdm03r01aversioning16.blob.core.windows.net/utcontainer853711c1/blob853711c1 + x-ms-date: + - Fri, 01 May 2020 00:18:31 GMT + x-ms-version: + - '2019-10-10' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer853711c1/blob1copy + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Fri, 01 May 2020 00:18:31 GMT + etag: + - '"0x8D7ED652E253E87"' + last-modified: + - Fri, 01 May 2020 00:18:31 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-copy-id: + - a9cc67cf-6060-47dc-8627-b922877d6713 + x-ms-copy-status: + - success + x-ms-version: + - '2019-10-10' + x-ms-version-id: + - '2020-05-01T00:18:31.7907122Z' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 01 May 2020 00:18:31 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-10-10' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer853711c1/blob1copy + response: + body: + string: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + access-control-expose-headers: + - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,x-ms-copy-id,x-ms-copy-source,x-ms-copy-status,x-ms-copy-progress,x-ms-copy-completion-time,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding + content-length: + - '1024' + content-range: + - bytes 0-1023/1024 + content-type: + - application/octet-stream date: - - Wed, 29 Apr 2020 17:46:39 GMT + - Fri, 01 May 2020 00:18:31 GMT + etag: + - '"0x8D7ED652E253E87"' + last-modified: + - Fri, 01 May 2020 00:18:31 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-error-code: - - BlobAlreadyExists + x-ms-blob-content-md5: + - yaNM/IXZgmmMasifdgcavQ== + x-ms-blob-type: + - BlockBlob + x-ms-copy-completion-time: + - Fri, 01 May 2020 00:18:31 GMT + x-ms-copy-id: + - a9cc67cf-6060-47dc-8627-b922877d6713 + x-ms-copy-progress: + - 1024/1024 + x-ms-copy-source: + - https://cdm03r01aversioning16.blob.core.windows.net/utcontainer853711c1/blob853711c1 + x-ms-copy-status: + - success + x-ms-creation-time: + - Wed, 29 Apr 2020 17:44:04 GMT + x-ms-is-current-version: + - 'true' + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' x-ms-version: - '2019-10-10' + x-ms-version-id: + - '2020-05-01T00:18:31.7907122Z' status: - code: 409 - message: The specified blob already exists. + code: 206 + message: Partial Content version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_and_download_blob_with_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_and_download_blob_with_vid.yaml index 48566159d5de..10c7c503d76b 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_and_download_blob_with_vid.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_create_blob_and_download_blob_with_vid.yaml @@ -11,35 +11,35 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:51:39 GMT + - Wed, 13 May 2020 01:09:25 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainere8eb186a?timeout=5&restype=container response: body: string: "\uFEFFContainerAlreadyExistsThe - specified container already exists.\nRequestId:1997df1c-601e-007f-5578-1e1559000000\nTime:2020-04-29T22:51:39.5986512Z" + specified container already exists.\nRequestId:67479f05-f01e-0052-1bc3-28a62a000000\nTime:2020-05-13T01:09:25.3275138Z" headers: content-length: - '230' content-type: - application/xml date: - - Wed, 29 Apr 2020 22:51:39 GMT + - Wed, 13 May 2020 01:09:24 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-error-code: - ContainerAlreadyExists x-ms-version: - - '2019-10-10' + - '2019-12-12' status: code: 409 message: The specified container already exists. - request: - body: '?' + body: '-' headers: Accept: - '*/*' @@ -52,15 +52,15 @@ interactions: Content-Type: - application/octet-stream User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:51:39 GMT + - Wed, 13 May 2020 01:09:25 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT - uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%3Fa%3Fa%3F + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/-a-a- response: body: string: '' @@ -68,23 +68,23 @@ interactions: content-length: - '0' content-md5: - - 0UV7csP7MjomcRJa7z6rXQ== + - M21evFQ2U05h0W5j3fyjJw== date: - - Wed, 29 Apr 2020 22:51:39 GMT + - Wed, 13 May 2020 01:09:24 GMT etag: - - '"0x8D7EC8FE1132DE8"' + - '"0x8D7F6DA47307745"' last-modified: - - Wed, 29 Apr 2020 22:51:39 GMT + - Wed, 13 May 2020 01:09:25 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: - - 2uQl1pRJNrI= + - qZnwPj9XCzQ= x-ms-request-server-encrypted: - 'true' x-ms-version: - - '2019-10-10' + - '2019-12-12' x-ms-version-id: - - '2020-04-29T22:51:39.6833528Z' + - '2020-05-13T01:09:25.3896556Z' status: code: 201 message: Created @@ -98,25 +98,21 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:51:40 GMT + - Wed, 13 May 2020 01:09:25 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%3Fa%3Fa%3F?versionid=2020-04-29T22%3A51%3A39.6833528Z + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/-a-a-?versionid=2020-05-13T01%3A09%3A25.3896556Z response: body: - string: '?' + string: '-' headers: accept-ranges: - bytes - access-control-allow-origin: - - '*' - access-control-expose-headers: - - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: - '1' content-range: @@ -124,27 +120,1217 @@ interactions: content-type: - application/octet-stream date: - - Wed, 29 Apr 2020 22:51:40 GMT + - Wed, 13 May 2020 01:09:25 GMT etag: - - '"0x8D7EC8FE1132DE8"' + - '"0x8D7F6DA47307745"' last-modified: - - Wed, 29 Apr 2020 22:51:39 GMT + - Wed, 13 May 2020 01:09:25 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin x-ms-blob-content-md5: - - 0UV7csP7MjomcRJa7z6rXQ== + - M21evFQ2U05h0W5j3fyjJw== x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Wed, 29 Apr 2020 22:51:39 GMT + - Wed, 13 May 2020 01:09:25 GMT x-ms-is-current-version: - 'true' x-ms-server-encrypted: - 'true' x-ms-version: - - '2019-10-10' + - '2019-12-12' x-ms-version-id: - - '2020-04-29T22:51:39.6833528Z' + - '2020-05-13T01:09:25.3896556Z' + status: + code: 206 + message: Partial Content +- request: + body: . + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/.a.a. + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - UFjxr4OIYz9gnK23WnXcnQ== + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47436682"' + last-modified: + - Wed, 13 May 2020 01:09:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - IgKubmdGuLU= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:25.5127442Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/.a.a.?versionid=2020-05-13T01%3A09%3A25.5127442Z + response: + body: + string: . + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47436682"' + last-modified: + - Wed, 13 May 2020 01:09:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - UFjxr4OIYz9gnK23WnXcnQ== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:25.5127442Z' + status: + code: 206 + message: Partial Content +- request: + body: _ + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/_a_a_ + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - sUp7gFnZwFWVTJJnTOYAMg== + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA4756CB00"' + last-modified: + - Wed, 13 May 2020 01:09:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - txY3vV5trZQ= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:25.6398352Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/_a_a_?versionid=2020-05-13T01%3A09%3A25.6398352Z + response: + body: + string: _ + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA4756CB00"' + last-modified: + - Wed, 13 May 2020 01:09:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - sUp7gFnZwFWVTJJnTOYAMg== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:25.6398352Z' + status: + code: 206 + message: Partial Content +- request: + body: ' ' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%20a%20a%20 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - chXunH2dwinSkhpA6JnsXw== + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47685A6C"' + last-modified: + - Wed, 13 May 2020 01:09:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - KliQ/jCuGyQ= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:25.7549180Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%20a%20a%20?versionid=2020-05-13T01%3A09%3A25.7549180Z + response: + body: + string: ' ' + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47685A6C"' + last-modified: + - Wed, 13 May 2020 01:09:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - chXunH2dwinSkhpA6JnsXw== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:25.7549180Z' + status: + code: 206 + message: Partial Content +- request: + body: / + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/a/a/ + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - ZmbNdvlpVkaee+OddQzH2Q== + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA477A8635"' + last-modified: + - Wed, 13 May 2020 01:09:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - W4ubXq+21so= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:25.8740037Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/a/a/?versionid=2020-05-13T01%3A09%3A25.8740037Z + response: + body: + string: / + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA477A8635"' + last-modified: + - Wed, 13 May 2020 01:09:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - ZmbNdvlpVkaee+OddQzH2Q== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:25 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:25.8740037Z' + status: + code: 206 + message: Partial Content +- request: + body: ( + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%28a%28a%28 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - hMQEc0FMry7Up7EoPki79A== + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47920A2F"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - X6aEloRCB4I= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.0281151Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%28a%28a%28?versionid=2020-05-13T01%3A09%3A26.0281151Z + response: + body: + string: ( + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47920A2F"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - hMQEc0FMry7Up7EoPki79A== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.0281151Z' + status: + code: 206 + message: Partial Content +- request: + body: ) + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%29a%29a%29 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - k3HXouOuhqAKq0dx450lXQ== + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47AA78AB"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - Ji+xpkyyaf0= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.1882299Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%29a%29a%29?versionid=2020-05-13T01%3A09%3A26.1882299Z + response: + body: + string: ) + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47AA78AB"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - k3HXouOuhqAKq0dx450lXQ== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.1882299Z' + status: + code: 206 + message: Partial Content +- request: + body: $ + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%24a%24a%24 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - w+l91ul/tRJWiMl/NnIMvg== + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47C1392E"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - pe7RZkNLee0= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.3373374Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%24a%24a%24?versionid=2020-05-13T01%3A09%3A26.3373374Z + response: + body: + string: $ + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:25 GMT + etag: + - '"0x8D7F6DA47C1392E"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - w+l91ul/tRJWiMl/NnIMvg== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.3373374Z' + status: + code: 206 + message: Partial Content +- request: + body: '=' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%3Da%3Da%3D + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - Q+w+Xe5ucGr3dm//6lEnIQ== + date: + - Wed, 13 May 2020 01:09:26 GMT + etag: + - '"0x8D7F6DA47DA1CE5"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - KPZOtgSo60w= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.5014545Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%3Da%3Da%3D?versionid=2020-05-13T01%3A09%3A26.5014545Z + response: + body: + string: '=' + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:26 GMT + etag: + - '"0x8D7F6DA47DA1CE5"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - Q+w+Xe5ucGr3dm//6lEnIQ== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.5014545Z' + status: + code: 206 + message: Partial Content +- request: + body: '''' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%27a%27a%27 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - NZDLivC7ueeMNDtSuTdzyQ== + date: + - Wed, 13 May 2020 01:09:26 GMT + etag: + - '"0x8D7F6DA47EEE138"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - LnWPNhtaymw= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.6365512Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%27a%27a%27?versionid=2020-05-13T01%3A09%3A26.6365512Z + response: + body: + string: '''' + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:26 GMT + etag: + - '"0x8D7F6DA47EEE138"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - NZDLivC7ueeMNDtSuTdzyQ== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.6365512Z' + status: + code: 206 + message: Partial Content +- request: + body: ',' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%2Ca%2Ca%2C + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - wMtfD88jmrPZwfzTH/8e/A== + date: + - Wed, 13 May 2020 01:09:26 GMT + etag: + - '"0x8D7F6DA48068C36"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - 0BDFDvenZUs= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.7916614Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/%2Ca%2Ca%2C?versionid=2020-05-13T01%3A09%3A26.7916614Z + response: + body: + string: ',' + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:26 GMT + etag: + - '"0x8D7F6DA48068C36"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - wMtfD88jmrPZwfzTH/8e/A== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.7916614Z' + status: + code: 206 + message: Partial Content +- request: + body: '~' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/~a~a~ + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - THYfFw4BaDb/hEmCArmYJw== + date: + - Wed, 13 May 2020 01:09:26 GMT + etag: + - '"0x8D7F6DA481A3EDF"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - zEB+nOFjAho= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.9207535Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainere8eb186a/~a~a~?versionid=2020-05-13T01%3A09%3A26.9207535Z + response: + body: + string: '~' + headers: + accept-ranges: + - bytes + content-length: + - '1' + content-range: + - bytes 0-0/1 + content-type: + - application/octet-stream + date: + - Wed, 13 May 2020 01:09:26 GMT + etag: + - '"0x8D7F6DA481A3EDF"' + last-modified: + - Wed, 13 May 2020 01:09:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - THYfFw4BaDb/hEmCArmYJw== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 May 2020 01:09:26 GMT + x-ms-is-current-version: + - 'true' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + x-ms-version-id: + - '2020-05-13T01:09:26.9207535Z' status: code: 206 message: Partial Content diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_specific_blob_version.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_specific_blob_version.yaml index cf2846ac7c0a..8f0fef5246bd 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_specific_blob_version.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_delete_specific_blob_version.yaml @@ -11,35 +11,35 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Thu, 30 Apr 2020 00:24:38 GMT + - Wed, 13 May 2020 01:10:48 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer884146f?timeout=5&restype=container response: body: string: "\uFEFFContainerAlreadyExistsThe - specified container already exists.\nRequestId:393c0c5f-c01e-0059-7f85-1e5d41000000\nTime:2020-04-30T00:24:38.6738281Z" + specified container already exists.\nRequestId:ad586d74-f01e-007d-21c3-28abe1000000\nTime:2020-05-13T01:10:49.2793420Z" headers: content-length: - '230' content-type: - application/xml date: - - Thu, 30 Apr 2020 00:24:38 GMT + - Wed, 13 May 2020 01:10:48 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-error-code: - ContainerAlreadyExists x-ms-version: - - '2019-10-10' + - '2019-12-12' status: code: 409 message: The specified container already exists. - request: - body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + body: abc headers: Accept: - '*/*' @@ -48,21 +48,19 @@ interactions: Connection: - keep-alive Content-Length: - - '1024' + - '3' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Thu, 30 Apr 2020 00:24:39 GMT + - Wed, 13 May 2020 01:10:49 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer884146f/blob884146f + uri: https://storagename.blob.core.windows.net/utcontainer884146f/blobtodelete884146f response: body: string: '' @@ -70,23 +68,23 @@ interactions: content-length: - '0' content-md5: - - yaNM/IXZgmmMasifdgcavQ== + - kAFQmDzST7DWlj99KOF/cg== date: - - Thu, 30 Apr 2020 00:24:39 GMT + - Wed, 13 May 2020 01:10:48 GMT etag: - - '"0x8D7EC9CDF2E7E90"' + - '"0x8D7F6DA793A8C89"' last-modified: - - Thu, 30 Apr 2020 00:24:39 GMT + - Wed, 13 May 2020 01:10:49 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: - - ov8U1LLnyKc= + - 6/rBP7vK5QU= x-ms-request-server-encrypted: - 'true' x-ms-version: - - '2019-10-10' + - '2019-12-12' x-ms-version-id: - - '2020-04-30T00:24:39.9634064Z' + - '2020-05-13T01:10:49.3408156Z' status: code: 201 message: Created @@ -104,15 +102,15 @@ interactions: Content-Type: - application/octet-stream User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Thu, 30 Apr 2020 00:24:40 GMT + - Wed, 13 May 2020 01:10:49 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer884146f/blob884146f + uri: https://storagename.blob.core.windows.net/utcontainer884146f/blobtodelete884146f response: body: string: '' @@ -122,11 +120,11 @@ interactions: content-md5: - kAFQmDzST7DWlj99KOF/cg== date: - - Thu, 30 Apr 2020 00:24:39 GMT + - Wed, 13 May 2020 01:10:48 GMT etag: - - '"0x8D7EC9CDF3A196E"' + - '"0x8D7F6DA7943DD08"' last-modified: - - Thu, 30 Apr 2020 00:24:40 GMT + - Wed, 13 May 2020 01:10:49 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: @@ -134,9 +132,9 @@ interactions: x-ms-request-server-encrypted: - 'true' x-ms-version: - - '2019-10-10' + - '2019-12-12' x-ms-version-id: - - '2020-04-30T00:24:40.0414613Z' + - '2020-05-13T01:10:49.4018584Z' status: code: 201 message: Created @@ -152,13 +150,13 @@ interactions: Content-Length: - '0' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Thu, 30 Apr 2020 00:24:40 GMT + - Wed, 13 May 2020 01:10:49 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: DELETE - uri: https://storagename.blob.core.windows.net/utcontainer884146f/blob884146f + uri: https://storagename.blob.core.windows.net/utcontainer884146f/blobtodelete884146f?versionid=2020-05-13T01%3A10%3A49.3408156Z response: body: string: '' @@ -166,13 +164,13 @@ interactions: content-length: - '0' date: - - Thu, 30 Apr 2020 00:24:40 GMT + - Wed, 13 May 2020 01:10:48 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-delete-type-permanent: - - 'false' + - 'true' x-ms-version: - - '2019-10-10' + - '2019-12-12' status: code: 202 message: Accepted @@ -186,11 +184,11 @@ interactions: Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Thu, 30 Apr 2020 00:24:41 GMT + - Wed, 13 May 2020 01:10:49 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET uri: https://storagename.blob.core.windows.net/utcontainer884146f?include=versions&restype=container&comp=list response: @@ -304,23 +302,49 @@ interactions: 30 Apr 2020 00:24:40 GMTThu, 30 Apr 2020 00:24:40 GMT0x8D7EC9CDF3A196E3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueBlockBlobHottruetrueblob884146f2020-05-01T00:19:51.5029880ZFri, + 01 May 2020 00:19:51 GMTFri, 01 May 2020 00:19:51 + GMT0x8D7ED655DA886651024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-05-01T00:19:51.5810424ZFri, + 01 May 2020 00:19:51 GMTFri, 01 May 2020 00:19:51 + GMT0x8D7ED655DB46F683application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-05-01T00:20:43.5567580ZFri, + 01 May 2020 00:20:43 GMTFri, 01 May 2020 00:20:43 + GMT0x8D7ED657CAF73DC1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-05-01T00:20:43.6598307ZFri, + 01 May 2020 00:20:43 GMTFri, 01 May 2020 00:20:43 + GMT0x8D7ED657CBF07133application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblob884146f2020-05-01T00:21:03.8121508ZFri, + 01 May 2020 00:21:03 GMTFri, 01 May 2020 00:21:03 + GMT0x8D7ED6588C22E241024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob884146f2020-05-01T00:21:03.8811993ZtrueFri, + 01 May 2020 00:21:03 GMTFri, 01 May 2020 00:21:03 + GMT0x8D7ED6588CC90493application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottrueunlockedavailabletrueblobtodelete884146f2020-05-13T01:10:49.4018584ZtrueWed, + 13 May 2020 01:10:49 GMTWed, 13 May 2020 01:10:49 + GMT0x8D7F6DA7943DD083application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottrueunlockedavailabletrue" headers: - access-control-allow-origin: - - '*' - access-control-expose-headers: - - x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding content-type: - application/xml date: - - Thu, 30 Apr 2020 00:24:42 GMT + - Wed, 13 May 2020 01:10:48 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: - chunked + vary: + - Origin x-ms-version: - - '2019-10-10' + - '2019-12-12' status: code: 200 message: OK diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_set_blob_metadata_returns_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_set_blob_metadata_returns_vid.yaml index efc35ee561c2..818fa18a3a2e 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_set_blob_metadata_returns_vid.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_set_blob_metadata_returns_vid.yaml @@ -13,11 +13,50 @@ interactions: User-Agent: - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:21 GMT x-ms-version: - '2019-10-10' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer1f2114f2?timeout=5&restype=container + response: + body: + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:1bfa3357-f01e-006d-394e-1f6e89000000\nTime:2020-05-01T00:21:21.7342715Z" + headers: + content-length: + - '230' + content-type: + - application/xml + date: + - Fri, 01 May 2020 00:21:20 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ContainerAlreadyExists + x-ms-version: + - '2019-10-10' + status: + code: 409 + message: The specified container already exists. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Fri, 01 May 2020 00:21:21 GMT + x-ms-version: + - '2019-10-10' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer1f2114f2/blob1f2114f2 response: body: string: '' @@ -25,18 +64,16 @@ interactions: content-length: - '0' date: - - Wed, 29 Apr 2020 17:38:29 GMT - etag: - - '"0x8D7EC64215B5716"' - last-modified: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:21 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'false' x-ms-version: - '2019-10-10' status: - code: 201 - message: Created + code: 202 + message: Accepted - request: body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa headers: @@ -57,7 +94,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:22 GMT x-ms-version: - '2019-10-10' method: PUT @@ -71,11 +108,11 @@ interactions: content-md5: - yaNM/IXZgmmMasifdgcavQ== date: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:21 GMT etag: - - '"0x8D7EC642169F896"' + - '"0x8D7ED6593A7CA6B"' last-modified: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:22 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: @@ -85,7 +122,7 @@ interactions: x-ms-version: - '2019-10-10' x-ms-version-id: - - '2020-04-29T17:38:29.7702313Z' + - '2020-05-01T00:21:22.0941419Z' status: code: 201 message: Created @@ -103,7 +140,7 @@ interactions: User-Agent: - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:22 GMT x-ms-meta-UP: - UPval x-ms-meta-hello: @@ -121,11 +158,11 @@ interactions: content-length: - '0' date: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:21 GMT etag: - - '"0x8D7EC642177416D"' + - '"0x8D7ED6593B3B372"' last-modified: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:22 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-request-server-encrypted: @@ -133,7 +170,7 @@ interactions: x-ms-version: - '2019-10-10' x-ms-version-id: - - '2020-04-29T17:38:29.8582928Z' + - '2020-05-01T00:21:22.1741977Z' status: code: 200 message: OK @@ -149,7 +186,7 @@ interactions: User-Agent: - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:22 GMT x-ms-version: - '2019-10-10' method: HEAD @@ -171,11 +208,11 @@ interactions: content-type: - application/octet-stream date: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:21 GMT etag: - - '"0x8D7EC642177416D"' + - '"0x8D7ED6593B3B372"' last-modified: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:22 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-access-tier: @@ -185,7 +222,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Wed, 29 Apr 2020 17:38:29 GMT + - Fri, 01 May 2020 00:21:22 GMT x-ms-is-current-version: - 'true' x-ms-lease-state: @@ -203,7 +240,7 @@ interactions: x-ms-version: - '2019-10-10' x-ms-version-id: - - '2020-04-29T17:38:29.8582928Z' + - '2020-05-01T00:21:22.1741977Z' status: code: 200 message: OK diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_soft_delete_only_snapshots_of_blob.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_soft_delete_only_snapshots_of_blob.yaml deleted file mode 100644 index 4cd451e27725..000000000000 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_soft_delete_only_snapshots_of_blob.yaml +++ /dev/null @@ -1,460 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:14:49 GMT - x-ms-version: - - '2019-02-02' - method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer91651717?timeout=5&restype=container - response: - body: - string: '' - headers: - content-length: - - '0' - date: - - Fri, 25 Oct 2019 18:14:49 GMT - etag: - - '"0x8D759773988C17C"' - last-modified: - - Fri, 25 Oct 2019 18:14:49 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-version: - - '2019-02-02' - status: - code: 201 - message: Created -- request: - body: ' - - true2' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '176' - Content-Type: - - application/xml; charset=utf-8 - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:14:50 GMT - x-ms-version: - - '2019-02-02' - method: PUT - uri: https://storagename.blob.core.windows.net/?restype=service&comp=properties - response: - body: - string: '' - headers: - content-length: - - '0' - date: - - Fri, 25 Oct 2019 18:14:49 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-version: - - '2019-02-02' - status: - code: 202 - message: Accepted -- request: - body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1024' - Content-Type: - - application/octet-stream - If-None-Match: - - '*' - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-blob-type: - - BlockBlob - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-version: - - '2019-02-02' - method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717 - response: - body: - string: '' - headers: - content-length: - - '0' - content-md5: - - yaNM/IXZgmmMasifdgcavQ== - date: - - Fri, 25 Oct 2019 18:15:19 GMT - etag: - - '"0x8D759774B7B6438"' - last-modified: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-content-crc64: - - ov8U1LLnyKc= - x-ms-request-server-encrypted: - - 'true' - x-ms-version: - - '2019-02-02' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-version: - - '2019-02-02' - method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717?comp=snapshot - response: - body: - string: '' - headers: - content-length: - - '0' - date: - - Fri, 25 Oct 2019 18:15:19 GMT - etag: - - '"0x8D759774B7B6438"' - last-modified: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-request-server-encrypted: - - 'false' - x-ms-snapshot: - - '2019-10-25T18:15:19.9153022Z' - x-ms-version: - - '2019-02-02' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-version: - - '2019-02-02' - method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717?comp=snapshot - response: - body: - string: '' - headers: - content-length: - - '0' - date: - - Fri, 25 Oct 2019 18:15:19 GMT - etag: - - '"0x8D759774B7B6438"' - last-modified: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-request-server-encrypted: - - 'false' - x-ms-snapshot: - - '2019-10-25T18:15:19.9753445Z' - x-ms-version: - - '2019-02-02' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-delete-snapshots: - - only - x-ms-version: - - '2019-02-02' - method: DELETE - uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717 - response: - body: - string: '' - headers: - content-length: - - '0' - date: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-delete-type-permanent: - - 'false' - x-ms-version: - - '2019-02-02' - status: - code: 202 - message: Accepted -- request: - body: null - headers: - Accept: - - application/xml - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-version: - - '2019-02-02' - method: GET - uri: https://storagename.blob.core.windows.net/utcontainer91651717?include=snapshots%2Cdeleted&restype=container&comp=list - response: - body: - string: "\uFEFFblob916517172019-10-25T18:15:19.9153022ZtrueFri, - 25 Oct 2019 18:15:19 GMTFri, 25 Oct 2019 18:15:19 - GMT0x8D759774B7B64381024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueFri, - 25 Oct 2019 18:15:20 GMT1blob916517172019-10-25T18:15:19.9753445ZtrueFri, - 25 Oct 2019 18:15:19 GMTFri, 25 Oct 2019 18:15:19 - GMT0x8D759774B7B64381024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueFri, - 25 Oct 2019 18:15:20 GMT1blob91651717Fri, - 25 Oct 2019 18:15:19 GMTFri, 25 Oct 2019 18:15:19 - GMT0x8D759774B7B64381024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" - headers: - content-type: - - application/xml - date: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - transfer-encoding: - - chunked - x-ms-version: - - '2019-02-02' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/xml - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-version: - - '2019-02-02' - method: GET - uri: https://storagename.blob.core.windows.net/utcontainer91651717?include=snapshots&restype=container&comp=list - response: - body: - string: "\uFEFFblob91651717Fri, - 25 Oct 2019 18:15:19 GMTFri, 25 Oct 2019 18:15:19 - GMT0x8D759774B7B64381024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" - headers: - content-type: - - application/xml - date: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - transfer-encoding: - - chunked - x-ms-version: - - '2019-02-02' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '0' - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-version: - - '2019-02-02' - method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717?comp=undelete - response: - body: - string: '' - headers: - content-length: - - '0' - date: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-version: - - '2019-02-02' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/xml - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-version: - - '2019-02-02' - method: GET - uri: https://storagename.blob.core.windows.net/utcontainer91651717?include=snapshots%2Cdeleted&restype=container&comp=list - response: - body: - string: "\uFEFFblob916517172019-10-25T18:15:19.9153022ZFri, - 25 Oct 2019 18:15:19 GMTFri, 25 Oct 2019 18:15:19 - GMT0x8D759774B7B64381024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob916517172019-10-25T18:15:19.9753445ZFri, - 25 Oct 2019 18:15:19 GMTFri, 25 Oct 2019 18:15:19 - GMT0x8D759774B7B64381024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob91651717Fri, - 25 Oct 2019 18:15:19 GMTFri, 25 Oct 2019 18:15:19 - GMT0x8D759774B7B64381024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" - headers: - content-type: - - application/xml - date: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - transfer-encoding: - - chunked - x-ms-version: - - '2019-02-02' - status: - code: 200 - message: OK -- request: - body: ' - - false' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '163' - Content-Type: - - application/xml; charset=utf-8 - User-Agent: - - azsdk-python-storage-blob/12.0.0b5 Python/3.6.3 (Windows-10-10.0.18362-SP0) - x-ms-date: - - Fri, 25 Oct 2019 18:15:20 GMT - x-ms-version: - - '2019-02-02' - method: PUT - uri: https://storagename.blob.core.windows.net/?restype=service&comp=properties - response: - body: - string: '' - headers: - content-length: - - '0' - date: - - Fri, 25 Oct 2019 18:15:19 GMT - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-version: - - '2019-02-02' - status: - code: 202 - message: Accepted -version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_and_download_blob_with_vid.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_and_download_blob_with_vid.yaml index 8115a42294ac..bb1432d6acd0 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_and_download_blob_with_vid.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_create_blob_and_download_blob_with_vid.yaml @@ -3,26 +3,27 @@ interactions: body: null headers: User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:20 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7?timeout=5&restype=container response: body: - string: '' + string: "\uFEFFContainerAlreadyExistsThe + specified container already exists.\nRequestId:fc779fd6-501e-0039-5abc-2821de000000\nTime:2020-05-13T00:18:26.4855486Z" headers: - content-length: '0' - date: Wed, 29 Apr 2020 22:32:20 GMT - etag: '"0x8D7EC8D2E6BB940"' - last-modified: Wed, 29 Apr 2020 22:32:20 GMT + content-length: '230' + content-type: application/xml + date: Wed, 13 May 2020 00:18:25 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-version: '2019-10-10' + x-ms-error-code: ContainerAlreadyExists + x-ms-version: '2019-12-12' status: - code: 201 - message: Created + code: 409 + message: The specified container already exists. url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7?timeout=5&restype=container - request: body: '-' @@ -31,16 +32,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/-a-a- response: @@ -49,14 +48,14 @@ interactions: headers: content-length: '0' content-md5: M21evFQ2U05h0W5j3fyjJw== - date: Wed, 29 Apr 2020 22:32:20 GMT - etag: '"0x8D7EC8D2E771542"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:25 GMT + etag: '"0x8D7F6D327FB5F4C"' + last-modified: Wed, 13 May 2020 00:18:26 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: qZnwPj9XCzQ= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.0314562Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:26.5542236Z' status: code: 201 message: Created @@ -67,40 +66,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/-a-a-?versionid=2020-04-29T22:32:21.0314562Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/-a-a-?versionid=2020-05-13T00:18:26.5542236Z response: body: string: '-' headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2E771542"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D327FB5F4C"' + last-modified: Wed, 13 May 2020 00:18:26 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: M21evFQ2U05h0W5j3fyjJw== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:26 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.0314562Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:26.5542236Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/-a-a-?versionid=2020-04-29T22:32:21.0314562Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/-a-a-?versionid=2020-05-13T00:18:26.5542236Z - request: body: . headers: @@ -108,16 +106,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/.a.a. response: @@ -126,14 +122,14 @@ interactions: headers: content-length: '0' content-md5: UFjxr4OIYz9gnK23WnXcnQ== - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2E8B3D27"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D3280D3CE6"' + last-modified: Wed, 13 May 2020 00:18:26 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: IgKubmdGuLU= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.1635495Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:26.6713078Z' status: code: 201 message: Created @@ -144,40 +140,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/.a.a.?versionid=2020-04-29T22:32:21.1635495Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/.a.a.?versionid=2020-05-13T00:18:26.6713078Z response: body: string: . headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2E8B3D27"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D3280D3CE6"' + last-modified: Wed, 13 May 2020 00:18:26 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: UFjxr4OIYz9gnK23WnXcnQ== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:26 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.1635495Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:26.6713078Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/.a.a.?versionid=2020-04-29T22:32:21.1635495Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/.a.a.?versionid=2020-05-13T00:18:26.6713078Z - request: body: _ headers: @@ -185,16 +180,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/_a_a_ response: @@ -203,14 +196,14 @@ interactions: headers: content-length: '0' content-md5: sUp7gFnZwFWVTJJnTOYAMg== - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2E9D68DB"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D3281ECC52"' + last-modified: Wed, 13 May 2020 00:18:26 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: txY3vV5trZQ= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.2826331Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:26.7873909Z' status: code: 201 message: Created @@ -221,40 +214,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/_a_a_?versionid=2020-04-29T22:32:21.2826331Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/_a_a_?versionid=2020-05-13T00:18:26.7873909Z response: body: string: _ headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2E9D68DB"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D3281ECC52"' + last-modified: Wed, 13 May 2020 00:18:26 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: sUp7gFnZwFWVTJJnTOYAMg== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:26 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.2826331Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:26.7873909Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/_a_a_?versionid=2020-04-29T22:32:21.2826331Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/_a_a_?versionid=2020-05-13T00:18:26.7873909Z - request: body: ' ' headers: @@ -262,16 +254,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20 response: @@ -280,14 +270,14 @@ interactions: headers: content-length: '0' content-md5: chXunH2dwinSkhpA6JnsXw== - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2EAD9864"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D32830D100"' + last-modified: Wed, 13 May 2020 00:18:26 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: KliQ/jCuGyQ= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.3887076Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:26.9054759Z' status: code: 201 message: Created @@ -298,40 +288,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:26 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20?versionid=2020-04-29T22:32:21.3887076Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20?versionid=2020-05-13T00:18:26.9054759Z response: body: string: ' ' headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2EAD9864"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D32830D100"' + last-modified: Wed, 13 May 2020 00:18:26 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: chXunH2dwinSkhpA6JnsXw== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:26 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.3887076Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:26.9054759Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20?versionid=2020-04-29T22:32:21.3887076Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/%20a%20a%20?versionid=2020-05-13T00:18:26.9054759Z - request: body: / headers: @@ -339,76 +328,73 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%2Fa%2Fa%2F + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/a/a/ response: body: string: '' headers: content-length: '0' content-md5: ZmbNdvlpVkaee+OddQzH2Q== - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2EBF00B1"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D328426070"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: W4ubXq+21so= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.5027889Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.0195584Z' status: code: 201 message: Created - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/%2Fa%2Fa%2F + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7//a/a/ - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/%2Fa%2Fa%2F?versionid=2020-04-29T22:32:21.5027889Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/a/a/?versionid=2020-05-13T00:18:27.0195584Z response: body: string: / headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2EBF00B1"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D328426070"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: ZmbNdvlpVkaee+OddQzH2Q== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:27 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.5027889Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.0195584Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/%2Fa%2Fa%2F?versionid=2020-04-29T22:32:21.5027889Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7//a/a/?versionid=2020-05-13T00:18:27.0195584Z - request: body: ( headers: @@ -416,16 +402,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/(a(a( response: @@ -434,14 +418,14 @@ interactions: headers: content-length: '0' content-md5: hMQEc0FMry7Up7EoPki79A== - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2ED12C62"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D328532C6D"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: X6aEloRCB4I= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.6228729Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.1306388Z' status: code: 201 message: Created @@ -452,40 +436,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/(a(a(?versionid=2020-04-29T22:32:21.6228729Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/(a(a(?versionid=2020-05-13T00:18:27.1306388Z response: body: string: ( headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2ED12C62"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D328532C6D"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: hMQEc0FMry7Up7EoPki79A== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:27 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.6228729Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.1306388Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/(a(a(?versionid=2020-04-29T22:32:21.6228729Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/(a(a(?versionid=2020-05-13T00:18:27.1306388Z - request: body: ) headers: @@ -493,16 +476,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/)a)a) response: @@ -511,14 +492,14 @@ interactions: headers: content-length: '0' content-md5: k3HXouOuhqAKq0dx450lXQ== - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2EE1F84F"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D32865A660"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: Ji+xpkyyaf0= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.7319503Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.2507248Z' status: code: 201 message: Created @@ -529,40 +510,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/)a)a)?versionid=2020-04-29T22:32:21.7319503Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/)a)a)?versionid=2020-05-13T00:18:27.2507248Z response: body: string: ) headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2EE1F84F"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D32865A660"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: k3HXouOuhqAKq0dx450lXQ== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:27 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.7319503Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.2507248Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/)a)a)?versionid=2020-04-29T22:32:21.7319503Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/)a)a)?versionid=2020-05-13T00:18:27.2507248Z - request: body: $ headers: @@ -570,16 +550,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/$a$a$ response: @@ -588,14 +566,14 @@ interactions: headers: content-length: '0' content-md5: w+l91ul/tRJWiMl/NnIMvg== - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2EF4994D"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D328795909"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: pe7RZkNLee0= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.8550372Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.3798169Z' status: code: 201 message: Created @@ -606,40 +584,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/$a$a$?versionid=2020-04-29T22:32:21.8550372Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/$a$a$?versionid=2020-05-13T00:18:27.3798169Z response: body: string: $ headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2EF4994D"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D328795909"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: w+l91ul/tRJWiMl/NnIMvg== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:27 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.8550372Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.3798169Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/$a$a$?versionid=2020-04-29T22:32:21.8550372Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/$a$a$?versionid=2020-05-13T00:18:27.3798169Z - request: body: '=' headers: @@ -647,16 +624,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:21 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/=a=a= response: @@ -665,14 +640,14 @@ interactions: headers: content-length: '0' content-md5: Q+w+Xe5ucGr3dm//6lEnIQ== - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2F076162"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D3288C6F59"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: KPZOtgSo60w= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.9771234Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.5059068Z' status: code: 201 message: Created @@ -683,40 +658,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:22 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/=a=a=?versionid=2020-04-29T22:32:21.9771234Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/=a=a=?versionid=2020-05-13T00:18:27.5059068Z response: body: string: '=' headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:21 GMT - etag: '"0x8D7EC8D2F076162"' - last-modified: Wed, 29 Apr 2020 22:32:21 GMT + date: Wed, 13 May 2020 00:18:26 GMT + etag: '"0x8D7F6D3288C6F59"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: Q+w+Xe5ucGr3dm//6lEnIQ== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:21 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:27 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:21.9771234Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.5059068Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/=a=a=?versionid=2020-04-29T22:32:21.9771234Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/=a=a=?versionid=2020-05-13T00:18:27.5059068Z - request: body: '''' headers: @@ -724,16 +698,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:22 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/'a'a' response: @@ -742,14 +714,14 @@ interactions: headers: content-length: '0' content-md5: NZDLivC7ueeMNDtSuTdzyQ== - date: Wed, 29 Apr 2020 22:32:22 GMT - etag: '"0x8D7EC8D2F1A0260"' - last-modified: Wed, 29 Apr 2020 22:32:22 GMT + date: Wed, 13 May 2020 00:18:27 GMT + etag: '"0x8D7F6D3289FFAE7"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: LnWPNhtaymw= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:22.0992096Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.6339982Z' status: code: 201 message: Created @@ -760,40 +732,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:22 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/'a'a'?versionid=2020-04-29T22:32:22.0992096Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/'a'a'?versionid=2020-05-13T00:18:27.6339982Z response: body: string: '''' headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:22 GMT - etag: '"0x8D7EC8D2F1A0260"' - last-modified: Wed, 29 Apr 2020 22:32:22 GMT + date: Wed, 13 May 2020 00:18:27 GMT + etag: '"0x8D7F6D3289FFAE7"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: NZDLivC7ueeMNDtSuTdzyQ== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:22 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:27 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:22.0992096Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.6339982Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/'a'a'?versionid=2020-04-29T22:32:22.0992096Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/'a'a'?versionid=2020-05-13T00:18:27.6339982Z - request: body: ',' headers: @@ -801,16 +772,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:22 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/,a,a, response: @@ -819,14 +788,14 @@ interactions: headers: content-length: '0' content-md5: wMtfD88jmrPZwfzTH/8e/A== - date: Wed, 29 Apr 2020 22:32:22 GMT - etag: '"0x8D7EC8D2F2C7C47"' - last-modified: Wed, 29 Apr 2020 22:32:22 GMT + date: Wed, 13 May 2020 00:18:27 GMT + etag: '"0x8D7F6D328B226A8"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: 0BDFDvenZUs= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:22.2202951Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.7520824Z' status: code: 201 message: Created @@ -837,40 +806,39 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:22 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/,a,a,?versionid=2020-04-29T22:32:22.2202951Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/,a,a,?versionid=2020-05-13T00:18:27.7520824Z response: body: string: ',' headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:22 GMT - etag: '"0x8D7EC8D2F2C7C47"' - last-modified: Wed, 29 Apr 2020 22:32:22 GMT + date: Wed, 13 May 2020 00:18:27 GMT + etag: '"0x8D7F6D328B226A8"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: wMtfD88jmrPZwfzTH/8e/A== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:22 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:27 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:22.2202951Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.7520824Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/,a,a,?versionid=2020-04-29T22:32:22.2202951Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/,a,a,?versionid=2020-05-13T00:18:27.7520824Z - request: body: '~' headers: @@ -878,16 +846,14 @@ interactions: - '1' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 22:32:22 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/~a~a~ response: @@ -896,14 +862,14 @@ interactions: headers: content-length: '0' content-md5: THYfFw4BaDb/hEmCArmYJw== - date: Wed, 29 Apr 2020 22:32:22 GMT - etag: '"0x8D7EC8D2F3F6B73"' - last-modified: Wed, 29 Apr 2020 22:32:22 GMT + date: Wed, 13 May 2020 00:18:27 GMT + etag: '"0x8D7F6D328C2F29D"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: zEB+nOFjAho= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:22.3443827Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.8621613Z' status: code: 201 message: Created @@ -914,38 +880,37 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 22:32:22 GMT + - Wed, 13 May 2020 00:18:27 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET - uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/~a~a~?versionid=2020-04-29T22:32:22.3443827Z + uri: https://storagename.blob.core.windows.net/utcontainer86f51ae7/~a~a~?versionid=2020-05-13T00:18:27.8621613Z response: body: string: '~' headers: accept-ranges: bytes - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,x-ms-version-id,x-ms-is-current-version,Content-Type,Last-Modified,ETag,x-ms-creation-time,x-ms-blob-content-md5,x-ms-blob-type,x-ms-server-encrypted,Accept-Ranges,Content-Length,Date,Transfer-Encoding content-length: '1' content-range: bytes 0-0/1 content-type: application/octet-stream - date: Wed, 29 Apr 2020 22:32:22 GMT - etag: '"0x8D7EC8D2F3F6B73"' - last-modified: Wed, 29 Apr 2020 22:32:22 GMT + date: Wed, 13 May 2020 00:18:27 GMT + etag: '"0x8D7F6D328C2F29D"' + last-modified: Wed, 13 May 2020 00:18:27 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: Origin x-ms-blob-content-md5: THYfFw4BaDb/hEmCArmYJw== x-ms-blob-type: BlockBlob - x-ms-creation-time: Wed, 29 Apr 2020 22:32:22 GMT + x-ms-creation-time: Wed, 13 May 2020 00:18:27 GMT x-ms-is-current-version: 'true' x-ms-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T22:32:22.3443827Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:18:27.8621613Z' status: code: 206 message: Partial Content - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/~a~a~?versionid=2020-04-29T22:32:22.3443827Z + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer86f51ae7/~a~a~?versionid=2020-05-13T00:18:27.8621613Z version: 1 diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_specific_blob_version.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_specific_blob_version.yaml index 93d47aed8df8..dee76834e798 100644 --- a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_specific_blob_version.yaml +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob_async.test_delete_specific_blob_version.yaml @@ -3,65 +3,63 @@ interactions: body: null headers: User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 23:09:41 GMT + - Wed, 13 May 2020 00:01:09 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec?timeout=5&restype=container response: body: string: "\uFEFFContainerAlreadyExistsThe - specified container already exists.\nRequestId:ef88df9d-001e-0034-1b7b-1ee90a000000\nTime:2020-04-29T23:09:41.6020503Z" + specified container already exists.\nRequestId:9fa237da-601e-001d-10b9-28d77e000000\nTime:2020-05-13T00:01:09.5492358Z" headers: content-length: '230' content-type: application/xml - date: Wed, 29 Apr 2020 23:09:40 GMT + date: Wed, 13 May 2020 00:01:09 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-error-code: ContainerAlreadyExists - x-ms-version: '2019-10-10' + x-ms-version: '2019-12-12' status: code: 409 message: The specified container already exists. url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec?timeout=5&restype=container - request: - body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + body: abc headers: Content-Length: - - '1024' + - '3' Content-Type: - application/octet-stream - If-None-Match: - - '*' User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 23:09:41 GMT + - Wed, 13 May 2020 00:01:09 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blobtodelete8d9d16ec response: body: string: '' headers: content-length: '0' - content-md5: yaNM/IXZgmmMasifdgcavQ== - date: Wed, 29 Apr 2020 23:09:41 GMT - etag: '"0x8D7EC9265FB3CD8"' - last-modified: Wed, 29 Apr 2020 23:09:41 GMT + content-md5: kAFQmDzST7DWlj99KOF/cg== + date: Wed, 13 May 2020 00:01:09 GMT + etag: '"0x8D7F6D0BDE8F671"' + last-modified: Wed, 13 May 2020 00:01:09 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-content-crc64: ov8U1LLnyKc= + x-ms-content-crc64: 6/rBP7vK5QU= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T23:09:41.6558808Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:01:09.6026264Z' status: code: 201 message: Created - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blobtodelete8d9d16ec - request: body: abc headers: @@ -70,68 +68,68 @@ interactions: Content-Type: - application/octet-stream User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-blob-type: - BlockBlob x-ms-date: - - Wed, 29 Apr 2020 23:09:41 GMT + - Wed, 13 May 2020 00:01:09 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: PUT - uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blobtodelete8d9d16ec response: body: string: '' headers: content-length: '0' content-md5: kAFQmDzST7DWlj99KOF/cg== - date: Wed, 29 Apr 2020 23:09:41 GMT - etag: '"0x8D7EC9266061446"' - last-modified: Wed, 29 Apr 2020 23:09:41 GMT + date: Wed, 13 May 2020 00:01:09 GMT + etag: '"0x8D7F6D0BDF13552"' + last-modified: Wed, 13 May 2020 00:01:09 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-content-crc64: 6/rBP7vK5QU= x-ms-request-server-encrypted: 'true' - x-ms-version: '2019-10-10' - x-ms-version-id: '2020-04-29T23:09:41.7279318Z' + x-ms-version: '2019-12-12' + x-ms-version-id: '2020-05-13T00:01:09.6556642Z' status: code: 201 message: Created - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blobtodelete8d9d16ec - request: body: null headers: User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 23:09:41 GMT + - Wed, 13 May 2020 00:01:09 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: DELETE - uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec/blobtodelete8d9d16ec?versionid=2020-05-13T00:01:09.6026264Z response: body: string: '' headers: content-length: '0' - date: Wed, 29 Apr 2020 23:09:41 GMT + date: Wed, 13 May 2020 00:01:09 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - x-ms-delete-type-permanent: 'false' - x-ms-version: '2019-10-10' + x-ms-delete-type-permanent: 'true' + x-ms-version: '2019-12-12' status: code: 202 message: Accepted - url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blob8d9d16ec + url: https://cdm03r01aversioning16.blob.core.windows.net/utcontainer8d9d16ec/blobtodelete8d9d16ec?versionid=2020-05-13T00:01:09.6026264Z - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.3.0 Python/3.7.3 (Windows-10-10.0.18362-SP0) + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) x-ms-date: - - Wed, 29 Apr 2020 23:09:41 GMT + - Wed, 13 May 2020 00:01:09 GMT x-ms-version: - - '2019-10-10' + - '2019-12-12' method: GET uri: https://storagename.blob.core.windows.net/utcontainer8d9d16ec?include=versions&restype=container&comp=list response: @@ -161,16 +159,39 @@ interactions: 29 Apr 2020 23:09:41 GMTWed, 29 Apr 2020 23:09:41 GMT0x8D7EC92660614463application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueBlockBlobHottruetrueblob8d9d16ec2020-05-12T23:46:05.3661812ZTue, + 12 May 2020 23:46:05 GMTTue, 12 May 2020 23:46:05 + GMT0x8D7F6CEA2F1BC741024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob8d9d16ec2020-05-12T23:46:05.4462376ZtrueTue, + 12 May 2020 23:46:05 GMTTue, 12 May 2020 23:46:05 + GMT0x8D7F6CEA2FDCC983application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottrueunlockedavailabletrueblobtodelete8d9d16ec2020-05-12T23:50:36.9628970ZTue, + 12 May 2020 23:50:36 GMTTue, 12 May 2020 23:50:36 + GMT0x8D7F6CF44D41B2A3application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblobtodelete8d9d16ec2020-05-12T23:50:52.0436526ZTue, + 12 May 2020 23:50:52 GMTTue, 12 May 2020 23:50:52 + GMT0x8D7F6CF4DD0F1103application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblobtodelete8d9d16ec2020-05-12T23:57:51.1322144ZTue, + 12 May 2020 23:57:51 GMTTue, 12 May 2020 23:57:51 + GMT0x8D7F6D0479CEF103application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottruetrueblobtodelete8d9d16ec2020-05-13T00:01:09.6556642ZtrueWed, + 13 May 2020 00:01:09 GMTWed, 13 May 2020 00:01:09 + GMT0x8D7F6D0BDF135523application/octet-streamkAFQmDzST7DWlj99KOF/cg==BlockBlobHottrueunlockedavailabletrue" headers: - access-control-allow-origin: '*' - access-control-expose-headers: x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding content-type: application/xml - date: Wed, 29 Apr 2020 23:09:41 GMT + date: Wed, 13 May 2020 00:01:09 GMT server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: chunked - x-ms-version: '2019-10-10' + vary: Origin + x-ms-version: '2019-12-12' status: code: 200 message: OK diff --git a/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py index e8543735e242..b37dc6615420 100644 --- a/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_append_blob_async.py @@ -1104,7 +1104,7 @@ async def test_append_blob_from_stream_non_seekable_chunked_upload_known_size_as # Act with open(FILE_PATH, 'rb') as stream: - non_seekable_file = StorageAppendBlobTestAsync.NonSeekableFile(stream) + non_seekable_file = StorageAppendBlobAsyncTest.NonSeekableFile(stream) await blob.upload_blob(non_seekable_file, length=blob_size, blob_type=BlobType.AppendBlob) # Assert @@ -1126,7 +1126,7 @@ async def test_append_blob_from_stream_non_seekable_chunked_upload_unknown_size_ # Act with open(FILE_PATH, 'rb') as stream: - non_seekable_file = StorageAppendBlobTestAsync.NonSeekableFile(stream) + non_seekable_file = StorageAppendBlobAsyncTest.NonSeekableFile(stream) await blob.upload_blob(non_seekable_file, blob_type=BlobType.AppendBlob) # Assert diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob.py b/sdk/storage/azure-storage-blob/tests/test_common_blob.py index 37d4b6281a87..a86525acbb4c 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob.py @@ -85,7 +85,6 @@ def _get_blob_reference(self): def _create_block_blob(self): blob_name = self._get_blob_reference() blob = self.bsc.get_blob_client(self.container_name, blob_name) - blob.delete_blob() blob.upload_blob(self.byte_data, length=len(self.byte_data)) return blob_name @@ -118,10 +117,10 @@ def _wait_for_async_copy(self, blob): def _enable_soft_delete(self): delete_retention_policy = RetentionPolicy(enabled=True, days=2) - self.bsc.set_service_properties(delete_retention_policy=delete_retention_policy) # wait until the policy has gone into effect if self.is_live: + self.bsc.set_service_properties(delete_retention_policy=delete_retention_policy) time.sleep(30) def _disable_soft_delete(self): @@ -615,6 +614,7 @@ def test_set_blob_metadata_with_upper_case(self, resource_group, location, stora self.assertEqual(md['UP'], 'UPval') self.assertFalse('up' in md) + @pytest.mark.live_test_only @GlobalStorageAccountPreparer() def test_set_blob_metadata_returns_vid(self, resource_group, location, storage_account, storage_account_key): # bug in devtools...converts upper case header to lowercase @@ -651,12 +651,14 @@ def test_delete_blob_with_existing_blob(self, resource_group, location, storage_ @GlobalStorageAccountPreparer() def test_delete_specific_blob_version(self, resource_group, location, storage_account, storage_account_key): self._setup(storage_account, storage_account_key) - blob_name = self._create_block_blob() + blob_name = self.get_resource_name("blobtodelete") blob_client = self.bsc.get_blob_client(self.container_name, blob_name) resp = blob_client.upload_blob(b'abc', overwrite=True) self.assertIsNotNone(resp['version_id']) + blob_client.upload_blob(b'abc', overwrite=True) + # Act resp = blob_client.delete_blob(version_id=resp['version_id']) @@ -666,8 +668,10 @@ def test_delete_specific_blob_version(self, resource_group, location, storage_ac self.assertIsNone(resp) self.assertTrue(len(blob_list) > 0) + @pytest.mark.live_test_only @GlobalStorageAccountPreparer() def test_delete_blob_version_with_blob_sas(self, resource_group, location, storage_account, storage_account_key): + # SAS URL is calculated from storage key, so this test runs live only self._setup(storage_account, storage_account_key) blob_name = self._create_block_blob() blob_client = self.bsc.get_blob_client(self.container_name, blob_name) diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py index f529de4232c3..7f9123d0f782 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py @@ -277,7 +277,7 @@ async def test_create_blob_and_download_blob_with_vid(self, resource_group, loca blob_name = '{0}a{0}a{0}'.format(c) blob_data = c blob = self.bsc.get_blob_client(self.container_name, blob_name) - resp = await blob.upload_blob(blob_data, length=len(blob_data)) + resp = await blob.upload_blob(blob_data, length=len(blob_data), overwrite=True) self.assertIsNotNone(resp.get('version_id')) data = await (await blob.download_blob(version_id=resp.get('version_id'))).readall() @@ -724,6 +724,7 @@ async def test_set_blob_metadata_with_upper_case(self, resource_group, location, self.assertEqual(md['UP'], 'UPval') self.assertFalse('up' in md) + @pytest.mark.live_test_only @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test async def test_set_blob_metadata_returns_vid(self, resource_group, location, storage_account, storage_account_key): @@ -766,7 +767,7 @@ async def test_delete_blob_with_existing_blob(self, resource_group, location, st async def test_delete_specific_blob_version(self, resource_group, location, storage_account, storage_account_key): # Arrange await self._setup(storage_account, storage_account_key) - blob_name = await self._create_block_blob() + blob_name = self.get_resource_name("blobtodelete") # Act blob = self.bsc.get_blob_client(self.container_name, blob_name) @@ -775,6 +776,9 @@ async def test_delete_specific_blob_version(self, resource_group, location, stor # Assert self.assertIsNotNone(resp['version_id']) + # upload to override the previous version + await blob.upload_blob(b'abc', overwrite=True) + # Act resp = await blob.delete_blob(version_id=resp['version_id']) blob_list = [] @@ -784,6 +788,7 @@ async def test_delete_specific_blob_version(self, resource_group, location, stor self.assertIsNone(resp) self.assertTrue(len(blob_list) > 0) + @pytest.mark.live_test_only @GlobalStorageAccountPreparer() @AsyncStorageTestCase.await_prepared_test async def test_delete_blob_version_with_blob_sas(self, resource_group, location, storage_account, storage_account_key): From 5019489fd2f365c15eeafe032c6fd8558f89c6f8 Mon Sep 17 00:00:00 2001 From: xiafu Date: Wed, 13 May 2020 09:36:53 -0700 Subject: [PATCH 3/5] fix test --- ...st_soft_delete_only_snapshots_of_blob.yaml | 460 ++++++++++++++++++ 1 file changed, 460 insertions(+) create mode 100644 sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_soft_delete_only_snapshots_of_blob.yaml diff --git a/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_soft_delete_only_snapshots_of_blob.yaml b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_soft_delete_only_snapshots_of_blob.yaml new file mode 100644 index 000000000000..704d300cf4f5 --- /dev/null +++ b/sdk/storage/azure-storage-blob/tests/recordings/test_common_blob.test_soft_delete_only_snapshots_of_blob.yaml @@ -0,0 +1,460 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:22 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer91651717?timeout=5&restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 13 May 2020 16:35:22 GMT + etag: + - '"0x8D7F75BA221C614"' + last-modified: + - Wed, 13 May 2020 16:35:23 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: ' + + true2' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '176' + Content-Type: + - application/xml; charset=utf-8 + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:23 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/?restype=service&comp=properties + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 13 May 2020 16:35:22 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted +- request: + body: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Wed, 13 May 2020 16:35:53 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - yaNM/IXZgmmMasifdgcavQ== + date: + - Wed, 13 May 2020 16:35:52 GMT + etag: + - '"0x8D7F75BB42AB32C"' + last-modified: + - Wed, 13 May 2020 16:35:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - ov8U1LLnyKc= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:53 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717?comp=snapshot + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 13 May 2020 16:35:53 GMT + etag: + - '"0x8D7F75BB42AB32C"' + last-modified: + - Wed, 13 May 2020 16:35:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'false' + x-ms-snapshot: + - '2020-05-13T16:35:53.4147486Z' + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:53 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717?comp=snapshot + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 13 May 2020 16:35:53 GMT + etag: + - '"0x8D7F75BB42AB32C"' + last-modified: + - Wed, 13 May 2020 16:35:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'false' + x-ms-snapshot: + - '2020-05-13T16:35:53.5348628Z' + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:53 GMT + x-ms-delete-snapshots: + - only + x-ms-version: + - '2019-12-12' + method: DELETE + uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 13 May 2020 16:35:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'false' + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:53 GMT + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer91651717?include=snapshots,deleted&restype=container&comp=list + response: + body: + string: "\uFEFFblob916517172020-05-13T16:35:53.4147486ZtrueWed, + 13 May 2020 16:35:53 GMTWed, 13 May 2020 16:35:53 + GMT0x8D7F75BB42AB32C1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueWed, + 13 May 2020 16:35:53 GMT1blob916517172020-05-13T16:35:53.5348628ZtrueWed, + 13 May 2020 16:35:53 GMTWed, 13 May 2020 16:35:53 + GMT0x8D7F75BB42AB32C1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueWed, + 13 May 2020 16:35:53 GMT1blob91651717Wed, + 13 May 2020 16:35:53 GMTWed, 13 May 2020 16:35:53 + GMT0x8D7F75BB42AB32C1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Wed, 13 May 2020 16:35:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:54 GMT + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer91651717?include=snapshots&restype=container&comp=list + response: + body: + string: "\uFEFFblob91651717Wed, + 13 May 2020 16:35:53 GMTWed, 13 May 2020 16:35:53 + GMT0x8D7F75BB42AB32C1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Wed, 13 May 2020 16:35:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:54 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/utcontainer91651717/blob91651717?comp=undelete + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 13 May 2020 16:35:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:54 GMT + x-ms-version: + - '2019-12-12' + method: GET + uri: https://storagename.blob.core.windows.net/utcontainer91651717?include=snapshots,deleted&restype=container&comp=list + response: + body: + string: "\uFEFFblob916517172020-05-13T16:35:53.4147486ZWed, + 13 May 2020 16:35:53 GMTWed, 13 May 2020 16:35:53 + GMT0x8D7F75BB42AB32C1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob916517172020-05-13T16:35:53.5348628ZWed, + 13 May 2020 16:35:53 GMTWed, 13 May 2020 16:35:53 + GMT0x8D7F75BB42AB32C1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottruetrueblob91651717Wed, + 13 May 2020 16:35:53 GMTWed, 13 May 2020 16:35:53 + GMT0x8D7F75BB42AB32C1024application/octet-streamyaNM/IXZgmmMasifdgcavQ==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Wed, 13 May 2020 16:35:54 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: ' + + false' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '163' + Content-Type: + - application/xml; charset=utf-8 + User-Agent: + - azsdk-python-storage-blob/12.3.2 Python/3.7.3 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Wed, 13 May 2020 16:35:54 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://storagename.blob.core.windows.net/?restype=service&comp=properties + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Wed, 13 May 2020 16:35:54 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted +version: 1 From 7f3d2c7f20f16a338f9803effeba2f442654634a Mon Sep 17 00:00:00 2001 From: xiafu Date: Wed, 27 May 2020 01:41:52 -0700 Subject: [PATCH 4/5] add doc --- .../azure/storage/blob/_blob_client.py | 28 ++++++++++++++++-- .../azure/storage/blob/_shared/models.py | 6 ++-- .../storage/blob/_shared_access_signature.py | 6 +++- .../storage/blob/aio/_blob_client_async.py | 29 ++++++++++++++++++- .../storage/filedatalake/_shared/models.py | 12 ++++++-- .../azure/storage/fileshare/_shared/models.py | 8 +++-- .../azure/storage/queue/_shared/models.py | 9 ++++-- 7 files changed, 84 insertions(+), 14 deletions(-) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py index 674cd3f54837..ca298c9ec481 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py @@ -84,6 +84,13 @@ class BlobClient(StorageAccountHostsMixin): # pylint: disable=too-many-public-m account URL already has a SAS token. The value can be a SAS token string, an account shared access key, or an instance of a TokenCredentials class from azure.identity. If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to get properties, delete or download that version. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword str api_version: The Storage API version to use for requests. Default value is '2019-07-07'. Setting to an older version may result in reduced feature compatibility. @@ -557,6 +564,13 @@ def download_blob(self, offset=None, length=None, **kwargs): :param int length: Number of bytes to read from the stream. This is optional, but should be supplied for optimal performance. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword bool validate_content: If true, calculates an MD5 hash for each chunk of the blob. The storage service checks the hash of the content that has arrived with the hash @@ -663,6 +677,13 @@ def delete_blob(self, delete_snapshots=False, **kwargs): Required if the blob has associated snapshots. Values include: - "only": Deletes only the blobs snapshots. - "include": Deletes the blob along with all snapshots. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword lease: Required if the blob has an active lease. If specified, delete_blob only succeeds if the blob's lease is active and matches this ID. Value can be a @@ -742,8 +763,11 @@ def get_blob_properties(self, **kwargs): :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str :keyword str version_id: The version id parameter is an opaque DateTime - value that, when present, specifies the version of the blob to delete. - It for service version 2019-10-10 and newer. + value that, when present, specifies the version of the blob to get properties. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword ~datetime.datetime if_modified_since: A DateTime value. Azure expects the date value passed in to be UTC. If timezone is included, any non-UTC datetimes will be converted to UTC. diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py index 48f60c06631b..83d7cb74b890 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py @@ -325,9 +325,9 @@ class AccountSasPermissions(object): :param bool process: Valid for the following Object resource type only: queue messages. """ - def __init__(self, read=False, write=False, delete=False, delete_version=False, + def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin - add=False, create=False, update=False, process=False): + add=False, create=False, update=False, process=False, delete_version=False): self.read = read self.write = write self.delete = delete @@ -338,7 +338,7 @@ def __init__(self, read=False, write=False, delete=False, delete_version=False, self.update = update self.process = process self._str = (('r' if self.read else '') + - ('w' if self.write else '') + + ('w' if self.write else '') + ('d' if self.delete else '') + ('x' if self.delete_version else '') + ('l' if self.list else '') + diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared_access_signature.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared_access_signature.py index 811d4cb024c3..4d86e8c9d298 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared_access_signature.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared_access_signature.py @@ -474,7 +474,6 @@ def generate_blob_sas( container_name, # type: str blob_name, # type: str snapshot=None, # type: Optional[str] - version_id=None, # type: Optional[str] account_key=None, # type: Optional[str] user_delegation_key=None, # type: Optional[UserDelegationKey] permission=None, # type: Optional[Union[BlobSasPermissions, str]] @@ -482,6 +481,7 @@ def generate_blob_sas( start=None, # type: Optional[Union[datetime, str]] policy_id=None, # type: Optional[str] ip=None, # type: Optional[str] + version_id=None, # type: Optional[str] **kwargs # type: Any ): # type: (...) -> Any @@ -500,6 +500,10 @@ def generate_blob_sas( An optional blob snapshot ID. :param str version_id: An optional blob version ID. This parameter is only for versioning enabled account + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :param str account_key: The account key, also called shared key or access key, to generate the shared access signature. Either `account_key` or `user_delegation_key` must be specified. diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py index 8a5716297511..5b0124e5f4d3 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py @@ -64,6 +64,12 @@ class BlobClient(AsyncStorageAccountHostsMixin, BlobClientBase): # pylint: disa account URL already has a SAS token. The value can be a SAS token string, an account shared access key, or an instance of a TokenCredentials class from azure.identity. If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. :keyword str api_version: The Storage API version to use for requests. Default value is '2019-07-07'. Setting to an older version may result in reduced feature compatibility. @@ -271,6 +277,13 @@ async def download_blob(self, offset=None, length=None, **kwargs): :param int length: Number of bytes to read from the stream. This is optional, but should be supplied for optimal performance. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword bool validate_content: If true, calculates an MD5 hash for each chunk of the blob. The storage service checks the hash of the content that has arrived with the hash @@ -355,6 +368,13 @@ async def delete_blob(self, delete_snapshots=False, **kwargs): Required if the blob has associated snapshots. Values include: - "only": Deletes only the blobs snapshots. - "include": Deletes the blob along with all snapshots. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword lease: Required if the blob has an active lease. If specified, delete_blob only succeeds if the blob's lease is active and matches this ID. Value can be a @@ -432,6 +452,13 @@ async def get_blob_properties(self, **kwargs): Required if the blob has an active lease. Value can be a BlobLeaseClient object or the lease ID as a string. :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to get properties. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword ~datetime.datetime if_modified_since: A DateTime value. Azure expects the date value passed in to be UTC. If timezone is included, any non-UTC datetimes will be converted to UTC. @@ -480,7 +507,7 @@ async def get_blob_properties(self, **kwargs): try: blob_props = await self._client.blob.get_properties( timeout=kwargs.pop('timeout', None), - version_id=kwargs.pop('version_id', None), + version_id=kwargs.pop('version_id', None) or self.version_id, snapshot=self.snapshot, lease_access_conditions=access_conditions, modified_access_conditions=mod_conditions, diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/models.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/models.py index c72fc6d510e4..27ed51f90e1b 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/models.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/models.py @@ -310,6 +310,8 @@ class AccountSasPermissions(object): Permits write permissions to the specified resource type. :param bool delete: Valid for Container and Object resource types, except for queue messages. + :param bool delete_version: + Delete the blob version for the versioning enabled storage account. :param bool list: Valid for Service and Container resource types only. :param bool add: @@ -323,19 +325,22 @@ class AccountSasPermissions(object): :param bool process: Valid for the following Object resource type only: queue messages. """ - def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin - add=False, create=False, update=False, process=False): + def __init__(self, read=False, write=False, delete=False, + list=False, # pylint: disable=redefined-builtin + add=False, create=False, update=False, process=False, delete_version=False): self.read = read self.write = write self.delete = delete + self.delete_version = delete_version self.list = list self.add = add self.create = create self.update = update self.process = process self._str = (('r' if self.read else '') + - ('w' if self.write else '') + + ('w' if self.write else '') + ('d' if self.delete else '') + + ('x' if self.delete_version else '') + ('l' if self.list else '') + ('a' if self.add else '') + ('c' if self.create else '') + @@ -371,6 +376,7 @@ def from_string(cls, permission): parsed._str = permission # pylint: disable = protected-access return parsed + class Services(object): """Specifies the services accessible with the account SAS. diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/models.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/models.py index f6727f1e74fa..7c28d2490c34 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/models.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/models.py @@ -310,6 +310,8 @@ class AccountSasPermissions(object): Permits write permissions to the specified resource type. :param bool delete: Valid for Container and Object resource types, except for queue messages. + :param bool delete_version: + Delete the blob version for the versioning enabled storage account. :param bool list: Valid for Service and Container resource types only. :param bool add: @@ -324,18 +326,20 @@ class AccountSasPermissions(object): Valid for the following Object resource type only: queue messages. """ def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin - add=False, create=False, update=False, process=False): + add=False, create=False, update=False, process=False, delete_version=False): self.read = read self.write = write self.delete = delete + self.delete_version = delete_version self.list = list self.add = add self.create = create self.update = update self.process = process self._str = (('r' if self.read else '') + - ('w' if self.write else '') + + ('w' if self.write else '') + ('d' if self.delete else '') + + ('x' if self.delete_version else '') + ('l' if self.list else '') + ('a' if self.add else '') + ('c' if self.create else '') + diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/models.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/models.py index 0da6b8d3d273..dbf3c45bf299 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/models.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/models.py @@ -310,6 +310,8 @@ class AccountSasPermissions(object): Permits write permissions to the specified resource type. :param bool delete: Valid for Container and Object resource types, except for queue messages. + :param bool delete_version: + Delete the blob version for the versioning enabled storage account. :param bool list: Valid for Service and Container resource types only. :param bool add: @@ -324,18 +326,20 @@ class AccountSasPermissions(object): Valid for the following Object resource type only: queue messages. """ def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin - add=False, create=False, update=False, process=False): + add=False, create=False, update=False, process=False, delete_version=False): self.read = read self.write = write self.delete = delete + self.delete_version = delete_version self.list = list self.add = add self.create = create self.update = update self.process = process self._str = (('r' if self.read else '') + - ('w' if self.write else '') + + ('w' if self.write else '') + ('d' if self.delete else '') + + ('x' if self.delete_version else '') + ('l' if self.list else '') + ('a' if self.add else '') + ('c' if self.create else '') + @@ -371,6 +375,7 @@ def from_string(cls, permission): parsed._str = permission # pylint: disable = protected-access return parsed + class Services(object): """Specifies the services accessible with the account SAS. From 34f0913ba7e6b1d95ea710a9440dae480882d376 Mon Sep 17 00:00:00 2001 From: xiafu Date: Wed, 10 Jun 2020 00:15:04 -0700 Subject: [PATCH 5/5] rename delete_version->delete_previous_version --- .../azure/storage/blob/_blob_client.py | 15 +++------------ .../azure/storage/blob/_models.py | 14 +++++++------- .../azure/storage/blob/_shared/models.py | 14 +++++++------- .../azure/storage/blob/aio/_blob_client_async.py | 2 +- .../azure-storage-blob/tests/test_common_blob.py | 2 +- .../tests/test_common_blob_async.py | 2 +- .../azure/storage/filedatalake/_shared/models.py | 15 ++++++++------- .../azure/storage/fileshare/_shared/models.py | 16 +++++++++------- .../azure/storage/queue/_shared/models.py | 16 +++++++++------- 9 files changed, 46 insertions(+), 50 deletions(-) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py index ca298c9ec481..ec9af31bb14f 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py @@ -84,13 +84,6 @@ class BlobClient(StorageAccountHostsMixin): # pylint: disable=too-many-public-m account URL already has a SAS token. The value can be a SAS token string, an account shared access key, or an instance of a TokenCredentials class from azure.identity. If the URL already has a SAS token, specifying an explicit credential will take priority. - :keyword str version_id: - The version id parameter is an opaque DateTime - value that, when present, specifies the version of the blob to get properties, delete or download that version. - - .. versionadded:: 12.4.0 - This keyword argument was introduced in API version '2019-12-12'. - :keyword str api_version: The Storage API version to use for requests. Default value is '2019-07-07'. Setting to an older version may result in reduced feature compatibility. @@ -162,8 +155,6 @@ def __init__( except TypeError: self.snapshot = snapshot or path_snapshot - self.version_id = kwargs.pop('version_id', None) - self._query_str, credential = self._format_query_string(sas_token, credential, snapshot=self.snapshot) super(BlobClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) self._client = AzureBlobStorage(self.url, pipeline=self._pipeline) @@ -533,7 +524,7 @@ def _download_blob_options(self, offset=None, length=None, **kwargs): 'config': self._config, 'start_range': offset, 'end_range': length, - 'version_id': kwargs.pop('version_id', None) or self.version_id, + 'version_id': kwargs.pop('version_id', None), 'validate_content': validate_content, 'encryption_options': { 'required': self.require_encryption, @@ -654,7 +645,7 @@ def _delete_blob_options(self, delete_snapshots=False, **kwargs): raise ValueError("The delete_snapshots option cannot be used with a specific snapshot.") options = self._generic_delete_blob_options(delete_snapshots, **kwargs) options['snapshot'] = self.snapshot - options['version_id'] = kwargs.pop('version_id', None) or self.version_id + options['version_id'] = kwargs.pop('version_id', None) return options @distributed_trace @@ -817,7 +808,7 @@ def get_blob_properties(self, **kwargs): try: blob_props = self._client.blob.get_properties( timeout=kwargs.pop('timeout', None), - version_id=kwargs.pop('version_id', None) or self.version_id, + version_id=kwargs.pop('version_id', None), snapshot=self.snapshot, lease_access_conditions=access_conditions, modified_access_conditions=mod_conditions, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_models.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_models.py index 2bf2a9e645e2..6c7e405ffa1a 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_models.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_models.py @@ -998,23 +998,23 @@ class BlobSasPermissions(object): destination of a copy operation within the same account. :param bool delete: Delete the blob. - :param bool delete_version: - Delete the blob version for the versioning enabled storage account. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. """ def __init__(self, read=False, add=False, create=False, write=False, - delete=False, delete_version=False): + delete=False, delete_previous_version=False): self.read = read self.add = add self.create = create self.write = write self.delete = delete - self.delete_version = delete_version + self.delete_previous_version = delete_previous_version self._str = (('r' if self.read else '') + ('a' if self.add else '') + ('c' if self.create else '') + ('w' if self.write else '') + ('d' if self.delete else '') + - ('x' if self.delete_version else '')) + ('x' if self.delete_previous_version else '')) def __str__(self): return self._str @@ -1037,9 +1037,9 @@ def from_string(cls, permission): p_create = 'c' in permission p_write = 'w' in permission p_delete = 'd' in permission - p_delete_version = 'x' in permission + p_delete_previous_version = 'x' in permission - parsed = cls(p_read, p_add, p_create, p_write, p_delete, p_delete_version) + parsed = cls(p_read, p_add, p_create, p_write, p_delete, p_delete_previous_version) parsed._str = permission # pylint: disable = protected-access return parsed diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py index 83d7cb74b890..731d17058266 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/models.py @@ -310,8 +310,8 @@ class AccountSasPermissions(object): Permits write permissions to the specified resource type. :param bool delete: Valid for Container and Object resource types, except for queue messages. - :param bool delete_version: - Delete the blob version for the versioning enabled storage account. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. :param bool list: Valid for Service and Container resource types only. :param bool add: @@ -327,11 +327,11 @@ class AccountSasPermissions(object): """ def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin - add=False, create=False, update=False, process=False, delete_version=False): + add=False, create=False, update=False, process=False, delete_previous_version=False): self.read = read self.write = write self.delete = delete - self.delete_version = delete_version + self.delete_previous_version = delete_previous_version self.list = list self.add = add self.create = create @@ -340,7 +340,7 @@ def __init__(self, read=False, write=False, delete=False, self._str = (('r' if self.read else '') + ('w' if self.write else '') + ('d' if self.delete else '') + - ('x' if self.delete_version else '') + + ('x' if self.delete_previous_version else '') + ('l' if self.list else '') + ('a' if self.add else '') + ('c' if self.create else '') + @@ -366,14 +366,14 @@ def from_string(cls, permission): p_read = 'r' in permission p_write = 'w' in permission p_delete = 'd' in permission - p_delete_version = 'x' in permission + p_delete_previous_version = 'x' in permission p_list = 'l' in permission p_add = 'a' in permission p_create = 'c' in permission p_update = 'u' in permission p_process = 'p' in permission - parsed = cls(p_read, p_write, p_delete, p_delete_version, p_list, p_add, p_create, p_update, p_process) + parsed = cls(p_read, p_write, p_delete, p_delete_previous_version, p_list, p_add, p_create, p_update, p_process) parsed._str = permission # pylint: disable = protected-access return parsed diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py index 5b0124e5f4d3..dbf446e5d784 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py @@ -507,7 +507,7 @@ async def get_blob_properties(self, **kwargs): try: blob_props = await self._client.blob.get_properties( timeout=kwargs.pop('timeout', None), - version_id=kwargs.pop('version_id', None) or self.version_id, + version_id=kwargs.pop('version_id', None), snapshot=self.snapshot, lease_access_conditions=access_conditions, modified_access_conditions=mod_conditions, diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob.py b/sdk/storage/azure-storage-blob/tests/test_common_blob.py index a86525acbb4c..83b0bd99efa3 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob.py @@ -687,7 +687,7 @@ def test_delete_blob_version_with_blob_sas(self, resource_group, location, stora blob_client.blob_name, version_id=version_id, account_key=storage_account_key, - permission=BlobSasPermissions(delete=True, delete_version=True), + permission=BlobSasPermissions(delete=True, delete_previous_version=True), expiry=datetime.utcnow() + timedelta(hours=1), ) diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py index 7f9123d0f782..bade7a503f39 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py @@ -807,7 +807,7 @@ async def test_delete_blob_version_with_blob_sas(self, resource_group, location, blob_client.blob_name, version_id=version_id, account_key=storage_account_key, - permission=BlobSasPermissions(delete=True, delete_version=True), + permission=BlobSasPermissions(delete=True, delete_previous_version=True), expiry=datetime.utcnow() + timedelta(hours=1), ) diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/models.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/models.py index 27ed51f90e1b..42365bb13da0 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/models.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_shared/models.py @@ -310,8 +310,8 @@ class AccountSasPermissions(object): Permits write permissions to the specified resource type. :param bool delete: Valid for Container and Object resource types, except for queue messages. - :param bool delete_version: - Delete the blob version for the versioning enabled storage account. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. :param bool list: Valid for Service and Container resource types only. :param bool add: @@ -327,11 +327,11 @@ class AccountSasPermissions(object): """ def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin - add=False, create=False, update=False, process=False, delete_version=False): + add=False, create=False, update=False, process=False, delete_previous_version=False): self.read = read self.write = write self.delete = delete - self.delete_version = delete_version + self.delete_previous_version = delete_previous_version self.list = list self.add = add self.create = create @@ -340,7 +340,7 @@ def __init__(self, read=False, write=False, delete=False, self._str = (('r' if self.read else '') + ('w' if self.write else '') + ('d' if self.delete else '') + - ('x' if self.delete_version else '') + + ('x' if self.delete_previous_version else '') + ('l' if self.list else '') + ('a' if self.add else '') + ('c' if self.create else '') + @@ -361,18 +361,19 @@ def from_string(cls, permission): :param str permission: Specify permissions in the string with the first letter of the word. :return: A AccountSasPermissions object - :rtype: ~azure.storage.blob.AccountSasPermissions + :rtype: ~azure.storage.filedatalake.AccountSasPermissions """ p_read = 'r' in permission p_write = 'w' in permission p_delete = 'd' in permission + p_delete_previous_version = 'x' in permission p_list = 'l' in permission p_add = 'a' in permission p_create = 'c' in permission p_update = 'u' in permission p_process = 'p' in permission - parsed = cls(p_read, p_write, p_delete, p_list, p_add, p_create, p_update, p_process) + parsed = cls(p_read, p_write, p_delete, p_delete_previous_version, p_list, p_add, p_create, p_update, p_process) parsed._str = permission # pylint: disable = protected-access return parsed diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/models.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/models.py index 7c28d2490c34..b3265044ff50 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/models.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_shared/models.py @@ -310,8 +310,8 @@ class AccountSasPermissions(object): Permits write permissions to the specified resource type. :param bool delete: Valid for Container and Object resource types, except for queue messages. - :param bool delete_version: - Delete the blob version for the versioning enabled storage account. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. :param bool list: Valid for Service and Container resource types only. :param bool add: @@ -325,12 +325,13 @@ class AccountSasPermissions(object): :param bool process: Valid for the following Object resource type only: queue messages. """ - def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin - add=False, create=False, update=False, process=False, delete_version=False): + def __init__(self, read=False, write=False, delete=False, + list=False, # pylint: disable=redefined-builtin + add=False, create=False, update=False, process=False, delete_previous_version=False): self.read = read self.write = write self.delete = delete - self.delete_version = delete_version + self.delete_previous_version = delete_previous_version self.list = list self.add = add self.create = create @@ -339,7 +340,7 @@ def __init__(self, read=False, write=False, delete=False, list=False, # pylint: self._str = (('r' if self.read else '') + ('w' if self.write else '') + ('d' if self.delete else '') + - ('x' if self.delete_version else '') + + ('x' if self.delete_previous_version else '') + ('l' if self.list else '') + ('a' if self.add else '') + ('c' if self.create else '') + @@ -365,13 +366,14 @@ def from_string(cls, permission): p_read = 'r' in permission p_write = 'w' in permission p_delete = 'd' in permission + p_delete_previous_version = 'x' in permission p_list = 'l' in permission p_add = 'a' in permission p_create = 'c' in permission p_update = 'u' in permission p_process = 'p' in permission - parsed = cls(p_read, p_write, p_delete, p_list, p_add, p_create, p_update, p_process) + parsed = cls(p_read, p_write, p_delete, p_delete_previous_version, p_list, p_add, p_create, p_update, p_process) parsed._str = permission # pylint: disable = protected-access return parsed diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/models.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/models.py index dbf3c45bf299..10ffaec3c569 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/models.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_shared/models.py @@ -310,8 +310,8 @@ class AccountSasPermissions(object): Permits write permissions to the specified resource type. :param bool delete: Valid for Container and Object resource types, except for queue messages. - :param bool delete_version: - Delete the blob version for the versioning enabled storage account. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. :param bool list: Valid for Service and Container resource types only. :param bool add: @@ -325,12 +325,13 @@ class AccountSasPermissions(object): :param bool process: Valid for the following Object resource type only: queue messages. """ - def __init__(self, read=False, write=False, delete=False, list=False, # pylint: disable=redefined-builtin - add=False, create=False, update=False, process=False, delete_version=False): + def __init__(self, read=False, write=False, delete=False, + list=False, # pylint: disable=redefined-builtin + add=False, create=False, update=False, process=False, delete_previous_version=False): self.read = read self.write = write self.delete = delete - self.delete_version = delete_version + self.delete_previous_version = delete_previous_version self.list = list self.add = add self.create = create @@ -339,7 +340,7 @@ def __init__(self, read=False, write=False, delete=False, list=False, # pylint: self._str = (('r' if self.read else '') + ('w' if self.write else '') + ('d' if self.delete else '') + - ('x' if self.delete_version else '') + + ('x' if self.delete_previous_version else '') + ('l' if self.list else '') + ('a' if self.add else '') + ('c' if self.create else '') + @@ -365,13 +366,14 @@ def from_string(cls, permission): p_read = 'r' in permission p_write = 'w' in permission p_delete = 'd' in permission + p_delete_previous_version = 'x' in permission p_list = 'l' in permission p_add = 'a' in permission p_create = 'c' in permission p_update = 'u' in permission p_process = 'p' in permission - parsed = cls(p_read, p_write, p_delete, p_list, p_add, p_create, p_update, p_process) + parsed = cls(p_read, p_write, p_delete, p_delete_previous_version, p_list, p_add, p_create, p_update, p_process) parsed._str = permission # pylint: disable = protected-access return parsed