首页 > 解决方案 > 如何在 AWS lambda 函数执行期间在 AWS S3 存储桶中写入文件?

问题描述

我需要使用docx4j 和 iText生成文件(.docx,.pdf)。最终生成的文档应使用 AWS lambda 函数存储在 S3 存储桶中。

我尝试了几个选项,但没有一个解决方案适合我。我可以使用我的 java 代码将本地文件上传到 S3 存储桶并将普通文本文件写入 AWS S3 存储桶。

但是我的要求是,首先我必须为所需位置(即 S3 存储桶)的(.docx,.pdf)创建文件路径,然后调用我的代码以生成文件(.docx,.pdf)并保存它到 S3 存储桶。

注意:我希望调用我的保存方法(lambda 处理程序),它将直接将文件保存在 S3 存储桶中。或者任何一种方式,如果 s3 不允许直接保存文件,那么 aws 提供什么替代方案来在本地/临时保存文件,以便稍后我可以将这些临时文件推送到 s3 存储桶中?

如果有人在这方面工作或知道如何做到这一点,请分享他们的意见。

标签: javaamazon-web-servicesamazon-s3aws-lambdaaws-sdk

解决方案


有两种方法可以做到这一点。第一种方法是先存储文件,/tmp/然后使用 putobject API 上传到 s3,指定存储桶和密钥名。

第二种方法是使用相同的 putobject 但指定您的对象直接将对象上传到 s3。

可以在此处找到相关文档

可以在此处找到详细示例


推荐阅读