3

couchdbデータベースにいくつかのサウンドファイルがあります(web2pyとは関係ありません)。私のweb2pyアプリケーションはこのデータベースにアクセスできます。サウンドファイルをストリーミングして、次のようにHTMLオーディオタグで聞くことができるようにします。

<audio src="http://www.myserver.com/.../track06.mp3" preload="auto"></audio>

私はこの提案された例に基づいてこのストリーミングを行うことを計画しています:

def streamer():
    import os
    path=os.path.join(request.folder,'private','largefile.mpeg4')
    return response.stream(open(path,'rb'),chunk_size=4096)

しかし、私はいくつかの未解決の質問があります:

  1. 私のファイル名はローカルファイルシステムではなく、couchdbREST経由でアクセスできるデータベースにあります。どうすればストリーミング用に開くことができますか?
  2. オーディオタグがアクティブ化されると、GET / POST / ...のどのようなリクエストが送信されますか?これはで処理できますweb2pyか?

couchdb基本的に、誰かがを介して添付ファイルをストリーミングする実用的な例があるかどうかを知りたいですweb2py

4

1 に答える 1

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は固定されていますが、これは添付ファイルから取得する必要があります(これを行う方法はまだわかりません)。

于 2012-08-11T12:10:41.637 に答える