Requests的FTP传输适配器。
项目描述
Requests-FTP是为使用出色的Requests Python库而实现的一个非常愚蠢的FTP传输适配器。
此库并非旨在作为传输适配器最佳实践的示例。此库在约4小时的总工作量中草率拼凑而成,没有测试,并且依赖于一些丑陋的技巧。相反,它旨在作为未来开发的起点,以及如何实现传输适配器的有用示例。
以下是使用方法
>>> import requests
>>> import requests_ftp
>>> requests_ftp.monkeypatch_session()
>>> s = requests.Session()
>>> resp = s.list('ftp://127.0.0.1/', auth=('Lukasa', 'notmypass'))
>>> resp.status_code
'226'
>>> print resp.content
...snip...
>>> resp = s.stor('ftp://127.0.0.1/test.txt', auth=('Lukasa', 'notmypass'),
files={'file': open('report.txt', 'rb')})
功能
几乎没有!
通过新的FTP传输适配器添加FTP LIST、STOR、RETR和NLST动词。
提供了一个函数,用于猴子补丁Requests会话对象,暴露出类似于当前Session.get()和Session.post()方法的辅助方法。
依赖于标准Requests惯例:使用正常的Requests模型和访问方法,包括认证的元组形式。
不提供
连接池!每个请求一个新连接和多个命令,包括认证。非常低效。
SFTP。安全对弱者来说。
较少使用的命令。
重要注意事项
在我匆忙完成此代码的过程中,已经删减了很多角落。最明显的问题是,此代码没有任何测试。这是我最高的修复优先级。
更重要的是,我们有以下重要注意事项
Requests传输适配器的设计意味着STOR方法必须对多部分表单数据编码的正文进行解码,以获取文件。这很痛苦,我没有对其进行彻底测试,所以可能不起作用。
对STOR方法的使用做出了大量假设。此代码假设文件参数中只包含一个文件。它还要求您将文件名作为URL的一部分提供。这是此适配器的最脆弱的部分。
这段代码在性能优化方面几乎什么都没做。这里有一些低垂的果实:我们可以相对容易地实现连接池,并且可能避免发出一些请求。
贡献
请这样做!我非常希望对任何感兴趣的任何人进一步开发这个项目。尽可能提供单元测试(是的,这是一个典型的“说一套做一套”的时刻)。别忘了将你的名字添加到AUTHORS中。
许可证
为了最大化与Requests的兼容性,本代码采用Apache许可证。有关详细信息,请参阅LICENSE。
项目详情
requests-ftp-0.3.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7504ceb5cba8a5c0135ed738596820a78c5f2be92d79b29f96ba99b183d8057a |
|
MD5 | 1a52ad1219e696b5abd5449d1ccc0294 |
|
BLAKE2b-256 | 3dca14b2ad1e93b5195eeaf56b86b7ecfd5ea2d5754a68d17aeb1e5b9f95b3cf |