我正在尝试对Amazon S3 python 库进行陪审,以允许对大文件进行分块处理。现在它执行“self.body = http_response.read()”,因此如果您有一个 3G 文件,您将在对其进行任何控制之前将整个内容读入内存。
我目前的方法是尝试保持库的接口相同,但在读取每个数据块后提供回调。类似于以下内容:
data = []
while True:
chunk = http_response.read(CHUNKSIZE)
if not chunk:
break
if callback:
callback(chunk)
data.append(chunk)
现在我需要做类似的事情:
self.body = ''.join(data)
加入是正确的方法还是有另一种(更好的)方法将所有块放在一起?