diff --git a/cterasdk/direct/lib.py b/cterasdk/direct/lib.py index 3343f82c..254a6534 100644 --- a/cterasdk/direct/lib.py +++ b/cterasdk/direct/lib.py @@ -1,5 +1,6 @@ import logging import asyncio +import urllib.parse from ..lib.retries import execute_with_retries from .types import Metadata, Block @@ -72,6 +73,10 @@ async def get_object(client, file_id, chunk): raise exception +def is_azure_object_storage(chunk): + return urllib.parse.urlparse(chunk.url).netloc.endswith('core.windows.net') + + async def decrypt_object(file_id, encrypted_object, encryption_key, chunk): """ Decrypt Encrypted Object. @@ -83,7 +88,7 @@ async def decrypt_object(file_id, encrypted_object, encryption_key, chunk): :rtype: bytes """ try: - return decrypt_block(encrypted_object, encryption_key) + return decrypt_block(encrypted_object[16:] if is_azure_object_storage(chunk) else encrypted_object, encryption_key) except DirectIOError: logger.error('Failed to decrypt block.') raise DecryptBlockError(file_id, chunk) diff --git a/docs/source/UserGuides/Miscellaneous/Changelog.rst b/docs/source/UserGuides/Miscellaneous/Changelog.rst index d57b10dd..69a1037a 100644 --- a/docs/source/UserGuides/Miscellaneous/Changelog.rst +++ b/docs/source/UserGuides/Miscellaneous/Changelog.rst @@ -1,6 +1,15 @@ Changelog ========= +2.20.30 +------- + +Bug Fixes +^^^^^^^^^ +* Update documentation to require :py:class:`cterasdk.core.types.UserAccount` in :py:class:`cterasdk.core.types.CloudFSFolderFindingHelper` +* Support downloading files from Azure Blob Storage via CTERA Direct I/O. + + 2.20.28 -------