请求大数据文件时如何限制内存成本?

How to limit memory cost when request big data files?

提问人:forestbat 提问时间:10/26/2023 更新时间:11/22/2023 访问量:18

问:

我想从我的minio服务器下载文件:

response = client.get_object(bucket_name, object_name, version_id)
res_data: str = response.data.decode('utf8')

当我运行方法时,所有数据都将被提取到内存中,如果这个文件太大(>4GB,即),python进程将崩溃。decode

那么在请求大数据文件时如何限制内存成本呢?

python-3.x 下载 io 请求 大数据

评论


答:

1赞 agamil 11/22/2023 #1

处理大文件时,将文件加载到块中非常重要。

例如:

response = client.get_object(bucket_name, object_name, version_id
# Define a chunk size (for example 1MB)
chunk_size = 1024 * 1024
# Process the file in chunks
for chunk in response.stream(chunk_size):
    decoded_chunk = chunk.decode('utf8')
    file.write(chunk)