1

チェリーピーを使用してメディアサーバーを作成しようとしていますが、起動時に構成で設定されていないディレクトリにファイルを提供するためにチェリーピーを取得できません。ドライブのルート ディレクトリを公開したくありません。必要に応じて一度にディレクトリを公開することをお勧めします。これを行う方法はありますか?

ここに私の現在のコードの関連するスニペットがあります。

@cherrypy.expose
def serve_mp3(self, mp3_path):
    #cherrypy.config.update({"media":{
    #"tools.staticdir.on" : True,
    #"tools.staticdir.root" : "C:\\Documents and Settings\\sdc\\My Documents\\My Music",
    #"tools.staticdir.dir" : "",
    #"tools.staticfile.root" : "C:\\Documents and Settings\\sdc\\My Documents\\My Music"
    #}})
    static_handler = cherrypy.tools.staticdir.handler(section="/media", dir="C:\\Documents and Settings\\sdc\\My Documents\\My Music")
    cherrypy.tree.mount(static_handler, '/media')
    mp3 = mp3_path.rsplit("\\",1)[1]
    return "media/" + urllib.quote(mp3)

cyraxjoe に感謝します

    @cherrypy.expose
    def serve_mp3(self, mp3_path):
      mp3_path = urllib.unquote(mp3_path)
      return(cherrypy.lib.static.serve_file(mp3_path, content_type="audio/mpeg", disposition=None, name=None))

オーディオタグを提供するのにうまくいきました。存在するので、これは基本的に私のhddへの正面玄関アクセスであることを知っていますが、これは最初のステップにすぎず、最終結果はデー​​タベースによって駆動されます

4

1 に答える 1

1

ハンドラーの代わりに関数を使用して静的ファイルを直接提供する必要があると思います。ツールと戦っています。関数を直接呼び出すことで、必要に応じて任意のパスまたはファイル オブジェクトを提供できます。

于 2012-06-29T22:03:55.247 に答える