2016-05-21 6 views
3

Ich versuche, eine große Datei über Azure-Python-SDK Get_blob_to_stream herunterladen, aber mein Programm bleibt mit dem Rückkehrcode 137 beenden - die mit nicht genügend Arbeitsspeicher in Verbindung stehen scheint. (Ich kann oben sehen, dass Python mehr und mehr Speicher verbraucht, bis es getötet wird).Laden Sie Azure Blob über Stream - Exit 137

Code:

with io.open(file_path, 'w') as file: 
    self.blob_service.get_blob_to_stream(container_name='container', blob_name=blob_name, stream=file) 

I azure-sdk-for-python und get_blob_to_stream dafür verwenden, und die Datei ist etwa 6,5 ​​GB.

Die Datei wird als 0 Bytes erstellt und es wird nichts geschrieben - mache ich hier etwas offensichtlich falsch?

Antwort

3

Nach dem Herunterladen des SDK und dem Durchlaufen des Codes habe ich herausgefunden, wie man diesen großen Blob herunterladen kann.

  1. Sie muss bieten ein max_connections Wert größer als 1 - dies ermöglicht die Möglichkeit, die Datei in Stücke herunterladen und in den Stream zu schreiben.
  2. Sie müssen in einem binären Stream ('wb')

Arbeitscode von Frage Beispiel passieren:

with io.open(file_path, 'wb') as file: 
    self.blob_service.get_blob_to_stream(container_name='wxdata', blob_name=blob_name, stream=file, max_connections=2) 
Verwandte Themen