【问题标题】:How to Move a Twilio Audio Recording File to Amazon S3如何将 Twilio 录音文件移动到 Amazon S3
【发布时间】:2016-03-27 22:42:51
【问题描述】:

我正在努力了解如何最好地将文件流式传输到 Amazon S3。我想点击一个 Twilio 端点,获取位于那里的 mp3 录音,将它通过我的 Node 应用程序传递到 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();
  }
}

【问题讨论】:

    标签: node.js amazon-web-services amazon-s3 twilio


    【解决方案1】:

    Twilio 会对recording 的每个请求进行额外处理,因此我们无法提供公共 S3 网址。从 Twilio 的 Url 获取本地副本并保存到 S3 是将记录移动到您自己的存储桶的最佳方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-24
      • 2015-09-01
      • 2019-10-05
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      相关资源
      最近更新 更多