egnyte公共api sdk,
egnyte的Python项目详细描述
Egnyte软件开发包
这是egnyte的公共api的官方python客户端库。 有关http api的概述,请转到https://developers.egnyte.com
获取API密钥
在https://developers.egnyte.com/member/register上注册以获取api密钥 为了你的帐户。生成egnyte oauth需要此密钥 代币。
示例
- 包括此库
- 生成访问令牌
- 创建客户端对象
client=egnyte.EgnyteClient({"domain":"apidemo.egnyte.com","access_token":"68zc95e3xv954u6k3hbnma3q"})
- 创建文件夹
folder=client.folder("/Shared/new").create(ignore_if_exists=True)
- 删除文件夹
client.folder("/Shared/time to say goodbye").delete()
- 获取文件夹中的文件列表,下载文件,替换其内容,添加注释
folder=client.folder("/Shared/foo that need to be bar")folder.list()forfile_objinfolder.files:withfile_obj.download()asdownload:data=download.read()# replace file contentsfile_obj.upload(data.replace(b"foo",b"bar"))file_obj.add_note("all occurrences of 'foo' replaced by 'bar'!")
- 获取子文件夹中的文件列表
folder=client.folder("/Shared")folder.list()forfolder_objinfolder.folders:do_something(folder_obj)
- 从本地文件上载新文件
file_obj=client.file("/Private/smeagol/my precious")withopen("local path","rb")asfp:file_obj.upload(fp)
- 删除文件
file_obj.delete()
- 执行递归下载
client.bulk_download(['/Shared/a dir','/Shared/another dir'],'/home/smeagol/',overwrite=True)
- 执行递归上载
client.bulk_upload(['/tmp/some directory','/tmp/some file'],'/Shared/Marketing')
- 搜索文件
importdatetimeresults=api.search.files('"some text" OR "other text"',folder='/Shared',modified_after=datetime.date(2015,1,15))
- 从服务器获取和处理事件
events=api.events.filter(folder='/Shared',suppress='user')old_events=events.list(events.latest_event_id-10,count=10)# get events in batchesfuture_events=iter(events)foreventinfuture_events:# polls server continously, iterator over single events, iterator will never enddo_something(event)ifcondition(event):break
完整文档
docs子目录只包含文档的源。 您可以在http://egnyte.github.io/python-egnyte-docs/
命令行
如果使用隐式流,则需要直接提供访问令牌。 如果将api令牌与资源流一起使用,则可以使用命令行选项生成api访问令牌。 请参阅完整文档或安装,然后使用:
python-megnyte-h
创建配置
配置文件将在~/.egnyte/config.json中创建
python-megnyteconfigcreate-dDOMAIN[-lLOGIN][-pPASSWORD]-kAPI_KEY[-tACCESS_TOKEN][-TTIMEOUT]
设置请求超时
python-megnyteconfigupdate--timeoutTIMEOUT_INTEGER
依赖关系
此库依赖于:
- 请求2.13.0或更高版本-用于https调用
- 六个1.10.0或更高版本-使用相同的 来源
螺纹安全性
每个客户端对象一次只能从一个线程使用。这 库本身不锁定-调用方负责 必要时这样做。
运行测试
测试可以用鼻子进行,也可以直接在egnyte包上进行,或者 从setup.py:
pythonsetup.pytest
或
python-munittestdiscover
为了运行测试,您需要创建测试配置文件:~/.egnyte/test_config.json
{"access_token":"access token you received after passing the auth flow","api_key":"key you received after registering your developer account","domain":"your Egnyte domain, e.g. example.egnyte.com","login":"username of Egnyte admin user","password":"password of the same Egnyte admin user"}
您可以手动或使用以下命令创建此文件:
python-megnyte-ctest\_config.jsonconfigcreate-k<API_Key>-d<domain>-l<username>-p<password>-t<access_token>
将代表管理员用户对您的域运行测试。
有关信息,请参阅https://developers.egnyte.com/docs/read/Public_API_Authentication#Internal-Applications 关于如何生成访问令牌。
帮助发展
请报告你发现的任何问题 api-support@egnyte.com或pint@egnyte.com
如果你想自己修复一些东西,请离开这个存储库, 将修复和更新提交到测试,然后使用 你正在修理什么信息。
请记住将您的修补程序的版权分配给egnyte或使它们 公共领域,以便我们可以合法地合并它们。