Python 通过Flask和Nginx提供静态文件?

Python 通过Flask和Nginx提供静态文件?,python,nginx,flask,Python,Nginx,Flask,我有一些静态文件,我一直在通过Flask提供。对于给定的请求,我运行一些处理和身份验证,然后提供文件。我一直在使用Flask的send_from_目录来实现这一点,但它似乎会将文件缓存一段时间,这对我没有好处。我在nginx后面运行Flask,因此我可以部分通过nginx提供服务,但在提供文件之前,我需要运行处理/身份验证 所以,主要的问题是,假设在提供服务之前需要在Flask中进行处理/身份验证,那么如何使用Flask和nginx提供未缓存的静态文件 注意:我已经看到了详细说明如何通过ngin

我有一些静态文件,我一直在通过Flask提供。对于给定的请求,我运行一些处理和身份验证,然后提供文件。我一直在使用Flask的send_from_目录来实现这一点,但它似乎会将文件缓存一段时间,这对我没有好处。我在nginx后面运行Flask,因此我可以部分通过nginx提供服务,但在提供文件之前,我需要运行处理/身份验证

所以,主要的问题是,假设在提供服务之前需要在Flask中进行处理/身份验证,那么如何使用Flask和nginx提供未缓存的静态文件


注意:我已经看到了详细说明如何通过nginx提供文件的答案,但这对我没有好处,因为在提供文件之前,我必须在Flask中进行处理。

默认情况下,Flask会将您使用send\u从\u目录发送的文件缓存12小时。您至少有几个选项可以克服这种行为

您可以将配置值SEND_FILE_MAX_AGE_DEFAULT更改为小于1秒或0秒的值,这将影响整个应用程序使用的默认值。或者,您可以直接将其传递给从您不需要使用关键字cache\u timeout的缓存的目录调用发送\u

e、 g


或者您可以将Flask子类化并重写该方法。

可以使用auth\u请求模块进行身份验证
 @app.route('/uploads/<path:filename>')
 def download_file(filename):
     return send_from_directory(app.config['UPLOAD_FOLDER'],
                                filename, cache_timeout = 0)