def _parse_directory(response, name): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, DirectoryProperties) return Directory(name, props, metadata)
def _parse_container(response, name): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, ContainerProperties) return Container(name, props, metadata)
def _parse_share(response, name, snapshot=None): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, ShareProperties) return Share(name, props, metadata, snapshot)
def _parse_directory(response, name): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, DirectoryProperties) return Directory(name, props, metadata)
def _parse_share(response, name, snapshot=None): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, ShareProperties) return Share(name, props, metadata, snapshot)
def _parse_container(response, name): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, ContainerProperties) return Container(name, props, metadata)
def _parse_blob(response, name, snapshot, validate_content=False, require_encryption=False, key_encryption_key=None, key_resolver_function=None, start_offset=None, end_offset=None): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, BlobProperties) # For range gets, only look at 'x-ms-blob-content-md5' for overall MD5 content_settings = getattr(props, 'content_settings') if 'content-range' in response.headers: if 'x-ms-blob-content-md5' in response.headers: setattr(content_settings, 'content_md5', _to_str(response.headers['x-ms-blob-content-md5'])) else: delattr(content_settings, 'content_md5') if validate_content: computed_md5 = _get_content_md5(response.body) _validate_content_match(response.headers['content-md5'], computed_md5) if key_encryption_key is not None or key_resolver_function is not None: try: response.body = _decrypt_blob(require_encryption, key_encryption_key, key_resolver_function, response, start_offset, end_offset) except: raise AzureException(_ERROR_DECRYPTION_FAILURE) return Blob(name, snapshot, response.body, props, metadata)
def _parse_file(response, name, validate_content=False): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, FileProperties) # For range gets, only look at 'x-ms-content-md5' for overall MD5 content_settings = getattr(props, 'content_settings') if 'content-range' in response.headers: if 'x-ms-content-md5' in response.headers: setattr(content_settings, 'content_md5', _to_str(response.headers['x-ms-content-md5'])) else: delattr(content_settings, 'content_md5') if validate_content: computed_md5 = _get_content_md5(response.body) _validate_content_match(response.headers['content-md5'], computed_md5) return File(name, response.body, props, metadata)
def _parse_file(response, name, validate_content=False): if response is None: return None metadata = _parse_metadata(response) props = _parse_properties(response, FileProperties) # For range gets, only look at 'x-ms-content-md5' for overall MD5 content_settings = getattr(props, 'content_settings') if 'content-range' in response.headers: if 'x-ms-content-md5' in response.headers: setattr(content_settings, 'content_md5', _to_str(response.headers['x-ms-content-md5'])) else: delattr(content_settings, 'content_md5') if validate_content: computed_md5 = _get_content_md5(response.body) _validate_content_match(response.headers['content-md5'], computed_md5) return File(name, response.body, props, metadata)