Ich versuche, die Amazon S3 python library zu manipulieren, um Chunked Handling von großen Dateien zu ermöglichen. Im Moment macht es einen "self.body = http_response.read()", wenn Sie also eine 3G-Datei haben, werden Sie das gesamte Ding in den Speicher einlesen, bevor Sie die Kontrolle darüber haben.Python: effizient Teile von Bytes in einen großen Brocken?
Mein aktueller Ansatz besteht darin, zu versuchen, die Schnittstelle für die Bibliothek gleich zu halten, aber einen Rückruf nach dem Lesen jedes einzelnen Datenblocks bereitzustellen. Etwas wie folgt aus:
data = []
while True:
chunk = http_response.read(CHUNKSIZE)
if not chunk:
break
if callback:
callback(chunk)
data.append(chunk)
Jetzt brauche ich etwas zu tun:
self.body = ''.join(data)
Ist beitreten die richtige Weg, dies zu tun oder gibt es eine andere (bessere) Möglichkeit, alle Stücke des Setzens zusammen?
Ausgezeichneter Punkt bezüglich der Notwendigkeit von 6 GB anstelle von 3 mit meiner obigen Methode. Ich möchte die Chunks verarbeiten und sie loswerden (schreibe sie einfach in diesem Fall auf die Festplatte), aber ich wollte auch die existierende Semantik beibehalten, die Zugriff auf die Daten im Speicher bietet. Ich muss vielleicht auf Letzteres verzichten. – Parand