我正在尝试从 url 获取照片并将其通过管道传输到上传到 amazon s3 存储桶的 PUT 链接。此 PUT 链接是一个预签名的上传 URL,因此只需 PUT 请求的主体包含照片数据即可。
我已经尝试了以下方法,但它似乎没有用 - 它似乎没有通过 get 中的任何数据。
var request = require('request');
request.get('https://SomeUrlThatRedirectsAFewTimes.com').pipe(request.put('https://mys3uploadlink.com'));
最佳答案
使用 AWS 开发工具包,您可以将流作为上传的 Body
传递。所以我只是将流保存到一个变量,并将其作为正文传递。您可以查看此 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);
}
关于node.js - 如何使用 request.js 将网络图像通过管道传输到 s3 上传链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31820430/