syncthing rest api的python绑定

pysyncthing的Python项目详细描述


syncthing rest api的python绑定

这是的Ruby REST API Bindings的python端口 Syncthing

Build StatusCode Climatecodecov.ioMPLv2 License

安装

从pypi安装

pip install pysyncthing

从githib安装

git clone https://github.com/akissa/pysyncthing.git
cd pysyncthing
python setup.py install

用法

参数

NameTypeDescriptionMandatory?
api_keystringAPI keyYes
api_urlstringUrl to connect to. Default is https://127.0.0.1:8384No

使用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服务器。

参数

NameTypeDescriptionMandatory?
configDictNew syncthing configYes
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'}

浏览数据库()

参数

NameTypeDescriptionMandatory?
folderstringName of a databaseYes
levelintDepth of a list. Default is ^{tt2}$ - maximum depthNo
prefixstringPath to directory or subdirectory to start fromNo

返回给定文件夹中的文件

>>c.browse_databse('ms-quarantine')

获取完成时间()

返回给定设备和文件夹的完成百分比(0-100)

参数

NameTypeDescriptionMandatory?
devicestringdevice_idYes
folderstringfolder nameYes
>>c.get_completion('6RBLNBN-6EIGPRG-ZLZR7XI-LDWUXSE-NYWEBLI-3DFE2AI-L2DP3JL-4R77ZAM','ms-quarantine'){u'completion':100}

获取文件()

返回给定文件的信息

参数

NameTypeDescriptionMandatory?
filestringfile nameYes
>>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}

得到忽略()

返回给定文件夹的忽略项

参数

NameTypeDescriptionMandatory?
folderstringfolderYes
>>c.get_ignores('ms-quarantine'){u'ignore':None,u'patterns':None}

新的忽略()

为给定文件夹设置新的忽略项

参数

NameTypeDescriptionMandatory?
folderstringfolderYes
ignoresobjectignore object like in ^{tt3}$ responseYes
>>ignores={'ignore':['foo']}>>c.new_ignores('ms-quarantine',ignores){u'ignore':[u'foo'],u'patterns':[u'^foo$',u'^.*/foo$',u'^foo/.*$',u'^.*/foo/.*$']}

需要()

返回此设备所需的文件。

参数

NameTypeDescriptionMandatory?
folderstringfolderYes
>>c.get_need('ms-quarantine'){u'perpage':65536,u'rest':[],u'queued':[],u'progress':[],u'total':0,u'page':1}

分配优先级()

为给定文件夹中的给定文件分配最高优先级

参数

NameTypeDescriptionMandatory?
folderstringfolderYes
filestringfilenameYes
>>c.assign_priority('ms-quarantine','1Ze9NH-00057p-Vl'){u'perpage':65536,u'rest':[],u'queued':[],u'progress':[],u'total':0,u'page':1}

扫描()

请求立即重新扫描包含子文件夹的文件夹

参数

NameTypeDescriptionMandatory?
folderstringfolderYes
subfolderstringsubfolder nameNo
>>c.scan('ms-quarantine'){u'message':u'Completed successfully',u'code':200}

获取文件夹状态()

返回给定文件夹的状态

参数

NameTypeDescriptionMandatory?
folderstringfolderYes
>>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''}}}

贡献

  1. 叉它(https://github.com/akissa/pysyncthing/fork
  2. 创建功能分支(git checkout -bmy-new-feature
  3. 提交更改(git commit -am 'Add some feature'
  4. 推到分支(git push origin my-new-feature
  5. 创建新的拉取请求

许可证

所有代码都是根据MPLv2 License授权的。

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

推荐PyPI第三方库


热门话题
例外转换器:java。木卫一。IOException:设备上没有剩余空间   java保护小程序代码免受黑客攻击   java试图在使用m2e(maven)构建时让EclipseLuna识别aspect注释   java通过嵌入请求重定向到外部页面   Java使用Springbeans设置静态字段   netbeans为什么java返回0?   java逐字洗牌字符串   spring如何从java上下文将Neo4j与graphQL结合使用   mysql如何使用java for DB connectivity从web内容文件夹读取文件   java如何让Intellij Idea识别自定义gradle任务生成的资源?   Java Google Drive API下载文件   包含静态成员的类实例的java垃圾收集   reduce阶段的输入不是我在Hadoop(Java)中所期望的   Java中的三角问题   java音频播放器在网络视图中随机停止播放   java方法计算文件中的单词数   空对象引用上的java SQLite错误   Java AWT Robot mouseMove(x,y)在Windows 10上失败   jvm Java如何度量给定方法的内存使用率?