WebDAV的Python客户端库

Kam*_*iel 24 python client webdav

我想在我的应用程序中实现一个上传和操作WebDAV服务器上的文件的功能.我正在寻找一个成熟的Python库,它将提供类似于os.*使用远程文件的模块的接口.谷歌搜索已经为Python中的WebDAV提供了一些选项,但我想知道这些日子有哪些更广泛使用.

pfa*_*con 48

令人遗憾的是,对于这个问题("使用什么Python webdav库?"),这肯定不止一个人的兴趣,不相关的答案被接受("不使用Python webdav库").好吧,Stackexchange上常见的问题.

对于那些寻找真正答案的人,并根据原始问题(类似于"os"模块的简单API)的要求,我可能会建议easywebdav,它具有非常简单的API,甚至简单实现,提供上传/下载和很少的文件/目录管理方法.由于实现简单,它到目前为止还不支持目录列表,但是提交了 bug ,并且作者打算添加它.

  • 目录列表已经实现,您可以看到https://github.com/amnong/easywebdav/pull/4. (2认同)
  • 不幸的是,它没有Python 3支持,并且不处理拉取请求.还在寻找一个好的选择...... (2认同)
  • 不幸的是,自 2014 年以来一直没有更新。 (2认同)

khi*_*sen 9

我只是有类似的需求,最后根据我的需要测试了几个Python WebDAV客户端(从WebDAV服务器上传和下载文件).以下是我的经验总结:

1)对我有用的python-webdav-lib.

没有太多的文档,但快速查看代码(特别是示例)足以弄清楚如何让它适合我.

2)PyDAV 0.21(我发现的最新版本)不适用于Python 2.6,因为它使用字符串作为例外.我没有尝试解决这个问题,期待以后进一步的不兼容性.

3)davclient 0.2.0.我看了一下,但没有进一步探索,因为文档没有提到我正在寻找的API级别(文件上传和下载).

4)Python_WebDAV_Library-0.3.0.似乎没有任何上传功能.

  • 上面引用的python-webdav-lib - 对我来说效果很好,并且是一个比接受的更好/更有用的答案. (2认同)

Ned*_*ily -4

我不知道具体情况,但根据您的平台,通过文件系统挂载和访问 WebDAV 提供的文件可能会更简单。有davfs2,一些操作系统(例如 Mac OS X)内置了 WebDAV 文件系统支持。

  • -1 安装像 s3、dav、sshfs 这样的网络文件系统,在构建时没有考虑到这种用法(与 NFS/SMB 相比),这在实践中是永无休止的问题根源。瞬时网络错误通常无法很好地传达给应用程序或导致锁定。驱动程序开发人员无法预见的访问模式需要与服务器进行广泛的握手,因此存在不可接受的延迟,而另一端缓存往往会导致不一致。 (3认同)