节点js文件上传到s3或本地

时间:2014-08-28 08:00:44

标签: node.js file-upload amazon-web-services amazon-s3 formidable

我想为节点后端创建文件上传服务

根据配置,可以将文件上传到amazon s3存储桶或本地服务器。

据我了解

我可以使用s3-upload stream上传到s3存储桶。我有以下问题

  1. 在npm mpdule页面上的示例

    var read = fs.createReadStream('。/ path / to / file.ext');

  2. 使用本地文件创建流。如何从客户端读取输入流并将其传递给s3。我可以使用强力吗?

    文件大小可能非常大。上传服务应该是生产就绪,可以提供多个请求。 指向我的用例的任何文档或指南将非常有帮助

3 个答案:

答案 0 :(得分:1)

如果想坚持使用s3-upload-stream,我建议您使用Busboy:

https://www.npmjs.com/package/busboy

busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
  // Instead of the events 'data' and 'end' as the show in the documentation
  // you can just pipe the file to the upload from s3-upload-stream

  file.pipe(upload);
});

我从上面的链接中获取这些代码。您从busboy获得的文件是您可读的流。

希望有所帮助。

答案 1 :(得分:0)

您可以将AWS JavaScript SDK用于S3。使用Node.js有一些examples

答案 2 :(得分:0)

有可用于AWS的node.js SDK已经有上传到S3的方法。 http://aws.amazon.com/sdk-for-node-js/