Python:从Minio对象创建Zip文件时每个文件出现重复条目
在我的应用程序中,我需要从Minio存储中获取文件,并将它们打包成一个Zip文件。有些文件可能非常大,所以我尝试分块写入,以便更高效地处理这个过程。然而,结果是生成的Zip文件里有多个相同文件名的条目。我猜这些是分块的文件。请问我该如何将这些分块合并,以便在Zip文件中只保留原始文件?或者有没有更好的方法来处理将大文件写入Zip的过程?
这是我写入分块的代码:
zip_buffer = io.BytesIO()
with zipfile.ZipFile(zip_buffer, "w") as zip_file:
for url in minio_urls:
file_name = url.split("/")[-1]
# Retrieve the Minio object
minio_object, object_name = get_object_from_minio(url)
stream = minio_object.stream()
while True:
chunk = next(stream, None) # Read the next chunk
if chunk is None:
break
zip_file.writestr(file_name, chunk)
1 个回答
1
zip_file.writestr()
这个方法适合在你已经准备好要写入的所有内容时一次性写入。如果你想分段写入内容,就需要先用 ent = zip_file.open()
打开一个条目,然后再用 ent.write()
来写入。