带节点的 AWS Lambda - 将文件保存到 Lambda 的文件系统中
AWS Lambda with Node - saving files into Lambda's file system
我需要将从 S3 获取的文件保存到 Lambda 的文件系统中,我想知道我是否可以仅使用 fs.writeFileSync
来做到这一点?
或者我是否仍然必须按照此处所述使用 context
函数:
(试图找到更新的示例,但找不到)。
推荐的方法是什么?
请指教
Lambda 不允许访问本地文件系统。它意味着成为一个短暂的环境。它们允许访问 /tmp
文件夹,但最多只能访问 512MB。如果您想在函数的同时进行存储,则需要实施 AWS S3 或 AWS EFS。
是的,您可以使用典型的 fs 函数从本地磁盘 read/write,但请注意写入仅限于 /tmp
目录和 Lambda 函数可用的最大磁盘空间位置是 512 MB。另请注意,在那里写入的文件可能会持续到下一次(热)Lambda 调用。
如果您只想将对象从 S3 下载到本地磁盘(假设它适合可用磁盘空间),那么您可以结合使用 AWS SDK 方法和 Node.js 流式传输到 stream the content to disk。
此外,值得注意的是,根据您的应用程序,您可以通过流处理 RAM 中的整个 S3 对象,而无需实际持久化到磁盘。如果您的对象大小超过 512MB,这将很有帮助。
如果您需要保留非常大的文件,请考虑使用 Elastic File System。
我需要将从 S3 获取的文件保存到 Lambda 的文件系统中,我想知道我是否可以仅使用 fs.writeFileSync
来做到这一点?
或者我是否仍然必须按照此处所述使用 context
函数:
(试图找到更新的示例,但找不到)。
推荐的方法是什么?
请指教
Lambda 不允许访问本地文件系统。它意味着成为一个短暂的环境。它们允许访问 /tmp
文件夹,但最多只能访问 512MB。如果您想在函数的同时进行存储,则需要实施 AWS S3 或 AWS EFS。
是的,您可以使用典型的 fs 函数从本地磁盘 read/write,但请注意写入仅限于 /tmp
目录和 Lambda 函数可用的最大磁盘空间位置是 512 MB。另请注意,在那里写入的文件可能会持续到下一次(热)Lambda 调用。
如果您只想将对象从 S3 下载到本地磁盘(假设它适合可用磁盘空间),那么您可以结合使用 AWS SDK 方法和 Node.js 流式传输到 stream the content to disk。
此外,值得注意的是,根据您的应用程序,您可以通过流处理 RAM 中的整个 S3 对象,而无需实际持久化到磁盘。如果您的对象大小超过 512MB,这将很有帮助。
如果您需要保留非常大的文件,请考虑使用 Elastic File System。