我遇到过这样的情况:多个后端实例为用户创建了数千个文件,然后将它们上传到 AWS S3/Azure 存储。创建所有文件后,用户想要将它们下载为 zip 文件。我可以创建 zip 文件,然后获取预签名 URL,但我尝试了一些归档解决方案,但所有解决方案都花费了太多时间(数小时)。
有什么方法可以从多个后端实例动态创建 zip 吗?我想在每次创建文件后从任何后端实例附加到 zip。
最佳答案
Zip 本身支持您想要的用例。例如,zip Linux 中的命令:
When given the name of an existing zip archive, zip will replace identically named entries in the zip archive (matching the relative names as stored in the archive) or add entries for new names.
不过,您需要将工作 zip 文件保留在文件系统中的某个位置。我能想到的最明显的选择是 EFS,以便多个实例可以挂载文件系统并访问 zip 文件。
如果您不想修改现有实例/工作负载,您甚至可以在 Lambda 上挂载 EFS。然后为 Lambda 设置 S3 触发器,以便在每次上传新文件时更新 zip 文件。
我认为您不能仅使用 S3,因为您无法更新 S3 对象。然后你需要为每个新文件下载/上传,这确实不理想。
关于amazon-web-services - 从多个实例动态创建/附加到 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71523931/