rclone 的 Python 接口
项目描述
派克龙
Rclone 适用于您的 python 环境和虚拟环境。与 Rclone 二进制文件捆绑在一起,因此无需预先安装 Rclone。
安装
- 安装会自动下载 rclone 二进制文件,因此无需先安装 rclone。
- 运行以下命令进行安装:
pip install pyclone-module
配置
-
如果您已经预先安装了 rclone 并且想要使用该特定二进制文件,您可以使用以下
pyclone.set_path()
方法设置路径:import pyclone pyclone.set_path(path=PATH_TO_RCLONE,config=PATH_TO_CONFIG)
用法
命令行界面
-
Pyclone 是一个包装器或 rclone,因此您可以使用在 rclone 中经常使用的相同命令。访问 rclone.org/commands 了解更多信息。
user:~$ pyclone config
将 Pyclone 导入您的项目
-
将 pyclone 导入您的项目以对rclone进行编程控制就像
import pyclone
. 进一步使用需要对某些类有一些了解。import pyclone pyc = pyclone.Pyclone()
Pyclone 类
Pyclone 中有三个主要的类:
- pyclone.Pyclone()
- pyclone.RemoteManager()
- pyclone.Remote()
1.pyclone.Pyclone()
-
这是负责与Rclone shell 通信的主要 pyclone 对象。你将主要处理这门课。像这样实例化它
import pyclone pyc = pyclone.Pyclone()
1.1 pyclone.Pyclone().execute(命令)
-
Pyclone 利用该
subprocess
模块与 shell 通信,该execute
方法允许您直接向 rclone 发送命令。命令必须是列表格式。这将返回一个Response对象,其中包含text、stdout、stderr、responsecode和args实例变量。>>> import pyclone >>> command = ['help'] >>> pyc = pyclone.Pyclone() >>> response = pyc.execute(command) >>> print(reponse.responsecode) 0 >>> print(repsponse.text) Ommited.. ... ...
1.2 创建遥控器pyc.config_create()
-
import pyclone pyc = pyclone.Pyclone() pyc.config_create('remote_type', 'remote_name', 'remote@email.com', 'remote_pass')
1.3 删除遥控器pyc.config_delete()
-
pyc.config_delete('remote_name')
1.4 移动/复制pyc.copy()/pyc.move()
-
请注意,遥控器必须在末尾附加一个冒号,最终看起来像: pyc.copy(file.zip, 'remote:')
pyc.copy('src:path', 'dest:path') pyc.move('src:path', 'dest:path')
1.5 列出目录(ls)pyc.copy()/pyc.move()
-
pyc.ls('remote:path')
使用远程管理器和远程对象
2 pyclone.RemoteManager()
-
远程管理器通过管理您的遥控器和扩展 Pyclone 和远程对象的功能将所有内容整合在一起。
>>> import pyclone >>> remotes = pyclone.RemoteManager() >>> remotes.show() ['remote_A', 'remote_B']
1.2 创建/删除遥控器remotes.create()/remotes.delete()
-
remotes.create('remote_type', 'remote_name', 'remote@email.com', 'remote_pass') remotes.delete('remote_name')
远程对象
2.1 获取遥控器remotes.get_remote()
-
这将返回一个
Remote
从 Pyclone 对象继承其大部分功能的对象。remote_A = remotes.get_remote('remote_A')
2.2 远程方法
remote.ls()
remote.copy('file', dl=False)
- 如果
dl=True
这将从远程下载文件。
- 如果
remote.move('file:path', dl=False)
- 如果
dl=True
这将从远程下载文件。
- 如果
remote.delete('file:path')
remote.size()
未来:
- 非阻塞子进程
- pyclone.Remote.check()
开发 pyclone
要安装 pyclone 以及开发和运行测试所需的所有工具,请在 virtualenv 中运行以下命令:
user:~$ pip install -e .[dev]
如果可以,请放弃一些反馈、错误和功能请求。