【问题标题】:Stream a couchdb attachment with web2py使用 web2py 流式传输 couchdb 附件
【发布时间】:2012-08-09 09:24:09
【问题描述】:

我在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)

但我有一些悬而未决的问题:

  1. 我的 filename 不在本地文件系统中,而是在 couchdb 数据库中,可通过 REST 访问。如何打开它以进行流式传输?
  2. 音频标签激活后会发送什么样的请求,GET/POST/...?可以用web2py 处理吗?

基本上,我想知道是否有人有通过web2py 流式传输couchdbattachments 的工作示例。

【问题讨论】:

    标签: python streaming couchdb web2py html5-audio


    【解决方案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 函数只是创建一个 url 来访问附件。 content_type 是固定的,但是应该从附件中获取(我还不知道怎么做)。

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 2016-05-03
      • 2011-05-11
      • 2015-12-23
      • 2018-08-01
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      相关资源
      最近更新 更多