node.js - 如何使用 request.js 将网络图像通过管道传输到 s3 上传链接

标签 node.js node-request

我正在尝试从 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/

相关文章:

node.js - 更新时sequelize的返回值是多少?

node.js - 使用相同的回调函数异步多个请求

node.js - NodeJS : Request Library - What is the Proper way to use userQueryString?

node.js - 如何从 node.js 中的请求模块获取 cookie?

javascript - 将节点请求模块与 AWS Lambda 和 API Gateway 结合使用

node.js - 从 NodeJS 服务器在同构的react-redux应用程序中设置存储的初始状态(我正在使用react-router)

mysql - NodeJs : how to resolve Error: connect ETIMEDOUT xx. xx.xx:xxxx

node.js - Github个人访问 token 在nodeJS中的api请求调用中不起作用

javascript - ES6 中的模块模式错误(增强)

node.js - 使用 Node Request 从 url 下载图像