如何将twilio录制移动或下载到amazon s3

如何将twilio录制移动或下载到amazon s3,twilio,Twilio,如何使用twilio sdk下载录音文件,或者如何将录音文件直接从twilio移动到amazon s3。此处为twilio evangelist 录制是通过直接URL公开的,因此为了下载它们,您需要使用您选择的编程语言中的HTTP客户端来对录制URL发出GET请求,并保存返回的数据 有两种方法可以找到URL: 如果您在Twilio中指定了一个URL,则在录制完成后,Twilio将向该URL发出HTTP请求,并将录制所存储的URL作为参数包含在内 利用TwilioRESTAPI。这将向您返回一个记

如何使用twilio sdk下载录音文件,或者如何将录音文件直接从twilio移动到amazon s3。

此处为twilio evangelist

录制是通过直接URL公开的,因此为了下载它们,您需要使用您选择的编程语言中的HTTP客户端来对录制URL发出GET请求,并保存返回的数据

有两种方法可以找到URL:

  • 如果您在Twilio中指定了一个URL,则在录制完成后,Twilio将向该URL发出HTTP请求,并将录制所存储的URL作为参数包含在内

  • 利用TwilioRESTAPI。这将向您返回一个记录资源列表,其中每个资源都包含一个URI参数。将.mp3或.wav添加到该URI以获取请求录制音频所需的URL

  • 下载录音后,您可以使用RESTAPI让Twilio从我们的服务器上删除它。只需向录制uri发出请求


    希望能有所帮助。

    这是我写的一个Ruby脚本。为了获得最快的结果,请在服务器上运行此命令,并将其复制到位于美国东部的bucket中,这就是Twilio所在的位置。我只是在Heroku应用程序上做的,因为Heroku在美国东部。运行heroku Run bash-我的应用程序名。安装gems:

    gem install twilio-ruby aws-sdk --no-ri --no-rdoc
    
    然后启动irb并运行此代码(更新您的凭据和bucket名称)


    是的,谢谢你的回复。但是我需要直接转到AWS s3,而不是下载twilio音频。有什么选择吗?当前场景:我们正在从twilio下载录音到我们的服务器,并将s3装载到其中一个s3存储桶。所需场景:而不是将录制从twilio下载到本地服务器。我需要将录制文件直接从twilio s3移动/复制到我的帐户AWS s3。Devin,我是twilio的新手,正在尝试你的建议。我正在使用
    require 'twilio-ruby'
    account_sid = 'your_account_sid'
    auth_token = 'your_auth_token'
    twilio_rest_client = Twilio::REST::Client.new account_sid, auth_token
    
    require 'aws-sdk'
    access_key_id = 'your_access_key_id'
    secret_access_key = 'your_secret_access_key'
    region = 'us-east-1'
    bucket = 'your-bucket-name'
    Aws.config.update({
      region: region,
      credentials: Aws::Credentials.new(access_key_id, secret_access_key)
    })
    s3 = Aws::S3::Resource.new(region: region)
    
    recordings = twilio_rest_client.account.recordings.list(page_size: 1000)
    
    begin
      begin
        recordings.each do |recording|
          recording.mp3! do |file|
            begin
              path = recording.mp3.gsub('https://api.twilio.com/', '')
              object = s3.bucket(bucket).object(path)
              object.put(body: file.body)
            rescue Aws::S3::Errors::ServiceError => error
              puts error.message
              puts recording.mp3
            end
          end
          recording.delete
        end
      rescue Twilio::REST::RequestError => error
        puts error.message
        puts recording.mp3
      end
    
      recordings = recordings.next_page
    end while !recordings.empty?