file-upload - 如何使用node.js强大的库接收上传的文件并使用knox将其保存到Amazon S3?

标签 file-upload node.js amazon-s3

我想从网页上传表单并直接将文件保存到 S3,而不先将其保存到磁盘。这个node.js应用程序将部署到Heroku,那里没有本地磁盘来保存文件。

node-formidable库提供了一种上传文件并将其保存到磁盘的好方法。我不知道如何首先关闭强大的(或连接形式)保存文件。 Knox另一方面,库提供了一种从磁盘读取文件并将其保存在 Amazon S3 上的方法。

1) 有没有办法 Hook formidable 的事件(在数据上)以将流发送到 Knox 的事件,以便我可以直接将上传的文件保存在我的 Amazon S3 存储桶中? 2)是否有任何库或代码片段可以让我直接获取上传的文件并使用node.js将其保存到Amazon S3?

有一个类似的问题here但那里的答案并没有解决不将文件保存到磁盘的问题。

最佳答案

貌似没有什么好的办法。原因之一可能是 Node 强大的库将上传的文件保存到磁盘。我找不到任何其他选择。 knox 库获取磁盘上保存的文件,并使用您的 Amazon S3 凭证将其上传到 Amazon。

由于在 Heroku 上我无法在本地保存文件,所以我最终使用 transloadit服务。虽然他们的authentication文档有一些学习曲线,我发现该服务很有用。

对于那些想要通过node.js使用transloadit的人,以下代码示例可能会有所帮助(transloadit页面只有Ruby和PHP示例)

var crypto, signature;
crypto = require('crypto');
signature = crypto.createHmac("sha1", 'auth secret').
    update('some string').
    digest("hex")
console.log(signature);

关于file-upload - 如何使用node.js强大的库接收上传的文件并使用knox将其保存到Amazon S3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7505871/

相关文章:

javascript - Node.js 连接到 mongodb

node.js - 列不存在于 order by 子句中

amazon-web-services - 使用 aws cli 将带有元数据的项目上传到 Amazon S3 存储桶

file - 如何在 Flask Web Framework 中重命名上传的文件

html - 通过 HTML 表单上传整个目录

php - 如果文件名存在于媒体上传目录中,则在文件名末尾添加数字

php - 完整的安全图像上传脚本

javascript - 祝福名单失败

amazon-web-services - 使用 --no-verify-ssl 通过 aws cli 将数据复制到 s3。安全与否?

java - 如何从aws s3将视频上传到azure媒体服务