2017-10-03 03:29:23 +08:00
---
title: "WebDAV"
description: "Rclone docs for WebDAV"
2022-11-18 01:56:24 +08:00
versionIntroduced: "v1.39"
2017-10-03 03:29:23 +08:00
---
2021-07-21 02:45:41 +08:00
# {{< icon "fa fa-globe" >}} WebDAV
2017-10-03 03:29:23 +08:00
Paths are specified as `remote:path`
2020-10-14 05:49:58 +08:00
Paths may be as deep as required, e.g. `remote:directory/subdirectory` .
2017-10-03 03:29:23 +08:00
2021-10-14 21:40:18 +08:00
## Configuration
2017-10-03 03:29:23 +08:00
To configure the WebDAV remote you will need to have a URL for it, and
a username and password. If you know what kind of system you are
connecting to then rclone can enable extra features.
Here is an example of how to make a remote called `remote` . First run:
rclone config
This will guide you through an interactive setup process:
```
2021-11-02 04:34:46 +08:00
No remotes found, make a new one?
2017-10-03 03:29:23 +08:00
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> remote
Type of storage to configure.
Choose a number from below, or type in your own value
2018-06-25 23:03:36 +08:00
[snip]
2022-06-20 00:59:54 +08:00
XX / WebDAV
2017-10-03 03:29:23 +08:00
\ "webdav"
2018-06-25 23:03:36 +08:00
[snip]
2017-10-03 03:29:23 +08:00
Storage> webdav
URL of http host to connect to
Choose a number from below, or type in your own value
1 / Connect to example.com
\ "https://example.com"
url> https://example.com/remote.php/webdav/
2022-06-20 00:59:54 +08:00
Name of the WebDAV site/service/software you are using
2017-10-03 03:29:23 +08:00
Choose a number from below, or type in your own value
2023-03-13 12:45:54 +08:00
1 / Fastmail Files
\ (fastmail)
2 / Nextcloud
\ (nextcloud)
3 / Owncloud
\ (owncloud)
4 / Sharepoint Online, authenticated by Microsoft account
\ (sharepoint)
5 / Sharepoint with NTLM authentication, usually self-hosted or on-premises
\ (sharepoint-ntlm)
2023-11-05 20:37:25 +08:00
6 / rclone WebDAV server to serve a remote over HTTP via the WebDAV protocol
\ (rclone)
7 / Other site/service or software
2023-03-13 12:45:54 +08:00
\ (other)
vendor> 2
2017-10-03 03:29:23 +08:00
User name
user> user
Password.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank
y/g/n> y
Enter the password:
password:
Confirm the password:
password:
2020-10-14 05:49:58 +08:00
Bearer token instead of user/pass (e.g. a Macaroon)
2019-07-17 17:11:22 +08:00
bearer_token>
2017-10-03 03:29:23 +08:00
Remote config
--------------------
[remote]
2018-06-25 23:03:36 +08:00
type = webdav
2017-10-03 03:29:23 +08:00
url = https://example.com/remote.php/webdav/
vendor = nextcloud
user = user
pass = ** * ENCRYPTED ** *
2019-07-17 17:11:22 +08:00
bearer_token =
2017-10-03 03:29:23 +08:00
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
```
Once configured you can then use `rclone` like this,
List directories in top level of your WebDAV
rclone lsd remote:
List all the files in your WebDAV
rclone ls remote:
To copy a local directory to an WebDAV directory called backup
rclone copy /home/source remote:backup
2023-11-18 20:36:46 +08:00
### Modification times and hashes
2017-10-03 03:29:23 +08:00
Plain WebDAV does not support modified times. However when used with
2023-03-13 12:45:54 +08:00
Fastmail Files, Owncloud or Nextcloud rclone will support modified times.
2017-10-03 03:29:23 +08:00
2019-01-27 21:33:21 +08:00
Likewise plain WebDAV does not support hashes, however when used with
2023-03-13 12:45:54 +08:00
Fastmail Files, Owncloud or Nextcloud rclone will support SHA1 and MD5 hashes.
2019-01-27 21:33:21 +08:00
Depending on the exact version of Owncloud or Nextcloud hashes may
appear on all objects, or only on objects which had a hash uploaded
with them.
2017-10-03 03:29:23 +08:00
2020-05-22 19:22:52 +08:00
{{< rem autogenerated options start " - DO NOT EDIT - instead edit fs . RegInfo in backend / webdav / webdav . go then run make backenddocs " > }}
2021-11-01 23:42:05 +08:00
### Standard options
2018-10-02 03:48:54 +08:00
2022-07-10 01:08:20 +08:00
Here are the Standard options specific to webdav (WebDAV).
2018-10-02 03:48:54 +08:00
#### --webdav-url
2021-11-01 23:42:05 +08:00
URL of http host to connect to.
E.g. https://example.com.
2018-10-02 03:48:54 +08:00
2022-03-18 20:29:54 +08:00
Properties:
2018-10-02 03:48:54 +08:00
- Config: url
- Env Var: RCLONE_WEBDAV_URL
- Type: string
2022-03-18 20:29:54 +08:00
- Required: true
2018-10-02 03:48:54 +08:00
#### --webdav-vendor
2022-07-10 01:08:20 +08:00
Name of the WebDAV site/service/software you are using.
2018-10-02 03:48:54 +08:00
2022-03-18 20:29:54 +08:00
Properties:
2018-10-02 03:48:54 +08:00
- Config: vendor
- Env Var: RCLONE_WEBDAV_VENDOR
- Type: string
2022-03-18 20:29:54 +08:00
- Required: false
2018-10-02 03:48:54 +08:00
- Examples:
2023-06-30 21:11:17 +08:00
- "fastmail"
- Fastmail Files
2018-10-02 03:48:54 +08:00
- "nextcloud"
- Nextcloud
- "owncloud"
- Owncloud
- "sharepoint"
2021-11-01 23:42:05 +08:00
- Sharepoint Online, authenticated by Microsoft account
2019-01-17 20:35:30 +08:00
- "sharepoint-ntlm"
2021-11-01 23:42:05 +08:00
- Sharepoint with NTLM authentication, usually self-hosted or on-premises
2023-11-26 23:59:12 +08:00
- "rclone"
- rclone WebDAV server to serve a remote over HTTP via the WebDAV protocol
2018-10-02 03:48:54 +08:00
- "other"
- Other site/service or software
#### --webdav-user
2021-11-01 23:42:05 +08:00
User name.
In case NTLM authentication is used, the username should be in the format 'Domain\User'.
2018-10-02 03:48:54 +08:00
2022-03-18 20:29:54 +08:00
Properties:
2018-10-02 03:48:54 +08:00
- Config: user
- Env Var: RCLONE_WEBDAV_USER
- Type: string
2022-03-18 20:29:54 +08:00
- Required: false
2018-10-02 03:48:54 +08:00
#### --webdav-pass
Password.
2020-09-02 23:59:04 +08:00
**NB** Input to this must be obscured - see [rclone obscure ](/commands/rclone_obscure/ ).
2022-03-18 20:29:54 +08:00
Properties:
2018-10-02 03:48:54 +08:00
- Config: pass
- Env Var: RCLONE_WEBDAV_PASS
- Type: string
2022-03-18 20:29:54 +08:00
- Required: false
2018-10-02 03:48:54 +08:00
#### --webdav-bearer-token
2021-11-01 23:42:05 +08:00
Bearer token instead of user/pass (e.g. a Macaroon).
2018-10-02 03:48:54 +08:00
2022-03-18 20:29:54 +08:00
Properties:
2018-10-02 03:48:54 +08:00
- Config: bearer_token
- Env Var: RCLONE_WEBDAV_BEARER_TOKEN
- Type: string
2022-03-18 20:29:54 +08:00
- Required: false
2018-10-02 03:48:54 +08:00
2021-11-01 23:42:05 +08:00
### Advanced options
2019-08-26 22:25:20 +08:00
2022-07-10 01:08:20 +08:00
Here are the Advanced options specific to webdav (WebDAV).
2019-08-26 22:25:20 +08:00
#### --webdav-bearer-token-command
2021-11-01 23:42:05 +08:00
Command to run to get a bearer token.
2019-08-26 22:25:20 +08:00
2022-03-18 20:29:54 +08:00
Properties:
2019-08-26 22:25:20 +08:00
- Config: bearer_token_command
- Env Var: RCLONE_WEBDAV_BEARER_TOKEN_COMMAND
- Type: string
2022-03-18 20:29:54 +08:00
- Required: false
2019-08-26 22:25:20 +08:00
2021-04-01 02:12:08 +08:00
#### --webdav-encoding
2022-03-18 20:29:54 +08:00
The encoding for the backend.
2021-04-01 02:12:08 +08:00
2021-11-01 23:42:05 +08:00
See the [encoding section in the overview ](/overview/#encoding ) for more info.
2021-04-01 02:12:08 +08:00
Default encoding is Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Hash,Percent,BackSlash,Del,Ctl,LeftSpace,LeftTilde,RightSpace,RightPeriod,InvalidUtf8 for sharepoint-ntlm or identity otherwise.
2022-03-18 20:29:54 +08:00
Properties:
2021-04-01 02:12:08 +08:00
- Config: encoding
- Env Var: RCLONE_WEBDAV_ENCODING
- Type: string
2022-03-18 20:29:54 +08:00
- Required: false
2021-04-01 02:12:08 +08:00
2021-05-11 20:19:26 +08:00
#### --webdav-headers
2021-11-01 23:42:05 +08:00
Set HTTP headers for all transactions.
2021-05-11 20:19:26 +08:00
Use this to set additional HTTP headers for all transactions
The input format is comma separated list of key,value pairs. Standard
[CSV encoding ](https://godoc.org/encoding/csv ) may be used.
2022-03-18 20:29:54 +08:00
For example, to set a Cookie use 'Cookie,name=value', or '"Cookie","name=value"'.
2021-05-11 20:19:26 +08:00
You can set multiple headers, e.g. '"Cookie","name=value","Authorization","xxx"'.
2022-03-18 20:29:54 +08:00
Properties:
2021-05-11 20:19:26 +08:00
- Config: headers
- Env Var: RCLONE_WEBDAV_HEADERS
- Type: CommaSepList
- Default:
2023-06-30 21:11:17 +08:00
#### --webdav-pacer-min-sleep
Minimum time to sleep between API calls.
Properties:
- Config: pacer_min_sleep
- Env Var: RCLONE_WEBDAV_PACER_MIN_SLEEP
- Type: Duration
- Default: 10ms
#### --webdav-nextcloud-chunk-size
Nextcloud upload chunk size.
We recommend configuring your NextCloud instance to increase the max chunk size to 1 GB for better upload performances.
See https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html#adjust-chunk-size-on-nextcloud-side
Set to 0 to disable chunked uploading.
Properties:
- Config: nextcloud_chunk_size
- Env Var: RCLONE_WEBDAV_NEXTCLOUD_CHUNK_SIZE
- Type: SizeSuffix
- Default: 10Mi
2020-05-22 19:22:52 +08:00
{{< rem autogenerated options stop > }}
2018-10-02 01:36:15 +08:00
2021-10-14 21:40:18 +08:00
## Provider notes
2018-06-25 23:03:36 +08:00
See below for notes on specific providers.
2023-03-13 12:45:54 +08:00
## Fastmail Files
Use `https://webdav.fastmail.com/` or a subdirectory as the URL,
and your Fastmail email `username@domain.tld` as the username.
Follow [this documentation ](https://www.fastmail.help/hc/en-us/articles/360058752854-App-passwords )
to create an app password with access to `Files (WebDAV)` and use
this as the password.
Fastmail supports modified times using the `X-OC-Mtime` header.
2021-10-14 21:40:18 +08:00
### Owncloud
2017-10-03 03:29:23 +08:00
Click on the settings cog in the bottom right of the page and this
will show the WebDAV URL that rclone needs in the config step. It
will look something like `https://example.com/remote.php/webdav/` .
Owncloud supports modified times using the `X-OC-Mtime` header.
2021-10-14 21:40:18 +08:00
### Nextcloud
2017-10-03 03:29:23 +08:00
This is configured in an identical way to Owncloud. Note that
2020-11-28 00:57:43 +08:00
Nextcloud initially did not support streaming of files (`rcat`) whereas
Owncloud did, but [this ](https://github.com/nextcloud/nextcloud-snap/issues/365 ) seems to be fixed as of 2020-11-27 (tested with rclone v1.53.1 and Nextcloud Server v19).
2017-10-23 19:13:01 +08:00
2021-10-14 21:40:18 +08:00
### Sharepoint Online
2018-04-09 16:05:43 +08:00
2018-06-25 23:03:36 +08:00
Rclone can be used with Sharepoint provided by OneDrive for Business
2018-04-09 16:05:43 +08:00
or Office365 Education Accounts.
This feature is only needed for a few of these Accounts,
mostly Office365 Education ones. These accounts are sometimes not
2019-07-29 01:47:38 +08:00
verified by the domain owner [github#1975 ](https://github.com/rclone/rclone/issues/1975 )
2018-04-09 16:05:43 +08:00
This means that these accounts can't be added using the official
API (other Accounts should work with the "onedrive" option). However,
it is possible to access them using webdav.
To use a sharepoint remote with rclone, add it like this:
First, you need to get your remote's URL:
- Go [here ](https://onedrive.live.com/about/en-us/signin/ )
to open your OneDrive or to sign in
- Now take a look at your address bar, the URL should look like this:
`https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/_layouts/15/onedrive.aspx`
2020-05-19 19:02:44 +08:00
You'll only need this URL up to the email address. After that, you'll
2018-04-09 16:05:43 +08:00
most likely want to add "/Documents". That subdirectory contains
the actual data stored on your OneDrive.
Add the remote to rclone like this:
Configure the `url` as `https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents`
and use your normal account email and password for `user` and `pass` .
If you have 2FA enabled, you have to generate an app password.
Set the `vendor` to `sharepoint` .
Your config file should look like this:
```
[sharepoint]
type = webdav
url = https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
2019-01-17 20:35:30 +08:00
vendor = sharepoint
2018-04-09 16:05:43 +08:00
user = YourEmailAddress
pass = encryptedpassword
2018-06-25 23:03:36 +08:00
```
2021-10-14 21:40:18 +08:00
### Sharepoint with NTLM Authentication
2019-01-17 20:35:30 +08:00
Use this option in case your (hosted) Sharepoint is not tied to OneDrive accounts and uses NTLM authentication.
2021-01-22 12:55:05 +08:00
To get the `url` configuration, similarly to the above, first navigate to the desired directory in your browser to get the URL,
2019-01-17 20:35:30 +08:00
then strip everything after the name of the opened directory.
Example:
If the URL is:
https://example.sharepoint.com/sites/12345/Documents/Forms/AllItems.aspx
The configuration to use would be:
https://example.sharepoint.com/sites/12345/Documents
Set the `vendor` to `sharepoint-ntlm` .
NTLM uses domain and user name combination for authentication,
set `user` to `DOMAIN\username` .
Your config file should look like this:
```
[sharepoint]
type = webdav
url = https://[YOUR-DOMAIN]/some-path-to/Documents
vendor = sharepoint-ntlm
user = DOMAIN\user
pass = encryptedpassword
```
2021-10-14 21:40:18 +08:00
#### Required Flags for SharePoint
2019-10-03 22:31:08 +08:00
As SharePoint does some special things with uploaded documents, you won't be able to use the documents size or the documents hash to compare if a file has been changed since the upload / which file is newer.
2019-10-12 19:08:22 +08:00
For Rclone calls copying files (especially Office files such as .docx, .xlsx, etc.) from/to SharePoint (like copy, sync, etc.), you should append these flags to ensure Rclone uses the "Last Modified" datetime property to compare your documents:
2019-10-03 22:31:08 +08:00
```
--ignore-size --ignore-checksum --update
```
2023-11-05 20:37:25 +08:00
## Rclone
Use this option if you are hosting remotes over WebDAV provided by rclone.
Read [rclone serve webdav ](commands/rclone_serve_webdav/ ) for more details.
rclone serve supports modified times using the `X-OC-Mtime` header.
2021-10-14 21:40:18 +08:00
### dCache
2018-06-25 23:03:36 +08:00
2019-07-17 17:11:22 +08:00
dCache is a storage system that supports many protocols and
authentication/authorisation schemes. For WebDAV clients, it allows
users to authenticate with username and password (BASIC), X.509,
Kerberos, and various bearer tokens, including
[Macaroons ](https://www.dcache.org/manuals/workshop-2017-05-29-Umea/000-Final/anupam_macaroons_v02.pdf )
and [OpenID-Connect ](https://en.wikipedia.org/wiki/OpenID_Connect )
access tokens.
2018-07-05 17:04:57 +08:00
2018-06-25 23:03:36 +08:00
Configure as normal using the `other` type. Don't enter a username or
password, instead enter your Macaroon as the `bearer_token` .
The config will end up looking something like this.
```
[dcache]
type = webdav
url = https://dcache...
vendor = other
user =
pass =
bearer_token = your-macaroon
```
2018-07-05 17:04:57 +08:00
2019-01-15 17:21:34 +08:00
There is a [script ](https://github.com/sara-nl/GridScripts/blob/master/get-macaroon ) that
2018-07-05 17:04:57 +08:00
obtains a Macaroon from a dCache WebDAV endpoint, and creates an rclone config file.
2019-07-17 17:11:22 +08:00
Macaroons may also be obtained from the dCacheView
web-browser/JavaScript client that comes with dCache.
2021-10-14 21:40:18 +08:00
### OpenID-Connect
2019-07-17 17:11:22 +08:00
dCache also supports authenticating with OpenID-Connect access tokens.
OpenID-Connect is a protocol (based on OAuth 2.0) that allows services
to identify users who have authenticated with some central service.
Support for OpenID-Connect in rclone is currently achieved using
another software package called
[oidc-agent ](https://github.com/indigo-dc/oidc-agent ). This is a
command-line tool that facilitates obtaining an access token. Once
installed and configured, an access token is obtained by running the
`oidc-token` command. The following example shows a (shortened)
access token obtained from the *XDC* OIDC Provider.
```
paul@celebrimbor:~$ oidc-token XDC
eyJraWQ[...]QFXDt0
paul@celebrimbor:~$
```
**Note** Before the `oidc-token` command will work, the refresh token
must be loaded into the oidc agent. This is done with the `oidc-add`
command (e.g., `oidc-add XDC` ). This is typically done once per login
session. Full details on this and how to register oidc-agent with
your OIDC Provider are provided in the [oidc-agent
documentation](https://indigo-dc.gitbooks.io/oidc-agent/).
The rclone `bearer_token_command` configuration option is used to
fetch the access token from oidc-agent.
Configure as a normal WebDAV endpoint, using the 'other' vendor,
leaving the username and password empty. When prompted, choose to
edit the advanced config and enter the command to get a bearer token
(e.g., `oidc-agent XDC` ).
The following example config shows a WebDAV endpoint that uses
oidc-agent to supply an access token from the *XDC* OIDC Provider.
```
[dcache]
type = webdav
url = https://dcache.example.org/
vendor = other
bearer_token_command = oidc-token XDC
```