我正在Google上构建一个Twilio应用程序来播放一个mp3文件。
# Play an MP3 file
resp = VoiceResponse()
resp.play("http://demo.twilio.com/hellomonkey/monkey.mp3")
如果音频链接是上面的Twilio链接,或者是到Amazon S3 (https://s3.amazonaws.com/ivr-test-for-twilio/monkey.mp3)的链接,这是可行的。
然而,当我尝试使用Google链接:https://storage.cloud.google.com/ivr-test/266696687/monkey.mp3时,应用程序失败了。(该文件在Google中正确标记为“音频/mpeg”)。
如果您单击上面的链接,您将看到它重定向到一个更长的链接,该链接的名称不再包含".mp3“,而是正确地播放猴子调用。
然而,Twilio的API不适用于这个链接。我猜是因为这个函数接受多种音频类型。它正在寻找后缀".mp3“,以了解如何将该文件视为mp3
有没有办法强迫Google文件有一个特定的后缀?,我想如果它有适当的后缀并以.mp3结尾的话,这个文件就会播放。我可以想象很多程序,看着一个文件的后缀,并采取相应的行动。
我可以使用亚马逊S3作为解决方案,但是由于应用程序是建立在Google上的,所以我想把它放在一个地方。
发布于 2017-06-02 05:19:34
不要使用https://storage.cloud.google.com。使用https://storage.googleapis.com
第一个域可以用于在带有Google帐户的web浏览器中作为人查看网络上的GCS资源。它可以执行各种重定向,例如提示您登录。为了任何其他目的,您需要另一个域,storage.googleapis.com。
您的另一个问题是,您需要将文件标记为可公开读取,以便Twilio能够读取对象。您可以在云控制台中通过选择对象的共享公共列中的复选框来做到这一点。有关更多信息,请参见sharingdata
https://stackoverflow.com/questions/44319756
复制相似问题