如何将Twilio音频录制文件移动到Amazon S3
问题描述:
我很想理解如何最好地将文件流式传输到Amazon S3。我想打一个Twilio端点,获取位于那里的mp3录音,通过我的Node应用程序传递给Amazon S3。如何将Twilio音频录制文件移动到Amazon S3
我已经看过几个npm streaming/s3库,但是我找不到一个很好的例子,说明如何将文件的GET请求合并到进程中。
下面的函数将捕获mp3文件并将其保存在我的服务器上并将文件上传到Amazon S3。该文件在我的服务器上正确,但Amazon S3版本似乎为空(20kb),下载时无法播放。
我觉得我对这一切都是错误的。 AWS S3 sdk暗示这可以在没有额外的库的情况下完成。预先感谢您的帮助。
我在这里使用Node,npm请求和aws skd。
var request = require('request');
var fs = require('fs');
var AWS = require('aws-sdk');
module.exports = {
postFile : function(req,res){
var s3 = new AWS.S3();
request
.get('http://theTwilioRecordingUrl.mp3')
.on('error', function(err) {
console.log("ERROR");
})
.pipe(fs.createWriteStream("mydownloadedFile.mp3"));
s3.upload({
Bucket: 'bucketname',
Key: 'myuploadedfilename.mp3',
Body:"mydownloadedFile.mp3"}, function(err,data){
if(err){
console.log("AMAZON UPLOAD ERROR", err);
} else {
console.log("AMAZON UPLOAD SUCCESS",data);
}
});
res.status(200).end();
}
}