我正在使用Python Twilio应用程序并使用Amazon Polly将文本转换为语音。如您所知,Twilio <play>
动词只能从url
播放声音文件。现在,我可以使用 Amazon Polly 将文本转换为语音音频,并将音频文件上传到S3,让Twilio使用公共网址播放。
但是当我使用boto3将mp3文件上传到S3时,内容类型将更改为二进制/八位字节流,这是Twilio不支持的。我试图在boto3中使用content-type参数,但没有成功。当我使用tinys3
库时,它可以工作。但是,我无法将文件上传到S3子目录。 Tinys3只能上传到桶。我用Google搜索但没有看到任何关于tinys3将文件上传到S3子目录的示例。
那么请你帮我解决boto3的内容类型问题,或者将文件上传到带有Tinys3的存储桶中的S3子目录?
答案 0 :(得分:0)
在AWS S3中,存储桶中的所有内容都被视为object。没有什么比你无法上传到子目录了。 test_subdir/test_file.txt
被视为S3存储桶中的一个对象。
使用Tinys3将文件上传到存储桶中的S3子目录:
import tinys3
conn = tinys3.Connection(S3_ACCESS_KEY, S3_SECRET_KEY,tls=True)
f = open('test_file.txt','rb')
print (conn.upload('test_subdir/test_file.txt',f,'test_bucket'))
print (conn.get('test_subdir/test_file.txt','test_bucket'))