Thursday, 6 October 2011

dropbox api用法小记

  首先用到了Socksipy,支持http, sock4, sock5 proxy,可以方便的通过SOCK5去访问dropbox相关链接。

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy_host, proxy_port)
socket.socket = socks.socksocket

  这样就可以走代理了,在用dropbox api之前需要去申请一个APP KEY,需要写到配置文件中去。用auth获得access token:

from dropbox.auth import Authenticator

config = Authenticator.load_config('config.ini')
auth = Authenticator(config)

user_name = # dropbox username
user_password = # dropbox password

access_token = auth.obtain_trusted_access_token(user_name, user_password)

  拿到token以后就可以自由发挥了,这里试了下取到文件目录信息:

from dropbox.client import DropboxClient

client = DropboxClient(config['server'], config['content_server'], config['port'], auth, access_token)
client.metadata('dropbox', '').body

  1. 获取账户信息:
  2. from dropbox.client import DropboxClient client = DropboxClient(config['server'], config['content_server'], config['port'], auth, access_ token) print client.account_info().body
  3. 文件相关API:
  4. 获取thumbnail: thumb = open("vim.png", "wb") thumb_data = client.thumbnail('dropbox', '/vim.png', 'large').read() thumb.write(thumb_data) thumb.close() 获取文件: f = open("vim1.pdf", "wb") f_data = client.get_file('dropbox', '/testfile/vim1.pdf').read() f.write(f_data) f.close()
  除此之外还有文件上传、移动、删除以及创建文件夹,就不一一列举了。
PS:dropbox对path会有处理,比如传这种路径:“/../../../vim1.pdf”,会生成在“/”下面;所有请求都是对相应的URL进行GET/POST操作,例如:调用file_move就是对URL:https://api.dropbox.com//fileops/move的POST请求。

No comments :

Post a Comment