当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 如何使用request.js将网络映像管道传输到s3上载链接

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在尝试从网址获取照片并将其传输到PUT链接,该链接上传到亚马逊s3存储桶.此PUT链接是预先签名的上传URL,因此需要发生的所有事情是PUT请求的正文需要包含照片数据. 我尝试过以下但
我正在尝试从网址获取照片并将其传输到PUT链接,该链接上传到亚马逊s3存储桶.此PUT链接是预先签名的上传URL,因此需要发生的所有事情是PUT请求的正文需要包含照片数据.

我尝试过以下但它似乎没有用 – 它似乎没有通过get中的任何数据.

var request = require('request');

request.get('https://SomeUrlThatRedirectsAFewTimes.com').pipe(request.put('https://mys3uploadlink.com'));
使用AWS开发工具包,您可以将流作为上传主体传递.所以我只是将流保存到变量中,并将其作为正文传递.您可以看到此 here的文档.

我自己从未这样做过,但我假设你做的是这样的:

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);
}
网友评论