0

Azure Storgae SDKの最新バージョンをPython 3.5.2に使用しています。Python Azure SDK - zipファイルをダウンロードできません

Azureストレージクラウドのブロブからジップファイルをダウンロードします。

マイコード:

self.azure_service= BlockBlobService(account_name = ACCOUNT_NAME, 
            account_key = KEY) 

with open(local_path, "wb+") as f: 
    self.azure_service.get_blob_to_stream(blob_container, 
              file_cloud_path, 
              f) 

エラー:エラーは、おそらく要求パッケージから来ていると私は変更するためのアクセス権を持っていないように見えます

AzureException: ('Received response with content-encoding: gzip, but failed to decode it.,, error('Error -3 while decompressing data: incorrect header check',))

見出しやそのようなもの。

正確にはどのような問題があり、どのように修正できますか?

+2

ブロブのプロパティ、特にコンテンツエンコーディングプロパティの値を確認できますか? gzipとして設定されている場合は、値を空の文字列に設定してblobプロパティを更新してください。 –

+0

Worked!ありがとうございました –

答えて

1

要約と同様に、Microsoft Azure Storage Explorerツールで上記の例外を検証しようとしました。 gzipのためEncodingTypeプロパティを設定した場合、ユーザは、ジップタイプのファイルをアップロード

enter image description here

ダウンロード時にクライアントがdismatchは、以下のような例外が発生する場合は、ファイルの種類は、EncodingTypeに落ち込んであることができるかどうかをチェックします:

Traceback (most recent call last): 
    File "D:\Python35\lib\site-packages\urllib3\response.py", line 266, in _decode 
    data = self._decoder.decompress(data) 
    File "D:\Python35\lib\site-packages\urllib3\response.py", line 66, in decompress 
    return self._obj.decompress(data) 
zlib.error: Error -3 while decompressing data: incorrect header check 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "D:\Python35\lib\site-packages\requests\models.py", line 745, in generate 
    for chunk in self.raw.stream(chunk_size, decode_content=True): 
    File "D:\Python35\lib\site-packages\urllib3\response.py", line 436, in stream 
    data = self.read(amt=amt, decode_content=decode_content) 
    File "D:\Python35\lib\site-packages\urllib3\response.py", line 408, in read 
    data = self._decode(data, decode_content, flush_decoder) 
    File "D:\Python35\lib\site-packages\urllib3\response.py", line 271, in _decode 
    "failed to decode it." % content_encoding, e) 
urllib3.exceptions.DecodeError: ('Received response with content-encoding: gzip, but failed to decode it.', error('Error -3 while decompressing data: incorrect header check',)) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "D:\Python35\lib\site-packages\azure\storage\storageclient.py", line 222, in _perform_request 
    response = self._httpclient.perform_request(request) 
    File "D:\Python35\lib\site-packages\azure\storage\_http\httpclient.py", line 114, in perform_request 
    proxies=self.proxies) 
    File "D:\Python35\lib\site-packages\requests\sessions.py", line 508, in request 
    resp = self.send(prep, **send_kwargs) 
    File "D:\Python35\lib\site-packages\requests\sessions.py", line 658, in send 
    r.content 
    File "D:\Python35\lib\site-packages\requests\models.py", line 823, in content 
    self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes() 
    File "D:\Python35\lib\site-packages\requests\models.py", line 750, in generate 
    raise ContentDecodingError(e) 
requests.exceptions.ContentDecodingError: ('Received response with content-encoding: gzip, but failed to decode it.', error('Error -3 while decompressing data: incorrect header check',)) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "D:/PythonWorkSpace/AzureStorage/BlobStorage/CreateContainer.py", line 20, in <module> 
    f) 
    File "D:\Python35\lib\site-packages\azure\storage\blob\baseblobservice.py", line 1932, in get_blob_to_stream 
    _context=operation_context) 
    File "D:\Python35\lib\site-packages\azure\storage\blob\baseblobservice.py", line 1659, in _get_blob 
    operation_context=_context) 
    File "D:\Python35\lib\site-packages\azure\storage\storageclient.py", line 280, in _perform_request 
    raise ex 
    File "D:\Python35\lib\site-packages\azure\storage\storageclient.py", line 252, in _perform_request 
    raise AzureException(ex.args[0]) 
azure.common.AzureException: ('Received response with content-encoding: gzip, but failed to decode it.', error('Error -3 while decompressing data: incorrect header check',)) 

Process finished with exit code 1 

ソリューション:

@ Gaurav Mantriセイルでは、EncodingTypeプロパティをに設定できます。なし、またはEncodingTypeの設定がファイル自体のタイプと一致していることを確認してください。

enter image description here

また、あなたはSOのスレッドpython making POST request with JSON dataを参照することができます。

関連する問題