WebDAV
路径以 remote:path
的形式指定。
路径可以根据需要深入,例如 remote:directory/subdirectory
。
配置
要配置 WebDAV 远程,您需要一个 URL,以及用户名和密码。如果您知道您连接的系统类型,rclone 可以启用额外的功能。
以下是如何创建名为 remote
的远程示例。首先运行:
rclone config
这将引导您完成一个交互式设置过程:
未找到远程,创建一个新的吗?
n) 新建远程
s) 设置配置密码
q) 退出配置
n/s/q> n
name> remote
要配置的存储类型。
从下方选择一个数字,或输入您自己的值
[snip]
XX / WebDAV
\ "webdav"
[snip]
Storage> webdav
要连接的 HTTP 主机的 URL
从下方选择一个数字,或输入您自己的值
1 / 连接到 example.com
\ "https://example.com"
url> https://example.com/remote.php/webdav/
您正在使用的 WebDAV 站点/服务/软件的名称
从下方选择一个数字,或输入您自己的值
1 / Fastmail Files
\ (fastmail)
2 / Nextcloud
\ (nextcloud)
3 / Owncloud
\ (owncloud)
4 / Sharepoint Online,通过 Microsoft 账户认证
\ (sharepoint)
5 / 使用 NTLM 认证的 Sharepoint,通常是自托管或本地部署
\ (sharepoint-ntlm)
6 / rclone WebDAV 服务器,通过 WebDAV 协议在 HTTP 上提供远程服务
\ (rclone)
7 / 其他站点/服务或软件
\ (other)
vendor> 2
用户名
user> user
密码。
y) 是,输入我自己的密码
g) 生成随机密码
n) 否,保持此可选密码为空
y/g/n> y
输入密码:
password:
确认密码:
password:
使用 bearer token 代替用户名/密码(例如 Macaroon)
bearer_token>
远程配置
配置完成。
选项:
- type: webdav
- url: https://example.com/remote.php/webdav/
- vendor: nextcloud
- user: user
- pass: *** 已加密 ***
- bearer_token:
保留此“remote”远程吗?
y) 是,这没问题
e) 编辑此远程
d) 删除此远程
y/e/d> y
配置完成后,您可以像这样使用 rclone
:
列出 WebDAV 顶级目录
rclone lsd remote:
列出 WebDAV 中的所有文件
rclone ls remote:
将本地目录复制到名为 backup 的 WebDAV 目录
rclone copy /home/source remote:backup
修改时间和哈希
普通 WebDAV 不支持修改时间。然而,当与 Fastmail Files、Owncloud 或 Nextcloud 一起使用时,rclone 将支持修改时间。
同样,普通 WebDAV 不支持哈希,但当与 Fastmail Files、Owncloud 或 Nextcloud 一起使用时,rclone 将支持 SHA1 和 MD5 哈希。根据 Owncloud 或 Nextcloud 的确切版本,哈希可能会出现在所有对象上,或者只出现在与它们一起上传的对象上。
标准选项
以下是特定于 webdav(WebDAV)的标准选项。
–webdav-url
要连接的 HTTP 主机的 URL。
属性:
- 配置:url
- 环境变量:RCLONE_WEBDAV_URL
- 类型:字符串
- 必需:true
–webdav-vendor
您正在使用的 WebDAV 站点/服务/软件的名称。
属性:
- 配置:vendor
- 环境变量:RCLONE_WEBDAV_VENDOR
- 类型:字符串
- 必需:false
- 示例:
- “fastmail”
- Fastmail Files
- “nextcloud”
- Nextcloud
- “owncloud”
- Owncloud
- “sharepoint”
- Sharepoint Online,通过 Microsoft 账户认证
- “sharepoint-ntlm”
- 使用 NTLM 认证的 Sharepoint,通常是自托管或本地部署
- “rclone”
- rclone WebDAV 服务器,通过 WebDAV 协议在 HTTP 上提供远程服务
- “other”
- 其他站点/服务或软件
- “fastmail”
–webdav-user
用户名。
如果使用 NTLM 认证,用户名应为 ‘Domain\User’ 格式。
属性:
- 配置:user
- 环境变量:RCLONE_WEBDAV_USER
- 类型:字符串
- 必需:false
–webdav-pass
密码。
注意 输入到此必须是模糊处理的 - 请参阅 rclone obscure。
属性:
- 配置:pass
- 环境变量:RCLONE_WEBDAV_PASS
- 类型:字符串
- 必需:false
–webdav-bearer-token
使用 bearer token 代替用户名/密码(例如 Macaroon)。
属性:
- 配置:bearer_token
- 环境变量:RCLONE_WEBDAV_BEARER_TOKEN
- 类型:字符串
- 必需:false
高级选项
以下是特定于 webdav(WebDAV)的高级选项。
–webdav-bearer-token-command
获取 bearer token 的命令。
属性:
- 配置:bearer_token_command
- 环境变量:RCLONE_WEBDAV_BEARER_TOKEN_COMMAND
- 类型:字符串
- 必需:false
–webdav-encoding
后端的编码。
有关更多信息,请参阅 概述中的编码部分。
默认编码为 sharepoint-ntlm 或其他情况下的 identity。
属性:
- 配置:encoding
- 环境变量:RCLONE_WEBDAV_ENCODING
- 类型:字符串
- 必需:false
–webdav-headers
为所有事务设置 HTTP 头。
使用此选项为所有事务设置额外的 HTTP 头。
输入格式为逗号分隔的键值对列表。可以使用标准的 CSV 编码。
例如,要设置 Cookie,请使用 ‘Cookie,name=value’,或 ‘“Cookie”,“name=value”’。
您可以设置多个头,例如 ‘“Cookie”,“name=value”,“Authorization”,“xxx”’。
属性:
- 配置:headers
- 环境变量:RCLONE_WEBDAV_HEADERS
- 类型:CommaSepList
- 默认:
–webdav-pacer-min-sleep
API 调用之间的最小睡眠时间。
属性:
- 配置:pacer_min_sleep
- 环境变量:RCLONE_WEBDAV_PACER_MIN_SLEEP
- 类型:Duration
- 默认:10ms
–webdav-nextcloud-chunk-size
Nextcloud 上传块大小。
我们建议配置您的 NextCloud 实例,将最大块大小增加到 1 GB,以获得更好的上传性能。请参阅 Uploading big files > 512MB — Nextcloud latest Administration Manual latest documentation
设置为 0 以禁用分块上传。
属性:
- 配置:nextcloud_chunk_size
- 环境变量:RCLONE_WEBDAV_NEXTCLOUD_CHUNK_SIZE
- 类型:SizeSuffix
- 默认:10Mi
–webdav-owncloud-exclude-shares
排除 ownCloud 共享
属性:
- 配置:owncloud_exclude_shares
- 环境变量:RCLONE_WEBDAV_OWNCLOUD_EXCLUDE_SHARES
- 类型:bool
- 默认:false
–webdav-owncloud-exclude-mounts
排除 ownCloud 挂载存储
属性:
- 配置:owncloud_exclude_mounts
- 环境变量:RCLONE_WEBDAV_OWNCLOUD_EXCLUDE_MOUNTS
- 类型:bool
- 默认:false
–webdav-unix-socket
连接到 unix 域套接字的路径,而不是直接打开 TCP 连接
属性:
- 配置:unix_socket
- 环境变量:RCLONE_WEBDAV_UNIX_SOCKET
- 类型:字符串
- 必需:false
–webdav-auth-redirect
在重定向时保留认证。
如果服务器在尝试读取文件时将 rclone 重定向到新域,通常 rclone 会从请求中删除 Authorization: 头。
这是标准的安全实践,以避免将您的凭据发送到未知的 Web 服务器。
然而,在某些情况下这是可取的。如果您在尝试从 webdav 服务器读取文件时遇到类似“401 Unauthorized”的错误,您可以尝试此选项。
属性:
- 配置:auth_redirect
- 环境变量:RCLONE_WEBDAV_AUTH_REDIRECT
- 类型:bool
- 默认:false
–webdav-description
远程的描述。
属性:
- 配置:description
- 环境变量:RCLONE_WEBDAV_DESCRIPTION
- 类型:字符串
- 必需:false
提供商说明
请参阅下方关于特定提供商的说明。
Fastmail Files
使用 https://webdav.fastmail.com/
或其子目录作为 URL,并使用您的 Fastmail 电子邮件 [email protected]
作为用户名。按照 此文档 创建一个具有 Files (WebDAV)
访问权限的应用密码,并使用此密码作为密码。
Fastmail 支持使用 X-OC-Mtime
头修改时间。
Owncloud
点击页面右下角的设置齿轮,这将显示 rclone 在配置步骤中需要的 WebDAV URL。它看起来像 https://example.com/remote.php/webdav/
。
Owncloud 支持使用 X-OC-Mtime
头修改时间。
Nextcloud
这与 Owncloud 的配置方式相同。请注意,Nextcloud 最初不支持文件流(rcat
),而 Owncloud 支持,但 此问题 似乎已在 2020-11-27 修复(测试使用 rclone v1.53.1 和 Nextcloud Server v19)。
Sharepoint Online
rclone 可以与 OneDrive for Business 或 Office365 教育账户提供的 Sharepoint 一起使用。此功能仅适用于这些账户中的少数,主要是 Office365 教育账户。这些账户有时未经域名所有者验证 github#1975
这意味着这些账户无法使用官方 API 添加(其他账户应使用“onedrive”选项)。然而,可以通过 webdav 访问它们。
要使用 rclone 添加 sharepoint 远程,首先需要获取您的远程 URL:
- 前往 此处 打开您的 OneDrive 或登录
- 现在查看您的地址栏,URL 应如下所示:
https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/_layouts/15/onedrive.aspx
您只需要此 URL 到电子邮件地址为止。之后,您可能希望添加“/Documents”。该子目录包含存储在您的 OneDrive 上的实际数据。
像这样添加远程到 rclone:将 url
配置为 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
,并使用您的常规账户电子邮件和密码作为 user
和 pass
。如果启用了 2FA,您必须生成一个应用密码。将 vendor
设置为 sharepoint
。
您的配置文件应如下所示:
[sharepoint]
type = webdav
url = https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
vendor = sharepoint
user = YourEmailAddress
pass = encryptedpassword
使用 NTLM 认证的 Sharepoint
如果您的(托管)Sharepoint 未与 OneDrive 账户绑定并使用 NTLM 认证,请使用此选项。
要获取 url
配置,类似于上述,首先在浏览器中导航到所需目录以获取 URL,然后删除打开目录名称后的所有内容。
示例:如果 URL 为:https://example.sharepoint.com/sites/12345/Documents/Forms/AllItems.aspx
要使用的配置为:https://example.sharepoint.com/sites/12345/Documents
将 vendor
设置为 sharepoint-ntlm
。
NTLM 使用域名和用户名组合进行认证,将 user
设置为 DOMAIN\username
。
您的配置文件应如下所示:
[sharepoint]
type = webdav
url = https://[YOUR-DOMAIN]/some-path-to/Documents
vendor = sharepoint-ntlm
user = DOMAIN\user
pass = encryptedpassword
Sharepoint 所需标志
由于 Sharepoint 对上传的文档进行了一些特殊处理,您无法使用文档大小或文档哈希来比较自上传以来文件是否已更改/哪个文件较新。
对于从/到 Sharepoint(如 copy、sync 等)复制文件的 rclone 调用(特别是 Office 文件如 .docx、.xlsx 等),您应该附加这些标志,以确保 rclone 使用“最后修改”日期时间属性来比较您的文档:
--ignore-size --ignore-checksum --update
Rclone
如果您通过 rclone 提供的 WebDAV 托管远程,请使用此选项。阅读 rclone serve webdav 了解更多详情。
rclone serve 支持使用 X-OC-Mtime
头修改时间。
dCache
dCache 是一个支持多种协议和认证/授权方案的存储系统。对于 WebDAV 客户端,它允许用户使用用户名和密码(BASIC)、X.509、Kerberos 以及各种 bearer token 进行认证,包括 Macaroons 和 OpenID-Connect 访问令牌。
使用 other
类型进行常规配置。不要输入用户名或密码,而是将您的 Macaroon 作为 bearer_token
输入。
配置最终将如下所示。
[dcache]
type = webdav
url = https://dcache...
vendor = other
user =
pass =
bearer_token = your-macaroon
有一个 脚本 可从 dCache WebDAV 端点获取 Macaroon,并创建 rclone 配置文件。
Macaroons 也可以从随 dCache 提供的 dCacheView Web 浏览器/JavaScript 客户端中获取。
OpenID-Connect
dCache 还支持使用 OpenID-Connect 访问令牌进行认证。OpenID-Connect 是一种基于 OAuth 2.0 的协议,允许服务识别已通过某些中央服务认证的用户。
rclone 目前通过名为 oidc-agent 的另一软件包支持 OpenID-Connect。这是一个命令行工具,方便获取访问令牌。安装并配置后,通过运行 oidc-token
命令获取访问令牌。以下示例显示了从 XDCOIDC 提供者获取的(缩短的)访问令牌。
paul@celebrimbor:~$ oidc-token XDC
eyJraWQ[...]QFXDt0
paul@celebrimbor:~$
注意 在 oidc-token
命令生效之前,必须将刷新令牌加载到 oidc 代理中。这是通过 oidc-add
命令完成的(例如,oidc-add XDC
)。这通常在每次登录会话中完成一次。有关此操作以及如何将 oidc-agent 注册到您的 OIDC 提供者的完整详情,请参阅 oidc-agent 文档。
rclone 的 bearer_token_command
配置选项用于从 oidc-agent 获取访问令牌。
作为一个普通的 WebDAV 端点进行配置,使用 ‘other’ 供应商,保留用户名和密码为空。当提示时,选择编辑高级配置并输入获取 bearer token 的命令(例如,oidc-agent XDC
)。
以下示例配置显示了一个使用 oidc-agent 从 XDCOIDC 提供者提供访问令牌的 WebDAV 端点。
[dcache]
type = webdav
url = https://dcache.example.org/
vendor = other
bearer_token_command = oidc-token XDC