Python 如何使用 Cyberduck 凭据访问 WebDAV
How to use Cyberduck Credentials to Access WebDAV with Python
我以前从未使用过 WebDav,但我下载了 Cyberduck 并用它连接到内部工作驱动器并下载了一个整个目录到我的桌面。但是,由于我还无法确定的原因,我 运行 遇到一些文件无法下载的随机错误。我相信这与网络有关,而不是 Cyberduck.
我遇到的问题是 Cyberduck 没有记录错误,而且似乎没有非常强大的错误和异常处理。
我想通过 python 程序 运行 相同的过程,这样我就可以记录错误。
但是,我尝试过的库无法连接。我确定问题是用户错误。
我试过 easywebdav
and webdavclient3
,但我似乎无法复制连接。
对于 easywebdav
我试图模仿我为 Cyberduck 输入的信息(见下图),如下所示:
import easywebdav
webdav = easywebdav.connect(host='drive.corp.amazon.com',
username='username',
port=443,
protocol='https',
password='password')
print(webdav.ls())
但这不起作用。
我试过将 host
参数更改为 https://username@drive.corp.amazon.com/mnt/...
但也没有成功。知道我做错了什么吗?
似乎 Cyberduck 配置为使用 NTLM 身份验证,但默认情况下请求使用基本身份验证。
要使用 NTLM 身份验证连接到 WebDAV 服务器,您可以使用实现它的第 3 方库,例如 requests-ntlm:
from webdav3.client import Client
from requests_ntlm import HttpNtlmAuth
options = {
'webdav_hostname': "https://webdav.server.ru"
}
client = Client(options)
# Configure authentication method
client.session.auth = HttpNtlmAuth('domain\username','password')
我以前从未使用过 WebDav,但我下载了 Cyberduck 并用它连接到内部工作驱动器并下载了一个整个目录到我的桌面。但是,由于我还无法确定的原因,我 运行 遇到一些文件无法下载的随机错误。我相信这与网络有关,而不是 Cyberduck.
我遇到的问题是 Cyberduck 没有记录错误,而且似乎没有非常强大的错误和异常处理。
我想通过 python 程序 运行 相同的过程,这样我就可以记录错误。
但是,我尝试过的库无法连接。我确定问题是用户错误。
我试过 easywebdav
and webdavclient3
,但我似乎无法复制连接。
对于 easywebdav
我试图模仿我为 Cyberduck 输入的信息(见下图),如下所示:
import easywebdav
webdav = easywebdav.connect(host='drive.corp.amazon.com',
username='username',
port=443,
protocol='https',
password='password')
print(webdav.ls())
但这不起作用。
我试过将 host
参数更改为 https://username@drive.corp.amazon.com/mnt/...
但也没有成功。知道我做错了什么吗?
似乎 Cyberduck 配置为使用 NTLM 身份验证,但默认情况下请求使用基本身份验证。
要使用 NTLM 身份验证连接到 WebDAV 服务器,您可以使用实现它的第 3 方库,例如 requests-ntlm:
from webdav3.client import Client
from requests_ntlm import HttpNtlmAuth
options = {
'webdav_hostname': "https://webdav.server.ru"
}
client = Client(options)
# Configure authentication method
client.session.auth = HttpNtlmAuth('domain\username','password')