如何返回二进制文件
我想用 bottle
这个 Python 框架来搭建一个网络服务,专门用来提供一些二进制文件,比如 PDF、图片和 EXE 文件,并且需要有身份验证。
请问用 bottle 能不能提供这些文件呢?我找了很久也没找到相关的教程。
那 性能
怎么样呢?bottle 能处理成千上万的下载请求同时进行吗?
我打算把它和 nginx
和 uwsgi
一起使用。
2 个回答
1
如果你不着急,我建议你试试uWSGI 1.9(它还在开发中,但第一个稳定版本将在10天内发布)。你可以把offload-threads设置为n(n就是你电脑上CPU的数量)。这样,当你从应用程序发送文件时,它会在不同的线程中异步处理(也就是说不会阻塞),这样就能快速释放你的工作线程。虽然在1.4版本中也有离线处理的功能,但在1.9中对应用程序来说是自动的。
2
用Bottle来提供这些文件是完全可以的。你只需要把它们当作静态文件来处理。至于身份验证,我觉得Bottle本身并不支持这个功能(至少我知道的是这样)。不过在性能方面,这就得看你怎么部署了。在普通的线程环境中,每个请求都会分配一个自己的常规线程,我很怀疑你的服务器能否轻松处理成千上万的请求同时到来。不过,文档中提到,使用greenlets
可能会帮助你解决这个问题。
资源:
Bottle静态文件服务:http://bottlepy.org/docs/dev/tutorial.html#routing-static-files
Bottle的greenlets:http://bottlepy.org/docs/dev/async.html#greenlets-to-the-rescue