如何在内存中写入文件或在 Lambda aws 中写入文件?
How to write file in memory or to file in Lambda aws?
我想使用 lambda
从 dynamodb
获取数据库并将计算数据生成到 cvs
文件。
然后将此文件附加到发送给客户的电子邮件中。
步骤
从 dynamodb 获取数据。 (我知道怎么做了。)
写入文件.CSV(需要帮助)。
因为 lambda 没有持久化数据。如何写入文件
- 将 .CSV 附加到电子邮件并发送给客户。 (需要帮助)
您是否有用于发送电子邮件的现有设置?发送电子邮件时,您不一定需要保存文件来创建文件附件。
直接忽略下面回复中的fs.readFile语句
Sending mails with attachment via NodeJS
如果您正在编写 CSV,您可能需要将数据流式传输到 S3。 Lambda 有一个很好的示例 here,用于从缓冲区流式传输图像数据。显然你没有使用图像,但概念大致相同。
- 从数据库获取数据
- 根据需要格式化它。我建议使用 csv-write-stream.
之类的内容查看流
- 使用类似 s3-streaming-upload or the aws-sdk.
的方式将数据流式传输到 s3
- 作为 SDK 响应的一部分,您将获得文件的位置。
我会使用 mandrill (https://mandrillapp.com/api/docs/messages.html),因为它免费,简单而且很棒。您可以将附件内容设置为base64。你的可能看起来像这样:
"attachments": [
{
"type": "text/csv",
"name": "myfile.csv",
"content": new Buffer( myCsvContent ).toString('base64')
}
]
我没有对此进行测试,但最近做了类似的事情,这种通用方法应该适合你。
我想使用 lambda
从 dynamodb
获取数据库并将计算数据生成到 cvs
文件。
然后将此文件附加到发送给客户的电子邮件中。
步骤
从 dynamodb 获取数据。 (我知道怎么做了。)
写入文件.CSV(需要帮助)。
因为 lambda 没有持久化数据。如何写入文件
- 将 .CSV 附加到电子邮件并发送给客户。 (需要帮助)
您是否有用于发送电子邮件的现有设置?发送电子邮件时,您不一定需要保存文件来创建文件附件。
直接忽略下面回复中的fs.readFile语句
Sending mails with attachment via NodeJS
如果您正在编写 CSV,您可能需要将数据流式传输到 S3。 Lambda 有一个很好的示例 here,用于从缓冲区流式传输图像数据。显然你没有使用图像,但概念大致相同。
- 从数据库获取数据
- 根据需要格式化它。我建议使用 csv-write-stream. 之类的内容查看流
- 使用类似 s3-streaming-upload or the aws-sdk. 的方式将数据流式传输到 s3
- 作为 SDK 响应的一部分,您将获得文件的位置。
我会使用 mandrill (https://mandrillapp.com/api/docs/messages.html),因为它
免费,简单而且很棒。您可以将附件内容设置为base64。你的可能看起来像这样:"attachments": [ { "type": "text/csv", "name": "myfile.csv", "content": new Buffer( myCsvContent ).toString('base64') } ]
我没有对此进行测试,但最近做了类似的事情,这种通用方法应该适合你。