diff --git a/MANUAL.html b/MANUAL.html index e15d044c0..878b84640 100644 --- a/MANUAL.html +++ b/MANUAL.html @@ -17,7 +17,7 @@

rclone(1) User Manual

Nick Craig-Wood

-

Jun 24, 2020

+

Aug 07, 2020

Rclone syncs your files to cloud storage

rclone logo

@@ -31,9 +31,9 @@
  • Donate.
  • About rclone

    -

    Rclone is a command line program to manage files on cloud storage. It is a feature rich alternative to cloud vendors’ web storage interfaces. Over 40 cloud storage products support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols.

    -

    Rclone has powerful cloud equivalents to the unix commands rsync, cp, mv, mount, ls, ncdu, tree, rm, and cat. Rclone’s familiar syntax includes shell pipeline support, and --dry-run protection. It is used at the command line, in scripts or via its API.

    -

    Users call rclone “The Swiss army knife of cloud storage”, and “Technology indistinguishable from magic”.

    +

    Rclone is a command line program to manage files on cloud storage. It is a feature rich alternative to cloud vendors' web storage interfaces. Over 40 cloud storage products support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols.

    +

    Rclone has powerful cloud equivalents to the unix commands rsync, cp, mv, mount, ls, ncdu, tree, rm, and cat. Rclone's familiar syntax includes shell pipeline support, and --dry-run protection. It is used at the command line, in scripts or via its API.

    +

    Users call rclone "The Swiss army knife of cloud storage", and "Technology indistinguishable from magic".

    Rclone really looks after your data. It preserves timestamps and verifies checksums at all times. Transfers over limited bandwidth; intermittent connections, or subject to quota can be restarted, from the last good file transferred. You can check the integrity of your files. Where possible, rclone employs server side transfers to minimise local bandwidth use and transfers from one provider to another without using local disk.

    Virtual backends wrap local and cloud file systems to apply encryption, caching, chunking and joining.

    Rclone mounts any local, cloud or virtual filesystem as a disk on Windows, macOS, linux and FreeBSD, and also serves these over SFTP, HTTP, WebDAV, FTP and DLNA.

    @@ -145,7 +145,7 @@
    curl https://rclone.org/install.sh | sudo bash

    For beta installation, run:

    curl https://rclone.org/install.sh | sudo bash -s beta
    -

    Note that this script checks the version of rclone installed first and won’t re-download if not needed.

    +

    Note that this script checks the version of rclone installed first and won't re-download if not needed.

    Linux installation from precompiled binary

    Fetch and unpack

    curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
    @@ -199,7 +199,7 @@ rclone v1.49.1
     
  • You need to mount the host rclone config dir at /config/rclone into the Docker container. Due to the fact that rclone updates tokens inside its config file, and that the update process involves a file rename, you need to mount the whole host rclone config dir, not just the single host rclone config file.

  • You need to mount a host data dir at /data into the Docker container.

  • By default, the rclone binary inside a Docker container runs with UID=0 (root). As a result, all files created in a run will have UID=0. If your config and data files reside on the host with a non-root UID:GID, you need to pass these on the container start command line.

  • -
  • It is possible to use rclone mount inside a userspace Docker container, and expose the resulting fuse mount to the host. The exact docker run options to do that might vary slightly between hosts. See, e.g. the discussion in this thread.

    +
  • It is possible to use rclone mount inside a userspace Docker container, and expose the resulting fuse mount to the host. The exact docker run options to do that might vary slightly between hosts. See, e.g. the discussion in this thread.

    You also need to mount the host /etc/passwd and /etc/group for fuse to work inside the container.

  • Here are some commands tested on an Ubuntu 18.04.3 host:

    @@ -227,16 +227,19 @@ docker run --rm \ ls ~/data/mount kill %1

    Install from source

    -

    Make sure you have at least Go 1.7 installed. Download go if necessary. The latest release is recommended. Then

    +

    Make sure you have at least Go 1.10 installed. Download go if necessary. The latest release is recommended. Then

    git clone https://github.com/rclone/rclone.git
     cd rclone
     go build
     ./rclone version
    -

    You can also build and install rclone in the GOPATH (which defaults to ~/go) with:

    -
    go get -u -v github.com/rclone/rclone
    -

    and this will build the binary in $GOPATH/bin (~/go/bin/rclone by default) after downloading the source to $GOPATH/src/github.com/rclone/rclone (~/go/src/github.com/rclone/rclone by default).

    +

    This will leave you a checked out version of rclone you can modify and send pull requests with. If you use make instead of go build then the rclone build will have the correct version information in it.

    +

    You can also build the latest stable rclone with:

    +
    go get github.com/rclone/rclone
    +

    or the latest version (equivalent to the beta) with

    +
    go get github.com/rclone/rclone@master
    +

    These will build the binary in $(go env GOPATH)/bin (~/go/bin/rclone by default) after downloading the source to the go module cache. Note - do not use the -u flag here. This causes go to try to update the depencencies that rclone uses and sometimes these don't work with the current version of rclone.

    Installation with Ansible

    -

    This can be done with Stefan Weichinger’s ansible role.

    +

    This can be done with Stefan Weichinger's ansible role.

    Instructions

    1. git clone https://github.com/stefangweichinger/ansible-rclone.git into your local roles-directory
    2. @@ -246,7 +249,7 @@ go build roles: - rclone

      Configure

      -

      First, you’ll need to configure rclone. As the object storage systems have quite complicated authentication these are kept in a config file. (See the --config entry for how to find the config file and choose its location.)

      +

      First, you'll need to configure rclone. As the object storage systems have quite complicated authentication these are kept in a config file. (See the --config entry for how to find the config file and choose its location.)

      The easiest way to make the config is to run rclone with the config option:

      rclone config

      See the following for detailed instructions for

      @@ -295,7 +298,7 @@ go build

      Rclone syncs a directory tree from one storage system to another.

      Its syntax is like this

      Syntax: [options] subcommand <parameters> <parameters...>
      -

      Source and destination paths are specified by the name you gave the storage system in the config file then the sub path, eg “drive:myfolder” to look at “myfolder” in Google drive.

      +

      Source and destination paths are specified by the name you gave the storage system in the config file then the sub path, eg "drive:myfolder" to look at "myfolder" in Google drive.

      You can define as many storage paths as you like in the config file.

      Subcommands

      rclone uses a system of subcommands. For example

      @@ -329,12 +332,12 @@ rclone sync /local/path remote:path # syncs /local/path to the remoterclone copy

      Copy files from source to dest, skipping already copied

      Synopsis

      -

      Copy the source to the destination. Doesn’t transfer unchanged files, testing by size and modification time or MD5SUM. Doesn’t delete files from the destination.

      -

      Note that it is always the contents of the directory that is synced, not the directory so when source:path is a directory, it’s the contents of source:path that are copied, not the directory name and contents.

      -

      If dest:path doesn’t exist, it is created and the source:path contents go there.

      +

      Copy the source to the destination. Doesn't transfer unchanged files, testing by size and modification time or MD5SUM. Doesn't delete files from the destination.

      +

      Note that it is always the contents of the directory that is synced, not the directory so when source:path is a directory, it's the contents of source:path that are copied, not the directory name and contents.

      +

      If dest:path doesn't exist, it is created and the source:path contents go there.

      For example

      rclone copy source:sourcepath dest:destpath
      -

      Let’s say there are two files in sourcepath

      +

      Let's say there are two files in sourcepath

      sourcepath/one.txt
       sourcepath/two.txt

      This copies them to

      @@ -343,8 +346,8 @@ destpath/two.txt

      Not to

      destpath/sourcepath/one.txt
       destpath/sourcepath/two.txt
      -

      If you are familiar with rsync, rclone always works as if you had written a trailing / - meaning “copy the contents of this directory”. This applies to all commands and whether you are talking about the source or destination.

      -

      See the –no-traverse option for controlling whether rclone lists the destination directory or not. Supplying this option when copying a small number of files into a large destination can speed transfers up greatly.

      +

      If you are familiar with rsync, rclone always works as if you had written a trailing / - meaning "copy the contents of this directory". This applies to all commands and whether you are talking about the source or destination.

      +

      See the --no-traverse option for controlling whether rclone lists the destination directory or not. Supplying this option when copying a small number of files into a large destination can speed transfers up greatly.

      For example, if you have many files in /path/to/src but only a few of them change every day, you can copy all the files which have changed recently very efficiently like this:

      rclone copy --max-age 24h --no-traverse /path/to/src remote:

      Note: Use the -P/--progress flag to view real-time transfer statistics

      @@ -360,11 +363,11 @@ destpath/sourcepath/two.txt

      rclone sync

      Make source and dest identical, modifying destination only.

      Synopsis

      -

      Sync the source to the destination, changing the destination only. Doesn’t transfer unchanged files, testing by size and modification time or MD5SUM. Destination is updated to match source, including deleting files if necessary.

      +

      Sync the source to the destination, changing the destination only. Doesn't transfer unchanged files, testing by size and modification time or MD5SUM. Destination is updated to match source, including deleting files if necessary.

      Important: Since this can cause data loss, test first with the --dry-run flag to see exactly what would be copied and deleted.

      -

      Note that files in the destination won’t be deleted if there were any errors at any point.

      -

      It is always the contents of the directory that is synced, not the directory so when source:path is a directory, it’s the contents of source:path that are copied, not the directory name and contents. See extended explanation in the copy command above if unsure.

      -

      If dest:path doesn’t exist, it is created and the source:path contents go there.

      +

      Note that files in the destination won't be deleted if there were any errors at any point.

      +

      It is always the contents of the directory that is synced, not the directory so when source:path is a directory, it's the contents of source:path that are copied, not the directory name and contents. See extended explanation in the copy command above if unsure.

      +

      If dest:path doesn't exist, it is created and the source:path contents go there.

      Note: Use the -P/--progress flag to view real-time transfer statistics

      rclone sync source:path dest:path [flags]

      Options

      @@ -381,9 +384,9 @@ destpath/sourcepath/two.txt

      Moves the contents of the source directory to the destination directory. Rclone will error if the source and destination overlap and the remote does not support a server side directory move operation.

      If no filters are in use and if possible this will server side move source:path into dest:path. After this source:path will no longer exist.

      Otherwise for each file in source:path selected by the filters (if any) this will move it into dest:path. If possible a server side move will be used, otherwise it will copy it (server side if possible) into dest:path then delete the original (if no errors on copy) in source:path.

      -

      If you want to delete empty source directories after move, use the –delete-empty-src-dirs flag.

      -

      See the –no-traverse option for controlling whether rclone lists the destination directory or not. Supplying this option when moving a small number of files into a large destination can speed transfers up greatly.

      -

      Important: Since this can cause data loss, test first with the –dry-run flag.

      +

      If you want to delete empty source directories after move, use the --delete-empty-src-dirs flag.

      +

      See the --no-traverse option for controlling whether rclone lists the destination directory or not. Supplying this option when moving a small number of files into a large destination can speed transfers up greatly.

      +

      Important: Since this can cause data loss, test first with the --dry-run flag.

      Note: Use the -P/--progress flag to view real-time transfer statistics.

      rclone move source:path dest:path [flags]

      Options

      @@ -400,14 +403,14 @@ destpath/sourcepath/two.txt

      Synopsis

      Remove the files in path. Unlike purge it obeys include/exclude filters so can be used to selectively delete files.

      rclone delete only deletes objects but leaves the directory structure alone. If you want to delete a directory and all of its contents use rclone purge

      -

      If you supply the –rmdirs flag, it will remove all empty directories along with it.

      +

      If you supply the --rmdirs flag, it will remove all empty directories along with it.

      Eg delete all files bigger than 100MBytes

      Check what would be deleted first (use either)

      rclone --min-size 100M lsl remote:path
       rclone --dry-run --min-size 100M delete remote:path

      Then delete

      rclone --min-size 100M delete remote:path
      -

      That reads “delete everything with a minimum size of 100 MB”, hence delete all files bigger than 100MBytes.

      +

      That reads "delete everything with a minimum size of 100 MB", hence delete all files bigger than 100MBytes.

      rclone delete remote:path [flags]

      Options

        -h, --help     help for delete
      @@ -430,9 +433,9 @@ rclone --dry-run --min-size 100M delete remote:path
    3. rclone - Show help for rclone commands, flags and backends.
    4. rclone mkdir

      -

      Make the path if it doesn’t already exist.

      +

      Make the path if it doesn't already exist.

      Synopsis

      -

      Make the path if it doesn’t already exist.

      +

      Make the path if it doesn't already exist.

      rclone mkdir remote:path [flags]

      Options

        -h, --help   help for mkdir
      @@ -444,7 +447,7 @@ rclone --dry-run --min-size 100M delete remote:path

      rclone rmdir

      Remove the path if empty.

      Synopsis

      -

      Remove the path. Note that you can’t remove a path with objects in it, use purge for that.

      +

      Remove the path. Note that you can't remove a path with objects in it, use purge for that.

      rclone rmdir remote:path [flags]

      Options

        -h, --help   help for rmdir
      @@ -456,10 +459,10 @@ rclone --dry-run --min-size 100M delete remote:path

      rclone check

      Checks the files in the source and destination match.

      Synopsis

      -

      Checks the files in the source and destination match. It compares sizes and hashes (MD5 or SHA1) and logs a report of files which don’t match. It doesn’t alter the source or destination.

      -

      If you supply the –size-only flag, it will only compare the sizes not the hashes as well. Use this for a quick check.

      -

      If you supply the –download flag, it will download the data from both remotes and check them against each other on the fly. This can be useful for remotes that don’t support hashes or if you really want to check all the data.

      -

      If you supply the –one-way flag, it will only check that files in source match the files in destination, not the other way around. Meaning extra files in destination that are not in the source will not trigger an error.

      +

      Checks the files in the source and destination match. It compares sizes and hashes (MD5 or SHA1) and logs a report of files which don't match. It doesn't alter the source or destination.

      +

      If you supply the --size-only flag, it will only compare the sizes not the hashes as well. Use this for a quick check.

      +

      If you supply the --download flag, it will download the data from both remotes and check them against each other on the fly. This can be useful for remotes that don't support hashes or if you really want to check all the data.

      +

      If you supply the --one-way flag, it will only check that files in source match the files in destination, not the other way around. Meaning extra files in destination that are not in the source will not trigger an error.

      rclone check source:path dest:path [flags]

      Options

            --download   Check by downloading rather than with hash.
      @@ -490,9 +493,9 @@ rclone --dry-run --min-size 100M delete remote:path
    5. lsjson to list objects and directories in JSON format
    6. ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

      -

      Note that ls and lsl recurse by default - use “–max-depth 1” to stop the recursion.

      -

      The other list commands lsd,lsf,lsjson do not recurse by default - use “-R” to make them recurse.

      -

      Listing a non existent directory will produce an error except for remotes which can’t have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      +

      Note that ls and lsl recurse by default - use "--max-depth 1" to stop the recursion.

      +

      The other list commands lsd,lsf,lsjson do not recurse by default - use "-R" to make them recurse.

      +

      Listing a non existent directory will produce an error except for remotes which can't have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      rclone ls remote:path [flags]

      Options

        -h, --help   help for ls
      @@ -514,7 +517,7 @@ rclone --dry-run --min-size 100M delete remote:path -1 2016-10-17 17:41:53 -1 1000files -1 2017-01-03 14:40:54 -1 2500files -1 2017-07-08 14:39:28 -1 4000files -

      If you just want the directory names use “rclone lsf –dirs-only”.

      +

      If you just want the directory names use "rclone lsf --dirs-only".

      Any of the filtering options can be applied to this command.

      There are several related list commands

      ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

      -

      Note that ls and lsl recurse by default - use “–max-depth 1” to stop the recursion.

      -

      The other list commands lsd,lsf,lsjson do not recurse by default - use “-R” to make them recurse.

      -

      Listing a non existent directory will produce an error except for remotes which can’t have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      +

      Note that ls and lsl recurse by default - use "--max-depth 1" to stop the recursion.

      +

      The other list commands lsd,lsf,lsjson do not recurse by default - use "-R" to make them recurse.

      +

      Listing a non existent directory will produce an error except for remotes which can't have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      rclone lsd remote:path [flags]

      Options

        -h, --help        help for lsd
      @@ -557,9 +560,9 @@ rclone --dry-run --min-size 100M delete remote:path
    7. lsjson to list objects and directories in JSON format
    8. ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

      -

      Note that ls and lsl recurse by default - use “–max-depth 1” to stop the recursion.

      -

      The other list commands lsd,lsf,lsjson do not recurse by default - use “-R” to make them recurse.

      -

      Listing a non existent directory will produce an error except for remotes which can’t have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      +

      Note that ls and lsl recurse by default - use "--max-depth 1" to stop the recursion.

      +

      The other list commands lsd,lsf,lsjson do not recurse by default - use "-R" to make them recurse.

      +

      Listing a non existent directory will produce an error except for remotes which can't have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      rclone lsl remote:path [flags]

      Options

        -h, --help   help for lsl
      @@ -614,7 +617,7 @@ rclone --dry-run --min-size 100M delete remote:path rclone v1.41 - os/arch: linux/amd64 - go version: go1.10 -

      If you supply the –check flag, then it will do an online check to compare your version with the latest release and the latest beta.

      +

      If you supply the --check flag, then it will do an online check to compare your version with the latest release and the latest beta.

      $ rclone version --check
       yours:  1.42.0.6
       latest: 1.42          (released 2018-06-16)
      @@ -739,13 +742,13 @@ Other:   8.241G
    9. Objects: total number of objects in the storage
    10. Note that not all the backends provide all the fields - they will be missing if they are not known for that backend. Where it is known that the value is unlimited the value will also be omitted.

      -

      Use the –full flag to see the numbers written out in full, eg

      +

      Use the --full flag to see the numbers written out in full, eg

      Total:   18253611008
       Used:    7993453766
       Free:    1411001220
       Trashed: 104857602
       Other:   8849156022
      -

      Use the –json flag for a computer readable output, eg

      +

      Use the --json flag for a computer readable output, eg

      {
           "total": 18253611008,
           "used": 7993453766,
      @@ -767,7 +770,7 @@ Other:   8849156022

      Remote authorization.

      Synopsis

      Remote authorization. Used to authorize a remote or headless rclone from a machine with a browser - use as instructed by rclone config.

      -

      Use the –auth-no-open-browser to prevent rclone to open auth link in default browser automatically.

      +

      Use the --auth-no-open-browser to prevent rclone to open auth link in default browser automatically.

      rclone authorize [flags]

      Options

            --auth-no-open-browser   Do not automatically open auth link in default browser
      @@ -780,7 +783,7 @@ Other:   8849156022

      rclone backend

      Run a backend specific command.

      Synopsis

      -

      This runs a backend specific command. The commands themselves (except for “help” and “features”) are defined by the backends and you should see the backend docs for definitions.

      +

      This runs a backend specific command. The commands themselves (except for "help" and "features") are defined by the backends and you should see the backend docs for definitions.

      You can discover what commands a backend implements by using

      rclone backend help remote:
       rclone backend help <backendname>
      @@ -811,7 +814,7 @@ rclone backend help <backendname>
      rclone cat remote:path/to/dir

      Or like this to output any .txt files in dir or its subdirectories.

      rclone --include "*.txt" cat remote:path/to/dir
      -

      Use the –head flag to print characters only at the start, –tail for the end and –offset and –count to print a section in the middle. Note that if offset is negative it will count from the end, so –offset -1 –count 1 is equivalent to –tail 1.

      +

      Use the --head flag to print characters only at the start, --tail for the end and --offset and --count to print a section in the middle. Note that if offset is negative it will count from the end, so --offset -1 --count 1 is equivalent to --tail 1.

      rclone cat remote:path [flags]

      Options

            --count int    Only print N characters. (default -1)
      @@ -832,8 +835,8 @@ rclone backend help <backendname>

      For example to make a swift remote of name myremote using auto config you would do:

      rclone config create myremote swift env_auth true

      Note that if the config process would normally ask a question the default is taken. Each time that happens rclone will print a message saying how to affect the value taken.

      -

      If any of the parameters passed is a password field, then rclone will automatically obscure them if they aren’t already obscured before putting them in the config file.

      -

      NB If the password parameter is 22 characters or longer and consists only of base64 characters then rclone can get confused about whether the password is already obscured or not and put unobscured passwords into the config file. If you want to be 100% certain that the passwords get obscured then use the “–obscure” flag, or if you are 100% certain you are already passing obscured passwords then use “–no-obscure”. You can also set osbscured passwords using the “rclone config password” command.

      +

      If any of the parameters passed is a password field, then rclone will automatically obscure them if they aren't already obscured before putting them in the config file.

      +

      NB If the password parameter is 22 characters or longer and consists only of base64 characters then rclone can get confused about whether the password is already obscured or not and put unobscured passwords into the config file. If you want to be 100% certain that the passwords get obscured then use the "--obscure" flag, or if you are 100% certain you are already passing obscured passwords then use "--no-obscure". You can also set osbscured passwords using the "rclone config password" command.

      So for example if you wanted to configure a Google Drive remote but using remote authorization you would do this:

      rclone config create mydrive drive config_is_local false
      rclone config create `name` `type` [`key` `value`]* [flags]
      @@ -863,7 +866,7 @@ rclone backend help <backendname>

      Synopsis

      This disconnects the remote: passed in to the cloud storage system.

      This normally means revoking the oauth token.

      -

      To reconnect use “rclone config reconnect”.

      +

      To reconnect use "rclone config reconnect".

      rclone config disconnect remote: [flags]

      Options

        -h, --help   help for disconnect
      @@ -911,10 +914,10 @@ rclone backend help <backendname>

      rclone config password

      Update password in an existing remote.

      Synopsis

      -

      Update an existing remote’s password. The password should be passed in pairs of key value.

      +

      Update an existing remote's password. The password should be passed in pairs of key value.

      For example to set password of a remote of name myremote you would do:

      rclone config password myremote fieldname mypassword
      -

      This command is obsolete now that “config update” and “config create” both support obscuring passwords directly.

      +

      This command is obsolete now that "config update" and "config create" both support obscuring passwords directly.

      rclone config password `name` [`key` `value`]+ [flags]

      Options

        -h, --help   help for password
      @@ -939,7 +942,7 @@ rclone backend help <backendname>

      Re-authenticates user with remote.

      Synopsis

      This reconnects remote: passed in to the cloud storage system.

      -

      To disconnect the remote use “rclone config disconnect”.

      +

      To disconnect the remote use "rclone config disconnect".

      This normally means going through the interactive oauth flow again.

      rclone config reconnect remote: [flags]

      Options

      @@ -964,12 +967,12 @@ rclone backend help <backendname>

      rclone config update

      Update options in an existing remote.

      Synopsis

      -

      Update an existing remote’s options. The options should be passed in in pairs of key value.

      +

      Update an existing remote's options. The options should be passed in in pairs of key value.

      For example to update the env_auth field of a remote of name myremote you would do:

      rclone config update myremote swift env_auth true
      -

      If any of the parameters passed is a password field, then rclone will automatically obscure them if they aren’t already obscured before putting them in the config file.

      -

      NB If the password parameter is 22 characters or longer and consists only of base64 characters then rclone can get confused about whether the password is already obscured or not and put unobscured passwords into the config file. If you want to be 100% certain that the passwords get obscured then use the “–obscure” flag, or if you are 100% certain you are already passing obscured passwords then use “–no-obscure”. You can also set osbscured passwords using the “rclone config password” command.

      -

      If the remote uses OAuth the token will be updated, if you don’t require this add an extra parameter thus:

      +

      If any of the parameters passed is a password field, then rclone will automatically obscure them if they aren't already obscured before putting them in the config file.

      +

      NB If the password parameter is 22 characters or longer and consists only of base64 characters then rclone can get confused about whether the password is already obscured or not and put unobscured passwords into the config file. If you want to be 100% certain that the passwords get obscured then use the "--obscure" flag, or if you are 100% certain you are already passing obscured passwords then use "--no-obscure". You can also set osbscured passwords using the "rclone config password" command.

      +

      If the remote uses OAuth the token will be updated, if you don't require this add an extra parameter thus:

      rclone config update myremote swift env_auth true config_refresh_token false
      rclone config update `name` [`key` `value`]+ [flags]

      Options

      @@ -1008,7 +1011,7 @@ rclone backend help <backendname> if src is directory copy it to dst, overwriting existing files if they exist see copy command for full details -

      This doesn’t transfer unchanged files, testing by size and modification time or MD5SUM. It doesn’t delete files from the destination.

      +

      This doesn't transfer unchanged files, testing by size and modification time or MD5SUM. It doesn't delete files from the destination.

      Note: Use the -P/--progress flag to view real-time transfer statistics

      rclone copyto source:path dest:path [flags]

      Options

      @@ -1021,10 +1024,10 @@ if src is directory

      rclone copyurl

      Copy url content to dest.

      Synopsis

      -

      Download a URL’s content and copy it to the destination without saving it in temporary storage.

      -

      Setting –auto-filename will cause the file name to be retrieved from the from URL (after any redirections) and used in the destination path.

      -

      Setting –no-clobber will prevent overwriting file on the destination if there is one with the same name.

      -

      Setting –stdout or making the output file name “-” will cause the output to be written to standard output.

      +

      Download a URL's content and copy it to the destination without saving it in temporary storage.

      +

      Setting --auto-filename will cause the file name to be retrieved from the from URL (after any redirections) and used in the destination path.

      +

      Setting --no-clobber will prevent overwriting file on the destination if there is one with the same name.

      +

      Setting --stdout or making the output file name "-" will cause the output to be written to standard output.

      rclone copyurl https://example.com dest:path [flags]

      Options

        -a, --auto-filename   Get the file name from the URL and use it for destination file path
      @@ -1047,7 +1050,7 @@ if src is directory
       

      You can use it like this also, but that will involve downloading all the files in remote:path.

      rclone cryptcheck remote:path encryptedremote:path

      After it has run it will log the status of the encryptedremote:.

      -

      If you supply the –one-way flag, it will only check that files in source match the files in destination, not the other way around. Meaning extra files in destination that are not in the source will not trigger an error.

      +

      If you supply the --one-way flag, it will only check that files in source match the files in destination, not the other way around. Meaning extra files in destination that are not in the source will not trigger an error.

      rclone cryptcheck remote:path cryptedremote:path [flags]

      Options

        -h, --help      help for cryptcheck
      @@ -1061,7 +1064,7 @@ if src is directory
       

      Cryptdecode returns unencrypted file names.

      Synopsis

      rclone cryptdecode returns unencrypted file names when provided with a list of encrypted file names. List limit is 10 items.

      -

      If you supply the –reverse flag, it will return encrypted file names.

      +

      If you supply the --reverse flag, it will return encrypted file names.

      use it like this

      rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
       
      @@ -1078,7 +1081,7 @@ rclone cryptdecode --reverse encryptedremote: filename1 filename2

      rclone deletefile

      Remove a single file from remote.

      Synopsis

      -

      Remove a single file from remote. Unlike delete it cannot be used to remove a directory and it doesn’t obey include/exclude filters - if the specified file exists, it will always be removed.

      +

      Remove a single file from remote. Unlike delete it cannot be used to remove a directory and it doesn't obey include/exclude filters - if the specified file exists, it will always be removed.

      rclone deletefile remote:path [flags]

      Options

        -h, --help   help for deletefile
      @@ -1090,7 +1093,7 @@ rclone cryptdecode --reverse encryptedremote: filename1 filename2

      rclone genautocomplete

      Output completion script for a given shell.

      Synopsis

      -

      Generates a shell completion script for rclone. Run with –help to list the supported shells.

      +

      Generates a shell completion script for rclone. Run with --help to list the supported shells.

      Options

        -h, --help   help for genautocomplete

      See the global flags page for global options not listed here.

      @@ -1192,7 +1195,7 @@ Supported hashes are:

      rclone link will create or retrieve a public link to the given file or folder.

      rclone link remote:path/to/file
       rclone link remote:path/to/folder/
      -

      If successful, the last line of the output will contain the link. Exact capabilities depend on the remote, but the link will always be created with the least constraints – e.g. no expiry, no password protection, accessible without account.

      +

      If successful, the last line of the output will contain the link. Exact capabilities depend on the remote, but the link will always be created with the least constraints – e.g. no expiry, no password protection, accessible without account.

      rclone link remote:path [flags]

      Options

        -h, --help   help for link
      @@ -1226,7 +1229,7 @@ canole diwogej7 ferejej3gux/ fubuwic
      -

      Use the –format option to control what gets listed. By default this is just the path, but you can use these parameters to control the output:

      +

      Use the --format option to control what gets listed. By default this is just the path, but you can use these parameters to control the output:

      p - path
       s - size
       t - modification time
      @@ -1236,7 +1239,7 @@ o - Original ID of underlying object
       m - MimeType of object if known
       e - encrypted name
       T - tier of storage if known, eg "Hot" or "Cool"
      -

      So if you wanted the path, size and modification time, you would use –format “pst”, or maybe –format “tsp” to put the path last.

      +

      So if you wanted the path, size and modification time, you would use --format "pst", or maybe --format "tsp" to put the path last.

      Eg

      $ rclone lsf  --format "tsp" swift:bucket
       2016-06-25 18:55:41;60295;bevajer5jef
      @@ -1244,7 +1247,7 @@ T - tier of storage if known, eg "Hot" or "Cool"
      -

      If you specify “h” in the format you will get the MD5 hash by default, use the “–hash” flag to change which hash you want. Note that this can be returned as an empty string if it isn’t available on the object (and for directories), “ERROR” if there was an error reading it from the object and “UNSUPPORTED” if that object does not support that hash type.

      +

      If you specify "h" in the format you will get the MD5 hash by default, use the "--hash" flag to change which hash you want. Note that this can be returned as an empty string if it isn't available on the object (and for directories), "ERROR" if there was an error reading it from the object and "UNSUPPORTED" if that object does not support that hash type.

      For example to emulate the md5sum command you can use

      rclone lsf -R --hash MD5 --format hp --separator "  " --files-only .

      Eg

      @@ -1254,8 +1257,8 @@ cd65ac234e6fea5925974a51cdd865cc canole 03b5341b4f234b9d984d03ad076bae91 diwogej7 8fd37c3810dd660778137ac3a66cc06d fubuwic 99713e14a4c4ff553acaf1930fad985b gixacuh7ku -

      (Though “rclone md5sum .” is an easier way of typing this.)

      -

      By default the separator is “;” this can be changed with the –separator flag. Note that separators aren’t escaped in the path so putting it last is a good strategy.

      +

      (Though "rclone md5sum ." is an easier way of typing this.)

      +

      By default the separator is ";" this can be changed with the --separator flag. Note that separators aren't escaped in the path so putting it last is a good strategy.

      Eg

      $ rclone lsf  --separator "," --format "tshp" swift:bucket
       2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
      @@ -1269,7 +1272,7 @@ cd65ac234e6fea5925974a51cdd865cc  canole
       test.log,22355
       test.sh,449
       "this file contains a comma, in the file name.txt",6
      -

      Note that the –absolute parameter is useful for making lists of files to pass to an rclone copy with the –files-from-raw flag.

      +

      Note that the --absolute parameter is useful for making lists of files to pass to an rclone copy with the --files-from-raw flag.

      For example to find all the files modified within one day and copy those only (without traversing the whole directory structure):

      rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
       rclone copy --files-from-raw new_files /path/to/local remote:path
      @@ -1283,9 +1286,9 @@ rclone copy --files-from-raw new_files /path/to/local remote:path
    11. lsjson to list objects and directories in JSON format
    12. ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

      -

      Note that ls and lsl recurse by default - use “–max-depth 1” to stop the recursion.

      -

      The other list commands lsd,lsf,lsjson do not recurse by default - use “-R” to make them recurse.

      -

      Listing a non existent directory will produce an error except for remotes which can’t have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      +

      Note that ls and lsl recurse by default - use "--max-depth 1" to stop the recursion.

      +

      The other list commands lsd,lsf,lsjson do not recurse by default - use "-R" to make them recurse.

      +

      Listing a non existent directory will produce an error except for remotes which can't have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      rclone lsf remote:path [flags]

      Options

            --absolute           Put a leading / in front of path names.
      @@ -1308,16 +1311,16 @@ rclone copy --files-from-raw new_files /path/to/local remote:path

      Synopsis

      List directories and objects in the path in JSON format.

      The output is an array of Items, where each Item looks like this

      -

      { “Hashes” : { “SHA-1” : “f572d396fae9206628714fb2ce00f72e94f2258f”, “MD5” : “b1946ac92492d2347c6235b4d2611184”, “DropboxHash” : “ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc” }, “ID”: “y2djkhiujf83u33”, “OrigID”: “UYOJVTUW00Q1RzTDA”, “IsBucket” : false, “IsDir” : false, “MimeType” : “application/octet-stream”, “ModTime” : “2017-05-31T16:15:57.034468261+01:00”, “Name” : “file.txt”, “Encrypted” : “v0qpsdq8anpci8n929v3uu9338”, “EncryptedPath” : “kja9098349023498/v0qpsdq8anpci8n929v3uu9338”, “Path” : “full/path/goes/here/file.txt”, “Size” : 6, “Tier” : “hot”, }

      -

      If –hash is not specified the Hashes property won’t be emitted. The types of hash can be specified with the –hash-type parameter (which may be repeated). If –hash-type is set then it implies –hash.

      -

      If –no-modtime is specified then ModTime will be blank. This can speed things up on remotes where reading the ModTime takes an extra request (eg s3, swift).

      -

      If –no-mimetype is specified then MimeType will be blank. This can speed things up on remotes where reading the MimeType takes an extra request (eg s3, swift).

      -

      If –encrypted is not specified the Encrypted won’t be emitted.

      -

      If –dirs-only is not specified files in addition to directories are returned

      -

      If –files-only is not specified directories in addition to the files will be returned.

      -

      The Path field will only show folders below the remote path being listed. If “remote:path” contains the file “subfolder/file.txt”, the Path for “file.txt” will be “subfolder/file.txt”, not “remote:path/subfolder/file.txt”. When used without –recursive the Path will always be the same as Name.

      -

      If the directory is a bucket in a bucket based backend, then “IsBucket” will be set to true. This key won’t be present unless it is “true”.

      -

      The time is in RFC3339 format with up to nanosecond precision. The number of decimal digits in the seconds will depend on the precision that the remote can hold the times, so if times are accurate to the nearest millisecond (eg Google Drive) then 3 digits will always be shown (“2017-05-31T16:15:57.034+01:00”) whereas if the times are accurate to the nearest second (Dropbox, Box, WebDav etc) no digits will be shown (“2017-05-31T16:15:57+01:00”).

      +

      { "Hashes" : { "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f", "MD5" : "b1946ac92492d2347c6235b4d2611184", "DropboxHash" : "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc" }, "ID": "y2djkhiujf83u33", "OrigID": "UYOJVTUW00Q1RzTDA", "IsBucket" : false, "IsDir" : false, "MimeType" : "application/octet-stream", "ModTime" : "2017-05-31T16:15:57.034468261+01:00", "Name" : "file.txt", "Encrypted" : "v0qpsdq8anpci8n929v3uu9338", "EncryptedPath" : "kja9098349023498/v0qpsdq8anpci8n929v3uu9338", "Path" : "full/path/goes/here/file.txt", "Size" : 6, "Tier" : "hot", }

      +

      If --hash is not specified the Hashes property won't be emitted. The types of hash can be specified with the --hash-type parameter (which may be repeated). If --hash-type is set then it implies --hash.

      +

      If --no-modtime is specified then ModTime will be blank. This can speed things up on remotes where reading the ModTime takes an extra request (eg s3, swift).

      +

      If --no-mimetype is specified then MimeType will be blank. This can speed things up on remotes where reading the MimeType takes an extra request (eg s3, swift).

      +

      If --encrypted is not specified the Encrypted won't be emitted.

      +

      If --dirs-only is not specified files in addition to directories are returned

      +

      If --files-only is not specified directories in addition to the files will be returned.

      +

      The Path field will only show folders below the remote path being listed. If "remote:path" contains the file "subfolder/file.txt", the Path for "file.txt" will be "subfolder/file.txt", not "remote:path/subfolder/file.txt". When used without --recursive the Path will always be the same as Name.

      +

      If the directory is a bucket in a bucket based backend, then "IsBucket" will be set to true. This key won't be present unless it is "true".

      +

      The time is in RFC3339 format with up to nanosecond precision. The number of decimal digits in the seconds will depend on the precision that the remote can hold the times, so if times are accurate to the nearest millisecond (eg Google Drive) then 3 digits will always be shown ("2017-05-31T16:15:57.034+01:00") whereas if the times are accurate to the nearest second (Dropbox, Box, WebDav etc) no digits will be shown ("2017-05-31T16:15:57+01:00").

      The whole output can be processed as a JSON blob, or alternatively it can be processed line by line as each item is written one to a line.

      Any of the filtering options can be applied to this command.

      There are several related list commands

      @@ -1329,9 +1332,9 @@ rclone copy --files-from-raw new_files /path/to/local remote:path
    13. lsjson to list objects and directories in JSON format
    14. ls,lsl,lsd are designed to be human readable. lsf is designed to be human and machine readable. lsjson is designed to be machine readable.

      -

      Note that ls and lsl recurse by default - use “–max-depth 1” to stop the recursion.

      -

      The other list commands lsd,lsf,lsjson do not recurse by default - use “-R” to make them recurse.

      -

      Listing a non existent directory will produce an error except for remotes which can’t have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      +

      Note that ls and lsl recurse by default - use "--max-depth 1" to stop the recursion.

      +

      The other list commands lsd,lsf,lsjson do not recurse by default - use "-R" to make them recurse.

      +

      Listing a non existent directory will produce an error except for remotes which can't have empty directories (eg s3, swift, gcs, etc - the bucket based remotes).

      rclone lsjson remote:path [flags]

      Options

            --dirs-only               Show only directories in the listing.
      @@ -1352,9 +1355,9 @@ rclone copy --files-from-raw new_files /path/to/local remote:path

      rclone mount

      Mount the remote as file system on a mountpoint.

      Synopsis

      -

      rclone mount allows Linux, FreeBSD, macOS and Windows to mount any of Rclone’s cloud storage systems as a file system with FUSE.

      +

      rclone mount allows Linux, FreeBSD, macOS and Windows to mount any of Rclone's cloud storage systems as a file system with FUSE.

      First set up your remote using rclone config. Check it works with rclone ls etc.

      -

      You can either run mount in foreground mode or background (daemon) mode. Mount runs in foreground mode by default, use the –daemon flag to specify background mode mode. Background mode is only supported on Linux and OSX, you can only run mount in foreground mode on Windows.

      +

      You can either run mount in foreground mode or background (daemon) mode. Mount runs in foreground mode by default, use the --daemon flag to specify background mode mode. Background mode is only supported on Linux and OSX, you can only run mount in foreground mode on Windows.

      On Linux/macOS/FreeBSD Start the mount like this where /path/to/local/mount is an empty existing directory.

      rclone mount remote:path/to/files /path/to/local/mount

      Or on Windows like this where X: is an unused drive letter or use a path to non-existent directory.

      @@ -1362,7 +1365,7 @@ rclone copy --files-from-raw new_files /path/to/local remote:path rclone mount remote:path/to/files C:\path\to\nonexistent\directory

      When running in background mode the user will have to stop the mount manually (specified below).

      When the program ends while in foreground mode, either via Ctrl+C or receiving a SIGINT or SIGTERM signal, the mount is automatically stopped.

      -

      The umount operation can fail, for example when the mountpoint is busy. When that happens, it is the user’s responsibility to stop the mount manually.

      +

      The umount operation can fail, for example when the mountpoint is busy. When that happens, it is the user's responsibility to stop the mount manually.

      Stopping the mount manually:

      # Linux
       fusermount -u /path/to/local/mount
      @@ -1378,31 +1381,31 @@ umount /path/to/local/mount

      By default, rclone will mount the remote as a normal drive. However, you can also mount it as a Network Drive (or Network Share, as mentioned in some places)

      Unlike other systems, Windows provides a different filesystem type for network drives. Windows and other programs treat the network drives and fixed/removable drives differently: In network drives, many I/O operations are optimized, as the high latency and low reliability (compared to a normal drive) of a network is expected.

      Although many people prefer network shares to be mounted as normal system drives, this might cause some issues, such as programs not working as expected or freezes and errors while operating with the mounted remote in Windows Explorer. If you experience any of those, consider mounting rclone remotes as network shares, as Windows expects normal drives to be fast and reliable, while cloud storage is far from that. See also Limitations section below for more info

      -

      Add “–fuse-flag –VolumePrefix=” to your “mount” command, replacing “share” with any other name of your choice if you are mounting more than one remote. Otherwise, the mountpoints will conflict and your mounted filesystems will overlap.

      +

      Add "--fuse-flag --VolumePrefix=" to your "mount" command, replacing "share" with any other name of your choice if you are mounting more than one remote. Otherwise, the mountpoints will conflict and your mounted filesystems will overlap.

      Read more about drive mapping

      Limitations

      -

      Without the use of “–vfs-cache-mode” this can only write files sequentially, it can only seek when reading. This means that many applications won’t work with their files on an rclone mount without “–vfs-cache-mode writes” or “–vfs-cache-mode full”. See the File Caching section for more info.

      +

      Without the use of "--vfs-cache-mode" this can only write files sequentially, it can only seek when reading. This means that many applications won't work with their files on an rclone mount without "--vfs-cache-mode writes" or "--vfs-cache-mode full". See the File Caching section for more info.

      The bucket based remotes (eg Swift, S3, Google Compute Storage, B2, Hubic) do not support the concept of empty directories, so empty directories will have a tendency to disappear once they fall out of the directory cache.

      Only supported on Linux, FreeBSD, OS X and Windows at the moment.

      rclone mount vs rclone sync/copy

      -

      File systems expect things to be 100% reliable, whereas cloud storage systems are a long way from 100% reliable. The rclone sync/copy commands cope with this with lots of retries. However rclone mount can’t use retries in the same way without making local copies of the uploads. Look at the file caching for solutions to make mount more reliable.

      +

      File systems expect things to be 100% reliable, whereas cloud storage systems are a long way from 100% reliable. The rclone sync/copy commands cope with this with lots of retries. However rclone mount can't use retries in the same way without making local copies of the uploads. Look at the file caching for solutions to make mount more reliable.

      Attribute caching

      -

      You can use the flag –attr-timeout to set the time the kernel caches the attributes (size, modification time etc) for directory entries.

      -

      The default is “1s” which caches files just long enough to avoid too many callbacks to rclone from the kernel.

      +

      You can use the flag --attr-timeout to set the time the kernel caches the attributes (size, modification time etc) for directory entries.

      +

      The default is "1s" which caches files just long enough to avoid too many callbacks to rclone from the kernel.

      In theory 0s should be the correct value for filesystems which can change outside the control of the kernel. However this causes quite a few problems such as rclone using too much memory, rclone not serving files to samba and excessive time listing directories.

      -

      The kernel can cache the info about a file for the time given by “–attr-timeout”. You may see corruption if the remote file changes length during this window. It will show up as either a truncated file or a file with garbage on the end. With “–attr-timeout 1s” this is very unlikely but not impossible. The higher you set “–attr-timeout” the more likely it is. The default setting of “1s” is the lowest setting which mitigates the problems above.

      -

      If you set it higher (‘10s’ or ‘1m’ say) then the kernel will call back to rclone less often making it more efficient, however there is more chance of the corruption issue above.

      -

      If files don’t change on the remote outside of the control of rclone then there is no chance of corruption.

      +

      The kernel can cache the info about a file for the time given by "--attr-timeout". You may see corruption if the remote file changes length during this window. It will show up as either a truncated file or a file with garbage on the end. With "--attr-timeout 1s" this is very unlikely but not impossible. The higher you set "--attr-timeout" the more likely it is. The default setting of "1s" is the lowest setting which mitigates the problems above.

      +

      If you set it higher ('10s' or '1m' say) then the kernel will call back to rclone less often making it more efficient, however there is more chance of the corruption issue above.

      +

      If files don't change on the remote outside of the control of rclone then there is no chance of corruption.

      This is the same as setting the attr_timeout option in mount.fuse.

      Filters

      Note that all the rclone filters can be used to select a subset of the files to be visible in the mount.

      systemd

      When running rclone mount as a systemd service, it is possible to use Type=notify. In this case the service will enter the started state after the mountpoint has been successfully set up. Units having the rclone mount service specified as a requirement will see all files and folders immediately in this mode.

      chunked reading

      -

      –vfs-read-chunk-size will enable reading the source objects in parts. This can reduce the used download quota for some remotes by requesting only chunks from the remote that are actually read at the cost of an increased number of requests.

      -

      When –vfs-read-chunk-size-limit is also specified and greater than –vfs-read-chunk-size, the chunk size for each open file will get doubled for each chunk read, until the specified value is reached. A value of -1 will disable the limit and the chunk size will grow indefinitely.

      -

      With –vfs-read-chunk-size 100M and –vfs-read-chunk-size-limit 0 the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M and so on. When –vfs-read-chunk-size-limit 500M is specified, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on.

      -

      Chunked reading will only work with –vfs-cache-mode < full, as the file will always be copied to the vfs cache before opening with –vfs-cache-mode full.

      +

      --vfs-read-chunk-size will enable reading the source objects in parts. This can reduce the used download quota for some remotes by requesting only chunks from the remote that are actually read at the cost of an increased number of requests.

      +

      When --vfs-read-chunk-size-limit is also specified and greater than --vfs-read-chunk-size, the chunk size for each open file will get doubled for each chunk read, until the specified value is reached. A value of -1 will disable the limit and the chunk size will grow indefinitely.

      +

      With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is specified, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on.

      +

      Chunked reading will only work with --vfs-cache-mode < full, as the file will always be copied to the vfs cache before opening with --vfs-cache-mode full.

      Directory Cache

      Using the --dir-cache-time flag, you can set how long a directory should be considered up to date and not refreshed from the backend. Changes made locally in the mount may appear immediately or invalidate the cache. However, changes done on the remote will only be picked up once the cache expires if the backend configured does not support polling for changes. If the backend supports polling, changes will be picked up on within the polling interval.

      Alternatively, you can send a SIGHUP signal to rclone for it to flush all directory caches, regardless of how old they are. Assuming only one rclone instance is running, you can reset the cache like this:

      @@ -1413,11 +1416,11 @@ umount /path/to/local/mount
      rclone rc vfs/forget file=path/to/file dir=path/to/dir

      File Buffering

      The --buffer-size flag determines the amount of memory, that will be used to buffer data in advance.

      -

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won’t be shared between multiple open file descriptors of the same file.

      +

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won't be shared between multiple open file descriptors of the same file.

      This flag is a upper limit for the used memory per file descriptor. The buffer will only use memory for data that is downloaded but not not yet read. If the buffer is empty, only a small amount of memory will be used. The maximum memory used by rclone for buffering can be up to --buffer-size * open files.

      File Caching

      These flags control the VFS file caching options. The VFS layer is used by rclone mount to make a cloud storage system work more like a normal file system.

      -

      You’ll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      +

      You'll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      Note that the VFS cache works in addition to the cache backend and you may find that you need one or the other or both.

      --cache-dir string                   Directory rclone will use for caching.
       --vfs-cache-max-age duration         Max age of objects in the cache. (default 1h0m0s)
      @@ -1426,47 +1429,47 @@ umount /path/to/local/mount
      --vfs-cache-max-size int Max total size of objects in the cache. (default off)

      If run with -vv rclone will print the location of the file cache. The files are stored in the user cache file area which is OS dependent but can be controlled with --cache-dir or setting the appropriate environment variable.

      The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

      -

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won’t get written back to the remote. However they will still be in the on disk cache.

      -

      If using –vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every –vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      -

      –vfs-cache-mode off

      +

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won't get written back to the remote. However they will still be in the on disk cache.

      +

      If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      +

      --vfs-cache-mode off

      In this mode the cache will read directly from the remote and write directly to the remote without caching anything on disk.

      This will mean some operations are not possible

      -

      –vfs-cache-mode minimal

      -

      This is very similar to “off” except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      +

      --vfs-cache-mode minimal

      +

      This is very similar to "off" except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      These operations are not possible

      -

      –vfs-cache-mode writes

      +

      --vfs-cache-mode writes

      In this mode files opened for read only are still read directly from the remote, write only and read/write files are buffered to disk first.

      This mode should support all normal file system operations.

      -

      If an upload fails it will be retried up to –low-level-retries times.

      -

      –vfs-cache-mode full

      +

      If an upload fails it will be retried up to --low-level-retries times.

      +

      --vfs-cache-mode full

      In this mode all reads and writes are buffered to and from disk. When a file is opened for read it will be downloaded in its entirety first.

      This may be appropriate for your needs, or you may prefer to look at the cache backend which does a much more sophisticated job of caching, including caching directory hierarchies and chunks of files.

      In this mode, unlike the others, when a file is written to the disk, it will be kept on the disk after it is written to the remote. It will be purged on a schedule according to --vfs-cache-max-age.

      This mode should support all normal file system operations.

      -

      If an upload or download fails it will be retried up to –low-level-retries times.

      +

      If an upload or download fails it will be retried up to --low-level-retries times.

      Case Sensitivity

      Linux file systems are case-sensitive: two files can differ only by case, and the exact case must be used when opening a file.

      Windows is not like most other operating systems supported by rclone. File systems in modern Windows are case-insensitive but case-preserving: although existing files can be opened using any case, the exact case used to create the file is preserved and available for programs to query. It is not allowed for two files in the same directory to differ only by case.

      Usually file systems on macOS are case-insensitive. It is possible to make macOS file systems case-sensitive but that is not the default

      -

      The “–vfs-case-insensitive” mount flag controls how rclone handles these two cases. If its value is “false”, rclone passes file names to the mounted file system as is. If the flag is “true” (or appears without a value on command line), rclone may perform a “fixup” as explained below.

      +

      The "--vfs-case-insensitive" mount flag controls how rclone handles these two cases. If its value is "false", rclone passes file names to the mounted file system as is. If the flag is "true" (or appears without a value on command line), rclone may perform a "fixup" as explained below.

      The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

      -

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether “fixup” is performed to satisfy the target.

      -

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: “true” on Windows and macOS, “false” otherwise. If the flag is provided without a value, then it is “true”.

      +

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

      +

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

      rclone mount remote:path /path/to/mountpoint [flags]

      Options

            --allow-non-empty                        Allow mounting over a non-empty directory (not Windows).
      @@ -1523,8 +1526,8 @@ umount /path/to/local/mount
      if src is directory move it to dst, overwriting existing files if they exist see move command for full details -

      This doesn’t transfer unchanged files, testing by size and modification time or MD5SUM. src will be deleted on successful transfer.

      -

      Important: Since this can cause data loss, test first with the –dry-run flag.

      +

      This doesn't transfer unchanged files, testing by size and modification time or MD5SUM. src will be deleted on successful transfer.

      +

      Important: Since this can cause data loss, test first with the --dry-run flag.

      Note: Use the -P/--progress flag to view real-time transfer statistics.

      rclone moveto source:path dest:path [flags]

      Options

      @@ -1537,9 +1540,9 @@ if src is directory

      rclone ncdu

      Explore a remote with a text based user interface.

      Synopsis

      -

      This displays a text based user interface allowing the navigation of a remote. It is most useful for answering the question - “What is using all my disk space?”.

      +

      This displays a text based user interface allowing the navigation of a remote. It is most useful for answering the question - "What is using all my disk space?".

      To make the user interface it first scans the entire remote given and builds an in memory representation. rclone ncdu can be used during this scanning phase and you will see it building up the directory structure as it goes along.

      -

      Here are the keys - press ‘?’ to toggle the help on and off

      +

      Here are the keys - press '?' to toggle the help on and off

       ↑,↓ or k,j to Move
        →,l to enter
        ←,h to return
      @@ -1553,7 +1556,7 @@ if src is directory
        ? to toggle help on and off
        q/ESC/c-C to quit

      This an homage to the ncdu tool but for rclone remotes. It is missing lots of features at the moment but is useful as it stands.

      -

      Note that it might take some time to delete big files/folders. The UI won’t respond in the meantime since the deletion is done synchronously.

      +

      Note that it might take some time to delete big files/folders. The UI won't respond in the meantime since the deletion is done synchronously.

      rclone ncdu remote:path [flags]

      Options

        -h, --help   help for ncdu
      @@ -1565,7 +1568,7 @@ if src is directory

      rclone obscure

      Obscure password for use in the rclone config file

      Synopsis

      -

      In the rclone config file, human readable passwords are obscured. Obscuring them is done by encrypting them and writing them out in base64. This is not a secure way of encrypting these passwords as rclone can decrypt them - it is to prevent “eyedropping” - namely someone seeing a password in the rclone config file by accident.

      +

      In the rclone config file, human readable passwords are obscured. Obscuring them is done by encrypting them and writing them out in base64. This is not a secure way of encrypting these passwords as rclone can decrypt them - it is to prevent "eyedropping" - namely someone seeing a password in the rclone config file by accident.

      Many equally important things (like access tokens) are not obscured in the config file. However it is very hard to shoulder surf a 64 character hex token.

      If you want to encrypt the config file then please use config file encryption - see rclone config for more info.

      rclone obscure password [flags]
      @@ -1579,23 +1582,23 @@ if src is directory

      rclone rc

      Run a command against a running rclone.

      Synopsis

      -

      This runs a command against a running rclone. Use the –url flag to specify an non default URL to connect on. This can be either a “:port” which is taken to mean “http://localhost:port” or a “host:port” which is taken to mean “http://host:port”

      -

      A username and password can be passed in with –user and –pass.

      -

      Note that –rc-addr, –rc-user, –rc-pass will be read also for –url, –user, –pass.

      +

      This runs a command against a running rclone. Use the --url flag to specify an non default URL to connect on. This can be either a ":port" which is taken to mean "http://localhost:port" or a "host:port" which is taken to mean "http://host:port"

      +

      A username and password can be passed in with --user and --pass.

      +

      Note that --rc-addr, --rc-user, --rc-pass will be read also for --url, --user, --pass.

      Arguments should be passed in as parameter=value.

      The result will be returned as a JSON object by default.

      -

      The –json parameter can be used to pass in a JSON blob as an input instead of key=value arguments. This is the only way of passing in more complicated values.

      -

      The -o/–opt option can be used to set a key “opt” with key, value options in the form “-o key=value” or “-o key”. It can be repeated as many times as required. This is useful for rc commands which take the “opt” parameter which by convention is a dictionary of strings.

      +

      The --json parameter can be used to pass in a JSON blob as an input instead of key=value arguments. This is the only way of passing in more complicated values.

      +

      The -o/--opt option can be used to set a key "opt" with key, value options in the form "-o key=value" or "-o key". It can be repeated as many times as required. This is useful for rc commands which take the "opt" parameter which by convention is a dictionary of strings.

      -o key=value -o key2
      -

      Will place this in the “opt” value

      +

      Will place this in the "opt" value

      {"key":"value", "key2","")
      -

      The -a/–arg option can be used to set strings in the “arg” value. It can be repeated as many times as required. This is useful for rc commands which take the “arg” parameter which by convention is a list of strings.

      +

      The -a/--arg option can be used to set strings in the "arg" value. It can be repeated as many times as required. This is useful for rc commands which take the "arg" parameter which by convention is a list of strings.

      -a value -a value2
      -

      Will place this in the “arg” value

      +

      Will place this in the "arg" value

      ["value", "value2"]
      -

      Use –loopback to connect to the rclone instance running “rclone rc”. This is very useful for testing commands without having to run an rclone rc server, eg:

      +

      Use --loopback to connect to the rclone instance running "rclone rc". This is very useful for testing commands without having to run an rclone rc server, eg:

      rclone rc --loopback operations/about fs=/
      -

      Use “rclone rc” to see a list of all possible commands.

      +

      Use "rclone rc" to see a list of all possible commands.

      rclone rc commands parameter [flags]

      Options

        -a, --arg stringArray   Argument placed in the "arg" array.
      @@ -1620,7 +1623,7 @@ if src is directory
       ffmpeg - | rclone rcat remote:path/to/file

      If the remote file already exists, it will be overwritten.

      rcat will try to upload small files in a single request, which is usually more efficient than the streaming/chunked upload endpoints, which use multiple requests. Exact behaviour depends on the remote. What is considered a small file may be set through --streaming-upload-cutoff. Uploading only starts after the cutoff is reached or if the file ends before that. The data must fit into RAM. The cutoff needs to be small enough to adhere the limits of your remote, please see there. Generally speaking, setting this cutoff too high will decrease your performance.

      -

      Note that the upload can also not be retried because the data is not kept around until the upload succeeds. If you need to transfer a lot of data, you’re better off caching locally and then rclone move it to the destination.

      +

      Note that the upload can also not be retried because the data is not kept around until the upload succeeds. If you need to transfer a lot of data, you're better off caching locally and then rclone move it to the destination.

      rclone rcat remote:path [flags]

      Options

        -h, --help   help for rcat
      @@ -1648,7 +1651,7 @@ ffmpeg - | rclone rcat remote:path/to/file

      Remove empty directories under the path.

      Synopsis

      This removes any empty directories (or directories that only contain empty directories) under the path that it finds, including the path if it has nothing in.

      -

      If you supply the –leave-root flag, it will not remove the root directory.

      +

      If you supply the --leave-root flag, it will not remove the root directory.

      This is useful for tidying up remotes that rclone has left a lot of empty directories in.

      rclone rmdirs remote:path [flags]

      Options

      @@ -1675,7 +1678,7 @@ ffmpeg - | rclone rcat remote:path/to/file
    15. rclone serve dlna - Serve remote:path over DLNA
    16. rclone serve ftp - Serve remote:path over FTP.
    17. rclone serve http - Serve the remote over HTTP.
    18. -
    19. rclone serve restic - Serve the remote for restic’s REST API.
    20. +
    21. rclone serve restic - Serve the remote for restic's REST API.
    22. rclone serve sftp - Serve the remote over SFTP.
    23. rclone serve webdav - Serve remote:path over webdav.
    24. @@ -1685,9 +1688,9 @@ ffmpeg - | rclone rcat remote:path/to/file

      rclone serve dlna is a DLNA media server for media stored in an rclone remote. Many devices, such as the Xbox and PlayStation, can automatically discover this server in the LAN and play audio/video from it. VLC is also supported. Service discovery uses UDP multicast packets (SSDP) and will thus only work on LANs.

      Rclone will list all files present in the remote, without filtering based on media formats or file extensions. Additionally, there is no media transcoding support. This means that some players might show files that they are not able to play back correctly.

      Server options

      -

      Use –addr to specify which IP address and port the server should listen on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs.

      -

      Use –name to choose the friendly server name, which is by default “rclone (hostname)”.

      -

      Use –log-trace in conjunction with -vv to enable additional debug logging of all UPNP traffic.

      +

      Use --addr to specify which IP address and port the server should listen on, eg --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.

      +

      Use --name to choose the friendly server name, which is by default "rclone (hostname)".

      +

      Use --log-trace in conjunction with -vv to enable additional debug logging of all UPNP traffic.

      Directory Cache

      Using the --dir-cache-time flag, you can set how long a directory should be considered up to date and not refreshed from the backend. Changes made locally in the mount may appear immediately or invalidate the cache. However, changes done on the remote will only be picked up once the cache expires if the backend configured does not support polling for changes. If the backend supports polling, changes will be picked up on within the polling interval.

      Alternatively, you can send a SIGHUP signal to rclone for it to flush all directory caches, regardless of how old they are. Assuming only one rclone instance is running, you can reset the cache like this:

      @@ -1698,11 +1701,11 @@ ffmpeg - | rclone rcat remote:path/to/file
      rclone rc vfs/forget file=path/to/file dir=path/to/dir

      File Buffering

      The --buffer-size flag determines the amount of memory, that will be used to buffer data in advance.

      -

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won’t be shared between multiple open file descriptors of the same file.

      +

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won't be shared between multiple open file descriptors of the same file.

      This flag is a upper limit for the used memory per file descriptor. The buffer will only use memory for data that is downloaded but not not yet read. If the buffer is empty, only a small amount of memory will be used. The maximum memory used by rclone for buffering can be up to --buffer-size * open files.

      File Caching

      These flags control the VFS file caching options. The VFS layer is used by rclone mount to make a cloud storage system work more like a normal file system.

      -

      You’ll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      +

      You'll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      Note that the VFS cache works in addition to the cache backend and you may find that you need one or the other or both.

      --cache-dir string                   Directory rclone will use for caching.
       --vfs-cache-max-age duration         Max age of objects in the cache. (default 1h0m0s)
      @@ -1711,47 +1714,47 @@ ffmpeg - | rclone rcat remote:path/to/file
      --vfs-cache-max-size int Max total size of objects in the cache. (default off)

      If run with -vv rclone will print the location of the file cache. The files are stored in the user cache file area which is OS dependent but can be controlled with --cache-dir or setting the appropriate environment variable.

      The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

      -

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won’t get written back to the remote. However they will still be in the on disk cache.

      -

      If using –vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every –vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      -

      –vfs-cache-mode off

      +

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won't get written back to the remote. However they will still be in the on disk cache.

      +

      If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      +

      --vfs-cache-mode off

      In this mode the cache will read directly from the remote and write directly to the remote without caching anything on disk.

      This will mean some operations are not possible

      -

      –vfs-cache-mode minimal

      -

      This is very similar to “off” except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      +

      --vfs-cache-mode minimal

      +

      This is very similar to "off" except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      These operations are not possible

      -

      –vfs-cache-mode writes

      +

      --vfs-cache-mode writes

      In this mode files opened for read only are still read directly from the remote, write only and read/write files are buffered to disk first.

      This mode should support all normal file system operations.

      -

      If an upload fails it will be retried up to –low-level-retries times.

      -

      –vfs-cache-mode full

      +

      If an upload fails it will be retried up to --low-level-retries times.

      +

      --vfs-cache-mode full

      In this mode all reads and writes are buffered to and from disk. When a file is opened for read it will be downloaded in its entirety first.

      This may be appropriate for your needs, or you may prefer to look at the cache backend which does a much more sophisticated job of caching, including caching directory hierarchies and chunks of files.

      In this mode, unlike the others, when a file is written to the disk, it will be kept on the disk after it is written to the remote. It will be purged on a schedule according to --vfs-cache-max-age.

      This mode should support all normal file system operations.

      -

      If an upload or download fails it will be retried up to –low-level-retries times.

      +

      If an upload or download fails it will be retried up to --low-level-retries times.

      Case Sensitivity

      Linux file systems are case-sensitive: two files can differ only by case, and the exact case must be used when opening a file.

      Windows is not like most other operating systems supported by rclone. File systems in modern Windows are case-insensitive but case-preserving: although existing files can be opened using any case, the exact case used to create the file is preserved and available for programs to query. It is not allowed for two files in the same directory to differ only by case.

      Usually file systems on macOS are case-insensitive. It is possible to make macOS file systems case-sensitive but that is not the default

      -

      The “–vfs-case-insensitive” mount flag controls how rclone handles these two cases. If its value is “false”, rclone passes file names to the mounted file system as is. If the flag is “true” (or appears without a value on command line), rclone may perform a “fixup” as explained below.

      +

      The "--vfs-case-insensitive" mount flag controls how rclone handles these two cases. If its value is "false", rclone passes file names to the mounted file system as is. If the flag is "true" (or appears without a value on command line), rclone may perform a "fixup" as explained below.

      The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

      -

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether “fixup” is performed to satisfy the target.

      -

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: “true” on Windows and macOS, “false” otherwise. If the flag is provided without a value, then it is “true”.

      +

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

      +

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

      rclone serve dlna remote:path [flags]

      Options

            --addr string                            ip:port or :port to bind the DLNA http server to. (default ":7879")
      @@ -1788,11 +1791,11 @@ ffmpeg - | rclone rcat remote:path/to/file

      Synopsis

      rclone serve ftp implements a basic ftp server to serve the remote over FTP protocol. This can be viewed with a ftp client or you can make a remote of type ftp to read and write it.

      Server options

      -

      Use –addr to specify which IP address and port the server should listen on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

      -

      If you set –addr to listen on a public or LAN accessible IP address then using Authentication is advised - see the next section for info.

      +

      Use --addr to specify which IP address and port the server should listen on, eg --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

      +

      If you set --addr to listen on a public or LAN accessible IP address then using Authentication is advised - see the next section for info.

      Authentication

      By default this will serve files without needing a login.

      -

      You can set a single username and password with the –user and –pass flags.

      +

      You can set a single username and password with the --user and --pass flags.

      Directory Cache

      Using the --dir-cache-time flag, you can set how long a directory should be considered up to date and not refreshed from the backend. Changes made locally in the mount may appear immediately or invalidate the cache. However, changes done on the remote will only be picked up once the cache expires if the backend configured does not support polling for changes. If the backend supports polling, changes will be picked up on within the polling interval.

      Alternatively, you can send a SIGHUP signal to rclone for it to flush all directory caches, regardless of how old they are. Assuming only one rclone instance is running, you can reset the cache like this:

      @@ -1803,11 +1806,11 @@ ffmpeg - | rclone rcat remote:path/to/file
      rclone rc vfs/forget file=path/to/file dir=path/to/dir

      File Buffering

      The --buffer-size flag determines the amount of memory, that will be used to buffer data in advance.

      -

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won’t be shared between multiple open file descriptors of the same file.

      +

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won't be shared between multiple open file descriptors of the same file.

      This flag is a upper limit for the used memory per file descriptor. The buffer will only use memory for data that is downloaded but not not yet read. If the buffer is empty, only a small amount of memory will be used. The maximum memory used by rclone for buffering can be up to --buffer-size * open files.

      File Caching

      These flags control the VFS file caching options. The VFS layer is used by rclone mount to make a cloud storage system work more like a normal file system.

      -

      You’ll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      +

      You'll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      Note that the VFS cache works in addition to the cache backend and you may find that you need one or the other or both.

      --cache-dir string                   Directory rclone will use for caching.
       --vfs-cache-max-age duration         Max age of objects in the cache. (default 1h0m0s)
      @@ -1816,52 +1819,52 @@ ffmpeg - | rclone rcat remote:path/to/file
      --vfs-cache-max-size int Max total size of objects in the cache. (default off)

      If run with -vv rclone will print the location of the file cache. The files are stored in the user cache file area which is OS dependent but can be controlled with --cache-dir or setting the appropriate environment variable.

      The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

      -

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won’t get written back to the remote. However they will still be in the on disk cache.

      -

      If using –vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every –vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      -

      –vfs-cache-mode off

      +

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won't get written back to the remote. However they will still be in the on disk cache.

      +

      If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      +

      --vfs-cache-mode off

      In this mode the cache will read directly from the remote and write directly to the remote without caching anything on disk.

      This will mean some operations are not possible

      -

      –vfs-cache-mode minimal

      -

      This is very similar to “off” except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      +

      --vfs-cache-mode minimal

      +

      This is very similar to "off" except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      These operations are not possible

      -

      –vfs-cache-mode writes

      +

      --vfs-cache-mode writes

      In this mode files opened for read only are still read directly from the remote, write only and read/write files are buffered to disk first.

      This mode should support all normal file system operations.

      -

      If an upload fails it will be retried up to –low-level-retries times.

      -

      –vfs-cache-mode full

      +

      If an upload fails it will be retried up to --low-level-retries times.

      +

      --vfs-cache-mode full

      In this mode all reads and writes are buffered to and from disk. When a file is opened for read it will be downloaded in its entirety first.

      This may be appropriate for your needs, or you may prefer to look at the cache backend which does a much more sophisticated job of caching, including caching directory hierarchies and chunks of files.

      In this mode, unlike the others, when a file is written to the disk, it will be kept on the disk after it is written to the remote. It will be purged on a schedule according to --vfs-cache-max-age.

      This mode should support all normal file system operations.

      -

      If an upload or download fails it will be retried up to –low-level-retries times.

      +

      If an upload or download fails it will be retried up to --low-level-retries times.

      Case Sensitivity

      Linux file systems are case-sensitive: two files can differ only by case, and the exact case must be used when opening a file.

      Windows is not like most other operating systems supported by rclone. File systems in modern Windows are case-insensitive but case-preserving: although existing files can be opened using any case, the exact case used to create the file is preserved and available for programs to query. It is not allowed for two files in the same directory to differ only by case.

      Usually file systems on macOS are case-insensitive. It is possible to make macOS file systems case-sensitive but that is not the default

      -

      The “–vfs-case-insensitive” mount flag controls how rclone handles these two cases. If its value is “false”, rclone passes file names to the mounted file system as is. If the flag is “true” (or appears without a value on command line), rclone may perform a “fixup” as explained below.

      +

      The "--vfs-case-insensitive" mount flag controls how rclone handles these two cases. If its value is "false", rclone passes file names to the mounted file system as is. If the flag is "true" (or appears without a value on command line), rclone may perform a "fixup" as explained below.

      The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

      -

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether “fixup” is performed to satisfy the target.

      -

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: “true” on Windows and macOS, “false” otherwise. If the flag is provided without a value, then it is “true”.

      +

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

      +

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

      Auth Proxy

      If you supply the parameter --auth-proxy /path/to/program then rclone will use that program to generate backends on the fly which then are used to authenticate incoming requests. This uses a simple JSON based protocl with input on STDIN and output on STDOUT.

      PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used together, if --auth-proxy is set the authorized keys option will be ignored.

      There is an example program bin/test_proxy.py in the rclone source code.

      -

      The program’s job is to take a user and pass on the input and turn those into the config for a backend on STDOUT in JSON format. This config will have any default parameters for the backend added, but it won’t use configuration from environment variables or command line options - it is the job of the proxy program to make a complete config.

      +

      The program's job is to take a user and pass on the input and turn those into the config for a backend on STDOUT in JSON format. This config will have any default parameters for the backend added, but it won't use configuration from environment variables or command line options - it is the job of the proxy program to make a complete config.

      This config generated must have this extra parameter - _root - root to use for the backend

      And it may have this parameter - _obscure - comma separated strings for parameters to obscure

      If password authentication was used by the client, input to the proxy process (on STDIN) would look similar to this:

      @@ -1884,8 +1887,8 @@ ffmpeg - | rclone rcat remote:path/to/file "host": "sftp.example.com" }

      This would mean that an SFTP backend would be created on the fly for the user and pass/public_key returned in the output to the host given. Note that since _obscure is set to pass, rclone will obscure the pass parameter before creating the backend (which is required for sftp backends).

      -

      The program can manipulate the supplied user in any way, for example to make proxy to many different sftp backends, you could make the user be user@example.com and then set the host to example.com in the output and the user to user. For security you’d probably want to restrict the host to a limited list.

      -

      Note that an internal cache is keyed on user so only use that for configuration, don’t use pass or public_key. This also means that if a user’s password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

      +

      The program can manipulate the supplied user in any way, for example to make proxy to many different sftp backends, you could make the user be user@example.com and then set the host to example.com in the output and the user to user. For security you'd probably want to restrict the host to a limited list.

      +

      Note that an internal cache is keyed on user so only use that for configuration, don't use pass or public_key. This also means that if a user's password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

      This can be used to build general purpose proxies to any kind of backend that rclone supports.

      rclone serve ftp remote:path [flags]

      Options

      @@ -1925,16 +1928,16 @@ ffmpeg - | rclone rcat remote:path/to/file

      Serve the remote over HTTP.

      Synopsis

      rclone serve http implements a basic web server to serve the remote over HTTP. This can be viewed in a web browser or you can make a remote of type http read from it.

      -

      You can use the filter flags (eg –include, –exclude) to control what is served.

      +

      You can use the filter flags (eg --include, --exclude) to control what is served.

      The server will log errors. Use -v to see access logs.

      -

      –bwlimit will be respected for file transfers. Use –stats to control the stats printing.

      +

      --bwlimit will be respected for file transfers. Use --stats to control the stats printing.

      Server options

      -

      Use –addr to specify which IP address and port the server should listen on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

      -

      If you set –addr to listen on a public or LAN accessible IP address then using Authentication is advised - see the next section for info.

      -

      –server-read-timeout and –server-write-timeout can be used to control the timeouts on the server. Note that this is the total time for a transfer.

      -

      –max-header-bytes controls the maximum number of bytes the server will accept in the HTTP header.

      -

      –baseurl controls the URL prefix that rclone serves from. By default rclone will serve from the root. If you used –baseurl “/rclone” then rclone would serve from a URL starting with “/rclone/”. This is useful if you wish to proxy rclone serve. Rclone automatically inserts leading and trailing “/” on –baseurl, so –baseurl “rclone”, –baseurl “/rclone” and –baseurl “/rclone/” are all treated identically.

      -

      –template allows a user to specify a custom markup template for http and webdav serve functions. The server exports the following markup to be used within the template to server pages:

      +

      Use --addr to specify which IP address and port the server should listen on, eg --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

      +

      If you set --addr to listen on a public or LAN accessible IP address then using Authentication is advised - see the next section for info.

      +

      --server-read-timeout and --server-write-timeout can be used to control the timeouts on the server. Note that this is the total time for a transfer.

      +

      --max-header-bytes controls the maximum number of bytes the server will accept in the HTTP header.

      +

      --baseurl controls the URL prefix that rclone serves from. By default rclone will serve from the root. If you used --baseurl "/rclone" then rclone would serve from a URL starting with "/rclone/". This is useful if you wish to proxy rclone serve. Rclone automatically inserts leading and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl "/rclone" and --baseurl "/rclone/" are all treated identically.

      +

      --template allows a user to specify a custom markup template for http and webdav serve functions. The server exports the following markup to be used within the template to server pages:

      @@ -1980,11 +1983,11 @@ ffmpeg - | rclone rcat remote:path/to/file - + - + @@ -1992,40 +1995,40 @@ ffmpeg - | rclone rcat remote:path/to/file - - + + - - + + - + - + - +
      Allows for creating a relative navigation
      – .Link-- .Link The relative to the root link of the Text.
      – .Text-- .Text The Name of the directory.
      Information about a specific file/directory.
      – .URLThe ‘url’ of an entry.-- .URLThe 'url' of an entry.
      – .LeafCurrently same as ‘URL’ but intended to be ‘just’ the name.-- .LeafCurrently same as 'URL' but intended to be 'just' the name.
      – .IsDir-- .IsDir Boolean for if an entry is a directory or not.
      – .Size-- .Size Size in Bytes of the entry.
      – .ModTime-- .ModTime The UTC timestamp of an entry.

      Authentication

      By default this will serve files without needing a login.

      -

      You can either use an htpasswd file which can take lots of users, or set a single username and password with the –user and –pass flags.

      -

      Use –htpasswd /path/to/htpasswd to provide an htpasswd file. This is in standard apache format and supports MD5, SHA1 and BCrypt for basic authentication. Bcrypt is recommended.

      +

      You can either use an htpasswd file which can take lots of users, or set a single username and password with the --user and --pass flags.

      +

      Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is in standard apache format and supports MD5, SHA1 and BCrypt for basic authentication. Bcrypt is recommended.

      To create an htpasswd file:

      touch htpasswd
       htpasswd -B htpasswd user
       htpasswd -B htpasswd anotherUser

      The password file can be updated while rclone is running.

      -

      Use –realm to set the authentication realm.

      +

      Use --realm to set the authentication realm.

      SSL/TLS

      -

      By default this will serve over http. If you want you can serve over https. You will need to supply the –cert and –key flags. If you wish to do client side certificate validation then you will need to supply –client-ca also.

      -

      –cert should be either a PEM encoded certificate or a concatenation of that with the CA certificate. –key should be the PEM encoded private key and –client-ca should be the PEM encoded client certificate authority certificate.

      +

      By default this will serve over http. If you want you can serve over https. You will need to supply the --cert and --key flags. If you wish to do client side certificate validation then you will need to supply --client-ca also.

      +

      --cert should be either a PEM encoded certificate or a concatenation of that with the CA certificate. --key should be the PEM encoded private key and --client-ca should be the PEM encoded client certificate authority certificate.

      Directory Cache

      Using the --dir-cache-time flag, you can set how long a directory should be considered up to date and not refreshed from the backend. Changes made locally in the mount may appear immediately or invalidate the cache. However, changes done on the remote will only be picked up once the cache expires if the backend configured does not support polling for changes. If the backend supports polling, changes will be picked up on within the polling interval.

      Alternatively, you can send a SIGHUP signal to rclone for it to flush all directory caches, regardless of how old they are. Assuming only one rclone instance is running, you can reset the cache like this:

      @@ -2036,11 +2039,11 @@ htpasswd -B htpasswd anotherUser
      rclone rc vfs/forget file=path/to/file dir=path/to/dir

      File Buffering

      The --buffer-size flag determines the amount of memory, that will be used to buffer data in advance.

      -

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won’t be shared between multiple open file descriptors of the same file.

      +

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won't be shared between multiple open file descriptors of the same file.

      This flag is a upper limit for the used memory per file descriptor. The buffer will only use memory for data that is downloaded but not not yet read. If the buffer is empty, only a small amount of memory will be used. The maximum memory used by rclone for buffering can be up to --buffer-size * open files.

      File Caching

      These flags control the VFS file caching options. The VFS layer is used by rclone mount to make a cloud storage system work more like a normal file system.

      -

      You’ll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      +

      You'll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      Note that the VFS cache works in addition to the cache backend and you may find that you need one or the other or both.

      --cache-dir string                   Directory rclone will use for caching.
       --vfs-cache-max-age duration         Max age of objects in the cache. (default 1h0m0s)
      @@ -2049,47 +2052,47 @@ htpasswd -B htpasswd anotherUser
      --vfs-cache-max-size int Max total size of objects in the cache. (default off)

      If run with -vv rclone will print the location of the file cache. The files are stored in the user cache file area which is OS dependent but can be controlled with --cache-dir or setting the appropriate environment variable.

      The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

      -

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won’t get written back to the remote. However they will still be in the on disk cache.

      -

      If using –vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every –vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      -

      –vfs-cache-mode off

      +

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won't get written back to the remote. However they will still be in the on disk cache.

      +

      If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      +

      --vfs-cache-mode off

      In this mode the cache will read directly from the remote and write directly to the remote without caching anything on disk.

      This will mean some operations are not possible

      -

      –vfs-cache-mode minimal

      -

      This is very similar to “off” except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      +

      --vfs-cache-mode minimal

      +

      This is very similar to "off" except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      These operations are not possible

      -

      –vfs-cache-mode writes

      +

      --vfs-cache-mode writes

      In this mode files opened for read only are still read directly from the remote, write only and read/write files are buffered to disk first.

      This mode should support all normal file system operations.

      -

      If an upload fails it will be retried up to –low-level-retries times.

      -

      –vfs-cache-mode full

      +

      If an upload fails it will be retried up to --low-level-retries times.

      +

      --vfs-cache-mode full

      In this mode all reads and writes are buffered to and from disk. When a file is opened for read it will be downloaded in its entirety first.

      This may be appropriate for your needs, or you may prefer to look at the cache backend which does a much more sophisticated job of caching, including caching directory hierarchies and chunks of files.

      In this mode, unlike the others, when a file is written to the disk, it will be kept on the disk after it is written to the remote. It will be purged on a schedule according to --vfs-cache-max-age.

      This mode should support all normal file system operations.

      -

      If an upload or download fails it will be retried up to –low-level-retries times.

      +

      If an upload or download fails it will be retried up to --low-level-retries times.

      Case Sensitivity

      Linux file systems are case-sensitive: two files can differ only by case, and the exact case must be used when opening a file.

      Windows is not like most other operating systems supported by rclone. File systems in modern Windows are case-insensitive but case-preserving: although existing files can be opened using any case, the exact case used to create the file is preserved and available for programs to query. It is not allowed for two files in the same directory to differ only by case.

      Usually file systems on macOS are case-insensitive. It is possible to make macOS file systems case-sensitive but that is not the default

      -

      The “–vfs-case-insensitive” mount flag controls how rclone handles these two cases. If its value is “false”, rclone passes file names to the mounted file system as is. If the flag is “true” (or appears without a value on command line), rclone may perform a “fixup” as explained below.

      +

      The "--vfs-case-insensitive" mount flag controls how rclone handles these two cases. If its value is "false", rclone passes file names to the mounted file system as is. If the flag is "true" (or appears without a value on command line), rclone may perform a "fixup" as explained below.

      The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

      -

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether “fixup” is performed to satisfy the target.

      -

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: “true” on Windows and macOS, “false” otherwise. If the flag is provided without a value, then it is “true”.

      +

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

      +

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

      rclone serve http remote:path [flags]

      Options

            --addr string                            IPaddress:Port or :Port to bind server to. (default "localhost:8080")
      @@ -2132,24 +2135,24 @@ htpasswd -B htpasswd anotherUser
    25. rclone serve - Serve a remote over a protocol.
    26. rclone serve restic

      -

      Serve the remote for restic’s REST API.

      +

      Serve the remote for restic's REST API.

      Synopsis

      -

      rclone serve restic implements restic’s REST backend API over HTTP. This allows restic to use rclone as a data storage mechanism for cloud providers that restic does not support directly.

      +

      rclone serve restic implements restic's REST backend API over HTTP. This allows restic to use rclone as a data storage mechanism for cloud providers that restic does not support directly.

      Restic is a command line program for doing backups.

      The server will log errors. Use -v to see access logs.

      -

      –bwlimit will be respected for file transfers. Use –stats to control the stats printing.

      +

      --bwlimit will be respected for file transfers. Use --stats to control the stats printing.

      Setting up rclone for use by restic

      First set up a remote for your chosen cloud provider.

      -

      Once you have set up the remote, check it is working with, for example “rclone lsd remote:”. You may have called the remote something other than “remote:” - just substitute whatever you called it in the following instructions.

      +

      Once you have set up the remote, check it is working with, for example "rclone lsd remote:". You may have called the remote something other than "remote:" - just substitute whatever you called it in the following instructions.

      Now start the rclone restic server

      rclone serve restic -v remote:backup
      -

      Where you can replace “backup” in the above by whatever path in the remote you wish to use.

      -

      By default this will serve on “localhost:8080” you can change this with use of the “–addr” flag.

      +

      Where you can replace "backup" in the above by whatever path in the remote you wish to use.

      +

      By default this will serve on "localhost:8080" you can change this with use of the "--addr" flag.

      You might wish to start this server on boot.

      Setting up restic to use rclone

      Now you can follow the restic instructions on setting up restic.

      Note that you will need restic 0.8.2 or later to interoperate with rclone.

      -

      For the example above you will want to use “http://localhost:8080/” as the URL for the REST server.

      +

      For the example above you will want to use "http://localhost:8080/" as the URL for the REST server.

      For example:

      $ export RESTIC_REPOSITORY=rest:http://localhost:8080/
       $ export RESTIC_PASSWORD=yourpassword
      @@ -2172,14 +2175,14 @@ snapshot 45c8fdd8 saved
      $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/ # backup user2 stuff

      Private repositories

      -

      The “–private-repos” flag can be used to limit users to repositories starting with a path of /<username>/.

      +

      The "--private-repos" flag can be used to limit users to repositories starting with a path of /<username>/.

      Server options

      -

      Use –addr to specify which IP address and port the server should listen on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

      -

      If you set –addr to listen on a public or LAN accessible IP address then using Authentication is advised - see the next section for info.

      -

      –server-read-timeout and –server-write-timeout can be used to control the timeouts on the server. Note that this is the total time for a transfer.

      -

      –max-header-bytes controls the maximum number of bytes the server will accept in the HTTP header.

      -

      –baseurl controls the URL prefix that rclone serves from. By default rclone will serve from the root. If you used –baseurl “/rclone” then rclone would serve from a URL starting with “/rclone/”. This is useful if you wish to proxy rclone serve. Rclone automatically inserts leading and trailing “/” on –baseurl, so –baseurl “rclone”, –baseurl “/rclone” and –baseurl “/rclone/” are all treated identically.

      -

      –template allows a user to specify a custom markup template for http and webdav serve functions. The server exports the following markup to be used within the template to server pages:

      +

      Use --addr to specify which IP address and port the server should listen on, eg --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

      +

      If you set --addr to listen on a public or LAN accessible IP address then using Authentication is advised - see the next section for info.

      +

      --server-read-timeout and --server-write-timeout can be used to control the timeouts on the server. Note that this is the total time for a transfer.

      +

      --max-header-bytes controls the maximum number of bytes the server will accept in the HTTP header.

      +

      --baseurl controls the URL prefix that rclone serves from. By default rclone will serve from the root. If you used --baseurl "/rclone" then rclone would serve from a URL starting with "/rclone/". This is useful if you wish to proxy rclone serve. Rclone automatically inserts leading and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl "/rclone" and --baseurl "/rclone/" are all treated identically.

      +

      --template allows a user to specify a custom markup template for http and webdav serve functions. The server exports the following markup to be used within the template to server pages:

      @@ -2225,11 +2228,11 @@ $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/ - + - + @@ -2237,40 +2240,40 @@ $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/ - - + + - - + + - + - + - +
      Allows for creating a relative navigation
      – .Link-- .Link The relative to the root link of the Text.
      – .Text-- .Text The Name of the directory.
      Information about a specific file/directory.
      – .URLThe ‘url’ of an entry.-- .URLThe 'url' of an entry.
      – .LeafCurrently same as ‘URL’ but intended to be ‘just’ the name.-- .LeafCurrently same as 'URL' but intended to be 'just' the name.
      – .IsDir-- .IsDir Boolean for if an entry is a directory or not.
      – .Size-- .Size Size in Bytes of the entry.
      – .ModTime-- .ModTime The UTC timestamp of an entry.

      Authentication

      By default this will serve files without needing a login.

      -

      You can either use an htpasswd file which can take lots of users, or set a single username and password with the –user and –pass flags.

      -

      Use –htpasswd /path/to/htpasswd to provide an htpasswd file. This is in standard apache format and supports MD5, SHA1 and BCrypt for basic authentication. Bcrypt is recommended.

      +

      You can either use an htpasswd file which can take lots of users, or set a single username and password with the --user and --pass flags.

      +

      Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is in standard apache format and supports MD5, SHA1 and BCrypt for basic authentication. Bcrypt is recommended.

      To create an htpasswd file:

      touch htpasswd
       htpasswd -B htpasswd user
       htpasswd -B htpasswd anotherUser

      The password file can be updated while rclone is running.

      -

      Use –realm to set the authentication realm.

      +

      Use --realm to set the authentication realm.

      SSL/TLS

      -

      By default this will serve over http. If you want you can serve over https. You will need to supply the –cert and –key flags. If you wish to do client side certificate validation then you will need to supply –client-ca also.

      -

      –cert should be either a PEM encoded certificate or a concatenation of that with the CA certificate. –key should be the PEM encoded private key and –client-ca should be the PEM encoded client certificate authority certificate.

      +

      By default this will serve over http. If you want you can serve over https. You will need to supply the --cert and --key flags. If you wish to do client side certificate validation then you will need to supply --client-ca also.

      +

      --cert should be either a PEM encoded certificate or a concatenation of that with the CA certificate. --key should be the PEM encoded private key and --client-ca should be the PEM encoded client certificate authority certificate.

      rclone serve restic remote:path [flags]

      Options

            --addr string                     IPaddress:Port or :Port to bind server to. (default "localhost:8080")
      @@ -2299,14 +2302,14 @@ htpasswd -B htpasswd anotherUser

      Serve the remote over SFTP.

      Synopsis

      rclone serve sftp implements an SFTP server to serve the remote over SFTP. This can be used with an SFTP client or you can make a remote of type sftp to use with it.

      -

      You can use the filter flags (eg –include, –exclude) to control what is served.

      +

      You can use the filter flags (eg --include, --exclude) to control what is served.

      The server will log errors. Use -v to see access logs.

      -

      –bwlimit will be respected for file transfers. Use –stats to control the stats printing.

      -

      You must provide some means of authentication, either with –user/–pass, an authorized keys file (specify location with –authorized-keys - the default is the same as ssh), an –auth-proxy, or set the –no-auth flag for no authentication when logging in.

      +

      --bwlimit will be respected for file transfers. Use --stats to control the stats printing.

      +

      You must provide some means of authentication, either with --user/--pass, an authorized keys file (specify location with --authorized-keys - the default is the same as ssh), an --auth-proxy, or set the --no-auth flag for no authentication when logging in.

      Note that this also implements a small number of shell commands so that it can provide md5sum/sha1sum/df information for the rclone sftp backend. This means that is can support SHA1SUMs, MD5SUMs and the about command when paired with the rclone sftp backend.

      -

      If you don’t supply a –key then rclone will generate one and cache it for later use.

      -

      By default the server binds to localhost:2022 - if you want it to be reachable externally then supply “–addr :2022” for example.

      -

      Note that the default of “–vfs-cache-mode off” is fine for the rclone sftp backend, but it may not be with other SFTP clients.

      +

      If you don't supply a --key then rclone will generate one and cache it for later use.

      +

      By default the server binds to localhost:2022 - if you want it to be reachable externally then supply "--addr :2022" for example.

      +

      Note that the default of "--vfs-cache-mode off" is fine for the rclone sftp backend, but it may not be with other SFTP clients.

      Directory Cache

      Using the --dir-cache-time flag, you can set how long a directory should be considered up to date and not refreshed from the backend. Changes made locally in the mount may appear immediately or invalidate the cache. However, changes done on the remote will only be picked up once the cache expires if the backend configured does not support polling for changes. If the backend supports polling, changes will be picked up on within the polling interval.

      Alternatively, you can send a SIGHUP signal to rclone for it to flush all directory caches, regardless of how old they are. Assuming only one rclone instance is running, you can reset the cache like this:

      @@ -2317,11 +2320,11 @@ htpasswd -B htpasswd anotherUser
      rclone rc vfs/forget file=path/to/file dir=path/to/dir

      File Buffering

      The --buffer-size flag determines the amount of memory, that will be used to buffer data in advance.

      -

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won’t be shared between multiple open file descriptors of the same file.

      +

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won't be shared between multiple open file descriptors of the same file.

      This flag is a upper limit for the used memory per file descriptor. The buffer will only use memory for data that is downloaded but not not yet read. If the buffer is empty, only a small amount of memory will be used. The maximum memory used by rclone for buffering can be up to --buffer-size * open files.

      File Caching

      These flags control the VFS file caching options. The VFS layer is used by rclone mount to make a cloud storage system work more like a normal file system.

      -

      You’ll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      +

      You'll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      Note that the VFS cache works in addition to the cache backend and you may find that you need one or the other or both.

      --cache-dir string                   Directory rclone will use for caching.
       --vfs-cache-max-age duration         Max age of objects in the cache. (default 1h0m0s)
      @@ -2330,52 +2333,52 @@ htpasswd -B htpasswd anotherUser
      --vfs-cache-max-size int Max total size of objects in the cache. (default off)

      If run with -vv rclone will print the location of the file cache. The files are stored in the user cache file area which is OS dependent but can be controlled with --cache-dir or setting the appropriate environment variable.

      The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

      -

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won’t get written back to the remote. However they will still be in the on disk cache.

      -

      If using –vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every –vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      -

      –vfs-cache-mode off

      +

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won't get written back to the remote. However they will still be in the on disk cache.

      +

      If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      +

      --vfs-cache-mode off

      In this mode the cache will read directly from the remote and write directly to the remote without caching anything on disk.

      This will mean some operations are not possible

      -

      –vfs-cache-mode minimal

      -

      This is very similar to “off” except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      +

      --vfs-cache-mode minimal

      +

      This is very similar to "off" except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      These operations are not possible

      -

      –vfs-cache-mode writes

      +

      --vfs-cache-mode writes

      In this mode files opened for read only are still read directly from the remote, write only and read/write files are buffered to disk first.

      This mode should support all normal file system operations.

      -

      If an upload fails it will be retried up to –low-level-retries times.

      -

      –vfs-cache-mode full

      +

      If an upload fails it will be retried up to --low-level-retries times.

      +

      --vfs-cache-mode full

      In this mode all reads and writes are buffered to and from disk. When a file is opened for read it will be downloaded in its entirety first.

      This may be appropriate for your needs, or you may prefer to look at the cache backend which does a much more sophisticated job of caching, including caching directory hierarchies and chunks of files.

      In this mode, unlike the others, when a file is written to the disk, it will be kept on the disk after it is written to the remote. It will be purged on a schedule according to --vfs-cache-max-age.

      This mode should support all normal file system operations.

      -

      If an upload or download fails it will be retried up to –low-level-retries times.

      +

      If an upload or download fails it will be retried up to --low-level-retries times.

      Case Sensitivity

      Linux file systems are case-sensitive: two files can differ only by case, and the exact case must be used when opening a file.

      Windows is not like most other operating systems supported by rclone. File systems in modern Windows are case-insensitive but case-preserving: although existing files can be opened using any case, the exact case used to create the file is preserved and available for programs to query. It is not allowed for two files in the same directory to differ only by case.

      Usually file systems on macOS are case-insensitive. It is possible to make macOS file systems case-sensitive but that is not the default

      -

      The “–vfs-case-insensitive” mount flag controls how rclone handles these two cases. If its value is “false”, rclone passes file names to the mounted file system as is. If the flag is “true” (or appears without a value on command line), rclone may perform a “fixup” as explained below.

      +

      The "--vfs-case-insensitive" mount flag controls how rclone handles these two cases. If its value is "false", rclone passes file names to the mounted file system as is. If the flag is "true" (or appears without a value on command line), rclone may perform a "fixup" as explained below.

      The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

      -

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether “fixup” is performed to satisfy the target.

      -

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: “true” on Windows and macOS, “false” otherwise. If the flag is provided without a value, then it is “true”.

      +

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

      +

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

      Auth Proxy

      If you supply the parameter --auth-proxy /path/to/program then rclone will use that program to generate backends on the fly which then are used to authenticate incoming requests. This uses a simple JSON based protocl with input on STDIN and output on STDOUT.

      PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used together, if --auth-proxy is set the authorized keys option will be ignored.

      There is an example program bin/test_proxy.py in the rclone source code.

      -

      The program’s job is to take a user and pass on the input and turn those into the config for a backend on STDOUT in JSON format. This config will have any default parameters for the backend added, but it won’t use configuration from environment variables or command line options - it is the job of the proxy program to make a complete config.

      +

      The program's job is to take a user and pass on the input and turn those into the config for a backend on STDOUT in JSON format. This config will have any default parameters for the backend added, but it won't use configuration from environment variables or command line options - it is the job of the proxy program to make a complete config.

      This config generated must have this extra parameter - _root - root to use for the backend

      And it may have this parameter - _obscure - comma separated strings for parameters to obscure

      If password authentication was used by the client, input to the proxy process (on STDIN) would look similar to this:

      @@ -2398,8 +2401,8 @@ htpasswd -B htpasswd anotherUser "host": "sftp.example.com" }

      This would mean that an SFTP backend would be created on the fly for the user and pass/public_key returned in the output to the host given. Note that since _obscure is set to pass, rclone will obscure the pass parameter before creating the backend (which is required for sftp backends).

      -

      The program can manipulate the supplied user in any way, for example to make proxy to many different sftp backends, you could make the user be user@example.com and then set the host to example.com in the output and the user to user. For security you’d probably want to restrict the host to a limited list.

      -

      Note that an internal cache is keyed on user so only use that for configuration, don’t use pass or public_key. This also means that if a user’s password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

      +

      The program can manipulate the supplied user in any way, for example to make proxy to many different sftp backends, you could make the user be user@example.com and then set the host to example.com in the output and the user to user. For security you'd probably want to restrict the host to a limited list.

      +

      Note that an internal cache is keyed on user so only use that for configuration, don't use pass or public_key. This also means that if a user's password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

      This can be used to build general purpose proxies to any kind of backend that rclone supports.

      rclone serve sftp remote:path [flags]

      Options

      @@ -2441,17 +2444,17 @@ htpasswd -B htpasswd anotherUser

      Synopsis

      rclone serve webdav implements a basic webdav server to serve the remote over HTTP via the webdav protocol. This can be viewed with a webdav client, through a web browser, or you can make a remote of type webdav to read and write it.

      Webdav options

      -

      –etag-hash

      +

      --etag-hash

      This controls the ETag header. Without this flag the ETag will be based on the ModTime and Size of the object.

      -

      If this flag is set to “auto” then rclone will choose the first supported hash on the backend or you can use a named hash such as “MD5” or “SHA-1”.

      -

      Use “rclone hashsum” to see the full list.

      +

      If this flag is set to "auto" then rclone will choose the first supported hash on the backend or you can use a named hash such as "MD5" or "SHA-1".

      +

      Use "rclone hashsum" to see the full list.

      Server options

      -

      Use –addr to specify which IP address and port the server should listen on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

      -

      If you set –addr to listen on a public or LAN accessible IP address then using Authentication is advised - see the next section for info.

      -

      –server-read-timeout and –server-write-timeout can be used to control the timeouts on the server. Note that this is the total time for a transfer.

      -

      –max-header-bytes controls the maximum number of bytes the server will accept in the HTTP header.

      -

      –baseurl controls the URL prefix that rclone serves from. By default rclone will serve from the root. If you used –baseurl “/rclone” then rclone would serve from a URL starting with “/rclone/”. This is useful if you wish to proxy rclone serve. Rclone automatically inserts leading and trailing “/” on –baseurl, so –baseurl “rclone”, –baseurl “/rclone” and –baseurl “/rclone/” are all treated identically.

      -

      –template allows a user to specify a custom markup template for http and webdav serve functions. The server exports the following markup to be used within the template to server pages:

      +

      Use --addr to specify which IP address and port the server should listen on, eg --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs. By default it only listens on localhost. You can use port :0 to let the OS choose an available port.

      +

      If you set --addr to listen on a public or LAN accessible IP address then using Authentication is advised - see the next section for info.

      +

      --server-read-timeout and --server-write-timeout can be used to control the timeouts on the server. Note that this is the total time for a transfer.

      +

      --max-header-bytes controls the maximum number of bytes the server will accept in the HTTP header.

      +

      --baseurl controls the URL prefix that rclone serves from. By default rclone will serve from the root. If you used --baseurl "/rclone" then rclone would serve from a URL starting with "/rclone/". This is useful if you wish to proxy rclone serve. Rclone automatically inserts leading and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl "/rclone" and --baseurl "/rclone/" are all treated identically.

      +

      --template allows a user to specify a custom markup template for http and webdav serve functions. The server exports the following markup to be used within the template to server pages:

      @@ -2497,11 +2500,11 @@ htpasswd -B htpasswd anotherUser - + - + @@ -2509,40 +2512,40 @@ htpasswd -B htpasswd anotherUser - - + + - - + + - + - + - +
      Allows for creating a relative navigation
      – .Link-- .Link The relative to the root link of the Text.
      – .Text-- .Text The Name of the directory.
      Information about a specific file/directory.
      – .URLThe ‘url’ of an entry.-- .URLThe 'url' of an entry.
      – .LeafCurrently same as ‘URL’ but intended to be ‘just’ the name.-- .LeafCurrently same as 'URL' but intended to be 'just' the name.
      – .IsDir-- .IsDir Boolean for if an entry is a directory or not.
      – .Size-- .Size Size in Bytes of the entry.
      – .ModTime-- .ModTime The UTC timestamp of an entry.

      Authentication

      By default this will serve files without needing a login.

      -

      You can either use an htpasswd file which can take lots of users, or set a single username and password with the –user and –pass flags.

      -

      Use –htpasswd /path/to/htpasswd to provide an htpasswd file. This is in standard apache format and supports MD5, SHA1 and BCrypt for basic authentication. Bcrypt is recommended.

      +

      You can either use an htpasswd file which can take lots of users, or set a single username and password with the --user and --pass flags.

      +

      Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is in standard apache format and supports MD5, SHA1 and BCrypt for basic authentication. Bcrypt is recommended.

      To create an htpasswd file:

      touch htpasswd
       htpasswd -B htpasswd user
       htpasswd -B htpasswd anotherUser

      The password file can be updated while rclone is running.

      -

      Use –realm to set the authentication realm.

      +

      Use --realm to set the authentication realm.

      SSL/TLS

      -

      By default this will serve over http. If you want you can serve over https. You will need to supply the –cert and –key flags. If you wish to do client side certificate validation then you will need to supply –client-ca also.

      -

      –cert should be either a PEM encoded certificate or a concatenation of that with the CA certificate. –key should be the PEM encoded private key and –client-ca should be the PEM encoded client certificate authority certificate.

      +

      By default this will serve over http. If you want you can serve over https. You will need to supply the --cert and --key flags. If you wish to do client side certificate validation then you will need to supply --client-ca also.

      +

      --cert should be either a PEM encoded certificate or a concatenation of that with the CA certificate. --key should be the PEM encoded private key and --client-ca should be the PEM encoded client certificate authority certificate.

      Directory Cache

      Using the --dir-cache-time flag, you can set how long a directory should be considered up to date and not refreshed from the backend. Changes made locally in the mount may appear immediately or invalidate the cache. However, changes done on the remote will only be picked up once the cache expires if the backend configured does not support polling for changes. If the backend supports polling, changes will be picked up on within the polling interval.

      Alternatively, you can send a SIGHUP signal to rclone for it to flush all directory caches, regardless of how old they are. Assuming only one rclone instance is running, you can reset the cache like this:

      @@ -2553,11 +2556,11 @@ htpasswd -B htpasswd anotherUser
      rclone rc vfs/forget file=path/to/file dir=path/to/dir

      File Buffering

      The --buffer-size flag determines the amount of memory, that will be used to buffer data in advance.

      -

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won’t be shared between multiple open file descriptors of the same file.

      +

      Each open file descriptor will try to keep the specified amount of data in memory at all times. The buffered data is bound to one file descriptor and won't be shared between multiple open file descriptors of the same file.

      This flag is a upper limit for the used memory per file descriptor. The buffer will only use memory for data that is downloaded but not not yet read. If the buffer is empty, only a small amount of memory will be used. The maximum memory used by rclone for buffering can be up to --buffer-size * open files.

      File Caching

      These flags control the VFS file caching options. The VFS layer is used by rclone mount to make a cloud storage system work more like a normal file system.

      -

      You’ll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      +

      You'll need to enable VFS caching if you want, for example, to read and write simultaneously to a file. See below for more details.

      Note that the VFS cache works in addition to the cache backend and you may find that you need one or the other or both.

      --cache-dir string                   Directory rclone will use for caching.
       --vfs-cache-max-age duration         Max age of objects in the cache. (default 1h0m0s)
      @@ -2566,52 +2569,52 @@ htpasswd -B htpasswd anotherUser
      --vfs-cache-max-size int Max total size of objects in the cache. (default off)

      If run with -vv rclone will print the location of the file cache. The files are stored in the user cache file area which is OS dependent but can be controlled with --cache-dir or setting the appropriate environment variable.

      The cache has 4 different modes selected by --vfs-cache-mode. The higher the cache mode the more compatible rclone becomes at the cost of using disk space.

      -

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won’t get written back to the remote. However they will still be in the on disk cache.

      -

      If using –vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every –vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      -

      –vfs-cache-mode off

      +

      Note that files are written back to the remote only when they are closed so if rclone is quit or dies with open files then these won't get written back to the remote. However they will still be in the on disk cache.

      +

      If using --vfs-cache-max-size note that the cache may exceed this size for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache.

      +

      --vfs-cache-mode off

      In this mode the cache will read directly from the remote and write directly to the remote without caching anything on disk.

      This will mean some operations are not possible

      -

      –vfs-cache-mode minimal

      -

      This is very similar to “off” except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      +

      --vfs-cache-mode minimal

      +

      This is very similar to "off" except that files opened for read AND write will be buffered to disks. This means that files opened for write will be a lot more compatible, but uses the minimal disk space.

      These operations are not possible

      -

      –vfs-cache-mode writes

      +

      --vfs-cache-mode writes

      In this mode files opened for read only are still read directly from the remote, write only and read/write files are buffered to disk first.

      This mode should support all normal file system operations.

      -

      If an upload fails it will be retried up to –low-level-retries times.

      -

      –vfs-cache-mode full

      +

      If an upload fails it will be retried up to --low-level-retries times.

      +

      --vfs-cache-mode full

      In this mode all reads and writes are buffered to and from disk. When a file is opened for read it will be downloaded in its entirety first.

      This may be appropriate for your needs, or you may prefer to look at the cache backend which does a much more sophisticated job of caching, including caching directory hierarchies and chunks of files.

      In this mode, unlike the others, when a file is written to the disk, it will be kept on the disk after it is written to the remote. It will be purged on a schedule according to --vfs-cache-max-age.

      This mode should support all normal file system operations.

      -

      If an upload or download fails it will be retried up to –low-level-retries times.

      +

      If an upload or download fails it will be retried up to --low-level-retries times.

      Case Sensitivity

      Linux file systems are case-sensitive: two files can differ only by case, and the exact case must be used when opening a file.

      Windows is not like most other operating systems supported by rclone. File systems in modern Windows are case-insensitive but case-preserving: although existing files can be opened using any case, the exact case used to create the file is preserved and available for programs to query. It is not allowed for two files in the same directory to differ only by case.

      Usually file systems on macOS are case-insensitive. It is possible to make macOS file systems case-sensitive but that is not the default

      -

      The “–vfs-case-insensitive” mount flag controls how rclone handles these two cases. If its value is “false”, rclone passes file names to the mounted file system as is. If the flag is “true” (or appears without a value on command line), rclone may perform a “fixup” as explained below.

      +

      The "--vfs-case-insensitive" mount flag controls how rclone handles these two cases. If its value is "false", rclone passes file names to the mounted file system as is. If the flag is "true" (or appears without a value on command line), rclone may perform a "fixup" as explained below.

      The user may specify a file name to open/delete/rename/etc with a case different than what is stored on mounted file system. If an argument refers to an existing file with exactly the same name, then the case of the existing file on the disk will be used. However, if a file name with exactly the same name is not found but a name differing only by case exists, rclone will transparently fixup the name. This fixup happens only when an existing file is requested. Case sensitivity of file names created anew by rclone is controlled by an underlying mounted file system.

      -

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether “fixup” is performed to satisfy the target.

      -

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: “true” on Windows and macOS, “false” otherwise. If the flag is provided without a value, then it is “true”.

      +

      Note that case sensitivity of the operating system running rclone (the target) may differ from case sensitivity of a file system mounted by rclone (the source). The flag controls whether "fixup" is performed to satisfy the target.

      +

      If the flag is not provided on command line, then its default value depends on the operating system where rclone runs: "true" on Windows and macOS, "false" otherwise. If the flag is provided without a value, then it is "true".

      Auth Proxy

      If you supply the parameter --auth-proxy /path/to/program then rclone will use that program to generate backends on the fly which then are used to authenticate incoming requests. This uses a simple JSON based protocl with input on STDIN and output on STDOUT.

      PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used together, if --auth-proxy is set the authorized keys option will be ignored.

      There is an example program bin/test_proxy.py in the rclone source code.

      -

      The program’s job is to take a user and pass on the input and turn those into the config for a backend on STDOUT in JSON format. This config will have any default parameters for the backend added, but it won’t use configuration from environment variables or command line options - it is the job of the proxy program to make a complete config.

      +

      The program's job is to take a user and pass on the input and turn those into the config for a backend on STDOUT in JSON format. This config will have any default parameters for the backend added, but it won't use configuration from environment variables or command line options - it is the job of the proxy program to make a complete config.

      This config generated must have this extra parameter - _root - root to use for the backend

      And it may have this parameter - _obscure - comma separated strings for parameters to obscure

      If password authentication was used by the client, input to the proxy process (on STDIN) would look similar to this:

      @@ -2634,8 +2637,8 @@ htpasswd -B htpasswd anotherUser "host": "sftp.example.com" }

      This would mean that an SFTP backend would be created on the fly for the user and pass/public_key returned in the output to the host given. Note that since _obscure is set to pass, rclone will obscure the pass parameter before creating the backend (which is required for sftp backends).

      -

      The program can manipulate the supplied user in any way, for example to make proxy to many different sftp backends, you could make the user be user@example.com and then set the host to example.com in the output and the user to user. For security you’d probably want to restrict the host to a limited list.

      -

      Note that an internal cache is keyed on user so only use that for configuration, don’t use pass or public_key. This also means that if a user’s password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

      +

      The program can manipulate the supplied user in any way, for example to make proxy to many different sftp backends, you could make the user be user@example.com and then set the host to example.com in the output and the user to user. For security you'd probably want to restrict the host to a limited list.

      +

      Note that an internal cache is keyed on user so only use that for configuration, don't use pass or public_key. This also means that if a user's password or public-key is changed the cache will need to expire (which takes 5 mins) before it takes effect.

      This can be used to build general purpose proxies to any kind of backend that rclone supports.

      rclone serve webdav remote:path [flags]

      Options

      @@ -2704,13 +2707,13 @@ htpasswd -B htpasswd anotherUser

      Create new file or change file modification time.

      Synopsis

      Set the modification time on object(s) as specified by remote:path to have the current time.

      -

      If remote:path does not exist then a zero sized object will be created unless the –no-create flag is provided.

      -

      If –timestamp is used then it will set the modification time to that time instead of the current time. Times may be specified as one of:

      +

      If remote:path does not exist then a zero sized object will be created unless the --no-create flag is provided.

      +

      If --timestamp is used then it will set the modification time to that time instead of the current time. Times may be specified as one of:

      -

      Note that –timestamp is in UTC if you want local time then add the –localtime flag.

      +

      Note that --timestamp is in UTC if you want local time then add the --localtime flag.

      rclone touch remote:path [flags]

      Options

        -h, --help               help for touch
      @@ -2737,8 +2740,8 @@ htpasswd -B htpasswd anotherUser
      └── file5 1 directories, 5 files -

      You can use any of the filtering options with the tree command (eg –include and –exclude). You can also use –fast-list.

      -

      The tree command has many options for controlling the listing which are compatible with the tree command. Note that not all of them have short options as they conflict with rclone’s short options.

      +

      You can use any of the filtering options with the tree command (eg --include and --exclude). You can also use --fast-list.

      +

      The tree command has many options for controlling the listing which are compatible with the tree command. Note that not all of them have short options as they conflict with rclone's short options.

      rclone tree remote:path [flags]

      Options

        -a, --all             All files are listed (list . files too).
      @@ -2768,7 +2771,7 @@ htpasswd -B htpasswd anotherUser
    27. rclone - Show help for rclone commands, flags and backends.
    28. Copying single files

      -

      rclone normally syncs or copies directories. However, if the source remote points to a file, rclone will just copy that file. The destination remote must point to a directory - rclone will give the error Failed to create file system for "remote:file": is a file not a directory if it isn’t.

      +

      rclone normally syncs or copies directories. However, if the source remote points to a file, rclone will just copy that file. The destination remote must point to a directory - rclone will give the error Failed to create file system for "remote:file": is a file not a directory if it isn't.

      For example, suppose you have a remote with a file in called test.jpg, then you could copy just that file like this

      rclone copy remote:test.jpg /tmp/download

      The file test.jpg will be placed inside /tmp/download.

      @@ -2782,11 +2785,11 @@ htpasswd -B htpasswd anotherUser

      /path/to/dir

      This refers to the local file system.

      On Windows only \ may be used instead of / in local paths only, non local paths must use /.

      -

      These paths needn’t start with a leading / - if they don’t then they will be relative to the current directory.

      +

      These paths needn't start with a leading / - if they don't then they will be relative to the current directory.

      remote:path/to/dir

      This refers to a directory path/to/dir on remote: as defined in the config file (configured with rclone config).

      remote:/path/to/dir

      -

      On most backends this is refers to the same directory as remote:path/to/dir and that format should be preferred. On a very small number of remotes (FTP, SFTP, Dropbox for business) this will refer to a different directory. On these, paths without a leading / will refer to your “home” directory and paths with a leading / will refer to the root.

      +

      On most backends this is refers to the same directory as remote:path/to/dir and that format should be preferred. On a very small number of remotes (FTP, SFTP, Dropbox for business) this will refer to a different directory. On these, paths without a leading / will refer to your "home" directory and paths with a leading / will refer to the root.

      :backend:path/to/dir

      This is an advanced form for creating remotes on the fly. backend should be the name or prefix of a backend (the type in the config file) and all the configuration for the backend should be provided on the command line (or in environment variables).

      Here are some examples:

      @@ -2806,11 +2809,11 @@ htpasswd -B htpasswd anotherUser
      rclone copy 'Important files?' remote:backup

      If you want to send a ' you will need to use ", eg

      rclone copy "O'Reilly Reviews" remote:backup
      -

      The rules for quoting metacharacters are complicated and if you want the full details you’ll have to consult the manual page for your shell.

      +

      The rules for quoting metacharacters are complicated and if you want the full details you'll have to consult the manual page for your shell.

      Windows

      If your names have spaces in you need to put them in ", eg

      rclone copy "E:\folder name\folder name\folder name" remote:backup
      -

      If you are using the root directory on its own then don’t quote it (see #464 for why), eg

      +

      If you are using the root directory on its own then don't quote it (see #464 for why), eg

      rclone copy E:\ remote:backup

      Copying files or directories with : in the names

      rclone uses : to mark a remote name. This is, however, a valid filename component in non-Windows OSes. The remote name parser will only search for a : up to the first / so if you need to act on a file or directory like this then use the full path starting with a /, or use ./ as a current directory prefix.

      @@ -2820,12 +2823,12 @@ htpasswd -B htpasswd anotherUser
      rclone sync /full/path/to/sync:me remote:path

      Server Side Copy

      Most remotes (but not all - see the overview) support server side copy.

      -

      This means if you want to copy one folder to another then rclone won’t download all the files and re-upload them; it will instruct the server to copy them in place.

      +

      This means if you want to copy one folder to another then rclone won't download all the files and re-upload them; it will instruct the server to copy them in place.

      Eg

      rclone copy s3:oldbucket s3:newbucket

      Will copy the contents of oldbucket to newbucket without downloading and re-uploading.

      -

      Remotes which don’t support server side copy will download and re-upload in this case.

      -

      Server side copies are used with sync and copy and will be identified in the log when using the -v flag. The move command may also use them if remote doesn’t support server side move directly. This is done by issuing a server side copy then a delete which is much quicker than a download and re-upload.

      +

      Remotes which don't support server side copy will download and re-upload in this case.

      +

      Server side copies are used with sync and copy and will be identified in the log when using the -v flag. The move command may also use them if remote doesn't support server side move directly. This is done by issuing a server side copy then a delete which is much quicker than a download and re-upload.

      Server side copies will only be attempted if the remote names are the same.

      This can be used when scripting to make aged backups efficiently, eg

      rclone sync remote:current-backup remote:previous-backup
      @@ -2833,24 +2836,24 @@ rclone sync /path/to/files remote:current-backup

      Options

      Rclone has a number of options to control its behaviour.

      Options that take parameters can have the values passed in two ways, --option=value or --option value. However boolean (true/false) options behave slightly differently to the other options in that --boolean sets the option to true and the absence of the flag sets it to false. It is also possible to specify --boolean=false or --boolean=true. Note that --boolean false is not valid - this is parsed as --boolean and the false is parsed as an extra command line argument for rclone.

      -

      Options which use TIME use the go time parser. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as “300ms”, “-1.5h” or “2h45m”. Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”.

      +

      Options which use TIME use the go time parser. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".

      Options which use SIZE use kByte by default. However, a suffix of b for bytes, k for kBytes, M for MBytes, G for GBytes, T for TBytes and P for PBytes may be used. These are the binary units, eg 1, 2**10, 2**20, 2**30 respectively.

      -

      –backup-dir=DIR

      +

      --backup-dir=DIR

      When using sync, copy or move any files which would have been overwritten or deleted are moved in their original hierarchy into this directory.

      If --suffix is set, then the moved files will have the suffix added to them. If there is a file with the same path (after the suffix has been added) in DIR, then it will be overwritten.

      The remote in use must support server side move or copy and you must use the same remote as the destination of the sync. The backup directory must not overlap the destination directory.

      For example

      rclone sync /path/to/local remote:current --backup-dir remote:old

      will sync /path/to/local to remote:current, but for any files which would have been updated or deleted will be stored in remote:old.

      -

      If running rclone from a script you might want to use today’s date as the directory name passed to --backup-dir to store the old files, or you might want to pass --suffix with today’s date.

      +

      If running rclone from a script you might want to use today's date as the directory name passed to --backup-dir to store the old files, or you might want to pass --suffix with today's date.

      See --compare-dest and --copy-dest.

      -

      –bind string

      -

      Local address to bind to for outgoing connections. This can be an IPv4 address (1.2.3.4), an IPv6 address (1234::789A) or host name. If the host name doesn’t resolve or resolves to more than one IP address it will give an error.

      -

      –bwlimit=BANDWIDTH_SPEC

      +

      --bind string

      +

      Local address to bind to for outgoing connections. This can be an IPv4 address (1.2.3.4), an IPv6 address (1234::789A) or host name. If the host name doesn't resolve or resolves to more than one IP address it will give an error.

      +

      --bwlimit=BANDWIDTH_SPEC

      This option controls the bandwidth limit. Limits can be specified in two ways: As a single limit, or as a timetable.

      Single limits last for the duration of the session. To use a single limit, specify the desired bandwidth in kBytes/s, or use a suffix b|k|M|G. The default is 0 which means to not limit bandwidth.

      For example, to limit bandwidth usage to 10 MBytes/s use --bwlimit 10M

      -

      It is also possible to specify a “timetable” of limits, which will cause certain limits to be applied at certain times. To specify a timetable, format your entries as WEEKDAY-HH:MM,BANDWIDTH WEEKDAY-HH:MM,BANDWIDTH... where: WEEKDAY is optional element. It could be written as whole world or only using 3 first characters. HH:MM is an hour from 00:00 to 23:59.

      +

      It is also possible to specify a "timetable" of limits, which will cause certain limits to be applied at certain times. To specify a timetable, format your entries as WEEKDAY-HH:MM,BANDWIDTH WEEKDAY-HH:MM,BANDWIDTH... where: WEEKDAY is optional element. It could be written as whole world or only using 3 first characters. HH:MM is an hour from 00:00 to 23:59.

      An example of a typical timetable to avoid link saturation during daytime working hours could be:

      --bwlimit "08:00,512 12:00,10M 13:00,512 18:00,30M 23:00,off"

      In this example, the transfer bandwidth will be every day set to 512kBytes/sec at 8am. At noon, it will raise to 10Mbytes/s, and drop back to 512kBytes/sec at 1pm. At 6pm, the bandwidth limit will be set to 30MBytes/s, and at 11pm it will be completely disabled (full speed). Anything between 11pm and 8am will remain unlimited.

      @@ -2861,50 +2864,50 @@ rclone sync /path/to/files remote:current-backup

      --bwlimit "Mon-00:00,512 12:00,1M Sun-20:00,off"

      Is equal to this:

      --bwlimit "Mon-00:00,512Mon-12:00,1M Tue-12:00,1M Wed-12:00,1M Thu-12:00,1M Fri-12:00,1M Sat-12:00,1M Sun-12:00,1M Sun-20:00,off"

      -

      Bandwidth limits only apply to the data transfer. They don’t apply to the bandwidth of the directory listings etc.

      -

      Note that the units are Bytes/s, not Bits/s. Typically connections are measured in Bits/s - to convert divide by 8. For example, let’s say you have a 10 Mbit/s connection and you wish rclone to use half of it - 5 Mbit/s. This is 5/8 = 0.625MByte/s so you would use a --bwlimit 0.625M parameter for rclone.

      +

      Bandwidth limits only apply to the data transfer. They don't apply to the bandwidth of the directory listings etc.

      +

      Note that the units are Bytes/s, not Bits/s. Typically connections are measured in Bits/s - to convert divide by 8. For example, let's say you have a 10 Mbit/s connection and you wish rclone to use half of it - 5 Mbit/s. This is 5/8 = 0.625MByte/s so you would use a --bwlimit 0.625M parameter for rclone.

      On Unix systems (Linux, macOS, …) the bandwidth limiter can be toggled by sending a SIGUSR2 signal to rclone. This allows to remove the limitations of a long running rclone transfer and to restore it back to the value specified with --bwlimit quickly when needed. Assuming there is only one rclone instance running, you can toggle the limiter like this:

      kill -SIGUSR2 $(pidof rclone)

      If you configure rclone with a remote control then you can use change the bwlimit dynamically:

      rclone rc core/bwlimit rate=1M
      -

      –buffer-size=SIZE

      +

      --buffer-size=SIZE

      Use this sized buffer to speed up file transfers. Each --transfer will use this much memory for buffering.

      When using mount or cmount each open file descriptor will use this much memory for buffering. See the mount documentation for more details.

      Set to 0 to disable the buffering for the minimum memory usage.

      -

      Note that the memory allocation of the buffers is influenced by the –use-mmap flag.

      -

      –check-first

      +

      Note that the memory allocation of the buffers is influenced by the --use-mmap flag.

      +

      --check-first

      If this flag is set then in a sync, copy or move, rclone will do all the checks to see whether files need to be transferred before doing any of the transfers. Normally rclone would start running transfers as soon as possible.

      This flag can be useful on IO limited systems where transfers interfere with checking.

      Using this flag can use more memory as it effectively sets --max-backlog to infinite. This means that all the info on the objects to transfer is held in memory before the transfers start.

      -

      –checkers=N

      +

      --checkers=N

      The number of checkers to run in parallel. Checkers do the equality checking of files during a sync. For some storage systems (eg S3, Swift, Dropbox) this can take a significant amount of time so they are run in parallel.

      The default is to run 8 checkers in parallel.

      -

      -c, –checksum

      +

      -c, --checksum

      Normally rclone will look at modification time and size of files to see if they are equal. If you set this flag then rclone will check the file hash and size to determine if files are equal.

      -

      This is useful when the remote doesn’t support setting modified time and a more accurate sync is desired than just checking the file size.

      +

      This is useful when the remote doesn't support setting modified time and a more accurate sync is desired than just checking the file size.

      This is very useful when transferring between remotes which store the same hash type on the object, eg Drive and Swift. For details of which remotes support which hash type see the table in the overview section.

      Eg rclone --checksum sync s3:/bucket swift:/bucket would run much quicker than without the --checksum flag.

      -

      When using this flag, rclone won’t update mtimes of remote files if they are incorrect as it would normally.

      -

      –compare-dest=DIR

      +

      When using this flag, rclone won't update mtimes of remote files if they are incorrect as it would normally.

      +

      --compare-dest=DIR

      When using sync, copy or move DIR is checked in addition to the destination for files. If a file identical to the source is found that file is NOT copied from source. This is useful to copy just files that have changed since the last backup.

      You must use the same remote as the destination of the sync. The compare directory must not overlap the destination directory.

      See --copy-dest and --backup-dir.

      -

      –config=CONFIG_FILE

      +

      --config=CONFIG_FILE

      Specify the location of the rclone config file.

      Normally the config file is in your home directory as a file called .config/rclone/rclone.conf (or .rclone.conf if created with an older version). If $XDG_CONFIG_HOME is set it will be at $XDG_CONFIG_HOME/rclone/rclone.conf.

      If there is a file rclone.conf in the same directory as the rclone executable it will be preferred. This file must be created manually for Rclone to use it, it will never be created automatically.

      If you run rclone config file you will see where the default location is for you.

      Use this flag to override the config location, eg rclone --config=".myconfig" .config.

      -

      –contimeout=TIME

      +

      --contimeout=TIME

      Set the connection timeout. This should be in go time format which looks like 5s for 5 seconds, 10m for 10 minutes, or 3h30m.

      The connection timeout is the amount of time rclone will wait for a connection to go through to a remote object storage system. It is 1m by default.

      -

      –copy-dest=DIR

      +

      --copy-dest=DIR

      When using sync, copy or move DIR is checked in addition to the destination for files. If a file identical to the source is found that file is server side copied from DIR to the destination. This is useful for incremental backup.

      The remote in use must support server side copy and you must use the same remote as the destination of the sync. The compare directory must not overlap the destination directory.

      See --compare-dest and --backup-dir.

      -

      –dedupe-mode MODE

      +

      --dedupe-mode MODE

      Mode to run dedupe command in. One of interactive, skip, first, newest, oldest, rename. The default is interactive. See the dedupe command for more information as to what these options mean.

      -

      –disable FEATURE,FEATURE,…

      +

      --disable FEATURE,FEATURE,...

      This disables a comma separated list of optional features. For example to disable server side move and server side copy use:

      --disable move,copy

      The features can be put in any case.

      @@ -2912,111 +2915,111 @@ rclone sync /path/to/files remote:current-backup
      --disable help

      See the overview features and optional features to get an idea of which feature does what.

      This flag can be useful for debugging and in exceptional circumstances (eg Google Drive limiting the total volume of Server Side Copies to 100GB/day).

      -

      -n, –dry-run

      +

      -n, --dry-run

      Do a trial run with no permanent changes. Use this to see what rclone would do without actually doing it. Useful when setting up the sync command which deletes files in the destination.

      -

      –expect-continue-timeout=TIME

      -

      This specifies the amount of time to wait for a server’s first response headers after fully writing the request headers if the request has an “Expect: 100-continue” header. Not all backends support using this.

      +

      --expect-continue-timeout=TIME

      +

      This specifies the amount of time to wait for a server's first response headers after fully writing the request headers if the request has an "Expect: 100-continue" header. Not all backends support using this.

      Zero means no timeout and causes the body to be sent immediately, without waiting for the server to approve. This time does not include the time to send the request header.

      The default is 1s. Set to 0 to disable.

      -

      –error-on-no-transfer

      +

      --error-on-no-transfer

      By default, rclone will exit with return code 0 if there were no errors.

      This option allows rclone to return exit code 9 if no files were transferred between the source and destination. This allows using rclone in scripts, and triggering follow-on actions if data was copied, or skipping if not.

      NB: Enabling this option turns a usually non-fatal error into a potentially fatal one - please check and adjust your scripts accordingly!

      - +

      Add an HTTP header for all transactions. The flag can be repeated to add multiple headers.

      If you want to add headers only for uploads use --header-upload and if you want to add headers only for downloads use --header-download.

      This flag is supported for all HTTP based backends even those not supported by --header-upload and --header-download so may be used as a workaround for those with care.

      rclone ls remote:test --header "X-Rclone: Foo" --header "X-LetMeIn: Yes"
      -

      –header-download

      +

      --header-download

      Add an HTTP header for all download transactions. The flag can be repeated to add multiple headers.

      rclone sync s3:test/src ~/dst --header-download "X-Amz-Meta-Test: Foo" --header-download "X-Amz-Meta-Test2: Bar"

      See the GitHub issue here for currently supported backends.

      -

      –header-upload

      +

      --header-upload

      Add an HTTP header for all upload transactions. The flag can be repeated to add multiple headers.

      rclone sync ~/src s3:test/dst --header-upload "Content-Disposition: attachment; filename='cool.html'" --header-upload "X-Amz-Meta-Test: FooBar"

      See the GitHub issue here for currently supported backends.

      -

      –ignore-case-sync

      +

      --ignore-case-sync

      Using this option will cause rclone to ignore the case of the files when synchronizing so files will not be copied/synced when the existing filenames are the same, even if the casing is different.

      -

      –ignore-checksum

      -

      Normally rclone will check that the checksums of transferred files match, and give an error “corrupted on transfer” if they don’t.

      -

      You can use this option to skip that check. You should only use it if you have had the “corrupted on transfer” error message and you are sure you might want to transfer potentially corrupted data.

      -

      –ignore-existing

      +

      --ignore-checksum

      +

      Normally rclone will check that the checksums of transferred files match, and give an error "corrupted on transfer" if they don't.

      +

      You can use this option to skip that check. You should only use it if you have had the "corrupted on transfer" error message and you are sure you might want to transfer potentially corrupted data.

      +

      --ignore-existing

      Using this option will make rclone unconditionally skip all files that exist on the destination, no matter the content of these files.

      -

      While this isn’t a generally recommended option, it can be useful in cases where your files change due to encryption. However, it cannot correct partial transfers in case a transfer was interrupted.

      -

      –ignore-size

      +

      While this isn't a generally recommended option, it can be useful in cases where your files change due to encryption. However, it cannot correct partial transfers in case a transfer was interrupted.

      +

      --ignore-size

      Normally rclone will look at modification time and size of files to see if they are equal. If you set this flag then rclone will check only the modification time. If --checksum is set then it only checks the checksum.

      It will also cause rclone to skip verifying the sizes are the same after transfer.

      This can be useful for transferring files to and from OneDrive which occasionally misreports the size of image files (see #399 for more info).

      -

      -I, –ignore-times

      +

      -I, --ignore-times

      Using this option will cause rclone to unconditionally upload all files regardless of the state of files on the destination.

      Normally rclone would skip any files that have the same modification time and are the same size (or have the same checksum if using --checksum).

      -

      –immutable

      +

      --immutable

      Treat source and destination files as immutable and disallow modification.

      With this option set, files will be created and deleted as requested, but existing files will never be updated. If an existing file does not match between the source and destination, rclone will give the error Source and destination exist but do not match: immutable file modified.

      -

      Note that only commands which transfer files (e.g. sync, copy, move) are affected by this behavior, and only modification is disallowed. Files may still be deleted explicitly (e.g. delete, purge) or implicitly (e.g. sync, move). Use copy --immutable if it is desired to avoid deletion as well as modification.

      +

      Note that only commands which transfer files (e.g. sync, copy, move) are affected by this behavior, and only modification is disallowed. Files may still be deleted explicitly (e.g. delete, purge) or implicitly (e.g. sync, move). Use copy --immutable if it is desired to avoid deletion as well as modification.

      This can be useful as an additional layer of protection for immutable or append-only data sets (notably backup archives), where modification implies corruption and should not be propagated.

      -

      –leave-root

      -

      During rmdirs it will not remove root directory, even if it’s empty.

      -

      –log-file=FILE

      -

      Log all of rclone’s output to FILE. This is not active by default. This can be useful for tracking down problems with syncs in combination with the -v flag. See the Logging section for more info.

      -

      Note that if you are using the logrotate program to manage rclone’s logs, then you should use the copytruncate option as rclone doesn’t have a signal to rotate logs.

      -

      –log-format LIST

      -

      Comma separated list of log format options. date, time, microseconds, longfile, shortfile, UTC. The default is “date,time”.

      -

      –log-level LEVEL

      +

      --leave-root

      +

      During rmdirs it will not remove root directory, even if it's empty.

      +

      --log-file=FILE

      +

      Log all of rclone's output to FILE. This is not active by default. This can be useful for tracking down problems with syncs in combination with the -v flag. See the Logging section for more info.

      +

      Note that if you are using the logrotate program to manage rclone's logs, then you should use the copytruncate option as rclone doesn't have a signal to rotate logs.

      +

      --log-format LIST

      +

      Comma separated list of log format options. date, time, microseconds, longfile, shortfile, UTC. The default is "date,time".

      +

      --log-level LEVEL

      This sets the log level for rclone. The default log level is NOTICE.

      DEBUG is equivalent to -vv. It outputs lots of debug info - useful for bug reports and really finding out what rclone is doing.

      INFO is equivalent to -v. It outputs information about each transfer and prints stats once a minute by default.

      NOTICE is the default log level if no logging flags are supplied. It outputs very little when things are working normally. It outputs warnings and significant events.

      ERROR is equivalent to -q. It only outputs error messages.

      -

      –use-json-log

      +

      --use-json-log

      This switches the log format to JSON for rclone. The fields of json log are level, msg, source, time.

      -

      –low-level-retries NUMBER

      +

      --low-level-retries NUMBER

      This controls the number of low level retries rclone does.

      A low level retry is used to retry a failing operation - typically one HTTP request. This might be uploading a chunk of a big file for example. You will see low level retries in the log with the -v flag.

      -

      This shouldn’t need to be changed from the default in normal operations. However, if you get a lot of low level retries you may wish to reduce the value so rclone moves on to a high level retry (see the --retries flag) quicker.

      +

      This shouldn't need to be changed from the default in normal operations. However, if you get a lot of low level retries you may wish to reduce the value so rclone moves on to a high level retry (see the --retries flag) quicker.

      Disable low level retries with --low-level-retries 1.

      -

      –max-backlog=N

      +

      --max-backlog=N

      This is the maximum allowable backlog of files in a sync/copy/move queued for being checked or transferred.

      This can be set arbitrarily large. It will only use memory when the queue is in use. Note that it will use in the order of N kB of memory when the backlog is in use.

      Setting this large allows rclone to calculate how many files are pending more accurately, give a more accurate estimated finish time and make --order-by work more accurately.

      Setting this small will make rclone more synchronous to the listings of the remote which may be desirable.

      Setting this to a negative number will make the backlog as large as possible.

      -

      –max-delete=N

      +

      --max-delete=N

      This tells rclone not to delete more than N files. If that limit is exceeded then a fatal error will be generated and rclone will stop the operation in progress.

      -

      –max-depth=N

      +

      --max-depth=N

      This modifies the recursion depth for all the commands except purge.

      So if you do rclone --max-depth 1 ls remote:path you will see only the files in the top level directory. Using --max-depth 2 means you will see all the files in first two directory levels and so on.

      For historical reasons the lsd command defaults to using a --max-depth of 1 - you can override this with the command line flag.

      You can use this command to disable recursion (with --max-depth 1).

      Note that if you use this with sync and --delete-excluded the files not recursed through are considered excluded and will be deleted on the destination. Test first with --dry-run if you are not sure what will happen.

      -

      –max-duration=TIME

      +

      --max-duration=TIME

      Rclone will stop scheduling new transfers when it has run for the duration specified.

      Defaults to off.

      When the limit is reached any existing transfers will complete.

      -

      Rclone won’t exit with an error if the transfer limit is reached.

      -

      –max-transfer=SIZE

      +

      Rclone won't exit with an error if the transfer limit is reached.

      +

      --max-transfer=SIZE

      Rclone will stop transferring when it has reached the size specified. Defaults to off.

      When the limit is reached all transfers will stop immediately.

      Rclone will exit with exit code 8 if the transfer limit is reached.

      -

      –cutoff-mode=hard|soft|cautious

      +

      --cutoff-mode=hard|soft|cautious

      This modifies the behavior of --max-transfer Defaults to --cutoff-mode=hard.

      Specifying --cutoff-mode=hard will stop transferring immediately when Rclone reaches the limit.

      Specifying --cutoff-mode=soft will stop starting new transfers when Rclone reaches the limit.

      Specifying --cutoff-mode=cautious will try to prevent Rclone from reaching the limit.

      -

      –modify-window=TIME

      +

      --modify-window=TIME

      When checking whether a file has been modified, this is the maximum allowed time difference that a file can have and still be considered equivalent.

      The default is 1ns unless this is overridden by a remote. For example OS X only stores modification times to the nearest second so if you are reading and writing to an OS X filing system this will be 1s by default.

      This command line flag allows you to override that computed default.

      -

      –multi-thread-cutoff=SIZE

      +

      --multi-thread-cutoff=SIZE

      When downloading files to the local backend above this size, rclone will use multiple threads to download the file (default 250M).

      -

      Rclone preallocates the file (using fallocate(FALLOC_FL_KEEP_SIZE) on unix or NTSetInformationFile on Windows both of which takes no time) then each thread writes directly into the file at the correct place. This means that rclone won’t create fragmented or sparse files and there won’t be any assembly time at the end of the transfer.

      +

      Rclone preallocates the file (using fallocate(FALLOC_FL_KEEP_SIZE) on unix or NTSetInformationFile on Windows both of which takes no time) then each thread writes directly into the file at the correct place. This means that rclone won't create fragmented or sparse files and there won't be any assembly time at the end of the transfer.

      The number of threads used to download is controlled by --multi-thread-streams.

      Use -vv if you wish to see info about the threads.

      This will work with the sync/copy/move commands and friends copyto/moveto. Multi thread downloads will be used with rclone mount and rclone serve if --vfs-cache-mode is set to writes or above.

      NB that this only works for a local destination but will work with any source.

      NB that multi thread copies are disabled for local to local copies as they are faster without unless --multi-thread-streams is set explicitly.

      NB on Windows using multi-thread downloads will cause the resulting files to be sparse. Use --local-no-sparse to disable sparse files (which may cause long delays at the start of downloads) or disable multi-thread downloads with --multi-thread-streams 0

      -

      –multi-thread-streams=N

      +

      --multi-thread-streams=N

      When using multi thread downloads (see above --multi-thread-cutoff) this sets the maximum number of streams to use. Set to 0 to disable multi thread downloads (Default 4).

      Exactly how many streams rclone uses for the download depends on the size of the file. To calculate the number of download streams Rclone divides the size of the file by the --multi-thread-cutoff and rounds up, up to the maximum set with --multi-thread-streams.

      So if --multi-thread-cutoff 250MB and --multi-thread-streams 4 are in effect (the defaults):

      @@ -3026,33 +3029,33 @@ rclone sync /path/to/files remote:current-backup
    29. 500MB..750MB files will be downloaded with 3 streams
    30. 750MB+ files will be downloaded with 4 streams
    31. -

      –no-check-dest

      +

      --no-check-dest

      The --no-check-dest can be used with move or copy and it causes rclone not to check the destination at all when copying files.

      This means that:

      This flag is useful to minimise the transactions if you know that none of the files are on the destination.

      This is a specialized flag which should be ignored by most users!

      -

      –no-gzip-encoding

      -

      Don’t set Accept-Encoding: gzip. This means that rclone won’t ask the server for compressed files automatically. Useful if you’ve set the server to return files with Content-Encoding: gzip but you uploaded compressed files.

      +

      --no-gzip-encoding

      +

      Don't set Accept-Encoding: gzip. This means that rclone won't ask the server for compressed files automatically. Useful if you've set the server to return files with Content-Encoding: gzip but you uploaded compressed files.

      There is no need to set this in normal operation, and doing so will decrease the network transfer efficiency of rclone.

      -

      –no-traverse

      +

      --no-traverse

      The --no-traverse flag controls whether the destination file system is traversed when using the copy or move commands. --no-traverse is not compatible with sync and will be ignored if you supply it with sync.

      If you are only copying a small number of files (or are filtering most of the files) and/or have a large number of files on the destination then --no-traverse will stop rclone listing the destination and save time.

      -

      However, if you are copying a large number of files, especially if you are doing a copy where lots of the files under consideration haven’t changed and won’t need copying then you shouldn’t use --no-traverse.

      +

      However, if you are copying a large number of files, especially if you are doing a copy where lots of the files under consideration haven't changed and won't need copying then you shouldn't use --no-traverse.

      See rclone copy for an example of how to use it.

      -

      –no-unicode-normalization

      -

      Don’t normalize unicode characters in filenames during the sync routine.

      +

      --no-unicode-normalization

      +

      Don't normalize unicode characters in filenames during the sync routine.

      Sometimes, an operating system will store filenames containing unicode parts in their decomposed form (particularly macOS). Some cloud storage systems will then recompose the unicode, resulting in duplicate files if the data is ever copied back to a local filesystem.

      Using this flag will disable that functionality, treating each unicode character as unique. For example, by default é and é will be normalized into the same character. With --no-unicode-normalization they will be treated as unique characters.

      -

      –no-update-modtime

      -

      When using this flag, rclone won’t update modification times of remote files if they are incorrect as it would normally.

      +

      --no-update-modtime

      +

      When using this flag, rclone won't update modification times of remote files if they are incorrect as it would normally.

      This can be used if the remote is being synced with another tool also (eg the Google Drive client).

      -

      –order-by string

      +

      --order-by string

      The --order-by flag controls the order in which files in the backlog are processed in rclone sync, rclone copy and rclone move.

      The order by string is constructed like this. The first part describes what aspect is being measured:

      rclone should always give identical results with and without --fast-list.

      -

      If you pay for transactions and can fit your entire sync listing into memory then --fast-list is recommended. If you have a very big sync to do then don’t use --fast-list otherwise you will run out of memory.

      -

      If you use --fast-list on a remote which doesn’t support it, then rclone will just ignore it.

      -

      –timeout=TIME

      +

      If you pay for transactions and can fit your entire sync listing into memory then --fast-list is recommended. If you have a very big sync to do then don't use --fast-list otherwise you will run out of memory.

      +

      If you use --fast-list on a remote which doesn't support it, then rclone will just ignore it.

      +

      --timeout=TIME

      This sets the IO idle timeout. If a transfer has started but then becomes idle for this long it is considered broken and disconnected.

      The default is 5m. Set to 0 to disable.

      -

      –transfers=N

      +

      --transfers=N

      The number of file transfers to run in parallel. It can sometimes be useful to set this to a smaller number if the remote is giving a lot of timeouts or bigger if you have lots of bandwidth and a fast remote.

      The default is to run 4 file transfers in parallel.

      -

      -u, –update

      +

      -u, --update

      This forces rclone to skip any files which exist on the destination and have a modified time that is newer than the source file.

      -

      This can be useful when transferring to a remote which doesn’t support mod times directly (or when using --use-server-modtime to avoid extra API calls) as it is more accurate than a --size-only check and faster than using --checksum.

      -

      If an existing destination file has a modification time equal (within the computed modify window precision) to the source file’s, it will be updated if the sizes are different. If --checksum is set then rclone will update the destination if the checksums differ too.

      +

      This can be useful when transferring to a remote which doesn't support mod times directly (or when using --use-server-modtime to avoid extra API calls) as it is more accurate than a --size-only check and faster than using --checksum.

      +

      If an existing destination file has a modification time equal (within the computed modify window precision) to the source file's, it will be updated if the sizes are different. If --checksum is set then rclone will update the destination if the checksums differ too.

      If an existing destination file is older than the source file then it will be updated if the size or checksum differs from the source file.

      -

      On remotes which don’t support mod time directly (or when using --use-server-modtime) the time checked will be the uploaded time. This means that if uploading to one of these remotes, rclone will skip any files which exist on the destination and have an uploaded time that is newer than the modification time of the source file.

      -

      –use-mmap

      +

      On remotes which don't support mod time directly (or when using --use-server-modtime) the time checked will be the uploaded time. This means that if uploading to one of these remotes, rclone will skip any files which exist on the destination and have an uploaded time that is newer than the modification time of the source file.

      +

      --use-mmap

      If this flag is set then rclone will use anonymous memory allocated by mmap on Unix based platforms and VirtualAlloc on Windows for its transfer buffers (size controlled by --buffer-size). Memory allocated like this does not go on the Go heap and can be returned to the OS immediately when it is finished with.

      If this flag is not set then rclone will allocate and free the buffers using the Go memory allocator which may use more memory as memory pages are returned less aggressively to the OS.

      It is possible this does not work well on all platforms so it is disabled by default; in the future it may be enabled by default.

      -

      –use-server-modtime

      +

      --use-server-modtime

      Some object-store backends (e.g, Swift, S3) do not preserve file modification times (modtime). On these backends, rclone stores the original modtime as additional metadata on the object. By default it will make an API call to retrieve the metadata when the modtime is needed by an operation.

      -

      Use this flag to disable the extra API call and rely instead on the server’s modified time. In cases such as a local to remote sync using --update, knowing the local file is newer than the time it was last uploaded to the remote is sufficient. In those cases, this flag can speed up the process and reduce the number of API calls necessary.

      +

      Use this flag to disable the extra API call and rely instead on the server's modified time. In cases such as a local to remote sync using --update, knowing the local file is newer than the time it was last uploaded to the remote is sufficient. In those cases, this flag can speed up the process and reduce the number of API calls necessary.

      Using this flag on a sync operation without also using --update would cause all files modified at any time other than the last upload time to be uploaded again, which is probably not what you want.

      -

      -v, -vv, –verbose

      +

      -v, -vv, --verbose

      With -v rclone will tell you about each file that is transferred and a small number of significant events.

      With -vv rclone will become very verbose telling you about every file it considers and transfers. Please send bug reports with a log with this setting.

      -

      -V, –version

      +

      -V, --version

      Prints the version number

      SSL/TLS options

      The outgoing SSL/TLS connections rclone makes can be controlled with these options. For example this can be very useful with the HTTP or WebDAV backends. Rclone HTTP servers have their own set of configuration for SSL/TLS which you can find in their documentation.

      -

      –ca-cert string

      +

      --ca-cert string

      This loads the PEM encoded certificate authority certificate and uses it to verify the certificates of the servers rclone connects to.

      If you have generated certificates signed with a local CA then you will need this flag to connect to servers using those certificates.

      -

      –client-cert string

      +

      --client-cert string

      This loads the PEM encoded client side certificate.

      This is used for mutual TLS authentication.

      The --client-key flag is required too when using this.

      -

      –client-key string

      +

      --client-key string

      This loads the PEM encoded client side private key used for mutual TLS authentication. Used in conjunction with --client-cert.

      -

      –no-check-certificate=true/false

      -

      --no-check-certificate controls whether a client verifies the server’s certificate chain and host name. If --no-check-certificate is true, TLS accepts any certificate presented by the server and any host name in that certificate. In this mode, TLS is susceptible to man-in-the-middle attacks.

      +

      --no-check-certificate=true/false

      +

      --no-check-certificate controls whether a client verifies the server's certificate chain and host name. If --no-check-certificate is true, TLS accepts any certificate presented by the server and any host name in that certificate. In this mode, TLS is susceptible to man-in-the-middle attacks.

      This option defaults to false.

      This should be used only for testing.

      Configuration Encryption

      Your configuration file contains information for logging in to your cloud services. This means that you should keep your .rclone.conf file in a secure location.

      -

      If you are in an environment where that isn’t possible, you can add a password to your configuration. This means that you will have to supply the password every time you start rclone.

      +

      If you are in an environment where that isn't possible, you can add a password to your configuration. This means that you will have to supply the password every time you start rclone.

      To add a password to your rclone configuration, execute rclone config.

      >rclone config
       Current remotes:
      @@ -3270,34 +3273,34 @@ export RCLONE_CONFIG_PASS

      One useful example of this is using the passwordstore application to retrieve the password:

      export RCLONE_PASSWORD_COMMAND="pass rclone/config"

      If the passwordstore password manager holds the password for the rclone configuration, using the script method means the password is primarily protected by the passwordstore system, and is never embedded in the clear in scripts, nor available for examination using the standard commands available. It is quite possible with long running rclone sessions for copies of passwords to be innocently captured in log files or terminal scroll buffers, etc. Using the script method of supplying the password enhances the security of the config password considerably.

      -

      If you are running rclone inside a script, unless you are using the --password-command method, you might want to disable password prompts. To do that, pass the parameter --ask-password=false to rclone. This will make rclone fail instead of asking for a password if RCLONE_CONFIG_PASS doesn’t contain a valid password, and --password-command has not been supplied.

      +

      If you are running rclone inside a script, unless you are using the --password-command method, you might want to disable password prompts. To do that, pass the parameter --ask-password=false to rclone. This will make rclone fail instead of asking for a password if RCLONE_CONFIG_PASS doesn't contain a valid password, and --password-command has not been supplied.

      Developer options

      -

      These options are useful when developing or debugging rclone. There are also some more remote specific options which aren’t documented here which are used for testing. These start with remote name eg --drive-test-option - see the docs for the remote in question.

      -

      –cpuprofile=FILE

      +

      These options are useful when developing or debugging rclone. There are also some more remote specific options which aren't documented here which are used for testing. These start with remote name eg --drive-test-option - see the docs for the remote in question.

      +

      --cpuprofile=FILE

      Write CPU profile to file. This can be analysed with go tool pprof.

      -

      –dump flag,flag,flag

      +

      --dump flag,flag,flag

      The --dump flag takes a comma separated list of flags to dump info about.

      Note that some headers including Accept-Encoding as shown may not be correct in the request and the response may not show Content-Encoding if the go standard libraries auto gzip encoding was in effect. In this case the body of the request will be gunzipped before showing it.

      The available flags are:

      -

      –dump headers

      +

      --dump headers

      Dump HTTP headers with Authorization: lines removed. May still contain sensitive info. Can be very verbose. Useful for debugging only.

      Use --dump auth if you do want the Authorization: headers.

      -

      –dump bodies

      +

      --dump bodies

      Dump HTTP headers and bodies - may contain sensitive info. Can be very verbose. Useful for debugging only.

      -

      Note that the bodies are buffered in memory so don’t use this for enormous files.

      -

      –dump requests

      +

      Note that the bodies are buffered in memory so don't use this for enormous files.

      +

      --dump requests

      Like --dump bodies but dumps the request bodies and the response headers. Useful for debugging download problems.

      -

      –dump responses

      +

      --dump responses

      Like --dump bodies but dumps the response bodies and the request headers. Useful for debugging upload problems.

      -

      –dump auth

      +

      --dump auth

      Dump HTTP headers - will contain sensitive info such as Authorization: headers - use --dump headers to dump without Authorization: headers. Can be very verbose. Useful for debugging only.

      -

      –dump filters

      +

      --dump filters

      Dump the filters to the output. Useful to see exactly what include and exclude options are filtering on.

      -

      –dump goroutines

      +

      --dump goroutines

      This dumps a list of the running go-routines at the end of the command to standard output.

      -

      –dump openfiles

      -

      This dumps a list of the open files at the end of the command. It uses the lsof command to do that so you’ll need that installed to use it.

      -

      –memprofile=FILE

      +

      --dump openfiles

      +

      This dumps a list of the open files at the end of the command. It uses the lsof command to do that so you'll need that installed to use it.

      +

      --memprofile=FILE

      Write memory profile to file. This can be analysed with go tool pprof.

      Filtering

      For the filtering options

      @@ -3349,8 +3352,8 @@ export RCLONE_CONFIG_PASS
    32. 4 - File not found
    33. 5 - Temporary error (one that more retries might fix) (Retry errors)
    34. 6 - Less serious errors (like 461 errors from dropbox) (NoRetry errors)
    35. -
    36. 7 - Fatal error (one that more retries won’t fix, like account suspended) (Fatal errors)
    37. -
    38. 8 - Transfer exceeded - limit set by –max-transfer reached
    39. +
    40. 7 - Fatal error (one that more retries won't fix, like account suspended) (Fatal errors)
    41. +
    42. 8 - Transfer exceeded - limit set by --max-transfer reached
    43. 9 - Operation successful, but no files transferred
    44. Environment Variables

      @@ -3379,7 +3382,7 @@ mys3:
    45. HTTP_PROXY, HTTPS_PROXY and NO_PROXY (or the lowercase versions thereof).
    46. Configuring rclone on a remote / headless machine

      @@ -3443,8 +3446,8 @@ Configuration file is stored at:

      The filters are applied for the copy, sync, move, ls, lsl, md5sum, sha1sum, size, delete and check operations. Note that purge does not obey the filters.

      Each path as it passes through rclone is matched against the include and exclude rules like --include, --exclude, --include-from, --exclude-from, --filter, or --filter-from. The simplest way to try them out is using the ls command, or --dry-run together with -v. --filter-from, --exclude-from, --include-from, --files-from, --files-from-raw understand - as a file name to mean read from standard input.

      Patterns

      -

      The patterns used to match files for inclusion or exclusion are based on “file globs” as used by the unix shell.

      -

      If the pattern starts with a / then it only matches at the top level of the directory tree, relative to the root of the remote (not necessarily the root of the local drive). If it doesn’t start with / then it is matched starting at the end of the path, but it will only match a complete path element:

      +

      The patterns used to match files for inclusion or exclusion are based on "file globs" as used by the unix shell.

      +

      If the pattern starts with a / then it only matches at the top level of the directory tree, relative to the root of the remote (not necessarily the root of the local drive). If it doesn't start with / then it is matched starting at the end of the path, but it will only match a complete path element:

      file.jpg  - matches "file.jpg"
                 - matches "directory/file.jpg"
                 - doesn't match "afile.jpg"
      @@ -3486,7 +3489,7 @@ Configuration file is stored at:
       

      With --ignore-case

      potato - matches "potato"
              - matches "POTATO"
      -

      Note also that rclone filter globs can only be used in one of the filter command line flags, not in the specification of the remote, so rclone copy "remote:dir*.jpg" /path/to/dir won’t work - what is required is rclone --include "*.jpg" copy remote:dir /path/to/dir

      +

      Note also that rclone filter globs can only be used in one of the filter command line flags, not in the specification of the remote, so rclone copy "remote:dir*.jpg" /path/to/dir won't work - what is required is rclone --include "*.jpg" copy remote:dir /path/to/dir

      Directories

      Rclone keeps track of directories that could match any file patterns.

      Eg if you add the include rule

      @@ -3494,9 +3497,9 @@ Configuration file is stored at:

      Rclone will synthesize the directory include rule

      /a/

      If you put any rules which end in / then it will only match directories.

      -

      Directory matches are only used to optimise directory access patterns - you must still match the files that you want to match. Directory matches won’t optimise anything on bucket based remotes (eg s3, swift, google compute storage, b2) which don’t have a concept of directory.

      +

      Directory matches are only used to optimise directory access patterns - you must still match the files that you want to match. Directory matches won't optimise anything on bucket based remotes (eg s3, swift, google compute storage, b2) which don't have a concept of directory.

      Differences between rsync and rclone patterns

      -

      Rclone implements bash style {a,b,c} glob matching which rsync doesn’t.

      +

      Rclone implements bash style {a,b,c} glob matching which rsync doesn't.

      Rclone always does a wildcard match so \ must always escape a \.

      How the rules are used

      Rclone maintains a combined list of include rules and exclude rules.

      @@ -3554,7 +3557,7 @@ file2.jpg

      Add a single include rule with --include.

      This flag can be repeated. See above for the order the flags are processed in.

      Eg --include *.{png,jpg} to include all png and jpg files in the backup and no others.

      -

      This adds an implicit --exclude * at the very end of the filter list. This means you can mix --include and --include-from with the other filters (eg --exclude) but you must include all the files you want in the include statement. If this doesn’t provide enough flexibility then you must use --filter-from.

      +

      This adds an implicit --exclude * at the very end of the filter list. This means you can mix --include and --include-from with the other filters (eg --exclude) but you must include all the files you want in the include statement. If this doesn't provide enough flexibility then you must use --filter-from.

      --include-from - Read include patterns from file

      Add include rules from a file.

      This flag can be repeated. See above for the order the flags are processed in.

      @@ -3565,7 +3568,7 @@ file2.jpg file2.avi

      Then use as --include-from include-file.txt. This will sync all jpg, png files and file2.avi.

      This is useful if you have a lot of rules.

      -

      This adds an implicit --exclude * at the very end of the filter list. This means you can mix --include and --include-from with the other filters (eg --exclude) but you must include all the files you want in the include statement. If this doesn’t provide enough flexibility then you must use --filter-from.

      +

      This adds an implicit --exclude * at the very end of the filter list. This means you can mix --include and --include-from with the other filters (eg --exclude) but you must include all the files you want in the include statement. If this doesn't provide enough flexibility then you must use --filter-from.

      --filter - Add a file-filtering rule

      This can be used to add a single include or exclude rule. Include rules start with + and exclude rules start with -. A special rule called ! can be used to clear the existing rules.

      This flag can be repeated. See above for the order the flags are processed in.

      @@ -3591,7 +3594,7 @@ file2.avi

      Rclone will traverse the file system if you use --files-from, effectively using the files in --files-from as a set of filters. Rclone will not error if any of the files are missing.

      If you use --no-traverse as well as --files-from then rclone will not traverse the destination file system, it will find each file individually using approximately 1 API call. This can be more efficient for small lists of files.

      This option can be repeated to read from more than one file. These are read in the order that they are placed on the command line.

      -

      Paths within the --files-from file will be interpreted as starting with the root specified in the command. Leading / characters are ignored. See –files-from-raw if you need the input to be processed in a raw manner.

      +

      Paths within the --files-from file will be interpreted as starting with the root specified in the command. Leading / characters are ignored. See --files-from-raw if you need the input to be processed in a raw manner.

      For example, suppose you had files-from.txt with this content:

      # comment
       file1.jpg
      @@ -3601,11 +3604,11 @@ subdir/file2.jpg

      This will transfer these files only (if they exist)

      /home/me/pics/file1.jpg        → remote:pics/file1.jpg
       /home/me/pics/subdir/file2.jpg → remote:pics/subdir/file2.jpg
      -

      To take a more complicated example, let’s say you had a few files you want to back up regularly with these absolute paths:

      +

      To take a more complicated example, let's say you had a few files you want to back up regularly with these absolute paths:

      /home/user1/important
       /home/user1/dir/file
       /home/user2/stuff
      -

      To copy these you’d find a common subdirectory - in this case /home and put the remaining files in files-from.txt with or without leading /, eg

      +

      To copy these you'd find a common subdirectory - in this case /home and put the remaining files in files-from.txt with or without leading /, eg

      user1/important
       user1/dir/file
       user2/stuff
      @@ -3627,13 +3630,13 @@ user2/stuff /home/user2/stuff → remote:backup/home/user2/stuff

      --files-from-raw - Read list of source-file names without any processing

      This option is same as --files-from with the only difference being that the input is read in a raw manner. This means that lines with leading/trailing whitespace and lines starting with ; or # are read without any processing. rclone lsf has a compatible format that can be used to export file lists from remotes, which can then be used as an input to --files-from-raw.

      -

      --min-size - Don’t transfer any file smaller than this

      +

      --min-size - Don't transfer any file smaller than this

      This option controls the minimum size file which will be transferred. This defaults to kBytes but a suffix of k, M, or G can be used.

      For example --min-size 50k means no files smaller than 50kByte will be transferred.

      -

      --max-size - Don’t transfer any file larger than this

      +

      --max-size - Don't transfer any file larger than this

      This option controls the maximum size file which will be transferred. This defaults to kBytes but a suffix of k, M, or G can be used.

      For example --max-size 1G means no files larger than 1GByte will be transferred.

      -

      --max-age - Don’t transfer any file older than this

      +

      --max-age - Don't transfer any file older than this

      This option controls the maximum age of files to transfer. Give in seconds or with a suffix of:

    Files are uploaded in sequence and only one file is uploaded at a time. Uploads will be stored in a queue and be processed based on the order they were added. The queue and the temporary storage is persistent across restarts but can be cleared on startup with the --cache-db-purge flag.

    Write Support

    @@ -9239,13 +9243,13 @@ chunk_total_size = 10G

    When the Plex server is configured to only accept secure connections, it is possible to use .plex.direct URLs to ensure certificate validation succeeds. These URLs are used by Plex internally to connect to the Plex server securely.

    The format for these URLs is the following:

    https://ip-with-dots-replaced.server-hash.plex.direct:32400/

    -

    The ip-with-dots-replaced part can be any IPv4 address, where the dots have been replaced with dashes, e.g. 127.0.0.1 becomes 127-0-0-1.

    +

    The ip-with-dots-replaced part can be any IPv4 address, where the dots have been replaced with dashes, e.g. 127.0.0.1 becomes 127-0-0-1.

    To get the server-hash part, the easiest way is to visit

    https://plex.tv/api/resources?includeHttps=1&X-Plex-Token=your-plex-token

    This page will list all the available Plex servers for your account with at least one .plex.direct link for each. Copy one URL and replace the IP address with the desired address. This can be used as the plex_url value.

    Known issues

    -

    Mount and –dir-cache-time

    -

    –dir-cache-time controls the first layer of directory caching which works at the mount layer. Being an independent caching mechanism from the cache backend, it will manage its own entries based on the configured time.

    +

    Mount and --dir-cache-time

    +

    --dir-cache-time controls the first layer of directory caching which works at the mount layer. Being an independent caching mechanism from the cache backend, it will manage its own entries based on the configured time.

    To avoid getting in a scenario where dir cache has obsolete data and cache would have the correct one, try to set --dir-cache-time to a lower time than --cache-info-age. Default values are already configured in this way.

    Windows support - Experimental

    There are a couple of issues with Windows mount functionality that still require some investigations. It should be considered as experimental thus far as fixes come in for this OS.

    @@ -9259,7 +9263,7 @@ chunk_total_size = 10G

    Risk of throttling

    Future iterations of the cache backend will make use of the pooling functionality of the cloud provider to synchronize and at the same time make writing through it more tolerant to failures.

    There are a couple of enhancements in track to add these but in the meantime there is a valid concern that the expiring cache listings can lead to cloud provider throttles or bans due to repeated queries on it for very large mounts.

    -

    Some recommendations: - don’t use a very small interval for entry information (--cache-info-age) - while writes aren’t yet optimised, you can still write through cache which gives you the advantage of adding the file in the cache at the same time if configured to do so.

    +

    Some recommendations: - don't use a very small interval for entry information (--cache-info-age) - while writes aren't yet optimised, you can still write through cache which gives you the advantage of adding the file in the cache at the same time if configured to do so.

    Future enhancements:

    -

    –cache-tmp-wait-time

    +

    --cache-tmp-wait-time

    How long should files be stored in local cache before being uploaded

    This is the duration that a file must wait in the temporary location cache-tmp-upload-path before it is selected for upload.

    Note that only one file is uploaded at a time and it can take longer to start the upload if a queue formed for this purpose.

    @@ -9507,7 +9511,7 @@ chunk_total_size = 10G
  • Type: Duration
  • Default: 15s
  • -

    –cache-db-wait-time

    +

    --cache-db-wait-time

    How long to wait for the DB to be available - 0 is unlimited

    Only one process can have the DB open at any one time, so rclone waits for this duration for the DB to become available before it gives an error.

    If you set it to 0 then it will wait forever.

    @@ -9522,7 +9526,7 @@ chunk_total_size = 10G

    Run them with

    rclone backend COMMAND remote:

    The help below will explain what arguments each command takes.

    -

    See the “rclone backend” command for more info on how to pass options and arguments.

    +

    See the "rclone backend" command for more info on how to pass options and arguments.

    These can be run on a running backend using the rc command backend/command.

    stats

    Print stats on the cache backend in JSON format.

    @@ -9530,7 +9534,7 @@ chunk_total_size = 10G

    Chunker (BETA)

    The chunker overlay transparently splits large files into smaller chunks during upload to wrapped remote and transparently assembles them back when the file is downloaded. This allows to effectively overcome size limits imposed by storage providers.

    To use it, first set up the underlying remote following the configuration instructions for that remote. You can also use a local pathname instead of a remote.

    -

    First check your chosen remote is working - we’ll call it remote:path here. Note that anything inside remote:path will be chunked and anything outside won’t. This means that if you are using a bucket based remote (eg S3, B2, swift) then you should probably put the bucket in the remote s3:bucket.

    +

    First check your chosen remote is working - we'll call it remote:path here. Note that anything inside remote:path will be chunked and anything outside won't. This means that if you are using a bucket based remote (eg S3, B2, swift) then you should probably put the bucket in the remote s3:bucket.

    Now configure chunker using rclone config. We will call this one overlay to separate it from the remote itself.

    No remotes found - make a new one
     n) New remote
    @@ -9590,7 +9594,7 @@ y/e/d> y

    Specifying the remote

    In normal use, make sure the remote has a : in. If you specify the remote without a : then rclone will use a local directory of that name. So if you use a remote of /path/to/secret/files then rclone will chunk stuff in that directory. If you use a remote of name then rclone will put files in a directory called name in the current directory.

    Chunking

    -

    When rclone starts a file upload, chunker checks the file size. If it doesn’t exceed the configured chunk size, chunker will just pass the file to the wrapped remote. If a file is large, chunker will transparently cut data in pieces with temporary names and stream them one by one, on the fly. Each data chunk will contain the specified number of bytes, except for the last one which may have less data. If file size is unknown in advance (this is called a streaming upload), chunker will internally create a temporary copy, record its size and repeat the above process.

    +

    When rclone starts a file upload, chunker checks the file size. If it doesn't exceed the configured chunk size, chunker will just pass the file to the wrapped remote. If a file is large, chunker will transparently cut data in pieces with temporary names and stream them one by one, on the fly. Each data chunk will contain the specified number of bytes, except for the last one which may have less data. If file size is unknown in advance (this is called a streaming upload), chunker will internally create a temporary copy, record its size and repeat the above process.

    When upload completes, temporary chunk files are finally renamed. This scheme guarantees that operations can be run in parallel and look from outside as atomic. A similar method with hidden temporary chunks is used for other operations (copy/move/rename etc). If an operation fails, hidden chunks are normally destroyed, and the target composite file stays intact.

    When a composite file download is requested, chunker transparently assembles it by concatenating data chunks in order. As the split is trivial one could even manually concatenate data chunks together to obtain the original content.

    When the list rclone command scans a directory on wrapped remote, the potential chunk files are accounted for, grouped and assembled into composite directory entries. Any temporary chunks are hidden.

    @@ -9610,14 +9614,14 @@ y/e/d> y
  • md5 - MD5 hashsum of composite file (if present)
  • sha1 - SHA1 hashsum (if present)
  • -

    There is no field for composite file name as it’s simply equal to the name of meta object on the wrapped remote. Please refer to respective sections for details on hashsums and modified time handling.

    +

    There is no field for composite file name as it's simply equal to the name of meta object on the wrapped remote. Please refer to respective sections for details on hashsums and modified time handling.

    No metadata

    You can disable meta objects by setting the meta format option to none. In this mode chunker will scan directory for all files that follow configured chunk name format, group them by detecting chunks with the same base name and show group names as virtual composite files. This method is more prone to missing chunk errors (especially missing last chunk) than format with metadata enabled.

    Hashsums

    Chunker supports hashsums only when a compatible metadata is present. Hence, if you choose metadata format of none, chunker will report hashsum as UNSUPPORTED.

    -

    Please note that by default metadata is stored only for composite files. If a file is smaller than configured chunk size, chunker will transparently redirect hash requests to wrapped remote, so support depends on that. You will see the empty string as a hashsum of requested type for small files if the wrapped remote doesn’t support it.

    +

    Please note that by default metadata is stored only for composite files. If a file is smaller than configured chunk size, chunker will transparently redirect hash requests to wrapped remote, so support depends on that. You will see the empty string as a hashsum of requested type for small files if the wrapped remote doesn't support it.

    Many storage backends support MD5 and SHA1 hash types, so does chunker. With chunker you can choose one or another but not both. MD5 is set by default as the most supported type. Since chunker keeps hashes for composite files and falls back to the wrapped remote hash for non-chunked ones, we advise you to choose the same hash type as supported by wrapped remote so that your file listings look coherent.

    -

    If your storage backend does not support MD5 or SHA1 but you need consistent file hashing, configure chunker with md5all or sha1all. These two modes guarantee given hash for all files. If wrapped remote doesn’t support it, chunker will then add metadata to all files, even small. However, this can double the amount of small files in storage and incur additional service charges. You can even use chunker to force md5/sha1 support in any other remote at expense of sidecar meta objects by setting eg. chunk_type=sha1all to force hashsums and chunk_size=1P to effectively disable chunking.

    +

    If your storage backend does not support MD5 or SHA1 but you need consistent file hashing, configure chunker with md5all or sha1all. These two modes guarantee given hash for all files. If wrapped remote doesn't support it, chunker will then add metadata to all files, even small. However, this can double the amount of small files in storage and incur additional service charges. You can even use chunker to force md5/sha1 support in any other remote at expense of sidecar meta objects by setting eg. chunk_type=sha1all to force hashsums and chunk_size=1P to effectively disable chunking.

    Normally, when a file is copied to chunker controlled remote, chunker will ask the file source for compatible file hash and revert to on-the-fly calculation if none is found. This involves some CPU overhead but provides a guarantee that given hashsum is available. Also, chunker will reject a server-side copy or move operation if source and destination hashsum types are different resulting in the extra network bandwidth, too. In some rare cases this may be undesired, so chunker provides two optional choices: sha1quick and md5quick. If the source does not support primary hash type and the quick mode is enabled, chunker will try to fall back to the secondary type. This will save CPU and bandwidth but can result in empty hashsums at destination. Beware of consequences: the sync command will revert (sometimes silently) to time/size comparison if compatible hashsums between source and target are not found.

    Modified time

    Chunker stores modification times using the wrapped remote so support depends on that. For a small non-chunked file the chunker overlay simply manipulates modification time of the wrapped remote file. For a composite file with metadata chunker will get and set modification time of the metadata object on the wrapped remote. If file is chunked but metadata format is none then chunker will use modification time of the first data chunk.

    @@ -9632,21 +9636,21 @@ y/e/d> y

    If rclone gets killed during a long operation on a big composite file, hidden temporary chunks may stay in the directory. They will not be shown by the list command but will eat up your account quota. Please note that the deletefile command deletes only active chunks of a file. As a workaround, you can use remote of the wrapped file system to see them. An easy way to get rid of hidden garbage is to copy littered directory somewhere using the chunker remote and purge the original directory. The copy command will copy only active chunks while the purge will remove everything including garbage.

    Caveats and Limitations

    Chunker requires wrapped remote to support server side move (or copy + delete) operations, otherwise it will explicitly refuse to start. This is because it internally renames temporary chunk files to their final names when an operation completes successfully.

    -

    Chunker encodes chunk number in file name, so with default name_format setting it adds 17 characters. Also chunker adds 7 characters of temporary suffix during operations. Many file systems limit base file name without path by 255 characters. Using rclone’s crypt remote as a base file system limits file name by 143 characters. Thus, maximum name length is 231 for most files and 119 for chunker-over-crypt. A user in need can change name format to eg. *.rcc## and save 10 characters (provided at most 99 chunks per file).

    +

    Chunker encodes chunk number in file name, so with default name_format setting it adds 17 characters. Also chunker adds 7 characters of temporary suffix during operations. Many file systems limit base file name without path by 255 characters. Using rclone's crypt remote as a base file system limits file name by 143 characters. Thus, maximum name length is 231 for most files and 119 for chunker-over-crypt. A user in need can change name format to eg. *.rcc## and save 10 characters (provided at most 99 chunks per file).

    Note that a move implemented using the copy-and-delete method may incur double charging with some cloud storage providers.

    Chunker will not automatically rename existing chunks when you run rclone config on a live remote and change the chunk name format. Beware that in result of this some files which have been treated as chunks before the change can pop up in directory listings as normal files and vice versa. The same warning holds for the chunk size. If you desperately need to change critical chunking settings, you should run data migration as described above.

    -

    If wrapped remote is case insensitive, the chunker overlay will inherit that property (so you can’t have a file called “Hello.doc” and “hello.doc” in the same directory).

    +

    If wrapped remote is case insensitive, the chunker overlay will inherit that property (so you can't have a file called "Hello.doc" and "hello.doc" in the same directory).

    Standard Options

    Here are the standard options specific to chunker (Transparently chunk/split large files).

    -

    –chunker-remote

    -

    Remote to chunk/unchunk. Normally should contain a ‘:’ and a path, eg “myremote:path/to/dir”, “myremote:bucket” or maybe “myremote:” (not recommended).

    +

    --chunker-remote

    +

    Remote to chunk/unchunk. Normally should contain a ':' and a path, eg "myremote:path/to/dir", "myremote:bucket" or maybe "myremote:" (not recommended).

    -

    –chunker-chunk-size

    +

    --chunker-chunk-size

    Files larger than chunk size will be split in chunks.

    -

    –chunker-hash-type

    -

    Choose how chunker handles hash sums. All modes but “none” require metadata.

    +

    --chunker-hash-type

    +

    Choose how chunker handles hash sums. All modes but "none" require metadata.

    Advanced Options

    Here are the advanced options specific to chunker (Transparently chunk/split large files).

    -

    –chunker-name-format

    -

    String format of chunk file names. The two placeholders are: base file name (*) and chunk number (#…). There must be one and only one asterisk and one or more consecutive hash characters. If chunk number has less digits than the number of hashes, it is left-padded by zeros. If there are more digits in the number, they are left as is. Possible chunk files are ignored if their name does not match given format.

    +

    --chunker-name-format

    +

    String format of chunk file names. The two placeholders are: base file name (*) and chunk number (#...). There must be one and only one asterisk and one or more consecutive hash characters. If chunk number has less digits than the number of hashes, it is left-padded by zeros. If there are more digits in the number, they are left as is. Possible chunk files are ignored if their name does not match given format.

    -

    –chunker-start-from

    +

    --chunker-start-from

    Minimum valid chunk number. Usually 0 or 1. By default chunk numbers start from 1.

    -

    –chunker-meta-format

    -

    Format of the metadata object or “none”. By default “simplejson”. Metadata is a small JSON file named after the composite file.

    +

    --chunker-meta-format

    +

    Format of the metadata object or "none". By default "simplejson". Metadata is a small JSON file named after the composite file.

    -

    –chunker-fail-hard

    +

    --chunker-fail-hard

    Choose how chunker should handle files with missing or invalid chunks.

    base32 is used rather than the more efficient base64 so rclone can be used on case insensitive remotes (eg Windows, Amazon Drive).

    Key derivation

    -

    Rclone uses scrypt with parameters N=16384, r=8, p=1 with an optional user supplied salt (password2) to derive the 32+32+16 = 80 bytes of key material required. If the user doesn’t supply a salt then rclone uses an internal one.

    +

    Rclone uses scrypt with parameters N=16384, r=8, p=1 with an optional user supplied salt (password2) to derive the 32+32+16 = 80 bytes of key material required. If the user doesn't supply a salt then rclone uses an internal one.

    scrypt makes it impractical to mount a dictionary attack on rclone encrypted data. For full protection against this you should always use a salt.

    Dropbox

    Paths are specified as remote:path

    @@ -10362,7 +10366,7 @@ y/e/d> y

    A leading / for a Dropbox personal account will do nothing, but it will take an extra HTTP transaction so it should be avoided.

    Modified time and Hashes

    Dropbox supports modified times, but the only way to set a modification time is to re-upload the file.

    -

    This means that if you uploaded your data with an older version of rclone which didn’t support the v2 API and modified times, rclone will decide to upload all your old data to fix the modification times. If you don’t want this to happen use --size-only or --checksum flag to stop it.

    +

    This means that if you uploaded your data with an older version of rclone which didn't support the v2 API and modified times, rclone will decide to upload all your old data to fix the modification times. If you don't want this to happen use --size-only or --checksum flag to stop it.

    Dropbox supports its own hash type which is checked for all transfers.

    Restricted filename characters

    @@ -10413,10 +10417,10 @@ y/e/d> y
    -

    Invalid UTF-8 bytes will also be replaced, as they can’t be used in JSON strings.

    +

    Invalid UTF-8 bytes will also be replaced, as they can't be used in JSON strings.

    Standard Options

    Here are the standard options specific to dropbox (Dropbox).

    -

    –dropbox-client-id

    +

    --dropbox-client-id

    Dropbox App Client Id Leave blank normally.

    -

    –dropbox-client-secret

    +

    --dropbox-client-secret

    Dropbox App Client Secret Leave blank normally.

    Advanced Options

    Here are the advanced options specific to dropbox (Dropbox).

    -

    –dropbox-chunk-size

    +

    --dropbox-chunk-size

    Upload chunk size. (< 150M).

    Any files larger than this will be uploaded in chunks of this size.

    Note that chunks are buffered in memory (one at a time) so rclone can deal with retries. Setting this larger will increase the speed slightly (at most 10% for 128MB in tests) at the cost of using more memory. It can be set smaller if you are tight on memory.

    @@ -10444,7 +10448,7 @@ y/e/d> y
  • Type: SizeSuffix
  • Default: 48M
  • -

    –dropbox-impersonate

    +

    --dropbox-impersonate

    Impersonate this user when using a business account.

    -

    –dropbox-encoding

    +

    --dropbox-encoding

    This sets the encoding for the backend.

    See: the encoding section in the overview for more info.

    Limitations

    -

    Note that Dropbox is case insensitive so you can’t have a file called “Hello.doc” and one called “hello.doc”.

    -

    There are some file names such as thumbs.db which Dropbox can’t store. There is a full list of them in the “Ignored Files” section of this document. Rclone will issue an error message File name disallowed - not uploading if it attempts to upload one of those file names, but the sync won’t fail.

    +

    Note that Dropbox is case insensitive so you can't have a file called "Hello.doc" and one called "hello.doc".

    +

    There are some file names such as thumbs.db which Dropbox can't store. There is a full list of them in the "Ignored Files" section of this document. Rclone will issue an error message File name disallowed - not uploading if it attempts to upload one of those file names, but the sync won't fail.

    If you have more than 10,000 files in a directory then rclone purge dropbox:dir will return the error Failed to purge: There are too many files involved in this operation. As a work-around do an rclone delete dropbox:dir followed by an rclone rmdir dropbox:dir.

    Get your own Dropbox App ID

    -

    When you use rclone with Dropbox in its default configuration you are using rclone’s App ID. This is shared between all the rclone users.

    +

    When you use rclone with Dropbox in its default configuration you are using rclone's App ID. This is shared between all the rclone users.

    Here is how to create your own Dropbox App ID for rclone:

    1. Log into the Dropbox App console with your Dropbox Account (It need not to be the same account as the Dropbox you want to access)

    2. Choose an API => Usually this should be Dropbox API

    3. Choose the type of access you want to use => Full Dropbox or App Folder

    4. -
    5. Name your App. The app name is global, so you can’t use rclone for example

    6. +
    7. Name your App. The app name is global, so you can't use rclone for example

    8. Click the button Create App

    9. Fill Redirect URIs as http://localhost:53682/

    10. Find the App key and App secret Use these values in rclone config to add a new remote or edit an existing remote.

    FTP

    FTP is the File Transfer Protocol. FTP support is provided using the github.com/jlaffaye/ftp package.

    +

    Paths are specified as remote:path. If the path does not begin with a / it is relative to the home directory of the user. An empty path remote: refers to the user's home directory.

    Here is an example of making an FTP configuration. First run

    rclone config

    This will guide you through an interactive setup process. An FTP remote only needs a host together with and a username and a password. With anonymous FTP server, you will need to use anonymous as username and your email address as the password.

    @@ -10592,7 +10597,7 @@ y/e/d> y

    FTP supports implicit FTP over TLS servers (FTPS). This has to be enabled in the config for the remote. The default FTPS port is 990 so the port will likely have to be explicitly set in the config for the remote.

    Standard Options

    Here are the standard options specific to ftp (FTP Connection).

    -

    –ftp-host

    +

    --ftp-host

    FTP host to connect to

    -

    –ftp-user

    +

    --ftp-user

    FTP username, leave blank for current username, $USER

    -

    –ftp-port

    +

    --ftp-port

    FTP port, leave blank to use default (21)

    -

    –ftp-pass

    +

    --ftp-pass

    FTP password

    NB Input to this must be obscured - see rclone obscure.

    -

    –ftp-tls

    +

    --ftp-tls

    Use FTP over TLS (Implicit)

    Advanced Options

    Here are the advanced options specific to ftp (FTP Connection).

    -

    –ftp-concurrency

    +

    --ftp-concurrency

    Maximum number of FTP simultaneous connections, 0 for unlimited

    -

    –ftp-no-check-certificate

    +

    --ftp-no-check-certificate

    Do not verify the TLS certificate of the server

    -

    –ftp-disable-epsv

    +

    --ftp-disable-epsv

    Disable using EPSV even if server advertises support

    -

    –ftp-encoding

    +

    --ftp-encoding

    This sets the encoding for the backend.

    See: the encoding section in the overview for more info.

    Limitations

    -

    Note that since FTP isn’t HTTP based the following flags don’t work with it: --dump-headers, --dump-bodies, --dump-auth

    -

    Note that --timeout isn’t supported (but --contimeout is).

    -

    Note that --bind isn’t supported.

    -

    FTP could support server side move but doesn’t yet.

    +

    Note that since FTP isn't HTTP based the following flags don't work with it: --dump-headers, --dump-bodies, --dump-auth

    +

    Note that --timeout isn't supported (but --contimeout is).

    +

    Note that --bind isn't supported.

    +

    FTP could support server side move but doesn't yet.

    Note that the ftp backend does not support the ftp_proxy environment variable yet.

    Note that while implicit FTP over TLS is supported, explicit FTP over TLS is not.

    Google Cloud Storage

    @@ -10818,13 +10823,13 @@ y/e/d> y

    Sync /home/local/directory to the remote bucket, deleting any excess files in the bucket.

    rclone sync /home/local/directory remote:bucket

    Service Account support

    -

    You can set up rclone with Google Cloud Storage in an unattended mode, i.e. not tied to a specific end-user Google account. This is useful when you want to synchronise files onto machines that don’t have actively logged-in users, for example build machines.

    -

    To get credentials for Google Cloud Platform IAM Service Accounts, please head to the Service Account section of the Google Developer Console. Service Accounts behave just like normal User permissions in Google Cloud Storage ACLs, so you can limit their access (e.g. make them read only). After creating an account, a JSON file containing the Service Account’s credentials will be downloaded onto your machines. These credentials are what rclone will use for authentication.

    -

    To use a Service Account instead of OAuth2 token flow, enter the path to your Service Account credentials at the service_account_file prompt and rclone won’t use the browser based authentication flow. If you’d rather stuff the contents of the credentials file into the rclone config file, you can set service_account_credentials with the actual contents of the file instead, or set the equivalent environment variable.

    +

    You can set up rclone with Google Cloud Storage in an unattended mode, i.e. not tied to a specific end-user Google account. This is useful when you want to synchronise files onto machines that don't have actively logged-in users, for example build machines.

    +

    To get credentials for Google Cloud Platform IAM Service Accounts, please head to the Service Account section of the Google Developer Console. Service Accounts behave just like normal User permissions in Google Cloud Storage ACLs, so you can limit their access (e.g. make them read only). After creating an account, a JSON file containing the Service Account's credentials will be downloaded onto your machines. These credentials are what rclone will use for authentication.

    +

    To use a Service Account instead of OAuth2 token flow, enter the path to your Service Account credentials at the service_account_file prompt and rclone won't use the browser based authentication flow. If you'd rather stuff the contents of the credentials file into the rclone config file, you can set service_account_credentials with the actual contents of the file instead, or set the equivalent environment variable.

    Application Default Credentials

    If no other source of credentials is provided, rclone will fall back to Application Default Credentials this is useful both when you already have configured authentication for your developer account, or in production when running on a google compute host. Note that if running in docker, you may need to run additional commands on your google compute machine - see this page.

    Note that in the case application default credentials are used, there is no need to explicitly configure a project number.

    -

    –fast-list

    +

    --fast-list

    This remote supports --fast-list which allows you to use fewer transactions in exchange for more memory. See the rclone docs for more details.

    Custom upload headers

    You can set custom upload headers with the --header-upload flag. Google Cloud Storage supports the headers as described in the working with metadata documentation

    @@ -10839,7 +10844,7 @@ y/e/d> y

    Eg --header-upload "Content-Type text/potato"

    Note that the last of these is for setting custom metadata in the form --header-upload "x-goog-meta-key: value"

    Modified time

    -

    Google google cloud storage stores md5sums natively and rclone stores modification times as metadata on the object, under the “mtime” key in RFC3339 format accurate to 1ns.

    +

    Google google cloud storage stores md5sums natively and rclone stores modification times as metadata on the object, under the "mtime" key in RFC3339 format accurate to 1ns.

    Restricted filename characters

    @@ -10872,10 +10877,10 @@ y/e/d> y
    -

    Invalid UTF-8 bytes will also be replaced, as they can’t be used in JSON strings.

    +

    Invalid UTF-8 bytes will also be replaced, as they can't be used in JSON strings.

    Standard Options

    Here are the standard options specific to google cloud storage (Google Cloud Storage (this is not Google Drive)).

    -

    –gcs-client-id

    +

    --gcs-client-id

    Google Application Client Id Leave blank normally.

    -

    –gcs-client-secret

    +

    --gcs-client-secret

    Google Application Client Secret Leave blank normally.

    -

    –gcs-project-number

    +

    --gcs-project-number

    Project number. Optional - needed only for list/create/delete buckets - see your developer console.

    -

    –gcs-service-account-file

    +

    --gcs-service-account-file

    Service Account Credentials JSON file path Leave blank normally. Needed only if you want use SA instead of interactive login.

    -

    –gcs-service-account-credentials

    +

    --gcs-service-account-credentials

    Service Account Credentials JSON blob Leave blank normally. Needed only if you want use SA instead of interactive login.

    -

    –gcs-object-acl

    +

    --gcs-object-acl

    Access Control List for new objects.

    -

    –gcs-bucket-acl

    +

    --gcs-bucket-acl

    Access Control List for new buckets.

    -

    –gcs-bucket-policy-only

    +

    --gcs-bucket-policy-only

    Access checks should use bucket-level IAM policies.

    If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.

    When it is set, rclone:

    @@ -10997,7 +11002,7 @@ y/e/d> y
  • Type: bool
  • Default: false
  • -

    –gcs-location

    +

    --gcs-location

    Location for the newly created buckets.

    -

    –gcs-storage-class

    +

    --gcs-storage-class

    The storage class to use when storing objects in Google Cloud Storage.

    Advanced Options

    Here are the advanced options specific to google cloud storage (Google Cloud Storage (this is not Google Drive)).

    -

    –gcs-encoding

    +

    --gcs-encoding

    This sets the encoding for the backend.

    See: the encoding section in the overview for more info.