【问题标题】:How to create zip file and upload back to s3 using lambda python?如何使用 lambda python 创建 zip 文件并上传回 s3?
【发布时间】:2020-10-30 11:53:32
【问题描述】:

希望每个人都平安快乐。

我给了一个 AWS 任务如下。

要求:文件一上传到 s3 存储桶,就应该被压缩,并且必须上传回另一个 s3 存储桶。

我可以使用 lambda(python) 完成这项任务,但它涉及大量磁盘 IO。所以,我正在寻找一个解决方案,我不需要将传入的 s3 对象存储在 /tmp/ 文件夹中。众所周知,lambda 提供的内存和存储空间非常少(500MB)。因此,想避免这种做法。

那么,有人知道如何即时压缩传入的 s3 文件吗?我只知道,可以借助 s3 对象的流式传输来完成。但无法找到如何使用python语言实现端到端。

提前致谢。

【问题讨论】:

  • 这称为流式传输。在put_object() 上搜索 Python zip 流解决方案并了解 boto3 客户端的流支持。

标签: python amazon-web-services amazon-s3 aws-lambda zip


【解决方案1】:

您可以在 Lambda 中使用 python 生成器来压缩 s3 文件,然后将 zip 文件放回另一个 s3,因为生成器不占用内存。

【讨论】:

  • 你有python生成器的参考链接吗? python 生成器是否不需要将文件存储在 /tmp/ 位置?此解决方案是否也最适合大型 s3 文件?
  • 谢谢纳伦德拉。实际上,我是 aws 和 python 的初学者。是否有任何分步文档或链接,其中正确解释了有关此解决方案的所有内容以及 aws lambda?
  • 我一定会帮你的
  • 嗨纳伦德拉。再次感谢您的回复。请您指导我如何开始理解该链接中给出的代码?完成任务的下一步是什么?
猜你喜欢
  • 2021-04-05
  • 2020-08-07
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
相关资源
最近更新 更多