Python:从 Minio 对象创建 Zip 文件会导致每个文件出现重复条目

问题描述 投票:0回答:1

在我的应用程序中,我需要从 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)
python stream zip minio
1个回答
0
投票

zip_file.writestr()
仅当您一次性写入全部条目内容时才会使用。如果您想一次写入一大块条目,则需要使用
ent = zip_file.open()
,然后使用
ent.write()

© www.soinside.com 2019 - 2024. All rights reserved.