有没有办法通过调用python中的aws lambda函数将文件读写到本地存储系统

有没有办法通过调用python中的aws lambda函数将文件读写到本地存储系统,python,aws-lambda,Python,Aws Lambda,我有一个python函数,可以写入音频文件。我想在触发AWS Lambda后立即将文件发送到本地系统。我不想用S3桶来做这个。 我已经检查了将文件存储在aws的/tmp/文件夹中的方法。但我不知道如何将文件传送到本地文件系统。 如果还有别的办法,请告诉我。或者如何将音频文件从lambda/tmp/文件夹获取到我的本地计算机 我已成功写入/tmp/文件夹,它工作正常 以('/tmp/filename.wav',wb')作为f的: f、 写作(内容) 一旦我从API网关触发lambda函数,我就希

我有一个python函数,可以写入音频文件。我想在触发AWS Lambda后立即将文件发送到本地系统。我不想用S3桶来做这个。 我已经检查了将文件存储在aws的/tmp/文件夹中的方法。但我不知道如何将文件传送到本地文件系统。 如果还有别的办法,请告诉我。或者如何将音频文件从lambda/tmp/文件夹获取到我的本地计算机

我已成功写入/tmp/文件夹,它工作正常

以('/tmp/filename.wav',wb')作为f的
:
f、 写作(内容)

一旦我从API网关触发lambda函数,我就希望本地机器上有“wav”文件。

一种可能是lambda使用将输出写入Dropbox。Dropbox非常擅长将文件同步到本地计算机


您需要小心使用密钥-我建议这样做,您可以。

您说过希望在调用Lambda后立即将文件保存到本地,但我认为您的意思是,只要Lambda完成了任何操作,您都希望将生成的文件保存到本地计算机

如果我对上述内容的理解是正确的,那么根据Lambda和API网关的限制,您可以返回音频文件作为函数的结果;在函数中,只需让它在响应中返回结果文件

根据AWS文档,API网关的最大有效负载大小为10MB,API网关的超时时间为30秒()。也就是说,Lambda的最大调用负载是6MB()。这两个组合意味着来自Lambda的响应必须小于6MB,并且必须在30秒内完成。如果响应超过6MB或超过30秒,则您将收到错误


尽管您提到不希望使用S3,但更好的模式是使用S3存储文件,并让Lambda/API网关返回一个“302找到”重定向,其中包含文件在S3中的位置,尤其是如果文件大小可能大于6MB;您的浏览器仍将自动将其下载到本地计算机,但您不必担心API网关超时或Lambda响应限制。

确实有,但需要设置的内容很多—几乎可以肯定这太多了。不过,要构建自己的系统,您需要在本地机器上随时运行一些东西,可以从internet安全访问这些东西,以便AWS上的lambda可以向其发送东西。S3是实现这一目标的最简单的方法。是否有一种方法可以在触发lambda函数时发送文件作为响应。否。lambda对你的本地机器一无所知。当lambda被触发时,您的机器可能会关闭,或者您可能有多台机器。即使它知道在哪里发送东西,你也需要在你的机器上运行一些东西来接收文件。lambda是完全异步的。你能做的就是把文件放在某个地方,这样你就可以来取它了。这可能是SNS队列之类的,但最常见的地方是S3。我不明白你为什么不想使用它。你可以运行一个简单的、公开可用的sftp服务器,让lambda通过sftp将文件推送到你的机器上。-您可以使用ngrok绕过任何防火墙问题,使您的sftp服务器公开可用,即使您无法为此打开公共传入端口。