大きなファイルのチャンク処理を可能にするために、 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)
joinはこれを行う正しい方法ですか、それともすべてのチャンクをまとめる別の (より良い) 方法はありますか?