如何使用request.js将networking图像传输到s3上传链接

我试图从一个url获取一张照片,并将其传送到一个PUT链接,并上传到一个亚马逊S3存储桶。 这个PUT链接是一个预先签名的上传url,所以需要发生的是PUT请求的主体需要包含照片数据。

我已经尝试了以下,但它似乎并没有工作 – 它似乎并没有通过获取的任何数据。

var request = require('request'); request.get('https://SomeUrlThatRedirectsAFewTimes.com').pipe(request.put('https://mys3uploadlink.com')); 

使用AWS开发工具包,您可以传递一个stream作为上传的Body 。 所以我只是将stream保存到一个variables,并将其作为正文传递。 你可以在这里看到这个文档。

我从来没有这样做过,但我会假设你做了这样的事情:

 function upload(cb) { var s3 = new AWS.S3(...); var stream = request.get(myURL); stream.on('error', cb) .on('close', cb); var params = {Bucket: 'bucket', Key: 'key', Body: stream}; var options = {partSize: 10 * 1024 * 1024, queueSize: 1}; s3.upload(params, options, cb); }