如何解决Twilio访问GCP存储桶音频文件时的11750错误?
解决Twilio无法访问GCP存储桶音频文件的问题
问题分析
你当前使用的https://storage.cloud.google.com/...是GCP控制台的Web界面跳转链接,而非对象存储的直接访问地址:
- 浏览器登录GCP账号后,会自动完成跳转拿到音频文件;
- Twilio的请求未携带GCP认证信息,访问该URL会触发302重定向,返回的是登录页面(HTML内容)而非音频,Twilio无法识别这种非音频内容,因此触发11750错误(TwiML响应体过大)。
解决方案
1. 使用GCP存储桶的直接访问URL
替换为对象存储的标准访问格式:
https://[BUCKET_NAME].storage.googleapis.com/[FILE_PATH]
示例:若存储桶名为my-audio-bucket,文件路径为audio/welcome.wav,则URL为:
https://my-audio-bucket.storage.googleapis.com/audio/welcome.wav
2. 确保文件可被Twilio访问
根据需求选择以下权限方案:
- 公开可读(适合无需保密的音频):在GCP控制台找到目标文件,点击「共享」,添加
allUsers角色为「读者」,保存后任何未认证请求都能直接访问该文件。 - 签名URL(适合私有文件):生成带有效期的签名URL,Twilio可通过该URL访问私有文件。使用
gsutil命令生成示例:
生成的URL包含签名参数,可直接填入TwiML的gsutil signurl -d 7d /path/to/your-private-key.json gs://my-audio-bucket/audio/welcome.wav<Play>标签。
3. 验证URL有效性
用curl测试新URL,确认返回HTTP 200和音频内容:
curl -v https://my-audio-bucket.storage.googleapis.com/audio/welcome.wav
修改后的TwiML示例
<?xml version="1.0" encoding="UTF-8"?> <Response> <Play>https://my-audio-bucket.storage.googleapis.com/audio/welcome.wav</Play> </Response>
内容的提问来源于stack exchange,提问作者Foobar
相关产品推荐
相关产品推荐

