跳转到主要内容

基于Twisted的Box (box.net) API v2.0的异步接口

项目描述

txboxdotnet

Twisted-based python async interface for Box (box.net) API (version 2.0).

使用示例

以下脚本将打印box.net根目录的列表,上传“test.txt”文件,尝试在更新后的目录列表中找到它,然后删除它。

from twisted.internet import defer, reactor
from txboxdotnet.api_v2 import txBoxAPI

api = txBoxAPI(
    client_id='...',
    client_secret='...', ... )

if not api.auth_code:
    print '\n'.join([
        'Visit the following URL in any web browser (firefox, chrome, safari, etc),',
            '  authorize there, confirm access permissions, and paste URL of an empty page',
            '  (starting with "https://success.box.com/") you will get',
            '  redirected to into "auth_code" value in "config" dict above.\n',
        'URL to visit:\n  {}'.format(api.auth_user_get_url()) ])
    exit()

if re.search(r'^https?://', api.auth_code):
    api.auth_user_process_url(api.auth_code)

@defer.inlineCallbacks
def do_stuff():

    # Print root directory listing
    print list(e['name'] for e in (yield api.listdir()))

    # Upload "test.txt" file from local current directory
    file_info = yield api.put('test.txt')

    # Find just-uploaded "test.txt" file by name
    file_id = yield api.resolve_path('test.txt')

    # Check that id matches uploaded file
    assert file_info['id'] == file_id

    # Remove the file
    yield api.delete(file_id)

do_stuff().addBoth(lambda ignored: reactor.stop())
reactor.run()

请注意,传递给上面txBoxAPI类初始化的参数应包含认证数据,这些数据可以从“client_id”和“client_secret”中提取,这些是在box.net上应用注册后提供的。

服务(至少现在)有一个相当令人讨厌的要求,即它提供的“auth_code”在授权API访问请求后只有效30秒。有关此过程的更多信息,请参阅API认证文档

有关更完整的示例(包括oauth2内容),请参阅if __name__ == '__main__':之后的api_v2.py代码(将来需要更好的示例,欢迎提交补丁!)。

安装

这是一个针对Python 2.7的常规包(不是3.X)。

使用pip是最佳方式

% pip install txboxdotnet

如果您没有,请使用

% easy_install pip
% pip install txboxdotnet

或者(另请参阅

% curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
% pip install txboxdotnet

或者,如果您绝对必须

% easy_install txboxdotnet

但是,您真的不应该这样做。

当前git版本可以按以下方式安装

% pip install 'git+https://github.com/mk-fg/txboxdotnet.git#egg=txboxdotnet'

请注意,要在系统范围内的PATH和site-packages中安装软件,通常需要提升权限。使用“install –user”,~/.pydistutils.cfgvirtualenv在自定义路径中进行无权限安装。

要求

实现的方法

实现API方法包装器的矩阵(与文档中的顺序相同)

  • 文件夹

    • [x] 列:listdir

    • [x] 创建:mkdir

    • [x] 获取信息:info_folder

    • [ ] 复制

    • [x] 删除:delete_folder

    • [ ] 更新信息

    • [ ] 创建共享链接

    • [ ] 查看讨论

    • [ ] 查看合作

    • [ ] 从回收站列出

    • [ ] 从回收站获取信息

    • [ ] 从回收站恢复

    • [ ] 永久删除

  • 文件

    • [x] 上传:put

    • [x] 下载:get

    • [x] 获取信息:info_file

    • [x] 覆盖上传:put

    • [ ] 重命名上传

    • [ ] 查看版本

    • [ ] 更新信息

    • [x] 删除:delete_file

    • [ ] 复制

    • [ ] 创建共享链接

    • [ ] 查看评论

    • [ ] 获取缩略图

    • [ ] 从回收站获取

    • [ ] 从回收站恢复

    • [ ] 永久删除

  • 评论

  • 讨论

  • 合作

  • 用户

    • [x] 当前用户信息:info_user

    • [ ] 所有其他功能 ;)

  • 搜索

  • 共享项目

  • 事件

请注意,这些包装器通常非常简单,只是将Python方法参数转换为适当的API密钥,通常看起来像这样

def info_file(self, file_id):
  return self(join('files', file_id))

任何缺失的方法也可以通过像上面一样调用API对象来替换,传递所有适当的(根据文档)参数。

我的用途非常有限 - 我只使用服务进行文件存储 - 因此,除非有人有兴趣进行修补,否则不太可能在这里实现缺失的共享/合作包装器。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分发

txboxdotnet-15.5.0.tar.gz (14.6 kB 查看散列)

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面