我在couchdb
数据库(与web2py无关)中有一些声音文件。我的web2py
应用程序可以访问此数据库,我想流式传输声音文件,以便可以使用HTML音频标记来监听它们,如下所示:
<audio src="http://www.myserver.com/.../track06.mp3" preload="auto"></audio>
我打算根据此suggested example
进行此流式传输def streamer():
import os
path=os.path.join(request.folder,'private','largefile.mpeg4')
return response.stream(open(path,'rb'),chunk_size=4096)
但我有一些悬而未决的问题:
couchdb
数据库中,可通过REST访问。我如何打开进行流式传输?web2py
处理吗?基本上,我想知道某人是否有通过couchdb
传输web2py
附件的实际示例。
答案 0 :(得分:1)
我现在使用的解决方案是:
def open_remote_recording():
recording_doc_id, recording_id = tuple(request.args)
url = get_doc_url(server = RECORDINGS_SERVER, database = RECORDINGS_DATABASE, doc_id = recording_doc_id, attachment = recording_id)
content_type = 'audio/mp3'
f = urllib.urlopen(url)
return f
@auth.requires_login()
def recordings():
f = open_remote_recording()
return response.stream(f, chunk_size=4096)
get_doc_url
功能只是创建一个访问附件的网址。
content_type是固定的,但这应该从附件中获取(我还不知道如何做)。