重新连接FTP客户端
项目描述
reonnecting_ftp
reconnecting_ftp 提供了一个封装 ftplib.FTP 的 FTP 客户端。如果它被断开连接,它会自动重新连接到服务器,并记住最后记录的工作目录。
我们发现对于运行时间较长、需要反复迭代FTP服务器上文件的脚本,重新连接特别重要。
由于结果需要是原子的,我们必须将结果从 ftplib.FTP.mlsd (目录条目的可迭代)转换为目录条目的显式列表。虽然这提供了原子性(您迭代的内容将在单个连接中完成),但所有目录条目都需要存储在内存中。
此外,我们还提供了一个在原始 ftplib.FTP 客户端中缺失的 mlst FTP 命令的实现。
使用方法
import reconnecting_ftp
with reconnecting_ftp.Client(hostname="some-host.com", port=21, user="some-user", password="some-password") as ftp:
# change working directory
ftp.cwd(dirname='/some-dir/some-subdir')
# you can execute here all the commands as provided in ftplib.FTP. If the connection failed, the command will
# be retried while it succeeds or the maximum number of retries haven been exhausted..
# MLST the file
pth, entry = ftp.mlst(filename='some-file.txt')
# iterate over a directory entries atomically
for name, entry_dict in ftp.mlsd(path=parent_path):
# do something
pass
安装
创建虚拟环境
python3 -m venv venv3
激活它
source venv3/bin/activate
使用pip安装reconnecting_ftp
pip3 install reconnecting_ftp
开发
检出仓库。
在仓库根目录下创建虚拟环境
python3 -m venv venv3
激活虚拟环境
source venv3/bin/activate
安装开发依赖项
pip3 install -e .[dev]
我们提供一组预提交检查,用于代码格式化、代码检查和运行单元测试。请从激活的虚拟环境和开发依赖项中本地运行它们
./precommit.py
预提交脚本还可以自动格式化代码
./precommit.py --overwrite
版本控制
我们遵循语义版本控制。版本X.Y.Z表示
X是主版本(不向后兼容),
Y是次版本(向后兼容),
Z是修补版本(向后兼容的bug修复)。
项目详情
关闭
reconnecting_ftp-1.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b2e60716cd0e12467de3493957c4fb649fb2daa49a2d4b64f42cb36e7c0574f6 |
|
MD5 | 526a89290d631eaa5ff963735b9d79ed |
|
BLAKE2b-256 | 92c0f8b1c3e6b609d25adec4c0bbb2d8592051ef83405a868ded3679b2af5588 |