通过流下载azure blob - 退出137

Mat*_*att 5 python azure azure-storage python-3.x

我试图通过Azure-python-sdk get_blob_to_stream下载一个大文件,但是,我的程序一直退出返回代码137 - 这似乎与内存不足有关.(我可以在顶部看到python正在消耗越来越多的内存,直到它被杀死).

码:

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

我正在使用azure-sdk-for-pythonget_blob_to_stream,文件大约为6.5 GB.

该文件被创建为0字节,没有写入任何内容 - 我在这里做了一些明显错误的事情吗?

Mat*_*att 6

下载SDK并浏览代码后,我发现了如何获得这个大blob下载.

  1. 必须提供大于1的max_connections值 - 这样才能够以块的形式下载文件并将其写入流中.
  2. 你需要传入一个二进制流('wb')

来自问题示例的工作代码:

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)
Run Code Online (Sandbox Code Playgroud)