syncthing rest api的python绑定
pysyncthing的Python项目详细描述
安装
从pypi安装
pip install pysyncthing
从githib安装
git clone https://github.com/akissa/pysyncthing.git cd pysyncthing python setup.py install
用法
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
api_key | string | API key | Yes |
api_url | string | Url to connect to. Default is https://127.0.0.1:8384 | No |
使用api密钥和url创建syncthingclient的新实例。
>>frompysyncthingimportSyncthingClient>>c=SyncthingClient('XX6406JTI3NH673QRHOGU840PL8702','https://192.168.1.26:8384')
获取版本()
返回当前版本
>>c.get_version(){u'os':u'linux',u'codename':u'Aluminium Ant',u'version':u'v0.11.25',u'arch':u'amd64',u'longVersion':u'syncthing v0.11.25 "Aluminium Ant" (go1.4.2 linux-amd64 default) mockbuild@build2.home.topdog-software.com 2015-09-19 18:15:16 UTC'}
获取连接()
返回当前连接
>>c.get_connections(){u'connections':{u'6RBLNBN-6EIGPRG-ZLZR7XI-LDWUXSE-NYWEBLI-3DFE2AI-L2DP3JL-4R77ZAM':{u'inBytesTotal':40436,u'outBytesTotal':43412,u'at':u'2015-09-22T23:10:31.182773186+02:00',u'clientVersion':u'v0.11.25',u'address':u'192.168.1.14:1027'}},u'total':{u'inBytesTotal':40436,u'outBytesTotal':43412,u'at':u'2015-09-22T23:10:31.182824757+02:00',u'clientVersion':u'',u'address':u''}}
获取配置(
返回当前同步配置
>>c.get_config(){u'folders':[{u'pullers':0,u'hashers':0,u'rescanIntervalS':60,u'copiers':0,u'devices':[{u'deviceID':u'UH3COQQ-AG2MDOF-YY7PBVX-M5T5FEQ-JIYZ57Q-C5PVKSW-3TVX7OT-MPNL6AD'},{u'deviceID':u'6RBLNBN-6EIGPRG-ZLZR7XI-LDWUXSE-NYWEBLI-3DFE2AI-L2DP3JL-4R77ZAM'}],u'order':u'random',u'minDiskFreePct':1,u'readOnly':False,u'ignoreDelete':False,u'invalid':u'',u'path':u'/var/spool/MailScanner/quarantine',u'autoNormalize':True,u'ignorePerms':False,u'id':u'ms-quarantine',u'versioning':{u'params':{},u'type':u''}}],u'gui':{u'apiKey':u'8X2iXtByzNHJ4okYAzFELkd8vFNby8G5',u'enabled':True,u'useTLS':False,u'user':u'',u'address':u'192.168.1.26:8384',u'password':u''},u'devices':[{u'compression':u'metadata',u'certName':u'',u'introducer':False,u'name':u'standalone.home.topdog-software.com',u'deviceID':u'UH3COQQ-AG2MDOF-YY7PBVX-M5T5FEQ-JIYZ57Q-C5PVKSW-3TVX7OT-MPNL6AD',u'addresses':[u'127.0.0.1:1027']},{u'compression':u'metadata',u'certName':u'',u'introducer':False,u'name':u'ms2.home.topdog-software.com',u'deviceID':u'6RBLNBN-6EIGPRG-ZLZR7XI-LDWUXSE-NYWEBLI-3DFE2AI-L2DP3JL-4R77ZAM',u'addresses':[u'192.168.1.14:1027']}],u'version':11,u'ignoredDevices':[],u'options':{u'urAccepted':-1,u'limitBandwidthInLan':False,u'upnpLeaseMinutes':60,u'globalAnnounceServers':[u'udp4://announce.syncthing.net:22026',u'udp6://announce-v6.syncthing.net:22026'],u'upnpTimeoutSeconds':10,u'pingTimeoutS':30,u'localAnnounceMCAddr':u'[ff32::5222]:21026',u'maxSendKbps':0,u'progressUpdateIntervalS':5,u'autoUpgradeIntervalH':12,u'maxRecvKbps':0,u'keepTemporariesH':24,u'listenAddress':[u'0.0.0.0:1027'],u'cacheIgnoredFiles':True,u'urUniqueId':u'',u'symlinksEnabled':True,u'globalAnnounceEnabled':False,u'localAnnounceEnabled':False,u'upnpRenewalMinutes':30,u'pingIdleTimeS':60,u'startBrowser':False,u'databaseBlockCacheMiB':0,u'upnpEnabled':False,u'reconnectionIntervalS':60,u'localAnnouncePort':21025,u'restartOnWakeup':True,u'minHomeDiskFreePct':1}}
获取'u insync()
返回当前同步条件
>>c.get_insync(){u'configInSync':True}
获取错误()
返回引发和未清除的错误
>>c.get_errors(){u'errors':[]}
获取发现()
返回本地发现哈希
>>c.get_discovery(){}
新建错误()
对给定的消息引发新错误。成功时返回代码200。
>>c.new_error('foo'){u'message':u'Completed successfully',u'code':200}
清除错误()
清除以前引发的错误。成功时返回代码200。
>>c.clear_errors(){u'message':u'Completed successfully',u'code':200}
新配置(
将新配置上载到SyncThing服务器。
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
config | Dict | New syncthing config | Yes |
cfg={}>>c.new_config(cfg){u'message':u'Completed successfully',u'code':200}
重新启动()
将重新启动同步服务器
>>c.restart(){u'ok':u'restarting'}
重置()
这意味着将所有存储库目录重命名为临时的、唯一的 名称,销毁所有索引并重新启动。
在正常操作期间可能不应使用此功能…
>>c.reset(){u'ok':'resetting database'}
关机()
>>c.shutdown(){u'ok':u'shutting down'}
升级()
检查新版本
>>c.upgrade()
升级()
如果存在新版本,则执行升级并重新启动。如果 当前版本是最新的。
>>c.upgrade(){u'message':u'Completed successfully',u'code':200}
获取状态()
返回当前状态
>>c.get_status(){u'alloc':10398664,u'cpuPercent':0.02499997913651528,u'pathSeparator':u'/',u'uptime':87,u'sys':18495736,u'tilde':u'/var/spool/exim',u'myID':u'UH3COQQ-AG2MDOF-YY7PBVX-M5T5FEQ-JIYZ57Q-C5PVKSW-3TVX7OT-MPNL6AD',u'goroutines':36}
获取_ping()
返回{"ping": "pong"}对象
>>c.get_ping(){u'ping':u'pong'}
浏览数据库()
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
folder | string | Name of a database | Yes |
level | int | Depth of a list. Default is ^{tt2}$ - maximum depth | No |
prefix | string | Path to directory or subdirectory to start from | No |
返回给定文件夹中的文件
>>c.browse_databse('ms-quarantine')
获取完成时间()
返回给定设备和文件夹的完成百分比(0-100)
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
device | string | device_id | Yes |
folder | string | folder name | Yes |
>>c.get_completion('6RBLNBN-6EIGPRG-ZLZR7XI-LDWUXSE-NYWEBLI-3DFE2AI-L2DP3JL-4R77ZAM','ms-quarantine'){u'completion':100}
获取文件()
返回给定文件的信息
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
file | string | file name | Yes |
>>c.get_file('1Ze9NH-00057p-Vl'){u'global':{u'numBlocks':0,u'name':u'',u'modified':u'1970-01-01T02:00:00+02:00',u'version':[],u'flags':u'0',u'localVersion':0,u'size':0},u'local':{u'numBlocks':0,u'name':u'',u'modified':u'1970-01-01T02:00:00+02:00',u'version':[],u'flags':u'0',u'localVersion':0,u'size':0},u'availability':None}
得到忽略()
返回给定文件夹的忽略项
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
folder | string | folder | Yes |
>>c.get_ignores('ms-quarantine'){u'ignore':None,u'patterns':None}
新的忽略()
为给定文件夹设置新的忽略项
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
folder | string | folder | Yes |
ignores | object | ignore object like in ^{tt3}$ response | Yes |
>>ignores={'ignore':['foo']}>>c.new_ignores('ms-quarantine',ignores){u'ignore':[u'foo'],u'patterns':[u'^foo$',u'^.*/foo$',u'^foo/.*$',u'^.*/foo/.*$']}
需要()
返回此设备所需的文件。
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
folder | string | folder | Yes |
>>c.get_need('ms-quarantine'){u'perpage':65536,u'rest':[],u'queued':[],u'progress':[],u'total':0,u'page':1}
分配优先级()
为给定文件夹中的给定文件分配最高优先级
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
folder | string | folder | Yes |
file | string | filename | Yes |
>>c.assign_priority('ms-quarantine','1Ze9NH-00057p-Vl'){u'perpage':65536,u'rest':[],u'queued':[],u'progress':[],u'total':0,u'page':1}
扫描()
请求立即重新扫描包含子文件夹的文件夹
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
folder | string | folder | Yes |
subfolder | string | subfolder name | No |
>>c.scan('ms-quarantine'){u'message':u'Completed successfully',u'code':200}
获取文件夹状态()
返回给定文件夹的状态
参数
Name | Type | Description | Mandatory? |
---|---|---|---|
folder | string | folder | Yes |
>>c.get_folder_status('ms-quarantine'){u'localBytes':12115773,u'globalFiles':514,u'needBytes':0,u'ignorePatterns':True,u'localDeleted':31,u'globalBytes':12126909,u'invalid':u'',u'globalDeleted':118,u'state':u'idle',u'version':1835,u'inSyncFiles':514,u'needFiles':0,u'inSyncBytes':12126909,u'localFiles':514,u'stateChanged':u'2015-09-22T23:45:56.227948076+02:00'}
获取设备统计信息()
返回设备统计信息
>>c.get_device_statistics(){u'UH3COQQ-AG2MDOF-YY7PBVX-M5T5FEQ-JIYZ57Q-C5PVKSW-3TVX7OT-MPNL6AD':{u'lastSeen':u'1970-01-01T02:00:00+02:00'},u'6RBLNBN-6EIGPRG-ZLZR7XI-LDWUXSE-NYWEBLI-3DFE2AI-L2DP3JL-4R77ZAM':{u'lastSeen':u'2015-09-22T23:47:03.851867821+02:00'}}
获取文件夹统计信息()
返回有关文件夹的常规统计信息。
>>c.get_folder_statistics(){u'ms-quarantine':{u'lastFile':{u'deleted':False,u'at':u'0001-01-01T00:00:00Z',u'filename':u''}}}
贡献
- 叉它(https://github.com/akissa/pysyncthing/fork)
- 创建功能分支(git checkout -bmy-new-feature)
- 提交更改(git commit -am 'Add some feature')
- 推到分支(git push origin my-new-feature)
- 创建新的拉取请求
许可证
所有代码都是根据MPLv2 License授权的。