如何使用Cyberduck凭据使用Python访问WebDAV

如何使用Cyberduck凭据使用Python访问WebDAV,python,python-3.x,webdav,cyberduck,Python,Python 3.x,Webdav,Cyberduck,我以前从未使用过WebDav,但我下载了Cyberduck,并用它连接到内部工作驱动器,将整个目录下载到我的桌面。然而,由于我还不能确定的原因,我遇到了一些随机错误,其中一些文件无法下载。我相信这与网络有关,而不是赛博鸭 我遇到的问题是,Cyberduck没有保留错误记录,并且似乎没有非常健壮的错误和异常处理 我希望通过python程序运行相同的过程,以便记录错误 但是,我尝试的库无法连接。我确信问题在于用户错误 我试过了,但我似乎无法复制连接 对于easywebdav,我尝试模拟我为Cyber

我以前从未使用过WebDav,但我下载了Cyberduck,并用它连接到内部工作驱动器,将整个目录下载到我的桌面。然而,由于我还不能确定的原因,我遇到了一些随机错误,其中一些文件无法下载。我相信这与网络有关,而不是赛博鸭

我遇到的问题是,Cyberduck没有保留错误记录,并且似乎没有非常健壮的错误和异常处理

我希望通过python程序运行相同的过程,以便记录错误

但是,我尝试的库无法连接。我确信问题在于用户错误

我试过了,但我似乎无法复制连接

对于
easywebdav
,我尝试模拟我为Cyberduck输入的信息(见下图),如下所示:

但这不起作用

我已经尝试将
host
参数更改为
https://username@drive.corp.amazon.com/mnt/…
但在那里也没有运气。知道我做错了什么吗


Cyberduck似乎配置为使用NTLM身份验证,但请求默认使用基本身份验证

要使用NTLM身份验证连接到WebDAV服务器,您可以使用实现该身份验证的第三方库,例如:

来自webdav3.client导入客户端
从请求\u ntlm导入HttpNtlmAuth
选项={
“webdav_主机名”:”https://webdav.server.ru"
}
客户端=客户端(选项)
#配置身份验证方法
client.session.auth=HttpNtlmAuth('domain\\username','password')

谢谢叶甫盖尼。非常感谢webdav3背后的工程师参与进来。我尝试了上面推荐的解决方案,但仍然出现错误。webdav3.exceptions.NoConnection:与此无关可能是一个愚蠢的问题,但我应该在“域\\用户名”中键入什么?我是否用实际域替换“域”字符串?比如说drive.corp.amazon.com在这个例子中?我认为对于经历类似问题的普通人来说,这是可行的。我已经在我的工作场所的其他解决方案中使用了您的请求\u ntlm,在基本身份验证失败的情况下,它工作得很好。对于我所面临的问题,它们似乎不是一个显而易见的python级解决方案。我正在使用的内部工作应用程序有很多问题。
import easywebdav

webdav = easywebdav.connect(host='drive.corp.amazon.com', 
                            username='username', 
                            port=443, 
                            protocol='https', 
                            password='password')

print(webdav.ls())