Flask send_from_directory用于媒体文件

时间:2013-04-01 22:30:55

标签: nginx flask

您好我有一个小型Flask应用程序,用于家庭网络使用。

目前我使用uWSGI和nginx运行Flask。

该应用程序基本上扫描一个位置并提供媒体文件。下面是渲染这些文件的代码:

@app.route('/get_media/<path:filename>', methods=['GET'])
    def get_media(filename):
        return send_from_directory('/media/', filename)

send_from_directory工作正常,但似乎很慢。我必须承认我并不真正理解它背后的过程。是python服务这些文件还是nginx?我希望nginx能够为这些文件提供服务,但我不确定如何配置别名,因为我希望应用程序遍历文件的目录,但是希望将服务转交给nginx。

非常感谢任何指导。

1 个答案:

答案 0 :(得分:3)

如果你已经在使用nginx,你应该使用nginx提供媒体和静态文件,没有理由用uWSGI和烧瓶来提供它们,开销太多了。

#in case you have structure /path/to/your/media_dir/media
location /media {
   root /path/to/your/media_dir;
}

#in case you have structure /path/to/your/media_dir
location /media {
   alias /path/to/your/media_dir;
}