与dropbox兼容的wsgi http接口

dropboxwsgi的Python项目详细描述


dropboxwsgi是一个Python包,它提供一个WSGI应用程序 在Dropbox API中实现HTTP接口。这个包裹 包括一个服务器应用程序,也称为dropboxwsgi,它运行 命令行中的wsgi应用程序。

这在您希望为网站提供服务的情况下非常有用 从你的Dropbox中,无论是对世界还是在一个私人网络中。 将此与当前链接Dropbox桌面的解决方案进行比较 服务器上的客户端,并从Dropbox文件夹中提供服务。

这个包还包含一个缓存中间件,它将缓存数据 从Dropbox API到本地磁盘(或任何存储 提供的实现)以消除冗余数据传输 在服务器和Dropbox之间。

顺便说一下,这个包还支持python 3。耶!

安装

安装简单有趣:

$ python setup.py install

功能

  • 支持标准的http缓存头(etag,last modified)和逻辑
  • 可选的自动生成的目录列表
  • “index.html”文件支持
  • 缓存中间件(位于dropboxwsgi.caching
  • 支持python 2.5+、3+、pypy
  • 如果可用,自动使用gevent

服务器应用程序使用情况

dropboxwsgi既是服务器应用程序又是库。我们试试看 首先在命令行上使用它:

$ cat <<EOF > config.ini
[Credentials]
consumer_key = <your_dropbox_api_key>
consumer_secret = <your_dropbox_api_secret>
access_type = app_folder

[Server]
http_root = http://localhost:8080
listen = 8080
EOF
$ dropboxwsgi -c config.ini -l info
Server is running; using wsgiref server

很简单。现在将浏览器指向http://localhost:8080/。如果 如果要在生产环境中运行,我建议使用geventwsgi 服务器并使用nginx作为前端代理。

库使用

dropboxwsgi这样的wsgi应用程序的好处是 能够在多种服务器环境中运行。App EngineHeroku我想起来了,但是在自己的vps上运行也可以。让我们 请使用python中包含的参考wsgi实现进行尝试:

#!/usr/bin/python

from wsgiref.simple_server import make_server
from dropboxwsgi.dropboxwsgi import make_app, MemoryCredStorage

config = dict(http_root="http://localhost:8080",
              consumer_key="<your dropbox api key",
              consumer_secret="<your dropbox api secret>",
              access_type"dropbox or app_folder")

app = make_app(config, MemoryCredStorage())

make_server("", 8080, app).serve_forever()

vanilla wsgi应用程序提供了标准的http缓存头 (etag和最后一次修改)但其他方面不会破坏http 标题空间。这使得您可以将尽可能多的中间件分层 在应用程序和服务器之间。

扩展性

如果我还没有足够的压力,让我再试一次。 有几十个中间件包可用于wsgi,甚至更多 讲http的代理服务器。扩展dropboxwsgi只是 把东西连在一起的问题。你想要一个缓存Dropbox 具有http身份验证的服务器?Squid+nginx+dropboxwsgi解决了 问题。可能性是无穷的!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ADB设备不显示手机、og droid   java使用存储和保存方法写入属性文件   java为什么要打印这个结果   JavaSpring自动连线和并行流   java如何在Hashmap中存储KStream对象类型的值?   Android中Telugu字符串的java正则表达式?   java平方求幂   Eclipse和Tomcat的java错误   Java数组不继续循环   Jsoup未解析java嵌套html   java Android:如何知道MediaPlayer是否暂停?   跟踪Java POJO类中字段的空值集的最佳方法   java Spring在应用程序属性相对与绝对中配置工作目录?   向固定大小的平面添加随机放置的直线矩形的java方法   JavaEclipse和jasper报告:如何定位log4j。财产?