![]() |
1
42
S3并不是为了实现这一点而设计的;通常,您必须下载文件,处理它并上传提取的文件。 但是,可能有几个选项:
您需要创建、打包和上传一个用
最后,您需要找到一种方法来触发此代码——通常,在Lambda中,这将通过将zip文件上传到S3来自动触发。如果文件已经存在,您可能需要通过
然而,这是一种非常复杂的避免下载的方法,只有在需要处理大量zip文件时才值得这样做!另请注意(截至2018年10月)Lambda功能限制为15分钟
maximum duration
(
default timeout
是3秒),因此如果您的文件非常大,可能会耗尽时间-但由于
|
![]() |
2
2
如果将数据保存在AWS中是目标,您可以使用AWS Lambda:
如果该功能是通过触发器启动的,Lambda将建议您将内容放置在单独的S3位置,以避免意外循环。要打开存档,请处理它,然后返回内容,您可以执行以下操作。
上面的代码通过
我已经在响应中包括了读取CSV文件并返回数据和状态代码200的下一步。记住,你的需求可能不同。此示例将数据包装在
|
|
3
0
以下是使用
您需要调整
|
![]() |
4
0
您可以使用AWS Lambda。您可以编写一个Python代码,使用boto3连接到S3。然后,您可以将文件读入缓冲区,并使用以下库解压缩它们:
这里还有一个教程: https://betterprogramming.pub/unzip-and-gzip-incoming-s3-files-with-aws-lambda-f7bccf0099c9 |
![]() |
5
0
我遇到了一个类似的问题,并通过使用Java AWS SDK解决了它。您仍然可以下载文件并将其重新上传到S3,但关键是“流式传输”内容,而无需将任何数据保存在内存中或写入磁盘。 我制作了一个可用于此目的的库,可在 Maven Central ,这里是GitHub链接: nejckorasa/s3-stream-unzip . 解压缩无需将数据保存在内存中或写入磁盘即可实现。这使得它适合于大型数据文件-它已用于解压缩大小为100GB以上的文件。 您可以将其集成到Lambda或任何可以访问S3的地方。 |
![]() |
hallibut · Lambda功能不工作的SST热重新加载 4 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 4 月前 |
![]() |
Sampgun · CDN调用与lambda调用的巨大差异 6 月前 |
![]() |
Tiago · 如何允许从一个安全组到另一个组的所有流量? 10 月前 |
![]() |
explorer · AWS SageMaker项目模板创建失败 10 月前 |