1rclone(1) rclone(1)
2
3
4
6 • About rclone
7
8 • What can rclone do for you?
9
10 • What features does rclone have?
11
12 • What providers does rclone support?
13
14 • Download (https://rclone.org/downloads/)
15
16 • Install (https://rclone.org/install/)
17
18 • Donate. (https://rclone.org/donate/)
19
20 About rclone
21 Rclone is a command line program to manage files on cloud storage. It
22 is a feature rich alternative to cloud vendors' web storage interfaces.
23 Over 40 cloud storage products support rclone including S3 object
24 stores, business & consumer file storage services, as well as standard
25 transfer protocols.
26
27 Rclone has powerful cloud equivalents to the unix commands rsync, cp,
28 mv, mount, ls, ncdu, tree, rm, and cat. Rclone's familiar syntax in‐
29 cludes shell pipeline support, and --dry-run protection. It is used at
30 the command line, in scripts or via its API (/rc).
31
32 Users call rclone "The Swiss army knife of cloud storage", and "Tech‐
33 nology indistinguishable from magic".
34
35 Rclone really looks after your data. It preserves timestamps and veri‐
36 fies checksums at all times. Transfers over limited bandwidth; inter‐
37 mittent connections, or subject to quota can be restarted, from the
38 last good file transferred. You can check (https://rclone.org/com‐
39 mands/rclone_check/) the integrity of your files. Where possible,
40 rclone employs server-side transfers to minimise local bandwidth use
41 and transfers from one provider to another without using local disk.
42
43 Virtual backends wrap local and cloud file systems to apply encryption
44 (https://rclone.org/crypt/), compression (https://rclone.org/com‐
45 press/), chunking (https://rclone.org/chunker/), hashing
46 (https://rclone.org/hasher/) and joining (https://rclone.org/union/).
47
48 Rclone mounts (https://rclone.org/commands/rclone_mount/) any local,
49 cloud or virtual filesystem as a disk on Windows, macOS, linux and
50 FreeBSD, and also serves these over SFTP (https://rclone.org/com‐
51 mands/rclone_serve_sftp/), HTTP (https://rclone.org/com‐
52 mands/rclone_serve_http/), WebDAV (https://rclone.org/com‐
53 mands/rclone_serve_webdav/), FTP (https://rclone.org/com‐
54 mands/rclone_serve_ftp/) and DLNA (https://rclone.org/com‐
55 mands/rclone_serve_dlna/).
56
57 Rclone is mature, open source software originally inspired by rsync and
58 written in Go (https://golang.org). The friendly support community are
59 familiar with varied use cases. Official Ubuntu, Debian, Fedora, Brew
60 and Chocolatey repos. include rclone. For the latest version down‐
61 loading from rclone.org (https://rclone.org/downloads/) is recommended.
62
63 Rclone is widely used on Linux, Windows and Mac. Third party develop‐
64 ers create innovative backup, restore, GUI and business process solu‐
65 tions using the rclone command line or API.
66
67 Rclone does the heavy lifting of communicating with cloud storage.
68
69 What can rclone do for you?
70 Rclone helps you:
71
72 • Backup (and encrypt) files to cloud storage
73
74 • Restore (and decrypt) files from cloud storage
75
76 • Mirror cloud data to other cloud services or locally
77
78 • Migrate data to cloud, or between cloud storage vendors
79
80 • Mount multiple, encrypted, cached or diverse cloud storage as a disk
81
82 • Analyse and account for data held on cloud storage using lsf
83 (https://rclone.org/commands/rclone_lsf/), ljson
84 (https://rclone.org/commands/rclone_lsjson/), size
85 (https://rclone.org/commands/rclone_size/), ncdu
86 (https://rclone.org/commands/rclone_ncdu/)
87
88 • Union (https://rclone.org/union/) file systems together to present
89 multiple local and/or cloud file systems as one
90
91 Features
92 • Transfers
93
94 • MD5, SHA1 hashes are checked at all times for file integrity
95
96 • Timestamps are preserved on files
97
98 • Operations can be restarted at any time
99
100 • Can be to and from network, e.g. two different cloud providers
101
102 • Can use multi-threaded downloads to local disk
103
104 • Copy (https://rclone.org/commands/rclone_copy/) new or changed files
105 to cloud storage
106
107 • Sync (https://rclone.org/commands/rclone_sync/) (one way) to make a
108 directory identical
109
110 • Move (https://rclone.org/commands/rclone_move/) files to cloud stor‐
111 age deleting the local after verification
112
113 • Check (https://rclone.org/commands/rclone_check/) hashes and for
114 missing/extra files
115
116 • Mount (https://rclone.org/commands/rclone_mount/) your cloud storage
117 as a network disk
118
119 • Serve (https://rclone.org/commands/rclone_serve/) local or remote
120 files over HTTP (https://rclone.org/commands/rclone_serve_http/)/Web‐
121 Dav (https://rclone.org/commands/rclone_serve_webdav/)/FTP
122 (https://rclone.org/commands/rclone_serve_ftp/)/SFTP
123 (https://rclone.org/commands/rclone_serve_sftp/)/dlna
124 (https://rclone.org/commands/rclone_serve_dlna/)
125
126 • Experimental Web based GUI (https://rclone.org/gui/)
127
128 Supported providers
129 (There are many others, built on standard protocols such as WebDAV or
130 S3, that work out of the box.)
131
132 • 1Fichier
133
134 • Alibaba Cloud (Aliyun) Object Storage System (OSS)
135
136 • Amazon Drive
137
138 • Amazon S3
139
140 • Backblaze B2
141
142 • Box
143
144 • Ceph
145
146 • Citrix ShareFile
147
148 • C14
149
150 • DigitalOcean Spaces
151
152 • Dreamhost
153
154 • Dropbox
155
156 • Enterprise File Fabric
157
158 • FTP
159
160 • Google Cloud Storage
161
162 • Google Drive
163
164 • Google Photos
165
166 • HDFS
167
168 • HTTP
169
170 • Hubic
171
172 • Jottacloud
173
174 • IBM COS S3
175
176 • Koofr
177
178 • Mail.ru Cloud
179
180 • Memset Memstore
181
182 • Mega
183
184 • Memory
185
186 • Microsoft Azure Blob Storage
187
188 • Microsoft OneDrive
189
190 • Minio
191
192 • Nextcloud
193
194 • OVH
195
196 • OpenDrive
197
198 • OpenStack Swift
199
200 • Oracle Cloud Storage
201
202 • ownCloud
203
204 • pCloud
205
206 • premiumize.me
207
208 • put.io
209
210 • QingStor
211
212 • Rackspace Cloud Files
213
214 • rsync.net
215
216 • Scaleway
217
218 • Seafile
219
220 • SeaweedFS
221
222 • SFTP
223
224 • Sia
225
226 • StackPath
227
228 • SugarSync
229
230 • Tardigrade
231
232 • Tencent Cloud Object Storage (COS)
233
234 • Uptobox
235
236 • Wasabi
237
238 • WebDAV
239
240 • Yandex Disk
241
242 • Zoho WorkDrive
243
244 • The local filesystem
245
246 Links
247
248 • Home page (https://rclone.org/)
249
250 • GitHub project page for source and bug tracker
251 (https://github.com/rclone/rclone)
252
253 • Rclone Forum (https://forum.rclone.org)
254
255 • Downloads (https://rclone.org/downloads/)
256
258 Rclone is a Go program and comes as a single binary file.
259
260 Quickstart
261 • Download (https://rclone.org/downloads/) the relevant binary.
262
263 • Extract the rclone executable, rclone.exe on Windows, from the ar‐
264 chive.
265
266 • Run rclone config to setup. See rclone config docs
267 (https://rclone.org/docs/) for more details.
268
269 • Optionally configure automatic execution.
270
271 See below for some expanded Linux / macOS instructions.
272
273 See the usage (https://rclone.org/docs/) docs for how to use rclone, or
274 run rclone -h.
275
276 Already installed rclone can be easily updated to the latest version
277 using the rclone selfupdate (https://rclone.org/commands/rclone_selfup‐
278 date/) command.
279
280 Script installation
281 To install rclone on Linux/macOS/BSD systems, run:
282
283 curl https://rclone.org/install.sh | sudo bash
284
285 For beta installation, run:
286
287 curl https://rclone.org/install.sh | sudo bash -s beta
288
289 Note that this script checks the version of rclone installed first and
290 won't re-download if not needed.
291
292 Linux installation from precompiled binary
293 Fetch and unpack
294
295 curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
296 unzip rclone-current-linux-amd64.zip
297 cd rclone-*-linux-amd64
298
299 Copy binary file
300
301 sudo cp rclone /usr/bin/
302 sudo chown root:root /usr/bin/rclone
303 sudo chmod 755 /usr/bin/rclone
304
305 Install manpage
306
307 sudo mkdir -p /usr/local/share/man/man1
308 sudo cp rclone.1 /usr/local/share/man/man1/
309 sudo mandb
310
311 Run rclone config to setup. See rclone config docs
312 (https://rclone.org/docs/) for more details.
313
314 rclone config
315
316 macOS installation with brew
317 brew install rclone
318
319 NOTE: This version of rclone will not support mount any more (see #5373
320 (https://github.com/rclone/rclone/issues/5373)). If mounting is wanted
321 on macOS, either install a precompiled binary or enable the relevant
322 option when installing from source.
323
324 macOS installation from precompiled binary, using curl
325 To avoid problems with macOS gatekeeper enforcing the binary to be
326 signed and notarized it is enough to download with curl.
327
328 Download the latest version of rclone.
329
330 cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
331
332 Unzip the download and cd to the extracted folder.
333
334 unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
335
336 Move rclone to your $PATH. You will be prompted for your password.
337
338 sudo mkdir -p /usr/local/bin
339 sudo mv rclone /usr/local/bin/
340
341 (the mkdir command is safe to run, even if the directory already ex‐
342 ists).
343
344 Remove the leftover files.
345
346 cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
347
348 Run rclone config to setup. See rclone config docs
349 (https://rclone.org/docs/) for more details.
350
351 rclone config
352
353 macOS installation from precompiled binary, using a web browser
354 When downloading a binary with a web browser, the browser will set the
355 macOS gatekeeper quarantine attribute. Starting from Catalina, when
356 attempting to run rclone, a pop-up will appear saying:
357
358 “rclone” cannot be opened because the developer cannot be verified.
359 macOS cannot verify that this app is free from malware.
360
361 The simplest fix is to run
362
363 xattr -d com.apple.quarantine rclone
364
365 Install with docker
366 The rclone maintains a docker image for rclone (https://hub.dock‐
367 er.com/r/rclone/rclone). These images are autobuilt by docker hub from
368 the rclone source based on a minimal Alpine linux image.
369
370 The :latest tag will always point to the latest stable release. You
371 can use the :beta tag to get the latest build from master. You can al‐
372 so use version tags, e.g. :1.49.1, :1.49 or :1.
373
374 $ docker pull rclone/rclone:latest
375 latest: Pulling from rclone/rclone
376 Digest: sha256:0e0ced72671989bb837fea8e88578b3fc48371aa45d209663683e24cfdaa0e11
377 ...
378 $ docker run --rm rclone/rclone:latest version
379 rclone v1.49.1
380 - os/arch: linux/amd64
381 - go version: go1.12.9
382
383 There are a few command line options to consider when starting an
384 rclone Docker container from the rclone image.
385
386 • You need to mount the host rclone config dir at /config/rclone into
387 the Docker container. Due to the fact that rclone updates tokens in‐
388 side its config file, and that the update process involves a file re‐
389 name, you need to mount the whole host rclone config dir, not just
390 the single host rclone config file.
391
392 • You need to mount a host data dir at /data into the Docker container.
393
394 • By default, the rclone binary inside a Docker container runs with
395 UID=0 (root). As a result, all files created in a run will have
396 UID=0. If your config and data files reside on the host with a
397 non-root UID:GID, you need to pass these on the container start com‐
398 mand line.
399
400 • If you want to access the RC interface (either via the API or the Web
401 UI), it is required to set the --rc-addr to :5572 in order to connect
402 to it from outside the container. An explanation about why this is
403 necessary is present here (https://web.ar‐
404 chive.org/web/20200808071950/https://pythonspeed.com/articles/docker-
405 connection-refused/).
406
407 • NOTE: Users running this container with the docker network set to
408 host should probably set it to listen to localhost only, with
409 127.0.0.1:5572 as the value for --rc-addr
410
411 • It is possible to use rclone mount inside a userspace Docker contain‐
412 er, and expose the resulting fuse mount to the host. The exact dock‐
413 er run options to do that might vary slightly between hosts. See,
414 e.g. the discussion in this thread (https://github.com/moby/moby/is‐
415 sues/9448).
416
417 You also need to mount the host /etc/passwd and /etc/group for fuse
418 to work inside the container.
419
420 Here are some commands tested on an Ubuntu 18.04.3 host:
421
422 # config on host at ~/.config/rclone/rclone.conf
423 # data on host at ~/data
424
425 # make sure the config is ok by listing the remotes
426 docker run --rm \
427 --volume ~/.config/rclone:/config/rclone \
428 --volume ~/data:/data:shared \
429 --user $(id -u):$(id -g) \
430 rclone/rclone \
431 listremotes
432
433 # perform mount inside Docker container, expose result to host
434 mkdir -p ~/data/mount
435 docker run --rm \
436 --volume ~/.config/rclone:/config/rclone \
437 --volume ~/data:/data:shared \
438 --user $(id -u):$(id -g) \
439 --volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
440 --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
441 rclone/rclone \
442 mount dropbox:Photos /data/mount &
443 ls ~/data/mount
444 kill %1
445
446 Install from source
447 Make sure you have at least Go (https://golang.org/) go1.14 installed.
448 Download go (https://golang.org/dl/) if necessary. The latest release
449 is recommended. Then
450
451 git clone https://github.com/rclone/rclone.git
452 cd rclone
453 go build
454 # If on macOS and mount is wanted, instead run: make GOTAGS=cmount
455 ./rclone version
456
457 This will leave you a checked out version of rclone you can modify and
458 send pull requests with. If you use make instead of go build then the
459 rclone build will have the correct version information in it.
460
461 You can also build the latest stable rclone with:
462
463 go get github.com/rclone/rclone
464
465 or the latest version (equivalent to the beta) with
466
467 go get github.com/rclone/rclone@master
468
469 These will build the binary in $(go env GOPATH)/bin (~/go/bin/rclone by
470 default) after downloading the source to the go module cache. Note -
471 do not use the -u flag here. This causes go to try to update the de‐
472 pendencies that rclone uses and sometimes these don't work with the
473 current version of rclone.
474
475 Installation with Ansible
476 This can be done with Stefan Weichinger's ansible role
477 (https://github.com/stefangweichinger/ansible-rclone).
478
479 Instructions
480
481 1. git clone https://github.com/stefangweichinger/ansible-rclone.git
482 into your local roles-directory
483
484 2. add the role to the hosts you want rclone installed to:
485
486 - hosts: rclone-hosts
487 roles:
488 - rclone
489
490 Portable installation
491 As mentioned above (https://rclone.org/install/#quickstart), rclone is
492 single executable (rclone, or rclone.exe on Windows) that you can down‐
493 load as a zip archive and extract into a location of your choosing.
494 When executing different commands, it may create files in different lo‐
495 cations, such as a configuration file and various temporary files. By
496 default the locations for these are according to your operating system,
497 e.g. configuration file in your user profile directory and temporary
498 files in the standard temporary directory, but you can customize all of
499 them, e.g. to make a completely self-contained, portable installation.
500
501 Run the config paths (https://rclone.org/commands/rclone_config_paths/)
502 command to see the locations that rclone will use.
503
504 To override them set the corresponding options (as command-line argu‐
505 ments, or as environment variables (https://rclone.org/docs/#environ‐
506 ment-variables)): - --config (https://rclone.org/docs/#config-config-
507 file) - --cache-dir (https://rclone.org/docs/#cache-dir-dir) -
508 --temp-dir (https://rclone.org/docs/#temp-dir-dir)
509
510 Autostart
511 After installing and configuring rclone, as described above, you are
512 ready to use rclone as an interactive command line utility. If your
513 goal is to perform periodic operations, such as a regular sync
514 (https://rclone.org/commands/rclone_sync/), you will probably want to
515 configure your rclone command in your operating system's scheduler. If
516 you need to expose service-like features, such as remote control
517 (https://rclone.org/rc/), GUI (https://rclone.org/gui/), serve
518 (https://rclone.org/commands/rclone_serve/) or mount
519 (https://rclone.org/commands/rclone_move/), you will often want an
520 rclone command always running in the background, and configuring it to
521 run in a service infrastructure may be a better option. Below are some
522 alternatives on how to achieve this on different operating systems.
523
524 NOTE: Before setting up autorun it is highly recommended that you have
525 tested your command manually from a Command Prompt first.
526
527 Autostart on Windows
528 The most relevant alternatives for autostart on Windows are: - Run at
529 user log on using the Startup folder - Run at user log on, at system
530 startup or at schedule using Task Scheduler - Run at system startup us‐
531 ing Windows service
532
533 Running in background
534 Rclone is a console application, so if not starting from an existing
535 Command Prompt, e.g. when starting rclone.exe from a shortcut, it will
536 open a Command Prompt window. When configuring rclone to run from task
537 scheduler and windows service you are able to set it to run hidden in
538 background. From rclone version 1.54 you can also make it run hidden
539 from anywhere by adding option --no-console (it may still flash briefly
540 when the program starts). Since rclone normally writes information and
541 any error messages to the console, you must redirect this to a file to
542 be able to see it. Rclone has a built-in option --log-file for that.
543
544 Example command to run a sync in background:
545
546 c:\rclone\rclone.exe sync c:\files remote:/files --no-console --log-file c:\rclone\logs\sync_files.txt
547
548 User account
549 As mentioned in the mount (https://rclone.org/commands/rclone_move/)
550 documentation, mounted drives created as Administrator are not visible
551 to other accounts, not even the account that was elevated as Adminis‐
552 trator. By running the mount command as the built-in SYSTEM user ac‐
553 count, it will create drives accessible for everyone on the system.
554 Both scheduled task and Windows service can be used to achieve this.
555
556 NOTE: Remember that when rclone runs as the SYSTEM user, the user pro‐
557 file that it sees will not be yours. This means that if you normally
558 run rclone with configuration file in the default location, to be able
559 to use the same configuration when running as the system user you must
560 explicitely tell rclone where to find it with the --config
561 (https://rclone.org/docs/#config-config-file) option, or else it will
562 look in the system users profile path (C:\Windows\System32\config\sys‐
563 temprofile). To test your command manually from a Command Prompt, you
564 can run it with the PsExec (https://docs.microsoft.com/en-us/sysinter‐
565 nals/downloads/psexec) utility from Microsoft's Sysinternals suite,
566 which takes option -s to execute commands as the SYSTEM user.
567
568 Start from Startup folder
569 To quickly execute an rclone command you can simply create a standard
570 Windows Explorer shortcut for the complete rclone command you want to
571 run. If you store this shortcut in the special "Startup" start-menu
572 folder, Windows will automatically run it at login. To open this fold‐
573 er in Windows Explorer, enter path %APPDATA%\Microsoft\Windows\Start
574 Menu\Programs\Startup, or C:\ProgramData\Microsoft\Windows\Start
575 Menu\Programs\StartUp if you want the command to start for every user
576 that logs in.
577
578 This is the easiest approach to autostarting of rclone, but it offers
579 no functionality to set it to run as different user, or to set condi‐
580 tions or actions on certain events. Setting up a scheduled task as de‐
581 scribed below will often give you better results.
582
583 Start from Task Scheduler
584 Task Scheduler is an administrative tool built into Windows, and it can
585 be used to configure rclone to be started automatically in a highly
586 configurable way, e.g. periodically on a schedule, on user log on, or
587 at system startup. It can run be configured to run as the current us‐
588 er, or for a mount command that needs to be available to all users it
589 can run as the SYSTEM user. For technical information, see
590 https://docs.microsoft.com/windows/win32/taskschd/task-sched‐
591 uler-start-page.
592
593 Run as service
594 For running rclone at system startup, you can create a Windows service
595 that executes your rclone command, as an alternative to scheduled task
596 configured to run at startup.
597
598 Mount command built-in service integration
599 For mount commands, Rclone has a built-in Windows service integration
600 via the third party WinFsp library it uses. Registering as a regular
601 Windows service easy, as you just have to execute the built-in Power‐
602 Shell command New-Service (requires administrative privileges).
603
604 Example of a PowerShell command that creates a Windows service for
605 mounting some remote:/files as drive letter X:, for all users (service
606 will be running as the local system account):
607
608 New-Service -Name Rclone -BinaryPathName 'c:\rclone\rclone.exe mount remote:/files X: --config c:\rclone\config\rclone.conf --log-file c:\rclone\logs\mount.txt'
609
610 The WinFsp service infrastructure (https://github.com/billziss-gh/winf‐
611 sp/wiki/WinFsp-Service-Architecture) supports incorporating services
612 for file system implementations, such as rclone, into its own launcher
613 service, as kind of "child services". This has the additional advan‐
614 tage that it also implements a network provider that integrates into
615 Windows standard methods for managing network drives. This is current‐
616 ly not officially supported by Rclone, but with WinFsp version 2019.3
617 B2 / v1.5B2 or later it should be possible through path rewriting as
618 described here (https://github.com/rclone/rclone/issues/3340).
619
620 Third party service integration
621 To Windows service running any rclone command, the excellent third par‐
622 ty utility NSSM (http://nssm.cc), the "Non-Sucking Service Manager",
623 can be used. It includes some advanced features such as adjusting
624 process periority, defining process environment variables, redirect to
625 file anything written to stdout, and customized response to different
626 exit codes, with a GUI to configure everything from (although it can
627 also be used from command line ).
628
629 There are also several other alternatives. To mention one more, WinSW
630 (https://github.com/winsw/winsw), "Windows Service Wrapper", is worth
631 checking out. It requires .NET Framework, but it is preinstalled on
632 newer versions of Windows, and it also provides alternative standalone
633 distributions which includes necessary runtime (.NET 5). WinSW is a
634 command-line only utility, where you have to manually create an XML
635 file with service configuration. This may be a drawback for some, but
636 it can also be an advantage as it is easy to back up and re-use the
637 configuration settings, without having go through manual steps in a
638 GUI. One thing to note is that by default it does not restart the ser‐
639 vice on error, one have to explicit enable this in the configuration
640 file (via the "onfailure" parameter).
641
642 Autostart on Linux
643 Start as a service
644 To always run rclone in background, relevant for mount commands etc,
645 you can use systemd to set up rclone as a system or user service. Run‐
646 ning as a system service ensures that it is run at startup even if the
647 user it is running as has no active session. Running rclone as a user
648 service ensures that it only starts after the configured user has
649 logged into the system.
650
651 Run periodically from cron
652 To run a periodic command, such as a copy/sync, you can set up a cron
653 job.
654
656 Rclone is a command line program to manage files on cloud storage. Af‐
657 ter download (https://rclone.org/downloads/) and install (/install),
658 continue here to learn how to use it: Initial configuration, what the
659 basic syntax looks like, describes the various subcommands, the various
660 options, and more.
661
662 Configure
663 First, you'll need to configure rclone. As the object storage systems
664 have quite complicated authentication these are kept in a config file.
665 (See the --config entry for how to find the config file and choose its
666 location.)
667
668 The easiest way to make the config is to run rclone with the config op‐
669 tion:
670
671 rclone config
672
673 See the following for detailed instructions for
674
675 • 1Fichier (https://rclone.org/fichier/)
676
677 • Alias (https://rclone.org/alias/)
678
679 • Amazon Drive (https://rclone.org/amazonclouddrive/)
680
681 • Amazon S3 (https://rclone.org/s3/)
682
683 • Backblaze B2 (https://rclone.org/b2/)
684
685 • Box (https://rclone.org/box/)
686
687 • Chunker (https://rclone.org/chunker/) - transparently splits large
688 files for other remotes
689
690 • Citrix ShareFile (https://rclone.org/sharefile/)
691
692 • Compress (https://rclone.org/compress/)
693
694 • Crypt (https://rclone.org/crypt/) - to encrypt other remotes
695
696 • DigitalOcean Spaces (https://rclone.org/s3/#digitalocean-spaces)
697
698 • Dropbox (https://rclone.org/dropbox/)
699
700 • Enterprise File Fabric (https://rclone.org/filefabric/)
701
702 • FTP (https://rclone.org/ftp/)
703
704 • Google Cloud Storage (https://rclone.org/googlecloudstorage/)
705
706 • Google Drive (https://rclone.org/drive/)
707
708 • Google Photos (https://rclone.org/googlephotos/)
709
710 • Hasher (https://rclone.org/hasher/) - to handle checksums for other
711 remotes
712
713 • HDFS (https://rclone.org/hdfs/)
714
715 • HTTP (https://rclone.org/http/)
716
717 • Hubic (https://rclone.org/hubic/)
718
719 • Jottacloud (https://rclone.org/jottacloud/)
720
721 • Koofr (https://rclone.org/koofr/)
722
723 • Mail.ru Cloud (https://rclone.org/mailru/)
724
725 • Mega (https://rclone.org/mega/)
726
727 • Memory (https://rclone.org/memory/)
728
729 • Microsoft Azure Blob Storage (https://rclone.org/azureblob/)
730
731 • Microsoft OneDrive (https://rclone.org/onedrive/)
732
733 • OpenStack Swift / Rackspace Cloudfiles / Memset Memstore
734 (https://rclone.org/swift/)
735
736 • OpenDrive (https://rclone.org/opendrive/)
737
738 • Pcloud (https://rclone.org/pcloud/)
739
740 • premiumize.me (https://rclone.org/premiumizeme/)
741
742 • put.io (https://rclone.org/putio/)
743
744 • QingStor (https://rclone.org/qingstor/)
745
746 • Seafile (https://rclone.org/seafile/)
747
748 • SFTP (https://rclone.org/sftp/)
749
750 • Sia (https://rclone.org/sia/)
751
752 • SugarSync (https://rclone.org/sugarsync/)
753
754 • Tardigrade (https://rclone.org/tardigrade/)
755
756 • Union (https://rclone.org/union/)
757
758 • Uptobox (https://rclone.org/uptobox/)
759
760 • WebDAV (https://rclone.org/webdav/)
761
762 • Yandex Disk (https://rclone.org/yandex/)
763
764 • Zoho WorkDrive (https://rclone.org/zoho/)
765
766 • The local filesystem (https://rclone.org/local/)
767
768 Basic syntax
769 Rclone syncs a directory tree from one storage system to another.
770
771 Its syntax is like this
772
773 Syntax: [options] subcommand <parameters> <parameters...>
774
775 Source and destination paths are specified by the name you gave the
776 storage system in the config file then the sub path, e.g. "drive:my‐
777 folder" to look at "myfolder" in Google drive.
778
779 You can define as many storage paths as you like in the config file.
780
781 Please use the -i / --interactive flag while learning rclone to avoid
782 accidental data loss.
783
784 Subcommands
785 rclone uses a system of subcommands. For example
786
787 rclone ls remote:path # lists a remote
788 rclone copy /local/path remote:path # copies /local/path to the remote
789 rclone sync -i /local/path remote:path # syncs /local/path to the remote
790
792 Enter an interactive configuration session.
793
794 Synopsis
795 Enter an interactive configuration session where you can setup new re‐
796 motes and manage existing ones. You may also set or remove a password
797 to protect your configuration.
798
799 rclone config [flags]
800
801 Options
802 -h, --help help for config
803
804 See the global flags page (https://rclone.org/flags/) for global op‐
805 tions not listed here.
806
807 SEE ALSO
808 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
809 commands, flags and backends.
810
811 • rclone config create (https://rclone.org/commands/rclone_config_cre‐
812 ate/) - Create a new remote with name, type and options.
813
814 • rclone config delete (https://rclone.org/commands/rclone_con‐
815 fig_delete/) - Delete an existing remote.
816
817 • rclone config disconnect (https://rclone.org/commands/rclone_con‐
818 fig_disconnect/) - Disconnects user from remote
819
820 • rclone config dump (https://rclone.org/commands/rclone_config_dump/)
821 - Dump the config file as JSON.
822
823 • rclone config file (https://rclone.org/commands/rclone_config_file/)
824 - Show path of configuration file in use.
825
826 • rclone config password (https://rclone.org/commands/rclone_con‐
827 fig_password/) - Update password in an existing remote.
828
829 • rclone config paths (https://rclone.org/commands/rclone_con‐
830 fig_paths/) - Show paths used for configuration, cache, temp etc.
831
832 • rclone config providers (https://rclone.org/commands/rclone_con‐
833 fig_providers/) - List in JSON format all the providers and options.
834
835 • rclone config reconnect (https://rclone.org/commands/rclone_con‐
836 fig_reconnect/) - Re-authenticates user with remote.
837
838 • rclone config show (https://rclone.org/commands/rclone_config_show/)
839 - Print (decrypted) config file, or the config for a single remote.
840
841 • rclone config touch (https://rclone.org/commands/rclone_con‐
842 fig_touch/) - Ensure configuration file exists.
843
844 • rclone config update (https://rclone.org/commands/rclone_config_up‐
845 date/) - Update options in an existing remote.
846
847 • rclone config userinfo (https://rclone.org/commands/rclone_con‐
848 fig_userinfo/) - Prints info about logged in user of remote.
849
851 Copy files from source to dest, skipping identical files.
852
853 Synopsis
854 Copy the source to the destination. Does not transfer files that are
855 identical on source and destination, testing by size and modification
856 time or MD5SUM. Doesn't delete files from the destination.
857
858 Note that it is always the contents of the directory that is synced,
859 not the directory so when source:path is a directory, it's the contents
860 of source:path that are copied, not the directory name and contents.
861
862 If dest:path doesn't exist, it is created and the source:path contents
863 go there.
864
865 For example
866
867 rclone copy source:sourcepath dest:destpath
868
869 Let's say there are two files in sourcepath
870
871 sourcepath/one.txt
872 sourcepath/two.txt
873
874 This copies them to
875
876 destpath/one.txt
877 destpath/two.txt
878
879 Not to
880
881 destpath/sourcepath/one.txt
882 destpath/sourcepath/two.txt
883
884 If you are familiar with rsync, rclone always works as if you had writ‐
885 ten a trailing / - meaning "copy the contents of this directory". This
886 applies to all commands and whether you are talking about the source or
887 destination.
888
889 See the --no-traverse (https://rclone.org/docs/#no-traverse) option for
890 controlling whether rclone lists the destination directory or not.
891 Supplying this option when copying a small number of files into a large
892 destination can speed transfers up greatly.
893
894 For example, if you have many files in /path/to/src but only a few of
895 them change every day, you can copy all the files which have changed
896 recently very efficiently like this:
897
898 rclone copy --max-age 24h --no-traverse /path/to/src remote:
899
900 Note: Use the -P/--progress flag to view real-time transfer statistics.
901
902 Note: Use the --dry-run or the --interactive/-i flag to test without
903 copying anything.
904
905 rclone copy source:path dest:path [flags]
906
907 Options
908 --create-empty-src-dirs Create empty source dirs on destination after copy
909 -h, --help help for copy
910
911 See the global flags page (https://rclone.org/flags/) for global op‐
912 tions not listed here.
913
914 SEE ALSO
915 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
916 commands, flags and backends.
917
919 Make source and dest identical, modifying destination only.
920
921 Synopsis
922 Sync the source to the destination, changing the destination only.
923 Doesn't transfer files that are identical on source and destination,
924 testing by size and modification time or MD5SUM. Destination is updat‐
925 ed to match source, including deleting files if necessary (except du‐
926 plicate objects, see below).
927
928 Important: Since this can cause data loss, test first with the
929 --dry-run or the --interactive/-i flag.
930
931 rclone sync -i SOURCE remote:DESTINATION
932
933 Note that files in the destination won't be deleted if there were any
934 errors at any point. Duplicate objects (files with the same name, on
935 those providers that support it) are also not yet handled.
936
937 It is always the contents of the directory that is synced, not the di‐
938 rectory so when source:path is a directory, it's the contents of
939 source:path that are copied, not the directory name and contents. See
940 extended explanation in the copy command above if unsure.
941
942 If dest:path doesn't exist, it is created and the source:path contents
943 go there.
944
945 Note: Use the -P/--progress flag to view real-time transfer statistics
946
947 Note: Use the rclone dedupe command to deal with "Duplicate object/di‐
948 rectory found in source/destination - ignoring" errors. See this forum
949 post (https://forum.rclone.org/t/sync-not-clearing-duplicates/14372)
950 for more info.
951
952 rclone sync source:path dest:path [flags]
953
954 Options
955 --create-empty-src-dirs Create empty source dirs on destination after sync
956 -h, --help help for sync
957
958 See the global flags page (https://rclone.org/flags/) for global op‐
959 tions not listed here.
960
961 SEE ALSO
962 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
963 commands, flags and backends.
964
966 Move files from source to dest.
967
968 Synopsis
969 Moves the contents of the source directory to the destination directo‐
970 ry. Rclone will error if the source and destination overlap and the
971 remote does not support a server-side directory move operation.
972
973 If no filters are in use and if possible this will server-side move
974 source:path into dest:path. After this source:path will no longer ex‐
975 ist.
976
977 Otherwise for each file in source:path selected by the filters (if any)
978 this will move it into dest:path. If possible a server-side move will
979 be used, otherwise it will copy it (server-side if possible) into
980 dest:path then delete the original (if no errors on copy) in
981 source:path.
982
983 If you want to delete empty source directories after move, use the
984 --delete-empty-src-dirs flag.
985
986 See the --no-traverse (https://rclone.org/docs/#no-traverse) option for
987 controlling whether rclone lists the destination directory or not.
988 Supplying this option when moving a small number of files into a large
989 destination can speed transfers up greatly.
990
991 Important: Since this can cause data loss, test first with the
992 --dry-run or the --interactive/-i flag.
993
994 Note: Use the -P/--progress flag to view real-time transfer statistics.
995
996 rclone move source:path dest:path [flags]
997
998 Options
999 --create-empty-src-dirs Create empty source dirs on destination after move
1000 --delete-empty-src-dirs Delete empty source dirs after move
1001 -h, --help help for move
1002
1003 See the global flags page (https://rclone.org/flags/) for global op‐
1004 tions not listed here.
1005
1006 SEE ALSO
1007 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1008 commands, flags and backends.
1009
1011 Remove the files in path.
1012
1013 Synopsis
1014 Remove the files in path. Unlike purge it obeys include/exclude fil‐
1015 ters so can be used to selectively delete files.
1016
1017 rclone delete only deletes files but leaves the directory structure
1018 alone. If you want to delete a directory and all of its contents use
1019 the purge command.
1020
1021 If you supply the --rmdirs flag, it will remove all empty directories
1022 along with it. You can also use the separate command rmdir or rmdirs
1023 to delete empty directories only.
1024
1025 For example, to delete all files bigger than 100 MiB, you may first
1026 want to check what would be deleted (use either):
1027
1028 rclone --min-size 100M lsl remote:path
1029 rclone --dry-run --min-size 100M delete remote:path
1030
1031 Then proceed with the actual delete:
1032
1033 rclone --min-size 100M delete remote:path
1034
1035 That reads "delete everything with a minimum size of 100 MiB", hence
1036 delete all files bigger than 100 MiB.
1037
1038 Important: Since this can cause data loss, test first with the
1039 --dry-run or the --interactive/-i flag.
1040
1041 rclone delete remote:path [flags]
1042
1043 Options
1044 -h, --help help for delete
1045 --rmdirs rmdirs removes empty directories but leaves root intact
1046
1047 See the global flags page (https://rclone.org/flags/) for global op‐
1048 tions not listed here.
1049
1050 SEE ALSO
1051 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1052 commands, flags and backends.
1053
1055 Remove the path and all of its contents.
1056
1057 Synopsis
1058 Remove the path and all of its contents. Note that this does not obey
1059 include/exclude filters - everything will be removed. Use the delete
1060 command if you want to selectively delete files. To delete empty di‐
1061 rectories only, use command rmdir or rmdirs.
1062
1063 Important: Since this can cause data loss, test first with the
1064 --dry-run or the --interactive/-i flag.
1065
1066 rclone purge remote:path [flags]
1067
1068 Options
1069 -h, --help help for purge
1070
1071 See the global flags page (https://rclone.org/flags/) for global op‐
1072 tions not listed here.
1073
1074 SEE ALSO
1075 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1076 commands, flags and backends.
1077
1079 Make the path if it doesn't already exist.
1080
1081 rclone mkdir remote:path [flags]
1082
1083 Options
1084 -h, --help help for mkdir
1085
1086 See the global flags page (https://rclone.org/flags/) for global op‐
1087 tions not listed here.
1088
1089 SEE ALSO
1090 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1091 commands, flags and backends.
1092
1094 Remove the empty directory at path.
1095
1096 Synopsis
1097 This removes empty directory given by path. Will not remove the path
1098 if it has any objects in it, not even empty subdirectories. Use com‐
1099 mand rmdirs (or delete with option --rmdirs) to do that.
1100
1101 To delete a path and any objects in it, use purge command.
1102
1103 rclone rmdir remote:path [flags]
1104
1105 Options
1106 -h, --help help for rmdir
1107
1108 See the global flags page (https://rclone.org/flags/) for global op‐
1109 tions not listed here.
1110
1111 SEE ALSO
1112 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1113 commands, flags and backends.
1114
1116 Checks the files in the source and destination match.
1117
1118 Synopsis
1119 Checks the files in the source and destination match. It compares
1120 sizes and hashes (MD5 or SHA1) and logs a report of files which don't
1121 match. It doesn't alter the source or destination.
1122
1123 If you supply the --size-only flag, it will only compare the sizes not
1124 the hashes as well. Use this for a quick check.
1125
1126 If you supply the --download flag, it will download the data from both
1127 remotes and check them against each other on the fly. This can be use‐
1128 ful for remotes that don't support hashes or if you really want to
1129 check all the data.
1130
1131 If you supply the --checkfile HASH flag with a valid hash name, the
1132 source:path must point to a text file in the SUM format.
1133
1134 If you supply the --one-way flag, it will only check that files in the
1135 source match the files in the destination, not the other way around.
1136 This means that extra files in the destination that are not in the
1137 source will not be detected.
1138
1139 The --differ, --missing-on-dst, --missing-on-src, --match and --error
1140 flags write paths, one per line, to the file name (or stdout if it is
1141 -) supplied. What they write is described in the help below. For ex‐
1142 ample --differ will write all paths which are present on both the
1143 source and destination but different.
1144
1145 The --combined flag will write a file (or stdout) which contains all
1146 file paths with a symbol and then a space and then the path to tell you
1147 what happened to it. These are reminiscent of diff files.
1148
1149 • = path means path was found in source and destination and was identi‐
1150 cal
1151
1152 • - path means path was missing on the source, so only in the destina‐
1153 tion
1154
1155 • + path means path was missing on the destination, so only in the
1156 source
1157
1158 • * path means path was present in source and destination but differ‐
1159 ent.
1160
1161 • ! path means there was an error reading or hashing the source or
1162 dest.
1163
1164 rclone check source:path dest:path [flags]
1165
1166 Options
1167 -C, --checkfile string Treat source:path as a SUM file with hashes of given type
1168 --combined string Make a combined report of changes to this file
1169 --differ string Report all non-matching files to this file
1170 --download Check by downloading rather than with hash
1171 --error string Report all files with errors (hashing or reading) to this file
1172 -h, --help help for check
1173 --match string Report all matching files to this file
1174 --missing-on-dst string Report all files missing from the destination to this file
1175 --missing-on-src string Report all files missing from the source to this file
1176 --one-way Check one way only, source files must exist on remote
1177
1178 See the global flags page (https://rclone.org/flags/) for global op‐
1179 tions not listed here.
1180
1181 SEE ALSO
1182 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1183 commands, flags and backends.
1184
1186 List the objects in the path with size and path.
1187
1188 Synopsis
1189 Lists the objects in the source path to standard output in a human
1190 readable format with size and path. Recurses by default.
1191
1192 Eg
1193
1194 $ rclone ls swift:bucket
1195 60295 bevajer5jef
1196 90613 canole
1197 94467 diwogej7
1198 37600 fubuwic
1199
1200 Any of the filtering options can be applied to this command.
1201
1202 There are several related list commands
1203
1204 • ls to list size and path of objects only
1205
1206 • lsl to list modification time, size and path of objects only
1207
1208 • lsd to list directories only
1209
1210 • lsf to list objects and directories in easy to parse format
1211
1212 • lsjson to list objects and directories in JSON format
1213
1214 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1215 human and machine readable. lsjson is designed to be machine readable.
1216
1217 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1218 recursion.
1219
1220 The other list commands lsd,lsf,lsjson do not recurse by default - use
1221 -R to make them recurse.
1222
1223 Listing a non existent directory will produce an error except for re‐
1224 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1225 bucket based remotes).
1226
1227 rclone ls remote:path [flags]
1228
1229 Options
1230 -h, --help help for ls
1231
1232 See the global flags page (https://rclone.org/flags/) for global op‐
1233 tions not listed here.
1234
1235 SEE ALSO
1236 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1237 commands, flags and backends.
1238
1240 List all directories/containers/buckets in the path.
1241
1242 Synopsis
1243 Lists the directories in the source path to standard output. Does not
1244 recurse by default. Use the -R flag to recurse.
1245
1246 This command lists the total size of the directory (if known, -1 if
1247 not), the modification time (if known, the current time if not), the
1248 number of objects in the directory (if known, -1 if not) and the name
1249 of the directory, Eg
1250
1251 $ rclone lsd swift:
1252 494000 2018-04-26 08:43:20 10000 10000files
1253 65 2018-04-26 08:43:20 1 1File
1254
1255 Or
1256
1257 $ rclone lsd drive:test
1258 -1 2016-10-17 17:41:53 -1 1000files
1259 -1 2017-01-03 14:40:54 -1 2500files
1260 -1 2017-07-08 14:39:28 -1 4000files
1261
1262 If you just want the directory names use "rclone lsf --dirs-only".
1263
1264 Any of the filtering options can be applied to this command.
1265
1266 There are several related list commands
1267
1268 • ls to list size and path of objects only
1269
1270 • lsl to list modification time, size and path of objects only
1271
1272 • lsd to list directories only
1273
1274 • lsf to list objects and directories in easy to parse format
1275
1276 • lsjson to list objects and directories in JSON format
1277
1278 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1279 human and machine readable. lsjson is designed to be machine readable.
1280
1281 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1282 recursion.
1283
1284 The other list commands lsd,lsf,lsjson do not recurse by default - use
1285 -R to make them recurse.
1286
1287 Listing a non existent directory will produce an error except for re‐
1288 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1289 bucket based remotes).
1290
1291 rclone lsd remote:path [flags]
1292
1293 Options
1294 -h, --help help for lsd
1295 -R, --recursive Recurse into the listing
1296
1297 See the global flags page (https://rclone.org/flags/) for global op‐
1298 tions not listed here.
1299
1300 SEE ALSO
1301 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1302 commands, flags and backends.
1303
1305 List the objects in path with modification time, size and path.
1306
1307 Synopsis
1308 Lists the objects in the source path to standard output in a human
1309 readable format with modification time, size and path. Recurses by de‐
1310 fault.
1311
1312 Eg
1313
1314 $ rclone lsl swift:bucket
1315 60295 2016-06-25 18:55:41.062626927 bevajer5jef
1316 90613 2016-06-25 18:55:43.302607074 canole
1317 94467 2016-06-25 18:55:43.046609333 diwogej7
1318 37600 2016-06-25 18:55:40.814629136 fubuwic
1319
1320 Any of the filtering options can be applied to this command.
1321
1322 There are several related list commands
1323
1324 • ls to list size and path of objects only
1325
1326 • lsl to list modification time, size and path of objects only
1327
1328 • lsd to list directories only
1329
1330 • lsf to list objects and directories in easy to parse format
1331
1332 • lsjson to list objects and directories in JSON format
1333
1334 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1335 human and machine readable. lsjson is designed to be machine readable.
1336
1337 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1338 recursion.
1339
1340 The other list commands lsd,lsf,lsjson do not recurse by default - use
1341 -R to make them recurse.
1342
1343 Listing a non existent directory will produce an error except for re‐
1344 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1345 bucket based remotes).
1346
1347 rclone lsl remote:path [flags]
1348
1349 Options
1350 -h, --help help for lsl
1351
1352 See the global flags page (https://rclone.org/flags/) for global op‐
1353 tions not listed here.
1354
1355 SEE ALSO
1356 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1357 commands, flags and backends.
1358
1360 Produces an md5sum file for all the objects in the path.
1361
1362 Synopsis
1363 Produces an md5sum file for all the objects in the path. This is in
1364 the same format as the standard md5sum tool produces.
1365
1366 By default, the hash is requested from the remote. If MD5 is not sup‐
1367 ported by the remote, no hash will be returned. With the download
1368 flag, the file will be downloaded from the remote and hashed locally
1369 enabling MD5 for any remote.
1370
1371 rclone md5sum remote:path [flags]
1372
1373 Options
1374 --base64 Output base64 encoded hashsum
1375 -C, --checkfile string Validate hashes against a given SUM file instead of printing them
1376 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
1377 -h, --help help for md5sum
1378 --output-file string Output hashsums to a file rather than the terminal
1379
1380 See the global flags page (https://rclone.org/flags/) for global op‐
1381 tions not listed here.
1382
1383 SEE ALSO
1384 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1385 commands, flags and backends.
1386
1388 Produces an sha1sum file for all the objects in the path.
1389
1390 Synopsis
1391 Produces an sha1sum file for all the objects in the path. This is in
1392 the same format as the standard sha1sum tool produces.
1393
1394 By default, the hash is requested from the remote. If SHA-1 is not
1395 supported by the remote, no hash will be returned. With the download
1396 flag, the file will be downloaded from the remote and hashed locally
1397 enabling SHA-1 for any remote.
1398
1399 rclone sha1sum remote:path [flags]
1400
1401 Options
1402 --base64 Output base64 encoded hashsum
1403 -C, --checkfile string Validate hashes against a given SUM file instead of printing them
1404 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
1405 -h, --help help for sha1sum
1406 --output-file string Output hashsums to a file rather than the terminal
1407
1408 See the global flags page (https://rclone.org/flags/) for global op‐
1409 tions not listed here.
1410
1411 SEE ALSO
1412 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1413 commands, flags and backends.
1414
1416 Prints the total size and number of objects in remote:path.
1417
1418 rclone size remote:path [flags]
1419
1420 Options
1421 -h, --help help for size
1422 --json Format output as JSON
1423
1424 See the global flags page (https://rclone.org/flags/) for global op‐
1425 tions not listed here.
1426
1427 SEE ALSO
1428 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1429 commands, flags and backends.
1430
1432 Show the version number.
1433
1434 Synopsis
1435 Show the rclone version number, the go version, the build target OS and
1436 architecture, the runtime OS and kernel version and bitness, build tags
1437 and the type of executable (static or dynamic).
1438
1439 For example:
1440
1441 $ rclone version
1442 rclone v1.55.0
1443 - os/version: ubuntu 18.04 (64 bit)
1444 - os/kernel: 4.15.0-136-generic (x86_64)
1445 - os/type: linux
1446 - os/arch: amd64
1447 - go/version: go1.16
1448 - go/linking: static
1449 - go/tags: none
1450
1451 Note: before rclone version 1.55 the os/type and os/arch lines were
1452 merged, and the "go/version" line was tagged as "go version".
1453
1454 If you supply the --check flag, then it will do an online check to com‐
1455 pare your version with the latest release and the latest beta.
1456
1457 $ rclone version --check
1458 yours: 1.42.0.6
1459 latest: 1.42 (released 2018-06-16)
1460 beta: 1.42.0.5 (released 2018-06-17)
1461
1462 Or
1463
1464 $ rclone version --check
1465 yours: 1.41
1466 latest: 1.42 (released 2018-06-16)
1467 upgrade: https://downloads.rclone.org/v1.42
1468 beta: 1.42.0.5 (released 2018-06-17)
1469 upgrade: https://beta.rclone.org/v1.42-005-g56e1e820
1470
1471 rclone version [flags]
1472
1473 Options
1474 --check Check for new version
1475 -h, --help help for version
1476
1477 See the global flags page (https://rclone.org/flags/) for global op‐
1478 tions not listed here.
1479
1480 SEE ALSO
1481 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1482 commands, flags and backends.
1483
1485 Clean up the remote if possible.
1486
1487 Synopsis
1488 Clean up the remote if possible. Empty the trash or delete old file
1489 versions. Not supported by all remotes.
1490
1491 rclone cleanup remote:path [flags]
1492
1493 Options
1494 -h, --help help for cleanup
1495
1496 See the global flags page (https://rclone.org/flags/) for global op‐
1497 tions not listed here.
1498
1499 SEE ALSO
1500 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1501 commands, flags and backends.
1502
1504 Interactively find duplicate filenames and delete/rename them.
1505
1506 Synopsis
1507 By default dedupe interactively finds files with duplicate names and
1508 offers to delete all but one or rename them to be different. This is
1509 known as deduping by name.
1510
1511 Deduping by name is only useful with a small group of backends (e.g.
1512 Google Drive, Opendrive) that can have duplicate file names. It can be
1513 run on wrapping backends (e.g. crypt) if they wrap a backend which
1514 supports duplicate file names.
1515
1516 However if --by-hash is passed in then dedupe will find files with du‐
1517 plicate hashes instead which will work on any backend which supports at
1518 least one hash. This can be used to find files with duplicate content.
1519 This is known as deduping by hash.
1520
1521 If deduping by name, first rclone will merge directories with the same
1522 name. It will do this iteratively until all the identically named di‐
1523 rectories have been merged.
1524
1525 Next, if deduping by name, for every group of duplicate file names /
1526 hashes, it will delete all but one identical files it finds without
1527 confirmation. This means that for most duplicated files the dedupe
1528 command will not be interactive.
1529
1530 dedupe considers files to be identical if they have the same file path
1531 and the same hash. If the backend does not support hashes (e.g. crypt
1532 wrapping Google Drive) then they will never be found to be identical.
1533 If you use the --size-only flag then files will be considered identical
1534 if they have the same size (any hash will be ignored). This can be
1535 useful on crypt backends which do not support hashes.
1536
1537 Next rclone will resolve the remaining duplicates. Exactly which ac‐
1538 tion is taken depends on the dedupe mode. By default rclone will in‐
1539 teractively query the user for each one.
1540
1541 Important: Since this can cause data loss, test first with the
1542 --dry-run or the --interactive/-i flag.
1543
1544 Here is an example run.
1545
1546 Before - with duplicates
1547
1548 $ rclone lsl drive:dupes
1549 6048320 2016-03-05 16:23:16.798000000 one.txt
1550 6048320 2016-03-05 16:23:11.775000000 one.txt
1551 564374 2016-03-05 16:23:06.731000000 one.txt
1552 6048320 2016-03-05 16:18:26.092000000 one.txt
1553 6048320 2016-03-05 16:22:46.185000000 two.txt
1554 1744073 2016-03-05 16:22:38.104000000 two.txt
1555 564374 2016-03-05 16:22:52.118000000 two.txt
1556
1557 Now the dedupe session
1558
1559 $ rclone dedupe drive:dupes
1560 2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode.
1561 one.txt: Found 4 files with duplicate names
1562 one.txt: Deleting 2/3 identical duplicates (MD5 "1eedaa9fe86fd4b8632e2ac549403b36")
1563 one.txt: 2 duplicates remain
1564 1: 6048320 bytes, 2016-03-05 16:23:16.798000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
1565 2: 564374 bytes, 2016-03-05 16:23:06.731000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
1566 s) Skip and do nothing
1567 k) Keep just one (choose which in next step)
1568 r) Rename all to be different (by changing file.jpg to file-1.jpg)
1569 s/k/r> k
1570 Enter the number of the file to keep> 1
1571 one.txt: Deleted 1 extra copies
1572 two.txt: Found 3 files with duplicate names
1573 two.txt: 3 duplicates remain
1574 1: 564374 bytes, 2016-03-05 16:22:52.118000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
1575 2: 6048320 bytes, 2016-03-05 16:22:46.185000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
1576 3: 1744073 bytes, 2016-03-05 16:22:38.104000000, MD5 851957f7fb6f0bc4ce76be966d336802
1577 s) Skip and do nothing
1578 k) Keep just one (choose which in next step)
1579 r) Rename all to be different (by changing file.jpg to file-1.jpg)
1580 s/k/r> r
1581 two-1.txt: renamed from: two.txt
1582 two-2.txt: renamed from: two.txt
1583 two-3.txt: renamed from: two.txt
1584
1585 The result being
1586
1587 $ rclone lsl drive:dupes
1588 6048320 2016-03-05 16:23:16.798000000 one.txt
1589 564374 2016-03-05 16:22:52.118000000 two-1.txt
1590 6048320 2016-03-05 16:22:46.185000000 two-2.txt
1591 1744073 2016-03-05 16:22:38.104000000 two-3.txt
1592
1593 Dedupe can be run non interactively using the --dedupe-mode flag or by
1594 using an extra parameter with the same value
1595
1596 • --dedupe-mode interactive - interactive as above.
1597
1598 • --dedupe-mode skip - removes identical files then skips anything
1599 left.
1600
1601 • --dedupe-mode first - removes identical files then keeps the first
1602 one.
1603
1604 • --dedupe-mode newest - removes identical files then keeps the newest
1605 one.
1606
1607 • --dedupe-mode oldest - removes identical files then keeps the oldest
1608 one.
1609
1610 • --dedupe-mode largest - removes identical files then keeps the
1611 largest one.
1612
1613 • --dedupe-mode smallest - removes identical files then keeps the
1614 smallest one.
1615
1616 • --dedupe-mode rename - removes identical files then renames the rest
1617 to be different.
1618
1619 • --dedupe-mode list - lists duplicate dirs and files only and changes
1620 nothing.
1621
1622 For example to rename all the identically named photos in your Google
1623 Photos directory, do
1624
1625 rclone dedupe --dedupe-mode rename "drive:Google Photos"
1626
1627 Or
1628
1629 rclone dedupe rename "drive:Google Photos"
1630
1631 rclone dedupe [mode] remote:path [flags]
1632
1633 Options
1634 --by-hash Find indentical hashes rather than names
1635 --dedupe-mode string Dedupe mode interactive|skip|first|newest|oldest|largest|smallest|rename (default "interactive")
1636 -h, --help help for dedupe
1637
1638 See the global flags page (https://rclone.org/flags/) for global op‐
1639 tions not listed here.
1640
1641 SEE ALSO
1642 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1643 commands, flags and backends.
1644
1646 Get quota information from the remote.
1647
1648 Synopsis
1649 rclone about prints quota information about a remote to standard out‐
1650 put. The output is typically used, free, quota and trash contents.
1651
1652 E.g. Typical output from rclone about remote: is:
1653
1654 Total: 17 GiB
1655 Used: 7.444 GiB
1656 Free: 1.315 GiB
1657 Trashed: 100.000 MiB
1658 Other: 8.241 GiB
1659
1660 Where the fields are:
1661
1662 • Total: Total size available.
1663
1664 • Used: Total size used.
1665
1666 • Free: Total space available to this user.
1667
1668 • Trashed: Total space used by trash.
1669
1670 • Other: Total amount in other storage (e.g. Gmail, Google Photos).
1671
1672 • Objects: Total number of objects in the storage.
1673
1674 All sizes are in number of bytes.
1675
1676 Applying a --full flag to the command prints the bytes in full, e.g.
1677
1678 Total: 18253611008
1679 Used: 7993453766
1680 Free: 1411001220
1681 Trashed: 104857602
1682 Other: 8849156022
1683
1684 A --json flag generates conveniently computer readable output, e.g.
1685
1686 {
1687 "total": 18253611008,
1688 "used": 7993453766,
1689 "trashed": 104857602,
1690 "other": 8849156022,
1691 "free": 1411001220
1692 }
1693
1694 Not all backends print all fields. Information is not included if it
1695 is not provided by a backend. Where the value is unlimited it is omit‐
1696 ted.
1697
1698 Some backends does not support the rclone about command at all, see
1699 complete list in documentation (https://rclone.org/overview/#optional-
1700 features).
1701
1702 rclone about remote: [flags]
1703
1704 Options
1705 --full Full numbers instead of human-readable
1706 -h, --help help for about
1707 --json Format output as JSON
1708
1709 See the global flags page (https://rclone.org/flags/) for global op‐
1710 tions not listed here.
1711
1712 SEE ALSO
1713 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1714 commands, flags and backends.
1715
1717 Remote authorization.
1718
1719 Synopsis
1720 Remote authorization. Used to authorize a remote or headless rclone
1721 from a machine with a browser - use as instructed by rclone config.
1722
1723 Use the --auth-no-open-browser to prevent rclone to open auth link in
1724 default browser automatically.
1725
1726 rclone authorize [flags]
1727
1728 Options
1729 --auth-no-open-browser Do not automatically open auth link in default browser
1730 -h, --help help for authorize
1731
1732 See the global flags page (https://rclone.org/flags/) for global op‐
1733 tions not listed here.
1734
1735 SEE ALSO
1736 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1737 commands, flags and backends.
1738
1740 Run a backend specific command.
1741
1742 Synopsis
1743 This runs a backend specific command. The commands themselves (except
1744 for "help" and "features") are defined by the backends and you should
1745 see the backend docs for definitions.
1746
1747 You can discover what commands a backend implements by using
1748
1749 rclone backend help remote:
1750 rclone backend help <backendname>
1751
1752 You can also discover information about the backend using (see opera‐
1753 tions/fsinfo (https://rclone.org/rc/#operations/fsinfo) in the remote
1754 control docs for more info).
1755
1756 rclone backend features remote:
1757
1758 Pass options to the backend command with -o. This should be key=value
1759 or key, e.g.:
1760
1761 rclone backend stats remote:path stats -o format=json -o long
1762
1763 Pass arguments to the backend by placing them on the end of the line
1764
1765 rclone backend cleanup remote:path file1 file2 file3
1766
1767 Note to run these commands on a running backend then see backend/com‐
1768 mand (https://rclone.org/rc/#backend/command) in the rc docs.
1769
1770 rclone backend <command> remote:path [opts] <args> [flags]
1771
1772 Options
1773 -h, --help help for backend
1774 --json Always output in JSON format
1775 -o, --option stringArray Option in the form name=value or name
1776
1777 See the global flags page (https://rclone.org/flags/) for global op‐
1778 tions not listed here.
1779
1780 SEE ALSO
1781 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1782 commands, flags and backends.
1783
1785 Concatenates any files and sends them to stdout.
1786
1787 Synopsis
1788 rclone cat sends any files to standard output.
1789
1790 You can use it like this to output a single file
1791
1792 rclone cat remote:path/to/file
1793
1794 Or like this to output any file in dir or its subdirectories.
1795
1796 rclone cat remote:path/to/dir
1797
1798 Or like this to output any .txt files in dir or its subdirectories.
1799
1800 rclone --include "*.txt" cat remote:path/to/dir
1801
1802 Use the --head flag to print characters only at the start, --tail for
1803 the end and --offset and --count to print a section in the middle.
1804 Note that if offset is negative it will count from the end, so --offset
1805 -1 --count 1 is equivalent to --tail 1.
1806
1807 rclone cat remote:path [flags]
1808
1809 Options
1810 --count int Only print N characters (default -1)
1811 --discard Discard the output instead of printing
1812 --head int Only print the first N characters
1813 -h, --help help for cat
1814 --offset int Start printing at offset N (or from end if -ve)
1815 --tail int Only print the last N characters
1816
1817 See the global flags page (https://rclone.org/flags/) for global op‐
1818 tions not listed here.
1819
1820 SEE ALSO
1821 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1822 commands, flags and backends.
1823
1825 Checks the files in the source against a SUM file.
1826
1827 Synopsis
1828 Checks that hashsums of source files match the SUM file. It compares
1829 hashes (MD5, SHA1, etc) and logs a report of files which don't match.
1830 It doesn't alter the file system.
1831
1832 If you supply the --download flag, it will download the data from re‐
1833 mote and calculate the contents hash on the fly. This can be useful
1834 for remotes that don't support hashes or if you really want to check
1835 all the data.
1836
1837 Note that hash values in the SUM file are treated as case insensitive.
1838
1839 If you supply the --one-way flag, it will only check that files in the
1840 source match the files in the destination, not the other way around.
1841 This means that extra files in the destination that are not in the
1842 source will not be detected.
1843
1844 The --differ, --missing-on-dst, --missing-on-src, --match and --error
1845 flags write paths, one per line, to the file name (or stdout if it is
1846 -) supplied. What they write is described in the help below. For ex‐
1847 ample --differ will write all paths which are present on both the
1848 source and destination but different.
1849
1850 The --combined flag will write a file (or stdout) which contains all
1851 file paths with a symbol and then a space and then the path to tell you
1852 what happened to it. These are reminiscent of diff files.
1853
1854 • = path means path was found in source and destination and was identi‐
1855 cal
1856
1857 • - path means path was missing on the source, so only in the destina‐
1858 tion
1859
1860 • + path means path was missing on the destination, so only in the
1861 source
1862
1863 • * path means path was present in source and destination but differ‐
1864 ent.
1865
1866 • ! path means there was an error reading or hashing the source or
1867 dest.
1868
1869 rclone checksum <hash> sumfile src:path [flags]
1870
1871 Options
1872 --combined string Make a combined report of changes to this file
1873 --differ string Report all non-matching files to this file
1874 --download Check by hashing the contents
1875 --error string Report all files with errors (hashing or reading) to this file
1876 -h, --help help for checksum
1877 --match string Report all matching files to this file
1878 --missing-on-dst string Report all files missing from the destination to this file
1879 --missing-on-src string Report all files missing from the source to this file
1880 --one-way Check one way only, source files must exist on remote
1881
1882 See the global flags page (https://rclone.org/flags/) for global op‐
1883 tions not listed here.
1884
1885 SEE ALSO
1886 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1887 commands, flags and backends.
1888
1890 generate the autocompletion script for the specified shell
1891
1892 Synopsis
1893 Generate the autocompletion script for rclone for the specified shell.
1894 See each sub-command's help for details on how to use the generated
1895 script.
1896
1897 Options
1898 -h, --help help for completion
1899
1900 See the global flags page (https://rclone.org/flags/) for global op‐
1901 tions not listed here.
1902
1903 SEE ALSO
1904 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1905 commands, flags and backends.
1906
1907 • rclone completion bash (https://rclone.org/commands/rclone_comple‐
1908 tion_bash/) - generate the autocompletion script for bash
1909
1910 • rclone completion fish (https://rclone.org/commands/rclone_comple‐
1911 tion_fish/) - generate the autocompletion script for fish
1912
1913 • rclone completion powershell (https://rclone.org/commands/rclone_com‐
1914 pletion_powershell/) - generate the autocompletion script for power‐
1915 shell
1916
1917 • rclone completion zsh (https://rclone.org/commands/rclone_comple‐
1918 tion_zsh/) - generate the autocompletion script for zsh
1919
1921 generate the autocompletion script for bash
1922
1923 Synopsis
1924 Generate the autocompletion script for the bash shell.
1925
1926 This script depends on the 'bash-completion' package. If it is not in‐
1927 stalled already, you can install it via your OS's package manager.
1928
1929 To load completions in your current shell session: $ source <(rclone
1930 completion bash)
1931
1932 To load completions for every new session, execute once: Linux: $
1933 rclone completion bash > /etc/bash_completion.d/rclone MacOS: $ rclone
1934 completion bash > /usr/local/etc/bash_completion.d/rclone
1935
1936 You will need to start a new shell for this setup to take effect.
1937
1938 rclone completion bash
1939
1940 Options
1941 -h, --help help for bash
1942 --no-descriptions disable completion descriptions
1943
1944 See the global flags page (https://rclone.org/flags/) for global op‐
1945 tions not listed here.
1946
1947 SEE ALSO
1948 • rclone completion (https://rclone.org/commands/rclone_completion/) -
1949 generate the autocompletion script for the specified shell
1950
1952 generate the autocompletion script for fish
1953
1954 Synopsis
1955 Generate the autocompletion script for the fish shell.
1956
1957 To load completions in your current shell session: $ rclone completion
1958 fish | source
1959
1960 To load completions for every new session, execute once: $ rclone com‐
1961 pletion fish > ~/.config/fish/completions/rclone.fish
1962
1963 You will need to start a new shell for this setup to take effect.
1964
1965 rclone completion fish [flags]
1966
1967 Options
1968 -h, --help help for fish
1969 --no-descriptions disable completion descriptions
1970
1971 See the global flags page (https://rclone.org/flags/) for global op‐
1972 tions not listed here.
1973
1974 SEE ALSO
1975 • rclone completion (https://rclone.org/commands/rclone_completion/) -
1976 generate the autocompletion script for the specified shell
1977
1979 generate the autocompletion script for powershell
1980
1981 Synopsis
1982 Generate the autocompletion script for powershell.
1983
1984 To load completions in your current shell session: PS C:> rclone com‐
1985 pletion powershell | Out-String | Invoke-Expression
1986
1987 To load completions for every new session, add the output of the above
1988 command to your powershell profile.
1989
1990 rclone completion powershell [flags]
1991
1992 Options
1993 -h, --help help for powershell
1994 --no-descriptions disable completion descriptions
1995
1996 See the global flags page (https://rclone.org/flags/) for global op‐
1997 tions not listed here.
1998
1999 SEE ALSO
2000 • rclone completion (https://rclone.org/commands/rclone_completion/) -
2001 generate the autocompletion script for the specified shell
2002
2004 generate the autocompletion script for zsh
2005
2006 Synopsis
2007 Generate the autocompletion script for the zsh shell.
2008
2009 If shell completion is not already enabled in your environment you will
2010 need to enable it. You can execute the following once:
2011
2012 $ echo "autoload -U compinit; compinit" >> ~/.zshrc
2013
2014 To load completions for every new session, execute once: # Linux: $
2015 rclone completion zsh > "${fpath[1]}/_rclone" # macOS: $ rclone comple‐
2016 tion zsh > /usr/local/share/zsh/site-functions/_rclone
2017
2018 You will need to start a new shell for this setup to take effect.
2019
2020 rclone completion zsh [flags]
2021
2022 Options
2023 -h, --help help for zsh
2024 --no-descriptions disable completion descriptions
2025
2026 See the global flags page (https://rclone.org/flags/) for global op‐
2027 tions not listed here.
2028
2029 SEE ALSO
2030 • rclone completion (https://rclone.org/commands/rclone_completion/) -
2031 generate the autocompletion script for the specified shell
2032
2034 Create a new remote with name, type and options.
2035
2036 Synopsis
2037 Create a new remote of name with type and options. The options should
2038 be passed in pairs of key value or as key=value.
2039
2040 For example to make a swift remote of name myremote using auto config
2041 you would do:
2042
2043 rclone config create myremote swift env_auth true
2044 rclone config create myremote swift env_auth=true
2045
2046 So for example if you wanted to configure a Google Drive remote but us‐
2047 ing remote authorization you would do this:
2048
2049 rclone config create mydrive drive config_is_local=false
2050
2051 Note that if the config process would normally ask a question the de‐
2052 fault is taken (unless --non-interactive is used). Each time that hap‐
2053 pens rclone will print or DEBUG a message saying how to affect the val‐
2054 ue taken.
2055
2056 If any of the parameters passed is a password field, then rclone will
2057 automatically obscure them if they aren't already obscured before
2058 putting them in the config file.
2059
2060 NB If the password parameter is 22 characters or longer and consists
2061 only of base64 characters then rclone can get confused about whether
2062 the password is already obscured or not and put unobscured passwords
2063 into the config file. If you want to be 100% certain that the pass‐
2064 words get obscured then use the --obscure flag, or if you are 100% cer‐
2065 tain you are already passing obscured passwords then use --no-obscure.
2066 You can also set obscured passwords using the rclone config password
2067 command.
2068
2069 The flag --non-interactive is for use by applications that wish to con‐
2070 figure rclone themeselves, rather than using rclone's text based con‐
2071 figuration questions. If this flag is set, and rclone needs to ask the
2072 user a question, a JSON blob will be returned with the question in it.
2073
2074 This will look something like (some irrelevant detail removed):
2075
2076 {
2077 "State": "*oauth-islocal,teamdrive,,",
2078 "Option": {
2079 "Name": "config_is_local",
2080 "Help": "Use auto config?\n * Say Y if not sure\n * Say N if you are working on a remote or headless machine\n",
2081 "Default": true,
2082 "Examples": [
2083 {
2084 "Value": "true",
2085 "Help": "Yes"
2086 },
2087 {
2088 "Value": "false",
2089 "Help": "No"
2090 }
2091 ],
2092 "Required": false,
2093 "IsPassword": false,
2094 "Type": "bool",
2095 "Exclusive": true,
2096 },
2097 "Error": "",
2098 }
2099
2100 The format of Option is the same as returned by rclone config
2101 providers. The question should be asked to the user and returned to
2102 rclone as the --result option along with the --state parameter.
2103
2104 The keys of Option are used as follows:
2105
2106 • Name - name of variable - show to user
2107
2108 • Help - help text. Hard wrapped at 80 chars. Any URLs should be
2109 clicky.
2110
2111 • Default - default value - return this if the user just wants the de‐
2112 fault.
2113
2114 • Examples - the user should be able to choose one of these
2115
2116 • Required - the value should be non-empty
2117
2118 • IsPassword - the value is a password and should be edited as such
2119
2120 • Type - type of value, eg bool, string, int and others
2121
2122 • Exclusive - if set no free-form entry allowed only the Examples
2123
2124 • Irrelevant keys Provider, ShortOpt, Hide, NoPrefix, Advanced
2125
2126 If Error is set then it should be shown to the user at the same time as
2127 the question.
2128
2129 rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"
2130
2131 Note that when using --continue all passwords should be passed in the
2132 clear (not obscured). Any default config values should be passed in
2133 with each invocation of --continue.
2134
2135 At the end of the non interactive process, rclone will return a result
2136 with State as empty string.
2137
2138 If --all is passed then rclone will ask all the config questions, not
2139 just the post config questions. Any parameters are used as defaults
2140 for questions as usual.
2141
2142 Note that bin/config.py in the rclone source implements this protocol
2143 as a readable demonstration.
2144
2145 rclone config create name type [key value]* [flags]
2146
2147 Options
2148 --all Ask the full set of config questions
2149 --continue Continue the configuration process with an answer
2150 -h, --help help for create
2151 --no-obscure Force any passwords not to be obscured
2152 --non-interactive Don't interact with user and return questions
2153 --obscure Force any passwords to be obscured
2154 --result string Result - use with --continue
2155 --state string State - use with --continue
2156
2157 See the global flags page (https://rclone.org/flags/) for global op‐
2158 tions not listed here.
2159
2160 SEE ALSO
2161 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2162 interactive configuration session.
2163
2165 Delete an existing remote.
2166
2167 rclone config delete name [flags]
2168
2169 Options
2170 -h, --help help for delete
2171
2172 See the global flags page (https://rclone.org/flags/) for global op‐
2173 tions not listed here.
2174
2175 SEE ALSO
2176 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2177 interactive configuration session.
2178
2180 Disconnects user from remote
2181
2182 Synopsis
2183 This disconnects the remote: passed in to the cloud storage system.
2184
2185 This normally means revoking the oauth token.
2186
2187 To reconnect use "rclone config reconnect".
2188
2189 rclone config disconnect remote: [flags]
2190
2191 Options
2192 -h, --help help for disconnect
2193
2194 See the global flags page (https://rclone.org/flags/) for global op‐
2195 tions not listed here.
2196
2197 SEE ALSO
2198 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2199 interactive configuration session.
2200
2202 Dump the config file as JSON.
2203
2204 rclone config dump [flags]
2205
2206 Options
2207 -h, --help help for dump
2208
2209 See the global flags page (https://rclone.org/flags/) for global op‐
2210 tions not listed here.
2211
2212 SEE ALSO
2213 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2214 interactive configuration session.
2215
2217 Enter an interactive configuration session.
2218
2220 Enter an interactive configuration session where you can setup new re‐
2221 motes and manage existing ones. You may also set or remove a password
2222 to protect your configuration.
2223
2224 rclone config edit [flags]
2225
2227 -h, --help help for edit
2228
2229 See the global flags page (https://rclone.org/flags/) for global op‐
2230 tions not listed here.
2231
2233 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2234 interactive configuration session.
2235
2237 Show path of configuration file in use.
2238
2239 rclone config file [flags]
2240
2241 Options
2242 -h, --help help for file
2243
2244 See the global flags page (https://rclone.org/flags/) for global op‐
2245 tions not listed here.
2246
2247 SEE ALSO
2248 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2249 interactive configuration session.
2250
2252 Update password in an existing remote.
2253
2254 Synopsis
2255 Update an existing remote's password. The password should be passed in
2256 pairs of key password or as key=password. The password should be
2257 passed in in clear (unobscured).
2258
2259 For example to set password of a remote of name myremote you would do:
2260
2261 rclone config password myremote fieldname mypassword
2262 rclone config password myremote fieldname=mypassword
2263
2264 This command is obsolete now that "config update" and "config create"
2265 both support obscuring passwords directly.
2266
2267 rclone config password name [key value]+ [flags]
2268
2269 Options
2270 -h, --help help for password
2271
2272 See the global flags page (https://rclone.org/flags/) for global op‐
2273 tions not listed here.
2274
2275 SEE ALSO
2276 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2277 interactive configuration session.
2278
2280 Show paths used for configuration, cache, temp etc.
2281
2282 rclone config paths [flags]
2283
2284 Options
2285 -h, --help help for paths
2286
2287 See the global flags page (https://rclone.org/flags/) for global op‐
2288 tions not listed here.
2289
2290 SEE ALSO
2291 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2292 interactive configuration session.
2293
2295 List in JSON format all the providers and options.
2296
2297 rclone config providers [flags]
2298
2299 Options
2300 -h, --help help for providers
2301
2302 See the global flags page (https://rclone.org/flags/) for global op‐
2303 tions not listed here.
2304
2305 SEE ALSO
2306 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2307 interactive configuration session.
2308
2310 Re-authenticates user with remote.
2311
2312 Synopsis
2313 This reconnects remote: passed in to the cloud storage system.
2314
2315 To disconnect the remote use "rclone config disconnect".
2316
2317 This normally means going through the interactive oauth flow again.
2318
2319 rclone config reconnect remote: [flags]
2320
2321 Options
2322 -h, --help help for reconnect
2323
2324 See the global flags page (https://rclone.org/flags/) for global op‐
2325 tions not listed here.
2326
2327 SEE ALSO
2328 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2329 interactive configuration session.
2330
2332 Print (decrypted) config file, or the config for a single remote.
2333
2334 rclone config show [<remote>] [flags]
2335
2336 Options
2337 -h, --help help for show
2338
2339 See the global flags page (https://rclone.org/flags/) for global op‐
2340 tions not listed here.
2341
2342 SEE ALSO
2343 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2344 interactive configuration session.
2345
2347 Ensure configuration file exists.
2348
2349 rclone config touch [flags]
2350
2351 Options
2352 -h, --help help for touch
2353
2354 See the global flags page (https://rclone.org/flags/) for global op‐
2355 tions not listed here.
2356
2357 SEE ALSO
2358 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2359 interactive configuration session.
2360
2362 Update options in an existing remote.
2363
2364 Synopsis
2365 Update an existing remote's options. The options should be passed in
2366 pairs of key value or as key=value.
2367
2368 For example to update the env_auth field of a remote of name myremote
2369 you would do:
2370
2371 rclone config update myremote env_auth true
2372 rclone config update myremote env_auth=true
2373
2374 If the remote uses OAuth the token will be updated, if you don't re‐
2375 quire this add an extra parameter thus:
2376
2377 rclone config update myremote env_auth=true config_refresh_token=false
2378
2379 Note that if the config process would normally ask a question the de‐
2380 fault is taken (unless --non-interactive is used). Each time that hap‐
2381 pens rclone will print or DEBUG a message saying how to affect the val‐
2382 ue taken.
2383
2384 If any of the parameters passed is a password field, then rclone will
2385 automatically obscure them if they aren't already obscured before
2386 putting them in the config file.
2387
2388 NB If the password parameter is 22 characters or longer and consists
2389 only of base64 characters then rclone can get confused about whether
2390 the password is already obscured or not and put unobscured passwords
2391 into the config file. If you want to be 100% certain that the pass‐
2392 words get obscured then use the --obscure flag, or if you are 100% cer‐
2393 tain you are already passing obscured passwords then use --no-obscure.
2394 You can also set obscured passwords using the rclone config password
2395 command.
2396
2397 The flag --non-interactive is for use by applications that wish to con‐
2398 figure rclone themeselves, rather than using rclone's text based con‐
2399 figuration questions. If this flag is set, and rclone needs to ask the
2400 user a question, a JSON blob will be returned with the question in it.
2401
2402 This will look something like (some irrelevant detail removed):
2403
2404 {
2405 "State": "*oauth-islocal,teamdrive,,",
2406 "Option": {
2407 "Name": "config_is_local",
2408 "Help": "Use auto config?\n * Say Y if not sure\n * Say N if you are working on a remote or headless machine\n",
2409 "Default": true,
2410 "Examples": [
2411 {
2412 "Value": "true",
2413 "Help": "Yes"
2414 },
2415 {
2416 "Value": "false",
2417 "Help": "No"
2418 }
2419 ],
2420 "Required": false,
2421 "IsPassword": false,
2422 "Type": "bool",
2423 "Exclusive": true,
2424 },
2425 "Error": "",
2426 }
2427
2428 The format of Option is the same as returned by rclone config
2429 providers. The question should be asked to the user and returned to
2430 rclone as the --result option along with the --state parameter.
2431
2432 The keys of Option are used as follows:
2433
2434 • Name - name of variable - show to user
2435
2436 • Help - help text. Hard wrapped at 80 chars. Any URLs should be
2437 clicky.
2438
2439 • Default - default value - return this if the user just wants the de‐
2440 fault.
2441
2442 • Examples - the user should be able to choose one of these
2443
2444 • Required - the value should be non-empty
2445
2446 • IsPassword - the value is a password and should be edited as such
2447
2448 • Type - type of value, eg bool, string, int and others
2449
2450 • Exclusive - if set no free-form entry allowed only the Examples
2451
2452 • Irrelevant keys Provider, ShortOpt, Hide, NoPrefix, Advanced
2453
2454 If Error is set then it should be shown to the user at the same time as
2455 the question.
2456
2457 rclone config update name --continue --state "*oauth-islocal,teamdrive,," --result "true"
2458
2459 Note that when using --continue all passwords should be passed in the
2460 clear (not obscured). Any default config values should be passed in
2461 with each invocation of --continue.
2462
2463 At the end of the non interactive process, rclone will return a result
2464 with State as empty string.
2465
2466 If --all is passed then rclone will ask all the config questions, not
2467 just the post config questions. Any parameters are used as defaults
2468 for questions as usual.
2469
2470 Note that bin/config.py in the rclone source implements this protocol
2471 as a readable demonstration.
2472
2473 rclone config update name [key value]+ [flags]
2474
2475 Options
2476 --all Ask the full set of config questions
2477 --continue Continue the configuration process with an answer
2478 -h, --help help for update
2479 --no-obscure Force any passwords not to be obscured
2480 --non-interactive Don't interact with user and return questions
2481 --obscure Force any passwords to be obscured
2482 --result string Result - use with --continue
2483 --state string State - use with --continue
2484
2485 See the global flags page (https://rclone.org/flags/) for global op‐
2486 tions not listed here.
2487
2488 SEE ALSO
2489 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2490 interactive configuration session.
2491
2493 Prints info about logged in user of remote.
2494
2495 Synopsis
2496 This prints the details of the person logged in to the cloud storage
2497 system.
2498
2499 rclone config userinfo remote: [flags]
2500
2501 Options
2502 -h, --help help for userinfo
2503 --json Format output as JSON
2504
2505 See the global flags page (https://rclone.org/flags/) for global op‐
2506 tions not listed here.
2507
2508 SEE ALSO
2509 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
2510 interactive configuration session.
2511
2513 Copy files from source to dest, skipping identical files.
2514
2515 Synopsis
2516 If source:path is a file or directory then it copies it to a file or
2517 directory named dest:path.
2518
2519 This can be used to upload single files to other than their current
2520 name. If the source is a directory then it acts exactly like the copy
2521 command.
2522
2523 So
2524
2525 rclone copyto src dst
2526
2527 where src and dst are rclone paths, either remote:path or /path/to/lo‐
2528 cal or C:.
2529
2530 This will:
2531
2532 if src is file
2533 copy it to dst, overwriting an existing file if it exists
2534 if src is directory
2535 copy it to dst, overwriting existing files if they exist
2536 see copy command for full details
2537
2538 This doesn't transfer files that are identical on src and dst, testing
2539 by size and modification time or MD5SUM. It doesn't delete files from
2540 the destination.
2541
2542 Note: Use the -P/--progress flag to view real-time transfer statistics
2543
2544 rclone copyto source:path dest:path [flags]
2545
2546 Options
2547 -h, --help help for copyto
2548
2549 See the global flags page (https://rclone.org/flags/) for global op‐
2550 tions not listed here.
2551
2552 SEE ALSO
2553 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2554 commands, flags and backends.
2555
2557 Copy url content to dest.
2558
2559 Synopsis
2560 Download a URL's content and copy it to the destination without saving
2561 it in temporary storage.
2562
2563 Setting --auto-filename will cause the file name to be retrieved from
2564 the URL (after any redirections) and used in the destination path.
2565 With --print-filename in addition, the resulting file name will be
2566 printed.
2567
2568 Setting --no-clobber will prevent overwriting file on the destination
2569 if there is one with the same name.
2570
2571 Setting --stdout or making the output file name - will cause the output
2572 to be written to standard output.
2573
2574 rclone copyurl https://example.com dest:path [flags]
2575
2576 Options
2577 -a, --auto-filename Get the file name from the URL and use it for destination file path
2578 -h, --help help for copyurl
2579 --no-clobber Prevent overwriting file with same name
2580 -p, --print-filename Print the resulting name from --auto-filename
2581 --stdout Write the output to stdout rather than a file
2582
2583 See the global flags page (https://rclone.org/flags/) for global op‐
2584 tions not listed here.
2585
2586 SEE ALSO
2587 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2588 commands, flags and backends.
2589
2591 Cryptcheck checks the integrity of a crypted remote.
2592
2593 Synopsis
2594 rclone cryptcheck checks a remote against a crypted remote. This is
2595 the equivalent of running rclone check, but able to check the checksums
2596 of the crypted remote.
2597
2598 For it to work the underlying remote of the cryptedremote must support
2599 some kind of checksum.
2600
2601 It works by reading the nonce from each file on the cryptedremote: and
2602 using that to encrypt each file on the remote:. It then checks the
2603 checksum of the underlying file on the cryptedremote: against the
2604 checksum of the file it has just encrypted.
2605
2606 Use it like this
2607
2608 rclone cryptcheck /path/to/files encryptedremote:path
2609
2610 You can use it like this also, but that will involve downloading all
2611 the files in remote:path.
2612
2613 rclone cryptcheck remote:path encryptedremote:path
2614
2615 After it has run it will log the status of the encryptedremote:.
2616
2617 If you supply the --one-way flag, it will only check that files in the
2618 source match the files in the destination, not the other way around.
2619 This means that extra files in the destination that are not in the
2620 source will not be detected.
2621
2622 The --differ, --missing-on-dst, --missing-on-src, --match and --error
2623 flags write paths, one per line, to the file name (or stdout if it is
2624 -) supplied. What they write is described in the help below. For ex‐
2625 ample --differ will write all paths which are present on both the
2626 source and destination but different.
2627
2628 The --combined flag will write a file (or stdout) which contains all
2629 file paths with a symbol and then a space and then the path to tell you
2630 what happened to it. These are reminiscent of diff files.
2631
2632 • = path means path was found in source and destination and was identi‐
2633 cal
2634
2635 • - path means path was missing on the source, so only in the destina‐
2636 tion
2637
2638 • + path means path was missing on the destination, so only in the
2639 source
2640
2641 • * path means path was present in source and destination but differ‐
2642 ent.
2643
2644 • ! path means there was an error reading or hashing the source or
2645 dest.
2646
2647 rclone cryptcheck remote:path cryptedremote:path [flags]
2648
2649 Options
2650 --combined string Make a combined report of changes to this file
2651 --differ string Report all non-matching files to this file
2652 --error string Report all files with errors (hashing or reading) to this file
2653 -h, --help help for cryptcheck
2654 --match string Report all matching files to this file
2655 --missing-on-dst string Report all files missing from the destination to this file
2656 --missing-on-src string Report all files missing from the source to this file
2657 --one-way Check one way only, source files must exist on remote
2658
2659 See the global flags page (https://rclone.org/flags/) for global op‐
2660 tions not listed here.
2661
2662 SEE ALSO
2663 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2664 commands, flags and backends.
2665
2667 Cryptdecode returns unencrypted file names.
2668
2669 Synopsis
2670 rclone cryptdecode returns unencrypted file names when provided with a
2671 list of encrypted file names. List limit is 10 items.
2672
2673 If you supply the --reverse flag, it will return encrypted file names.
2674
2675 use it like this
2676
2677 rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
2678
2679 rclone cryptdecode --reverse encryptedremote: filename1 filename2
2680
2681 Another way to accomplish this is by using the rclone backend encode
2682 (or decode)command. See the documentation on the crypt overlay for
2683 more info.
2684
2685 rclone cryptdecode encryptedremote: encryptedfilename [flags]
2686
2687 Options
2688 -h, --help help for cryptdecode
2689 --reverse Reverse cryptdecode, encrypts filenames
2690
2691 See the global flags page (https://rclone.org/flags/) for global op‐
2692 tions not listed here.
2693
2694 SEE ALSO
2695 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2696 commands, flags and backends.
2697
2699 Remove a single file from remote.
2700
2701 Synopsis
2702 Remove a single file from remote. Unlike delete it cannot be used to
2703 remove a directory and it doesn't obey include/exclude filters - if the
2704 specified file exists, it will always be removed.
2705
2706 rclone deletefile remote:path [flags]
2707
2708 Options
2709 -h, --help help for deletefile
2710
2711 See the global flags page (https://rclone.org/flags/) for global op‐
2712 tions not listed here.
2713
2714 SEE ALSO
2715 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2716 commands, flags and backends.
2717
2719 Output completion script for a given shell.
2720
2721 Synopsis
2722 Generates a shell completion script for rclone. Run with --help to
2723 list the supported shells.
2724
2725 Options
2726 -h, --help help for genautocomplete
2727
2728 See the global flags page (https://rclone.org/flags/) for global op‐
2729 tions not listed here.
2730
2731 SEE ALSO
2732 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2733 commands, flags and backends.
2734
2735 • rclone genautocomplete bash (https://rclone.org/commands/rclone_ge‐
2736 nautocomplete_bash/) - Output bash completion script for rclone.
2737
2738 • rclone genautocomplete fish (https://rclone.org/commands/rclone_ge‐
2739 nautocomplete_fish/) - Output fish completion script for rclone.
2740
2741 • rclone genautocomplete zsh (https://rclone.org/commands/rclone_genau‐
2742 tocomplete_zsh/) - Output zsh completion script for rclone.
2743
2745 Output bash completion script for rclone.
2746
2747 Synopsis
2748 Generates a bash shell autocompletion script for rclone.
2749
2750 This writes to /etc/bash_completion.d/rclone by default so will proba‐
2751 bly need to be run with sudo or as root, e.g.
2752
2753 sudo rclone genautocomplete bash
2754
2755 Logout and login again to use the autocompletion scripts, or source
2756 them directly
2757
2758 . /etc/bash_completion
2759
2760 If you supply a command line argument the script will be written there.
2761
2762 If output_file is "-", then the output will be written to stdout.
2763
2764 rclone genautocomplete bash [output_file] [flags]
2765
2766 Options
2767 -h, --help help for bash
2768
2769 See the global flags page (https://rclone.org/flags/) for global op‐
2770 tions not listed here.
2771
2772 SEE ALSO
2773 • rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2774 complete/) - Output completion script for a given shell.
2775
2777 Output fish completion script for rclone.
2778
2779 Synopsis
2780 Generates a fish autocompletion script for rclone.
2781
2782 This writes to /etc/fish/completions/rclone.fish by default so will
2783 probably need to be run with sudo or as root, e.g.
2784
2785 sudo rclone genautocomplete fish
2786
2787 Logout and login again to use the autocompletion scripts, or source
2788 them directly
2789
2790 . /etc/fish/completions/rclone.fish
2791
2792 If you supply a command line argument the script will be written there.
2793
2794 If output_file is "-", then the output will be written to stdout.
2795
2796 rclone genautocomplete fish [output_file] [flags]
2797
2798 Options
2799 -h, --help help for fish
2800
2801 See the global flags page (https://rclone.org/flags/) for global op‐
2802 tions not listed here.
2803
2804 SEE ALSO
2805 • rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2806 complete/) - Output completion script for a given shell.
2807
2809 Output zsh completion script for rclone.
2810
2811 Synopsis
2812 Generates a zsh autocompletion script for rclone.
2813
2814 This writes to /usr/share/zsh/vendor-completions/_rclone by default so
2815 will probably need to be run with sudo or as root, e.g.
2816
2817 sudo rclone genautocomplete zsh
2818
2819 Logout and login again to use the autocompletion scripts, or source
2820 them directly
2821
2822 autoload -U compinit && compinit
2823
2824 If you supply a command line argument the script will be written there.
2825
2826 If output_file is "-", then the output will be written to stdout.
2827
2828 rclone genautocomplete zsh [output_file] [flags]
2829
2830 Options
2831 -h, --help help for zsh
2832
2833 See the global flags page (https://rclone.org/flags/) for global op‐
2834 tions not listed here.
2835
2836 SEE ALSO
2837 • rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2838 complete/) - Output completion script for a given shell.
2839
2841 Output markdown docs for rclone to the directory supplied.
2842
2843 Synopsis
2844 This produces markdown docs for the rclone commands to the directory
2845 supplied. These are in a format suitable for hugo to render into the
2846 rclone.org website.
2847
2848 rclone gendocs output_directory [flags]
2849
2850 Options
2851 -h, --help help for gendocs
2852
2853 See the global flags page (https://rclone.org/flags/) for global op‐
2854 tions not listed here.
2855
2856 SEE ALSO
2857 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2858 commands, flags and backends.
2859
2861 Produces a hashsum file for all the objects in the path.
2862
2863 Synopsis
2864 Produces a hash file for all the objects in the path using the hash
2865 named. The output is in the same format as the standard md5sum/sha1sum
2866 tool.
2867
2868 By default, the hash is requested from the remote. If the hash is not
2869 supported by the remote, no hash will be returned. With the download
2870 flag, the file will be downloaded from the remote and hashed locally
2871 enabling any hash for any remote.
2872
2873 Run without a hash to see the list of all supported hashes, e.g.
2874
2875 $ rclone hashsum
2876 Supported hashes are:
2877 * md5
2878 * sha1
2879 * whirlpool
2880 * crc32
2881 * sha256
2882 * dropbox
2883 * mailru
2884 * quickxor
2885
2886 Then
2887
2888 $ rclone hashsum MD5 remote:path
2889
2890 Note that hash names are case insensitive and values are output in low‐
2891 er case.
2892
2893 rclone hashsum <hash> remote:path [flags]
2894
2895 Options
2896 --base64 Output base64 encoded hashsum
2897 -C, --checkfile string Validate hashes against a given SUM file instead of printing them
2898 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
2899 -h, --help help for hashsum
2900 --output-file string Output hashsums to a file rather than the terminal
2901
2902 See the global flags page (https://rclone.org/flags/) for global op‐
2903 tions not listed here.
2904
2905 SEE ALSO
2906 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2907 commands, flags and backends.
2908
2910 Generate public link to file/folder.
2911
2912 Synopsis
2913 rclone link will create, retrieve or remove a public link to the given
2914 file or folder.
2915
2916 rclone link remote:path/to/file
2917 rclone link remote:path/to/folder/
2918 rclone link --unlink remote:path/to/folder/
2919 rclone link --expire 1d remote:path/to/file
2920
2921 If you supply the --expire flag, it will set the expiration time other‐
2922 wise it will use the default (100 years). Note not all backends sup‐
2923 port the --expire flag - if the backend doesn't support it then the
2924 link returned won't expire.
2925
2926 Use the --unlink flag to remove existing public links to the file or
2927 folder. Note not all backends support "--unlink" flag - those that
2928 don't will just ignore it.
2929
2930 If successful, the last line of the output will contain the link. Ex‐
2931 act capabilities depend on the remote, but the link will always by de‐
2932 fault be created with the least constraints – e.g. no expiry, no pass‐
2933 word protection, accessible without account.
2934
2935 rclone link remote:path [flags]
2936
2937 Options
2938 --expire Duration The amount of time that the link will be valid (default off)
2939 -h, --help help for link
2940 --unlink Remove existing public link to file/folder
2941
2942 See the global flags page (https://rclone.org/flags/) for global op‐
2943 tions not listed here.
2944
2945 SEE ALSO
2946 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2947 commands, flags and backends.
2948
2950 List all the remotes in the config file.
2951
2952 Synopsis
2953 rclone listremotes lists all the available remotes from the config
2954 file.
2955
2956 When uses with the -l flag it lists the types too.
2957
2958 rclone listremotes [flags]
2959
2960 Options
2961 -h, --help help for listremotes
2962 --long Show the type as well as names
2963
2964 See the global flags page (https://rclone.org/flags/) for global op‐
2965 tions not listed here.
2966
2967 SEE ALSO
2968 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2969 commands, flags and backends.
2970
2972 List directories and objects in remote:path formatted for parsing.
2973
2974 Synopsis
2975 List the contents of the source path (directories and objects) to stan‐
2976 dard output in a form which is easy to parse by scripts. By default
2977 this will just be the names of the objects and directories, one per
2978 line. The directories will have a / suffix.
2979
2980 Eg
2981
2982 $ rclone lsf swift:bucket
2983 bevajer5jef
2984 canole
2985 diwogej7
2986 ferejej3gux/
2987 fubuwic
2988
2989 Use the --format option to control what gets listed. By default this
2990 is just the path, but you can use these parameters to control the out‐
2991 put:
2992
2993 p - path
2994 s - size
2995 t - modification time
2996 h - hash
2997 i - ID of object
2998 o - Original ID of underlying object
2999 m - MimeType of object if known
3000 e - encrypted name
3001 T - tier of storage if known, e.g. "Hot" or "Cool"
3002
3003 So if you wanted the path, size and modification time, you would use
3004 --format "pst", or maybe --format "tsp" to put the path last.
3005
3006 Eg
3007
3008 $ rclone lsf --format "tsp" swift:bucket
3009 2016-06-25 18:55:41;60295;bevajer5jef
3010 2016-06-25 18:55:43;90613;canole
3011 2016-06-25 18:55:43;94467;diwogej7
3012 2018-04-26 08:50:45;0;ferejej3gux/
3013 2016-06-25 18:55:40;37600;fubuwic
3014
3015 If you specify "h" in the format you will get the MD5 hash by default,
3016 use the "--hash" flag to change which hash you want. Note that this
3017 can be returned as an empty string if it isn't available on the object
3018 (and for directories), "ERROR" if there was an error reading it from
3019 the object and "UNSUPPORTED" if that object does not support that hash
3020 type.
3021
3022 For example to emulate the md5sum command you can use
3023
3024 rclone lsf -R --hash MD5 --format hp --separator " " --files-only .
3025
3026 Eg
3027
3028 $ rclone lsf -R --hash MD5 --format hp --separator " " --files-only swift:bucket
3029 7908e352297f0f530b84a756f188baa3 bevajer5jef
3030 cd65ac234e6fea5925974a51cdd865cc canole
3031 03b5341b4f234b9d984d03ad076bae91 diwogej7
3032 8fd37c3810dd660778137ac3a66cc06d fubuwic
3033 99713e14a4c4ff553acaf1930fad985b gixacuh7ku
3034
3035 (Though "rclone md5sum ." is an easier way of typing this.)
3036
3037 By default the separator is ";" this can be changed with the --separa‐
3038 tor flag. Note that separators aren't escaped in the path so putting
3039 it last is a good strategy.
3040
3041 Eg
3042
3043 $ rclone lsf --separator "," --format "tshp" swift:bucket
3044 2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
3045 2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole
3046 2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7
3047 2018-04-26 08:52:53,0,,ferejej3gux/
3048 2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic
3049
3050 You can output in CSV standard format. This will escape things in " if
3051 they contain ,
3052
3053 Eg
3054
3055 $ rclone lsf --csv --files-only --format ps remote:path
3056 test.log,22355
3057 test.sh,449
3058 "this file contains a comma, in the file name.txt",6
3059
3060 Note that the --absolute parameter is useful for making lists of files
3061 to pass to an rclone copy with the --files-from-raw flag.
3062
3063 For example to find all the files modified within one day and copy
3064 those only (without traversing the whole directory structure):
3065
3066 rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
3067 rclone copy --files-from-raw new_files /path/to/local remote:path
3068
3069 Any of the filtering options can be applied to this command.
3070
3071 There are several related list commands
3072
3073 • ls to list size and path of objects only
3074
3075 • lsl to list modification time, size and path of objects only
3076
3077 • lsd to list directories only
3078
3079 • lsf to list objects and directories in easy to parse format
3080
3081 • lsjson to list objects and directories in JSON format
3082
3083 ls,lsl,lsd are designed to be human readable. lsf is designed to be
3084 human and machine readable. lsjson is designed to be machine readable.
3085
3086 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
3087 recursion.
3088
3089 The other list commands lsd,lsf,lsjson do not recurse by default - use
3090 -R to make them recurse.
3091
3092 Listing a non existent directory will produce an error except for re‐
3093 motes which can't have empty directories (e.g. s3, swift, or gcs - the
3094 bucket based remotes).
3095
3096 rclone lsf remote:path [flags]
3097
3098 Options
3099 --absolute Put a leading / in front of path names
3100 --csv Output in CSV format
3101 -d, --dir-slash Append a slash to directory names (default true)
3102 --dirs-only Only list directories
3103 --files-only Only list files
3104 -F, --format string Output format - see help for details (default "p")
3105 --hash h Use this hash when h is used in the format MD5|SHA-1|DropboxHash (default "md5")
3106 -h, --help help for lsf
3107 -R, --recursive Recurse into the listing
3108 -s, --separator string Separator for the items in the format (default ";")
3109
3110 See the global flags page (https://rclone.org/flags/) for global op‐
3111 tions not listed here.
3112
3113 SEE ALSO
3114 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3115 commands, flags and backends.
3116
3118 List directories and objects in the path in JSON format.
3119
3120 Synopsis
3121 List directories and objects in the path in JSON format.
3122
3123 The output is an array of Items, where each Item looks like this
3124
3125 { "Hashes" : { "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f",
3126 "MD5" : "b1946ac92492d2347c6235b4d2611184", "DropboxHash" :
3127 "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc" },
3128 "ID": "y2djkhiujf83u33", "OrigID": "UYOJVTUW00Q1RzTDA", "IsBucket" :
3129 false, "IsDir" : false, "MimeType" : "application/octet-stream", "Mod‐
3130 Time" : "2017-05-31T16:15:57.034468261+01:00", "Name" : "file.txt",
3131 "Encrypted" : "v0qpsdq8anpci8n929v3uu9338", "EncryptedPath" :
3132 "kja9098349023498/v0qpsdq8anpci8n929v3uu9338", "Path" :
3133 "full/path/goes/here/file.txt", "Size" : 6, "Tier" : "hot", }
3134
3135 If --hash is not specified the Hashes property won't be emitted. The
3136 types of hash can be specified with the --hash-type parameter (which
3137 may be repeated). If --hash-type is set then it implies --hash.
3138
3139 If --no-modtime is specified then ModTime will be blank. This can
3140 speed things up on remotes where reading the ModTime takes an extra re‐
3141 quest (e.g. s3, swift).
3142
3143 If --no-mimetype is specified then MimeType will be blank. This can
3144 speed things up on remotes where reading the MimeType takes an extra
3145 request (e.g. s3, swift).
3146
3147 If --encrypted is not specified the Encrypted won't be emitted.
3148
3149 If --dirs-only is not specified files in addition to directories are
3150 returned
3151
3152 If --files-only is not specified directories in addition to the files
3153 will be returned.
3154
3155 if --stat is set then a single JSON blob will be returned about the
3156 item pointed to. This will return an error if the item isn't found.
3157 However on bucket based backends (like s3, gcs, b2, azureblob etc) if
3158 the item isn't found it will return an empty directory as it isn't pos‐
3159 sible to tell empty directories from missing directories there.
3160
3161 The Path field will only show folders below the remote path being list‐
3162 ed. If "remote:path" contains the file "subfolder/file.txt", the Path
3163 for "file.txt" will be "subfolder/file.txt", not "remote:path/subfold‐
3164 er/file.txt". When used without --recursive the Path will always be
3165 the same as Name.
3166
3167 If the directory is a bucket in a bucket based backend, then "IsBucket"
3168 will be set to true. This key won't be present unless it is "true".
3169
3170 The time is in RFC3339 format with up to nanosecond precision. The
3171 number of decimal digits in the seconds will depend on the precision
3172 that the remote can hold the times, so if times are accurate to the
3173 nearest millisecond (e.g. Google Drive) then 3 digits will always be
3174 shown ("2017-05-31T16:15:57.034+01:00") whereas if the times are accu‐
3175 rate to the nearest second (Dropbox, Box, WebDav, etc.) no digits will
3176 be shown ("2017-05-31T16:15:57+01:00").
3177
3178 The whole output can be processed as a JSON blob, or alternatively it
3179 can be processed line by line as each item is written one to a line.
3180
3181 Any of the filtering options can be applied to this command.
3182
3183 There are several related list commands
3184
3185 • ls to list size and path of objects only
3186
3187 • lsl to list modification time, size and path of objects only
3188
3189 • lsd to list directories only
3190
3191 • lsf to list objects and directories in easy to parse format
3192
3193 • lsjson to list objects and directories in JSON format
3194
3195 ls,lsl,lsd are designed to be human readable. lsf is designed to be
3196 human and machine readable. lsjson is designed to be machine readable.
3197
3198 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
3199 recursion.
3200
3201 The other list commands lsd,lsf,lsjson do not recurse by default - use
3202 -R to make them recurse.
3203
3204 Listing a non existent directory will produce an error except for re‐
3205 motes which can't have empty directories (e.g. s3, swift, or gcs - the
3206 bucket based remotes).
3207
3208 rclone lsjson remote:path [flags]
3209
3210 Options
3211 --dirs-only Show only directories in the listing
3212 -M, --encrypted Show the encrypted names
3213 --files-only Show only files in the listing
3214 --hash Include hashes in the output (may take longer)
3215 --hash-type stringArray Show only this hash type (may be repeated)
3216 -h, --help help for lsjson
3217 --no-mimetype Don't read the mime type (can speed things up)
3218 --no-modtime Don't read the modification time (can speed things up)
3219 --original Show the ID of the underlying Object
3220 -R, --recursive Recurse into the listing
3221 --stat Just return the info for the pointed to file
3222
3223 See the global flags page (https://rclone.org/flags/) for global op‐
3224 tions not listed here.
3225
3226 SEE ALSO
3227 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3228 commands, flags and backends.
3229
3231 Mount the remote as file system on a mountpoint.
3232
3233 Synopsis
3234 rclone mount allows Linux, FreeBSD, macOS and Windows to mount any of
3235 Rclone's cloud storage systems as a file system with FUSE.
3236
3237 First set up your remote using rclone config. Check it works with
3238 rclone ls etc.
3239
3240 On Linux and macOS, you can run mount in either foreground or back‐
3241 ground (aka daemon) mode. Mount runs in foreground mode by default.
3242 Use the --daemon flag to force background mode. On Windows you can run
3243 mount in foreground only, the flag is ignored.
3244
3245 In background mode rclone acts as a generic Unix mount program: the
3246 main program starts, spawns background rclone process to setup and
3247 maintain the mount, waits until success or timeout and exits with ap‐
3248 propriate code (killing the child process if it fails).
3249
3250 On Linux/macOS/FreeBSD start the mount like this, where /path/to/lo‐
3251 cal/mount is an empty existing directory:
3252
3253 rclone mount remote:path/to/files /path/to/local/mount
3254
3255 On Windows you can start a mount in different ways. See below for de‐
3256 tails. If foreground mount is used interactively from a console win‐
3257 dow, rclone will serve the mount and occupy the console so another win‐
3258 dow should be used to work with the mount until rclone is interrupted
3259 e.g. by pressing Ctrl-C.
3260
3261 The following examples will mount to an automatically assigned drive,
3262 to specific drive letter X:, to path C:\path\parent\mount (where parent
3263 directory or drive must exist, and mount must not exist, and is not
3264 supported when mounting as a network drive), and the last example will
3265 mount as network share \\cloud\remote and map it to an automatically
3266 assigned drive:
3267
3268 rclone mount remote:path/to/files *
3269 rclone mount remote:path/to/files X:
3270 rclone mount remote:path/to/files C:\path\parent\mount
3271 rclone mount remote:path/to/files \\cloud\remote
3272
3273 When the program ends while in foreground mode, either via Ctrl+C or
3274 receiving a SIGINT or SIGTERM signal, the mount should be automatically
3275 stopped.
3276
3277 When running in background mode the user will have to stop the mount
3278 manually:
3279
3280 # Linux
3281 fusermount -u /path/to/local/mount
3282 # OS X
3283 umount /path/to/local/mount
3284
3285 The umount operation can fail, for example when the mountpoint is busy.
3286 When that happens, it is the user's responsibility to stop the mount
3287 manually.
3288
3289 The size of the mounted file system will be set according to informa‐
3290 tion retrieved from the remote, the same as returned by the rclone
3291 about (https://rclone.org/commands/rclone_about/) command. Remotes
3292 with unlimited storage may report the used size only, then an addition‐
3293 al 1 PiB of free space is assumed. If the remote does not support
3294 (https://rclone.org/overview/#optional-features) the about feature at
3295 all, then 1 PiB is set as both the total and the free size.
3296
3297 Installing on Windows
3298 To run rclone mount on Windows, you will need to download and install
3299 WinFsp (http://www.secfs.net/winfsp/).
3300
3301 WinFsp (https://github.com/billziss-gh/winfsp) is an open source Win‐
3302 dows File System Proxy which makes it easy to write user space file
3303 systems for Windows. It provides a FUSE emulation layer which rclone
3304 uses combination with cgofuse (https://github.com/billziss-gh/cgofuse).
3305 Both of these packages are by Bill Zissimopoulos who was very helpful
3306 during the implementation of rclone mount for Windows.
3307
3308 Mounting modes on windows
3309 Unlike other operating systems, Microsoft Windows provides a different
3310 filesystem type for network and fixed drives. It optimises access on
3311 the assumption fixed disk drives are fast and reliable, while network
3312 drives have relatively high latency and less reliability. Some set‐
3313 tings can also be differentiated between the two types, for example
3314 that Windows Explorer should just display icons and not create preview
3315 thumbnails for image and video files on network drives.
3316
3317 In most cases, rclone will mount the remote as a normal, fixed disk
3318 drive by default. However, you can also choose to mount it as a remote
3319 network drive, often described as a network share. If you mount an
3320 rclone remote using the default, fixed drive mode and experience unex‐
3321 pected program errors, freezes or other issues, consider mounting as a
3322 network drive instead.
3323
3324 When mounting as a fixed disk drive you can either mount to an unused
3325 drive letter, or to a path representing a non-existent subdirectory of
3326 an existing parent directory or drive. Using the special value * will
3327 tell rclone to automatically assign the next available drive letter,
3328 starting with Z: and moving backward. Examples:
3329
3330 rclone mount remote:path/to/files *
3331 rclone mount remote:path/to/files X:
3332 rclone mount remote:path/to/files C:\path\parent\mount
3333 rclone mount remote:path/to/files X:
3334
3335 Option --volname can be used to set a custom volume name for the mount‐
3336 ed file system. The default is to use the remote name and path.
3337
3338 To mount as network drive, you can add option --network-mode to your
3339 mount command. Mounting to a directory path is not supported in this
3340 mode, it is a limitation Windows imposes on junctions, so the remote
3341 must always be mounted to a drive letter.
3342
3343 rclone mount remote:path/to/files X: --network-mode
3344
3345 A volume name specified with --volname will be used to create the net‐
3346 work share path. A complete UNC path, such as \\cloud\remote, option‐
3347 ally with path \\cloud\remote\madeup\path, will be used as is. Any
3348 other string will be used as the share part, after a default prefix
3349 \\server\. If no volume name is specified then \\server\share will be
3350 used. You must make sure the volume name is unique when you are mount‐
3351 ing more than one drive, or else the mount command will fail. The
3352 share name will treated as the volume label for the mapped drive, shown
3353 in Windows Explorer etc, while the complete \\server\share will be re‐
3354 ported as the remote UNC path by net use etc, just like a normal net‐
3355 work drive mapping.
3356
3357 If you specify a full network share UNC path with --volname, this will
3358 implicitely set the --network-mode option, so the following two exam‐
3359 ples have same result:
3360
3361 rclone mount remote:path/to/files X: --network-mode
3362 rclone mount remote:path/to/files X: --volname \\server\share
3363
3364 You may also specify the network share UNC path as the mountpoint it‐
3365 self. Then rclone will automatically assign a drive letter, same as
3366 with * and use that as mountpoint, and instead use the UNC path speci‐
3367 fied as the volume name, as if it were specified with the --volname op‐
3368 tion. This will also implicitely set the --network-mode option. This
3369 means the following two examples have same result:
3370
3371 rclone mount remote:path/to/files \\cloud\remote
3372 rclone mount remote:path/to/files * --volname \\cloud\remote
3373
3374 There is yet another way to enable network mode, and to set the share
3375 path, and that is to pass the "native" libfuse/WinFsp option directly:
3376 --fuse-flag --VolumePrefix=\server\share. Note that the path must be
3377 with just a single backslash prefix in this case.
3378
3379 Note: In previous versions of rclone this was the only supported meth‐
3380 od.
3381
3382 Read more about drive mapping (https://en.wikipedia.org/wiki/Drive_map‐
3383 ping)
3384
3385 See also Limitations section below.
3386
3387 Windows filesystem permissions
3388 The FUSE emulation layer on Windows must convert between the
3389 POSIX-based permission model used in FUSE, and the permission model
3390 used in Windows, based on access-control lists (ACL).
3391
3392 The mounted filesystem will normally get three entries in its ac‐
3393 cess-control list (ACL), representing permissions for the POSIX permis‐
3394 sion scopes: Owner, group and others. By default, the owner and group
3395 will be taken from the current user, and the built-in group "Everyone"
3396 will be used to represent others. The user/group can be customized
3397 with FUSE options "UserName" and "GroupName", e.g. -o UserName=user123
3398 -o GroupName="Authenticated Users". The permissions on each entry will
3399 be set according to options --dir-perms and --file-perms, which takes a
3400 value in traditional numeric notation (https://en.wikipedia.org/wi‐
3401 ki/File-system_permissions#Numeric_notation).
3402
3403 The default permissions corresponds to --file-perms 0666 --dir-perms
3404 0777, i.e. read and write permissions to everyone. This means you
3405 will not be able to start any programs from the the mount. To be able
3406 to do that you must add execute permissions, e.g. --file-perms 0777
3407 --dir-perms 0777 to add it to everyone. If the program needs to write
3408 files, chances are you will have to enable VFS File Caching as well
3409 (see also limitations).
3410
3411 Note that the mapping of permissions is not always trivial, and the re‐
3412 sult you see in Windows Explorer may not be exactly like you expected.
3413 For example, when setting a value that includes write access, this will
3414 be mapped to individual permissions "write attributes", "write data"
3415 and "append data", but not "write extended attributes". Windows will
3416 then show this as basic permission "Special" instead of "Write", be‐
3417 cause "Write" includes the "write extended attributes" permission.
3418
3419 If you set POSIX permissions for only allowing access to the owner, us‐
3420 ing --file-perms 0600 --dir-perms 0700, the user group and the built-in
3421 "Everyone" group will still be given some special permissions, such as
3422 "read attributes" and "read permissions", in Windows. This is done for
3423 compatibility reasons, e.g. to allow users without additional permis‐
3424 sions to be able to read basic metadata about files like in UNIX. One
3425 case that may arise is that other programs (incorrectly) interprets
3426 this as the file being accessible by everyone. For example an SSH
3427 client may warn about "unprotected private key file".
3428
3429 WinFsp 2021 (version 1.9) introduces a new FUSE option "FileSecurity",
3430 that allows the complete specification of file security descriptors us‐
3431 ing SDDL (https://docs.microsoft.com/en-us/windows/win32/secauthz/secu‐
3432 rity-descriptor-string-format). With this you can work around issues
3433 such as the mentioned "unprotected private key file" by specifying -o
3434 FileSecurity="D:P(A;;FA;;;OW)", for file all access (FA) to the owner
3435 (OW).
3436
3437 Windows caveats
3438 Drives created as Administrator are not visible to other accounts, not
3439 even an account that was elevated to Administrator with the User Ac‐
3440 count Control (UAC) feature. A result of this is that if you mount to
3441 a drive letter from a Command Prompt run as Administrator, and then try
3442 to access the same drive from Windows Explorer (which does not run as
3443 Administrator), you will not be able to see the mounted drive.
3444
3445 If you don't need to access the drive from applications running with
3446 administrative privileges, the easiest way around this is to always
3447 create the mount from a non-elevated command prompt.
3448
3449 To make mapped drives available to the user account that created them
3450 regardless if elevated or not, there is a special Windows setting
3451 called linked connections (https://docs.microsoft.com/en-us/trou‐
3452 bleshoot/windows-client/networking/mapped-drives-not-available-from-el‐
3453 evated-command#detail-to-configure-the-enablelinkedconnections-reg‐
3454 istry-entry) that can be enabled.
3455
3456 It is also possible to make a drive mount available to everyone on the
3457 system, by running the process creating it as the built-in SYSTEM ac‐
3458 count. There are several ways to do this: One is to use the com‐
3459 mand-line utility PsExec (https://docs.microsoft.com/en-us/sysinter‐
3460 nals/downloads/psexec), from Microsoft's Sysinternals suite, which has
3461 option -s to start processes as the SYSTEM account. Another alterna‐
3462 tive is to run the mount command from a Windows Scheduled Task, or a
3463 Windows Service, configured to run as the SYSTEM account. A third al‐
3464 ternative is to use the WinFsp.Launcher infrastructure
3465 (https://github.com/billziss-gh/winfsp/wiki/WinFsp-Service-Architec‐
3466 ture)). Note that when running rclone as another user, it will not use
3467 the configuration file from your profile unless you tell it to with the
3468 --config (https://rclone.org/docs/#config-config-file) option. Read
3469 more in the install documentation (https://rclone.org/install/).
3470
3471 Note that mapping to a directory path, instead of a drive letter, does
3472 not suffer from the same limitations.
3473
3474 Limitations
3475 Without the use of --vfs-cache-mode this can only write files sequen‐
3476 tially, it can only seek when reading. This means that many applica‐
3477 tions won't work with their files on an rclone mount without
3478 --vfs-cache-mode writes or --vfs-cache-mode full. See the VFS File
3479 Caching section for more info.
3480
3481 The bucket based remotes (e.g. Swift, S3, Google Compute Storage, B2,
3482 Hubic) do not support the concept of empty directories, so empty direc‐
3483 tories will have a tendency to disappear once they fall out of the di‐
3484 rectory cache.
3485
3486 When rclone mount is invoked on Unix with --daemon flag, the main
3487 rclone program will wait for the background mount to become ready or
3488 until the timeout specified by the --daemon-wait flag. On Linux it can
3489 check mount status using ProcFS so the flag in fact sets maximum time
3490 to wait, while the real wait can be less. On macOS / BSD the time to
3491 wait is constant and the check is performed only at the end. We advise
3492 you to set wait time on macOS reasonably.
3493
3494 Only supported on Linux, FreeBSD, OS X and Windows at the moment.
3495
3496 rclone mount vs rclone sync/copy
3497 File systems expect things to be 100% reliable, whereas cloud storage
3498 systems are a long way from 100% reliable. The rclone sync/copy com‐
3499 mands cope with this with lots of retries. However rclone mount can't
3500 use retries in the same way without making local copies of the uploads.
3501 Look at the VFS File Caching for solutions to make mount more reliable.
3502
3503 Attribute caching
3504 You can use the flag --attr-timeout to set the time the kernel caches
3505 the attributes (size, modification time, etc.) for directory entries.
3506
3507 The default is 1s which caches files just long enough to avoid too many
3508 callbacks to rclone from the kernel.
3509
3510 In theory 0s should be the correct value for filesystems which can
3511 change outside the control of the kernel. However this causes quite a
3512 few problems such as rclone using too much memory
3513 (https://github.com/rclone/rclone/issues/2157), rclone not serving
3514 files to samba (https://forum.rclone.org/t/rclone-1-39-vs-1-40-mount-
3515 issue/5112) and excessive time listing directories
3516 (https://github.com/rclone/rclone/issues/2095#issuecomment-371141147).
3517
3518 The kernel can cache the info about a file for the time given by --at‐
3519 tr-timeout. You may see corruption if the remote file changes length
3520 during this window. It will show up as either a truncated file or a
3521 file with garbage on the end. With --attr-timeout 1s this is very un‐
3522 likely but not impossible. The higher you set --attr-timeout the more
3523 likely it is. The default setting of "1s" is the lowest setting which
3524 mitigates the problems above.
3525
3526 If you set it higher (10s or 1m say) then the kernel will call back to
3527 rclone less often making it more efficient, however there is more
3528 chance of the corruption issue above.
3529
3530 If files don't change on the remote outside of the control of rclone
3531 then there is no chance of corruption.
3532
3533 This is the same as setting the attr_timeout option in mount.fuse.
3534
3535 Filters
3536 Note that all the rclone filters can be used to select a subset of the
3537 files to be visible in the mount.
3538
3539 systemd
3540 When running rclone mount as a systemd service, it is possible to use
3541 Type=notify. In this case the service will enter the started state af‐
3542 ter the mountpoint has been successfully set up. Units having the
3543 rclone mount service specified as a requirement will see all files and
3544 folders immediately in this mode.
3545
3546 Note that systemd runs mount units without any environment variables
3547 including PATH or HOME. This means that tilde (~) expansion will not
3548 work and you should provide --config and --cache-dir explicitly as ab‐
3549 solute paths via rclone arguments. Since mounting requires the fuser‐
3550 mount program, rclone will use the fallback PATH of /bin:/usr/bin in
3551 this scenario. Please ensure that fusermount is present on this PATH.
3552
3553 Rclone as Unix mount helper
3554 The core Unix program /bin/mount normally takes the -t FSTYPE argument
3555 then runs the /sbin/mount.FSTYPE helper program passing it mount op‐
3556 tions as -o key=val,... or --opt=.... Automount (classic or systemd)
3557 behaves in a similar way.
3558
3559 rclone by default expects GNU-style flags --key val. To run it as a
3560 mount helper you should symlink rclone binary to /sbin/mount.rclone and
3561 optionally /usr/bin/rclonefs, e.g. ln -s /usr/bin/rclone
3562 /sbin/mount.rclone. rclone will detect it and translate command-line
3563 arguments appropriately.
3564
3565 Now you can run classic mounts like this:
3566
3567 mount sftp1:subdir /mnt/data -t rclone -o vfs_cache_mode=writes,sftp_key_file=/path/to/pem
3568
3569 or create systemd mount units:
3570
3571 # /etc/systemd/system/mnt-data.mount
3572 [Unit]
3573 After=network-online.target
3574 [Mount]
3575 Type=rclone
3576 What=sftp1:subdir
3577 Where=/mnt/data
3578 Options=rw,allow_other,args2env,vfs-cache-mode=writes,config=/etc/rclone.conf,cache-dir=/var/rclone
3579
3580 optionally accompanied by systemd automount unit
3581
3582 # /etc/systemd/system/mnt-data.automount
3583 [Unit]
3584 After=network-online.target
3585 Before=remote-fs.target
3586 [Automount]
3587 Where=/mnt/data
3588 TimeoutIdleSec=600
3589 [Install]
3590 WantedBy=multi-user.target
3591
3592 or add in /etc/fstab a line like
3593
3594 sftp1:subdir /mnt/data rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes,config=/etc/rclone.conf,cache_dir=/var/cache/rclone 0 0
3595
3596 or use classic Automountd. Remember to provide explicit con‐
3597 fig=...,cache-dir=... as a workaround for mount units being run without
3598 HOME.
3599
3600 Rclone in the mount helper mode will split -o argument(s) by comma, re‐
3601 place _ by - and prepend -- to get the command-line flags. Options
3602 containing commas or spaces can be wrapped in single or double quotes.
3603 Any inner quotes inside outer quotes of the same type should be dou‐
3604 bled.
3605
3606 Mount option syntax includes a few extra options treated specially:
3607
3608 • env.NAME=VALUE will set an environment variable for the mount
3609 process. This helps with Automountd and Systemd.mount which don't
3610 allow setting custom environment for mount helpers. Typically you
3611 will use env.HTTPS_PROXY=proxy.host:3128 or env.HOME=/root
3612
3613 • command=cmount can be used to run cmount or any other rclone command
3614 rather than the default mount.
3615
3616 • args2env will pass mount options to the mount helper running in back‐
3617 ground via environment variables instead of command line arguments.
3618 This allows to hide secrets from such commands as ps or pgrep.
3619
3620 • vv... will be transformed into appropriate --verbose=N
3621
3622 • standard mount options like x-systemd.automount, _netdev, nosuid and
3623 alike are intended only for Automountd and ignored by rclone.
3624
3625 VFS - Virtual File System
3626 This command uses the VFS layer. This adapts the cloud storage objects
3627 that rclone uses into something which looks much more like a disk fil‐
3628 ing system.
3629
3630 Cloud storage objects have lots of properties which aren't like disk
3631 files - you can't extend them or write to the middle of them, so the
3632 VFS layer has to deal with that. Because there is no one right way of
3633 doing this there are various options explained below.
3634
3635 The VFS layer also implements a directory cache - this caches info
3636 about files and directories (but not the data) in memory.
3637
3638 VFS Directory Cache
3639 Using the --dir-cache-time flag, you can control how long a directory
3640 should be considered up to date and not refreshed from the backend.
3641 Changes made through the mount will appear immediately or invalidate
3642 the cache.
3643
3644 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
3645 --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
3646
3647 However, changes made directly on the cloud storage by the web inter‐
3648 face or a different copy of rclone will only be picked up once the di‐
3649 rectory cache expires if the backend configured does not support
3650 polling for changes. If the backend supports polling, changes will be
3651 picked up within the polling interval.
3652
3653 You can send a SIGHUP signal to rclone for it to flush all directory
3654 caches, regardless of how old they are. Assuming only one rclone in‐
3655 stance is running, you can reset the cache like this:
3656
3657 kill -SIGHUP $(pidof rclone)
3658
3659 If you configure rclone with a remote control (/rc) then you can use
3660 rclone rc to flush the whole directory cache:
3661
3662 rclone rc vfs/forget
3663
3664 Or individual files or directories:
3665
3666 rclone rc vfs/forget file=path/to/file dir=path/to/dir
3667
3668 VFS File Buffering
3669 The --buffer-size flag determines the amount of memory, that will be
3670 used to buffer data in advance.
3671
3672 Each open file will try to keep the specified amount of data in memory
3673 at all times. The buffered data is bound to one open file and won't be
3674 shared.
3675
3676 This flag is a upper limit for the used memory per open file. The buf‐
3677 fer will only use memory for data that is downloaded but not not yet
3678 read. If the buffer is empty, only a small amount of memory will be
3679 used.
3680
3681 The maximum memory used by rclone for buffering can be up to --buf‐
3682 fer-size * open files.
3683
3684 VFS File Caching
3685 These flags control the VFS file caching options. File caching is nec‐
3686 essary to make the VFS layer appear compatible with a normal file sys‐
3687 tem. It can be disabled at the cost of some compatibility.
3688
3689 For example you'll need to enable VFS caching if you want to read and
3690 write simultaneously to a file. See below for more details.
3691
3692 Note that the VFS cache is separate from the cache backend and you may
3693 find that you need one or the other or both.
3694
3695 --cache-dir string Directory rclone will use for caching.
3696 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3697 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
3698 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
3699 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
3700 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
3701
3702 If run with -vv rclone will print the location of the file cache. The
3703 files are stored in the user cache file area which is OS dependent but
3704 can be controlled with --cache-dir or setting the appropriate environ‐
3705 ment variable.
3706
3707 The cache has 4 different modes selected by --vfs-cache-mode. The
3708 higher the cache mode the more compatible rclone becomes at the cost of
3709 using disk space.
3710
3711 Note that files are written back to the remote only when they are
3712 closed and if they haven't been accessed for --vfs-write-back seconds.
3713 If rclone is quit or dies with files that haven't been uploaded, these
3714 will be uploaded next time rclone is run with the same flags.
3715
3716 If using --vfs-cache-max-size note that the cache may exceed this size
3717 for two reasons. Firstly because it is only checked every
3718 --vfs-cache-poll-interval. Secondly because open files cannot be
3719 evicted from the cache.
3720
3721 You should not run two copies of rclone using the same VFS cache with
3722 the same or overlapping remotes if using --vfs-cache-mode > off. This
3723 can potentially cause data corruption if you do. You can work around
3724 this by giving each rclone its own cache hierarchy with --cache-dir.
3725 You don't need to worry about this if the remotes in use don't overlap.
3726
3727 --vfs-cache-mode off
3728 In this mode (the default) the cache will read directly from the remote
3729 and write directly to the remote without caching anything on disk.
3730
3731 This will mean some operations are not possible
3732
3733 • Files can't be opened for both read AND write
3734
3735 • Files opened for write can't be seeked
3736
3737 • Existing files opened for write must have O_TRUNC set
3738
3739 • Files open for read with O_TRUNC will be opened write only
3740
3741 • Files open for write only will behave as if O_TRUNC was supplied
3742
3743 • Open modes O_APPEND, O_TRUNC are ignored
3744
3745 • If an upload fails it can't be retried
3746
3747 --vfs-cache-mode minimal
3748 This is very similar to "off" except that files opened for read AND
3749 write will be buffered to disk. This means that files opened for write
3750 will be a lot more compatible, but uses the minimal disk space.
3751
3752 These operations are not possible
3753
3754 • Files opened for write only can't be seeked
3755
3756 • Existing files opened for write must have O_TRUNC set
3757
3758 • Files opened for write only will ignore O_APPEND, O_TRUNC
3759
3760 • If an upload fails it can't be retried
3761
3762 --vfs-cache-mode writes
3763 In this mode files opened for read only are still read directly from
3764 the remote, write only and read/write files are buffered to disk first.
3765
3766 This mode should support all normal file system operations.
3767
3768 If an upload fails it will be retried at exponentially increasing in‐
3769 tervals up to 1 minute.
3770
3771 --vfs-cache-mode full
3772 In this mode all reads and writes are buffered to and from disk. When
3773 data is read from the remote this is buffered to disk as well.
3774
3775 In this mode the files in the cache will be sparse files and rclone
3776 will keep track of which bits of the files it has downloaded.
3777
3778 So if an application only reads the starts of each file, then rclone
3779 will only buffer the start of the file. These files will appear to be
3780 their full size in the cache, but they will be sparse files with only
3781 the data that has been downloaded present in them.
3782
3783 This mode should support all normal file system operations and is oth‐
3784 erwise identical to --vfs-cache-mode writes.
3785
3786 When reading a file rclone will read --buffer-size plus
3787 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
3788 whereas the --vfs-read-ahead is buffered on disk.
3789
3790 When using this mode it is recommended that --buffer-size is not set
3791 too large and --vfs-read-ahead is set large if required.
3792
3793 IMPORTANT not all file systems support sparse files. In particular
3794 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
3795 ry is on a filesystem which doesn't support sparse files and it will
3796 log an ERROR message if one is detected.
3797
3798 VFS Chunked Reading
3799 When rclone reads files from a remote it reads them in chunks. This
3800 means that rather than requesting the whole file rclone reads the chunk
3801 specified. This can reduce the used download quota for some remotes by
3802 requesting only chunks from the remote that are actually read, at the
3803 cost of an increased number of requests.
3804
3805 These flags control the chunking:
3806
3807 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
3808 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
3809
3810 Rclone will start reading a chunk of size --vfs-read-chunk-size, and
3811 then double the size for each read. When --vfs-read-chunk-size-limit
3812 is specified, and greater than --vfs-read-chunk-size, the chunk size
3813 for each open file will get doubled only until the specified value is
3814 reached. If the value is "off", which is the default, the limit is
3815 disabled and the chunk size will grow indefinitely.
3816
3817 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
3818 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
3819 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
3820 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
3821 1200M-1700M and so on.
3822
3823 Setting --vfs-read-chunk-size to 0 or "off" disables chunked reading.
3824
3825 VFS Performance
3826 These flags may be used to enable/disable features of the VFS for per‐
3827 formance or other reasons. See also the chunked reading feature.
3828
3829 In particular S3 and Swift benefit hugely from the --no-modtime flag
3830 (or use --use-server-modtime for a slightly different effect) as each
3831 read of the modification time takes a transaction.
3832
3833 --no-checksum Don't compare checksums on up/download.
3834 --no-modtime Don't read/write the modification time (can speed things up).
3835 --no-seek Don't allow seeking in files.
3836 --read-only Mount read-only.
3837
3838 Sometimes rclone is delivered reads or writes out of order. Rather
3839 than seeking rclone will wait a short time for the in sequence read or
3840 write to come in. These flags only come into effect when not using an
3841 on disk cache file.
3842
3843 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
3844 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
3845
3846 When using VFS write caching (--vfs-cache-mode with value writes or
3847 full), the global flag --transfers can be set to adjust the number of
3848 parallel uploads of modified files from cache (the related global flag
3849 --checkers have no effect on mount).
3850
3851 --transfers int Number of file transfers to run in parallel (default 4)
3852
3853 VFS Case Sensitivity
3854 Linux file systems are case-sensitive: two files can differ only by
3855 case, and the exact case must be used when opening a file.
3856
3857 File systems in modern Windows are case-insensitive but case-preserv‐
3858 ing: although existing files can be opened using any case, the exact
3859 case used to create the file is preserved and available for programs to
3860 query. It is not allowed for two files in the same directory to differ
3861 only by case.
3862
3863 Usually file systems on macOS are case-insensitive. It is possible to
3864 make macOS file systems case-sensitive but that is not the default.
3865
3866 The --vfs-case-insensitive mount flag controls how rclone handles these
3867 two cases. If its value is "false", rclone passes file names to the
3868 mounted file system as-is. If the flag is "true" (or appears without a
3869 value on command line), rclone may perform a "fixup" as explained be‐
3870 low.
3871
3872 The user may specify a file name to open/delete/rename/etc with a case
3873 different than what is stored on mounted file system. If an argument
3874 refers to an existing file with exactly the same name, then the case of
3875 the existing file on the disk will be used. However, if a file name
3876 with exactly the same name is not found but a name differing only by
3877 case exists, rclone will transparently fixup the name. This fixup hap‐
3878 pens only when an existing file is requested. Case sensitivity of file
3879 names created anew by rclone is controlled by an underlying mounted
3880 file system.
3881
3882 Note that case sensitivity of the operating system running rclone (the
3883 target) may differ from case sensitivity of a file system mounted by
3884 rclone (the source). The flag controls whether "fixup" is performed to
3885 satisfy the target.
3886
3887 If the flag is not provided on the command line, then its default value
3888 depends on the operating system where rclone runs: "true" on Windows
3889 and macOS, "false" otherwise. If the flag is provided without a value,
3890 then it is "true".
3891
3892 Alternate report of used bytes
3893 Some backends, most notably S3, do not report the amount of bytes used.
3894 If you need this information to be available when running df on the
3895 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
3896 flag set, instead of relying on the backend to report this information,
3897 rclone will scan the whole remote similar to rclone size and compute
3898 the total used space itself.
3899
3900 WARNING. Contrary to rclone size, this flag ignores filters so that the
3901 result is accurate. However, this is very inefficient and may cost
3902 lots of API calls resulting in extra charges. Use it as a last resort
3903 and only with caching.
3904
3905 rclone mount remote:path /path/to/mountpoint [flags]
3906
3907 Options
3908 --allow-non-empty Allow mounting over a non-empty directory (not supported on Windows)
3909 --allow-other Allow access to other users (not supported on Windows)
3910 --allow-root Allow access to root user (not supported on Windows)
3911 --async-read Use asynchronous reads (not supported on Windows) (default true)
3912 --attr-timeout duration Time for which file/directory attributes are cached (default 1s)
3913 --daemon Run mount in background and exit parent process (as background output is suppressed, use --log-file with --log-format=pid,... to monitor) (not supported on Windows)
3914 --daemon-timeout duration Time limit for rclone to respond to kernel (not supported on Windows)
3915 --daemon-wait duration Time to wait for ready mount from daemon (maximum time on Linux, constant sleep time on OSX/BSD) (not supported on Windows) (default 1m0s)
3916 --debug-fuse Debug the FUSE internals - needs -v
3917 --default-permissions Makes kernel enforce access control based on the file mode (not supported on Windows)
3918 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
3919 --dir-perms FileMode Directory permissions (default 0777)
3920 --file-perms FileMode File permissions (default 0666)
3921 --fuse-flag stringArray Flags or arguments to be passed direct to libfuse/WinFsp (repeat if required)
3922 --gid uint32 Override the gid field set by the filesystem (not supported on Windows) (default 1000)
3923 -h, --help help for mount
3924 --max-read-ahead SizeSuffix The number of bytes that can be prefetched for sequential reads (not supported on Windows) (default 128Ki)
3925 --network-mode Mount as remote network drive, instead of fixed disk drive (supported on Windows only)
3926 --no-checksum Don't compare checksums on up/download
3927 --no-modtime Don't read/write the modification time (can speed things up)
3928 --no-seek Don't allow seeking in files
3929 --noappledouble Ignore Apple Double (._) and .DS_Store files (supported on OSX only) (default true)
3930 --noapplexattr Ignore all "com.apple.*" extended attributes (supported on OSX only)
3931 -o, --option stringArray Option for libfuse/WinFsp (repeat if required)
3932 --poll-interval duration Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s)
3933 --read-only Mount read-only
3934 --uid uint32 Override the uid field set by the filesystem (not supported on Windows) (default 1000)
3935 --umask int Override the permission bits set by the filesystem (not supported on Windows) (default 2)
3936 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
3937 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
3938 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3939 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
3940 --vfs-case-insensitive If a file name not found, find a case insensitive match
3941 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full
3942 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128Mi)
3943 --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached ('off' is unlimited) (default off)
3944 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
3945 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size
3946 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
3947 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
3948 --volname string Set the volume name (supported on Windows and OSX only)
3949 --write-back-cache Makes kernel buffer writes before sending them to rclone (without this, writethrough caching is used) (not supported on Windows)
3950
3951 See the global flags page (https://rclone.org/flags/) for global op‐
3952 tions not listed here.
3953
3954 SEE ALSO
3955 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3956 commands, flags and backends.
3957
3959 Move file or directory from source to dest.
3960
3961 Synopsis
3962 If source:path is a file or directory then it moves it to a file or di‐
3963 rectory named dest:path.
3964
3965 This can be used to rename files or upload single files to other than
3966 their existing name. If the source is a directory then it acts exactly
3967 like the move command.
3968
3969 So
3970
3971 rclone moveto src dst
3972
3973 where src and dst are rclone paths, either remote:path or /path/to/lo‐
3974 cal or C:.
3975
3976 This will:
3977
3978 if src is file
3979 move it to dst, overwriting an existing file if it exists
3980 if src is directory
3981 move it to dst, overwriting existing files if they exist
3982 see move command for full details
3983
3984 This doesn't transfer files that are identical on src and dst, testing
3985 by size and modification time or MD5SUM. src will be deleted on suc‐
3986 cessful transfer.
3987
3988 Important: Since this can cause data loss, test first with the
3989 --dry-run or the --interactive/-i flag.
3990
3991 Note: Use the -P/--progress flag to view real-time transfer statistics.
3992
3993 rclone moveto source:path dest:path [flags]
3994
3995 Options
3996 -h, --help help for moveto
3997
3998 See the global flags page (https://rclone.org/flags/) for global op‐
3999 tions not listed here.
4000
4001 SEE ALSO
4002 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4003 commands, flags and backends.
4004
4006 Explore a remote with a text based user interface.
4007
4008 Synopsis
4009 This displays a text based user interface allowing the navigation of a
4010 remote. It is most useful for answering the question - "What is using
4011 all my disk space?".
4012
4013 To make the user interface it first scans the entire remote given and
4014 builds an in memory representation. rclone ncdu can be used during
4015 this scanning phase and you will see it building up the directory
4016 structure as it goes along.
4017
4018 Here are the keys - press '?' to toggle the help on and off
4019
4020 ↑,↓ or k,j to Move
4021 →,l to enter
4022 ←,h to return
4023 c toggle counts
4024 g toggle graph
4025 a toggle average size in directory
4026 u toggle human-readable format
4027 n,s,C,A sort by name,size,count,average size
4028 d delete file/directory
4029 y copy current path to clipboard
4030 Y display current path
4031 ^L refresh screen
4032 ? to toggle help on and off
4033 q/ESC/c-C to quit
4034
4035 This an homage to the ncdu tool (https://dev.yorhel.nl/ncdu) but for
4036 rclone remotes. It is missing lots of features at the moment but is
4037 useful as it stands.
4038
4039 Note that it might take some time to delete big files/folders. The UI
4040 won't respond in the meantime since the deletion is done synchronously.
4041
4042 rclone ncdu remote:path [flags]
4043
4044 Options
4045 -h, --help help for ncdu
4046
4047 See the global flags page (https://rclone.org/flags/) for global op‐
4048 tions not listed here.
4049
4050 SEE ALSO
4051 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4052 commands, flags and backends.
4053
4055 Obscure password for use in the rclone config file.
4056
4057 Synopsis
4058 In the rclone config file, human readable passwords are obscured. Ob‐
4059 scuring them is done by encrypting them and writing them out in base64.
4060 This is not a secure way of encrypting these passwords as rclone can
4061 decrypt them - it is to prevent "eyedropping" - namely someone seeing a
4062 password in the rclone config file by accident.
4063
4064 Many equally important things (like access tokens) are not obscured in
4065 the config file. However it is very hard to shoulder surf a 64 charac‐
4066 ter hex token.
4067
4068 This command can also accept a password through STDIN instead of an ar‐
4069 gument by passing a hyphen as an argument. This will use the first
4070 line of STDIN as the password not including the trailing newline.
4071
4072 echo "secretpassword" | rclone obscure -
4073
4074 If there is no data on STDIN to read, rclone obscure will default to
4075 obfuscating the hyphen itself.
4076
4077 If you want to encrypt the config file then please use config file en‐
4078 cryption - see rclone config (https://rclone.org/commands/rclone_con‐
4079 fig/) for more info.
4080
4081 rclone obscure password [flags]
4082
4083 Options
4084 -h, --help help for obscure
4085
4086 See the global flags page (https://rclone.org/flags/) for global op‐
4087 tions not listed here.
4088
4089 SEE ALSO
4090 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4091 commands, flags and backends.
4092
4094 Run a command against a running rclone.
4095
4096 Synopsis
4097 This runs a command against a running rclone. Use the --url flag to
4098 specify an non default URL to connect on. This can be either a ":port"
4099 which is taken to mean "http://localhost:port" or a "host:port" which
4100 is taken to mean "http://host:port"
4101
4102 A username and password can be passed in with --user and --pass.
4103
4104 Note that --rc-addr, --rc-user, --rc-pass will be read also for --url,
4105 --user, --pass.
4106
4107 Arguments should be passed in as parameter=value.
4108
4109 The result will be returned as a JSON object by default.
4110
4111 The --json parameter can be used to pass in a JSON blob as an input in‐
4112 stead of key=value arguments. This is the only way of passing in more
4113 complicated values.
4114
4115 The -o/--opt option can be used to set a key "opt" with key, value op‐
4116 tions in the form "-o key=value" or "-o key". It can be repeated as
4117 many times as required. This is useful for rc commands which take the
4118 "opt" parameter which by convention is a dictionary of strings.
4119
4120 -o key=value -o key2
4121
4122 Will place this in the "opt" value
4123
4124 {"key":"value", "key2","")
4125
4126 The -a/--arg option can be used to set strings in the "arg" value. It
4127 can be repeated as many times as required. This is useful for rc com‐
4128 mands which take the "arg" parameter which by convention is a list of
4129 strings.
4130
4131 -a value -a value2
4132
4133 Will place this in the "arg" value
4134
4135 ["value", "value2"]
4136
4137 Use --loopback to connect to the rclone instance running "rclone rc".
4138 This is very useful for testing commands without having to run an
4139 rclone rc server, e.g.:
4140
4141 rclone rc --loopback operations/about fs=/
4142
4143 Use "rclone rc" to see a list of all possible commands.
4144
4145 rclone rc commands parameter [flags]
4146
4147 Options
4148 -a, --arg stringArray Argument placed in the "arg" array
4149 -h, --help help for rc
4150 --json string Input JSON - use instead of key=value args
4151 --loopback If set connect to this rclone instance not via HTTP
4152 --no-output If set, don't output the JSON result
4153 -o, --opt stringArray Option in the form name=value or name placed in the "opt" array
4154 --pass string Password to use to connect to rclone remote control
4155 --url string URL to connect to rclone remote control (default "http://localhost:5572/")
4156 --user string Username to use to rclone remote control
4157
4158 See the global flags page (https://rclone.org/flags/) for global op‐
4159 tions not listed here.
4160
4161 SEE ALSO
4162 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4163 commands, flags and backends.
4164
4166 Copies standard input to file on remote.
4167
4168 Synopsis
4169 rclone rcat reads from standard input (stdin) and copies it to a single
4170 remote file.
4171
4172 echo "hello world" | rclone rcat remote:path/to/file
4173 ffmpeg - | rclone rcat remote:path/to/file
4174
4175 If the remote file already exists, it will be overwritten.
4176
4177 rcat will try to upload small files in a single request, which is usu‐
4178 ally more efficient than the streaming/chunked upload endpoints, which
4179 use multiple requests. Exact behaviour depends on the remote. What is
4180 considered a small file may be set through --streaming-upload-cutoff.
4181 Uploading only starts after the cutoff is reached or if the file ends
4182 before that. The data must fit into RAM. The cutoff needs to be small
4183 enough to adhere the limits of your remote, please see there. General‐
4184 ly speaking, setting this cutoff too high will decrease your perfor‐
4185 mance.
4186
4187 Use the |--size| flag to preallocate the file in advance at the remote
4188 end and actually stream it, even if remote backend doesn't support
4189 streaming.
4190
4191 |--size| should be the exact size of the input stream in bytes. If the
4192 size of the stream is different in length to the |--size| passed in
4193 then the transfer will likely fail.
4194
4195 Note that the upload can also not be retried because the data is not
4196 kept around until the upload succeeds. If you need to transfer a lot
4197 of data, you're better off caching locally and then rclone move it to
4198 the destination.
4199
4200 rclone rcat remote:path [flags]
4201
4202 Options
4203 -h, --help help for rcat
4204 --size int File size hint to preallocate (default -1)
4205
4206 See the global flags page (https://rclone.org/flags/) for global op‐
4207 tions not listed here.
4208
4209 SEE ALSO
4210 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4211 commands, flags and backends.
4212
4214 Run rclone listening to remote control commands only.
4215
4216 Synopsis
4217 This runs rclone so that it only listens to remote control commands.
4218
4219 This is useful if you are controlling rclone via the rc API.
4220
4221 If you pass in a path to a directory, rclone will serve that directory
4222 for GET requests on the URL passed in. It will also open the URL in
4223 the browser when rclone is run.
4224
4225 See the rc documentation (https://rclone.org/rc/) for more info on the
4226 rc flags.
4227
4228 rclone rcd <path to files to serve>* [flags]
4229
4230 Options
4231 -h, --help help for rcd
4232
4233 See the global flags page (https://rclone.org/flags/) for global op‐
4234 tions not listed here.
4235
4236 SEE ALSO
4237 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4238 commands, flags and backends.
4239
4241 Remove empty directories under the path.
4242
4243 Synopsis
4244 This recursively removes any empty directories (including directories
4245 that only contain empty directories), that it finds under the path.
4246 The root path itself will also be removed if it is empty, unless you
4247 supply the --leave-root flag.
4248
4249 Use command rmdir to delete just the empty directory given by path, not
4250 recurse.
4251
4252 This is useful for tidying up remotes that rclone has left a lot of
4253 empty directories in. For example the delete command will delete files
4254 but leave the directory structure (unless used with option --rmdirs).
4255
4256 To delete a path and any objects in it, use purge command.
4257
4258 rclone rmdirs remote:path [flags]
4259
4260 Options
4261 -h, --help help for rmdirs
4262 --leave-root Do not remove root directory if empty
4263
4264 See the global flags page (https://rclone.org/flags/) for global op‐
4265 tions not listed here.
4266
4267 SEE ALSO
4268 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4269 commands, flags and backends.
4270
4272 Update the rclone binary.
4273
4274 Synopsis
4275 This command downloads the latest release of rclone and replaces the
4276 currently running binary. The download is verified with a hashsum and
4277 cryptographically signed signature.
4278
4279 If used without flags (or with implied --stable flag), this command
4280 will install the latest stable release. However, some issues may be
4281 fixed (or features added) only in the latest beta release. In such
4282 cases you should run the command with the --beta flag, i.e. rclone
4283 selfupdate --beta. You can check in advance what version would be in‐
4284 stalled by adding the --check flag, then repeat the command without it
4285 when you are satisfied.
4286
4287 Sometimes the rclone team may recommend you a concrete beta or stable
4288 rclone release to troubleshoot your issue or add a bleeding edge fea‐
4289 ture. The --version VER flag, if given, will update to the concrete
4290 version instead of the latest one. If you omit micro version from VER
4291 (for example 1.53), the latest matching micro version will be used.
4292
4293 Upon successful update rclone will print a message that contains a pre‐
4294 vious version number. You will need it if you later decide to revert
4295 your update for some reason. Then you'll have to note the previous
4296 version and run the following command: rclone selfupdate [--beta] OLD‐
4297 VER. If the old version contains only dots and digits (for example
4298 v1.54.0) then it's a stable release so you won't need the --beta flag.
4299 Beta releases have an additional information similar to v1.54.0-be‐
4300 ta.5111.06f1c0c61. (if you are a developer and use a locally built
4301 rclone, the version number will end with -DEV, you will have to rebuild
4302 it as it obviously can't be distributed).
4303
4304 If you previously installed rclone via a package manager, the package
4305 may include local documentation or configure services. You may wish to
4306 update with the flag --package deb or --package rpm (whichever is cor‐
4307 rect for your OS) to update these too. This command with the default
4308 --package zip will update only the rclone executable so the local manu‐
4309 al may become inaccurate after it.
4310
4311 The rclone mount command (https://rclone.org/commands/rclone_mount/)
4312 may or may not support extended FUSE options depending on the build and
4313 OS. selfupdate will refuse to update if the capability would be dis‐
4314 carded.
4315
4316 Note: Windows forbids deletion of a currently running executable so
4317 this command will rename the old executable to 'rclone.old.exe' upon
4318 success.
4319
4320 Please note that this command was not available before rclone version
4321 1.55. If it fails for you with the message unknown command "selfup‐
4322 date" then you will need to update manually following the install in‐
4323 structions located at https://rclone.org/install/
4324
4325 rclone selfupdate [flags]
4326
4327 Options
4328 --beta Install beta release
4329 --check Check for latest release, do not download
4330 -h, --help help for selfupdate
4331 --output string Save the downloaded binary at a given path (default: replace running binary)
4332 --package string Package format: zip|deb|rpm (default: zip)
4333 --stable Install stable release (this is the default)
4334 --version string Install the given rclone version (default: latest)
4335
4336 See the global flags page (https://rclone.org/flags/) for global op‐
4337 tions not listed here.
4338
4339 SEE ALSO
4340 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4341 commands, flags and backends.
4342
4344 Serve a remote over a protocol.
4345
4346 Synopsis
4347 rclone serve is used to serve a remote over a given protocol. This
4348 command requires the use of a subcommand to specify the protocol, e.g.
4349
4350 rclone serve http remote:
4351
4352 Each subcommand has its own options which you can see in their help.
4353
4354 rclone serve <protocol> [opts] <remote> [flags]
4355
4356 Options
4357 -h, --help help for serve
4358
4359 See the global flags page (https://rclone.org/flags/) for global op‐
4360 tions not listed here.
4361
4362 SEE ALSO
4363 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4364 commands, flags and backends.
4365
4366 • rclone serve dlna (https://rclone.org/commands/rclone_serve_dlna/) -
4367 Serve remote:path over DLNA
4368
4369 • rclone serve docker (https://rclone.org/commands/rclone_serve_dock‐
4370 er/) - Serve any remote on docker's volume plugin API.
4371
4372 • rclone serve ftp (https://rclone.org/commands/rclone_serve_ftp/) -
4373 Serve remote:path over FTP.
4374
4375 • rclone serve http (https://rclone.org/commands/rclone_serve_http/) -
4376 Serve the remote over HTTP.
4377
4378 • rclone serve restic (https://rclone.org/com‐
4379 mands/rclone_serve_restic/) - Serve the remote for restic's REST API.
4380
4381 • rclone serve sftp (https://rclone.org/commands/rclone_serve_sftp/) -
4382 Serve the remote over SFTP.
4383
4384 • rclone serve webdav (https://rclone.org/commands/rclone_serve_web‐
4385 dav/) - Serve remote:path over webdav.
4386
4388 Serve remote:path over DLNA
4389
4390 Synopsis
4391 rclone serve dlna is a DLNA media server for media stored in an rclone
4392 remote. Many devices, such as the Xbox and PlayStation, can automati‐
4393 cally discover this server in the LAN and play audio/video from it.
4394 VLC is also supported. Service discovery uses UDP multicast packets
4395 (SSDP) and will thus only work on LANs.
4396
4397 Rclone will list all files present in the remote, without filtering
4398 based on media formats or file extensions. Additionally, there is no
4399 media transcoding support. This means that some players might show
4400 files that they are not able to play back correctly.
4401
4402 Server options
4403 Use --addr to specify which IP address and port the server should lis‐
4404 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
4405
4406 Use --name to choose the friendly server name, which is by default
4407 "rclone (hostname)".
4408
4409 Use --log-trace in conjunction with -vv to enable additional debug log‐
4410 ging of all UPNP traffic.
4411
4412 VFS - Virtual File System
4413 This command uses the VFS layer. This adapts the cloud storage objects
4414 that rclone uses into something which looks much more like a disk fil‐
4415 ing system.
4416
4417 Cloud storage objects have lots of properties which aren't like disk
4418 files - you can't extend them or write to the middle of them, so the
4419 VFS layer has to deal with that. Because there is no one right way of
4420 doing this there are various options explained below.
4421
4422 The VFS layer also implements a directory cache - this caches info
4423 about files and directories (but not the data) in memory.
4424
4425 VFS Directory Cache
4426 Using the --dir-cache-time flag, you can control how long a directory
4427 should be considered up to date and not refreshed from the backend.
4428 Changes made through the mount will appear immediately or invalidate
4429 the cache.
4430
4431 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
4432 --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
4433
4434 However, changes made directly on the cloud storage by the web inter‐
4435 face or a different copy of rclone will only be picked up once the di‐
4436 rectory cache expires if the backend configured does not support
4437 polling for changes. If the backend supports polling, changes will be
4438 picked up within the polling interval.
4439
4440 You can send a SIGHUP signal to rclone for it to flush all directory
4441 caches, regardless of how old they are. Assuming only one rclone in‐
4442 stance is running, you can reset the cache like this:
4443
4444 kill -SIGHUP $(pidof rclone)
4445
4446 If you configure rclone with a remote control (/rc) then you can use
4447 rclone rc to flush the whole directory cache:
4448
4449 rclone rc vfs/forget
4450
4451 Or individual files or directories:
4452
4453 rclone rc vfs/forget file=path/to/file dir=path/to/dir
4454
4455 VFS File Buffering
4456 The --buffer-size flag determines the amount of memory, that will be
4457 used to buffer data in advance.
4458
4459 Each open file will try to keep the specified amount of data in memory
4460 at all times. The buffered data is bound to one open file and won't be
4461 shared.
4462
4463 This flag is a upper limit for the used memory per open file. The buf‐
4464 fer will only use memory for data that is downloaded but not not yet
4465 read. If the buffer is empty, only a small amount of memory will be
4466 used.
4467
4468 The maximum memory used by rclone for buffering can be up to --buf‐
4469 fer-size * open files.
4470
4471 VFS File Caching
4472 These flags control the VFS file caching options. File caching is nec‐
4473 essary to make the VFS layer appear compatible with a normal file sys‐
4474 tem. It can be disabled at the cost of some compatibility.
4475
4476 For example you'll need to enable VFS caching if you want to read and
4477 write simultaneously to a file. See below for more details.
4478
4479 Note that the VFS cache is separate from the cache backend and you may
4480 find that you need one or the other or both.
4481
4482 --cache-dir string Directory rclone will use for caching.
4483 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4484 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
4485 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
4486 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
4487 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
4488
4489 If run with -vv rclone will print the location of the file cache. The
4490 files are stored in the user cache file area which is OS dependent but
4491 can be controlled with --cache-dir or setting the appropriate environ‐
4492 ment variable.
4493
4494 The cache has 4 different modes selected by --vfs-cache-mode. The
4495 higher the cache mode the more compatible rclone becomes at the cost of
4496 using disk space.
4497
4498 Note that files are written back to the remote only when they are
4499 closed and if they haven't been accessed for --vfs-write-back seconds.
4500 If rclone is quit or dies with files that haven't been uploaded, these
4501 will be uploaded next time rclone is run with the same flags.
4502
4503 If using --vfs-cache-max-size note that the cache may exceed this size
4504 for two reasons. Firstly because it is only checked every
4505 --vfs-cache-poll-interval. Secondly because open files cannot be
4506 evicted from the cache.
4507
4508 You should not run two copies of rclone using the same VFS cache with
4509 the same or overlapping remotes if using --vfs-cache-mode > off. This
4510 can potentially cause data corruption if you do. You can work around
4511 this by giving each rclone its own cache hierarchy with --cache-dir.
4512 You don't need to worry about this if the remotes in use don't overlap.
4513
4514 --vfs-cache-mode off
4515 In this mode (the default) the cache will read directly from the remote
4516 and write directly to the remote without caching anything on disk.
4517
4518 This will mean some operations are not possible
4519
4520 • Files can't be opened for both read AND write
4521
4522 • Files opened for write can't be seeked
4523
4524 • Existing files opened for write must have O_TRUNC set
4525
4526 • Files open for read with O_TRUNC will be opened write only
4527
4528 • Files open for write only will behave as if O_TRUNC was supplied
4529
4530 • Open modes O_APPEND, O_TRUNC are ignored
4531
4532 • If an upload fails it can't be retried
4533
4534 --vfs-cache-mode minimal
4535 This is very similar to "off" except that files opened for read AND
4536 write will be buffered to disk. This means that files opened for write
4537 will be a lot more compatible, but uses the minimal disk space.
4538
4539 These operations are not possible
4540
4541 • Files opened for write only can't be seeked
4542
4543 • Existing files opened for write must have O_TRUNC set
4544
4545 • Files opened for write only will ignore O_APPEND, O_TRUNC
4546
4547 • If an upload fails it can't be retried
4548
4549 --vfs-cache-mode writes
4550 In this mode files opened for read only are still read directly from
4551 the remote, write only and read/write files are buffered to disk first.
4552
4553 This mode should support all normal file system operations.
4554
4555 If an upload fails it will be retried at exponentially increasing in‐
4556 tervals up to 1 minute.
4557
4558 --vfs-cache-mode full
4559 In this mode all reads and writes are buffered to and from disk. When
4560 data is read from the remote this is buffered to disk as well.
4561
4562 In this mode the files in the cache will be sparse files and rclone
4563 will keep track of which bits of the files it has downloaded.
4564
4565 So if an application only reads the starts of each file, then rclone
4566 will only buffer the start of the file. These files will appear to be
4567 their full size in the cache, but they will be sparse files with only
4568 the data that has been downloaded present in them.
4569
4570 This mode should support all normal file system operations and is oth‐
4571 erwise identical to --vfs-cache-mode writes.
4572
4573 When reading a file rclone will read --buffer-size plus
4574 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
4575 whereas the --vfs-read-ahead is buffered on disk.
4576
4577 When using this mode it is recommended that --buffer-size is not set
4578 too large and --vfs-read-ahead is set large if required.
4579
4580 IMPORTANT not all file systems support sparse files. In particular
4581 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
4582 ry is on a filesystem which doesn't support sparse files and it will
4583 log an ERROR message if one is detected.
4584
4585 VFS Chunked Reading
4586 When rclone reads files from a remote it reads them in chunks. This
4587 means that rather than requesting the whole file rclone reads the chunk
4588 specified. This can reduce the used download quota for some remotes by
4589 requesting only chunks from the remote that are actually read, at the
4590 cost of an increased number of requests.
4591
4592 These flags control the chunking:
4593
4594 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
4595 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
4596
4597 Rclone will start reading a chunk of size --vfs-read-chunk-size, and
4598 then double the size for each read. When --vfs-read-chunk-size-limit
4599 is specified, and greater than --vfs-read-chunk-size, the chunk size
4600 for each open file will get doubled only until the specified value is
4601 reached. If the value is "off", which is the default, the limit is
4602 disabled and the chunk size will grow indefinitely.
4603
4604 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
4605 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
4606 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
4607 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
4608 1200M-1700M and so on.
4609
4610 Setting --vfs-read-chunk-size to 0 or "off" disables chunked reading.
4611
4612 VFS Performance
4613 These flags may be used to enable/disable features of the VFS for per‐
4614 formance or other reasons. See also the chunked reading feature.
4615
4616 In particular S3 and Swift benefit hugely from the --no-modtime flag
4617 (or use --use-server-modtime for a slightly different effect) as each
4618 read of the modification time takes a transaction.
4619
4620 --no-checksum Don't compare checksums on up/download.
4621 --no-modtime Don't read/write the modification time (can speed things up).
4622 --no-seek Don't allow seeking in files.
4623 --read-only Mount read-only.
4624
4625 Sometimes rclone is delivered reads or writes out of order. Rather
4626 than seeking rclone will wait a short time for the in sequence read or
4627 write to come in. These flags only come into effect when not using an
4628 on disk cache file.
4629
4630 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
4631 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
4632
4633 When using VFS write caching (--vfs-cache-mode with value writes or
4634 full), the global flag --transfers can be set to adjust the number of
4635 parallel uploads of modified files from cache (the related global flag
4636 --checkers have no effect on mount).
4637
4638 --transfers int Number of file transfers to run in parallel (default 4)
4639
4640 VFS Case Sensitivity
4641 Linux file systems are case-sensitive: two files can differ only by
4642 case, and the exact case must be used when opening a file.
4643
4644 File systems in modern Windows are case-insensitive but case-preserv‐
4645 ing: although existing files can be opened using any case, the exact
4646 case used to create the file is preserved and available for programs to
4647 query. It is not allowed for two files in the same directory to differ
4648 only by case.
4649
4650 Usually file systems on macOS are case-insensitive. It is possible to
4651 make macOS file systems case-sensitive but that is not the default.
4652
4653 The --vfs-case-insensitive mount flag controls how rclone handles these
4654 two cases. If its value is "false", rclone passes file names to the
4655 mounted file system as-is. If the flag is "true" (or appears without a
4656 value on command line), rclone may perform a "fixup" as explained be‐
4657 low.
4658
4659 The user may specify a file name to open/delete/rename/etc with a case
4660 different than what is stored on mounted file system. If an argument
4661 refers to an existing file with exactly the same name, then the case of
4662 the existing file on the disk will be used. However, if a file name
4663 with exactly the same name is not found but a name differing only by
4664 case exists, rclone will transparently fixup the name. This fixup hap‐
4665 pens only when an existing file is requested. Case sensitivity of file
4666 names created anew by rclone is controlled by an underlying mounted
4667 file system.
4668
4669 Note that case sensitivity of the operating system running rclone (the
4670 target) may differ from case sensitivity of a file system mounted by
4671 rclone (the source). The flag controls whether "fixup" is performed to
4672 satisfy the target.
4673
4674 If the flag is not provided on the command line, then its default value
4675 depends on the operating system where rclone runs: "true" on Windows
4676 and macOS, "false" otherwise. If the flag is provided without a value,
4677 then it is "true".
4678
4679 Alternate report of used bytes
4680 Some backends, most notably S3, do not report the amount of bytes used.
4681 If you need this information to be available when running df on the
4682 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
4683 flag set, instead of relying on the backend to report this information,
4684 rclone will scan the whole remote similar to rclone size and compute
4685 the total used space itself.
4686
4687 WARNING. Contrary to rclone size, this flag ignores filters so that the
4688 result is accurate. However, this is very inefficient and may cost
4689 lots of API calls resulting in extra charges. Use it as a last resort
4690 and only with caching.
4691
4692 rclone serve dlna remote:path [flags]
4693
4694 Options
4695 --addr string The ip:port or :port to bind the DLNA http server to (default ":7879")
4696 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
4697 --dir-perms FileMode Directory permissions (default 0777)
4698 --file-perms FileMode File permissions (default 0666)
4699 --gid uint32 Override the gid field set by the filesystem (not supported on Windows) (default 1000)
4700 -h, --help help for dlna
4701 --log-trace Enable trace logging of SOAP traffic
4702 --name string Name of DLNA server
4703 --no-checksum Don't compare checksums on up/download
4704 --no-modtime Don't read/write the modification time (can speed things up)
4705 --no-seek Don't allow seeking in files
4706 --poll-interval duration Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s)
4707 --read-only Mount read-only
4708 --uid uint32 Override the uid field set by the filesystem (not supported on Windows) (default 1000)
4709 --umask int Override the permission bits set by the filesystem (not supported on Windows) (default 2)
4710 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
4711 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
4712 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4713 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
4714 --vfs-case-insensitive If a file name not found, find a case insensitive match
4715 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full
4716 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128Mi)
4717 --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached ('off' is unlimited) (default off)
4718 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
4719 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size
4720 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
4721 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
4722
4723 See the global flags page (https://rclone.org/flags/) for global op‐
4724 tions not listed here.
4725
4726 SEE ALSO
4727 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
4728 remote over a protocol.
4729
4731 Serve any remote on docker's volume plugin API.
4732
4733 Synopsis
4734 This command implements the Docker volume plugin API allowing docker to
4735 use rclone as a data storage mechanism for various cloud providers.
4736 rclone provides docker volume plugin (/docker) based on it.
4737
4738 To create a docker plugin, one must create a Unix or TCP socket that
4739 Docker will look for when you use the plugin and then it listens for
4740 commands from docker daemon and runs the corresponding code when neces‐
4741 sary. Docker plugins can run as a managed plugin under control of the
4742 docker daemon or as an independent native service. For testing, you
4743 can just run it directly from the command line, for example:
4744
4745 sudo rclone serve docker --base-dir /tmp/rclone-volumes --socket-addr localhost:8787 -vv
4746
4747 Running rclone serve docker will create the said socket, listening for
4748 commands from Docker to create the necessary Volumes. Normally you
4749 need not give the --socket-addr flag. The API will listen on the unix
4750 domain socket at /run/docker/plugins/rclone.sock. In the example above
4751 rclone will create a TCP socket and a small file /etc/docker/plug‐
4752 ins/rclone.spec containing the socket address. We use sudo because
4753 both paths are writeable only by the root user.
4754
4755 If you later decide to change listening socket, the docker daemon must
4756 be restarted to reconnect to /run/docker/plugins/rclone.sock or parse
4757 new /etc/docker/plugins/rclone.spec. Until you restart, any volume re‐
4758 lated docker commands will timeout trying to access the old socket.
4759 Running directly is supported on Linux only, not on Windows or MacOS.
4760 This is not a problem with managed plugin mode described in details in
4761 the full documentation (https://rclone.org/docker).
4762
4763 The command will create volume mounts under the path given by
4764 --base-dir (by default /var/lib/docker-volumes/rclone available only to
4765 root) and maintain the JSON formatted file docker-plugin.state in the
4766 rclone cache directory with book-keeping records of created and mounted
4767 volumes.
4768
4769 All mount and VFS options are submitted by the docker daemon via API,
4770 but you can also provide defaults on the command line as well as set
4771 path to the config file and cache directory or adjust logging verbosi‐
4772 ty.
4773
4774 VFS - Virtual File System
4775 This command uses the VFS layer. This adapts the cloud storage objects
4776 that rclone uses into something which looks much more like a disk fil‐
4777 ing system.
4778
4779 Cloud storage objects have lots of properties which aren't like disk
4780 files - you can't extend them or write to the middle of them, so the
4781 VFS layer has to deal with that. Because there is no one right way of
4782 doing this there are various options explained below.
4783
4784 The VFS layer also implements a directory cache - this caches info
4785 about files and directories (but not the data) in memory.
4786
4787 VFS Directory Cache
4788 Using the --dir-cache-time flag, you can control how long a directory
4789 should be considered up to date and not refreshed from the backend.
4790 Changes made through the mount will appear immediately or invalidate
4791 the cache.
4792
4793 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
4794 --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
4795
4796 However, changes made directly on the cloud storage by the web inter‐
4797 face or a different copy of rclone will only be picked up once the di‐
4798 rectory cache expires if the backend configured does not support
4799 polling for changes. If the backend supports polling, changes will be
4800 picked up within the polling interval.
4801
4802 You can send a SIGHUP signal to rclone for it to flush all directory
4803 caches, regardless of how old they are. Assuming only one rclone in‐
4804 stance is running, you can reset the cache like this:
4805
4806 kill -SIGHUP $(pidof rclone)
4807
4808 If you configure rclone with a remote control (/rc) then you can use
4809 rclone rc to flush the whole directory cache:
4810
4811 rclone rc vfs/forget
4812
4813 Or individual files or directories:
4814
4815 rclone rc vfs/forget file=path/to/file dir=path/to/dir
4816
4817 VFS File Buffering
4818 The --buffer-size flag determines the amount of memory, that will be
4819 used to buffer data in advance.
4820
4821 Each open file will try to keep the specified amount of data in memory
4822 at all times. The buffered data is bound to one open file and won't be
4823 shared.
4824
4825 This flag is a upper limit for the used memory per open file. The buf‐
4826 fer will only use memory for data that is downloaded but not not yet
4827 read. If the buffer is empty, only a small amount of memory will be
4828 used.
4829
4830 The maximum memory used by rclone for buffering can be up to --buf‐
4831 fer-size * open files.
4832
4833 VFS File Caching
4834 These flags control the VFS file caching options. File caching is nec‐
4835 essary to make the VFS layer appear compatible with a normal file sys‐
4836 tem. It can be disabled at the cost of some compatibility.
4837
4838 For example you'll need to enable VFS caching if you want to read and
4839 write simultaneously to a file. See below for more details.
4840
4841 Note that the VFS cache is separate from the cache backend and you may
4842 find that you need one or the other or both.
4843
4844 --cache-dir string Directory rclone will use for caching.
4845 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4846 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
4847 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
4848 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
4849 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
4850
4851 If run with -vv rclone will print the location of the file cache. The
4852 files are stored in the user cache file area which is OS dependent but
4853 can be controlled with --cache-dir or setting the appropriate environ‐
4854 ment variable.
4855
4856 The cache has 4 different modes selected by --vfs-cache-mode. The
4857 higher the cache mode the more compatible rclone becomes at the cost of
4858 using disk space.
4859
4860 Note that files are written back to the remote only when they are
4861 closed and if they haven't been accessed for --vfs-write-back seconds.
4862 If rclone is quit or dies with files that haven't been uploaded, these
4863 will be uploaded next time rclone is run with the same flags.
4864
4865 If using --vfs-cache-max-size note that the cache may exceed this size
4866 for two reasons. Firstly because it is only checked every
4867 --vfs-cache-poll-interval. Secondly because open files cannot be
4868 evicted from the cache.
4869
4870 You should not run two copies of rclone using the same VFS cache with
4871 the same or overlapping remotes if using --vfs-cache-mode > off. This
4872 can potentially cause data corruption if you do. You can work around
4873 this by giving each rclone its own cache hierarchy with --cache-dir.
4874 You don't need to worry about this if the remotes in use don't overlap.
4875
4876 --vfs-cache-mode off
4877 In this mode (the default) the cache will read directly from the remote
4878 and write directly to the remote without caching anything on disk.
4879
4880 This will mean some operations are not possible
4881
4882 • Files can't be opened for both read AND write
4883
4884 • Files opened for write can't be seeked
4885
4886 • Existing files opened for write must have O_TRUNC set
4887
4888 • Files open for read with O_TRUNC will be opened write only
4889
4890 • Files open for write only will behave as if O_TRUNC was supplied
4891
4892 • Open modes O_APPEND, O_TRUNC are ignored
4893
4894 • If an upload fails it can't be retried
4895
4896 --vfs-cache-mode minimal
4897 This is very similar to "off" except that files opened for read AND
4898 write will be buffered to disk. This means that files opened for write
4899 will be a lot more compatible, but uses the minimal disk space.
4900
4901 These operations are not possible
4902
4903 • Files opened for write only can't be seeked
4904
4905 • Existing files opened for write must have O_TRUNC set
4906
4907 • Files opened for write only will ignore O_APPEND, O_TRUNC
4908
4909 • If an upload fails it can't be retried
4910
4911 --vfs-cache-mode writes
4912 In this mode files opened for read only are still read directly from
4913 the remote, write only and read/write files are buffered to disk first.
4914
4915 This mode should support all normal file system operations.
4916
4917 If an upload fails it will be retried at exponentially increasing in‐
4918 tervals up to 1 minute.
4919
4920 --vfs-cache-mode full
4921 In this mode all reads and writes are buffered to and from disk. When
4922 data is read from the remote this is buffered to disk as well.
4923
4924 In this mode the files in the cache will be sparse files and rclone
4925 will keep track of which bits of the files it has downloaded.
4926
4927 So if an application only reads the starts of each file, then rclone
4928 will only buffer the start of the file. These files will appear to be
4929 their full size in the cache, but they will be sparse files with only
4930 the data that has been downloaded present in them.
4931
4932 This mode should support all normal file system operations and is oth‐
4933 erwise identical to --vfs-cache-mode writes.
4934
4935 When reading a file rclone will read --buffer-size plus
4936 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
4937 whereas the --vfs-read-ahead is buffered on disk.
4938
4939 When using this mode it is recommended that --buffer-size is not set
4940 too large and --vfs-read-ahead is set large if required.
4941
4942 IMPORTANT not all file systems support sparse files. In particular
4943 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
4944 ry is on a filesystem which doesn't support sparse files and it will
4945 log an ERROR message if one is detected.
4946
4947 VFS Chunked Reading
4948 When rclone reads files from a remote it reads them in chunks. This
4949 means that rather than requesting the whole file rclone reads the chunk
4950 specified. This can reduce the used download quota for some remotes by
4951 requesting only chunks from the remote that are actually read, at the
4952 cost of an increased number of requests.
4953
4954 These flags control the chunking:
4955
4956 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
4957 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
4958
4959 Rclone will start reading a chunk of size --vfs-read-chunk-size, and
4960 then double the size for each read. When --vfs-read-chunk-size-limit
4961 is specified, and greater than --vfs-read-chunk-size, the chunk size
4962 for each open file will get doubled only until the specified value is
4963 reached. If the value is "off", which is the default, the limit is
4964 disabled and the chunk size will grow indefinitely.
4965
4966 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
4967 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
4968 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
4969 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
4970 1200M-1700M and so on.
4971
4972 Setting --vfs-read-chunk-size to 0 or "off" disables chunked reading.
4973
4974 VFS Performance
4975 These flags may be used to enable/disable features of the VFS for per‐
4976 formance or other reasons. See also the chunked reading feature.
4977
4978 In particular S3 and Swift benefit hugely from the --no-modtime flag
4979 (or use --use-server-modtime for a slightly different effect) as each
4980 read of the modification time takes a transaction.
4981
4982 --no-checksum Don't compare checksums on up/download.
4983 --no-modtime Don't read/write the modification time (can speed things up).
4984 --no-seek Don't allow seeking in files.
4985 --read-only Mount read-only.
4986
4987 Sometimes rclone is delivered reads or writes out of order. Rather
4988 than seeking rclone will wait a short time for the in sequence read or
4989 write to come in. These flags only come into effect when not using an
4990 on disk cache file.
4991
4992 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
4993 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
4994
4995 When using VFS write caching (--vfs-cache-mode with value writes or
4996 full), the global flag --transfers can be set to adjust the number of
4997 parallel uploads of modified files from cache (the related global flag
4998 --checkers have no effect on mount).
4999
5000 --transfers int Number of file transfers to run in parallel (default 4)
5001
5002 VFS Case Sensitivity
5003 Linux file systems are case-sensitive: two files can differ only by
5004 case, and the exact case must be used when opening a file.
5005
5006 File systems in modern Windows are case-insensitive but case-preserv‐
5007 ing: although existing files can be opened using any case, the exact
5008 case used to create the file is preserved and available for programs to
5009 query. It is not allowed for two files in the same directory to differ
5010 only by case.
5011
5012 Usually file systems on macOS are case-insensitive. It is possible to
5013 make macOS file systems case-sensitive but that is not the default.
5014
5015 The --vfs-case-insensitive mount flag controls how rclone handles these
5016 two cases. If its value is "false", rclone passes file names to the
5017 mounted file system as-is. If the flag is "true" (or appears without a
5018 value on command line), rclone may perform a "fixup" as explained be‐
5019 low.
5020
5021 The user may specify a file name to open/delete/rename/etc with a case
5022 different than what is stored on mounted file system. If an argument
5023 refers to an existing file with exactly the same name, then the case of
5024 the existing file on the disk will be used. However, if a file name
5025 with exactly the same name is not found but a name differing only by
5026 case exists, rclone will transparently fixup the name. This fixup hap‐
5027 pens only when an existing file is requested. Case sensitivity of file
5028 names created anew by rclone is controlled by an underlying mounted
5029 file system.
5030
5031 Note that case sensitivity of the operating system running rclone (the
5032 target) may differ from case sensitivity of a file system mounted by
5033 rclone (the source). The flag controls whether "fixup" is performed to
5034 satisfy the target.
5035
5036 If the flag is not provided on the command line, then its default value
5037 depends on the operating system where rclone runs: "true" on Windows
5038 and macOS, "false" otherwise. If the flag is provided without a value,
5039 then it is "true".
5040
5041 Alternate report of used bytes
5042 Some backends, most notably S3, do not report the amount of bytes used.
5043 If you need this information to be available when running df on the
5044 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
5045 flag set, instead of relying on the backend to report this information,
5046 rclone will scan the whole remote similar to rclone size and compute
5047 the total used space itself.
5048
5049 WARNING. Contrary to rclone size, this flag ignores filters so that the
5050 result is accurate. However, this is very inefficient and may cost
5051 lots of API calls resulting in extra charges. Use it as a last resort
5052 and only with caching.
5053
5054 rclone serve docker [flags]
5055
5056 Options
5057 --allow-non-empty Allow mounting over a non-empty directory (not supported on Windows)
5058 --allow-other Allow access to other users (not supported on Windows)
5059 --allow-root Allow access to root user (not supported on Windows)
5060 --async-read Use asynchronous reads (not supported on Windows) (default true)
5061 --attr-timeout duration Time for which file/directory attributes are cached (default 1s)
5062 --base-dir string Base directory for volumes (default "/var/lib/docker-volumes/rclone")
5063 --daemon Run mount in background and exit parent process (as background output is suppressed, use --log-file with --log-format=pid,... to monitor) (not supported on Windows)
5064 --daemon-timeout duration Time limit for rclone to respond to kernel (not supported on Windows)
5065 --daemon-wait duration Time to wait for ready mount from daemon (maximum time on Linux, constant sleep time on OSX/BSD) (not supported on Windows) (default 1m0s)
5066 --debug-fuse Debug the FUSE internals - needs -v
5067 --default-permissions Makes kernel enforce access control based on the file mode (not supported on Windows)
5068 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
5069 --dir-perms FileMode Directory permissions (default 0777)
5070 --file-perms FileMode File permissions (default 0666)
5071 --forget-state Skip restoring previous state
5072 --fuse-flag stringArray Flags or arguments to be passed direct to libfuse/WinFsp (repeat if required)
5073 --gid uint32 Override the gid field set by the filesystem (not supported on Windows) (default 1000)
5074 -h, --help help for docker
5075 --max-read-ahead SizeSuffix The number of bytes that can be prefetched for sequential reads (not supported on Windows) (default 128Ki)
5076 --network-mode Mount as remote network drive, instead of fixed disk drive (supported on Windows only)
5077 --no-checksum Don't compare checksums on up/download
5078 --no-modtime Don't read/write the modification time (can speed things up)
5079 --no-seek Don't allow seeking in files
5080 --no-spec Do not write spec file
5081 --noappledouble Ignore Apple Double (._) and .DS_Store files (supported on OSX only) (default true)
5082 --noapplexattr Ignore all "com.apple.*" extended attributes (supported on OSX only)
5083 -o, --option stringArray Option for libfuse/WinFsp (repeat if required)
5084 --poll-interval duration Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s)
5085 --read-only Mount read-only
5086 --socket-addr string Address <host:port> or absolute path (default: /run/docker/plugins/rclone.sock)
5087 --socket-gid int GID for unix socket (default: current process GID) (default 1000)
5088 --uid uint32 Override the uid field set by the filesystem (not supported on Windows) (default 1000)
5089 --umask int Override the permission bits set by the filesystem (not supported on Windows) (default 2)
5090 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
5091 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
5092 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5093 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
5094 --vfs-case-insensitive If a file name not found, find a case insensitive match
5095 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full
5096 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128Mi)
5097 --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached ('off' is unlimited) (default off)
5098 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
5099 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size
5100 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
5101 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
5102 --volname string Set the volume name (supported on Windows and OSX only)
5103 --write-back-cache Makes kernel buffer writes before sending them to rclone (without this, writethrough caching is used) (not supported on Windows)
5104
5105 See the global flags page (https://rclone.org/flags/) for global op‐
5106 tions not listed here.
5107
5108 SEE ALSO
5109 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
5110 remote over a protocol.
5111
5113 Serve remote:path over FTP.
5114
5115 Synopsis
5116 rclone serve ftp implements a basic ftp server to serve the remote over
5117 FTP protocol. This can be viewed with a ftp client or you can make a
5118 remote of type ftp to read and write it.
5119
5120 Server options
5121 Use --addr to specify which IP address and port the server should lis‐
5122 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
5123 By default it only listens on localhost. You can use port :0 to let
5124 the OS choose an available port.
5125
5126 If you set --addr to listen on a public or LAN accessible IP address
5127 then using Authentication is advised - see the next section for info.
5128
5129 Authentication
5130 By default this will serve files without needing a login.
5131
5132 You can set a single username and password with the --user and --pass
5133 flags.
5134
5135 VFS - Virtual File System
5136 This command uses the VFS layer. This adapts the cloud storage objects
5137 that rclone uses into something which looks much more like a disk fil‐
5138 ing system.
5139
5140 Cloud storage objects have lots of properties which aren't like disk
5141 files - you can't extend them or write to the middle of them, so the
5142 VFS layer has to deal with that. Because there is no one right way of
5143 doing this there are various options explained below.
5144
5145 The VFS layer also implements a directory cache - this caches info
5146 about files and directories (but not the data) in memory.
5147
5148 VFS Directory Cache
5149 Using the --dir-cache-time flag, you can control how long a directory
5150 should be considered up to date and not refreshed from the backend.
5151 Changes made through the mount will appear immediately or invalidate
5152 the cache.
5153
5154 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
5155 --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
5156
5157 However, changes made directly on the cloud storage by the web inter‐
5158 face or a different copy of rclone will only be picked up once the di‐
5159 rectory cache expires if the backend configured does not support
5160 polling for changes. If the backend supports polling, changes will be
5161 picked up within the polling interval.
5162
5163 You can send a SIGHUP signal to rclone for it to flush all directory
5164 caches, regardless of how old they are. Assuming only one rclone in‐
5165 stance is running, you can reset the cache like this:
5166
5167 kill -SIGHUP $(pidof rclone)
5168
5169 If you configure rclone with a remote control (/rc) then you can use
5170 rclone rc to flush the whole directory cache:
5171
5172 rclone rc vfs/forget
5173
5174 Or individual files or directories:
5175
5176 rclone rc vfs/forget file=path/to/file dir=path/to/dir
5177
5178 VFS File Buffering
5179 The --buffer-size flag determines the amount of memory, that will be
5180 used to buffer data in advance.
5181
5182 Each open file will try to keep the specified amount of data in memory
5183 at all times. The buffered data is bound to one open file and won't be
5184 shared.
5185
5186 This flag is a upper limit for the used memory per open file. The buf‐
5187 fer will only use memory for data that is downloaded but not not yet
5188 read. If the buffer is empty, only a small amount of memory will be
5189 used.
5190
5191 The maximum memory used by rclone for buffering can be up to --buf‐
5192 fer-size * open files.
5193
5194 VFS File Caching
5195 These flags control the VFS file caching options. File caching is nec‐
5196 essary to make the VFS layer appear compatible with a normal file sys‐
5197 tem. It can be disabled at the cost of some compatibility.
5198
5199 For example you'll need to enable VFS caching if you want to read and
5200 write simultaneously to a file. See below for more details.
5201
5202 Note that the VFS cache is separate from the cache backend and you may
5203 find that you need one or the other or both.
5204
5205 --cache-dir string Directory rclone will use for caching.
5206 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5207 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
5208 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
5209 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
5210 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
5211
5212 If run with -vv rclone will print the location of the file cache. The
5213 files are stored in the user cache file area which is OS dependent but
5214 can be controlled with --cache-dir or setting the appropriate environ‐
5215 ment variable.
5216
5217 The cache has 4 different modes selected by --vfs-cache-mode. The
5218 higher the cache mode the more compatible rclone becomes at the cost of
5219 using disk space.
5220
5221 Note that files are written back to the remote only when they are
5222 closed and if they haven't been accessed for --vfs-write-back seconds.
5223 If rclone is quit or dies with files that haven't been uploaded, these
5224 will be uploaded next time rclone is run with the same flags.
5225
5226 If using --vfs-cache-max-size note that the cache may exceed this size
5227 for two reasons. Firstly because it is only checked every
5228 --vfs-cache-poll-interval. Secondly because open files cannot be
5229 evicted from the cache.
5230
5231 You should not run two copies of rclone using the same VFS cache with
5232 the same or overlapping remotes if using --vfs-cache-mode > off. This
5233 can potentially cause data corruption if you do. You can work around
5234 this by giving each rclone its own cache hierarchy with --cache-dir.
5235 You don't need to worry about this if the remotes in use don't overlap.
5236
5237 --vfs-cache-mode off
5238 In this mode (the default) the cache will read directly from the remote
5239 and write directly to the remote without caching anything on disk.
5240
5241 This will mean some operations are not possible
5242
5243 • Files can't be opened for both read AND write
5244
5245 • Files opened for write can't be seeked
5246
5247 • Existing files opened for write must have O_TRUNC set
5248
5249 • Files open for read with O_TRUNC will be opened write only
5250
5251 • Files open for write only will behave as if O_TRUNC was supplied
5252
5253 • Open modes O_APPEND, O_TRUNC are ignored
5254
5255 • If an upload fails it can't be retried
5256
5257 --vfs-cache-mode minimal
5258 This is very similar to "off" except that files opened for read AND
5259 write will be buffered to disk. This means that files opened for write
5260 will be a lot more compatible, but uses the minimal disk space.
5261
5262 These operations are not possible
5263
5264 • Files opened for write only can't be seeked
5265
5266 • Existing files opened for write must have O_TRUNC set
5267
5268 • Files opened for write only will ignore O_APPEND, O_TRUNC
5269
5270 • If an upload fails it can't be retried
5271
5272 --vfs-cache-mode writes
5273 In this mode files opened for read only are still read directly from
5274 the remote, write only and read/write files are buffered to disk first.
5275
5276 This mode should support all normal file system operations.
5277
5278 If an upload fails it will be retried at exponentially increasing in‐
5279 tervals up to 1 minute.
5280
5281 --vfs-cache-mode full
5282 In this mode all reads and writes are buffered to and from disk. When
5283 data is read from the remote this is buffered to disk as well.
5284
5285 In this mode the files in the cache will be sparse files and rclone
5286 will keep track of which bits of the files it has downloaded.
5287
5288 So if an application only reads the starts of each file, then rclone
5289 will only buffer the start of the file. These files will appear to be
5290 their full size in the cache, but they will be sparse files with only
5291 the data that has been downloaded present in them.
5292
5293 This mode should support all normal file system operations and is oth‐
5294 erwise identical to --vfs-cache-mode writes.
5295
5296 When reading a file rclone will read --buffer-size plus
5297 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
5298 whereas the --vfs-read-ahead is buffered on disk.
5299
5300 When using this mode it is recommended that --buffer-size is not set
5301 too large and --vfs-read-ahead is set large if required.
5302
5303 IMPORTANT not all file systems support sparse files. In particular
5304 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
5305 ry is on a filesystem which doesn't support sparse files and it will
5306 log an ERROR message if one is detected.
5307
5308 VFS Chunked Reading
5309 When rclone reads files from a remote it reads them in chunks. This
5310 means that rather than requesting the whole file rclone reads the chunk
5311 specified. This can reduce the used download quota for some remotes by
5312 requesting only chunks from the remote that are actually read, at the
5313 cost of an increased number of requests.
5314
5315 These flags control the chunking:
5316
5317 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
5318 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
5319
5320 Rclone will start reading a chunk of size --vfs-read-chunk-size, and
5321 then double the size for each read. When --vfs-read-chunk-size-limit
5322 is specified, and greater than --vfs-read-chunk-size, the chunk size
5323 for each open file will get doubled only until the specified value is
5324 reached. If the value is "off", which is the default, the limit is
5325 disabled and the chunk size will grow indefinitely.
5326
5327 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
5328 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
5329 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
5330 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
5331 1200M-1700M and so on.
5332
5333 Setting --vfs-read-chunk-size to 0 or "off" disables chunked reading.
5334
5335 VFS Performance
5336 These flags may be used to enable/disable features of the VFS for per‐
5337 formance or other reasons. See also the chunked reading feature.
5338
5339 In particular S3 and Swift benefit hugely from the --no-modtime flag
5340 (or use --use-server-modtime for a slightly different effect) as each
5341 read of the modification time takes a transaction.
5342
5343 --no-checksum Don't compare checksums on up/download.
5344 --no-modtime Don't read/write the modification time (can speed things up).
5345 --no-seek Don't allow seeking in files.
5346 --read-only Mount read-only.
5347
5348 Sometimes rclone is delivered reads or writes out of order. Rather
5349 than seeking rclone will wait a short time for the in sequence read or
5350 write to come in. These flags only come into effect when not using an
5351 on disk cache file.
5352
5353 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
5354 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
5355
5356 When using VFS write caching (--vfs-cache-mode with value writes or
5357 full), the global flag --transfers can be set to adjust the number of
5358 parallel uploads of modified files from cache (the related global flag
5359 --checkers have no effect on mount).
5360
5361 --transfers int Number of file transfers to run in parallel (default 4)
5362
5363 VFS Case Sensitivity
5364 Linux file systems are case-sensitive: two files can differ only by
5365 case, and the exact case must be used when opening a file.
5366
5367 File systems in modern Windows are case-insensitive but case-preserv‐
5368 ing: although existing files can be opened using any case, the exact
5369 case used to create the file is preserved and available for programs to
5370 query. It is not allowed for two files in the same directory to differ
5371 only by case.
5372
5373 Usually file systems on macOS are case-insensitive. It is possible to
5374 make macOS file systems case-sensitive but that is not the default.
5375
5376 The --vfs-case-insensitive mount flag controls how rclone handles these
5377 two cases. If its value is "false", rclone passes file names to the
5378 mounted file system as-is. If the flag is "true" (or appears without a
5379 value on command line), rclone may perform a "fixup" as explained be‐
5380 low.
5381
5382 The user may specify a file name to open/delete/rename/etc with a case
5383 different than what is stored on mounted file system. If an argument
5384 refers to an existing file with exactly the same name, then the case of
5385 the existing file on the disk will be used. However, if a file name
5386 with exactly the same name is not found but a name differing only by
5387 case exists, rclone will transparently fixup the name. This fixup hap‐
5388 pens only when an existing file is requested. Case sensitivity of file
5389 names created anew by rclone is controlled by an underlying mounted
5390 file system.
5391
5392 Note that case sensitivity of the operating system running rclone (the
5393 target) may differ from case sensitivity of a file system mounted by
5394 rclone (the source). The flag controls whether "fixup" is performed to
5395 satisfy the target.
5396
5397 If the flag is not provided on the command line, then its default value
5398 depends on the operating system where rclone runs: "true" on Windows
5399 and macOS, "false" otherwise. If the flag is provided without a value,
5400 then it is "true".
5401
5402 Alternate report of used bytes
5403 Some backends, most notably S3, do not report the amount of bytes used.
5404 If you need this information to be available when running df on the
5405 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
5406 flag set, instead of relying on the backend to report this information,
5407 rclone will scan the whole remote similar to rclone size and compute
5408 the total used space itself.
5409
5410 WARNING. Contrary to rclone size, this flag ignores filters so that the
5411 result is accurate. However, this is very inefficient and may cost
5412 lots of API calls resulting in extra charges. Use it as a last resort
5413 and only with caching.
5414
5415 Auth Proxy
5416 If you supply the parameter --auth-proxy /path/to/program then rclone
5417 will use that program to generate backends on the fly which then are
5418 used to authenticate incoming requests. This uses a simple JSON based
5419 protocol with input on STDIN and output on STDOUT.
5420
5421 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
5422 er, if --auth-proxy is set the authorized keys option will be ignored.
5423
5424 There is an example program bin/test_proxy.py
5425 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
5426 rclone source code.
5427
5428 The program's job is to take a user and pass on the input and turn
5429 those into the config for a backend on STDOUT in JSON format. This
5430 config will have any default parameters for the backend added, but it
5431 won't use configuration from environment variables or command line op‐
5432 tions - it is the job of the proxy program to make a complete config.
5433
5434 This config generated must have this extra parameter - _root - root to
5435 use for the backend
5436
5437 And it may have this parameter - _obscure - comma separated strings for
5438 parameters to obscure
5439
5440 If password authentication was used by the client, input to the proxy
5441 process (on STDIN) would look similar to this:
5442
5443 {
5444 "user": "me",
5445 "pass": "mypassword"
5446 }
5447
5448 If public-key authentication was used by the client, input to the proxy
5449 process (on STDIN) would look similar to this:
5450
5451 {
5452 "user": "me",
5453 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
5454 }
5455
5456 And as an example return this on STDOUT
5457
5458 {
5459 "type": "sftp",
5460 "_root": "",
5461 "_obscure": "pass",
5462 "user": "me",
5463 "pass": "mypassword",
5464 "host": "sftp.example.com"
5465 }
5466
5467 This would mean that an SFTP backend would be created on the fly for
5468 the user and pass/public_key returned in the output to the host given.
5469 Note that since _obscure is set to pass, rclone will obscure the pass
5470 parameter before creating the backend (which is required for sftp back‐
5471 ends).
5472
5473 The program can manipulate the supplied user in any way, for example to
5474 make proxy to many different sftp backends, you could make the user be
5475 user@example.com and then set the host to example.com in the output and
5476 the user to user. For security you'd probably want to restrict the
5477 host to a limited list.
5478
5479 Note that an internal cache is keyed on user so only use that for con‐
5480 figuration, don't use pass or public_key. This also means that if a
5481 user's password or public-key is changed the cache will need to expire
5482 (which takes 5 mins) before it takes effect.
5483
5484 This can be used to build general purpose proxies to any kind of back‐
5485 end that rclone supports.
5486
5487 rclone serve ftp remote:path [flags]
5488
5489 Options
5490 --addr string IPaddress:Port or :Port to bind server to (default "localhost:2121")
5491 --auth-proxy string A program to use to create the backend from the auth
5492 --cert string TLS PEM key (concatenation of certificate and CA certificate)
5493 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
5494 --dir-perms FileMode Directory permissions (default 0777)
5495 --file-perms FileMode File permissions (default 0666)
5496 --gid uint32 Override the gid field set by the filesystem (not supported on Windows) (default 1000)
5497 -h, --help help for ftp
5498 --key string TLS PEM Private key
5499 --no-checksum Don't compare checksums on up/download
5500 --no-modtime Don't read/write the modification time (can speed things up)
5501 --no-seek Don't allow seeking in files
5502 --pass string Password for authentication (empty value allow every password)
5503 --passive-port string Passive port range to use (default "30000-32000")
5504 --poll-interval duration Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s)
5505 --public-ip string Public IP address to advertise for passive connections
5506 --read-only Mount read-only
5507 --uid uint32 Override the uid field set by the filesystem (not supported on Windows) (default 1000)
5508 --umask int Override the permission bits set by the filesystem (not supported on Windows) (default 2)
5509 --user string User name for authentication (default "anonymous")
5510 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
5511 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
5512 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5513 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
5514 --vfs-case-insensitive If a file name not found, find a case insensitive match
5515 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full
5516 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128Mi)
5517 --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached ('off' is unlimited) (default off)
5518 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
5519 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size
5520 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
5521 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
5522
5523 See the global flags page (https://rclone.org/flags/) for global op‐
5524 tions not listed here.
5525
5526 SEE ALSO
5527 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
5528 remote over a protocol.
5529
5531 Serve the remote over HTTP.
5532
5533 Synopsis
5534 rclone serve http implements a basic web server to serve the remote
5535 over HTTP. This can be viewed in a web browser or you can make a re‐
5536 mote of type http read from it.
5537
5538 You can use the filter flags (e.g. --include, --exclude) to control
5539 what is served.
5540
5541 The server will log errors. Use -v to see access logs.
5542
5543 --bwlimit will be respected for file transfers. Use --stats to control
5544 the stats printing.
5545
5546 Server options
5547 Use --addr to specify which IP address and port the server should lis‐
5548 ten on, eg --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
5549 By default it only listens on localhost. You can use port :0 to let
5550 the OS choose an available port.
5551
5552 If you set --addr to listen on a public or LAN accessible IP address
5553 then using Authentication is advised - see the next section for info.
5554
5555 --server-read-timeout and --server-write-timeout can be used to control
5556 the timeouts on the server. Note that this is the total time for a
5557 transfer.
5558
5559 --max-header-bytes controls the maximum number of bytes the server will
5560 accept in the HTTP header.
5561
5562 --baseurl controls the URL prefix that rclone serves from. By default
5563 rclone will serve from the root. If you used --baseurl "/rclone" then
5564 rclone would serve from a URL starting with "/rclone/". This is useful
5565 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
5566 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
5567 "/rclone" and --baseurl "/rclone/" are all treated identically.
5568
5569 SSL/TLS
5570 By default this will serve over http. If you want you can serve over
5571 https. You will need to supply the --cert and --key flags. If you
5572 wish to do client side certificate validation then you will need to
5573 supply --client-ca also.
5574
5575 --cert should be a either a PEM encoded certificate or a concatenation
5576 of that with the CA certificate. --key should be the PEM encoded pri‐
5577 vate key and --client-ca should be the PEM encoded client certificate
5578 authority certificate. --template allows a user to specify a custom
5579 markup template for http and webdav serve functions. The server ex‐
5580 ports the following markup to be used within the template to server
5581 pages:
5582
5583 Parameter Description
5584 ──────────────────────────────────────────────────────────────────────────
5585 .Name The full path of a file/directory.
5586 .Title Directory listing of .Name
5587 .Sort The current sort used. This is
5588 changeable via ?sort= parameter
5589 Sort Options:
5590 namedirfirst,name,size,time (de‐
5591 fault namedirfirst)
5592 .Order The current ordering used. This is
5593 changeable via ?order= parameter
5594 Order Options: asc,desc (default
5595 asc)
5596 .Query Currently unused.
5597 .Breadcrumb Allows for creating a relative nav‐
5598 igation
5599 -- .Link The relative to the root link of
5600 the Text.
5601 -- .Text The Name of the directory.
5602 .Entries Information about a specific
5603 file/directory.
5604 -- .URL The 'url' of an entry.
5605 -- .Leaf Currently same as 'URL' but intend‐
5606 ed to be 'just' the name.
5607 -- .IsDir Boolean for if an entry is a direc‐
5608 tory or not.
5609 -- .Size Size in Bytes of the entry.
5610 -- .ModTime The UTC timestamp of an entry.
5611
5612 Authentication
5613 By default this will serve files without needing a login.
5614
5615 You can either use an htpasswd file which can take lots of users, or
5616 set a single username and password with the --user and --pass flags.
5617
5618 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
5619 in standard apache format and supports MD5, SHA1 and BCrypt for basic
5620 authentication. Bcrypt is recommended.
5621
5622 To create an htpasswd file:
5623
5624 touch htpasswd
5625 htpasswd -B htpasswd user
5626 htpasswd -B htpasswd anotherUser
5627
5628 The password file can be updated while rclone is running.
5629
5630 Use --realm to set the authentication realm.
5631
5632 Use --salt to change the password hashing salt from the default.
5633
5634 VFS - Virtual File System
5635 This command uses the VFS layer. This adapts the cloud storage objects
5636 that rclone uses into something which looks much more like a disk fil‐
5637 ing system.
5638
5639 Cloud storage objects have lots of properties which aren't like disk
5640 files - you can't extend them or write to the middle of them, so the
5641 VFS layer has to deal with that. Because there is no one right way of
5642 doing this there are various options explained below.
5643
5644 The VFS layer also implements a directory cache - this caches info
5645 about files and directories (but not the data) in memory.
5646
5647 VFS Directory Cache
5648 Using the --dir-cache-time flag, you can control how long a directory
5649 should be considered up to date and not refreshed from the backend.
5650 Changes made through the mount will appear immediately or invalidate
5651 the cache.
5652
5653 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
5654 --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
5655
5656 However, changes made directly on the cloud storage by the web inter‐
5657 face or a different copy of rclone will only be picked up once the di‐
5658 rectory cache expires if the backend configured does not support
5659 polling for changes. If the backend supports polling, changes will be
5660 picked up within the polling interval.
5661
5662 You can send a SIGHUP signal to rclone for it to flush all directory
5663 caches, regardless of how old they are. Assuming only one rclone in‐
5664 stance is running, you can reset the cache like this:
5665
5666 kill -SIGHUP $(pidof rclone)
5667
5668 If you configure rclone with a remote control (/rc) then you can use
5669 rclone rc to flush the whole directory cache:
5670
5671 rclone rc vfs/forget
5672
5673 Or individual files or directories:
5674
5675 rclone rc vfs/forget file=path/to/file dir=path/to/dir
5676
5677 VFS File Buffering
5678 The --buffer-size flag determines the amount of memory, that will be
5679 used to buffer data in advance.
5680
5681 Each open file will try to keep the specified amount of data in memory
5682 at all times. The buffered data is bound to one open file and won't be
5683 shared.
5684
5685 This flag is a upper limit for the used memory per open file. The buf‐
5686 fer will only use memory for data that is downloaded but not not yet
5687 read. If the buffer is empty, only a small amount of memory will be
5688 used.
5689
5690 The maximum memory used by rclone for buffering can be up to --buf‐
5691 fer-size * open files.
5692
5693 VFS File Caching
5694 These flags control the VFS file caching options. File caching is nec‐
5695 essary to make the VFS layer appear compatible with a normal file sys‐
5696 tem. It can be disabled at the cost of some compatibility.
5697
5698 For example you'll need to enable VFS caching if you want to read and
5699 write simultaneously to a file. See below for more details.
5700
5701 Note that the VFS cache is separate from the cache backend and you may
5702 find that you need one or the other or both.
5703
5704 --cache-dir string Directory rclone will use for caching.
5705 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5706 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
5707 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
5708 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
5709 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
5710
5711 If run with -vv rclone will print the location of the file cache. The
5712 files are stored in the user cache file area which is OS dependent but
5713 can be controlled with --cache-dir or setting the appropriate environ‐
5714 ment variable.
5715
5716 The cache has 4 different modes selected by --vfs-cache-mode. The
5717 higher the cache mode the more compatible rclone becomes at the cost of
5718 using disk space.
5719
5720 Note that files are written back to the remote only when they are
5721 closed and if they haven't been accessed for --vfs-write-back seconds.
5722 If rclone is quit or dies with files that haven't been uploaded, these
5723 will be uploaded next time rclone is run with the same flags.
5724
5725 If using --vfs-cache-max-size note that the cache may exceed this size
5726 for two reasons. Firstly because it is only checked every
5727 --vfs-cache-poll-interval. Secondly because open files cannot be
5728 evicted from the cache.
5729
5730 You should not run two copies of rclone using the same VFS cache with
5731 the same or overlapping remotes if using --vfs-cache-mode > off. This
5732 can potentially cause data corruption if you do. You can work around
5733 this by giving each rclone its own cache hierarchy with --cache-dir.
5734 You don't need to worry about this if the remotes in use don't overlap.
5735
5736 --vfs-cache-mode off
5737 In this mode (the default) the cache will read directly from the remote
5738 and write directly to the remote without caching anything on disk.
5739
5740 This will mean some operations are not possible
5741
5742 • Files can't be opened for both read AND write
5743
5744 • Files opened for write can't be seeked
5745
5746 • Existing files opened for write must have O_TRUNC set
5747
5748 • Files open for read with O_TRUNC will be opened write only
5749
5750 • Files open for write only will behave as if O_TRUNC was supplied
5751
5752 • Open modes O_APPEND, O_TRUNC are ignored
5753
5754 • If an upload fails it can't be retried
5755
5756 --vfs-cache-mode minimal
5757 This is very similar to "off" except that files opened for read AND
5758 write will be buffered to disk. This means that files opened for write
5759 will be a lot more compatible, but uses the minimal disk space.
5760
5761 These operations are not possible
5762
5763 • Files opened for write only can't be seeked
5764
5765 • Existing files opened for write must have O_TRUNC set
5766
5767 • Files opened for write only will ignore O_APPEND, O_TRUNC
5768
5769 • If an upload fails it can't be retried
5770
5771 --vfs-cache-mode writes
5772 In this mode files opened for read only are still read directly from
5773 the remote, write only and read/write files are buffered to disk first.
5774
5775 This mode should support all normal file system operations.
5776
5777 If an upload fails it will be retried at exponentially increasing in‐
5778 tervals up to 1 minute.
5779
5780 --vfs-cache-mode full
5781 In this mode all reads and writes are buffered to and from disk. When
5782 data is read from the remote this is buffered to disk as well.
5783
5784 In this mode the files in the cache will be sparse files and rclone
5785 will keep track of which bits of the files it has downloaded.
5786
5787 So if an application only reads the starts of each file, then rclone
5788 will only buffer the start of the file. These files will appear to be
5789 their full size in the cache, but they will be sparse files with only
5790 the data that has been downloaded present in them.
5791
5792 This mode should support all normal file system operations and is oth‐
5793 erwise identical to --vfs-cache-mode writes.
5794
5795 When reading a file rclone will read --buffer-size plus
5796 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
5797 whereas the --vfs-read-ahead is buffered on disk.
5798
5799 When using this mode it is recommended that --buffer-size is not set
5800 too large and --vfs-read-ahead is set large if required.
5801
5802 IMPORTANT not all file systems support sparse files. In particular
5803 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
5804 ry is on a filesystem which doesn't support sparse files and it will
5805 log an ERROR message if one is detected.
5806
5807 VFS Chunked Reading
5808 When rclone reads files from a remote it reads them in chunks. This
5809 means that rather than requesting the whole file rclone reads the chunk
5810 specified. This can reduce the used download quota for some remotes by
5811 requesting only chunks from the remote that are actually read, at the
5812 cost of an increased number of requests.
5813
5814 These flags control the chunking:
5815
5816 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
5817 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
5818
5819 Rclone will start reading a chunk of size --vfs-read-chunk-size, and
5820 then double the size for each read. When --vfs-read-chunk-size-limit
5821 is specified, and greater than --vfs-read-chunk-size, the chunk size
5822 for each open file will get doubled only until the specified value is
5823 reached. If the value is "off", which is the default, the limit is
5824 disabled and the chunk size will grow indefinitely.
5825
5826 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
5827 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
5828 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
5829 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
5830 1200M-1700M and so on.
5831
5832 Setting --vfs-read-chunk-size to 0 or "off" disables chunked reading.
5833
5834 VFS Performance
5835 These flags may be used to enable/disable features of the VFS for per‐
5836 formance or other reasons. See also the chunked reading feature.
5837
5838 In particular S3 and Swift benefit hugely from the --no-modtime flag
5839 (or use --use-server-modtime for a slightly different effect) as each
5840 read of the modification time takes a transaction.
5841
5842 --no-checksum Don't compare checksums on up/download.
5843 --no-modtime Don't read/write the modification time (can speed things up).
5844 --no-seek Don't allow seeking in files.
5845 --read-only Mount read-only.
5846
5847 Sometimes rclone is delivered reads or writes out of order. Rather
5848 than seeking rclone will wait a short time for the in sequence read or
5849 write to come in. These flags only come into effect when not using an
5850 on disk cache file.
5851
5852 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
5853 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
5854
5855 When using VFS write caching (--vfs-cache-mode with value writes or
5856 full), the global flag --transfers can be set to adjust the number of
5857 parallel uploads of modified files from cache (the related global flag
5858 --checkers have no effect on mount).
5859
5860 --transfers int Number of file transfers to run in parallel (default 4)
5861
5862 VFS Case Sensitivity
5863 Linux file systems are case-sensitive: two files can differ only by
5864 case, and the exact case must be used when opening a file.
5865
5866 File systems in modern Windows are case-insensitive but case-preserv‐
5867 ing: although existing files can be opened using any case, the exact
5868 case used to create the file is preserved and available for programs to
5869 query. It is not allowed for two files in the same directory to differ
5870 only by case.
5871
5872 Usually file systems on macOS are case-insensitive. It is possible to
5873 make macOS file systems case-sensitive but that is not the default.
5874
5875 The --vfs-case-insensitive mount flag controls how rclone handles these
5876 two cases. If its value is "false", rclone passes file names to the
5877 mounted file system as-is. If the flag is "true" (or appears without a
5878 value on command line), rclone may perform a "fixup" as explained be‐
5879 low.
5880
5881 The user may specify a file name to open/delete/rename/etc with a case
5882 different than what is stored on mounted file system. If an argument
5883 refers to an existing file with exactly the same name, then the case of
5884 the existing file on the disk will be used. However, if a file name
5885 with exactly the same name is not found but a name differing only by
5886 case exists, rclone will transparently fixup the name. This fixup hap‐
5887 pens only when an existing file is requested. Case sensitivity of file
5888 names created anew by rclone is controlled by an underlying mounted
5889 file system.
5890
5891 Note that case sensitivity of the operating system running rclone (the
5892 target) may differ from case sensitivity of a file system mounted by
5893 rclone (the source). The flag controls whether "fixup" is performed to
5894 satisfy the target.
5895
5896 If the flag is not provided on the command line, then its default value
5897 depends on the operating system where rclone runs: "true" on Windows
5898 and macOS, "false" otherwise. If the flag is provided without a value,
5899 then it is "true".
5900
5901 Alternate report of used bytes
5902 Some backends, most notably S3, do not report the amount of bytes used.
5903 If you need this information to be available when running df on the
5904 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
5905 flag set, instead of relying on the backend to report this information,
5906 rclone will scan the whole remote similar to rclone size and compute
5907 the total used space itself.
5908
5909 WARNING. Contrary to rclone size, this flag ignores filters so that the
5910 result is accurate. However, this is very inefficient and may cost
5911 lots of API calls resulting in extra charges. Use it as a last resort
5912 and only with caching.
5913
5914 rclone serve http remote:path [flags]
5915
5916 Options
5917 --addr string IPaddress:Port or :Port to bind server to (default "127.0.0.1:8080")
5918 --baseurl string Prefix for URLs - leave blank for root
5919 --cert string SSL PEM key (concatenation of certificate and CA certificate)
5920 --client-ca string Client certificate authority to verify clients with
5921 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
5922 --dir-perms FileMode Directory permissions (default 0777)
5923 --file-perms FileMode File permissions (default 0666)
5924 --gid uint32 Override the gid field set by the filesystem (not supported on Windows) (default 1000)
5925 -h, --help help for http
5926 --htpasswd string A htpasswd file - if not provided no authentication is done
5927 --key string SSL PEM Private key
5928 --max-header-bytes int Maximum size of request header (default 4096)
5929 --no-checksum Don't compare checksums on up/download
5930 --no-modtime Don't read/write the modification time (can speed things up)
5931 --no-seek Don't allow seeking in files
5932 --pass string Password for authentication
5933 --poll-interval duration Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s)
5934 --read-only Mount read-only
5935 --realm string Realm for authentication
5936 --salt string Password hashing salt (default "dlPL2MqE")
5937 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
5938 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
5939 --template string User-specified template
5940 --uid uint32 Override the uid field set by the filesystem (not supported on Windows) (default 1000)
5941 --umask int Override the permission bits set by the filesystem (not supported on Windows) (default 2)
5942 --user string User name for authentication
5943 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
5944 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
5945 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5946 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
5947 --vfs-case-insensitive If a file name not found, find a case insensitive match
5948 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full
5949 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128Mi)
5950 --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached ('off' is unlimited) (default off)
5951 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
5952 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size
5953 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
5954 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
5955
5956 See the global flags page (https://rclone.org/flags/) for global op‐
5957 tions not listed here.
5958
5959 SEE ALSO
5960 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
5961 remote over a protocol.
5962
5964 Serve the remote for restic's REST API.
5965
5966 Synopsis
5967 rclone serve restic implements restic's REST backend API over HTTP.
5968 This allows restic to use rclone as a data storage mechanism for cloud
5969 providers that restic does not support directly.
5970
5971 Restic (https://restic.net/) is a command line program for doing back‐
5972 ups.
5973
5974 The server will log errors. Use -v to see access logs.
5975
5976 --bwlimit will be respected for file transfers. Use --stats to control
5977 the stats printing.
5978
5979 Setting up rclone for use by restic
5980 First set up a remote for your chosen cloud provider
5981 (https://rclone.org/docs/#configure).
5982
5983 Once you have set up the remote, check it is working with, for example
5984 "rclone lsd remote:". You may have called the remote something other
5985 than "remote:" - just substitute whatever you called it in the follow‐
5986 ing instructions.
5987
5988 Now start the rclone restic server
5989
5990 rclone serve restic -v remote:backup
5991
5992 Where you can replace "backup" in the above by whatever path in the re‐
5993 mote you wish to use.
5994
5995 By default this will serve on "localhost:8080" you can change this with
5996 use of the "--addr" flag.
5997
5998 You might wish to start this server on boot.
5999
6000 Adding --cache-objects=false will cause rclone to stop caching objects
6001 returned from the List call. Caching is normally desirable as it
6002 speeds up downloading objects, saves transactions and uses very little
6003 memory.
6004
6005 Setting up restic to use rclone
6006 Now you can follow the restic instructions (http://restic.readthedo‐
6007 cs.io/en/latest/030_preparing_a_new_repo.html#rest-server) on setting
6008 up restic.
6009
6010 Note that you will need restic 0.8.2 or later to interoperate with
6011 rclone.
6012
6013 For the example above you will want to use "http://localhost:8080/" as
6014 the URL for the REST server.
6015
6016 For example:
6017
6018 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/
6019 $ export RESTIC_PASSWORD=yourpassword
6020 $ restic init
6021 created restic backend 8b1a4b56ae at rest:http://localhost:8080/
6022
6023 Please note that knowledge of your password is required to access
6024 the repository. Losing your password means that your data is
6025 irrecoverably lost.
6026 $ restic backup /path/to/files/to/backup
6027 scan [/path/to/files/to/backup]
6028 scanned 189 directories, 312 files in 0:00
6029 [0:00] 100.00% 38.128 MiB / 38.128 MiB 501 / 501 items 0 errors ETA 0:00
6030 duration: 0:00
6031 snapshot 45c8fdd8 saved
6032
6033 Multiple repositories
6034 Note that you can use the endpoint to host multiple repositories. Do
6035 this by adding a directory name or path after the URL. Note that these
6036 must end with /. Eg
6037
6038 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user1repo/
6039 # backup user1 stuff
6040 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/
6041 # backup user2 stuff
6042
6043 Private repositories
6044 The "--private-repos" flag can be used to limit users to repositories
6045 starting with a path of /<username>/.
6046
6047 Server options
6048 Use --addr to specify which IP address and port the server should lis‐
6049 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
6050 By default it only listens on localhost. You can use port :0 to let
6051 the OS choose an available port.
6052
6053 If you set --addr to listen on a public or LAN accessible IP address
6054 then using Authentication is advised - see the next section for info.
6055
6056 --server-read-timeout and --server-write-timeout can be used to control
6057 the timeouts on the server. Note that this is the total time for a
6058 transfer.
6059
6060 --max-header-bytes controls the maximum number of bytes the server will
6061 accept in the HTTP header.
6062
6063 --baseurl controls the URL prefix that rclone serves from. By default
6064 rclone will serve from the root. If you used --baseurl "/rclone" then
6065 rclone would serve from a URL starting with "/rclone/". This is useful
6066 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
6067 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
6068 "/rclone" and --baseurl "/rclone/" are all treated identically.
6069
6070 --template allows a user to specify a custom markup template for http
6071 and webdav serve functions. The server exports the following markup to
6072 be used within the template to server pages:
6073
6074 Parameter Description
6075 ──────────────────────────────────────────────────────────────────────────
6076 .Name The full path of a file/directory.
6077 .Title Directory listing of .Name
6078 .Sort The current sort used. This is
6079 changeable via ?sort= parameter
6080 Sort Options:
6081 namedirfirst,name,size,time (de‐
6082 fault namedirfirst)
6083 .Order The current ordering used. This is
6084 changeable via ?order= parameter
6085 Order Options: asc,desc (default
6086 asc)
6087 .Query Currently unused.
6088 .Breadcrumb Allows for creating a relative nav‐
6089 igation
6090 -- .Link The relative to the root link of
6091 the Text.
6092 -- .Text The Name of the directory.
6093 .Entries Information about a specific
6094 file/directory.
6095 -- .URL The 'url' of an entry.
6096 -- .Leaf Currently same as 'URL' but intend‐
6097 ed to be 'just' the name.
6098 -- .IsDir Boolean for if an entry is a direc‐
6099 tory or not.
6100 -- .Size Size in Bytes of the entry.
6101 -- .ModTime The UTC timestamp of an entry.
6102
6103 Authentication
6104 By default this will serve files without needing a login.
6105
6106 You can either use an htpasswd file which can take lots of users, or
6107 set a single username and password with the --user and --pass flags.
6108
6109 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
6110 in standard apache format and supports MD5, SHA1 and BCrypt for basic
6111 authentication. Bcrypt is recommended.
6112
6113 To create an htpasswd file:
6114
6115 touch htpasswd
6116 htpasswd -B htpasswd user
6117 htpasswd -B htpasswd anotherUser
6118
6119 The password file can be updated while rclone is running.
6120
6121 Use --realm to set the authentication realm.
6122
6123 SSL/TLS
6124 By default this will serve over http. If you want you can serve over
6125 https. You will need to supply the --cert and --key flags. If you
6126 wish to do client side certificate validation then you will need to
6127 supply --client-ca also.
6128
6129 --cert should be either a PEM encoded certificate or a concatenation of
6130 that with the CA certificate. --key should be the PEM encoded private
6131 key and --client-ca should be the PEM encoded client certificate au‐
6132 thority certificate.
6133
6134 rclone serve restic remote:path [flags]
6135
6136 Options
6137 --addr string IPaddress:Port or :Port to bind server to (default "localhost:8080")
6138 --append-only Disallow deletion of repository data
6139 --baseurl string Prefix for URLs - leave blank for root
6140 --cache-objects Cache listed objects (default true)
6141 --cert string SSL PEM key (concatenation of certificate and CA certificate)
6142 --client-ca string Client certificate authority to verify clients with
6143 -h, --help help for restic
6144 --htpasswd string htpasswd file - if not provided no authentication is done
6145 --key string SSL PEM Private key
6146 --max-header-bytes int Maximum size of request header (default 4096)
6147 --pass string Password for authentication
6148 --private-repos Users can only access their private repo
6149 --realm string realm for authentication (default "rclone")
6150 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
6151 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
6152 --stdio Run an HTTP2 server on stdin/stdout
6153 --template string User-specified template
6154 --user string User name for authentication
6155
6156 See the global flags page (https://rclone.org/flags/) for global op‐
6157 tions not listed here.
6158
6159 SEE ALSO
6160 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
6161 remote over a protocol.
6162
6164 Serve the remote over SFTP.
6165
6166 Synopsis
6167 rclone serve sftp implements an SFTP server to serve the remote over
6168 SFTP. This can be used with an SFTP client or you can make a remote of
6169 type sftp to use with it.
6170
6171 You can use the filter flags (e.g. --include, --exclude) to control
6172 what is served.
6173
6174 The server will log errors. Use -v to see access logs.
6175
6176 --bwlimit will be respected for file transfers. Use --stats to control
6177 the stats printing.
6178
6179 You must provide some means of authentication, either with --us‐
6180 er/--pass, an authorized keys file (specify location with --autho‐
6181 rized-keys - the default is the same as ssh), an --auth-proxy, or set
6182 the --no-auth flag for no authentication when logging in.
6183
6184 Note that this also implements a small number of shell commands so that
6185 it can provide md5sum/sha1sum/df information for the rclone sftp back‐
6186 end. This means that is can support SHA1SUMs, MD5SUMs and the about
6187 command when paired with the rclone sftp backend.
6188
6189 If you don't supply a host --key then rclone will generate rsa, ecdsa
6190 and ed25519 variants, and cache them for later use in rclone's cache
6191 directory (see "rclone help flags cache-dir") in the "serve-sftp" di‐
6192 rectory.
6193
6194 By default the server binds to localhost:2022 - if you want it to be
6195 reachable externally then supply "--addr :2022" for example.
6196
6197 Note that the default of "--vfs-cache-mode off" is fine for the rclone
6198 sftp backend, but it may not be with other SFTP clients.
6199
6200 If --stdio is specified, rclone will serve SFTP over stdio, which can
6201 be used with sshd via ~/.ssh/authorized_keys, for example:
6202
6203 restrict,command="rclone serve sftp --stdio ./photos" ssh-rsa ...
6204
6205 VFS - Virtual File System
6206 This command uses the VFS layer. This adapts the cloud storage objects
6207 that rclone uses into something which looks much more like a disk fil‐
6208 ing system.
6209
6210 Cloud storage objects have lots of properties which aren't like disk
6211 files - you can't extend them or write to the middle of them, so the
6212 VFS layer has to deal with that. Because there is no one right way of
6213 doing this there are various options explained below.
6214
6215 The VFS layer also implements a directory cache - this caches info
6216 about files and directories (but not the data) in memory.
6217
6218 VFS Directory Cache
6219 Using the --dir-cache-time flag, you can control how long a directory
6220 should be considered up to date and not refreshed from the backend.
6221 Changes made through the mount will appear immediately or invalidate
6222 the cache.
6223
6224 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
6225 --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
6226
6227 However, changes made directly on the cloud storage by the web inter‐
6228 face or a different copy of rclone will only be picked up once the di‐
6229 rectory cache expires if the backend configured does not support
6230 polling for changes. If the backend supports polling, changes will be
6231 picked up within the polling interval.
6232
6233 You can send a SIGHUP signal to rclone for it to flush all directory
6234 caches, regardless of how old they are. Assuming only one rclone in‐
6235 stance is running, you can reset the cache like this:
6236
6237 kill -SIGHUP $(pidof rclone)
6238
6239 If you configure rclone with a remote control (/rc) then you can use
6240 rclone rc to flush the whole directory cache:
6241
6242 rclone rc vfs/forget
6243
6244 Or individual files or directories:
6245
6246 rclone rc vfs/forget file=path/to/file dir=path/to/dir
6247
6248 VFS File Buffering
6249 The --buffer-size flag determines the amount of memory, that will be
6250 used to buffer data in advance.
6251
6252 Each open file will try to keep the specified amount of data in memory
6253 at all times. The buffered data is bound to one open file and won't be
6254 shared.
6255
6256 This flag is a upper limit for the used memory per open file. The buf‐
6257 fer will only use memory for data that is downloaded but not not yet
6258 read. If the buffer is empty, only a small amount of memory will be
6259 used.
6260
6261 The maximum memory used by rclone for buffering can be up to --buf‐
6262 fer-size * open files.
6263
6264 VFS File Caching
6265 These flags control the VFS file caching options. File caching is nec‐
6266 essary to make the VFS layer appear compatible with a normal file sys‐
6267 tem. It can be disabled at the cost of some compatibility.
6268
6269 For example you'll need to enable VFS caching if you want to read and
6270 write simultaneously to a file. See below for more details.
6271
6272 Note that the VFS cache is separate from the cache backend and you may
6273 find that you need one or the other or both.
6274
6275 --cache-dir string Directory rclone will use for caching.
6276 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
6277 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
6278 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
6279 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
6280 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
6281
6282 If run with -vv rclone will print the location of the file cache. The
6283 files are stored in the user cache file area which is OS dependent but
6284 can be controlled with --cache-dir or setting the appropriate environ‐
6285 ment variable.
6286
6287 The cache has 4 different modes selected by --vfs-cache-mode. The
6288 higher the cache mode the more compatible rclone becomes at the cost of
6289 using disk space.
6290
6291 Note that files are written back to the remote only when they are
6292 closed and if they haven't been accessed for --vfs-write-back seconds.
6293 If rclone is quit or dies with files that haven't been uploaded, these
6294 will be uploaded next time rclone is run with the same flags.
6295
6296 If using --vfs-cache-max-size note that the cache may exceed this size
6297 for two reasons. Firstly because it is only checked every
6298 --vfs-cache-poll-interval. Secondly because open files cannot be
6299 evicted from the cache.
6300
6301 You should not run two copies of rclone using the same VFS cache with
6302 the same or overlapping remotes if using --vfs-cache-mode > off. This
6303 can potentially cause data corruption if you do. You can work around
6304 this by giving each rclone its own cache hierarchy with --cache-dir.
6305 You don't need to worry about this if the remotes in use don't overlap.
6306
6307 --vfs-cache-mode off
6308 In this mode (the default) the cache will read directly from the remote
6309 and write directly to the remote without caching anything on disk.
6310
6311 This will mean some operations are not possible
6312
6313 • Files can't be opened for both read AND write
6314
6315 • Files opened for write can't be seeked
6316
6317 • Existing files opened for write must have O_TRUNC set
6318
6319 • Files open for read with O_TRUNC will be opened write only
6320
6321 • Files open for write only will behave as if O_TRUNC was supplied
6322
6323 • Open modes O_APPEND, O_TRUNC are ignored
6324
6325 • If an upload fails it can't be retried
6326
6327 --vfs-cache-mode minimal
6328 This is very similar to "off" except that files opened for read AND
6329 write will be buffered to disk. This means that files opened for write
6330 will be a lot more compatible, but uses the minimal disk space.
6331
6332 These operations are not possible
6333
6334 • Files opened for write only can't be seeked
6335
6336 • Existing files opened for write must have O_TRUNC set
6337
6338 • Files opened for write only will ignore O_APPEND, O_TRUNC
6339
6340 • If an upload fails it can't be retried
6341
6342 --vfs-cache-mode writes
6343 In this mode files opened for read only are still read directly from
6344 the remote, write only and read/write files are buffered to disk first.
6345
6346 This mode should support all normal file system operations.
6347
6348 If an upload fails it will be retried at exponentially increasing in‐
6349 tervals up to 1 minute.
6350
6351 --vfs-cache-mode full
6352 In this mode all reads and writes are buffered to and from disk. When
6353 data is read from the remote this is buffered to disk as well.
6354
6355 In this mode the files in the cache will be sparse files and rclone
6356 will keep track of which bits of the files it has downloaded.
6357
6358 So if an application only reads the starts of each file, then rclone
6359 will only buffer the start of the file. These files will appear to be
6360 their full size in the cache, but they will be sparse files with only
6361 the data that has been downloaded present in them.
6362
6363 This mode should support all normal file system operations and is oth‐
6364 erwise identical to --vfs-cache-mode writes.
6365
6366 When reading a file rclone will read --buffer-size plus
6367 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
6368 whereas the --vfs-read-ahead is buffered on disk.
6369
6370 When using this mode it is recommended that --buffer-size is not set
6371 too large and --vfs-read-ahead is set large if required.
6372
6373 IMPORTANT not all file systems support sparse files. In particular
6374 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
6375 ry is on a filesystem which doesn't support sparse files and it will
6376 log an ERROR message if one is detected.
6377
6378 VFS Chunked Reading
6379 When rclone reads files from a remote it reads them in chunks. This
6380 means that rather than requesting the whole file rclone reads the chunk
6381 specified. This can reduce the used download quota for some remotes by
6382 requesting only chunks from the remote that are actually read, at the
6383 cost of an increased number of requests.
6384
6385 These flags control the chunking:
6386
6387 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
6388 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
6389
6390 Rclone will start reading a chunk of size --vfs-read-chunk-size, and
6391 then double the size for each read. When --vfs-read-chunk-size-limit
6392 is specified, and greater than --vfs-read-chunk-size, the chunk size
6393 for each open file will get doubled only until the specified value is
6394 reached. If the value is "off", which is the default, the limit is
6395 disabled and the chunk size will grow indefinitely.
6396
6397 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
6398 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
6399 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
6400 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
6401 1200M-1700M and so on.
6402
6403 Setting --vfs-read-chunk-size to 0 or "off" disables chunked reading.
6404
6405 VFS Performance
6406 These flags may be used to enable/disable features of the VFS for per‐
6407 formance or other reasons. See also the chunked reading feature.
6408
6409 In particular S3 and Swift benefit hugely from the --no-modtime flag
6410 (or use --use-server-modtime for a slightly different effect) as each
6411 read of the modification time takes a transaction.
6412
6413 --no-checksum Don't compare checksums on up/download.
6414 --no-modtime Don't read/write the modification time (can speed things up).
6415 --no-seek Don't allow seeking in files.
6416 --read-only Mount read-only.
6417
6418 Sometimes rclone is delivered reads or writes out of order. Rather
6419 than seeking rclone will wait a short time for the in sequence read or
6420 write to come in. These flags only come into effect when not using an
6421 on disk cache file.
6422
6423 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
6424 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
6425
6426 When using VFS write caching (--vfs-cache-mode with value writes or
6427 full), the global flag --transfers can be set to adjust the number of
6428 parallel uploads of modified files from cache (the related global flag
6429 --checkers have no effect on mount).
6430
6431 --transfers int Number of file transfers to run in parallel (default 4)
6432
6433 VFS Case Sensitivity
6434 Linux file systems are case-sensitive: two files can differ only by
6435 case, and the exact case must be used when opening a file.
6436
6437 File systems in modern Windows are case-insensitive but case-preserv‐
6438 ing: although existing files can be opened using any case, the exact
6439 case used to create the file is preserved and available for programs to
6440 query. It is not allowed for two files in the same directory to differ
6441 only by case.
6442
6443 Usually file systems on macOS are case-insensitive. It is possible to
6444 make macOS file systems case-sensitive but that is not the default.
6445
6446 The --vfs-case-insensitive mount flag controls how rclone handles these
6447 two cases. If its value is "false", rclone passes file names to the
6448 mounted file system as-is. If the flag is "true" (or appears without a
6449 value on command line), rclone may perform a "fixup" as explained be‐
6450 low.
6451
6452 The user may specify a file name to open/delete/rename/etc with a case
6453 different than what is stored on mounted file system. If an argument
6454 refers to an existing file with exactly the same name, then the case of
6455 the existing file on the disk will be used. However, if a file name
6456 with exactly the same name is not found but a name differing only by
6457 case exists, rclone will transparently fixup the name. This fixup hap‐
6458 pens only when an existing file is requested. Case sensitivity of file
6459 names created anew by rclone is controlled by an underlying mounted
6460 file system.
6461
6462 Note that case sensitivity of the operating system running rclone (the
6463 target) may differ from case sensitivity of a file system mounted by
6464 rclone (the source). The flag controls whether "fixup" is performed to
6465 satisfy the target.
6466
6467 If the flag is not provided on the command line, then its default value
6468 depends on the operating system where rclone runs: "true" on Windows
6469 and macOS, "false" otherwise. If the flag is provided without a value,
6470 then it is "true".
6471
6472 Alternate report of used bytes
6473 Some backends, most notably S3, do not report the amount of bytes used.
6474 If you need this information to be available when running df on the
6475 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
6476 flag set, instead of relying on the backend to report this information,
6477 rclone will scan the whole remote similar to rclone size and compute
6478 the total used space itself.
6479
6480 WARNING. Contrary to rclone size, this flag ignores filters so that the
6481 result is accurate. However, this is very inefficient and may cost
6482 lots of API calls resulting in extra charges. Use it as a last resort
6483 and only with caching.
6484
6485 Auth Proxy
6486 If you supply the parameter --auth-proxy /path/to/program then rclone
6487 will use that program to generate backends on the fly which then are
6488 used to authenticate incoming requests. This uses a simple JSON based
6489 protocol with input on STDIN and output on STDOUT.
6490
6491 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
6492 er, if --auth-proxy is set the authorized keys option will be ignored.
6493
6494 There is an example program bin/test_proxy.py
6495 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
6496 rclone source code.
6497
6498 The program's job is to take a user and pass on the input and turn
6499 those into the config for a backend on STDOUT in JSON format. This
6500 config will have any default parameters for the backend added, but it
6501 won't use configuration from environment variables or command line op‐
6502 tions - it is the job of the proxy program to make a complete config.
6503
6504 This config generated must have this extra parameter - _root - root to
6505 use for the backend
6506
6507 And it may have this parameter - _obscure - comma separated strings for
6508 parameters to obscure
6509
6510 If password authentication was used by the client, input to the proxy
6511 process (on STDIN) would look similar to this:
6512
6513 {
6514 "user": "me",
6515 "pass": "mypassword"
6516 }
6517
6518 If public-key authentication was used by the client, input to the proxy
6519 process (on STDIN) would look similar to this:
6520
6521 {
6522 "user": "me",
6523 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
6524 }
6525
6526 And as an example return this on STDOUT
6527
6528 {
6529 "type": "sftp",
6530 "_root": "",
6531 "_obscure": "pass",
6532 "user": "me",
6533 "pass": "mypassword",
6534 "host": "sftp.example.com"
6535 }
6536
6537 This would mean that an SFTP backend would be created on the fly for
6538 the user and pass/public_key returned in the output to the host given.
6539 Note that since _obscure is set to pass, rclone will obscure the pass
6540 parameter before creating the backend (which is required for sftp back‐
6541 ends).
6542
6543 The program can manipulate the supplied user in any way, for example to
6544 make proxy to many different sftp backends, you could make the user be
6545 user@example.com and then set the host to example.com in the output and
6546 the user to user. For security you'd probably want to restrict the
6547 host to a limited list.
6548
6549 Note that an internal cache is keyed on user so only use that for con‐
6550 figuration, don't use pass or public_key. This also means that if a
6551 user's password or public-key is changed the cache will need to expire
6552 (which takes 5 mins) before it takes effect.
6553
6554 This can be used to build general purpose proxies to any kind of back‐
6555 end that rclone supports.
6556
6557 rclone serve sftp remote:path [flags]
6558
6559 Options
6560 --addr string IPaddress:Port or :Port to bind server to (default "localhost:2022")
6561 --auth-proxy string A program to use to create the backend from the auth
6562 --authorized-keys string Authorized keys file (default "~/.ssh/authorized_keys")
6563 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
6564 --dir-perms FileMode Directory permissions (default 0777)
6565 --file-perms FileMode File permissions (default 0666)
6566 --gid uint32 Override the gid field set by the filesystem (not supported on Windows) (default 1000)
6567 -h, --help help for sftp
6568 --key stringArray SSH private host key file (Can be multi-valued, leave blank to auto generate)
6569 --no-auth Allow connections with no authentication if set
6570 --no-checksum Don't compare checksums on up/download
6571 --no-modtime Don't read/write the modification time (can speed things up)
6572 --no-seek Don't allow seeking in files
6573 --pass string Password for authentication
6574 --poll-interval duration Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s)
6575 --read-only Mount read-only
6576 --stdio Run an sftp server on run stdin/stdout
6577 --uid uint32 Override the uid field set by the filesystem (not supported on Windows) (default 1000)
6578 --umask int Override the permission bits set by the filesystem (not supported on Windows) (default 2)
6579 --user string User name for authentication
6580 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
6581 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
6582 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
6583 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
6584 --vfs-case-insensitive If a file name not found, find a case insensitive match
6585 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full
6586 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128Mi)
6587 --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached ('off' is unlimited) (default off)
6588 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
6589 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size
6590 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
6591 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
6592
6593 See the global flags page (https://rclone.org/flags/) for global op‐
6594 tions not listed here.
6595
6596 SEE ALSO
6597 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
6598 remote over a protocol.
6599
6601 Serve remote:path over webdav.
6602
6603 Synopsis
6604 rclone serve webdav implements a basic webdav server to serve the re‐
6605 mote over HTTP via the webdav protocol. This can be viewed with a web‐
6606 dav client, through a web browser, or you can make a remote of type
6607 webdav to read and write it.
6608
6609 Webdav options
6610 --etag-hash
6611 This controls the ETag header. Without this flag the ETag will be
6612 based on the ModTime and Size of the object.
6613
6614 If this flag is set to "auto" then rclone will choose the first sup‐
6615 ported hash on the backend or you can use a named hash such as "MD5" or
6616 "SHA-1".
6617
6618 Use "rclone hashsum" to see the full list.
6619
6620 Server options
6621 Use --addr to specify which IP address and port the server should lis‐
6622 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
6623 By default it only listens on localhost. You can use port :0 to let
6624 the OS choose an available port.
6625
6626 If you set --addr to listen on a public or LAN accessible IP address
6627 then using Authentication is advised - see the next section for info.
6628
6629 --server-read-timeout and --server-write-timeout can be used to control
6630 the timeouts on the server. Note that this is the total time for a
6631 transfer.
6632
6633 --max-header-bytes controls the maximum number of bytes the server will
6634 accept in the HTTP header.
6635
6636 --baseurl controls the URL prefix that rclone serves from. By default
6637 rclone will serve from the root. If you used --baseurl "/rclone" then
6638 rclone would serve from a URL starting with "/rclone/". This is useful
6639 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
6640 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
6641 "/rclone" and --baseurl "/rclone/" are all treated identically.
6642
6643 --template allows a user to specify a custom markup template for http
6644 and webdav serve functions. The server exports the following markup to
6645 be used within the template to server pages:
6646
6647 Parameter Description
6648 ──────────────────────────────────────────────────────────────────────────
6649 .Name The full path of a file/directory.
6650 .Title Directory listing of .Name
6651 .Sort The current sort used. This is
6652 changeable via ?sort= parameter
6653 Sort Options:
6654 namedirfirst,name,size,time (de‐
6655 fault namedirfirst)
6656 .Order The current ordering used. This is
6657 changeable via ?order= parameter
6658 Order Options: asc,desc (default
6659 asc)
6660 .Query Currently unused.
6661 .Breadcrumb Allows for creating a relative nav‐
6662 igation
6663 -- .Link The relative to the root link of
6664 the Text.
6665 -- .Text The Name of the directory.
6666 .Entries Information about a specific
6667 file/directory.
6668 -- .URL The 'url' of an entry.
6669 -- .Leaf Currently same as 'URL' but intend‐
6670 ed to be 'just' the name.
6671 -- .IsDir Boolean for if an entry is a direc‐
6672 tory or not.
6673 -- .Size Size in Bytes of the entry.
6674 -- .ModTime The UTC timestamp of an entry.
6675
6676 Authentication
6677 By default this will serve files without needing a login.
6678
6679 You can either use an htpasswd file which can take lots of users, or
6680 set a single username and password with the --user and --pass flags.
6681
6682 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
6683 in standard apache format and supports MD5, SHA1 and BCrypt for basic
6684 authentication. Bcrypt is recommended.
6685
6686 To create an htpasswd file:
6687
6688 touch htpasswd
6689 htpasswd -B htpasswd user
6690 htpasswd -B htpasswd anotherUser
6691
6692 The password file can be updated while rclone is running.
6693
6694 Use --realm to set the authentication realm.
6695
6696 SSL/TLS
6697 By default this will serve over http. If you want you can serve over
6698 https. You will need to supply the --cert and --key flags. If you
6699 wish to do client side certificate validation then you will need to
6700 supply --client-ca also.
6701
6702 --cert should be either a PEM encoded certificate or a concatenation of
6703 that with the CA certificate. --key should be the PEM encoded private
6704 key and --client-ca should be the PEM encoded client certificate au‐
6705 thority certificate.
6706
6707 VFS - Virtual File System
6708 This command uses the VFS layer. This adapts the cloud storage objects
6709 that rclone uses into something which looks much more like a disk fil‐
6710 ing system.
6711
6712 Cloud storage objects have lots of properties which aren't like disk
6713 files - you can't extend them or write to the middle of them, so the
6714 VFS layer has to deal with that. Because there is no one right way of
6715 doing this there are various options explained below.
6716
6717 The VFS layer also implements a directory cache - this caches info
6718 about files and directories (but not the data) in memory.
6719
6720 VFS Directory Cache
6721 Using the --dir-cache-time flag, you can control how long a directory
6722 should be considered up to date and not refreshed from the backend.
6723 Changes made through the mount will appear immediately or invalidate
6724 the cache.
6725
6726 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
6727 --poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
6728
6729 However, changes made directly on the cloud storage by the web inter‐
6730 face or a different copy of rclone will only be picked up once the di‐
6731 rectory cache expires if the backend configured does not support
6732 polling for changes. If the backend supports polling, changes will be
6733 picked up within the polling interval.
6734
6735 You can send a SIGHUP signal to rclone for it to flush all directory
6736 caches, regardless of how old they are. Assuming only one rclone in‐
6737 stance is running, you can reset the cache like this:
6738
6739 kill -SIGHUP $(pidof rclone)
6740
6741 If you configure rclone with a remote control (/rc) then you can use
6742 rclone rc to flush the whole directory cache:
6743
6744 rclone rc vfs/forget
6745
6746 Or individual files or directories:
6747
6748 rclone rc vfs/forget file=path/to/file dir=path/to/dir
6749
6750 VFS File Buffering
6751 The --buffer-size flag determines the amount of memory, that will be
6752 used to buffer data in advance.
6753
6754 Each open file will try to keep the specified amount of data in memory
6755 at all times. The buffered data is bound to one open file and won't be
6756 shared.
6757
6758 This flag is a upper limit for the used memory per open file. The buf‐
6759 fer will only use memory for data that is downloaded but not not yet
6760 read. If the buffer is empty, only a small amount of memory will be
6761 used.
6762
6763 The maximum memory used by rclone for buffering can be up to --buf‐
6764 fer-size * open files.
6765
6766 VFS File Caching
6767 These flags control the VFS file caching options. File caching is nec‐
6768 essary to make the VFS layer appear compatible with a normal file sys‐
6769 tem. It can be disabled at the cost of some compatibility.
6770
6771 For example you'll need to enable VFS caching if you want to read and
6772 write simultaneously to a file. See below for more details.
6773
6774 Note that the VFS cache is separate from the cache backend and you may
6775 find that you need one or the other or both.
6776
6777 --cache-dir string Directory rclone will use for caching.
6778 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
6779 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
6780 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
6781 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
6782 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
6783
6784 If run with -vv rclone will print the location of the file cache. The
6785 files are stored in the user cache file area which is OS dependent but
6786 can be controlled with --cache-dir or setting the appropriate environ‐
6787 ment variable.
6788
6789 The cache has 4 different modes selected by --vfs-cache-mode. The
6790 higher the cache mode the more compatible rclone becomes at the cost of
6791 using disk space.
6792
6793 Note that files are written back to the remote only when they are
6794 closed and if they haven't been accessed for --vfs-write-back seconds.
6795 If rclone is quit or dies with files that haven't been uploaded, these
6796 will be uploaded next time rclone is run with the same flags.
6797
6798 If using --vfs-cache-max-size note that the cache may exceed this size
6799 for two reasons. Firstly because it is only checked every
6800 --vfs-cache-poll-interval. Secondly because open files cannot be
6801 evicted from the cache.
6802
6803 You should not run two copies of rclone using the same VFS cache with
6804 the same or overlapping remotes if using --vfs-cache-mode > off. This
6805 can potentially cause data corruption if you do. You can work around
6806 this by giving each rclone its own cache hierarchy with --cache-dir.
6807 You don't need to worry about this if the remotes in use don't overlap.
6808
6809 --vfs-cache-mode off
6810 In this mode (the default) the cache will read directly from the remote
6811 and write directly to the remote without caching anything on disk.
6812
6813 This will mean some operations are not possible
6814
6815 • Files can't be opened for both read AND write
6816
6817 • Files opened for write can't be seeked
6818
6819 • Existing files opened for write must have O_TRUNC set
6820
6821 • Files open for read with O_TRUNC will be opened write only
6822
6823 • Files open for write only will behave as if O_TRUNC was supplied
6824
6825 • Open modes O_APPEND, O_TRUNC are ignored
6826
6827 • If an upload fails it can't be retried
6828
6829 --vfs-cache-mode minimal
6830 This is very similar to "off" except that files opened for read AND
6831 write will be buffered to disk. This means that files opened for write
6832 will be a lot more compatible, but uses the minimal disk space.
6833
6834 These operations are not possible
6835
6836 • Files opened for write only can't be seeked
6837
6838 • Existing files opened for write must have O_TRUNC set
6839
6840 • Files opened for write only will ignore O_APPEND, O_TRUNC
6841
6842 • If an upload fails it can't be retried
6843
6844 --vfs-cache-mode writes
6845 In this mode files opened for read only are still read directly from
6846 the remote, write only and read/write files are buffered to disk first.
6847
6848 This mode should support all normal file system operations.
6849
6850 If an upload fails it will be retried at exponentially increasing in‐
6851 tervals up to 1 minute.
6852
6853 --vfs-cache-mode full
6854 In this mode all reads and writes are buffered to and from disk. When
6855 data is read from the remote this is buffered to disk as well.
6856
6857 In this mode the files in the cache will be sparse files and rclone
6858 will keep track of which bits of the files it has downloaded.
6859
6860 So if an application only reads the starts of each file, then rclone
6861 will only buffer the start of the file. These files will appear to be
6862 their full size in the cache, but they will be sparse files with only
6863 the data that has been downloaded present in them.
6864
6865 This mode should support all normal file system operations and is oth‐
6866 erwise identical to --vfs-cache-mode writes.
6867
6868 When reading a file rclone will read --buffer-size plus
6869 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
6870 whereas the --vfs-read-ahead is buffered on disk.
6871
6872 When using this mode it is recommended that --buffer-size is not set
6873 too large and --vfs-read-ahead is set large if required.
6874
6875 IMPORTANT not all file systems support sparse files. In particular
6876 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
6877 ry is on a filesystem which doesn't support sparse files and it will
6878 log an ERROR message if one is detected.
6879
6880 VFS Chunked Reading
6881 When rclone reads files from a remote it reads them in chunks. This
6882 means that rather than requesting the whole file rclone reads the chunk
6883 specified. This can reduce the used download quota for some remotes by
6884 requesting only chunks from the remote that are actually read, at the
6885 cost of an increased number of requests.
6886
6887 These flags control the chunking:
6888
6889 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
6890 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
6891
6892 Rclone will start reading a chunk of size --vfs-read-chunk-size, and
6893 then double the size for each read. When --vfs-read-chunk-size-limit
6894 is specified, and greater than --vfs-read-chunk-size, the chunk size
6895 for each open file will get doubled only until the specified value is
6896 reached. If the value is "off", which is the default, the limit is
6897 disabled and the chunk size will grow indefinitely.
6898
6899 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
6900 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
6901 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
6902 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
6903 1200M-1700M and so on.
6904
6905 Setting --vfs-read-chunk-size to 0 or "off" disables chunked reading.
6906
6907 VFS Performance
6908 These flags may be used to enable/disable features of the VFS for per‐
6909 formance or other reasons. See also the chunked reading feature.
6910
6911 In particular S3 and Swift benefit hugely from the --no-modtime flag
6912 (or use --use-server-modtime for a slightly different effect) as each
6913 read of the modification time takes a transaction.
6914
6915 --no-checksum Don't compare checksums on up/download.
6916 --no-modtime Don't read/write the modification time (can speed things up).
6917 --no-seek Don't allow seeking in files.
6918 --read-only Mount read-only.
6919
6920 Sometimes rclone is delivered reads or writes out of order. Rather
6921 than seeking rclone will wait a short time for the in sequence read or
6922 write to come in. These flags only come into effect when not using an
6923 on disk cache file.
6924
6925 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
6926 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
6927
6928 When using VFS write caching (--vfs-cache-mode with value writes or
6929 full), the global flag --transfers can be set to adjust the number of
6930 parallel uploads of modified files from cache (the related global flag
6931 --checkers have no effect on mount).
6932
6933 --transfers int Number of file transfers to run in parallel (default 4)
6934
6935 VFS Case Sensitivity
6936 Linux file systems are case-sensitive: two files can differ only by
6937 case, and the exact case must be used when opening a file.
6938
6939 File systems in modern Windows are case-insensitive but case-preserv‐
6940 ing: although existing files can be opened using any case, the exact
6941 case used to create the file is preserved and available for programs to
6942 query. It is not allowed for two files in the same directory to differ
6943 only by case.
6944
6945 Usually file systems on macOS are case-insensitive. It is possible to
6946 make macOS file systems case-sensitive but that is not the default.
6947
6948 The --vfs-case-insensitive mount flag controls how rclone handles these
6949 two cases. If its value is "false", rclone passes file names to the
6950 mounted file system as-is. If the flag is "true" (or appears without a
6951 value on command line), rclone may perform a "fixup" as explained be‐
6952 low.
6953
6954 The user may specify a file name to open/delete/rename/etc with a case
6955 different than what is stored on mounted file system. If an argument
6956 refers to an existing file with exactly the same name, then the case of
6957 the existing file on the disk will be used. However, if a file name
6958 with exactly the same name is not found but a name differing only by
6959 case exists, rclone will transparently fixup the name. This fixup hap‐
6960 pens only when an existing file is requested. Case sensitivity of file
6961 names created anew by rclone is controlled by an underlying mounted
6962 file system.
6963
6964 Note that case sensitivity of the operating system running rclone (the
6965 target) may differ from case sensitivity of a file system mounted by
6966 rclone (the source). The flag controls whether "fixup" is performed to
6967 satisfy the target.
6968
6969 If the flag is not provided on the command line, then its default value
6970 depends on the operating system where rclone runs: "true" on Windows
6971 and macOS, "false" otherwise. If the flag is provided without a value,
6972 then it is "true".
6973
6974 Alternate report of used bytes
6975 Some backends, most notably S3, do not report the amount of bytes used.
6976 If you need this information to be available when running df on the
6977 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
6978 flag set, instead of relying on the backend to report this information,
6979 rclone will scan the whole remote similar to rclone size and compute
6980 the total used space itself.
6981
6982 WARNING. Contrary to rclone size, this flag ignores filters so that the
6983 result is accurate. However, this is very inefficient and may cost
6984 lots of API calls resulting in extra charges. Use it as a last resort
6985 and only with caching.
6986
6987 Auth Proxy
6988 If you supply the parameter --auth-proxy /path/to/program then rclone
6989 will use that program to generate backends on the fly which then are
6990 used to authenticate incoming requests. This uses a simple JSON based
6991 protocol with input on STDIN and output on STDOUT.
6992
6993 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
6994 er, if --auth-proxy is set the authorized keys option will be ignored.
6995
6996 There is an example program bin/test_proxy.py
6997 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
6998 rclone source code.
6999
7000 The program's job is to take a user and pass on the input and turn
7001 those into the config for a backend on STDOUT in JSON format. This
7002 config will have any default parameters for the backend added, but it
7003 won't use configuration from environment variables or command line op‐
7004 tions - it is the job of the proxy program to make a complete config.
7005
7006 This config generated must have this extra parameter - _root - root to
7007 use for the backend
7008
7009 And it may have this parameter - _obscure - comma separated strings for
7010 parameters to obscure
7011
7012 If password authentication was used by the client, input to the proxy
7013 process (on STDIN) would look similar to this:
7014
7015 {
7016 "user": "me",
7017 "pass": "mypassword"
7018 }
7019
7020 If public-key authentication was used by the client, input to the proxy
7021 process (on STDIN) would look similar to this:
7022
7023 {
7024 "user": "me",
7025 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
7026 }
7027
7028 And as an example return this on STDOUT
7029
7030 {
7031 "type": "sftp",
7032 "_root": "",
7033 "_obscure": "pass",
7034 "user": "me",
7035 "pass": "mypassword",
7036 "host": "sftp.example.com"
7037 }
7038
7039 This would mean that an SFTP backend would be created on the fly for
7040 the user and pass/public_key returned in the output to the host given.
7041 Note that since _obscure is set to pass, rclone will obscure the pass
7042 parameter before creating the backend (which is required for sftp back‐
7043 ends).
7044
7045 The program can manipulate the supplied user in any way, for example to
7046 make proxy to many different sftp backends, you could make the user be
7047 user@example.com and then set the host to example.com in the output and
7048 the user to user. For security you'd probably want to restrict the
7049 host to a limited list.
7050
7051 Note that an internal cache is keyed on user so only use that for con‐
7052 figuration, don't use pass or public_key. This also means that if a
7053 user's password or public-key is changed the cache will need to expire
7054 (which takes 5 mins) before it takes effect.
7055
7056 This can be used to build general purpose proxies to any kind of back‐
7057 end that rclone supports.
7058
7059 rclone serve webdav remote:path [flags]
7060
7061 Options
7062 --addr string IPaddress:Port or :Port to bind server to (default "localhost:8080")
7063 --auth-proxy string A program to use to create the backend from the auth
7064 --baseurl string Prefix for URLs - leave blank for root
7065 --cert string SSL PEM key (concatenation of certificate and CA certificate)
7066 --client-ca string Client certificate authority to verify clients with
7067 --dir-cache-time duration Time to cache directory entries for (default 5m0s)
7068 --dir-perms FileMode Directory permissions (default 0777)
7069 --disable-dir-list Disable HTML directory list on GET request for a directory
7070 --etag-hash string Which hash to use for the ETag, or auto or blank for off
7071 --file-perms FileMode File permissions (default 0666)
7072 --gid uint32 Override the gid field set by the filesystem (not supported on Windows) (default 1000)
7073 -h, --help help for webdav
7074 --htpasswd string htpasswd file - if not provided no authentication is done
7075 --key string SSL PEM Private key
7076 --max-header-bytes int Maximum size of request header (default 4096)
7077 --no-checksum Don't compare checksums on up/download
7078 --no-modtime Don't read/write the modification time (can speed things up)
7079 --no-seek Don't allow seeking in files
7080 --pass string Password for authentication
7081 --poll-interval duration Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s)
7082 --read-only Mount read-only
7083 --realm string realm for authentication (default "rclone")
7084 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
7085 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
7086 --template string User-specified template
7087 --uid uint32 Override the uid field set by the filesystem (not supported on Windows) (default 1000)
7088 --umask int Override the permission bits set by the filesystem (not supported on Windows) (default 2)
7089 --user string User name for authentication
7090 --vfs-cache-max-age duration Max age of objects in the cache (default 1h0m0s)
7091 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache (default off)
7092 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
7093 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
7094 --vfs-case-insensitive If a file name not found, find a case insensitive match
7095 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full
7096 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128Mi)
7097 --vfs-read-chunk-size-limit SizeSuffix If greater than --vfs-read-chunk-size, double the chunk size after each chunk read, until the limit is reached ('off' is unlimited) (default off)
7098 --vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
7099 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size
7100 --vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
7101 --vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
7102
7103 See the global flags page (https://rclone.org/flags/) for global op‐
7104 tions not listed here.
7105
7106 SEE ALSO
7107 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
7108 remote over a protocol.
7109
7111 Changes storage class/tier of objects in remote.
7112
7113 Synopsis
7114 rclone settier changes storage tier or class at remote if supported.
7115 Few cloud storage services provides different storage classes on ob‐
7116 jects, for example AWS S3 and Glacier, Azure Blob storage - Hot, Cool
7117 and Archive, Google Cloud Storage, Regional Storage, Nearline, Coldline
7118 etc.
7119
7120 Note that, certain tier changes make objects not available to access
7121 immediately. For example tiering to archive in azure blob storage
7122 makes objects in frozen state, user can restore by setting tier to
7123 Hot/Cool, similarly S3 to Glacier makes object inaccessible.true
7124
7125 You can use it to tier single object
7126
7127 rclone settier Cool remote:path/file
7128
7129 Or use rclone filters to set tier on only specific files
7130
7131 rclone --include "*.txt" settier Hot remote:path/dir
7132
7133 Or just provide remote directory and all files in directory will be
7134 tiered
7135
7136 rclone settier tier remote:path/dir
7137
7138 rclone settier tier remote:path [flags]
7139
7140 Options
7141 -h, --help help for settier
7142
7143 See the global flags page (https://rclone.org/flags/) for global op‐
7144 tions not listed here.
7145
7146 SEE ALSO
7147 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
7148 commands, flags and backends.
7149
7151 Run a test command
7152
7153 Synopsis
7154 Rclone test is used to run test commands.
7155
7156 Select which test comand you want with the subcommand, eg
7157
7158 rclone test memory remote:
7159
7160 Each subcommand has its own options which you can see in their help.
7161
7162 NB Be careful running these commands, they may do strange things so
7163 reading their documentation first is recommended.
7164
7165 Options
7166 -h, --help help for test
7167
7168 See the global flags page (https://rclone.org/flags/) for global op‐
7169 tions not listed here.
7170
7171 SEE ALSO
7172 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
7173 commands, flags and backends.
7174
7175 • rclone test changenotify (https://rclone.org/com‐
7176 mands/rclone_test_changenotify/) - Log any change notify requests for
7177 the remote passed in.
7178
7179 • rclone test histogram (https://rclone.org/commands/rclone_test_his‐
7180 togram/) - Makes a histogram of file name characters.
7181
7182 • rclone test info (https://rclone.org/commands/rclone_test_info/) -
7183 Discovers file name or other limitations for paths.
7184
7185 • rclone test makefiles (https://rclone.org/commands/rclone_test_make‐
7186 files/) - Make a random file hierarchy in a directory
7187
7188 • rclone test memory (https://rclone.org/commands/rclone_test_memory/)
7189 - Load all the objects at remote:path into memory and report memory
7190 stats.
7191
7193 Log any change notify requests for the remote passed in.
7194
7195 rclone test changenotify remote: [flags]
7196
7197 Options
7198 -h, --help help for changenotify
7199 --poll-interval duration Time to wait between polling for changes (default 10s)
7200
7201 See the global flags page (https://rclone.org/flags/) for global op‐
7202 tions not listed here.
7203
7204 SEE ALSO
7205 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
7206 command
7207
7209 Makes a histogram of file name characters.
7210
7211 Synopsis
7212 This command outputs JSON which shows the histogram of characters used
7213 in filenames in the remote:path specified.
7214
7215 The data doesn't contain any identifying information but is useful for
7216 the rclone developers when developing filename compression.
7217
7218 rclone test histogram [remote:path] [flags]
7219
7220 Options
7221 -h, --help help for histogram
7222
7223 See the global flags page (https://rclone.org/flags/) for global op‐
7224 tions not listed here.
7225
7226 SEE ALSO
7227 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
7228 command
7229
7231 Discovers file name or other limitations for paths.
7232
7233 Synopsis
7234 rclone info discovers what filenames and upload methods are possible to
7235 write to the paths passed in and how long they can be. It can take
7236 some time. It will write test files into the remote:path passed in.
7237 It outputs a bit of go code for each one.
7238
7239 NB this can create undeletable files and other hazards - use with care
7240
7241 rclone test info [remote:path]+ [flags]
7242
7243 Options
7244 --all Run all tests
7245 --check-control Check control characters
7246 --check-length Check max filename length
7247 --check-normalization Check UTF-8 Normalization
7248 --check-streaming Check uploads with indeterminate file size
7249 -h, --help help for info
7250 --upload-wait duration Wait after writing a file
7251 --write-json string Write results to file
7252
7253 See the global flags page (https://rclone.org/flags/) for global op‐
7254 tions not listed here.
7255
7256 SEE ALSO
7257 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
7258 command
7259
7261 Make a random file hierarchy in a directory
7262
7263 rclone test makefiles <dir> [flags]
7264
7265 Options
7266 --files int Number of files to create (default 1000)
7267 --files-per-directory int Average number of files per directory (default 10)
7268 -h, --help help for makefiles
7269 --max-file-size SizeSuffix Maximum size of files to create (default 100)
7270 --max-name-length int Maximum size of file names (default 12)
7271 --min-file-size SizeSuffix Minimum size of file to create
7272 --min-name-length int Minimum size of file names (default 4)
7273 --seed int Seed for the random number generator (0 for random) (default 1)
7274
7275 See the global flags page (https://rclone.org/flags/) for global op‐
7276 tions not listed here.
7277
7278 SEE ALSO
7279 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
7280 command
7281
7283 Load all the objects at remote:path into memory and report memory
7284 stats.
7285
7286 rclone test memory remote:path [flags]
7287
7288 Options
7289 -h, --help help for memory
7290
7291 See the global flags page (https://rclone.org/flags/) for global op‐
7292 tions not listed here.
7293
7294 SEE ALSO
7295 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
7296 command
7297
7299 Create new file or change file modification time.
7300
7301 Synopsis
7302 Set the modification time on file(s) as specified by remote:path to
7303 have the current time.
7304
7305 If remote:path does not exist then a zero sized file will be created,
7306 unless --no-create or --recursive is provided.
7307
7308 If --recursive is used then recursively sets the modification time on
7309 all existing files that is found under the path. Filters are support‐
7310 ed, and you can test with the --dry-run or the --interactive flag.
7311
7312 If --timestamp is used then sets the modification time to that time in‐
7313 stead of the current time. Times may be specified as one of:
7314
7315 • 'YYMMDD' - e.g. 17.10.30
7316
7317 • 'YYYY-MM-DDTHH:MM:SS' - e.g. 2006-01-02T15:04:05
7318
7319 • 'YYYY-MM-DDTHH:MM:SS.SSS' - e.g. 2006-01-02T15:04:05.123456789
7320
7321 Note that value of --timestamp is in UTC. If you want local time then
7322 add the --localtime flag.
7323
7324 rclone touch remote:path [flags]
7325
7326 Options
7327 -h, --help help for touch
7328 --localtime Use localtime for timestamp, not UTC
7329 -C, --no-create Do not create the file if it does not exist (implied with --recursive)
7330 -R, --recursive Recursively touch all files
7331 -t, --timestamp string Use specified time instead of the current time of day
7332
7333 See the global flags page (https://rclone.org/flags/) for global op‐
7334 tions not listed here.
7335
7336 SEE ALSO
7337 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
7338 commands, flags and backends.
7339
7341 List the contents of the remote in a tree like fashion.
7342
7343 Synopsis
7344 rclone tree lists the contents of a remote in a similar way to the unix
7345 tree command.
7346
7347 For example
7348
7349 $ rclone tree remote:path
7350 /
7351 ├── file1
7352 ├── file2
7353 ├── file3
7354 └── subdir
7355 ├── file4
7356 └── file5
7357
7358 1 directories, 5 files
7359
7360 You can use any of the filtering options with the tree command (e.g.
7361 --include and --exclude). You can also use --fast-list.
7362
7363 The tree command has many options for controlling the listing which are
7364 compatible with the tree command. Note that not all of them have short
7365 options as they conflict with rclone's short options.
7366
7367 rclone tree remote:path [flags]
7368
7369 Options
7370 -a, --all All files are listed (list . files too)
7371 -C, --color Turn colorization on always
7372 -d, --dirs-only List directories only
7373 --dirsfirst List directories before files (-U disables)
7374 --full-path Print the full path prefix for each file
7375 -h, --help help for tree
7376 --human Print the size in a more human readable way.
7377 --level int Descend only level directories deep
7378 -D, --modtime Print the date of last modification.
7379 --noindent Don't print indentation lines
7380 --noreport Turn off file/directory count at end of tree listing
7381 -o, --output string Output to file instead of stdout
7382 -p, --protections Print the protections for each file.
7383 -Q, --quote Quote filenames with double quotes.
7384 -s, --size Print the size in bytes of each file.
7385 --sort string Select sort: name,version,size,mtime,ctime
7386 --sort-ctime Sort files by last status change time
7387 -t, --sort-modtime Sort files by last modification time
7388 -r, --sort-reverse Reverse the order of the sort
7389 -U, --unsorted Leave files unsorted
7390 --version Sort files alphanumerically by version
7391
7392 See the global flags page (https://rclone.org/flags/) for global op‐
7393 tions not listed here.
7394
7395 SEE ALSO
7396 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
7397 commands, flags and backends.
7398
7399 Copying single files
7400 rclone normally syncs or copies directories. However, if the source
7401 remote points to a file, rclone will just copy that file. The destina‐
7402 tion remote must point to a directory - rclone will give the error
7403 Failed to create file system for "remote:file": is a file not a direc‐
7404 tory if it isn't.
7405
7406 For example, suppose you have a remote with a file in called test.jpg,
7407 then you could copy just that file like this
7408
7409 rclone copy remote:test.jpg /tmp/download
7410
7411 The file test.jpg will be placed inside /tmp/download.
7412
7413 This is equivalent to specifying
7414
7415 rclone copy --files-from /tmp/files remote: /tmp/download
7416
7417 Where /tmp/files contains the single line
7418
7419 test.jpg
7420
7421 It is recommended to use copy when copying individual files, not sync.
7422 They have pretty much the same effect but copy will use a lot less mem‐
7423 ory.
7424
7425 Syntax of remote paths
7426 The syntax of the paths passed to the rclone command are as follows.
7427
7428 /path/to/dir
7429 This refers to the local file system.
7430
7431 On Windows \ may be used instead of / in local paths only, non local
7432 paths must use /. See local filesystem (https://rclone.org/lo‐
7433 cal/#paths-on-windows) documentation for more about Windows-specific
7434 paths.
7435
7436 These paths needn't start with a leading / - if they don't then they
7437 will be relative to the current directory.
7438
7439 remote:path/to/dir
7440 This refers to a directory path/to/dir on remote: as defined in the
7441 config file (configured with rclone config).
7442
7443 remote:/path/to/dir
7444 On most backends this is refers to the same directory as re‐
7445 mote:path/to/dir and that format should be preferred. On a very small
7446 number of remotes (FTP, SFTP, Dropbox for business) this will refer to
7447 a different directory. On these, paths without a leading / will refer
7448 to your "home" directory and paths with a leading / will refer to the
7449 root.
7450
7451 :backend:path/to/dir
7452 This is an advanced form for creating remotes on the fly. backend
7453 should be the name or prefix of a backend (the type in the config file)
7454 and all the configuration for the backend should be provided on the
7455 command line (or in environment variables).
7456
7457 Here are some examples:
7458
7459 rclone lsd --http-url https://pub.rclone.org :http:
7460
7461 To list all the directories in the root of https://pub.rclone.org/.
7462
7463 rclone lsf --http-url https://example.com :http:path/to/dir
7464
7465 To list files and directories in https://example.com/path/to/dir/
7466
7467 rclone copy --http-url https://example.com :http:path/to/dir /tmp/dir
7468
7469 To copy files and directories in https://example.com/path/to/dir to
7470 /tmp/dir.
7471
7472 rclone copy --sftp-host example.com :sftp:path/to/dir /tmp/dir
7473
7474 To copy files and directories from example.com in the relative directo‐
7475 ry path/to/dir to /tmp/dir using sftp.
7476
7477 Connection strings
7478 The above examples can also be written using a connection string syn‐
7479 tax, so instead of providing the arguments as command line parameters
7480 --http-url https://pub.rclone.org they are provided as part of the re‐
7481 mote specification as a kind of connection string.
7482
7483 rclone lsd ":http,url='https://pub.rclone.org':"
7484 rclone lsf ":http,url='https://example.com':path/to/dir"
7485 rclone copy ":http,url='https://example.com':path/to/dir" /tmp/dir
7486 rclone copy :sftp,host=example.com:path/to/dir /tmp/dir
7487
7488 These can apply to modify existing remotes as well as create new re‐
7489 motes with the on the fly syntax. This example is equivalent to adding
7490 the --drive-shared-with-me parameter to the remote gdrive:.
7491
7492 rclone lsf "gdrive,shared_with_me:path/to/dir"
7493
7494 The major advantage to using the connection string style syntax is that
7495 it only applies to the remote, not to all the remotes of that type of
7496 the command line. A common confusion is this attempt to copy a file
7497 shared on google drive to the normal drive which does not work because
7498 the --drive-shared-with-me flag applies to both the source and the des‐
7499 tination.
7500
7501 rclone copy --drive-shared-with-me gdrive:shared-file.txt gdrive:
7502
7503 However using the connection string syntax, this does work.
7504
7505 rclone copy "gdrive,shared_with_me:shared-file.txt" gdrive:
7506
7507 Note that the connection string only affects the options of the immedi‐
7508 ate backend. If for example gdriveCrypt is a crypt based on gdrive,
7509 then the following command will not work as intended, because
7510 shared_with_me is ignored by the crypt backend:
7511
7512 rclone copy "gdriveCrypt,shared_with_me:shared-file.txt" gdriveCrypt:
7513
7514 The connection strings have the following syntax
7515
7516 remote,parameter=value,parameter2=value2:path/to/dir
7517 :backend,parameter=value,parameter2=value2:path/to/dir
7518
7519 If the parameter has a : or , then it must be placed in quotes " or ',
7520 so
7521
7522 remote,parameter="colon:value",parameter2="comma,value":path/to/dir
7523 :backend,parameter='colon:value',parameter2='comma,value':path/to/dir
7524
7525 If a quoted value needs to include that quote, then it should be dou‐
7526 bled, so
7527
7528 remote,parameter="with""quote",parameter2='with''quote':path/to/dir
7529
7530 This will make parameter be with"quote and parameter2 be with'quote.
7531
7532 If you leave off the =parameter then rclone will substitute =true which
7533 works very well with flags. For example to use s3 configured in the
7534 environment you could use:
7535
7536 rclone lsd :s3,env_auth:
7537
7538 Which is equivalent to
7539
7540 rclone lsd :s3,env_auth=true:
7541
7542 Note that on the command line you might need to surround these connec‐
7543 tion strings with " or ' to stop the shell interpreting any special
7544 characters within them.
7545
7546 If you are a shell master then you'll know which strings are OK and
7547 which aren't, but if you aren't sure then enclose them in " and use '
7548 as the inside quote. This syntax works on all OSes.
7549
7550 rclone copy ":http,url='https://example.com':path/to/dir" /tmp/dir
7551
7552 On Linux/macOS some characters are still interpreted inside " strings
7553 in the shell (notably \ and $ and ") so if your strings contain those
7554 you can swap the roles of " and ' thus. (This syntax does not work on
7555 Windows.)
7556
7557 rclone copy ':http,url="https://example.com":path/to/dir' /tmp/dir
7558
7559 Connection strings, config and logging
7560 If you supply extra configuration to a backend by command line flag,
7561 environment variable or connection string then rclone will add a suffix
7562 based on the hash of the config to the name of the remote, eg
7563
7564 rclone -vv lsf --s3-chunk-size 20M s3:
7565
7566 Has the log message
7567
7568 DEBUG : s3: detected overridden config - adding "{Srj1p}" suffix to name
7569
7570 This is so rclone can tell the modified remote apart from the unmodi‐
7571 fied remote when caching the backends.
7572
7573 This should only be noticeable in the logs.
7574
7575 This means that on the fly backends such as
7576
7577 rclone -vv lsf :s3,env_auth:
7578
7579 Will get their own names
7580
7581 DEBUG : :s3: detected overridden config - adding "{YTu53}" suffix to name
7582
7583 Valid remote names
7584 Remote names are case sensitive, and must adhere to the following
7585 rules: - May only contain 0-9, A-Z, a-z, _, - and space. - May not
7586 start with - or space.
7587
7588 Quoting and the shell
7589 When you are typing commands to your computer you are using something
7590 called the command line shell. This interprets various characters in
7591 an OS specific way.
7592
7593 Here are some gotchas which may help users unfamiliar with the shell
7594 rules
7595
7596 Linux / OSX
7597 If your names have spaces or shell metacharacters (e.g. *, ?, $, ', ",
7598 etc.) then you must quote them. Use single quotes ' by default.
7599
7600 rclone copy 'Important files?' remote:backup
7601
7602 If you want to send a ' you will need to use ", e.g.
7603
7604 rclone copy "O'Reilly Reviews" remote:backup
7605
7606 The rules for quoting metacharacters are complicated and if you want
7607 the full details you'll have to consult the manual page for your shell.
7608
7609 Windows
7610 If your names have spaces in you need to put them in ", e.g.
7611
7612 rclone copy "E:\folder name\folder name\folder name" remote:backup
7613
7614 If you are using the root directory on its own then don't quote it (see
7615 #464 (https://github.com/rclone/rclone/issues/464) for why), e.g.
7616
7617 rclone copy E:\ remote:backup
7618
7619 Copying files or directories with : in the names
7620 rclone uses : to mark a remote name. This is, however, a valid file‐
7621 name component in non-Windows OSes. The remote name parser will only
7622 search for a : up to the first / so if you need to act on a file or di‐
7623 rectory like this then use the full path starting with a /, or use ./
7624 as a current directory prefix.
7625
7626 So to sync a directory called sync:me to a remote called remote: use
7627
7628 rclone sync -i ./sync:me remote:path
7629
7630 or
7631
7632 rclone sync -i /full/path/to/sync:me remote:path
7633
7634 Server Side Copy
7635 Most remotes (but not all - see the overview (https://rclone.org/over‐
7636 view/#optional-features)) support server-side copy.
7637
7638 This means if you want to copy one folder to another then rclone won't
7639 download all the files and re-upload them; it will instruct the server
7640 to copy them in place.
7641
7642 Eg
7643
7644 rclone copy s3:oldbucket s3:newbucket
7645
7646 Will copy the contents of oldbucket to newbucket without downloading
7647 and re-uploading.
7648
7649 Remotes which don't support server-side copy will download and re-up‐
7650 load in this case.
7651
7652 Server side copies are used with sync and copy and will be identified
7653 in the log when using the -v flag. The move command may also use them
7654 if remote doesn't support server-side move directly. This is done by
7655 issuing a server-side copy then a delete which is much quicker than a
7656 download and re-upload.
7657
7658 Server side copies will only be attempted if the remote names are the
7659 same.
7660
7661 This can be used when scripting to make aged backups efficiently, e.g.
7662
7663 rclone sync -i remote:current-backup remote:previous-backup
7664 rclone sync -i /path/to/files remote:current-backup
7665
7666 Options
7667 Rclone has a number of options to control its behaviour.
7668
7669 Options that take parameters can have the values passed in two ways,
7670 --option=value or --option value. However boolean (true/false) options
7671 behave slightly differently to the other options in that --boolean sets
7672 the option to true and the absence of the flag sets it to false. It is
7673 also possible to specify --boolean=false or --boolean=true. Note that
7674 --boolean false is not valid - this is parsed as --boolean and the
7675 false is parsed as an extra command line argument for rclone.
7676
7677 Options which use TIME use the go time parser. A duration string is a
7678 possibly signed sequence of decimal numbers, each with optional frac‐
7679 tion and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid
7680 time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
7681
7682 Options which use SIZE use KiB (multiples of 1024 bytes) by default.
7683 However, a suffix of B for Byte, K for KiB, M for MiB, G for GiB, T for
7684 TiB and P for PiB may be used. These are the binary units, e.g. 1,
7685 2**10, 2**20, 2**30 respectively.
7686
7687 --backup-dir=DIR
7688 When using sync, copy or move any files which would have been overwrit‐
7689 ten or deleted are moved in their original hierarchy into this directo‐
7690 ry.
7691
7692 If --suffix is set, then the moved files will have the suffix added to
7693 them. If there is a file with the same path (after the suffix has been
7694 added) in DIR, then it will be overwritten.
7695
7696 The remote in use must support server-side move or copy and you must
7697 use the same remote as the destination of the sync. The backup direc‐
7698 tory must not overlap the destination directory.
7699
7700 For example
7701
7702 rclone sync -i /path/to/local remote:current --backup-dir remote:old
7703
7704 will sync /path/to/local to remote:current, but for any files which
7705 would have been updated or deleted will be stored in remote:old.
7706
7707 If running rclone from a script you might want to use today's date as
7708 the directory name passed to --backup-dir to store the old files, or
7709 you might want to pass --suffix with today's date.
7710
7711 See --compare-dest and --copy-dest.
7712
7713 --bind string
7714 Local address to bind to for outgoing connections. This can be an IPv4
7715 address (1.2.3.4), an IPv6 address (1234::789A) or host name. If the
7716 host name doesn't resolve or resolves to more than one IP address it
7717 will give an error.
7718
7719 --bwlimit=BANDWIDTH_SPEC
7720 This option controls the bandwidth limit. For example
7721
7722 --bwlimit 10M
7723
7724 would mean limit the upload and download bandwidth to 10 MiB/s. NB
7725 this is bytes per second not bits per second. To use a single limit,
7726 specify the desired bandwidth in KiB/s, or use a suffix B|K|M|G|T|P.
7727 The default is 0 which means to not limit bandwidth.
7728
7729 The upload and download bandwidth can be specified seperately, as
7730 --bwlimit UP:DOWN, so
7731
7732 --bwlimit 10M:100k
7733
7734 would mean limit the upload bandwidth to 10 MiB/s and the download
7735 bandwidth to 100 KiB/s. Either limit can be "off" meaning no limit, so
7736 to just limit the upload bandwidth you would use
7737
7738 --bwlimit 10M:off
7739
7740 this would limit the upload bandwidth to 10 MiB/s but the download
7741 bandwidth would be unlimited.
7742
7743 When specified as above the bandwidth limits last for the duration of
7744 run of the rclone binary.
7745
7746 It is also possible to specify a "timetable" of limits, which will
7747 cause certain limits to be applied at certain times. To specify a
7748 timetable, format your entries as WEEKDAY-HH:MM,BANDWIDTH WEEK‐
7749 DAY-HH:MM,BANDWIDTH... where: WEEKDAY is optional element.
7750
7751 • BANDWIDTH can be a single number, e.g.100k or a pair of numbers for
7752 upload:download, e.g.10M:1M.
7753
7754 • WEEKDAY can be written as the whole word or only using the first 3
7755 characters. It is optional.
7756
7757 • HH:MM is an hour from 00:00 to 23:59.
7758
7759 An example of a typical timetable to avoid link saturation during day‐
7760 time working hours could be:
7761
7762 --bwlimit "08:00,512k 12:00,10M 13:00,512k 18:00,30M 23:00,off"
7763
7764 In this example, the transfer bandwidth will be set to 512 KiB/s at 8am
7765 every day. At noon, it will rise to 10 MiB/s, and drop back to 512
7766 KiB/sec at 1pm. At 6pm, the bandwidth limit will be set to 30 MiB/s,
7767 and at 11pm it will be completely disabled (full speed). Anything be‐
7768 tween 11pm and 8am will remain unlimited.
7769
7770 An example of timetable with WEEKDAY could be:
7771
7772 --bwlimit "Mon-00:00,512 Fri-23:59,10M Sat-10:00,1M Sun-20:00,off"
7773
7774 It means that, the transfer bandwidth will be set to 512 KiB/s on Mon‐
7775 day. It will rise to 10 MiB/s before the end of Friday. At 10:00 on
7776 Saturday it will be set to 1 MiB/s. From 20:00 on Sunday it will be
7777 unlimited.
7778
7779 Timeslots without WEEKDAY are extended to the whole week. So this ex‐
7780 ample:
7781
7782 --bwlimit "Mon-00:00,512 12:00,1M Sun-20:00,off"
7783
7784 Is equivalent to this:
7785
7786 --bwlimit "Mon-00:00,512Mon-12:00,1M Tue-12:00,1M Wed-12:00,1M
7787 Thu-12:00,1M Fri-12:00,1M Sat-12:00,1M Sun-12:00,1M Sun-20:00,off"
7788
7789 Bandwidth limit apply to the data transfer for all backends. For most
7790 backends the directory listing bandwidth is also included (exceptions
7791 being the non HTTP backends, ftp, sftp and tardigrade).
7792
7793 Note that the units are Byte/s, not bit/s. Typically connections are
7794 measured in bit/s - to convert divide by 8. For example, let's say you
7795 have a 10 Mbit/s connection and you wish rclone to use half of it - 5
7796 Mbit/s. This is 5/8 = 0.625 MiB/s so you would use a --bwlimit 0.625M
7797 parameter for rclone.
7798
7799 On Unix systems (Linux, macOS, ...) the bandwidth limiter can be tog‐
7800 gled by sending a SIGUSR2 signal to rclone. This allows to remove the
7801 limitations of a long running rclone transfer and to restore it back to
7802 the value specified with --bwlimit quickly when needed. Assuming there
7803 is only one rclone instance running, you can toggle the limiter like
7804 this:
7805
7806 kill -SIGUSR2 $(pidof rclone)
7807
7808 If you configure rclone with a remote control (/rc) then you can use
7809 change the bwlimit dynamically:
7810
7811 rclone rc core/bwlimit rate=1M
7812
7813 --bwlimit-file=BANDWIDTH_SPEC
7814 This option controls per file bandwidth limit. For the options see the
7815 --bwlimit flag.
7816
7817 For example use this to allow no transfers to be faster than 1 MiB/s
7818
7819 --bwlimit-file 1M
7820
7821 This can be used in conjunction with --bwlimit.
7822
7823 Note that if a schedule is provided the file will use the schedule in
7824 effect at the start of the transfer.
7825
7826 --buffer-size=SIZE
7827 Use this sized buffer to speed up file transfers. Each --transfer will
7828 use this much memory for buffering.
7829
7830 When using mount or cmount each open file descriptor will use this much
7831 memory for buffering. See the mount (https://rclone.org/com‐
7832 mands/rclone_mount/#file-buffering) documentation for more details.
7833
7834 Set to 0 to disable the buffering for the minimum memory usage.
7835
7836 Note that the memory allocation of the buffers is influenced by the
7837 --use-mmap flag.
7838
7839 --cache-dir=DIR
7840 Specify the directory rclone will use for caching, to override the de‐
7841 fault.
7842
7843 Default value is depending on operating system: - Windows %LocalAppDa‐
7844 ta%\rclone, if LocalAppData is defined. - macOS $HOME/Li‐
7845 brary/Caches/rclone if HOME is defined. - Unix $XDG_CACHE_HOME/rclone
7846 if XDG_CACHE_HOME is defined, else $HOME/.cache/rclone if HOME is de‐
7847 fined. - Fallback (on all OS) to $TMPDIR/rclone, where TMPDIR is the
7848 value from --temp-dir.
7849
7850 You can use the config paths (https://rclone.org/commands/rclone_con‐
7851 fig_paths/) command to see the current value.
7852
7853 Cache directory is heavily used by the VFS File Caching
7854 (https://rclone.org/commands/rclone_mount/#vfs-file-caching) mount fea‐
7855 ture, but also by serve (https://rclone.org/commands/rclone_serve/),
7856 GUI (/gui) and other parts of rclone.
7857
7858 --check-first
7859 If this flag is set then in a sync, copy or move, rclone will do all
7860 the checks to see whether files need to be transferred before doing any
7861 of the transfers. Normally rclone would start running transfers as
7862 soon as possible.
7863
7864 This flag can be useful on IO limited systems where transfers interfere
7865 with checking.
7866
7867 It can also be useful to ensure perfect ordering when using --order-by.
7868
7869 Using this flag can use more memory as it effectively sets --max-back‐
7870 log to infinite. This means that all the info on the objects to trans‐
7871 fer is held in memory before the transfers start.
7872
7873 --checkers=N
7874 The number of checkers to run in parallel. Checkers do the equality
7875 checking of files during a sync. For some storage systems (e.g. S3,
7876 Swift, Dropbox) this can take a significant amount of time so they are
7877 run in parallel.
7878
7879 The default is to run 8 checkers in parallel.
7880
7881 -c, --checksum
7882 Normally rclone will look at modification time and size of files to see
7883 if they are equal. If you set this flag then rclone will check the
7884 file hash and size to determine if files are equal.
7885
7886 This is useful when the remote doesn't support setting modified time
7887 and a more accurate sync is desired than just checking the file size.
7888
7889 This is very useful when transferring between remotes which store the
7890 same hash type on the object, e.g. Drive and Swift. For details of
7891 which remotes support which hash type see the table in the overview
7892 section (https://rclone.org/overview/).
7893
7894 Eg rclone --checksum sync s3:/bucket swift:/bucket would run much
7895 quicker than without the --checksum flag.
7896
7897 When using this flag, rclone won't update mtimes of remote files if
7898 they are incorrect as it would normally.
7899
7900 --compare-dest=DIR
7901 When using sync, copy or move DIR is checked in addition to the desti‐
7902 nation for files. If a file identical to the source is found that file
7903 is NOT copied from source. This is useful to copy just files that have
7904 changed since the last backup.
7905
7906 You must use the same remote as the destination of the sync. The com‐
7907 pare directory must not overlap the destination directory.
7908
7909 See --copy-dest and --backup-dir.
7910
7911 --config=CONFIG_FILE
7912 Specify the location of the rclone configuration file, to override the
7913 default. E.g. rclone config --config="rclone.conf".
7914
7915 The exact default is a bit complex to describe, due to changes intro‐
7916 duced through different versions of rclone while preserving backwards
7917 compatibility, but in most cases it is as simple as:
7918
7919 • %APPDATA%/rclone/rclone.conf on Windows
7920
7921 • ~/.config/rclone/rclone.conf on other
7922
7923 The complete logic is as follows: Rclone will look for an existing con‐
7924 figuration file in any of the following locations, in priority order:
7925
7926 1. rclone.conf (in program directory, where rclone executable is)
7927
7928 2. %APPDATA%/rclone/rclone.conf (only on Windows)
7929
7930 3. $XDG_CONFIG_HOME/rclone/rclone.conf (on all systems, including Win‐
7931 dows)
7932
7933 4. ~/.config/rclone/rclone.conf (see below for explanation of ~ symbol)
7934
7935 5. ~/.rclone.conf
7936
7937 If no existing configuration file is found, then a new one will be cre‐
7938 ated in the following location:
7939
7940 • On Windows: Location 2 listed above, except in the unlikely event
7941 that APPDATA is not defined, then location 4 is used instead.
7942
7943 • On Unix: Location 3 if XDG_CONFIG_HOME is defined, else location 4.
7944
7945 • Fallback to location 5 (on all OS), when the rclone directory cannot
7946 be created, but if also a home directory was not found then path
7947 .rclone.conf relative to current working directory will be used as a
7948 final resort.
7949
7950 The ~ symbol in paths above represent the home directory of the current
7951 user on any OS, and the value is defined as following:
7952
7953 • On Windows: %HOME% if defined, else %USERPROFILE%, or else
7954 %HOMEDRIVE%\%HOMEPATH%.
7955
7956 • On Unix: $HOME if defined, else by looking up current user in OS-spe‐
7957 cific user database (e.g. passwd file), or else use the result from
7958 shell command cd && pwd.
7959
7960 If you run rclone config file you will see where the default location
7961 is for you.
7962
7963 The fact that an existing file rclone.conf in the same directory as the
7964 rclone executable is always preferred, means that it is easy to run in
7965 "portable" mode by downloading rclone executable to a writable directo‐
7966 ry and then create an empty file rclone.conf in the same directory.
7967
7968 If the location is set to empty string "" or path to a file with name
7969 notfound, or the os null device represented by value NUL on Windows and
7970 /dev/null on Unix systems, then rclone will keep the config file in
7971 memory only.
7972
7973 The file format is basic INI (https://en.wikipedia.org/wi‐
7974 ki/INI_file#Format): Sections of text, led by a [section] header and
7975 followed by key=value entries on separate lines. In rclone each remote
7976 is represented by its own section, where the section name defines the
7977 name of the remote. Options are specified as the key=value entries,
7978 where the key is the option name without the --backend- prefix, in low‐
7979 ercase and with _ instead of -. E.g. option --mega-hard-delete corre‐
7980 sponds to key hard_delete. Only backend options can be specified. A
7981 special, and required, key type identifies the storage system
7982 (https://rclone.org/overview/), where the value is the internal lower‐
7983 case name as returned by command rclone help backends. Comments are
7984 indicated by ; or # at the beginning of a line.
7985
7986 Example:
7987
7988 [megaremote]
7989 type = mega
7990 user = you@example.com
7991 pass = PDPcQVVjVtzFY-GTdDFozqBhTdsPg3qH
7992
7993 Note that passwords are in obscured (https://rclone.org/com‐
7994 mands/rclone_obscure/) form. Also, many storage systems uses to‐
7995 ken-based authentication instead of passwords, and this requires addi‐
7996 tional steps. It is easier, and safer, to use the interactive command
7997 rclone config instead of manually editing the configuration file.
7998
7999 The configuration file will typically contain login information, and
8000 should therefore have restricted permissions so that only the current
8001 user can read it. Rclone tries to ensure this when it writes the file.
8002 You may also choose to encrypt the file.
8003
8004 When token-based authentication are used, the configuration file must
8005 be writable, because rclone needs to update the tokens inside it.
8006
8007 --contimeout=TIME
8008 Set the connection timeout. This should be in go time format which
8009 looks like 5s for 5 seconds, 10m for 10 minutes, or 3h30m.
8010
8011 The connection timeout is the amount of time rclone will wait for a
8012 connection to go through to a remote object storage system. It is 1m
8013 by default.
8014
8015 --copy-dest=DIR
8016 When using sync, copy or move DIR is checked in addition to the desti‐
8017 nation for files. If a file identical to the source is found that file
8018 is server-side copied from DIR to the destination. This is useful for
8019 incremental backup.
8020
8021 The remote in use must support server-side copy and you must use the
8022 same remote as the destination of the sync. The compare directory must
8023 not overlap the destination directory.
8024
8025 See --compare-dest and --backup-dir.
8026
8027 --dedupe-mode MODE
8028 Mode to run dedupe command in. One of interactive, skip, first, new‐
8029 est, oldest, rename. The default is interactive. See the dedupe com‐
8030 mand for more information as to what these options mean.
8031
8032 --disable FEATURE,FEATURE,...
8033 This disables a comma separated list of optional features. For example
8034 to disable server-side move and server-side copy use:
8035
8036 --disable move,copy
8037
8038 The features can be put in any case.
8039
8040 To see a list of which features can be disabled use:
8041
8042 --disable help
8043
8044 See the overview features (https://rclone.org/overview/#features) and
8045 optional features (https://rclone.org/overview/#optional-features) to
8046 get an idea of which feature does what.
8047
8048 This flag can be useful for debugging and in exceptional circumstances
8049 (e.g. Google Drive limiting the total volume of Server Side Copies to
8050 100 GiB/day).
8051
8052 --dscp VALUE
8053 Specify a DSCP value or name to use in connections. This could help
8054 QoS system to identify traffic class. BE, EF, DF, LE, CSx and AFxx are
8055 allowed.
8056
8057 See the description of differentiated services
8058 (https://en.wikipedia.org/wiki/Differentiated_services) to get an idea
8059 of this field. Setting this to 1 (LE) to identify the flow to SCAV‐
8060 ENGER class can avoid occupying too much bandwidth in a network with
8061 DiffServ support (RFC 8622 (https://tools.ietf.org/html/rfc8622)).
8062
8063 For example, if you configured QoS on router to handle LE properly.
8064 Running:
8065
8066 rclone copy --dscp LE from:/from to:/to
8067
8068 would make the priority lower than usual internet flows.
8069
8070 This option has no effect on Windows (see golang/go#42728
8071 (https://github.com/golang/go/issues/42728)).
8072
8073 -n, --dry-run
8074 Do a trial run with no permanent changes. Use this to see what rclone
8075 would do without actually doing it. Useful when setting up the sync
8076 command which deletes files in the destination.
8077
8078 --expect-continue-timeout=TIME
8079 This specifies the amount of time to wait for a server's first response
8080 headers after fully writing the request headers if the request has an
8081 "Expect: 100-continue" header. Not all backends support using this.
8082
8083 Zero means no timeout and causes the body to be sent immediately, with‐
8084 out waiting for the server to approve. This time does not include the
8085 time to send the request header.
8086
8087 The default is 1s. Set to 0 to disable.
8088
8089 --error-on-no-transfer
8090 By default, rclone will exit with return code 0 if there were no er‐
8091 rors.
8092
8093 This option allows rclone to return exit code 9 if no files were trans‐
8094 ferred between the source and destination. This allows using rclone in
8095 scripts, and triggering follow-on actions if data was copied, or skip‐
8096 ping if not.
8097
8098 NB: Enabling this option turns a usually non-fatal error into a poten‐
8099 tially fatal one - please check and adjust your scripts accordingly!
8100
8101 --fs-cache-expire-duration=TIME
8102 When using rclone via the API rclone caches created remotes for 5 min‐
8103 utes by default in the "fs cache". This means that if you do repeated
8104 actions on the same remote then rclone won't have to build it again
8105 from scratch, which makes it more efficient.
8106
8107 This flag sets the time that the remotes are cached for. If you set it
8108 to 0 (or negative) then rclone won't cache the remotes at all.
8109
8110 Note that if you use some flags, eg --backup-dir and if this is set to
8111 0 rclone may build two remotes (one for the source or destination and
8112 one for the --backup-dir where it may have only built one before.
8113
8114 --fs-cache-expire-interval=TIME
8115 This controls how often rclone checks for cached remotes to expire.
8116 See the --fs-cache-expire-duration documentation above for more info.
8117 The default is 60s, set to 0 to disable expiry.
8118
8119 --header
8120 Add an HTTP header for all transactions. The flag can be repeated to
8121 add multiple headers.
8122
8123 If you want to add headers only for uploads use --header-upload and if
8124 you want to add headers only for downloads use --header-download.
8125
8126 This flag is supported for all HTTP based backends even those not sup‐
8127 ported by --header-upload and --header-download so may be used as a
8128 workaround for those with care.
8129
8130 rclone ls remote:test --header "X-Rclone: Foo" --header "X-LetMeIn: Yes"
8131
8132 --header-download
8133 Add an HTTP header for all download transactions. The flag can be re‐
8134 peated to add multiple headers.
8135
8136 rclone sync -i s3:test/src ~/dst --header-download "X-Amz-Meta-Test: Foo" --header-download "X-Amz-Meta-Test2: Bar"
8137
8138 See the GitHub issue here (https://github.com/rclone/rclone/issues/59)
8139 for currently supported backends.
8140
8141 --header-upload
8142 Add an HTTP header for all upload transactions. The flag can be re‐
8143 peated to add multiple headers.
8144
8145 rclone sync -i ~/src s3:test/dst --header-upload "Content-Disposition: attachment; filename='cool.html'" --header-upload "X-Amz-Meta-Test: FooBar"
8146
8147 See the GitHub issue here (https://github.com/rclone/rclone/issues/59)
8148 for currently supported backends.
8149
8150 --human-readable
8151 Rclone commands output values for sizes (e.g. number of bytes) and
8152 counts (e.g. number of files) either as raw numbers, or in human-read‐
8153 able format.
8154
8155 In human-readable format the values are scaled to larger units, indi‐
8156 cated with a suffix shown after the value, and rounded to three deci‐
8157 mals. Rclone consistently uses binary units (powers of 2) for sizes
8158 and decimal units (powers of 10) for counts. The unit prefix for size
8159 is according to IEC standard notation, e.g. Ki for kibi. Used with
8160 byte unit, 1 KiB means 1024 Byte. In list type of output, only the
8161 unit prefix appended to the value (e.g. 9.762Ki), while in more textu‐
8162 al output the full unit is shown (e.g. 9.762 KiB). For counts the SI
8163 standard notation is used, e.g. prefix k for kilo. Used with file
8164 counts, 1k means 1000 files.
8165
8166 The various list (commands/rclone_ls/) commands output raw numbers by
8167 default. Option --human-readable will make them output values in hu‐
8168 man-readable format instead (with the short unit prefix).
8169
8170 The about (commands/rclone_about/) command outputs human-readable by
8171 default, with a command-specific option --full to output the raw num‐
8172 bers instead.
8173
8174 Command size (commands/rclone_size/) outputs both human-readable and
8175 raw numbers in the same output.
8176
8177 The tree (commands/rclone_tree/) command also considers --human-read‐
8178 able, but it will not use the exact same notation as the other com‐
8179 mands: It rounds to one decimal, and uses single letter suffix, e.g. K
8180 instead of Ki. The reason for this is that it relies on an external
8181 library.
8182
8183 The interactive command ncdu (commands/rclone_ncdu/) shows human-read‐
8184 able by default, and responds to key u for toggling human-readable for‐
8185 mat.
8186
8187 --ignore-case-sync
8188 Using this option will cause rclone to ignore the case of the files
8189 when synchronizing so files will not be copied/synced when the existing
8190 filenames are the same, even if the casing is different.
8191
8192 --ignore-checksum
8193 Normally rclone will check that the checksums of transferred files
8194 match, and give an error "corrupted on transfer" if they don't.
8195
8196 You can use this option to skip that check. You should only use it if
8197 you have had the "corrupted on transfer" error message and you are sure
8198 you might want to transfer potentially corrupted data.
8199
8200 --ignore-existing
8201 Using this option will make rclone unconditionally skip all files that
8202 exist on the destination, no matter the content of these files.
8203
8204 While this isn't a generally recommended option, it can be useful in
8205 cases where your files change due to encryption. However, it cannot
8206 correct partial transfers in case a transfer was interrupted.
8207
8208 When performing a move/moveto command, this flag will leave skipped
8209 files in the source location unchanged when a file with the same name
8210 exists on the destination.
8211
8212 --ignore-size
8213 Normally rclone will look at modification time and size of files to see
8214 if they are equal. If you set this flag then rclone will check only
8215 the modification time. If --checksum is set then it only checks the
8216 checksum.
8217
8218 It will also cause rclone to skip verifying the sizes are the same af‐
8219 ter transfer.
8220
8221 This can be useful for transferring files to and from OneDrive which
8222 occasionally misreports the size of image files (see #399
8223 (https://github.com/rclone/rclone/issues/399) for more info).
8224
8225 -I, --ignore-times
8226 Using this option will cause rclone to unconditionally upload all files
8227 regardless of the state of files on the destination.
8228
8229 Normally rclone would skip any files that have the same modification
8230 time and are the same size (or have the same checksum if using --check‐
8231 sum).
8232
8233 --immutable
8234 Treat source and destination files as immutable and disallow modifica‐
8235 tion.
8236
8237 With this option set, files will be created and deleted as requested,
8238 but existing files will never be updated. If an existing file does not
8239 match between the source and destination, rclone will give the error
8240 Source and destination exist but do not match: immutable file modified.
8241
8242 Note that only commands which transfer files (e.g. sync, copy, move)
8243 are affected by this behavior, and only modification is disallowed.
8244 Files may still be deleted explicitly (e.g. delete, purge) or implic‐
8245 itly (e.g. sync, move). Use copy --immutable if it is desired to
8246 avoid deletion as well as modification.
8247
8248 This can be useful as an additional layer of protection for immutable
8249 or append-only data sets (notably backup archives), where modification
8250 implies corruption and should not be propagated.
8251
8252 -i / --interactive
8253 This flag can be used to tell rclone that you wish a manual confirma‐
8254 tion before destructive operations.
8255
8256 It is recommended that you use this flag while learning rclone espe‐
8257 cially with rclone sync.
8258
8259 For example
8260
8261 $ rclone delete -i /tmp/dir
8262 rclone: delete "important-file.txt"?
8263 y) Yes, this is OK (default)
8264 n) No, skip this
8265 s) Skip all delete operations with no more questions
8266 !) Do all delete operations with no more questions
8267 q) Exit rclone now.
8268 y/n/s/!/q> n
8269
8270 The options mean
8271
8272 • y: Yes, this operation should go ahead. You can also press Return
8273 for this to happen. You'll be asked every time unless you choose s
8274 or !.
8275
8276 • n: No, do not do this operation. You'll be asked every time unless
8277 you choose s or !.
8278
8279 • s: Skip all the following operations of this type with no more ques‐
8280 tions. This takes effect until rclone exits. If there are any dif‐
8281 ferent kind of operations you'll be prompted for them.
8282
8283 • !: Do all the following operations with no more questions. Useful if
8284 you've decided that you don't mind rclone doing that kind of opera‐
8285 tion. This takes effect until rclone exits . If there are any dif‐
8286 ferent kind of operations you'll be prompted for them.
8287
8288 • q: Quit rclone now, just in case!
8289
8290 --leave-root
8291 During rmdirs it will not remove root directory, even if it's empty.
8292
8293 --log-file=FILE
8294 Log all of rclone's output to FILE. This is not active by default.
8295 This can be useful for tracking down problems with syncs in combination
8296 with the -v flag. See the Logging section for more info.
8297
8298 If FILE exists then rclone will append to it.
8299
8300 Note that if you are using the logrotate program to manage rclone's
8301 logs, then you should use the copytruncate option as rclone doesn't
8302 have a signal to rotate logs.
8303
8304 --log-format LIST
8305 Comma separated list of log format options. Accepted options are date,
8306 time, microseconds, pid, longfile, shortfile, UTC. Any other keywords
8307 will be silently ignored. pid will tag log messages with process iden‐
8308 tifier which useful with rclone mount --daemon. Other accepted options
8309 are explained in the go documentation (https://pkg.go.dev/log#pkg-con‐
8310 stants). The default log format is "date,time".
8311
8312 --log-level LEVEL
8313 This sets the log level for rclone. The default log level is NOTICE.
8314
8315 DEBUG is equivalent to -vv. It outputs lots of debug info - useful for
8316 bug reports and really finding out what rclone is doing.
8317
8318 INFO is equivalent to -v. It outputs information about each transfer
8319 and prints stats once a minute by default.
8320
8321 NOTICE is the default log level if no logging flags are supplied. It
8322 outputs very little when things are working normally. It outputs warn‐
8323 ings and significant events.
8324
8325 ERROR is equivalent to -q. It only outputs error messages.
8326
8327 --use-json-log
8328 This switches the log format to JSON for rclone. The fields of json
8329 log are level, msg, source, time.
8330
8331 --low-level-retries NUMBER
8332 This controls the number of low level retries rclone does.
8333
8334 A low level retry is used to retry a failing operation - typically one
8335 HTTP request. This might be uploading a chunk of a big file for exam‐
8336 ple. You will see low level retries in the log with the -v flag.
8337
8338 This shouldn't need to be changed from the default in normal opera‐
8339 tions. However, if you get a lot of low level retries you may wish to
8340 reduce the value so rclone moves on to a high level retry (see the
8341 --retries flag) quicker.
8342
8343 Disable low level retries with --low-level-retries 1.
8344
8345 --max-backlog=N
8346 This is the maximum allowable backlog of files in a sync/copy/move
8347 queued for being checked or transferred.
8348
8349 This can be set arbitrarily large. It will only use memory when the
8350 queue is in use. Note that it will use in the order of N KiB of memory
8351 when the backlog is in use.
8352
8353 Setting this large allows rclone to calculate how many files are pend‐
8354 ing more accurately, give a more accurate estimated finish time and
8355 make --order-by work more accurately.
8356
8357 Setting this small will make rclone more synchronous to the listings of
8358 the remote which may be desirable.
8359
8360 Setting this to a negative number will make the backlog as large as
8361 possible.
8362
8363 --max-delete=N
8364 This tells rclone not to delete more than N files. If that limit is
8365 exceeded then a fatal error will be generated and rclone will stop the
8366 operation in progress.
8367
8368 --max-depth=N
8369 This modifies the recursion depth for all the commands except purge.
8370
8371 So if you do rclone --max-depth 1 ls remote:path you will see only the
8372 files in the top level directory. Using --max-depth 2 means you will
8373 see all the files in first two directory levels and so on.
8374
8375 For historical reasons the lsd command defaults to using a --max-depth
8376 of 1 - you can override this with the command line flag.
8377
8378 You can use this command to disable recursion (with --max-depth 1).
8379
8380 Note that if you use this with sync and --delete-excluded the files not
8381 recursed through are considered excluded and will be deleted on the
8382 destination. Test first with --dry-run if you are not sure what will
8383 happen.
8384
8385 --max-duration=TIME
8386 Rclone will stop scheduling new transfers when it has run for the dura‐
8387 tion specified.
8388
8389 Defaults to off.
8390
8391 When the limit is reached any existing transfers will complete.
8392
8393 Rclone won't exit with an error if the transfer limit is reached.
8394
8395 --max-transfer=SIZE
8396 Rclone will stop transferring when it has reached the size specified.
8397 Defaults to off.
8398
8399 When the limit is reached all transfers will stop immediately.
8400
8401 Rclone will exit with exit code 8 if the transfer limit is reached.
8402
8403 --cutoff-mode=hard|soft|cautious
8404 This modifies the behavior of --max-transfer Defaults to --cut‐
8405 off-mode=hard.
8406
8407 Specifying --cutoff-mode=hard will stop transferring immediately when
8408 Rclone reaches the limit.
8409
8410 Specifying --cutoff-mode=soft will stop starting new transfers when
8411 Rclone reaches the limit.
8412
8413 Specifying --cutoff-mode=cautious will try to prevent Rclone from
8414 reaching the limit.
8415
8416 --modify-window=TIME
8417 When checking whether a file has been modified, this is the maximum al‐
8418 lowed time difference that a file can have and still be considered
8419 equivalent.
8420
8421 The default is 1ns unless this is overridden by a remote. For example
8422 OS X only stores modification times to the nearest second so if you are
8423 reading and writing to an OS X filing system this will be 1s by de‐
8424 fault.
8425
8426 This command line flag allows you to override that computed default.
8427
8428 --multi-thread-cutoff=SIZE
8429 When downloading files to the local backend above this size, rclone
8430 will use multiple threads to download the file (default 250M).
8431
8432 Rclone preallocates the file (using fallocate(FALLOC_FL_KEEP_SIZE) on
8433 unix or NTSetInformationFile on Windows both of which takes no time)
8434 then each thread writes directly into the file at the correct place.
8435 This means that rclone won't create fragmented or sparse files and
8436 there won't be any assembly time at the end of the transfer.
8437
8438 The number of threads used to download is controlled by --mul‐
8439 ti-thread-streams.
8440
8441 Use -vv if you wish to see info about the threads.
8442
8443 This will work with the sync/copy/move commands and friends copy‐
8444 to/moveto. Multi thread downloads will be used with rclone mount and
8445 rclone serve if --vfs-cache-mode is set to writes or above.
8446
8447 NB that this only works for a local destination but will work with any
8448 source.
8449
8450 NB that multi thread copies are disabled for local to local copies as
8451 they are faster without unless --multi-thread-streams is set explicit‐
8452 ly.
8453
8454 NB on Windows using multi-thread downloads will cause the resulting
8455 files to be sparse (https://en.wikipedia.org/wiki/Sparse_file). Use
8456 --local-no-sparse to disable sparse files (which may cause long delays
8457 at the start of downloads) or disable multi-thread downloads with
8458 --multi-thread-streams 0
8459
8460 --multi-thread-streams=N
8461 When using multi thread downloads (see above --multi-thread-cutoff)
8462 this sets the maximum number of streams to use. Set to 0 to disable
8463 multi thread downloads (Default 4).
8464
8465 Exactly how many streams rclone uses for the download depends on the
8466 size of the file. To calculate the number of download streams Rclone
8467 divides the size of the file by the --multi-thread-cutoff and rounds
8468 up, up to the maximum set with --multi-thread-streams.
8469
8470 So if --multi-thread-cutoff 250M and --multi-thread-streams 4 are in
8471 effect (the defaults):
8472
8473 • 0..250 MiB files will be downloaded with 1 stream
8474
8475 • 250..500 MiB files will be downloaded with 2 streams
8476
8477 • 500..750 MiB files will be downloaded with 3 streams
8478
8479 • 750+ MiB files will be downloaded with 4 streams
8480
8481 --no-check-dest
8482 The --no-check-dest can be used with move or copy and it causes rclone
8483 not to check the destination at all when copying files.
8484
8485 This means that:
8486
8487 • the destination is not listed minimising the API calls
8488
8489 • files are always transferred
8490
8491 • this can cause duplicates on remotes which allow it (e.g. Google
8492 Drive)
8493
8494 • --retries 1 is recommended otherwise you'll transfer everything again
8495 on a retry
8496
8497 This flag is useful to minimise the transactions if you know that none
8498 of the files are on the destination.
8499
8500 This is a specialized flag which should be ignored by most users!
8501
8502 --no-gzip-encoding
8503 Don't set Accept-Encoding: gzip. This means that rclone won't ask the
8504 server for compressed files automatically. Useful if you've set the
8505 server to return files with Content-Encoding: gzip but you uploaded
8506 compressed files.
8507
8508 There is no need to set this in normal operation, and doing so will de‐
8509 crease the network transfer efficiency of rclone.
8510
8511 --no-traverse
8512 The --no-traverse flag controls whether the destination file system is
8513 traversed when using the copy or move commands. --no-traverse is not
8514 compatible with sync and will be ignored if you supply it with sync.
8515
8516 If you are only copying a small number of files (or are filtering most
8517 of the files) and/or have a large number of files on the destination
8518 then --no-traverse will stop rclone listing the destination and save
8519 time.
8520
8521 However, if you are copying a large number of files, especially if you
8522 are doing a copy where lots of the files under consideration haven't
8523 changed and won't need copying then you shouldn't use --no-traverse.
8524
8525 See rclone copy (https://rclone.org/commands/rclone_copy/) for an exam‐
8526 ple of how to use it.
8527
8528 --no-unicode-normalization
8529 Don't normalize unicode characters in filenames during the sync rou‐
8530 tine.
8531
8532 Sometimes, an operating system will store filenames containing unicode
8533 parts in their decomposed form (particularly macOS). Some cloud stor‐
8534 age systems will then recompose the unicode, resulting in duplicate
8535 files if the data is ever copied back to a local filesystem.
8536
8537 Using this flag will disable that functionality, treating each unicode
8538 character as unique. For example, by default é and é will be normal‐
8539 ized into the same character. With --no-unicode-normalization they
8540 will be treated as unique characters.
8541
8542 --no-update-modtime
8543 When using this flag, rclone won't update modification times of remote
8544 files if they are incorrect as it would normally.
8545
8546 This can be used if the remote is being synced with another tool also
8547 (e.g. the Google Drive client).
8548
8549 --order-by string
8550 The --order-by flag controls the order in which files in the backlog
8551 are processed in rclone sync, rclone copy and rclone move.
8552
8553 The order by string is constructed like this. The first part describes
8554 what aspect is being measured:
8555
8556 • size - order by the size of the files
8557
8558 • name - order by the full path of the files
8559
8560 • modtime - order by the modification date of the files
8561
8562 This can have a modifier appended with a comma:
8563
8564 • ascending or asc - order so that the smallest (or oldest) is pro‐
8565 cessed first
8566
8567 • descending or desc - order so that the largest (or newest) is pro‐
8568 cessed first
8569
8570 • mixed - order so that the smallest is processed first for some
8571 threads and the largest for others
8572
8573 If the modifier is mixed then it can have an optional percentage (which
8574 defaults to 50), e.g. size,mixed,25 which means that 25% of the
8575 threads should be taking the smallest items and 75% the largest. The
8576 threads which take the smallest first will always take the smallest
8577 first and likewise the largest first threads. The mixed mode can be
8578 useful to minimise the transfer time when you are transferring a mix‐
8579 ture of large and small files - the large files are guaranteed upload
8580 threads and bandwidth and the small files will be processed continuous‐
8581 ly.
8582
8583 If no modifier is supplied then the order is ascending.
8584
8585 For example
8586
8587 • --order-by size,desc - send the largest files first
8588
8589 • --order-by modtime,ascending - send the oldest files first
8590
8591 • --order-by name - send the files with alphabetically by path first
8592
8593 If the --order-by flag is not supplied or it is supplied with an empty
8594 string then the default ordering will be used which is as scanned.
8595 With --checkers 1 this is mostly alphabetical, however with the default
8596 --checkers 8 it is somewhat random.
8597
8598 Limitations
8599 The --order-by flag does not do a separate pass over the data. This
8600 means that it may transfer some files out of the order specified if
8601
8602 • there are no files in the backlog or the source has not been fully
8603 scanned yet
8604
8605 • there are more than --max-backlog files in the backlog
8606
8607 Rclone will do its best to transfer the best file it has so in practice
8608 this should not cause a problem. Think of --order-by as being more of
8609 a best efforts flag rather than a perfect ordering.
8610
8611 If you want perfect ordering then you will need to specify
8612 --check-first which will find all the files which need transferring
8613 first before transferring any.
8614
8615 --password-command SpaceSepList
8616 This flag supplies a program which should supply the config password
8617 when run. This is an alternative to rclone prompting for the password
8618 or setting the RCLONE_CONFIG_PASS variable.
8619
8620 The argument to this should be a command with a space separated list of
8621 arguments. If one of the arguments has a space in then enclose it in
8622 ", if you want a literal " in an argument then enclose the argument in
8623 " and double the ". See CSV encoding (https://godoc.org/encoding/csv)
8624 for more info.
8625
8626 Eg
8627
8628 --password-command echo hello
8629 --password-command echo "hello with space"
8630 --password-command echo "hello with ""quotes"" and space"
8631
8632 See the Configuration Encryption for more info.
8633
8634 See a Windows PowerShell example on the Wiki
8635 (https://github.com/rclone/rclone/wiki/Windows-Powershell-use-rclone-
8636 password-command-for-Config-file-password).
8637
8638 -P, --progress
8639 This flag makes rclone update the stats in a static block in the termi‐
8640 nal providing a realtime overview of the transfer.
8641
8642 Any log messages will scroll above the static block. Log messages will
8643 push the static block down to the bottom of the terminal where it will
8644 stay.
8645
8646 Normally this is updated every 500mS but this period can be overridden
8647 with the --stats flag.
8648
8649 This can be used with the --stats-one-line flag for a simpler display.
8650
8651 Note: On Windows until this bug (https://github.com/Azure/go-an‐
8652 siterm/issues/26) is fixed all non-ASCII characters will be replaced
8653 with . when --progress is in use.
8654
8655 --progress-terminal-title
8656 This flag, when used with -P/--progress, will print the string ETA: %s
8657 to the terminal title.
8658
8659 -q, --quiet
8660 This flag will limit rclone's output to error messages only.
8661
8662 --refresh-times
8663 The --refresh-times flag can be used to update modification times of
8664 existing files when they are out of sync on backends which don't sup‐
8665 port hashes.
8666
8667 This is useful if you uploaded files with the incorrect timestamps and
8668 you now wish to correct them.
8669
8670 This flag is only useful for destinations which don't support hashes
8671 (e.g. crypt).
8672
8673 This can be used any of the sync commands sync, copy or move.
8674
8675 To use this flag you will need to be doing a modification time sync (so
8676 not using --size-only or --checksum). The flag will have no effect
8677 when using --size-only or --checksum.
8678
8679 If this flag is used when rclone comes to upload a file it will check
8680 to see if there is an existing file on the destination. If this file
8681 matches the source with size (and checksum if available) but has a dif‐
8682 fering timestamp then instead of re-uploading it, rclone will update
8683 the timestamp on the destination file. If the checksum does not match
8684 rclone will upload the new file. If the checksum is absent (e.g. on a
8685 crypt backend) then rclone will update the timestamp.
8686
8687 Note that some remotes can't set the modification time without re-up‐
8688 loading the file so this flag is less useful on them.
8689
8690 Normally if you are doing a modification time sync rclone will update
8691 modification times without --refresh-times provided that the remote
8692 supports checksums and the checksums match on the file. However if the
8693 checksums are absent then rclone will upload the file rather than set‐
8694 ting the timestamp as this is the safe behaviour.
8695
8696 --retries int
8697 Retry the entire sync if it fails this many times it fails (default 3).
8698
8699 Some remotes can be unreliable and a few retries help pick up the files
8700 which didn't get transferred because of errors.
8701
8702 Disable retries with --retries 1.
8703
8704 --retries-sleep=TIME
8705 This sets the interval between each retry specified by --retries
8706
8707 The default is 0. Use 0 to disable.
8708
8709 --size-only
8710 Normally rclone will look at modification time and size of files to see
8711 if they are equal. If you set this flag then rclone will check only
8712 the size.
8713
8714 This can be useful transferring files from Dropbox which have been mod‐
8715 ified by the desktop sync client which doesn't set checksums of modifi‐
8716 cation times in the same way as rclone.
8717
8718 --stats=TIME
8719 Commands which transfer data (sync, copy, copyto, move, moveto) will
8720 print data transfer stats at regular intervals to show their progress.
8721
8722 This sets the interval.
8723
8724 The default is 1m. Use 0 to disable.
8725
8726 If you set the stats interval then all commands can show stats. This
8727 can be useful when running other commands, check or mount for example.
8728
8729 Stats are logged at INFO level by default which means they won't show
8730 at default log level NOTICE. Use --stats-log-level NOTICE or -v to
8731 make them show. See the Logging section for more info on log levels.
8732
8733 Note that on macOS you can send a SIGINFO (which is normally ctrl-T in
8734 the terminal) to make the stats print immediately.
8735
8736 --stats-file-name-length integer
8737 By default, the --stats output will truncate file names and paths
8738 longer than 40 characters. This is equivalent to providing
8739 --stats-file-name-length 40. Use --stats-file-name-length 0 to disable
8740 any truncation of file names printed by stats.
8741
8742 --stats-log-level string
8743 Log level to show --stats output at. This can be DEBUG, INFO, NOTICE,
8744 or ERROR. The default is INFO. This means at the default level of
8745 logging which is NOTICE the stats won't show - if you want them to then
8746 use --stats-log-level NOTICE. See the Logging section for more info on
8747 log levels.
8748
8749 --stats-one-line
8750 When this is specified, rclone condenses the stats into a single line
8751 showing the most important stats only.
8752
8753 --stats-one-line-date
8754 When this is specified, rclone enables the single-line stats and
8755 prepends the display with a date string. The default is 2006/01/02
8756 15:04:05 -
8757
8758 --stats-one-line-date-format
8759 When this is specified, rclone enables the single-line stats and
8760 prepends the display with a user-supplied date string. The date string
8761 MUST be enclosed in quotes. Follow golang specs
8762 (https://golang.org/pkg/time/#Time.Format) for date formatting syntax.
8763
8764 --stats-unit=bits|bytes
8765 By default, data transfer rates will be printed in bytes per second.
8766
8767 This option allows the data rate to be printed in bits per second.
8768
8769 Data transfer volume will still be reported in bytes.
8770
8771 The rate is reported as a binary unit, not SI unit. So 1 Mbit/s equals
8772 1,048,576 bit/s and not 1,000,000 bit/s.
8773
8774 The default is bytes.
8775
8776 --suffix=SUFFIX
8777 When using sync, copy or move any files which would have been overwrit‐
8778 ten or deleted will have the suffix added to them. If there is a file
8779 with the same path (after the suffix has been added), then it will be
8780 overwritten.
8781
8782 The remote in use must support server-side move or copy and you must
8783 use the same remote as the destination of the sync.
8784
8785 This is for use with files to add the suffix in the current directory
8786 or with --backup-dir. See --backup-dir for more info.
8787
8788 For example
8789
8790 rclone copy -i /path/to/local/file remote:current --suffix .bak
8791
8792 will copy /path/to/local to remote:current, but for any files which
8793 would have been updated or deleted have .bak added.
8794
8795 If using rclone sync with --suffix and without --backup-dir then it is
8796 recommended to put a filter rule in excluding the suffix otherwise the
8797 sync will delete the backup files.
8798
8799 rclone sync -i /path/to/local/file remote:current --suffix .bak --exclude "*.bak"
8800
8801 --suffix-keep-extension
8802 When using --suffix, setting this causes rclone put the SUFFIX before
8803 the extension of the files that it backs up rather than after.
8804
8805 So let's say we had --suffix -2019-01-01, without the flag file.txt
8806 would be backed up to file.txt-2019-01-01 and with the flag it would be
8807 backed up to file-2019-01-01.txt. This can be helpful to make sure the
8808 suffixed files can still be opened.
8809
8810 --syslog
8811 On capable OSes (not Windows or Plan9) send all log output to syslog.
8812
8813 This can be useful for running rclone in a script or rclone mount.
8814
8815 --syslog-facility string
8816 If using --syslog this sets the syslog facility (e.g. KERN, USER).
8817 See man syslog for a list of possible facilities. The default facility
8818 is DAEMON.
8819
8820 --temp-dir=DIR
8821 Specify the directory rclone will use for temporary files, to override
8822 the default. Make sure the directory exists and have accessible per‐
8823 missions.
8824
8825 By default the operating system's temp directory will be used: - On
8826 Unix systems, $TMPDIR if non-empty, else /tmp. - On Windows, the first
8827 non-empty value from %TMP%, %TEMP%, %USERPROFILE%, or the Windows di‐
8828 rectory.
8829
8830 When overriding the default with this option, the specified path will
8831 be set as value of environment variable TMPDIR on Unix systems and TMP
8832 and TEMP on Windows.
8833
8834 You can use the config paths (https://rclone.org/commands/rclone_con‐
8835 fig_paths/) command to see the current value.
8836
8837 --tpslimit float
8838 Limit transactions per second to this number. Default is 0 which is
8839 used to mean unlimited transactions per second.
8840
8841 A transaction is roughly defined as an API call; its exact meaning will
8842 depend on the backend. For HTTP based backends it is an HTTP
8843 PUT/GET/POST/etc and its response. For FTP/SFTP it is a round trip
8844 transaction over TCP.
8845
8846 For example to limit rclone to 10 transactions per second use --tpslim‐
8847 it 10, or to 1 transaction every 2 seconds use --tpslimit 0.5.
8848
8849 Use this when the number of transactions per second from rclone is
8850 causing a problem with the cloud storage provider (e.g. getting you
8851 banned or rate limited).
8852
8853 This can be very useful for rclone mount to control the behaviour of
8854 applications using it.
8855
8856 This limit applies to all HTTP based backends and to the FTP and SFTP
8857 backends. It does not apply to the local backend or the Tardigrade
8858 backend.
8859
8860 See also --tpslimit-burst.
8861
8862 --tpslimit-burst int
8863 Max burst of transactions for --tpslimit (default 1).
8864
8865 Normally --tpslimit will do exactly the number of transaction per sec‐
8866 ond specified. However if you supply --tps-burst then rclone can save
8867 up some transactions from when it was idle giving a burst of up to the
8868 parameter supplied.
8869
8870 For example if you provide --tpslimit-burst 10 then if rclone has been
8871 idle for more than 10*--tpslimit then it can do 10 transactions very
8872 quickly before they are limited again.
8873
8874 This may be used to increase performance of --tpslimit without changing
8875 the long term average number of transactions per second.
8876
8877 --track-renames
8878 By default, rclone doesn't keep track of renamed files, so if you re‐
8879 name a file locally then sync it to a remote, rclone will delete the
8880 old file on the remote and upload a new copy.
8881
8882 If you use this flag, and the remote supports server-side copy or serv‐
8883 er-side move, and the source and destination have a compatible hash,
8884 then this will track renames during sync operations and perform renam‐
8885 ing server-side.
8886
8887 Files will be matched by size and hash - if both match then a rename
8888 will be considered.
8889
8890 If the destination does not support server-side copy or move, rclone
8891 will fall back to the default behaviour and log an error level message
8892 to the console.
8893
8894 Encrypted destinations are not currently supported by --track-renames
8895 if --track-renames-strategy includes hash.
8896
8897 Note that --track-renames is incompatible with --no-traverse and that
8898 it uses extra memory to keep track of all the rename candidates.
8899
8900 Note also that --track-renames is incompatible with --delete-before and
8901 will select --delete-after instead of --delete-during.
8902
8903 --track-renames-strategy (hash,modtime,leaf,size)
8904 This option changes the matching criteria for --track-renames.
8905
8906 The matching is controlled by a comma separated selection of these to‐
8907 kens:
8908
8909 • modtime - the modification time of the file - not supported on all
8910 backends
8911
8912 • hash - the hash of the file contents - not supported on all backends
8913
8914 • leaf - the name of the file not including its directory name
8915
8916 • size - the size of the file (this is always enabled)
8917
8918 So using --track-renames-strategy modtime,leaf would match files based
8919 on modification time, the leaf of the file name and the size only.
8920
8921 Using --track-renames-strategy modtime or leaf can enable --track-re‐
8922 names support for encrypted destinations.
8923
8924 If nothing is specified, the default option is matching by hashes.
8925
8926 Note that the hash strategy is not supported with encrypted destina‐
8927 tions.
8928
8929 --delete-(before,during,after)
8930 This option allows you to specify when files on your destination are
8931 deleted when you sync folders.
8932
8933 Specifying the value --delete-before will delete all files present on
8934 the destination, but not on the source before starting the transfer of
8935 any new or updated files. This uses two passes through the file sys‐
8936 tems, one for the deletions and one for the copies.
8937
8938 Specifying --delete-during will delete files while checking and upload‐
8939 ing files. This is the fastest option and uses the least memory.
8940
8941 Specifying --delete-after (the default value) will delay deletion of
8942 files until all new/updated files have been successfully transferred.
8943 The files to be deleted are collected in the copy pass then deleted af‐
8944 ter the copy pass has completed successfully. The files to be deleted
8945 are held in memory so this mode may use more memory. This is the
8946 safest mode as it will only delete files if there have been no errors
8947 subsequent to that. If there have been errors before the deletions
8948 start then you will get the message not deleting files as there were IO
8949 errors.
8950
8951 --fast-list
8952 When doing anything which involves a directory listing (e.g. sync,
8953 copy, ls - in fact nearly every command), rclone normally lists a di‐
8954 rectory and processes it before using more directory lists to process
8955 any subdirectories. This can be parallelised and works very quickly
8956 using the least amount of memory.
8957
8958 However, some remotes have a way of listing all files beneath a direc‐
8959 tory in one (or a small number) of transactions. These tend to be the
8960 bucket based remotes (e.g. S3, B2, GCS, Swift, Hubic).
8961
8962 If you use the --fast-list flag then rclone will use this method for
8963 listing directories. This will have the following consequences for the
8964 listing:
8965
8966 • It will use fewer transactions (important if you pay for them)
8967
8968 • It will use more memory. Rclone has to load the whole listing into
8969 memory.
8970
8971 • It may be faster because it uses fewer transactions
8972
8973 • It may be slower because it can't be parallelized
8974
8975 rclone should always give identical results with and without
8976 --fast-list.
8977
8978 If you pay for transactions and can fit your entire sync listing into
8979 memory then --fast-list is recommended. If you have a very big sync to
8980 do then don't use --fast-list otherwise you will run out of memory.
8981
8982 If you use --fast-list on a remote which doesn't support it, then
8983 rclone will just ignore it.
8984
8985 --timeout=TIME
8986 This sets the IO idle timeout. If a transfer has started but then be‐
8987 comes idle for this long it is considered broken and disconnected.
8988
8989 The default is 5m. Set to 0 to disable.
8990
8991 --transfers=N
8992 The number of file transfers to run in parallel. It can sometimes be
8993 useful to set this to a smaller number if the remote is giving a lot of
8994 timeouts or bigger if you have lots of bandwidth and a fast remote.
8995
8996 The default is to run 4 file transfers in parallel.
8997
8998 -u, --update
8999 This forces rclone to skip any files which exist on the destination and
9000 have a modified time that is newer than the source file.
9001
9002 This can be useful when transferring to a remote which doesn't support
9003 mod times directly (or when using --use-server-modtime to avoid extra
9004 API calls) as it is more accurate than a --size-only check and faster
9005 than using --checksum.
9006
9007 If an existing destination file has a modification time equal (within
9008 the computed modify window precision) to the source file's, it will be
9009 updated if the sizes are different. If --checksum is set then rclone
9010 will update the destination if the checksums differ too.
9011
9012 If an existing destination file is older than the source file then it
9013 will be updated if the size or checksum differs from the source file.
9014
9015 On remotes which don't support mod time directly (or when using
9016 --use-server-modtime) the time checked will be the uploaded time. This
9017 means that if uploading to one of these remotes, rclone will skip any
9018 files which exist on the destination and have an uploaded time that is
9019 newer than the modification time of the source file.
9020
9021 --use-mmap
9022 If this flag is set then rclone will use anonymous memory allocated by
9023 mmap on Unix based platforms and VirtualAlloc on Windows for its trans‐
9024 fer buffers (size controlled by --buffer-size). Memory allocated like
9025 this does not go on the Go heap and can be returned to the OS immedi‐
9026 ately when it is finished with.
9027
9028 If this flag is not set then rclone will allocate and free the buffers
9029 using the Go memory allocator which may use more memory as memory pages
9030 are returned less aggressively to the OS.
9031
9032 It is possible this does not work well on all platforms so it is dis‐
9033 abled by default; in the future it may be enabled by default.
9034
9035 --use-server-modtime
9036 Some object-store backends (e.g, Swift, S3) do not preserve file modi‐
9037 fication times (modtime). On these backends, rclone stores the origi‐
9038 nal modtime as additional metadata on the object. By default it will
9039 make an API call to retrieve the metadata when the modtime is needed by
9040 an operation.
9041
9042 Use this flag to disable the extra API call and rely instead on the
9043 server's modified time. In cases such as a local to remote sync using
9044 --update, knowing the local file is newer than the time it was last up‐
9045 loaded to the remote is sufficient. In those cases, this flag can
9046 speed up the process and reduce the number of API calls necessary.
9047
9048 Using this flag on a sync operation without also using --update would
9049 cause all files modified at any time other than the last upload time to
9050 be uploaded again, which is probably not what you want.
9051
9052 -v, -vv, --verbose
9053 With -v rclone will tell you about each file that is transferred and a
9054 small number of significant events.
9055
9056 With -vv rclone will become very verbose telling you about every file
9057 it considers and transfers. Please send bug reports with a log with
9058 this setting.
9059
9060 -V, --version
9061 Prints the version number
9062
9063 SSL/TLS options
9064 The outgoing SSL/TLS connections rclone makes can be controlled with
9065 these options. For example this can be very useful with the HTTP or
9066 WebDAV backends. Rclone HTTP servers have their own set of configura‐
9067 tion for SSL/TLS which you can find in their documentation.
9068
9069 --ca-cert string
9070 This loads the PEM encoded certificate authority certificate and uses
9071 it to verify the certificates of the servers rclone connects to.
9072
9073 If you have generated certificates signed with a local CA then you will
9074 need this flag to connect to servers using those certificates.
9075
9076 --client-cert string
9077 This loads the PEM encoded client side certificate.
9078
9079 This is used for mutual TLS authentication
9080 (https://en.wikipedia.org/wiki/Mutual_authentication).
9081
9082 The --client-key flag is required too when using this.
9083
9084 --client-key string
9085 This loads the PEM encoded client side private key used for mutual TLS
9086 authentication. Used in conjunction with --client-cert.
9087
9088 --no-check-certificate=true/false
9089 --no-check-certificate controls whether a client verifies the server's
9090 certificate chain and host name. If --no-check-certificate is true,
9091 TLS accepts any certificate presented by the server and any host name
9092 in that certificate. In this mode, TLS is susceptible to
9093 man-in-the-middle attacks.
9094
9095 This option defaults to false.
9096
9097 This should be used only for testing.
9098
9099 Configuration Encryption
9100 Your configuration file contains information for logging in to your
9101 cloud services. This means that you should keep your rclone.conf file
9102 in a secure location.
9103
9104 If you are in an environment where that isn't possible, you can add a
9105 password to your configuration. This means that you will have to sup‐
9106 ply the password every time you start rclone.
9107
9108 To add a password to your rclone configuration, execute rclone config.
9109
9110 >rclone config
9111 Current remotes:
9112
9113 e) Edit existing remote
9114 n) New remote
9115 d) Delete remote
9116 s) Set configuration password
9117 q) Quit config
9118 e/n/d/s/q>
9119
9120 Go into s, Set configuration password:
9121
9122 e/n/d/s/q> s
9123 Your configuration is not encrypted.
9124 If you add a password, you will protect your login information to cloud services.
9125 a) Add Password
9126 q) Quit to main menu
9127 a/q> a
9128 Enter NEW configuration password:
9129 password:
9130 Confirm NEW password:
9131 password:
9132 Password set
9133 Your configuration is encrypted.
9134 c) Change Password
9135 u) Unencrypt configuration
9136 q) Quit to main menu
9137 c/u/q>
9138
9139 Your configuration is now encrypted, and every time you start rclone
9140 you will have to supply the password. See below for details. In the
9141 same menu, you can change the password or completely remove encryption
9142 from your configuration.
9143
9144 There is no way to recover the configuration if you lose your password.
9145
9146 rclone uses nacl secretbox (https://godoc.org/golang.org/x/crypto/na‐
9147 cl/secretbox) which in turn uses XSalsa20 and Poly1305 to encrypt and
9148 authenticate your configuration with secret-key cryptography. The
9149 password is SHA-256 hashed, which produces the key for secretbox. The
9150 hashed password is not stored.
9151
9152 While this provides very good security, we do not recommend storing
9153 your encrypted rclone configuration in public if it contains sensitive
9154 information, maybe except if you use a very strong password.
9155
9156 If it is safe in your environment, you can set the RCLONE_CONFIG_PASS
9157 environment variable to contain your password, in which case it will be
9158 used for decrypting the configuration.
9159
9160 You can set this for a session from a script. For unix like systems
9161 save this to a file called set-rclone-password:
9162
9163 #!/bin/echo Source this file don't run it
9164
9165 read -s RCLONE_CONFIG_PASS
9166 export RCLONE_CONFIG_PASS
9167
9168 Then source the file when you want to use it. From the shell you would
9169 do source set-rclone-password. It will then ask you for the password
9170 and set it in the environment variable.
9171
9172 An alternate means of supplying the password is to provide a script
9173 which will retrieve the password and print on standard output. This
9174 script should have a fully specified path name and not rely on any en‐
9175 vironment variables. The script is supplied either via --password-com‐
9176 mand="..." command line argument or via the RCLONE_PASSWORD_COMMAND en‐
9177 vironment variable.
9178
9179 One useful example of this is using the passwordstore application to
9180 retrieve the password:
9181
9182 export RCLONE_PASSWORD_COMMAND="pass rclone/config"
9183
9184 If the passwordstore password manager holds the password for the rclone
9185 configuration, using the script method means the password is primarily
9186 protected by the passwordstore system, and is never embedded in the
9187 clear in scripts, nor available for examination using the standard com‐
9188 mands available. It is quite possible with long running rclone ses‐
9189 sions for copies of passwords to be innocently captured in log files or
9190 terminal scroll buffers, etc. Using the script method of supplying the
9191 password enhances the security of the config password considerably.
9192
9193 If you are running rclone inside a script, unless you are using the
9194 --password-command method, you might want to disable password prompts.
9195 To do that, pass the parameter --ask-password=false to rclone. This
9196 will make rclone fail instead of asking for a password if RCLONE_CON‐
9197 FIG_PASS doesn't contain a valid password, and --password-command has
9198 not been supplied.
9199
9200 Whenever running commands that may be affected by options in a configu‐
9201 ration file, rclone will look for an existing file according to the
9202 rules described above, and load any it finds. If an encrypted file is
9203 found, this includes decrypting it, with the possible consequence of a
9204 password prompt. When executing a command line that you know are not
9205 actually using anything from such a configuration file, you can avoid
9206 it being loaded by overriding the location, e.g. with one of the docu‐
9207 mented special values for memory-only configuration. Since only back‐
9208 end options can be stored in configuration files, this is normally un‐
9209 necessary for commands that do not operate on backends, e.g. genauto‐
9210 complete. However, it will be relevant for commands that do operate on
9211 backends in general, but are used without referencing a stored remote,
9212 e.g. listing local filesystem paths, or connection strings: rclone
9213 --config="" ls .
9214
9215 Developer options
9216 These options are useful when developing or debugging rclone. There
9217 are also some more remote specific options which aren't documented here
9218 which are used for testing. These start with remote name e.g.
9219 --drive-test-option - see the docs for the remote in question.
9220
9221 --cpuprofile=FILE
9222 Write CPU profile to file. This can be analysed with go tool pprof.
9223
9224 --dump flag,flag,flag
9225 The --dump flag takes a comma separated list of flags to dump info
9226 about.
9227
9228 Note that some headers including Accept-Encoding as shown may not be
9229 correct in the request and the response may not show Content-Encoding
9230 if the go standard libraries auto gzip encoding was in effect. In this
9231 case the body of the request will be gunzipped before showing it.
9232
9233 The available flags are:
9234
9235 --dump headers
9236 Dump HTTP headers with Authorization: lines removed. May still contain
9237 sensitive info. Can be very verbose. Useful for debugging only.
9238
9239 Use --dump auth if you do want the Authorization: headers.
9240
9241 --dump bodies
9242 Dump HTTP headers and bodies - may contain sensitive info. Can be very
9243 verbose. Useful for debugging only.
9244
9245 Note that the bodies are buffered in memory so don't use this for enor‐
9246 mous files.
9247
9248 --dump requests
9249 Like --dump bodies but dumps the request bodies and the response head‐
9250 ers. Useful for debugging download problems.
9251
9252 --dump responses
9253 Like --dump bodies but dumps the response bodies and the request head‐
9254 ers. Useful for debugging upload problems.
9255
9256 --dump auth
9257 Dump HTTP headers - will contain sensitive info such as Authorization:
9258 headers - use --dump headers to dump without Authorization: headers.
9259 Can be very verbose. Useful for debugging only.
9260
9261 --dump filters
9262 Dump the filters to the output. Useful to see exactly what include and
9263 exclude options are filtering on.
9264
9265 --dump goroutines
9266 This dumps a list of the running go-routines at the end of the command
9267 to standard output.
9268
9269 --dump openfiles
9270 This dumps a list of the open files at the end of the command. It uses
9271 the lsof command to do that so you'll need that installed to use it.
9272
9273 --memprofile=FILE
9274 Write memory profile to file. This can be analysed with go tool pprof.
9275
9276 Filtering
9277 For the filtering options
9278
9279 • --delete-excluded
9280
9281 • --filter
9282
9283 • --filter-from
9284
9285 • --exclude
9286
9287 • --exclude-from
9288
9289 • --include
9290
9291 • --include-from
9292
9293 • --files-from
9294
9295 • --files-from-raw
9296
9297 • --min-size
9298
9299 • --max-size
9300
9301 • --min-age
9302
9303 • --max-age
9304
9305 • --dump filters
9306
9307 See the filtering section (https://rclone.org/filtering/).
9308
9309 Remote control
9310 For the remote control options and for instructions on how to remote
9311 control rclone
9312
9313 • --rc
9314
9315 • and anything starting with --rc-
9316
9317 See the remote control section (https://rclone.org/rc/).
9318
9319 Logging
9320 rclone has 4 levels of logging, ERROR, NOTICE, INFO and DEBUG.
9321
9322 By default, rclone logs to standard error. This means you can redirect
9323 standard error and still see the normal output of rclone commands (e.g.
9324 rclone ls).
9325
9326 By default, rclone will produce Error and Notice level messages.
9327
9328 If you use the -q flag, rclone will only produce Error messages.
9329
9330 If you use the -v flag, rclone will produce Error, Notice and Info mes‐
9331 sages.
9332
9333 If you use the -vv flag, rclone will produce Error, Notice, Info and
9334 Debug messages.
9335
9336 You can also control the log levels with the --log-level flag.
9337
9338 If you use the --log-file=FILE option, rclone will redirect Error, Info
9339 and Debug messages along with standard error to FILE.
9340
9341 If you use the --syslog flag then rclone will log to syslog and the
9342 --syslog-facility control which facility it uses.
9343
9344 Rclone prefixes all log messages with their level in capitals, e.g.
9345 INFO which makes it easy to grep the log file for different kinds of
9346 information.
9347
9348 Exit Code
9349 If any errors occur during the command execution, rclone will exit with
9350 a non-zero exit code. This allows scripts to detect when rclone opera‐
9351 tions have failed.
9352
9353 During the startup phase, rclone will exit immediately if an error is
9354 detected in the configuration. There will always be a log message im‐
9355 mediately before exiting.
9356
9357 When rclone is running it will accumulate errors as it goes along, and
9358 only exit with a non-zero exit code if (after retries) there were still
9359 failed transfers. For every error counted there will be a high priori‐
9360 ty log message (visible with -q) showing the message and which file
9361 caused the problem. A high priority message is also shown when start‐
9362 ing a retry so the user can see that any previous error messages may
9363 not be valid after the retry. If rclone has done a retry it will log a
9364 high priority message if the retry was successful.
9365
9366 List of exit codes
9367 • 0 - success
9368
9369 • 1 - Syntax or usage error
9370
9371 • 2 - Error not otherwise categorised
9372
9373 • 3 - Directory not found
9374
9375 • 4 - File not found
9376
9377 • 5 - Temporary error (one that more retries might fix) (Retry errors)
9378
9379 • 6 - Less serious errors (like 461 errors from dropbox) (NoRetry er‐
9380 rors)
9381
9382 • 7 - Fatal error (one that more retries won't fix, like account sus‐
9383 pended) (Fatal errors)
9384
9385 • 8 - Transfer exceeded - limit set by --max-transfer reached
9386
9387 • 9 - Operation successful, but no files transferred
9388
9389 Environment Variables
9390 Rclone can be configured entirely using environment variables. These
9391 can be used to set defaults for options or config file entries.
9392
9393 Options
9394 Every option in rclone can have its default set by environment vari‐
9395 able.
9396
9397 To find the name of the environment variable, first, take the long op‐
9398 tion name, strip the leading --, change - to _, make upper case and
9399 prepend RCLONE_.
9400
9401 For example, to always set --stats 5s, set the environment variable
9402 RCLONE_STATS=5s. If you set stats on the command line this will over‐
9403 ride the environment variable setting.
9404
9405 Or to always use the trash in drive --drive-use-trash, set
9406 RCLONE_DRIVE_USE_TRASH=true.
9407
9408 The same parser is used for the options and the environment variables
9409 so they take exactly the same form.
9410
9411 The options set by environment variables can be seen with the -vv flag,
9412 e.g. rclone version -vv.
9413
9414 Config file
9415 You can set defaults for values in the config file on an individual re‐
9416 mote basis. The names of the config items are documented in the page
9417 for each backend.
9418
9419 To find the name of the environment variable, you need to set, take
9420 RCLONE_CONFIG_ + name of remote + _ + name of config file option and
9421 make it all uppercase.
9422
9423 For example, to configure an S3 remote named mys3: without a config
9424 file (using unix ways of setting environment variables):
9425
9426 $ export RCLONE_CONFIG_MYS3_TYPE=s3
9427 $ export RCLONE_CONFIG_MYS3_ACCESS_KEY_ID=XXX
9428 $ export RCLONE_CONFIG_MYS3_SECRET_ACCESS_KEY=XXX
9429 $ rclone lsd mys3:
9430 -1 2016-09-21 12:54:21 -1 my-bucket
9431 $ rclone listremotes | grep mys3
9432 mys3:
9433
9434 Note that if you want to create a remote using environment variables
9435 you must create the ..._TYPE variable as above.
9436
9437 Note that the name of a remote created using environment variable is
9438 case insensitive, in contrast to regular remotes stored in config file
9439 as documented above. You must write the name in uppercase in the envi‐
9440 ronment variable, but as seen from example above it will be listed and
9441 can be accessed in lowercase, while you can also refer to the same re‐
9442 mote in uppercase:
9443
9444 $ rclone lsd mys3:
9445 -1 2016-09-21 12:54:21 -1 my-bucket
9446 $ rclone lsd MYS3:
9447 -1 2016-09-21 12:54:21 -1 my-bucket
9448
9449 Note that you can only set the options of the immediate backend, so
9450 RCLONE_CONFIG_MYS3CRYPT_ACCESS_KEY_ID has no effect, if myS3Crypt is a
9451 crypt remote based on an S3 remote. However RCLONE_S3_ACCESS_KEY_ID
9452 will set the access key of all remotes using S3, including myS3Crypt.
9453
9454 Note also that now rclone has connection strings, it is probably easier
9455 to use those instead which makes the above example
9456
9457 rclone lsd :s3,access_key_id=XXX,secret_access_key=XXX:
9458
9459 Precedence
9460 The various different methods of backend configuration are read in this
9461 order and the first one with a value is used.
9462
9463 • Parameters in connection strings, e.g. myRemote,skip_links:
9464
9465 • Flag values as supplied on the command line, e.g. --skip-links
9466
9467 • Remote specific environment vars, e.g. RCLONE_CONFIG_MYRE‐
9468 MOTE_SKIP_LINKS (see above).
9469
9470 • Backend specific environment vars, e.g. RCLONE_LOCAL_SKIP_LINKS.
9471
9472 • Backend generic environment vars, e.g. RCLONE_SKIP_LINKS.
9473
9474 • Config file, e.g. skip_links = true.
9475
9476 • Default values, e.g. false - these can't be changed.
9477
9478 So if both --skip-links is supplied on the command line and an environ‐
9479 ment variable RCLONE_LOCAL_SKIP_LINKS is set, the command line flag
9480 will take preference.
9481
9482 The backend configurations set by environment variables can be seen
9483 with the -vv flag, e.g. rclone about myRemote: -vv.
9484
9485 For non backend configuration the order is as follows:
9486
9487 • Flag values as supplied on the command line, e.g. --stats 5s.
9488
9489 • Environment vars, e.g. RCLONE_STATS=5s.
9490
9491 • Default values, e.g. 1m - these can't be changed.
9492
9493 Other environment variables
9494 • RCLONE_CONFIG_PASS set to contain your config file password (see Con‐
9495 figuration Encryption section)
9496
9497 • HTTP_PROXY, HTTPS_PROXY and NO_PROXY (or the lowercase versions
9498 thereof).
9499
9500 • HTTPS_PROXY takes precedence over HTTP_PROXY for https requests.
9501
9502 • The environment values may be either a complete URL or a
9503 "host[:port]" for, in which case the "http" scheme is assumed.
9504
9505 • USER and LOGNAME values are used as fallbacks for current username.
9506 The primary method for looking up username is OS-specific: Windows
9507 API on Windows, real user ID in /etc/passwd on Unix systems. In the
9508 documentation the current username is simply referred to as $USER.
9509
9510 • RCLONE_CONFIG_DIR - rclone sets this variable for use in config files
9511 and sub processes to point to the directory holding the config file.
9512
9513 The options set by environment variables can be seen with the -vv and
9514 --log-level=DEBUG flags, e.g. rclone version -vv.
9515
9517 Some of the configurations (those involving oauth2) require an Internet
9518 connected web browser.
9519
9520 If you are trying to set rclone up on a remote or headless box with no
9521 browser available on it (e.g. a NAS or a server in a datacenter) then
9522 you will need to use an alternative means of configuration. There are
9523 two ways of doing it, described below.
9524
9525 Configuring using rclone authorize
9526 On the headless box run rclone config but answer N to the Use auto con‐
9527 fig? question.
9528
9529 ...
9530 Remote config
9531 Use auto config?
9532 * Say Y if not sure
9533 * Say N if you are working on a remote or headless machine
9534 y) Yes (default)
9535 n) No
9536 y/n> n
9537 For this to work, you will need rclone available on a machine that has
9538 a web browser available.
9539
9540 For more help and alternate methods see: https://rclone.org/remote_setup/
9541
9542 Execute the following on the machine with the web browser (same rclone
9543 version recommended):
9544
9545 rclone authorize "amazon cloud drive"
9546
9547 Then paste the result below:
9548 result>
9549
9550 Then on your main desktop machine
9551
9552 rclone authorize "amazon cloud drive"
9553 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
9554 Log in and authorize rclone for access
9555 Waiting for code...
9556 Got code
9557 Paste the following into your remote machine --->
9558 SECRET_TOKEN
9559 <---End paste
9560
9561 Then back to the headless box, paste in the code
9562
9563 result> SECRET_TOKEN
9564 --------------------
9565 [acd12]
9566 client_id =
9567 client_secret =
9568 token = SECRET_TOKEN
9569 --------------------
9570 y) Yes this is OK
9571 e) Edit this remote
9572 d) Delete this remote
9573 y/e/d>
9574
9575 Configuring by copying the config file
9576 Rclone stores all of its config in a single configuration file. This
9577 can easily be copied to configure a remote rclone.
9578
9579 So first configure rclone on your desktop machine with
9580
9581 rclone config
9582
9583 to set up the config file.
9584
9585 Find the config file by running rclone config file, for example
9586
9587 $ rclone config file
9588 Configuration file is stored at:
9589 /home/user/.rclone.conf
9590
9591 Now transfer it to the remote box (scp, cut paste, ftp, sftp, etc.) and
9592 place it in the correct place (use rclone config file on the remote box
9593 to find out where).
9594
9596 Filter flags determine which files rclone sync, move, ls, lsl, md5sum,
9597 sha1sum, size, delete, check and similar commands apply to.
9598
9599 They are specified in terms of path/file name patterns; path/file
9600 lists; file age and size, or presence of a file in a directory. Bucket
9601 based remotes without the concept of directory apply filters to object
9602 key, age and size in an analogous way.
9603
9604 Rclone purge does not obey filters.
9605
9606 To test filters without risk of damage to data, apply them to rclone
9607 ls, or with the --dry-run and -vv flags.
9608
9609 Rclone filter patterns can only be used in filter command line options,
9610 not in the specification of a remote.
9611
9612 E.g. rclone copy "remote:dir*.jpg" /path/to/dir does not have a filter
9613 effect. rclone copy remote:dir /path/to/dir --include "*.jpg" does.
9614
9615 Important Avoid mixing any two of --include..., --exclude... or --fil‐
9616 ter... flags in an rclone command. The results may not be what you ex‐
9617 pect. Instead use a --filter... flag.
9618
9619 Patterns for matching path/file names
9620 Pattern syntax
9621 Rclone matching rules follow a glob style:
9622
9623 * matches any sequence of non-separator (/) characters
9624 ** matches any sequence of characters including / separators
9625 ? matches any single non-separator (/) character
9626 [ [ ! ] { character-range } ]
9627 character class (must be non-empty)
9628 { pattern-list }
9629 pattern alternatives
9630 c matches character c (c != *, **, ?, \, [, {, })
9631 \c matches reserved character c (c = *, **, ?, \, [, {, })
9632
9633 character-range:
9634
9635 c matches character c (c != \, -, ])
9636 \c matches reserved character c (c = \, -, ])
9637 lo - hi matches character c for lo <= c <= hi
9638
9639 pattern-list:
9640
9641 pattern { , pattern }
9642 comma-separated (without spaces) patterns
9643
9644 character classes (see Go regular expression reference
9645 (https://golang.org/pkg/regexp/syntax/)) include:
9646
9647 Named character classes (e.g. [\d], [^\d], [\D], [^\D])
9648 Perl character classes (e.g. \s, \S, \w, \W)
9649 ASCII character classes (e.g. [[:alnum:]], [[:alpha:]], [[:punct:]], [[:xdigit:]])
9650
9651 If the filter pattern starts with a / then it only matches at the top
9652 level of the directory tree, relative to the root of the remote (not
9653 necessarily the root of the drive). If it does not start with / then
9654 it is matched starting at the end of the path/file name but it only
9655 matches a complete path element - it must match from a / separator or
9656 the beginning of the path/file.
9657
9658 file.jpg - matches "file.jpg"
9659 - matches "directory/file.jpg"
9660 - doesn't match "afile.jpg"
9661 - doesn't match "directory/afile.jpg"
9662 /file.jpg - matches "file.jpg" in the root directory of the remote
9663 - doesn't match "afile.jpg"
9664 - doesn't match "directory/file.jpg"
9665
9666 The top level of the remote may not be the top level of the drive.
9667
9668 E.g. for a Microsoft Windows local directory structure
9669
9670 F:
9671 ├── bkp
9672 ├── data
9673 │ ├── excl
9674 │ │ ├── 123.jpg
9675 │ │ └── 456.jpg
9676 │ ├── incl
9677 │ │ └── document.pdf
9678
9679 To copy the contents of folder data into folder bkp excluding the con‐
9680 tents of subfolder exclthe following command treats F:\data and F:\bkp
9681 as top level for filtering.
9682
9683 rclone copy F:\data\ F:\bkp\ --exclude=/excl/**
9684
9685 Important Use / in path/file name patterns and not \ even if running on
9686 Microsoft Windows.
9687
9688 Simple patterns are case sensitive unless the --ignore-case flag is
9689 used.
9690
9691 Without --ignore-case (default)
9692
9693 potato - matches "potato"
9694 - doesn't match "POTATO"
9695
9696 With --ignore-case
9697
9698 potato - matches "potato"
9699 - matches "POTATO"
9700
9701 How filter rules are applied to files
9702 Rclone path/file name filters are made up of one or more of the follow‐
9703 ing flags:
9704
9705 • --include
9706
9707 • --include-from
9708
9709 • --exclude
9710
9711 • --exclude-from
9712
9713 • --filter
9714
9715 • --filter-from
9716
9717 There can be more than one instance of individual flags.
9718
9719 Rclone internally uses a combined list of all the include and exclude
9720 rules. The order in which rules are processed can influence the result
9721 of the filter.
9722
9723 All flags of the same type are processed together in the order above,
9724 regardless of what order the different types of flags are included on
9725 the command line.
9726
9727 Multiple instances of the same flag are processed from left to right
9728 according to their position in the command line.
9729
9730 To mix up the order of processing includes and excludes use --filter...
9731 flags.
9732
9733 Within --include-from, --exclude-from and --filter-from flags rules are
9734 processed from top to bottom of the referenced file.
9735
9736 If there is an --include or --include-from flag specified, rclone im‐
9737 plies a - ** rule which it adds to the bottom of the internal rule
9738 list. Specifying a + rule with a --filter... flag does not imply that
9739 rule.
9740
9741 Each path/file name passed through rclone is matched against the com‐
9742 bined filter list. At first match to a rule the path/file name is in‐
9743 cluded or excluded and no further filter rules are processed for that
9744 path/file.
9745
9746 If rclone does not find a match, after testing against all rules (in‐
9747 cluding the implied rule if appropriate), the path/file name is includ‐
9748 ed.
9749
9750 Any path/file included at that stage is processed by the rclone com‐
9751 mand.
9752
9753 --files-from and --files-from-raw flags over-ride and cannot be com‐
9754 bined with other filter options.
9755
9756 To see the internal combined rule list, in regular expression form, for
9757 a command add the --dump filters flag. Running an rclone command with
9758 --dump filters and -vv flags lists the internal filter elements and
9759 shows how they are applied to each source path/file. There is not cur‐
9760 rently a means provided to pass regular expression filter options into
9761 rclone directly though character class filter rules contain character
9762 classes. Go regular expression reference (https://golang.org/pkg/reg‐
9763 exp/syntax/)
9764
9765 How filter rules are applied to directories
9766 Rclone commands are applied to path/file names not directories. The
9767 entire contents of a directory can be matched to a filter by the pat‐
9768 tern directory/* or recursively by directory/**.
9769
9770 Directory filter rules are defined with a closing / separator.
9771
9772 E.g. /directory/subdirectory/ is an rclone directory filter rule.
9773
9774 Rclone commands can use directory filter rules to determine whether
9775 they recurse into subdirectories. This potentially optimises access to
9776 a remote by avoiding listing unnecessary directories. Whether optimi‐
9777 sation is desirable depends on the specific filter rules and source re‐
9778 mote content.
9779
9780 Directory recursion optimisation occurs if either:
9781
9782 • A source remote does not support the rclone ListR primitive. local,
9783 sftp, Microsoft OneDrive and WebDav do not support ListR. Google
9784 Drive and most bucket type storage do. Full list
9785 (https://rclone.org/overview/#optional-features)
9786
9787 • On other remotes (those that support ListR), if the rclone command is
9788 not naturally recursive, and provided it is not run with the
9789 --fast-list flag. ls, lsf -R and size are naturally recursive but
9790 sync, copy and move are not.
9791
9792 • Whenever the --disable ListR flag is applied to an rclone command.
9793
9794 Rclone commands imply directory filter rules from path/file filter
9795 rules. To view the directory filter rules rclone has implied for a
9796 command specify the --dump filters flag.
9797
9798 E.g. for an include rule
9799
9800 /a/*.jpg
9801
9802 Rclone implies the directory include rule
9803
9804 /a/
9805
9806 Directory filter rules specified in an rclone command can limit the
9807 scope of an rclone command but path/file filters still have to be spec‐
9808 ified.
9809
9810 E.g. rclone ls remote: --include /directory/ will not match any files.
9811 Because it is an --include option the --exclude ** rule is implied, and
9812 the /directory/ pattern serves only to optimise access to the remote by
9813 ignoring everything outside of that directory.
9814
9815 E.g. rclone ls remote: --filter-from filter-list.txt with a file fil‐
9816 ter-list.txt:
9817
9818 - /dir1/
9819 - /dir2/
9820 + *.pdf
9821 - **
9822
9823 All files in directories dir1 or dir2 or their subdirectories are com‐
9824 pletely excluded from the listing. Only files of suffix pdf in the
9825 root of remote: or its subdirectories are listed. The - ** rule pre‐
9826 vents listing of any path/files not previously matched by the rules
9827 above.
9828
9829 Option exclude-if-present creates a directory exclude rule based on the
9830 presence of a file in a directory and takes precedence over other
9831 rclone directory filter rules.
9832
9833 When using pattern list syntax, if a pattern item contains either / or
9834 **, then rclone will not able to imply a directory filter rule from
9835 this pattern list.
9836
9837 E.g. for an include rule
9838
9839 {dir1/**,dir2/**}
9840
9841 Rclone will match files below directories dir1 or dir2 only, but will
9842 not be able to use this filter to exclude a directory dir3 from being
9843 traversed.
9844
9845 Directory recursion optimisation may affect performance, but normally
9846 not the result. One exception to this is sync operations with option
9847 --create-empty-src-dirs, where any traversed empty directories will be
9848 created. With the pattern list example {dir1/**,dir2/**} above, this
9849 would create an empty directory dir3 on destination (when it exists on
9850 source). Changing the filter to {dir1,dir2}/**, or splitting it into
9851 two include rules --include dir1/** --include dir2/**, will match the
9852 same files while also filtering directories, with the result that an
9853 empty directory dir3 will no longer be created.
9854
9855 --exclude - Exclude files matching pattern
9856 Excludes path/file names from an rclone command based on a single ex‐
9857 clude rule.
9858
9859 This flag can be repeated. See above for the order filter flags are
9860 processed in.
9861
9862 --exclude should not be used with --include, --include-from, --filter
9863 or --filter-from flags.
9864
9865 --exclude has no effect when combined with --files-from or
9866 --files-from-raw flags.
9867
9868 E.g. rclone ls remote: --exclude *.bak excludes all .bak files from
9869 listing.
9870
9871 E.g. rclone size remote: "--exclude /dir/**" returns the total size of
9872 all files on remote: excluding those in root directory dir and sub di‐
9873 rectories.
9874
9875 E.g. on Microsoft Windows rclone ls remote: --exclude
9876 "*\[{JP,KR,HK}\]*" lists the files in remote: with [JP] or [KR] or [HK]
9877 in their name. Quotes prevent the shell from interpreting the \ char‐
9878 acters.\ characters escape the [ and ] so an rclone filter treats them
9879 literally rather than as a character-range. The { and } define an
9880 rclone pattern list. For other operating systems single quotes are re‐
9881 quired ie rclone ls remote: --exclude '*\[{JP,KR,HK}\]*'
9882
9883 --exclude-from - Read exclude patterns from file
9884 Excludes path/file names from an rclone command based on rules in a
9885 named file. The file contains a list of remarks and pattern rules.
9886
9887 For an example exclude-file.txt:
9888
9889 # a sample exclude rule file
9890 *.bak
9891 file2.jpg
9892
9893 rclone ls remote: --exclude-from exclude-file.txt lists the files on
9894 remote: except those named file2.jpg or with a suffix .bak. That is
9895 equivalent to rclone ls remote: --exclude file2.jpg --exclude "*.bak".
9896
9897 This flag can be repeated. See above for the order filter flags are
9898 processed in.
9899
9900 The --exclude-from flag is useful where multiple exclude filter rules
9901 are applied to an rclone command.
9902
9903 --exclude-from should not be used with --include, --include-from,
9904 --filter or --filter-from flags.
9905
9906 --exclude-from has no effect when combined with --files-from or
9907 --files-from-raw flags.
9908
9909 --exclude-from followed by - reads filter rules from standard input.
9910
9911 --include - Include files matching pattern
9912 Adds a single include rule based on path/file names to an rclone com‐
9913 mand.
9914
9915 This flag can be repeated. See above for the order filter flags are
9916 processed in.
9917
9918 --include has no effect when combined with --files-from or
9919 --files-from-raw flags.
9920
9921 --include implies --exclude ** at the end of an rclone internal filter
9922 list. Therefore if you mix --include and --include-from flags with
9923 --exclude, --exclude-from, --filter or --filter-from, you must use in‐
9924 clude rules for all the files you want in the include statement. For
9925 more flexibility use the --filter-from flag.
9926
9927 E.g. rclone ls remote: --include "*.{png,jpg}" lists the files on re‐
9928 mote: with suffix .png and .jpg. All other files are excluded.
9929
9930 E.g. multiple rclone copy commands can be combined with --include and
9931 a pattern-list.
9932
9933 rclone copy /vol1/A remote:A
9934 rclone copy /vol1/B remote:B
9935
9936 is equivalent to:
9937
9938 rclone copy /vol1 remote: --include "{A,B}/**"
9939
9940 E.g. rclone ls remote:/wheat --include "??[^[:punct:]]*" lists the
9941 files remote: directory wheat (and subdirectories) whose third charac‐
9942 ter is not punctuation. This example uses an ASCII character class
9943 (https://golang.org/pkg/regexp/syntax/).
9944
9945 --include-from - Read include patterns from file
9946 Adds path/file names to an rclone command based on rules in a named
9947 file. The file contains a list of remarks and pattern rules.
9948
9949 For an example include-file.txt:
9950
9951 # a sample include rule file
9952 *.jpg
9953 file2.avi
9954
9955 rclone ls remote: --include-from include-file.txt lists the files on
9956 remote: with name file2.avi or suffix .jpg. That is equivalent to
9957 rclone ls remote: --include file2.avi --include "*.jpg".
9958
9959 This flag can be repeated. See above for the order filter flags are
9960 processed in.
9961
9962 The --include-from flag is useful where multiple include filter rules
9963 are applied to an rclone command.
9964
9965 --include-from implies --exclude ** at the end of an rclone internal
9966 filter list. Therefore if you mix --include and --include-from flags
9967 with --exclude, --exclude-from, --filter or --filter-from, you must use
9968 include rules for all the files you want in the include statement. For
9969 more flexibility use the --filter-from flag.
9970
9971 --exclude-from has no effect when combined with --files-from or
9972 --files-from-raw flags.
9973
9974 --exclude-from followed by - reads filter rules from standard input.
9975
9976 --filter - Add a file-filtering rule
9977 Specifies path/file names to an rclone command, based on a single in‐
9978 clude or exclude rule, in + or - format.
9979
9980 This flag can be repeated. See above for the order filter flags are
9981 processed in.
9982
9983 --filter + differs from --include. In the case of --include rclone im‐
9984 plies an --exclude * rule which it adds to the bottom of the internal
9985 rule list. --filter...+ does not imply that rule.
9986
9987 --filter has no effect when combined with --files-from or
9988 --files-from-raw flags.
9989
9990 --filter should not be used with --include, --include-from, --exclude
9991 or --exclude-from flags.
9992
9993 E.g. rclone ls remote: --filter "- *.bak" excludes all .bak files from
9994 a list of remote:.
9995
9996 --filter-from - Read filtering patterns from a file
9997 Adds path/file names to an rclone command based on rules in a named
9998 file. The file contains a list of remarks and pattern rules. Include
9999 rules start with + and exclude rules with -. ! clears existing rules.
10000 Rules are processed in the order they are defined.
10001
10002 This flag can be repeated. See above for the order filter flags are
10003 processed in.
10004
10005 Arrange the order of filter rules with the most restrictive first and
10006 work down.
10007
10008 E.g. for filter-file.txt:
10009
10010 # a sample filter rule file
10011 - secret*.jpg
10012 + *.jpg
10013 + *.png
10014 + file2.avi
10015 - /dir/Trash/**
10016 + /dir/**
10017 # exclude everything else
10018 - *
10019
10020 rclone ls remote: --filter-from filter-file.txt lists the path/files on
10021 remote: including all jpg and png files, excluding any matching se‐
10022 cret*.jpg and including file2.avi. It also includes everything in the
10023 directory dir at the root of remote, except remote:dir/Trash which it
10024 excludes. Everything else is excluded.
10025
10026 E.g. for an alternative filter-file.txt:
10027
10028 - secret*.jpg
10029 + *.jpg
10030 + *.png
10031 + file2.avi
10032 - *
10033
10034 Files file1.jpg, file3.png and file2.avi are listed whilst secret17.jpg
10035 and files without the suffix .jpgor.png` are excluded.
10036
10037 E.g. for an alternative filter-file.txt:
10038
10039 + *.jpg
10040 + *.gif
10041 !
10042 + 42.doc
10043 - *
10044
10045 Only file 42.doc is listed. Prior rules are cleared by the !.
10046
10047 --files-from - Read list of source-file names
10048 Adds path/files to an rclone command from a list in a named file.
10049 Rclone processes the path/file names in the order of the list, and no
10050 others.
10051
10052 Other filter flags (--include, --include-from, --exclude, --ex‐
10053 clude-from, --filter and --filter-from) are ignored when --files-from
10054 is used.
10055
10056 --files-from expects a list of files as its input. Leading or trailing
10057 whitespace is stripped from the input lines. Lines starting with # or
10058 ; are ignored.
10059
10060 Rclone commands with a --files-from flag traverse the remote, treating
10061 the names in --files-from as a set of filters.
10062
10063 If the --no-traverse and --files-from flags are used together an rclone
10064 command does not traverse the remote. Instead it addresses each
10065 path/file named in the file individually. For each path/file name,
10066 that requires typically 1 API call. This can be efficient for a short
10067 --files-from list and a remote containing many files.
10068
10069 Rclone commands do not error if any names in the --files-from file are
10070 missing from the source remote.
10071
10072 The --files-from flag can be repeated in a single rclone command to
10073 read path/file names from more than one file. The files are read from
10074 left to right along the command line.
10075
10076 Paths within the --files-from file are interpreted as starting with the
10077 root specified in the rclone command. Leading / separators are ig‐
10078 nored. See --files-from-raw if you need the input to be processed in a
10079 raw manner.
10080
10081 E.g. for a file files-from.txt:
10082
10083 # comment
10084 file1.jpg
10085 subdir/file2.jpg
10086
10087 rclone copy --files-from files-from.txt /home/me/pics remote:pics
10088 copies the following, if they exist, and only those files.
10089
10090 /home/me/pics/file1.jpg → remote:pics/file1.jpg
10091 /home/me/pics/subdir/file2.jpg → remote:pics/subdir/file2.jpg
10092
10093 E.g. to copy the following files referenced by their absolute paths:
10094
10095 /home/user1/42
10096 /home/user1/dir/ford
10097 /home/user2/prefect
10098
10099 First find a common subdirectory - in this case /home and put the re‐
10100 maining files in files-from.txt with or without leading /, e.g.
10101
10102 user1/42
10103 user1/dir/ford
10104 user2/prefect
10105
10106 Then copy these to a remote:
10107
10108 rclone copy --files-from files-from.txt /home remote:backup
10109
10110 The three files are transferred as follows:
10111
10112 /home/user1/42 → remote:backup/user1/important
10113 /home/user1/dir/ford → remote:backup/user1/dir/file
10114 /home/user2/prefect → remote:backup/user2/stuff
10115
10116 Alternatively if / is chosen as root files-from.txt will be:
10117
10118 /home/user1/42
10119 /home/user1/dir/ford
10120 /home/user2/prefect
10121
10122 The copy command will be:
10123
10124 rclone copy --files-from files-from.txt / remote:backup
10125
10126 Then there will be an extra home directory on the remote:
10127
10128 /home/user1/42 → remote:backup/home/user1/42
10129 /home/user1/dir/ford → remote:backup/home/user1/dir/ford
10130 /home/user2/prefect → remote:backup/home/user2/prefect
10131
10132 --files-from-raw - Read list of source-file names without any processing
10133 This flag is the same as --files-from except that input is read in a
10134 raw manner. Lines with leading / trailing whitespace, and lines start‐
10135 ing with ; or # are read without any processing. rclone lsf
10136 (https://rclone.org/commands/rclone_lsf/) has a compatible format that
10137 can be used to export file lists from remotes for input to
10138 --files-from-raw.
10139
10140 --ignore-case - make searches case insensitive
10141 By default rclone filter patterns are case sensitive. The --ig‐
10142 nore-case flag makes all of the filters patterns on the command line
10143 case insensitive.
10144
10145 E.g. --include "zaphod.txt" does not match a file Zaphod.txt. With
10146 --ignore-case a match is made.
10147
10148 Quoting shell metacharacters
10149 Rclone commands with filter patterns containing shell metacharacters
10150 may not as work as expected in your shell and may require quoting.
10151
10152 E.g. linux, OSX (* metacharacter)
10153
10154 • --include \*.jpg
10155
10156 • --include '*.jpg'
10157
10158 • --include='*.jpg'
10159
10160 Microsoft Windows expansion is done by the command, not shell, so --in‐
10161 clude *.jpg does not require quoting.
10162
10163 If the rclone error Command .... needs .... arguments maximum: you pro‐
10164 vided .... non flag arguments: is encountered, the cause is commonly
10165 spaces within the name of a remote or flag value. The fix then is to
10166 quote values containing spaces.
10167
10168 Other filters
10169 --min-size - Don't transfer any file smaller than this
10170 Controls the minimum size file within the scope of an rclone command.
10171 Default units are KiB but abbreviations K, M, G, T or P are valid.
10172
10173 E.g. rclone ls remote: --min-size 50k lists files on remote: of 50 KiB
10174 size or larger.
10175
10176 --max-size - Don't transfer any file larger than this
10177 Controls the maximum size file within the scope of an rclone command.
10178 Default units are KiB but abbreviations K, M, G, T or P are valid.
10179
10180 E.g. rclone ls remote: --max-size 1G lists files on remote: of 1 GiB
10181 size or smaller.
10182
10183 --max-age - Don't transfer any file older than this
10184 Controls the maximum age of files within the scope of an rclone com‐
10185 mand. Default units are seconds or the following abbreviations are
10186 valid:
10187
10188 • ms - Milliseconds
10189
10190 • s - Seconds
10191
10192 • m - Minutes
10193
10194 • h - Hours
10195
10196 • d - Days
10197
10198 • w - Weeks
10199
10200 • M - Months
10201
10202 • y - Years
10203
10204 --max-age can also be specified as an absolute time in the following
10205 formats:
10206
10207 • RFC3339 - e.g. 2006-01-02T15:04:05Z or 2006-01-02T15:04:05+07:00
10208
10209 • ISO8601 Date and time, local timezone - 2006-01-02T15:04:05
10210
10211 • ISO8601 Date and time, local timezone - 2006-01-02 15:04:05
10212
10213 • ISO8601 Date - 2006-01-02 (YYYY-MM-DD)
10214
10215 --max-age applies only to files and not to directories.
10216
10217 E.g. rclone ls remote: --max-age 2d lists files on remote: of 2 days
10218 old or less.
10219
10220 --min-age - Don't transfer any file younger than this
10221 Controls the minimum age of files within the scope of an rclone com‐
10222 mand. (see --max-age for valid formats)
10223
10224 --min-age applies only to files and not to directories.
10225
10226 E.g. rclone ls remote: --min-age 2d lists files on remote: of 2 days
10227 old or more.
10228
10229 Other flags
10230 --delete-excluded - Delete files on dest excluded from sync
10231 Important this flag is dangerous to your data - use with --dry-run and
10232 -v first.
10233
10234 In conjunction with rclone sync, --delete-excluded deletes any files on
10235 the destination which are excluded from the command.
10236
10237 E.g. the scope of rclone sync -i A: B: can be restricted:
10238
10239 rclone --min-size 50k --delete-excluded sync A: B:
10240
10241 All files on B: which are less than 50 KiB are deleted because they are
10242 excluded from the rclone sync command.
10243
10244 --dump filters - dump the filters to the output
10245 Dumps the defined filters to standard output in regular expression for‐
10246 mat.
10247
10248 Useful for debugging.
10249
10250 Exclude directory based on a file
10251 The --exclude-if-present flag controls whether a directory is within
10252 the scope of an rclone command based on the presence of a named file
10253 within it.
10254
10255 This flag has a priority over other filter flags.
10256
10257 E.g. for the following directory structure:
10258
10259 dir1/file1
10260 dir1/dir2/file2
10261 dir1/dir2/dir3/file3
10262 dir1/dir2/dir3/.ignore
10263
10264 The command rclone ls --exclude-if-present .ignore dir1 does not list
10265 dir3, file3 or .ignore.
10266
10267 --exclude-if-present can only be used once in an rclone command.
10268
10269 Common pitfalls
10270 The most frequent filter support issues on the rclone forum
10271 (https://forum.rclone.org/) are:
10272
10273 • Not using paths relative to the root of the remote
10274
10275 • Not using / to match from the root of a remote
10276
10277 • Not using ** to match the contents of a directory
10278
10280 Rclone can serve a web based GUI (graphical user interface). This is
10281 somewhat experimental at the moment so things may be subject to change.
10282
10283 Run this command in a terminal and rclone will download and then dis‐
10284 play the GUI in a web browser.
10285
10286 rclone rcd --rc-web-gui
10287
10288 This will produce logs like this and rclone needs to continue to run to
10289 serve the GUI:
10290
10291 2019/08/25 11:40:14 NOTICE: A new release for gui is present at https://github.com/rclone/rclone-webui-react/releases/download/v0.0.6/currentbuild.zip
10292 2019/08/25 11:40:14 NOTICE: Downloading webgui binary. Please wait. [Size: 3813937, Path : /home/USER/.cache/rclone/webgui/v0.0.6.zip]
10293 2019/08/25 11:40:16 NOTICE: Unzipping
10294 2019/08/25 11:40:16 NOTICE: Serving remote control on http://127.0.0.1:5572/
10295
10296 This assumes you are running rclone locally on your machine. It is
10297 possible to separate the rclone and the GUI - see below for details.
10298
10299 If you wish to check for updates then you can add --rc-web-gui-update
10300 to the command line.
10301
10302 If you find your GUI broken, you may force it to update by add
10303 --rc-web-gui-force-update.
10304
10305 By default, rclone will open your browser. Add
10306 --rc-web-gui-no-open-browser to disable this feature.
10307
10308 Using the GUI
10309 Once the GUI opens, you will be looking at the dashboard which has an
10310 overall overview.
10311
10312 On the left hand side you will see a series of view buttons you can
10313 click on:
10314
10315 • Dashboard - main overview
10316
10317 • Configs - examine and create new configurations
10318
10319 • Explorer - view, download and upload files to the cloud storage sys‐
10320 tems
10321
10322 • Backend - view or alter the backend config
10323
10324 • Log out
10325
10326 (More docs and walkthrough video to come!)
10327
10328 How it works
10329 When you run the rclone rcd --rc-web-gui this is what happens
10330
10331 • Rclone starts but only runs the remote control API ("rc").
10332
10333 • The API is bound to localhost with an auto generated username and
10334 password.
10335
10336 • If the API bundle is missing then rclone will download it.
10337
10338 • rclone will start serving the files from the API bundle over the same
10339 port as the API
10340
10341 • rclone will open the browser with a login_token so it can log
10342 straight in.
10343
10344 Advanced use
10345 The rclone rcd may use any of the flags documented on the rc page
10346 (https://rclone.org/rc/#supported-parameters).
10347
10348 The flag --rc-web-gui is shorthand for
10349
10350 • Download the web GUI if necessary
10351
10352 • Check we are using some authentication
10353
10354 • --rc-user gui
10355
10356 • --rc-pass <random password>
10357
10358 • --rc-serve
10359
10360 These flags can be overridden as desired.
10361
10362 See also the rclone rcd documentation (https://rclone.org/com‐
10363 mands/rclone_rcd/).
10364
10365 Example: Running a public GUI
10366 For example the GUI could be served on a public port over SSL using an
10367 htpasswd file using the following flags:
10368
10369 • --rc-web-gui
10370
10371 • --rc-addr :443
10372
10373 • --rc-htpasswd /path/to/htpasswd
10374
10375 • --rc-cert /path/to/ssl.crt
10376
10377 • --rc-key /path/to/ssl.key
10378
10379 Example: Running a GUI behind a proxy
10380 If you want to run the GUI behind a proxy at /rclone you could use
10381 these flags:
10382
10383 • --rc-web-gui
10384
10385 • --rc-baseurl rclone
10386
10387 • --rc-htpasswd /path/to/htpasswd
10388
10389 Or instead of htpasswd if you just want a single user and password:
10390
10391 • --rc-user me
10392
10393 • --rc-pass mypassword
10394
10395 Project
10396 The GUI is being developed in the: rclone/rclone-webui-react repository
10397 (https://github.com/rclone/rclone-webui-react).
10398
10399 Bug reports and contributions are very welcome :-)
10400
10401 If you have questions then please ask them on the rclone forum
10402 (https://forum.rclone.org/).
10403
10405 If rclone is run with the --rc flag then it starts an HTTP server which
10406 can be used to remote control rclone using its API.
10407
10408 You can either use the rclone rc command to access the API or use HTTP
10409 directly.
10410
10411 If you just want to run a remote control then see the rcd command
10412 (https://rclone.org/commands/rclone_rcd/).
10413
10414 Supported parameters
10415 --rc
10416 Flag to start the http server listen on remote requests
10417
10418 --rc-addr=IP
10419 IPaddress:Port or :Port to bind server to. (default "localhost:5572")
10420
10421 --rc-cert=KEY
10422 SSL PEM key (concatenation of certificate and CA certificate)
10423
10424 --rc-client-ca=PATH
10425 Client certificate authority to verify clients with
10426
10427 --rc-htpasswd=PATH
10428 htpasswd file - if not provided no authentication is done
10429
10430 --rc-key=PATH
10431 SSL PEM Private key
10432
10433 --rc-max-header-bytes=VALUE
10434 Maximum size of request header (default 4096)
10435
10436 --rc-user=VALUE
10437 User name for authentication.
10438
10439 --rc-pass=VALUE
10440 Password for authentication.
10441
10442 --rc-realm=VALUE
10443 Realm for authentication (default "rclone")
10444
10445 --rc-server-read-timeout=DURATION
10446 Timeout for server reading data (default 1h0m0s)
10447
10448 --rc-server-write-timeout=DURATION
10449 Timeout for server writing data (default 1h0m0s)
10450
10451 --rc-serve
10452 Enable the serving of remote objects via the HTTP interface. This
10453 means objects will be accessible at http://127.0.0.1:5572/ by default,
10454 so you can browse to http://127.0.0.1:5572/ or http://127.0.0.1:5572/*
10455 to see a listing of the remotes. Objects may be requested from remotes
10456 using this syntax http://127.0.0.1:5572/[remote:path]/path/to/object
10457
10458 Default Off.
10459
10460 --rc-files /path/to/directory
10461 Path to local files to serve on the HTTP server.
10462
10463 If this is set then rclone will serve the files in that directory. It
10464 will also open the root in the web browser if specified. This is for
10465 implementing browser based GUIs for rclone functions.
10466
10467 If --rc-user or --rc-pass is set then the URL that is opened will have
10468 the authorization in the URL in the http://user:pass@localhost/ style.
10469
10470 Default Off.
10471
10472 --rc-enable-metrics
10473 Enable OpenMetrics/Prometheus compatible endpoint at /metrics.
10474
10475 Default Off.
10476
10477 --rc-web-gui
10478 Set this flag to serve the default web gui on the same port as rclone.
10479
10480 Default Off.
10481
10482 --rc-allow-origin
10483 Set the allowed Access-Control-Allow-Origin for rc requests.
10484
10485 Can be used with --rc-web-gui if the rclone is running on different IP
10486 than the web-gui.
10487
10488 Default is IP address on which rc is running.
10489
10490 --rc-web-fetch-url
10491 Set the URL to fetch the rclone-web-gui files from.
10492
10493 Default https://api.github.com/repos/rclone/rclone-webui-react/releas‐
10494 es/latest.
10495
10496 --rc-web-gui-update
10497 Set this flag to check and update rclone-webui-react from the
10498 rc-web-fetch-url.
10499
10500 Default Off.
10501
10502 --rc-web-gui-force-update
10503 Set this flag to force update rclone-webui-react from the
10504 rc-web-fetch-url.
10505
10506 Default Off.
10507
10508 --rc-web-gui-no-open-browser
10509 Set this flag to disable opening browser automatically when using
10510 web-gui.
10511
10512 Default Off.
10513
10514 --rc-job-expire-duration=DURATION
10515 Expire finished async jobs older than DURATION (default 60s).
10516
10517 --rc-job-expire-interval=DURATION
10518 Interval duration to check for expired async jobs (default 10s).
10519
10520 --rc-no-auth
10521 By default rclone will require authorisation to have been set up on the
10522 rc interface in order to use any methods which access any rclone re‐
10523 motes. Eg operations/list is denied as it involved creating a remote
10524 as is sync/copy.
10525
10526 If this is set then no authorisation will be required on the server to
10527 use these methods. The alternative is to use --rc-user and --rc-pass
10528 and use these credentials in the request.
10529
10530 Default Off.
10531
10532 Accessing the remote control via the rclone rc command
10533 Rclone itself implements the remote control protocol in its rclone rc
10534 command.
10535
10536 You can use it like this
10537
10538 $ rclone rc rc/noop param1=one param2=two
10539 {
10540 "param1": "one",
10541 "param2": "two"
10542 }
10543
10544 Run rclone rc on its own to see the help for the installed remote con‐
10545 trol commands.
10546
10547 JSON input
10548 rclone rc also supports a --json flag which can be used to send more
10549 complicated input parameters.
10550
10551 $ rclone rc --json '{ "p1": [1,"2",null,4], "p2": { "a":1, "b":2 } }' rc/noop
10552 {
10553 "p1": [
10554 1,
10555 "2",
10556 null,
10557 4
10558 ],
10559 "p2": {
10560 "a": 1,
10561 "b": 2
10562 }
10563 }
10564
10565 If the parameter being passed is an object then it can be passed as a
10566 JSON string rather than using the --json flag which simplifies the com‐
10567 mand line.
10568
10569 rclone rc operations/list fs=/tmp remote=test opt='{"showHash": true}'
10570
10571 Rather than
10572
10573 rclone rc operations/list --json '{"fs": "/tmp", "remote": "test", "opt": {"showHash": true}}'
10574
10575 Special parameters
10576 The rc interface supports some special parameters which apply to all
10577 commands. These start with _ to show they are different.
10578
10579 Running asynchronous jobs with _async = true
10580 Each rc call is classified as a job and it is assigned its own id. By
10581 default jobs are executed immediately as they are created or syn‐
10582 chronously.
10583
10584 If _async has a true value when supplied to an rc call then it will re‐
10585 turn immediately with a job id and the task will be run in the back‐
10586 ground. The job/status call can be used to get information of the
10587 background job. The job can be queried for up to 1 minute after it has
10588 finished.
10589
10590 It is recommended that potentially long running jobs, e.g. sync/sync,
10591 sync/copy, sync/move, operations/purge are run with the _async flag to
10592 avoid any potential problems with the HTTP request and response timing
10593 out.
10594
10595 Starting a job with the _async flag:
10596
10597 $ rclone rc --json '{ "p1": [1,"2",null,4], "p2": { "a":1, "b":2 }, "_async": true }' rc/noop
10598 {
10599 "jobid": 2
10600 }
10601
10602 Query the status to see if the job has finished. For more information
10603 on the meaning of these return parameters see the job/status call.
10604
10605 $ rclone rc --json '{ "jobid":2 }' job/status
10606 {
10607 "duration": 0.000124163,
10608 "endTime": "2018-10-27T11:38:07.911245881+01:00",
10609 "error": "",
10610 "finished": true,
10611 "id": 2,
10612 "output": {
10613 "_async": true,
10614 "p1": [
10615 1,
10616 "2",
10617 null,
10618 4
10619 ],
10620 "p2": {
10621 "a": 1,
10622 "b": 2
10623 }
10624 },
10625 "startTime": "2018-10-27T11:38:07.911121728+01:00",
10626 "success": true
10627 }
10628
10629 job/list can be used to show the running or recently completed jobs
10630
10631 $ rclone rc job/list
10632 {
10633 "jobids": [
10634 2
10635 ]
10636 }
10637
10638 Setting config flags with _config
10639 If you wish to set config (the equivalent of the global flags) for the
10640 duration of an rc call only then pass in the _config parameter.
10641
10642 This should be in the same format as the config key returned by op‐
10643 tions/get.
10644
10645 For example, if you wished to run a sync with the --checksum parameter,
10646 you would pass this parameter in your JSON blob.
10647
10648 "_config":{"CheckSum": true}
10649
10650 If using rclone rc this could be passed as
10651
10652 rclone rc operations/sync ... _config='{"CheckSum": true}'
10653
10654 Any config parameters you don't set will inherit the global defaults
10655 which were set with command line flags or environment variables.
10656
10657 Note that it is possible to set some values as strings or integers -
10658 see data types (/#data-types) for more info. Here is an example set‐
10659 ting the equivalent of --buffer-size in string or integer format.
10660
10661 "_config":{"BufferSize": "42M"}
10662 "_config":{"BufferSize": 44040192}
10663
10664 If you wish to check the _config assignment has worked properly then
10665 calling options/local will show what the value got set to.
10666
10667 Setting filter flags with _filter
10668 If you wish to set filters for the duration of an rc call only then
10669 pass in the _filter parameter.
10670
10671 This should be in the same format as the filter key returned by op‐
10672 tions/get.
10673
10674 For example, if you wished to run a sync with these flags
10675
10676 --max-size 1M --max-age 42s --include "a" --include "b"
10677
10678 you would pass this parameter in your JSON blob.
10679
10680 "_filter":{"MaxSize":"1M", "IncludeRule":["a","b"], "MaxAge":"42s"}
10681
10682 If using rclone rc this could be passed as
10683
10684 rclone rc ... _filter='{"MaxSize":"1M", "IncludeRule":["a","b"], "MaxAge":"42s"}'
10685
10686 Any filter parameters you don't set will inherit the global defaults
10687 which were set with command line flags or environment variables.
10688
10689 Note that it is possible to set some values as strings or integers -
10690 see data types (/#data-types) for more info. Here is an example set‐
10691 ting the equivalent of --buffer-size in string or integer format.
10692
10693 "_filter":{"MinSize": "42M"}
10694 "_filter":{"MinSize": 44040192}
10695
10696 If you wish to check the _filter assignment has worked properly then
10697 calling options/local will show what the value got set to.
10698
10699 Assigning operations to groups with _group = value
10700 Each rc call has its own stats group for tracking its metrics. By de‐
10701 fault grouping is done by the composite group name from prefix job/ and
10702 id of the job like so job/1.
10703
10704 If _group has a value then stats for that request will be grouped under
10705 that value. This allows caller to group stats under their own name.
10706
10707 Stats for specific group can be accessed by passing group to
10708 core/stats:
10709
10710 $ rclone rc --json '{ "group": "job/1" }' core/stats
10711 {
10712 "speed": 12345
10713 ...
10714 }
10715
10716 Data types
10717 When the API returns types, these will mostly be straight forward inte‐
10718 ger, string or boolean types.
10719
10720 However some of the types returned by the options/get call and taken by
10721 the options/set calls as well as the vfsOpt, mountOpt and the _config
10722 parameters.
10723
10724 • Duration - these are returned as an integer duration in nanoseconds.
10725 They may be set as an integer, or they may be set with time string,
10726 eg "5s". See the options section (https://rclone.org/docs/#options)
10727 for more info.
10728
10729 • Size - these are returned as an integer number of bytes. They may be
10730 set as an integer or they may be set with a size suffix string, eg
10731 "10M". See the options section (https://rclone.org/docs/#options)
10732 for more info.
10733
10734 • Enumerated type (such as CutoffMode, DumpFlags, LogLevel, Vfs‐
10735 CacheMode - these will be returned as an integer and may be set as an
10736 integer but more conveniently they can be set as a string, eg "HARD"
10737 for CutoffMode or DEBUG for LogLevel.
10738
10739 • BandwidthSpec - this will be set and returned as a string, eg "1M".
10740
10741 Specifying remotes to work on
10742 Remotes are specified with the fs=, srcFs=, dstFs= parameters depending
10743 on the command being used.
10744
10745 The parameters can be a string as per the rest of rclone, eg s3:buck‐
10746 et/path or :sftp:/my/dir. They can also be specified as JSON blobs.
10747
10748 If specifyng a JSON blob it should be a object mapping strings to
10749 strings. These values will be used to configure the remote. There are
10750 3 special values which may be set:
10751
10752 • type - set to type to specify a remote called :type:
10753
10754 • _name - set to name to specify a remote called name:
10755
10756 • _root - sets the root of the remote - may be empty
10757
10758 One of _name or type should normally be set. If the local backend is
10759 desired then type should be set to local. If _root isn't specified
10760 then it defaults to the root of the remote.
10761
10762 For example this JSON is equivalent to remote:/tmp
10763
10764 {
10765 "_name": "remote",
10766 "_path": "/tmp"
10767 }
10768
10769 And this is equivalent to :sftp,host='example.com':/tmp
10770
10771 {
10772 "type": "sftp",
10773 "host": "example.com",
10774 "_path": "/tmp"
10775 }
10776
10777 And this is equivalent to /tmp/dir
10778
10779 {
10780 type = "local",
10781 _ path = "/tmp/dir"
10782 }
10783
10784 Supported commands
10785 backend/command: Runs a backend command.
10786 This takes the following parameters:
10787
10788 • command - a string with the command name
10789
10790 • fs - a remote name string e.g. "drive:"
10791
10792 • arg - a list of arguments for the backend command
10793
10794 • opt - a map of string to string of options
10795
10796 Returns:
10797
10798 • result - result from the backend command
10799
10800 Example:
10801
10802 rclone rc backend/command command=noop fs=. -o echo=yes -o blue -a path1 -a path2
10803
10804 Returns
10805
10806 {
10807 "result": {
10808 "arg": [
10809 "path1",
10810 "path2"
10811 ],
10812 "name": "noop",
10813 "opt": {
10814 "blue": "",
10815 "echo": "yes"
10816 }
10817 }
10818 }
10819
10820 Note that this is the direct equivalent of using this "backend" com‐
10821 mand:
10822
10823 rclone backend noop . -o echo=yes -o blue path1 path2
10824
10825 Note that arguments must be preceded by the "-a" flag
10826
10827 See the backend (https://rclone.org/commands/rclone_backend/) command
10828 for more information.
10829
10830 Authentication is required for this call.
10831
10832 cache/expire: Purge a remote from cache
10833 Purge a remote from the cache backend. Supports either a directory or
10834 a file. Params: - remote = path to remote (required) - withData =
10835 true/false to delete cached data (chunks) as well (optional)
10836
10837 Eg
10838
10839 rclone rc cache/expire remote=path/to/sub/folder/
10840 rclone rc cache/expire remote=/ withData=true
10841
10842 cache/fetch: Fetch file chunks
10843 Ensure the specified file chunks are cached on disk.
10844
10845 The chunks= parameter specifies the file chunks to check. It takes a
10846 comma separated list of array slice indices. The slice indices are
10847 similar to Python slices: start[:end]
10848
10849 start is the 0 based chunk number from the beginning of the file to
10850 fetch inclusive. end is 0 based chunk number from the beginning of the
10851 file to fetch exclusive. Both values can be negative, in which case
10852 they count from the back of the file. The value "-5:" represents the
10853 last 5 chunks of a file.
10854
10855 Some valid examples are: ":5,-5:" -> the first and last five chunks
10856 "0,-2" -> the first and the second last chunk "0:10" -> the first ten
10857 chunks
10858
10859 Any parameter with a key that starts with "file" can be used to specify
10860 files to fetch, e.g.
10861
10862 rclone rc cache/fetch chunks=0 file=hello file2=home/goodbye
10863
10864 File names will automatically be encrypted when the a crypt remote is
10865 used on top of the cache.
10866
10867 cache/stats: Get cache stats
10868 Show statistics for the cache remote.
10869
10870 config/create: create the config for a remote.
10871 This takes the following parameters:
10872
10873 • name - name of remote
10874
10875 • parameters - a map of { "key": "value" } pairs
10876
10877 • type - type of the new remote
10878
10879 • opt - a dictionary of options to control the configuration
10880
10881 • obscure - declare passwords are plain and need obscuring
10882
10883 • noObscure - declare passwords are already obscured and don't need
10884 obscuring
10885
10886 • nonInteractive - don't interact with a user, return questions
10887
10888 • continue - continue the config process with an answer
10889
10890 • all - ask all the config questions not just the post config ones
10891
10892 • state - state to restart with - used with continue
10893
10894 • result - result to restart with - used with continue
10895
10896 See the config create command (https://rclone.org/commands/rclone_con‐
10897 fig_create/) command for more information on the above.
10898
10899 Authentication is required for this call.
10900
10901 config/delete: Delete a remote in the config file.
10902 Parameters:
10903
10904 • name - name of remote to delete
10905
10906 See the config delete command (https://rclone.org/commands/rclone_con‐
10907 fig_delete/) command for more information on the above.
10908
10909 Authentication is required for this call.
10910
10911 config/dump: Dumps the config file.
10912 Returns a JSON object: - key: value
10913
10914 Where keys are remote names and values are the config parameters.
10915
10916 See the config dump command (https://rclone.org/commands/rclone_con‐
10917 fig_dump/) command for more information on the above.
10918
10919 Authentication is required for this call.
10920
10921 config/get: Get a remote in the config file.
10922 Parameters:
10923
10924 • name - name of remote to get
10925
10926 See the config dump command (https://rclone.org/commands/rclone_con‐
10927 fig_dump/) command for more information on the above.
10928
10929 Authentication is required for this call.
10930
10931 config/listremotes: Lists the remotes in the config file.
10932 Returns - remotes - array of remote names
10933
10934 See the listremotes command (https://rclone.org/com‐
10935 mands/rclone_listremotes/) command for more information on the above.
10936
10937 Authentication is required for this call.
10938
10939 config/password: password the config for a remote.
10940 This takes the following parameters:
10941
10942 • name - name of remote
10943
10944 • parameters - a map of { "key": "value" } pairs
10945
10946 See the config password command (https://rclone.org/com‐
10947 mands/rclone_config_password/) command for more information on the
10948 above.
10949
10950 Authentication is required for this call.
10951
10952 config/providers: Shows how providers are configured in the config file.
10953 Returns a JSON object: - providers - array of objects
10954
10955 See the config providers command (https://rclone.org/com‐
10956 mands/rclone_config_providers/) command for more information on the
10957 above.
10958
10959 Authentication is required for this call.
10960
10961 config/update: update the config for a remote.
10962 This takes the following parameters:
10963
10964 • name - name of remote
10965
10966 • parameters - a map of { "key": "value" } pairs
10967
10968 • opt - a dictionary of options to control the configuration
10969
10970 • obscure - declare passwords are plain and need obscuring
10971
10972 • noObscure - declare passwords are already obscured and don't need
10973 obscuring
10974
10975 • nonInteractive - don't interact with a user, return questions
10976
10977 • continue - continue the config process with an answer
10978
10979 • all - ask all the config questions not just the post config ones
10980
10981 • state - state to restart with - used with continue
10982
10983 • result - result to restart with - used with continue
10984
10985 See the config update command (https://rclone.org/commands/rclone_con‐
10986 fig_update/) command for more information on the above.
10987
10988 Authentication is required for this call.
10989
10990 core/bwlimit: Set the bandwidth limit.
10991 This sets the bandwidth limit to the string passed in. This should be
10992 a single bandwidth limit entry or a pair of upload:download bandwidth.
10993
10994 Eg
10995
10996 rclone rc core/bwlimit rate=off
10997 {
10998 "bytesPerSecond": -1,
10999 "bytesPerSecondTx": -1,
11000 "bytesPerSecondRx": -1,
11001 "rate": "off"
11002 }
11003 rclone rc core/bwlimit rate=1M
11004 {
11005 "bytesPerSecond": 1048576,
11006 "bytesPerSecondTx": 1048576,
11007 "bytesPerSecondRx": 1048576,
11008 "rate": "1M"
11009 }
11010 rclone rc core/bwlimit rate=1M:100k
11011 {
11012 "bytesPerSecond": 1048576,
11013 "bytesPerSecondTx": 1048576,
11014 "bytesPerSecondRx": 131072,
11015 "rate": "1M"
11016 }
11017
11018 If the rate parameter is not supplied then the bandwidth is queried
11019
11020 rclone rc core/bwlimit
11021 {
11022 "bytesPerSecond": 1048576,
11023 "bytesPerSecondTx": 1048576,
11024 "bytesPerSecondRx": 1048576,
11025 "rate": "1M"
11026 }
11027
11028 The format of the parameter is exactly the same as passed to --bwlimit
11029 except only one bandwidth may be specified.
11030
11031 In either case "rate" is returned as a human readable string, and
11032 "bytesPerSecond" is returned as a number.
11033
11034 core/command: Run a rclone terminal command over rc.
11035 This takes the following parameters:
11036
11037 • command - a string with the command name.
11038
11039 • arg - a list of arguments for the backend command.
11040
11041 • opt - a map of string to string of options.
11042
11043 • returnType - one of ("COMBINED_OUTPUT", "STREAM", "STREAM_ONLY_STD‐
11044 OUT", "STREAM_ONLY_STDERR").
11045
11046 • Defaults to "COMBINED_OUTPUT" if not set.
11047
11048 • The STREAM returnTypes will write the output to the body of the
11049 HTTP message.
11050
11051 • The COMBINED_OUTPUT will write the output to the "result" parame‐
11052 ter.
11053
11054 Returns:
11055
11056 • result - result from the backend command.
11057
11058 • Only set when using returnType "COMBINED_OUTPUT".
11059
11060 • error - set if rclone exits with an error code.
11061
11062 • returnType - one of ("COMBINED_OUTPUT", "STREAM", "STREAM_ONLY_STD‐
11063 OUT", "STREAM_ONLY_STDERR").
11064
11065 Example:
11066
11067 rclone rc core/command command=ls -a mydrive:/ -o max-depth=1
11068 rclone rc core/command -a ls -a mydrive:/ -o max-depth=1
11069
11070 Returns:
11071
11072 {
11073 "error": false,
11074 "result": "<Raw command line output>"
11075 }
11076
11077 OR
11078 {
11079 "error": true,
11080 "result": "<Raw command line output>"
11081 }
11082
11083 Authentication is required for this call.
11084
11085 core/gc: Runs a garbage collection.
11086 This tells the go runtime to do a garbage collection run. It isn't
11087 necessary to call this normally, but it can be useful for debugging
11088 memory problems.
11089
11090 core/group-list: Returns list of stats.
11091 This returns list of stats groups currently in memory.
11092
11093 Returns the following values:
11094
11095 {
11096 "groups": an array of group names:
11097 [
11098 "group1",
11099 "group2",
11100 ...
11101 ]
11102 }
11103
11104 core/memstats: Returns the memory statistics
11105 This returns the memory statistics of the running program. What the
11106 values mean are explained in the go docs: https://golang.org/pkg/run‐
11107 time/#MemStats
11108
11109 The most interesting values for most people are:
11110
11111 • HeapAlloc - this is the amount of memory rclone is actually using
11112
11113 • HeapSys - this is the amount of memory rclone has obtained from the
11114 OS
11115
11116 • Sys - this is the total amount of memory requested from the OS
11117
11118 • It is virtual memory so may include unused memory
11119
11120 core/obscure: Obscures a string passed in.
11121 Pass a clear string and rclone will obscure it for the config file: -
11122 clear - string
11123
11124 Returns: - obscured - string
11125
11126 core/pid: Return PID of current process
11127 This returns PID of current process. Useful for stopping rclone
11128 process.
11129
11130 core/quit: Terminates the app.
11131 (Optional) Pass an exit code to be used for terminating the app: - ex‐
11132 itCode - int
11133
11134 core/stats: Returns stats about current transfers.
11135 This returns all available stats:
11136
11137 rclone rc core/stats
11138
11139 If group is not provided then summed up stats for all groups will be
11140 returned.
11141
11142 Parameters
11143
11144 • group - name of the stats group (string)
11145
11146 Returns the following values:
11147
11148 {
11149 "bytes": total transferred bytes since the start of the group,
11150 "checks": number of files checked,
11151 "deletes" : number of files deleted,
11152 "elapsedTime": time in floating point seconds since rclone was started,
11153 "errors": number of errors,
11154 "eta": estimated time in seconds until the group completes,
11155 "fatalError": boolean whether there has been at least one fatal error,
11156 "lastError": last error string,
11157 "renames" : number of files renamed,
11158 "retryError": boolean showing whether there has been at least one non-NoRetryError,
11159 "speed": average speed in bytes per second since start of the group,
11160 "totalBytes": total number of bytes in the group,
11161 "totalChecks": total number of checks in the group,
11162 "totalTransfers": total number of transfers in the group,
11163 "transferTime" : total time spent on running jobs,
11164 "transfers": number of transferred files,
11165 "transferring": an array of currently active file transfers:
11166 [
11167 {
11168 "bytes": total transferred bytes for this file,
11169 "eta": estimated time in seconds until file transfer completion
11170 "name": name of the file,
11171 "percentage": progress of the file transfer in percent,
11172 "speed": average speed over the whole transfer in bytes per second,
11173 "speedAvg": current speed in bytes per second as an exponentially weighted moving average,
11174 "size": size of the file in bytes
11175 }
11176 ],
11177 "checking": an array of names of currently active file checks
11178 []
11179 }
11180
11181 Values for "transferring", "checking" and "lastError" are only assigned
11182 if data is available. The value for "eta" is null if an eta cannot be
11183 determined.
11184
11185 core/stats-delete: Delete stats group.
11186 This deletes entire stats group.
11187
11188 Parameters
11189
11190 • group - name of the stats group (string)
11191
11192 core/stats-reset: Reset stats.
11193 This clears counters, errors and finished transfers for all stats or
11194 specific stats group if group is provided.
11195
11196 Parameters
11197
11198 • group - name of the stats group (string)
11199
11200 core/transferred: Returns stats about completed transfers.
11201 This returns stats about completed transfers:
11202
11203 rclone rc core/transferred
11204
11205 If group is not provided then completed transfers for all groups will
11206 be returned.
11207
11208 Note only the last 100 completed transfers are returned.
11209
11210 Parameters
11211
11212 • group - name of the stats group (string)
11213
11214 Returns the following values:
11215
11216 {
11217 "transferred": an array of completed transfers (including failed ones):
11218 [
11219 {
11220 "name": name of the file,
11221 "size": size of the file in bytes,
11222 "bytes": total transferred bytes for this file,
11223 "checked": if the transfer is only checked (skipped, deleted),
11224 "timestamp": integer representing millisecond unix epoch,
11225 "error": string description of the error (empty if successful),
11226 "jobid": id of the job that this transfer belongs to
11227 }
11228 ]
11229 }
11230
11231 core/version: Shows the current version of rclone and the go runtime.
11232 This shows the current version of go and the go runtime:
11233
11234 • version - rclone version, e.g. "v1.53.0"
11235
11236 • decomposed - version number as [major, minor, patch]
11237
11238 • isGit - boolean - true if this was compiled from the git version
11239
11240 • isBeta - boolean - true if this is a beta version
11241
11242 • os - OS in use as according to Go
11243
11244 • arch - cpu architecture in use according to Go
11245
11246 • goVersion - version of Go runtime in use
11247
11248 • linking - type of rclone executable (static or dynamic)
11249
11250 • goTags - space separated build tags or "none"
11251
11252 debug/set-block-profile-rate: Set runtime.SetBlockProfileRate for blocking
11253 profiling.
11254 SetBlockProfileRate controls the fraction of goroutine blocking events
11255 that are reported in the blocking profile. The profiler aims to sample
11256 an average of one blocking event per rate nanoseconds spent blocked.
11257
11258 To include every blocking event in the profile, pass rate = 1. To turn
11259 off profiling entirely, pass rate <= 0.
11260
11261 After calling this you can use this to see the blocking profile:
11262
11263 go tool pprof http://localhost:5572/debug/pprof/block
11264
11265 Parameters:
11266
11267 • rate - int
11268
11269 debug/set-mutex-profile-fraction: Set runtime.SetMutexProfileFraction for
11270 mutex profiling.
11271 SetMutexProfileFraction controls the fraction of mutex contention
11272 events that are reported in the mutex profile. On average 1/rate
11273 events are reported. The previous rate is returned.
11274
11275 To turn off profiling entirely, pass rate 0. To just read the current
11276 rate, pass rate < 0. (For n>1 the details of sampling may change.)
11277
11278 Once this is set you can look use this to profile the mutex contention:
11279
11280 go tool pprof http://localhost:5572/debug/pprof/mutex
11281
11282 Parameters:
11283
11284 • rate - int
11285
11286 Results:
11287
11288 • previousRate - int
11289
11290 fscache/clear: Clear the Fs cache.
11291 This clears the fs cache. This is where remotes created from backends
11292 are cached for a short while to make repeated rc calls more efficient.
11293
11294 If you change the parameters of a backend then you may want to call
11295 this to clear an existing remote out of the cache before re-creating
11296 it.
11297
11298 Authentication is required for this call.
11299
11300 fscache/entries: Returns the number of entries in the fs cache.
11301 This returns the number of entries in the fs cache.
11302
11303 Returns - entries - number of items in the cache
11304
11305 Authentication is required for this call.
11306
11307 job/list: Lists the IDs of the running jobs
11308 Parameters: None.
11309
11310 Results:
11311
11312 • jobids - array of integer job ids.
11313
11314 job/status: Reads the status of the job ID
11315 Parameters:
11316
11317 • jobid - id of the job (integer).
11318
11319 Results:
11320
11321 • finished - boolean
11322
11323 • duration - time in seconds that the job ran for
11324
11325 • endTime - time the job finished (e.g.
11326 "2018-10-26T18:50:20.528746884+01:00")
11327
11328 • error - error from the job or empty string for no error
11329
11330 • finished - boolean whether the job has finished or not
11331
11332 • id - as passed in above
11333
11334 • startTime - time the job started (e.g.
11335 "2018-10-26T18:50:20.528336039+01:00")
11336
11337 • success - boolean - true for success false otherwise
11338
11339 • output - output of the job as would have been returned if called syn‐
11340 chronously
11341
11342 • progress - output of the progress related to the underlying job
11343
11344 job/stop: Stop the running job
11345 Parameters:
11346
11347 • jobid - id of the job (integer).
11348
11349 mount/listmounts: Show current mount points
11350 This shows currently mounted points, which can be used for performing
11351 an unmount.
11352
11353 This takes no parameters and returns
11354
11355 • mountPoints: list of current mount points
11356
11357 Eg
11358
11359 rclone rc mount/listmounts
11360
11361 Authentication is required for this call.
11362
11363 mount/mount: Create a new mount point
11364 rclone allows Linux, FreeBSD, macOS and Windows to mount any of
11365 Rclone's cloud storage systems as a file system with FUSE.
11366
11367 If no mountType is provided, the priority is given as follows: 1.
11368 mount 2.cmount 3.mount2
11369
11370 This takes the following parameters:
11371
11372 • fs - a remote path to be mounted (required)
11373
11374 • mountPoint: valid path on the local machine (required)
11375
11376 • mountType: one of the values (mount, cmount, mount2) specifies the
11377 mount implementation to use
11378
11379 • mountOpt: a JSON object with Mount options in.
11380
11381 • vfsOpt: a JSON object with VFS options in.
11382
11383 Example:
11384
11385 rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint
11386 rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint mountType=mount
11387 rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"CacheMode": 2}' mountOpt='{"AllowOther": true}'
11388
11389 The vfsOpt are as described in options/get and can be seen in the the
11390 "vfs" section when running and the mountOpt can be seen in the "mount"
11391 section:
11392
11393 rclone rc options/get
11394
11395 Authentication is required for this call.
11396
11397 mount/types: Show all possible mount types
11398 This shows all possible mount types and returns them as a list.
11399
11400 This takes no parameters and returns
11401
11402 • mountTypes: list of mount types
11403
11404 The mount types are strings like "mount", "mount2", "cmount" and can be
11405 passed to mount/mount as the mountType parameter.
11406
11407 Eg
11408
11409 rclone rc mount/types
11410
11411 Authentication is required for this call.
11412
11413 mount/unmount: Unmount selected active mount
11414 rclone allows Linux, FreeBSD, macOS and Windows to mount any of
11415 Rclone's cloud storage systems as a file system with FUSE.
11416
11417 This takes the following parameters:
11418
11419 • mountPoint: valid path on the local machine where the mount was cre‐
11420 ated (required)
11421
11422 Example:
11423
11424 rclone rc mount/unmount mountPoint=/home/<user>/mountPoint
11425
11426 Authentication is required for this call.
11427
11428 mount/unmountall: Show current mount points
11429 This shows currently mounted points, which can be used for performing
11430 an unmount.
11431
11432 This takes no parameters and returns error if unmount does not succeed.
11433
11434 Eg
11435
11436 rclone rc mount/unmountall
11437
11438 Authentication is required for this call.
11439
11440 operations/about: Return the space used on the remote
11441 This takes the following parameters:
11442
11443 • fs - a remote name string e.g. "drive:"
11444
11445 The result is as returned from rclone about --json
11446
11447 See the about command (https://rclone.org/commands/rclone_size/) com‐
11448 mand for more information on the above.
11449
11450 Authentication is required for this call.
11451
11452 operations/cleanup: Remove trashed files in the remote or path
11453 This takes the following parameters:
11454
11455 • fs - a remote name string e.g. "drive:"
11456
11457 See the cleanup command (https://rclone.org/commands/rclone_cleanup/)
11458 command for more information on the above.
11459
11460 Authentication is required for this call.
11461
11462 operations/copyfile: Copy a file from source remote to destination remote
11463 This takes the following parameters:
11464
11465 • srcFs - a remote name string e.g. "drive:" for the source
11466
11467 • srcRemote - a path within that remote e.g. "file.txt" for the source
11468
11469 • dstFs - a remote name string e.g. "drive2:" for the destination
11470
11471 • dstRemote - a path within that remote e.g. "file2.txt" for the des‐
11472 tination
11473
11474 Authentication is required for this call.
11475
11476 operations/copyurl: Copy the URL to the object
11477 This takes the following parameters:
11478
11479 • fs - a remote name string e.g. "drive:"
11480
11481 • remote - a path within that remote e.g. "dir"
11482
11483 • url - string, URL to read from
11484
11485 • autoFilename - boolean, set to true to retrieve destination file name
11486 from url See the copyurl command (https://rclone.org/com‐
11487 mands/rclone_copyurl/) command for more information on the above.
11488
11489 Authentication is required for this call.
11490
11491 operations/delete: Remove files in the path
11492 This takes the following parameters:
11493
11494 • fs - a remote name string e.g. "drive:"
11495
11496 See the delete command (https://rclone.org/commands/rclone_delete/)
11497 command for more information on the above.
11498
11499 Authentication is required for this call.
11500
11501 operations/deletefile: Remove the single file pointed to
11502 This takes the following parameters:
11503
11504 • fs - a remote name string e.g. "drive:"
11505
11506 • remote - a path within that remote e.g. "dir"
11507
11508 See the deletefile command (https://rclone.org/commands/rclone_delete‐
11509 file/) command for more information on the above.
11510
11511 Authentication is required for this call.
11512
11513 operations/fsinfo: Return information about the remote
11514 This takes the following parameters:
11515
11516 • fs - a remote name string e.g. "drive:"
11517
11518 This returns info about the remote passed in;
11519
11520 {
11521 // optional features and whether they are available or not
11522 "Features": {
11523 "About": true,
11524 "BucketBased": false,
11525 "CanHaveEmptyDirectories": true,
11526 "CaseInsensitive": false,
11527 "ChangeNotify": false,
11528 "CleanUp": false,
11529 "Copy": false,
11530 "DirCacheFlush": false,
11531 "DirMove": true,
11532 "DuplicateFiles": false,
11533 "GetTier": false,
11534 "ListR": false,
11535 "MergeDirs": false,
11536 "Move": true,
11537 "OpenWriterAt": true,
11538 "PublicLink": false,
11539 "Purge": true,
11540 "PutStream": true,
11541 "PutUnchecked": false,
11542 "ReadMimeType": false,
11543 "ServerSideAcrossConfigs": false,
11544 "SetTier": false,
11545 "SetWrapper": false,
11546 "UnWrap": false,
11547 "WrapFs": false,
11548 "WriteMimeType": false
11549 },
11550 // Names of hashes available
11551 "Hashes": [
11552 "MD5",
11553 "SHA-1",
11554 "DropboxHash",
11555 "QuickXorHash"
11556 ],
11557 "Name": "local", // Name as created
11558 "Precision": 1, // Precision of timestamps in ns
11559 "Root": "/", // Path as created
11560 "String": "Local file system at /" // how the remote will appear in logs
11561 }
11562
11563 This command does not have a command line equivalent so use this in‐
11564 stead:
11565
11566 rclone rc --loopback operations/fsinfo fs=remote:
11567
11568 operations/list: List the given remote and path in JSON format
11569 This takes the following parameters:
11570
11571 • fs - a remote name string e.g. "drive:"
11572
11573 • remote - a path within that remote e.g. "dir"
11574
11575 • opt - a dictionary of options to control the listing (optional)
11576
11577 • recurse - If set recurse directories
11578
11579 • noModTime - If set return modification time
11580
11581 • showEncrypted - If set show decrypted names
11582
11583 • showOrigIDs - If set show the IDs for each item if known
11584
11585 • showHash - If set return a dictionary of hashes
11586
11587 • noMimeType - If set don't show mime types
11588
11589 • dirsOnly - If set only show directories
11590
11591 • filesOnly - If set only show files
11592
11593 • hashTypes - array of strings of hash types to show if showHash set
11594
11595 Returns:
11596
11597 • list
11598
11599 • This is an array of objects as described in the lsjson command
11600
11601 See the lsjson command (https://rclone.org/commands/rclone_lsjson/) for
11602 more information on the above and examples.
11603
11604 Authentication is required for this call.
11605
11606 operations/mkdir: Make a destination directory or container
11607 This takes the following parameters:
11608
11609 • fs - a remote name string e.g. "drive:"
11610
11611 • remote - a path within that remote e.g. "dir"
11612
11613 See the mkdir command (https://rclone.org/commands/rclone_mkdir/) com‐
11614 mand for more information on the above.
11615
11616 Authentication is required for this call.
11617
11618 operations/movefile: Move a file from source remote to destination remote
11619 This takes the following parameters:
11620
11621 • srcFs - a remote name string e.g. "drive:" for the source
11622
11623 • srcRemote - a path within that remote e.g. "file.txt" for the source
11624
11625 • dstFs - a remote name string e.g. "drive2:" for the destination
11626
11627 • dstRemote - a path within that remote e.g. "file2.txt" for the des‐
11628 tination
11629
11630 Authentication is required for this call.
11631
11632 operations/publiclink: Create or retrieve a public link to the given file
11633 or folder.
11634 This takes the following parameters:
11635
11636 • fs - a remote name string e.g. "drive:"
11637
11638 • remote - a path within that remote e.g. "dir"
11639
11640 • unlink - boolean - if set removes the link rather than adding it (op‐
11641 tional)
11642
11643 • expire - string - the expiry time of the link e.g. "1d" (optional)
11644
11645 Returns:
11646
11647 • url - URL of the resource
11648
11649 See the link command (https://rclone.org/commands/rclone_link/) command
11650 for more information on the above.
11651
11652 Authentication is required for this call.
11653
11654 operations/purge: Remove a directory or container and all of its contents
11655 This takes the following parameters:
11656
11657 • fs - a remote name string e.g. "drive:"
11658
11659 • remote - a path within that remote e.g. "dir"
11660
11661 See the purge command (https://rclone.org/commands/rclone_purge/) com‐
11662 mand for more information on the above.
11663
11664 Authentication is required for this call.
11665
11666 operations/rmdir: Remove an empty directory or container
11667 This takes the following parameters:
11668
11669 • fs - a remote name string e.g. "drive:"
11670
11671 • remote - a path within that remote e.g. "dir"
11672
11673 See the rmdir command (https://rclone.org/commands/rclone_rmdir/) com‐
11674 mand for more information on the above.
11675
11676 Authentication is required for this call.
11677
11678 operations/rmdirs: Remove all the empty directories in the path
11679 This takes the following parameters:
11680
11681 • fs - a remote name string e.g. "drive:"
11682
11683 • remote - a path within that remote e.g. "dir"
11684
11685 • leaveRoot - boolean, set to true not to delete the root See the
11686 rmdirs command (https://rclone.org/commands/rclone_rmdirs/) command
11687 for more information on the above.
11688
11689 Authentication is required for this call.
11690
11691 operations/size: Count the number of bytes and files in remote
11692 This takes the following parameters:
11693
11694 • fs - a remote name string e.g. "drive:path/to/dir"
11695
11696 Returns:
11697
11698 • count - number of files
11699
11700 • bytes - number of bytes in those files
11701
11702 See the size command (https://rclone.org/commands/rclone_size/) command
11703 for more information on the above.
11704
11705 Authentication is required for this call.
11706
11707 operations/stat: Give information about the supplied file or directory
11708 This takes the following parameters
11709
11710 • fs - a remote name string eg "drive:"
11711
11712 • remote - a path within that remote eg "dir"
11713
11714 • opt - a dictionary of options to control the listing (optional)
11715
11716 • see operations/list for the options
11717
11718 The result is
11719
11720 • item - an object as described in the lsjson command. Will be null if
11721 not found.
11722
11723 Note that if you are only interested in files then it is much more ef‐
11724 ficient to set the filesOnly flag in the options.
11725
11726 See the lsjson command (https://rclone.org/commands/rclone_lsjson/) for
11727 more information on the above and examples.
11728
11729 Authentication is required for this call.
11730
11731 operations/uploadfile: Upload file using multiform/form-data
11732 This takes the following parameters:
11733
11734 • fs - a remote name string e.g. "drive:"
11735
11736 • remote - a path within that remote e.g. "dir"
11737
11738 • each part in body represents a file to be uploaded See the uploadfile
11739 command (https://rclone.org/commands/rclone_uploadfile/) command for
11740 more information on the above.
11741
11742 Authentication is required for this call.
11743
11744 options/blocks: List all the option blocks
11745 Returns: - options - a list of the options block names
11746
11747 options/get: Get all the global options
11748 Returns an object where keys are option block names and values are an
11749 object with the current option values in.
11750
11751 Note that these are the global options which are unaffected by use of
11752 the _config and _filter parameters. If you wish to read the parameters
11753 set in _config then use options/config and for _filter use options/fil‐
11754 ter.
11755
11756 This shows the internal names of the option within rclone which should
11757 map to the external options very easily with a few exceptions.
11758
11759 options/local: Get the currently active config for this call
11760 Returns an object with the keys "config" and "filter". The "config"
11761 key contains the local config and the "filter" key contains the local
11762 filters.
11763
11764 Note that these are the local options specific to this rc call. If
11765 _config was not supplied then they will be the global options. Like‐
11766 wise with "_filter".
11767
11768 This call is mostly useful for seeing if _config and _filter passing is
11769 working.
11770
11771 This shows the internal names of the option within rclone which should
11772 map to the external options very easily with a few exceptions.
11773
11774 options/set: Set an option
11775 Parameters:
11776
11777 • option block name containing an object with
11778
11779 • key: value
11780
11781 Repeated as often as required.
11782
11783 Only supply the options you wish to change. If an option is unknown it
11784 will be silently ignored. Not all options will have an effect when
11785 changed like this.
11786
11787 For example:
11788
11789 This sets DEBUG level logs (-vv) (these can be set by number or string)
11790
11791 rclone rc options/set --json '{"main": {"LogLevel": "DEBUG"}}'
11792 rclone rc options/set --json '{"main": {"LogLevel": 8}}'
11793
11794 And this sets INFO level logs (-v)
11795
11796 rclone rc options/set --json '{"main": {"LogLevel": "INFO"}}'
11797
11798 And this sets NOTICE level logs (normal without -v)
11799
11800 rclone rc options/set --json '{"main": {"LogLevel": "NOTICE"}}'
11801
11802 pluginsctl/addPlugin: Add a plugin using url
11803 Used for adding a plugin to the webgui.
11804
11805 This takes the following parameters:
11806
11807 • url - http url of the github repo where the plugin is hosted
11808 (http://github.com/rclone/rclone-webui-react).
11809
11810 Example:
11811
11812 rclone rc pluginsctl/addPlugin
11813
11814 Authentication is required for this call.
11815
11816 pluginsctl/getPluginsForType: Get plugins with type criteria
11817 This shows all possible plugins by a mime type.
11818
11819 This takes the following parameters:
11820
11821 • type - supported mime type by a loaded plugin e.g. (video/mp4, au‐
11822 dio/mp3).
11823
11824 • pluginType - filter plugins based on their type e.g. (DASHBOARD,
11825 FILE_HANDLER, TERMINAL).
11826
11827 Returns:
11828
11829 • loadedPlugins - list of current production plugins.
11830
11831 • testPlugins - list of temporarily loaded development plugins, usually
11832 running on a different server.
11833
11834 Example:
11835
11836 rclone rc pluginsctl/getPluginsForType type=video/mp4
11837
11838 Authentication is required for this call.
11839
11840 pluginsctl/listPlugins: Get the list of currently loaded plugins
11841 This allows you to get the currently enabled plugins and their details.
11842
11843 This takes no parameters and returns:
11844
11845 • loadedPlugins - list of current production plugins.
11846
11847 • testPlugins - list of temporarily loaded development plugins, usually
11848 running on a different server.
11849
11850 E.g.
11851
11852 rclone rc pluginsctl/listPlugins
11853
11854 Authentication is required for this call.
11855
11856 pluginsctl/listTestPlugins: Show currently loaded test plugins
11857 Allows listing of test plugins with the rclone.test set to true in
11858 package.json of the plugin.
11859
11860 This takes no parameters and returns:
11861
11862 • loadedTestPlugins - list of currently available test plugins.
11863
11864 E.g.
11865
11866 rclone rc pluginsctl/listTestPlugins
11867
11868 Authentication is required for this call.
11869
11870 pluginsctl/removePlugin: Remove a loaded plugin
11871 This allows you to remove a plugin using it's name.
11872
11873 This takes parameters:
11874
11875 • name - name of the plugin in the format author/plugin_name.
11876
11877 E.g.
11878
11879 rclone rc pluginsctl/removePlugin name=rclone/video-plugin
11880
11881 Authentication is required for this call.
11882
11883 pluginsctl/removeTestPlugin: Remove a test plugin
11884 This allows you to remove a plugin using it's name.
11885
11886 This takes the following parameters:
11887
11888 • name - name of the plugin in the format author/plugin_name.
11889
11890 Example:
11891
11892 rclone rc pluginsctl/removeTestPlugin name=rclone/rclone-webui-react
11893
11894 Authentication is required for this call.
11895
11896 rc/error: This returns an error
11897 This returns an error with the input as part of its error string. Use‐
11898 ful for testing error handling.
11899
11900 rc/list: List all the registered remote control commands
11901 This lists all the registered remote control commands as a JSON map in
11902 the commands response.
11903
11904 rc/noop: Echo the input to the output parameters
11905 This echoes the input parameters to the output parameters for testing
11906 purposes. It can be used to check that rclone is still alive and to
11907 check that parameter passing is working properly.
11908
11909 rc/noopauth: Echo the input to the output parameters requiring auth
11910 This echoes the input parameters to the output parameters for testing
11911 purposes. It can be used to check that rclone is still alive and to
11912 check that parameter passing is working properly.
11913
11914 Authentication is required for this call.
11915
11916 sync/copy: copy a directory from source remote to destination remote
11917 This takes the following parameters:
11918
11919 • srcFs - a remote name string e.g. "drive:src" for the source
11920
11921 • dstFs - a remote name string e.g. "drive:dst" for the destination
11922
11923 • createEmptySrcDirs - create empty src directories on destination if
11924 set
11925
11926 See the copy command (https://rclone.org/commands/rclone_copy/) command
11927 for more information on the above.
11928
11929 Authentication is required for this call.
11930
11931 sync/move: move a directory from source remote to destination remote
11932 This takes the following parameters:
11933
11934 • srcFs - a remote name string e.g. "drive:src" for the source
11935
11936 • dstFs - a remote name string e.g. "drive:dst" for the destination
11937
11938 • createEmptySrcDirs - create empty src directories on destination if
11939 set
11940
11941 • deleteEmptySrcDirs - delete empty src directories if set
11942
11943 See the move command (https://rclone.org/commands/rclone_move/) command
11944 for more information on the above.
11945
11946 Authentication is required for this call.
11947
11948 sync/sync: sync a directory from source remote to destination remote
11949 This takes the following parameters:
11950
11951 • srcFs - a remote name string e.g. "drive:src" for the source
11952
11953 • dstFs - a remote name string e.g. "drive:dst" for the destination
11954
11955 • createEmptySrcDirs - create empty src directories on destination if
11956 set
11957
11958 See the sync command (https://rclone.org/commands/rclone_sync/) command
11959 for more information on the above.
11960
11961 Authentication is required for this call.
11962
11963 vfs/forget: Forget files or directories in the directory cache.
11964 This forgets the paths in the directory cache causing them to be
11965 re-read from the remote when needed.
11966
11967 If no paths are passed in then it will forget all the paths in the di‐
11968 rectory cache.
11969
11970 rclone rc vfs/forget
11971
11972 Otherwise pass files or dirs in as file=path or dir=path. Any parame‐
11973 ter key starting with file will forget that file and any starting with
11974 dir will forget that dir, e.g.
11975
11976 rclone rc vfs/forget file=hello file2=goodbye dir=home/junk
11977
11978 This command takes an "fs" parameter. If this parameter is not sup‐
11979 plied and if there is only one VFS in use then that VFS will be used.
11980 If there is more than one VFS in use then the "fs" parameter must be
11981 supplied.
11982
11983 vfs/list: List active VFSes.
11984 This lists the active VFSes.
11985
11986 It returns a list under the key "vfses" where the values are the VFS
11987 names that could be passed to the other VFS commands in the "fs" param‐
11988 eter.
11989
11990 vfs/poll-interval: Get the status or update the value of the poll-interval
11991 option.
11992 Without any parameter given this returns the current status of the
11993 poll-interval setting.
11994
11995 When the interval=duration parameter is set, the poll-interval value is
11996 updated and the polling function is notified. Setting interval=0 dis‐
11997 ables poll-interval.
11998
11999 rclone rc vfs/poll-interval interval=5m
12000
12001 The timeout=duration parameter can be used to specify a time to wait
12002 for the current poll function to apply the new value. If timeout is
12003 less or equal 0, which is the default, wait indefinitely.
12004
12005 The new poll-interval value will only be active when the timeout is not
12006 reached.
12007
12008 If poll-interval is updated or disabled temporarily, some changes might
12009 not get picked up by the polling function, depending on the used re‐
12010 mote.
12011
12012 This command takes an "fs" parameter. If this parameter is not sup‐
12013 plied and if there is only one VFS in use then that VFS will be used.
12014 If there is more than one VFS in use then the "fs" parameter must be
12015 supplied.
12016
12017 vfs/refresh: Refresh the directory cache.
12018 This reads the directories for the specified paths and freshens the di‐
12019 rectory cache.
12020
12021 If no paths are passed in then it will refresh the root directory.
12022
12023 rclone rc vfs/refresh
12024
12025 Otherwise pass directories in as dir=path. Any parameter key starting
12026 with dir will refresh that directory, e.g.
12027
12028 rclone rc vfs/refresh dir=home/junk dir2=data/misc
12029
12030 If the parameter recursive=true is given the whole directory tree will
12031 get refreshed. This refresh will use --fast-list if enabled.
12032
12033 This command takes an "fs" parameter. If this parameter is not sup‐
12034 plied and if there is only one VFS in use then that VFS will be used.
12035 If there is more than one VFS in use then the "fs" parameter must be
12036 supplied.
12037
12038 Accessing the remote control via HTTP
12039 Rclone implements a simple HTTP based protocol.
12040
12041 Each endpoint takes an JSON object and returns a JSON object or an er‐
12042 ror. The JSON objects are essentially a map of string names to values.
12043
12044 All calls must made using POST.
12045
12046 The input objects can be supplied using URL parameters, POST parameters
12047 or by supplying "Content-Type: application/json" and a JSON blob in the
12048 body. There are examples of these below using curl.
12049
12050 The response will be a JSON blob in the body of the response. This is
12051 formatted to be reasonably human readable.
12052
12053 Error returns
12054 If an error occurs then there will be an HTTP error status (e.g. 500)
12055 and the body of the response will contain a JSON encoded error object,
12056 e.g.
12057
12058 {
12059 "error": "Expecting string value for key \"remote\" (was float64)",
12060 "input": {
12061 "fs": "/tmp",
12062 "remote": 3
12063 },
12064 "status": 400
12065 "path": "operations/rmdir",
12066 }
12067
12068 The keys in the error response are - error - error string - input - the
12069 input parameters to the call - status - the HTTP status code - path -
12070 the path of the call
12071
12072 CORS
12073 The sever implements basic CORS support and allows all origins for
12074 that. The response to a preflight OPTIONS request will echo the re‐
12075 quested "Access-Control-Request-Headers" back.
12076
12077 Using POST with URL parameters only
12078 curl -X POST 'http://localhost:5572/rc/noop?potato=1&sausage=2'
12079
12080 Response
12081
12082 {
12083 "potato": "1",
12084 "sausage": "2"
12085 }
12086
12087 Here is what an error response looks like:
12088
12089 curl -X POST 'http://localhost:5572/rc/error?potato=1&sausage=2'
12090
12091 {
12092 "error": "arbitrary error on input map[potato:1 sausage:2]",
12093 "input": {
12094 "potato": "1",
12095 "sausage": "2"
12096 }
12097 }
12098
12099 Note that curl doesn't return errors to the shell unless you use the -f
12100 option
12101
12102 $ curl -f -X POST 'http://localhost:5572/rc/error?potato=1&sausage=2'
12103 curl: (22) The requested URL returned error: 400 Bad Request
12104 $ echo $?
12105 22
12106
12107 Using POST with a form
12108 curl --data "potato=1" --data "sausage=2" http://localhost:5572/rc/noop
12109
12110 Response
12111
12112 {
12113 "potato": "1",
12114 "sausage": "2"
12115 }
12116
12117 Note that you can combine these with URL parameters too with the POST
12118 parameters taking precedence.
12119
12120 curl --data "potato=1" --data "sausage=2" "http://localhost:5572/rc/noop?rutabaga=3&sausage=4"
12121
12122 Response
12123
12124 {
12125 "potato": "1",
12126 "rutabaga": "3",
12127 "sausage": "4"
12128 }
12129
12130 Using POST with a JSON blob
12131 curl -H "Content-Type: application/json" -X POST -d '{"potato":2,"sausage":1}' http://localhost:5572/rc/noop
12132
12133 response
12134
12135 {
12136 "password": "xyz",
12137 "username": "xyz"
12138 }
12139
12140 This can be combined with URL parameters too if required. The JSON
12141 blob takes precedence.
12142
12143 curl -H "Content-Type: application/json" -X POST -d '{"potato":2,"sausage":1}' 'http://localhost:5572/rc/noop?rutabaga=3&potato=4'
12144
12145 {
12146 "potato": 2,
12147 "rutabaga": "3",
12148 "sausage": 1
12149 }
12150
12151 Debugging rclone with pprof
12152 If you use the --rc flag this will also enable the use of the go pro‐
12153 filing tools on the same port.
12154
12155 To use these, first install go (https://golang.org/doc/install).
12156
12157 Debugging memory use
12158 To profile rclone's memory use you can run:
12159
12160 go tool pprof -web http://localhost:5572/debug/pprof/heap
12161
12162 This should open a page in your browser showing what is using what mem‐
12163 ory.
12164
12165 You can also use the -text flag to produce a textual summary
12166
12167 $ go tool pprof -text http://localhost:5572/debug/pprof/heap
12168 Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total
12169 flat flat% sum% cum cum%
12170 1024.03kB 66.62% 66.62% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.addDecoderNode
12171 513kB 33.38% 100% 513kB 33.38% net/http.newBufioWriterSize
12172 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/all.init
12173 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/serve.init
12174 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/serve/restic.init
12175 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2.init
12176 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.init
12177 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.init.0
12178 0 0% 100% 1024.03kB 66.62% main.init
12179 0 0% 100% 513kB 33.38% net/http.(*conn).readRequest
12180 0 0% 100% 513kB 33.38% net/http.(*conn).serve
12181 0 0% 100% 1024.03kB 66.62% runtime.main
12182
12183 Debugging go routine leaks
12184 Memory leaks are most often caused by go routine leaks keeping memory
12185 alive which should have been garbage collected.
12186
12187 See all active go routines using
12188
12189 curl http://localhost:5572/debug/pprof/goroutine?debug=1
12190
12191 Or go to http://localhost:5572/debug/pprof/goroutine?debug=1 in your
12192 browser.
12193
12194 Other profiles to look at
12195 You can see a summary of profiles available at http://local‐
12196 host:5572/debug/pprof/
12197
12198 Here is how to use some of them:
12199
12200 • Memory: go tool pprof http://localhost:5572/debug/pprof/heap
12201
12202 • Go routines: curl http://localhost:5572/debug/pprof/goroutine?debug=1
12203
12204 • 30-second CPU profile: go tool pprof http://localhost:5572/de‐
12205 bug/pprof/profile
12206
12207 • 5-second execution trace: wget http://localhost:5572/de‐
12208 bug/pprof/trace?seconds=5
12209
12210 • Goroutine blocking profile
12211
12212 • Enable first with: rclone rc debug/set-block-profile-rate rate=1
12213 (docs)
12214
12215 • go tool pprof http://localhost:5572/debug/pprof/block
12216
12217 • Contended mutexes:
12218
12219 • Enable first with: rclone rc debug/set-mutex-profile-fraction
12220 rate=1 (docs)
12221
12222 • go tool pprof http://localhost:5572/debug/pprof/mutex
12223
12224 See the net/http/pprof docs (https://golang.org/pkg/net/http/pprof/)
12225 for more info on how to use the profiling and for a general overview
12226 see the Go team's blog post on profiling go programs
12227 (https://blog.golang.org/profiling-go-programs).
12228
12229 The profiling hook is zero overhead unless it is used (https://stack‐
12230 overflow.com/q/26545159/164234).
12231
12233 Each cloud storage system is slightly different. Rclone attempts to
12234 provide a unified interface to them, but some underlying differences
12235 show through.
12236
12237 Features
12238 Here is an overview of the major features of each cloud storage system.
12239
12240 Name Hash ModTime Case Insen‐ Duplicate MIME Type
12241 sitive Files
12242 ──────────────────────────────────────────────────────────────────────────
12243 1Fichier Whirlpool No No Yes R
12244 Amazon MD5 No Yes No R
12245 Drive
12246 Amazon S3 MD5 Yes No No R/W
12247 (or S3 com‐
12248 patible)
12249 Backblaze SHA1 Yes No No R/W
12250 B2
12251 Box SHA1 Yes Yes No -
12252 Citrix MD5 Yes Yes No -
12253 ShareFile
12254 Dropbox DBHASH ¹ Yes Yes No -
12255 Enterprise - Yes Yes No R/W
12256 File Fabric
12257 FTP - No No No -
12258 Google MD5 Yes No No R/W
12259 Cloud Stor‐
12260 age
12261 Google MD5 Yes No Yes R/W
12262 Drive
12263 Google Pho‐ - No No Yes R
12264 tos
12265 HDFS - Yes No No -
12266 HTTP - No No No R
12267 Hubic MD5 Yes No No R/W
12268 Jottacloud MD5 Yes Yes No R
12269 Koofr MD5 No Yes No -
12270 Mail.ru Mailru ⁶ Yes Yes No -
12271 Cloud
12272 Mega - No No Yes -
12273 Memory MD5 Yes No No -
12274
12275
12276
12277 Microsoft MD5 Yes No No R/W
12278 Azure Blob
12279 Storage
12280 Microsoft SHA1 ⁵ Yes Yes No R
12281 OneDrive
12282 OpenDrive MD5 Yes Yes Partial ⁸ -
12283 OpenStack MD5 Yes No No R/W
12284 Swift
12285 pCloud MD5, SHA1 ⁷ Yes No No W
12286 premiu‐ - No Yes No R
12287 mize.me
12288 put.io CRC-32 Yes No Yes R
12289 QingStor MD5 No No No R/W
12290 Seafile - No No No -
12291 SFTP MD5, SHA1 ² Yes Depends No -
12292 Sia - No No No -
12293 SugarSync - No No No -
12294 Tardigrade - Yes No No -
12295 Uptobox - No No Yes -
12296 WebDAV MD5, SHA1 ³ Yes ⁴ Depends No -
12297 Yandex Disk MD5 Yes No No R
12298 Zoho Work‐ - No No No -
12299 Drive
12300 The local All Yes Depends No -
12301 filesystem
12302
12303 Notes
12304 ¹ Dropbox supports its own custom hash (https://www.dropbox.com/devel‐
12305 opers/reference/content-hash). This is an SHA256 sum of all the 4 MiB
12306 block SHA256s.
12307
12308 ² SFTP supports checksums if the same login has shell access and md5sum
12309 or sha1sum as well as echo are in the remote's PATH.
12310
12311 ³ WebDAV supports hashes when used with Owncloud and Nextcloud only.
12312
12313 ⁴ WebDAV supports modtimes when used with Owncloud and Nextcloud only.
12314
12315 ⁵ Microsoft OneDrive Personal supports SHA1 hashes, whereas OneDrive
12316 for business and SharePoint server support Microsoft's own QuickXorHash
12317 (https://docs.microsoft.com/en-us/onedrive/developer/code-snip‐
12318 pets/quickxorhash).
12319
12320 ⁶ Mail.ru uses its own modified SHA1 hash
12321
12322 ⁷ pCloud only supports SHA1 (not MD5) in its EU region
12323
12324 ⁸ Opendrive does not support creation of duplicate files using their
12325 web client interface or other stock clients, but the underlying storage
12326 platform has been determined to allow duplicate files, and it is possi‐
12327 ble to create them with rclone. It may be that this is a mistake or an
12328 unsupported feature.
12329
12330 Hash
12331 The cloud storage system supports various hash types of the objects.
12332 The hashes are used when transferring data as an integrity check and
12333 can be specifically used with the --checksum flag in syncs and in the
12334 check command.
12335
12336 To use the verify checksums when transferring between cloud storage
12337 systems they must support a common hash type.
12338
12339 ModTime
12340 The cloud storage system supports setting modification times on ob‐
12341 jects. If it does then this enables a using the modification times as
12342 part of the sync. If not then only the size will be checked by de‐
12343 fault, though the MD5SUM can be checked with the --checksum flag.
12344
12345 All cloud storage systems support some kind of date on the object and
12346 these will be set when transferring from the cloud storage system.
12347
12348 Case Insensitive
12349 If a cloud storage systems is case sensitive then it is possible to
12350 have two files which differ only in case, e.g. file.txt and FILE.txt.
12351 If a cloud storage system is case insensitive then that isn't possible.
12352
12353 This can cause problems when syncing between a case insensitive system
12354 and a case sensitive system. The symptom of this is that no matter how
12355 many times you run the sync it never completes fully.
12356
12357 The local filesystem and SFTP may or may not be case sensitive depend‐
12358 ing on OS.
12359
12360 • Windows - usually case insensitive, though case is preserved
12361
12362 • OSX - usually case insensitive, though it is possible to format case
12363 sensitive
12364
12365 • Linux - usually case sensitive, but there are case insensitive file
12366 systems (e.g. FAT formatted USB keys)
12367
12368 Most of the time this doesn't cause any problems as people tend to
12369 avoid files whose name differs only by case even on case sensitive sys‐
12370 tems.
12371
12372 Duplicate files
12373 If a cloud storage system allows duplicate files then it can have two
12374 objects with the same name.
12375
12376 This confuses rclone greatly when syncing - use the rclone dedupe com‐
12377 mand to rename or remove duplicates.
12378
12379 Restricted filenames
12380 Some cloud storage systems might have restrictions on the characters
12381 that are usable in file or directory names. When rclone detects such a
12382 name during a file upload, it will transparently replace the restricted
12383 characters with similar looking Unicode characters. To handle the dif‐
12384 ferent sets of restricted characters for different backends, rclone us‐
12385 es something it calls encoding.
12386
12387 This process is designed to avoid ambiguous file names as much as pos‐
12388 sible and allow to move files between many cloud storage systems trans‐
12389 parently.
12390
12391 The name shown by rclone to the user or during log output will only
12392 contain a minimal set of replaced characters to ensure correct format‐
12393 ting and not necessarily the actual name used on the cloud storage.
12394
12395 This transformation is reversed when downloading a file or parsing
12396 rclone arguments. For example, when uploading a file named my
12397 file?.txt to Onedrive, it will be displayed as my file?.txt on the con‐
12398 sole, but stored as my file?.txt to Onedrive (the ? gets replaced by
12399 the similar looking ? character, the so-called "fullwidth question
12400 mark"). The reverse transformation allows to read a file unusu‐
12401 al/name.txt from Google Drive, by passing the name unusual/name.txt on
12402 the command line (the / needs to be replaced by the similar looking /
12403 character).
12404
12405 Caveats
12406 The filename encoding system works well in most cases, at least where
12407 file names are written in English or similar languages. You might not
12408 even notice it: It just works. In some cases it may lead to issues,
12409 though. E.g. when file names are written in Chinese, or Japanese,
12410 where it is always the Unicode fullwidth variants of the punctuation
12411 marks that are used.
12412
12413 On Windows, the characters :, * and ? are examples of restricted char‐
12414 acters. If these are used in filenames on a remote that supports it,
12415 Rclone will transparently convert them to their fullwidth Unicode vari‐
12416 ants *, ? and : when downloading to Windows, and back again when up‐
12417 loading. This way files with names that are not allowed on Windows can
12418 still be stored.
12419
12420 However, if you have files on your Windows system originally with these
12421 same Unicode characters in their names, they will be included in the
12422 same conversion process. E.g. if you create a file in your Windows
12423 filesystem with name Test:1.jpg, where : is the Unicode fullwidth
12424 colon symbol, and use rclone to upload it to Google Drive, which sup‐
12425 ports regular : (halfwidth question mark), rclone will replace the
12426 fullwidth : with the halfwidth : and store the file as Test:1.jpg in
12427 Google Drive. Since both Windows and Google Drive allows the name
12428 Test:1.jpg, it would probably be better if rclone just kept the name
12429 as is in this case.
12430
12431 With the opposite situation; if you have a file named Test:1.jpg, in
12432 your Google Drive, e.g. uploaded from a Linux system where : is valid
12433 in file names. Then later use rclone to copy this file to your Windows
12434 computer you will notice that on your local disk it gets renamed to
12435 Test:1.jpg. The original filename is not legal on Windows, due to the
12436 :, and rclone therefore renames it to make the copy possible. That is
12437 all good. However, this can also lead to an issue: If you already had
12438 a different file named Test:1.jpg on Windows, and then use rclone to
12439 copy either way. Rclone will then treat the file originally named
12440 Test:1.jpg on Google Drive and the file originally named Test:1.jpg on
12441 Windows as the same file, and replace the contents from one with the
12442 other.
12443
12444 Its virtually impossible to handle all cases like these correctly in
12445 all situations, but by customizing the encoding option, changing the
12446 set of characters that rclone should convert, you should be able to
12447 create a configuration that works well for your specific situation.
12448 See also the example (https://rclone.org/overview/#encoding-example-
12449 windows) below.
12450
12451 (Windows was used as an example of a file system with many restricted
12452 characters, and Google drive a storage system with few.)
12453
12454 Default restricted characters
12455 The table below shows the characters that are replaced by default.
12456
12457 When a replacement character is found in a filename, this character
12458 will be escaped with the ‛ character to avoid ambiguous file names.
12459 (e.g. a file named ␀.txt would shown as ‛␀.txt)
12460
12461 Each cloud storage backend can use a different set of characters, which
12462 will be specified in the documentation for each backend.
12463
12464 Character Value Replacement
12465 ────────────────────────────────
12466 NUL 0x00 ␀
12467 SOH 0x01 ␁
12468 STX 0x02 ␂
12469 ETX 0x03 ␃
12470 EOT 0x04 ␄
12471 ENQ 0x05 ␅
12472 ACK 0x06 ␆
12473 BEL 0x07 ␇
12474 BS 0x08 ␈
12475 HT 0x09 ␉
12476 LF 0x0A ␊
12477 VT 0x0B ␋
12478 FF 0x0C ␌
12479 CR 0x0D ␍
12480 SO 0x0E ␎
12481 SI 0x0F ␏
12482 DLE 0x10 ␐
12483 DC1 0x11 ␑
12484 DC2 0x12 ␒
12485 DC3 0x13 ␓
12486 DC4 0x14 ␔
12487 NAK 0x15 ␕
12488 SYN 0x16 ␖
12489 ETB 0x17 ␗
12490 CAN 0x18 ␘
12491 EM 0x19 ␙
12492
12493 SUB 0x1A ␚
12494 ESC 0x1B ␛
12495 FS 0x1C ␜
12496 GS 0x1D ␝
12497 RS 0x1E ␞
12498 US 0x1F ␟
12499 / 0x2F /
12500 DEL 0x7F ␡
12501
12502 The default encoding will also encode these file names as they are
12503 problematic with many cloud storage systems.
12504
12505 File name Replacement
12506 ────────────────────────
12507 . .
12508 .. ..
12509
12510 Invalid UTF-8 bytes
12511 Some backends only support a sequence of well formed UTF-8 bytes as
12512 file or directory names.
12513
12514 In this case all invalid UTF-8 bytes will be replaced with a quoted
12515 representation of the byte value to allow uploading a file to such a
12516 backend. For example, the invalid byte 0xFE will be encoded as ‛FE.
12517
12518 A common source of invalid UTF-8 bytes are local filesystems, that
12519 store names in a different encoding than UTF-8 or UTF-16, like latin1.
12520 See the local filenames (https://rclone.org/local/#filenames) section
12521 for details.
12522
12523 Encoding option
12524 Most backends have an encoding option, specified as a flag --back‐
12525 end-encoding where backend is the name of the backend, or as a config
12526 parameter encoding (you'll need to select the Advanced config in rclone
12527 config to see it).
12528
12529 This will have default value which encodes and decodes characters in
12530 such a way as to preserve the maximum number of characters (see above).
12531
12532 However this can be incorrect in some scenarios, for example if you
12533 have a Windows file system with Unicode fullwidth characters *, ? or
12534 :, that you want to remain as those characters on the remote rather
12535 than being translated to regular (halfwidth) *, ? and :.
12536
12537 The --backend-encoding flags allow you to change that. You can disable
12538 the encoding completely with --backend-encoding None or set encoding =
12539 None in the config file.
12540
12541 Encoding takes a comma separated list of encodings. You can see the
12542 list of all possible values by passing an invalid value to this flag,
12543 e.g. --local-encoding "help". The command rclone help flags encoding
12544 will show you the defaults for the backends.
12545
12546 Encoding Characters
12547 ───────────────────────────────────────────
12548 Asterisk *
12549 BackQuote `
12550 BackSlash \
12551 Colon :
12552 CrLf CR 0x0D, LF 0x0A
12553 Ctl All control characters
12554 0x00-0x1F
12555 Del DEL 0x7F
12556 Dollar $
12557 Dot . or .. as entire string
12558 DoubleQuote "
12559 Hash #
12560 InvalidUtf8 An invalid UTF-8 character
12561 (e.g. latin1)
12562 LeftCrLfHtVt CR 0x0D, LF 0x0A,HT 0x09,
12563 VT 0x0B on the left of a
12564 string
12565 LeftPeriod . on the left of a string
12566 LeftSpace SPACE on the left of a
12567 string
12568 LeftTilde ~ on the left of a string
12569 LtGt <, >
12570 None No characters are encoded
12571 Percent %
12572 Pipe |
12573 Question ?
12574 RightCrLfHtVt CR 0x0D, LF 0x0A, HT 0x09,
12575 VT 0x0B on the right of a
12576 string
12577 RightPeriod . on the right of a string
12578 RightSpace SPACE on the right of a
12579 string
12580 SingleQuote '
12581 Slash /
12582 SquareBracket [, ]
12583
12584 Encoding example: FTP
12585 To take a specific example, the FTP backend's default encoding is
12586
12587 --ftp-encoding "Slash,Del,Ctl,RightSpace,Dot"
12588
12589 However, let's say the FTP server is running on Windows and can't have
12590 any of the invalid Windows characters in file names. You are backing
12591 up Linux servers to this FTP server which do have those characters in
12592 file names. So you would add the Windows set which are
12593
12594 Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot
12595
12596 to the existing ones, giving:
12597
12598 Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot,Del,RightSpace
12599
12600 This can be specified using the --ftp-encoding flag or using an encod‐
12601 ing parameter in the config file.
12602
12603 Encoding example: Windows
12604 As a nother example, take a Windows system where there is a file with
12605 name Test:1.jpg, where : is the Unicode fullwidth colon symbol. When
12606 using rclone to copy this to a remote which supports :, the regular
12607 (halfwidth) colon (such as Google Drive), you will notice that the file
12608 gets renamed to Test:1.jpg.
12609
12610 To avoid this you can change the set of characters rclone should con‐
12611 vert for the local filesystem, using command-line argument --local-en‐
12612 coding. Rclone's default behavior on Windows corresponds to
12613
12614 --local-encoding "Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot"
12615
12616 If you want to use fullwidth characters :, * and ? in your filenames
12617 without rclone changing them when uploading to a remote, then set the
12618 same as the default value but without Colon,Question,Asterisk:
12619
12620 --local-encoding "Slash,LtGt,DoubleQuote,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot"
12621
12622 Alternatively, you can disable the conversion of any characters with
12623 --local-encoding None.
12624
12625 Instead of using command-line argument --local-encoding, you may also
12626 set it as environment variable (https://rclone.org/docs/#environment-
12627 variables) RCLONE_LOCAL_ENCODING, or configure
12628 (https://rclone.org/docs/#configure) a remote of type local in your
12629 config, and set the encoding option there.
12630
12631 The risk by doing this is that if you have a filename with the regular
12632 (halfwidth) :, * and ? in your cloud storage, and you try to download
12633 it to your Windows filesystem, this will fail. These characters are
12634 not valid in filenames on Windows, and you have told rclone not to work
12635 around this by converting them to valid fullwidth variants.
12636
12637 MIME Type
12638 MIME types (also known as media types) classify types of documents us‐
12639 ing a simple text classification, e.g. text/html or application/pdf.
12640
12641 Some cloud storage systems support reading (R) the MIME type of objects
12642 and some support writing (W) the MIME type of objects.
12643
12644 The MIME type can be important if you are serving files directly to
12645 HTTP from the storage system.
12646
12647 If you are copying from a remote which supports reading (R) to a remote
12648 which supports writing (W) then rclone will preserve the MIME types.
12649 Otherwise they will be guessed from the extension, or the remote itself
12650 may assign the MIME type.
12651
12652 Optional Features
12653 All rclone remotes support a base command set. Other features depend
12654 upon backend specific capabilities.
12655
12656 Name Purge Copy Move DirMove CleanUp ListR StreamU‐ LinkShar‐ About Empty‐
12657 pload ing Dir
12658 ───────────────────────────────────────────────────────────────────────────────────────────────────
12659 1Fichi‐ No Yes Yes No No No No Yes No Yes
12660 er
12661 Amazon Yes No Yes Yes No No No No No Yes
12662 Drive
12663 Amazon No Yes No No Yes Yes Yes Yes No No
12664 S3
12665 Back‐ No Yes No No Yes Yes Yes Yes No No
12666 blaze
12667 B2
12668 Box Yes Yes Yes Yes Yes ‡‡ No Yes Yes Yes Yes
12669 Citrix Yes Yes Yes Yes No No Yes No No Yes
12670 Share‐
12671 File
12672 Dropbox Yes Yes Yes Yes No No Yes Yes Yes Yes
12673 Enter‐ Yes Yes Yes Yes Yes No No No No Yes
12674 prise
12675 File
12676 Fabric
12677 FTP No No Yes Yes No No Yes No No Yes
12678 Google Yes Yes No No No Yes Yes No No No
12679 Cloud
12680 Storage
12681 Google Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
12682 Drive
12683 Google No No No No No No No No No No
12684 Photos
12685 HDFS Yes No No No No No Yes No Yes Yes
12686 HTTP No No No No No No No No No Yes
12687 Hubic Yes † Yes No No No Yes Yes No Yes No
12688 Jotta‐ Yes Yes Yes Yes Yes Yes No Yes Yes Yes
12689 cloud
12690 Mail.ru Yes Yes Yes Yes Yes No No Yes Yes Yes
12691 Cloud
12692 Mega Yes No Yes Yes Yes No No Yes Yes Yes
12693 Memory No Yes No No No Yes Yes No No No
12694 Micro‐ Yes Yes No No No Yes Yes No No No
12695 soft
12696 Azure
12697 Blob
12698 Storage
12699 Micro‐ Yes Yes Yes Yes Yes No No Yes Yes Yes
12700 soft
12701 OneDrive
12702 Open‐ Yes Yes Yes Yes No No No No No Yes
12703 Drive
12704 Open‐ Yes † Yes No No No Yes Yes No Yes No
12705 Stack
12706 Swift
12707 pCloud Yes Yes Yes Yes Yes No No Yes Yes Yes
12708
12709 premiu‐ Yes No Yes Yes No No No Yes Yes Yes
12710 mize.me
12711 put.io Yes No Yes Yes Yes No Yes No Yes Yes
12712 QingStor No Yes No No Yes Yes No No No No
12713 Seafile Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
12714 SFTP No No Yes Yes No No Yes No Yes Yes
12715 Sug‐ Yes Yes Yes Yes No No Yes Yes No Yes
12716 arSync
12717 Tardi‐ Yes † No No No No Yes Yes No No No
12718 grade
12719 Uptobox No Yes Yes Yes No No No No No No
12720 WebDAV Yes Yes Yes Yes No No Yes ‡ No Yes Yes
12721 Yandex Yes Yes Yes Yes Yes No Yes Yes Yes Yes
12722 Disk
12723 Zoho Yes Yes Yes Yes No No No No Yes Yes
12724 Work‐
12725 Drive
12726 The lo‐ Yes No Yes Yes No No Yes No Yes Yes
12727 cal
12728 filesys‐
12729 tem
12730
12731 Purge
12732 This deletes a directory quicker than just deleting all the files in
12733 the directory.
12734
12735 † Note Swift, Hubic, and Tardigrade implement this in order to delete
12736 directory markers but they don't actually have a quicker way of delet‐
12737 ing files other than deleting them individually.
12738
12739 ‡ StreamUpload is not supported with Nextcloud
12740
12741 Copy
12742 Used when copying an object to and from the same remote. This known as
12743 a server-side copy so you can copy a file without downloading it and
12744 uploading it again. It is used if you use rclone copy or rclone move
12745 if the remote doesn't support Move directly.
12746
12747 If the server doesn't support Copy directly then for copy operations
12748 the file is downloaded then re-uploaded.
12749
12750 Move
12751 Used when moving/renaming an object on the same remote. This is known
12752 as a server-side move of a file. This is used in rclone move if the
12753 server doesn't support DirMove.
12754
12755 If the server isn't capable of Move then rclone simulates it with Copy
12756 then delete. If the server doesn't support Copy then rclone will down‐
12757 load the file and re-upload it.
12758
12759 DirMove
12760 This is used to implement rclone move to move a directory if possible.
12761 If it isn't then it will use Move on each file (which falls back to
12762 Copy then download and upload - see Move section).
12763
12764 CleanUp
12765 This is used for emptying the trash for a remote by rclone cleanup.
12766
12767 If the server can't do CleanUp then rclone cleanup will return an er‐
12768 ror.
12769
12770 ‡‡ Note that while Box implements this it has to delete every file in‐
12771 dividually so it will be slower than emptying the trash via the WebUI
12772
12773 ListR
12774 The remote supports a recursive list to list all the contents beneath a
12775 directory quickly. This enables the --fast-list flag to work. See the
12776 rclone docs (https://rclone.org/docs/#fast-list) for more details.
12777
12778 StreamUpload
12779 Some remotes allow files to be uploaded without knowing the file size
12780 in advance. This allows certain operations to work without spooling
12781 the file to local disk first, e.g. rclone rcat.
12782
12783 LinkSharing
12784 Sets the necessary permissions on a file or folder and prints a link
12785 that allows others to access them, even if they don't have an account
12786 on the particular cloud provider.
12787
12788 About
12789 Rclone about prints quota information for a remote. Typical output in‐
12790 cludes bytes used, free, quota and in trash.
12791
12792 If a remote lacks about capability rclone about remote:returns an er‐
12793 ror.
12794
12795 Backends without about capability cannot determine free space for an
12796 rclone mount, or use policy mfs (most free space) as a member of an
12797 rclone union remote.
12798
12799 See rclone about command (https://rclone.org/commands/rclone_about/)
12800
12801 EmptyDir
12802 The remote supports empty directories. See Limitations
12803 (https://rclone.org/bugs/#limitations) for details. Most Object/Bucket
12804 based remotes do not support this.
12805
12807 This describes the global flags available to every rclone command split
12808 into two groups, non backend and backend flags.
12809
12810 Non Backend Flags
12811 These flags are available for every command.
12812
12813 --ask-password Allow prompt for password for encrypted configuration (default true)
12814 --auto-confirm If enabled, do not request console confirmation
12815 --backup-dir string Make backups into hierarchy based in DIR
12816 --bind string Local address to bind to for outgoing connections, IPv4, IPv6 or name
12817 --buffer-size SizeSuffix In memory buffer size when reading files for each --transfer (default 16Mi)
12818 --bwlimit BwTimetable Bandwidth limit in KiB/s, or use suffix B|K|M|G|T|P or a full timetable
12819 --bwlimit-file BwTimetable Bandwidth limit per file in KiB/s, or use suffix B|K|M|G|T|P or a full timetable
12820 --ca-cert string CA certificate used to verify servers
12821 --cache-dir string Directory rclone will use for caching (default "$HOME/.cache/rclone")
12822 --check-first Do all the checks before starting transfers
12823 --checkers int Number of checkers to run in parallel (default 8)
12824 -c, --checksum Skip based on checksum (if available) & size, not mod-time & size
12825 --client-cert string Client SSL certificate (PEM) for mutual TLS auth
12826 --client-key string Client SSL private key (PEM) for mutual TLS auth
12827 --compare-dest stringArray Include additional comma separated server-side paths during comparison
12828 --config string Config file (default "$HOME/.config/rclone/rclone.conf")
12829 --contimeout duration Connect timeout (default 1m0s)
12830 --copy-dest stringArray Implies --compare-dest but also copies files from paths into destination
12831 --cpuprofile string Write cpu profile to file
12832 --cutoff-mode string Mode to stop transfers when reaching the max transfer limit HARD|SOFT|CAUTIOUS (default "HARD")
12833 --delete-after When synchronizing, delete files on destination after transferring (default)
12834 --delete-before When synchronizing, delete files on destination before transferring
12835 --delete-during When synchronizing, delete files during transfer
12836 --delete-excluded Delete files on dest excluded from sync
12837 --disable string Disable a comma separated list of features (use --disable help to see a list)
12838 --disable-http2 Disable HTTP/2 in the global transport
12839 -n, --dry-run Do a trial run with no permanent changes
12840 --dscp string Set DSCP value to connections, value or name, e.g. CS1, LE, DF, AF21
12841 --dump DumpFlags List of items to dump from: headers,bodies,requests,responses,auth,filters,goroutines,openfiles
12842 --dump-bodies Dump HTTP headers and bodies - may contain sensitive info
12843 --dump-headers Dump HTTP headers - may contain sensitive info
12844 --error-on-no-transfer Sets exit code 9 if no files are transferred, useful in scripts
12845 --exclude stringArray Exclude files matching pattern
12846 --exclude-from stringArray Read exclude patterns from file (use - to read from stdin)
12847 --exclude-if-present string Exclude directories if filename is present
12848 --expect-continue-timeout duration Timeout when using expect / 100-continue in HTTP (default 1s)
12849 --fast-list Use recursive list if available; uses more memory but fewer transactions
12850 --files-from stringArray Read list of source-file names from file (use - to read from stdin)
12851 --files-from-raw stringArray Read list of source-file names from file without any processing of lines (use - to read from stdin)
12852 -f, --filter stringArray Add a file-filtering rule
12853 --filter-from stringArray Read filtering patterns from a file (use - to read from stdin)
12854 --fs-cache-expire-duration duration Cache remotes for this long (0 to disable caching) (default 5m0s)
12855 --fs-cache-expire-interval duration Interval to check for expired remotes (default 1m0s)
12856 --header stringArray Set HTTP header for all transactions
12857 --header-download stringArray Set HTTP header for download transactions
12858 --header-upload stringArray Set HTTP header for upload transactions
12859 --human-readable Print numbers in a human-readable format, sizes with suffix Ki|Mi|Gi|Ti|Pi
12860 --ignore-case Ignore case in filters (case insensitive)
12861 --ignore-case-sync Ignore case when synchronizing
12862 --ignore-checksum Skip post copy check of checksums
12863 --ignore-errors Delete even if there are I/O errors
12864 --ignore-existing Skip all files that exist on destination
12865 --ignore-size Ignore size when skipping use mod-time or checksum
12866 -I, --ignore-times Don't skip files that match size and time - transfer all files
12867 --immutable Do not modify files, fail if existing files have been modified
12868 --include stringArray Include files matching pattern
12869 --include-from stringArray Read include patterns from file (use - to read from stdin)
12870 -i, --interactive Enable interactive mode
12871 --kv-lock-time duration Maximum time to keep key-value database locked by process (default 1s)
12872 --log-file string Log everything to this file
12873 --log-format string Comma separated list of log format options (default "date,time")
12874 --log-level string Log level DEBUG|INFO|NOTICE|ERROR (default "NOTICE")
12875 --log-systemd Activate systemd integration for the logger
12876 --low-level-retries int Number of low level retries to do (default 10)
12877 --max-age Duration Only transfer files younger than this in s or suffix ms|s|m|h|d|w|M|y (default off)
12878 --max-backlog int Maximum number of objects in sync or check backlog (default 10000)
12879 --max-delete int When synchronizing, limit the number of deletes (default -1)
12880 --max-depth int If set limits the recursion depth to this (default -1)
12881 --max-duration duration Maximum duration rclone will transfer data for
12882 --max-size SizeSuffix Only transfer files smaller than this in KiB or suffix B|K|M|G|T|P (default off)
12883 --max-stats-groups int Maximum number of stats groups to keep in memory, on max oldest is discarded (default 1000)
12884 --max-transfer SizeSuffix Maximum size of data to transfer (default off)
12885 --memprofile string Write memory profile to file
12886 --min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
12887 --min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
12888 --modify-window duration Max time diff to be considered the same (default 1ns)
12889 --multi-thread-cutoff SizeSuffix Use multi-thread downloads for files above this size (default 250Mi)
12890 --multi-thread-streams int Max number of streams to use for multi-thread downloads (default 4)
12891 --no-check-certificate Do not verify the server SSL certificate (insecure)
12892 --no-check-dest Don't check the destination, copy regardless
12893 --no-console Hide console window (supported on Windows only)
12894 --no-gzip-encoding Don't set Accept-Encoding: gzip
12895 --no-traverse Don't traverse destination file system on copy
12896 --no-unicode-normalization Don't normalize unicode characters in filenames
12897 --no-update-modtime Don't update destination mod-time if files identical
12898 --order-by string Instructions on how to order the transfers, e.g. 'size,descending'
12899 --password-command SpaceSepList Command for supplying password for encrypted configuration
12900 -P, --progress Show progress during transfer
12901 --progress-terminal-title Show progress on the terminal title (requires -P/--progress)
12902 -q, --quiet Print as little stuff as possible
12903 --rc Enable the remote control server
12904 --rc-addr string IPaddress:Port or :Port to bind server to (default "localhost:5572")
12905 --rc-allow-origin string Set the allowed origin for CORS
12906 --rc-baseurl string Prefix for URLs - leave blank for root
12907 --rc-cert string SSL PEM key (concatenation of certificate and CA certificate)
12908 --rc-client-ca string Client certificate authority to verify clients with
12909 --rc-enable-metrics Enable prometheus metrics on /metrics
12910 --rc-files string Path to local files to serve on the HTTP server
12911 --rc-htpasswd string htpasswd file - if not provided no authentication is done
12912 --rc-job-expire-duration duration expire finished async jobs older than this value (default 1m0s)
12913 --rc-job-expire-interval duration interval to check for expired async jobs (default 10s)
12914 --rc-key string SSL PEM Private key
12915 --rc-max-header-bytes int Maximum size of request header (default 4096)
12916 --rc-no-auth Don't require auth for certain methods
12917 --rc-pass string Password for authentication
12918 --rc-realm string realm for authentication (default "rclone")
12919 --rc-serve Enable the serving of remote objects
12920 --rc-server-read-timeout duration Timeout for server reading data (default 1h0m0s)
12921 --rc-server-write-timeout duration Timeout for server writing data (default 1h0m0s)
12922 --rc-template string User-specified template
12923 --rc-user string User name for authentication
12924 --rc-web-fetch-url string URL to fetch the releases for webgui (default "https://api.github.com/repos/rclone/rclone-webui-react/releases/latest")
12925 --rc-web-gui Launch WebGUI on localhost
12926 --rc-web-gui-force-update Force update to latest version of web gui
12927 --rc-web-gui-no-open-browser Don't open the browser automatically
12928 --rc-web-gui-update Check and update to latest version of web gui
12929 --refresh-times Refresh the modtime of remote files
12930 --retries int Retry operations this many times if they fail (default 3)
12931 --retries-sleep duration Interval between retrying operations if they fail, e.g. 500ms, 60s, 5m (0 to disable)
12932 --size-only Skip based on size only, not mod-time or checksum
12933 --stats duration Interval between printing stats, e.g. 500ms, 60s, 5m (0 to disable) (default 1m0s)
12934 --stats-file-name-length int Max file name length in stats (0 for no limit) (default 45)
12935 --stats-log-level string Log level to show --stats output DEBUG|INFO|NOTICE|ERROR (default "INFO")
12936 --stats-one-line Make the stats fit on one line
12937 --stats-one-line-date Enable --stats-one-line and add current date/time prefix
12938 --stats-one-line-date-format string Enable --stats-one-line-date and use custom formatted date: Enclose date string in double quotes ("), see https://golang.org/pkg/time/#Time.Format
12939 --stats-unit string Show data rate in stats as either 'bits' or 'bytes' per second (default "bytes")
12940 --streaming-upload-cutoff SizeSuffix Cutoff for switching to chunked upload if file size is unknown, upload starts after reaching cutoff or when file ends (default 100Ki)
12941 --suffix string Suffix to add to changed files
12942 --suffix-keep-extension Preserve the extension when using --suffix
12943 --syslog Use Syslog for logging
12944 --syslog-facility string Facility for syslog, e.g. KERN,USER,... (default "DAEMON")
12945 --temp-dir string Directory rclone will use for temporary files (default "/tmp")
12946 --timeout duration IO idle timeout (default 5m0s)
12947 --tpslimit float Limit HTTP transactions per second to this
12948 --tpslimit-burst int Max burst of transactions for --tpslimit (default 1)
12949 --track-renames When synchronizing, track file renames and do a server-side move if possible
12950 --track-renames-strategy string Strategies to use when synchronizing using track-renames hash|modtime|leaf (default "hash")
12951 --transfers int Number of file transfers to run in parallel (default 4)
12952 -u, --update Skip files that are newer on the destination
12953 --use-cookies Enable session cookiejar
12954 --use-json-log Use json log format
12955 --use-mmap Use mmap allocator (see docs)
12956 --use-server-modtime Use server modified time instead of object metadata
12957 --user-agent string Set the user-agent to a specified string (default "rclone/v1.57.0")
12958 -v, --verbose count Print lots more stuff (repeat for more)
12959
12960 Backend Flags
12961 These flags are available for every command. They control the backends
12962 and may be set in the config file.
12963
12964 --acd-auth-url string Auth server URL
12965 --acd-client-id string OAuth Client Id
12966 --acd-client-secret string OAuth Client Secret
12967 --acd-encoding MultiEncoder This sets the encoding for the backend (default Slash,InvalidUtf8,Dot)
12968 --acd-templink-threshold SizeSuffix Files >= this size will be downloaded via their tempLink (default 9Gi)
12969 --acd-token string OAuth Access Token as a JSON blob
12970 --acd-token-url string Token server url
12971 --acd-upload-wait-per-gb Duration Additional time per GiB to wait after a failed complete upload to see if it appears (default 3m0s)
12972 --alias-remote string Remote or path to alias
12973 --azureblob-access-tier string Access tier of blob: hot, cool or archive
12974 --azureblob-account string Storage Account Name
12975 --azureblob-archive-tier-delete Delete archive tier blobs before overwriting
12976 --azureblob-chunk-size SizeSuffix Upload chunk size (<= 100 MiB) (default 4Mi)
12977 --azureblob-disable-checksum Don't store MD5 checksum with object metadata
12978 --azureblob-encoding MultiEncoder This sets the encoding for the backend (default Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8)
12979 --azureblob-endpoint string Endpoint for the service
12980 --azureblob-key string Storage Account Key
12981 --azureblob-list-chunk int Size of blob list (default 5000)
12982 --azureblob-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed (default 1m0s)
12983 --azureblob-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool
12984 --azureblob-msi-client-id string Object ID of the user-assigned MSI to use, if any
12985 --azureblob-msi-mi-res-id string Azure resource ID of the user-assigned MSI to use, if any
12986 --azureblob-msi-object-id string Object ID of the user-assigned MSI to use, if any
12987 --azureblob-no-head-object If set, do not do HEAD before GET when getting objects
12988 --azureblob-public-access string Public access level of a container: blob or container
12989 --azureblob-sas-url string SAS URL for container level access only
12990 --azureblob-service-principal-file string Path to file containing credentials for use with a service principal
12991 --azureblob-upload-cutoff string Cutoff for switching to chunked upload (<= 256 MiB) (deprecated)
12992 --azureblob-use-emulator Uses local storage emulator if provided as 'true'
12993 --azureblob-use-msi Use a managed service identity to authenticate (only works in Azure)
12994 --b2-account string Account ID or Application Key ID
12995 --b2-chunk-size SizeSuffix Upload chunk size (default 96Mi)
12996 --b2-copy-cutoff SizeSuffix Cutoff for switching to multipart copy (default 4Gi)
12997 --b2-disable-checksum Disable checksums for large (> upload cutoff) files
12998 --b2-download-auth-duration Duration Time before the authorization token will expire in s or suffix ms|s|m|h|d (default 1w)
12999 --b2-download-url string Custom endpoint for downloads
13000 --b2-encoding MultiEncoder This sets the encoding for the backend (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
13001 --b2-endpoint string Endpoint for the service
13002 --b2-hard-delete Permanently delete files on remote removal, otherwise hide files
13003 --b2-key string Application Key
13004 --b2-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed (default 1m0s)
13005 --b2-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool
13006 --b2-test-mode string A flag string for X-Bz-Test-Mode header for debugging
13007 --b2-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200Mi)
13008 --b2-versions Include old versions in directory listings
13009 --box-access-token string Box App Primary Access Token
13010 --box-auth-url string Auth server URL
13011 --box-box-config-file string Box App config.json location
13012 --box-box-sub-type string (default "user")
13013 --box-client-id string OAuth Client Id
13014 --box-client-secret string OAuth Client Secret
13015 --box-commit-retries int Max number of times to try committing a multipart file (default 100)
13016 --box-encoding MultiEncoder This sets the encoding for the backend (default Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot)
13017 --box-list-chunk int Size of listing chunk 1-1000 (default 1000)
13018 --box-owned-by string Only show items owned by the login (email address) passed in
13019 --box-root-folder-id string Fill in for rclone to use a non root folder as its starting point
13020 --box-token string OAuth Access Token as a JSON blob
13021 --box-token-url string Token server url
13022 --box-upload-cutoff SizeSuffix Cutoff for switching to multipart upload (>= 50 MiB) (default 50Mi)
13023 --cache-chunk-clean-interval Duration How often should the cache perform cleanups of the chunk storage (default 1m0s)
13024 --cache-chunk-no-memory Disable the in-memory cache for storing chunks during streaming
13025 --cache-chunk-path string Directory to cache chunk files (default "$HOME/.cache/rclone/cache-backend")
13026 --cache-chunk-size SizeSuffix The size of a chunk (partial file data) (default 5Mi)
13027 --cache-chunk-total-size SizeSuffix The total size that the chunks can take up on the local disk (default 10Gi)
13028 --cache-db-path string Directory to store file structure metadata DB (default "$HOME/.cache/rclone/cache-backend")
13029 --cache-db-purge Clear all the cached data for this remote on start
13030 --cache-db-wait-time Duration How long to wait for the DB to be available - 0 is unlimited (default 1s)
13031 --cache-info-age Duration How long to cache file structure information (directory listings, file size, times, etc.) (default 6h0m0s)
13032 --cache-plex-insecure string Skip all certificate verification when connecting to the Plex server
13033 --cache-plex-password string The password of the Plex user (obscured)
13034 --cache-plex-url string The URL of the Plex server
13035 --cache-plex-username string The username of the Plex user
13036 --cache-read-retries int How many times to retry a read from a cache storage (default 10)
13037 --cache-remote string Remote to cache
13038 --cache-rps int Limits the number of requests per second to the source FS (-1 to disable) (default -1)
13039 --cache-tmp-upload-path string Directory to keep temporary files until they are uploaded
13040 --cache-tmp-wait-time Duration How long should files be stored in local cache before being uploaded (default 15s)
13041 --cache-workers int How many workers should run in parallel to download chunks (default 4)
13042 --cache-writes Cache file data on writes through the FS
13043 --chunker-chunk-size SizeSuffix Files larger than chunk size will be split in chunks (default 2Gi)
13044 --chunker-fail-hard Choose how chunker should handle files with missing or invalid chunks
13045 --chunker-hash-type string Choose how chunker handles hash sums (default "md5")
13046 --chunker-remote string Remote to chunk/unchunk
13047 --compress-level int GZIP compression level (-2 to 9) (default -1)
13048 --compress-mode string Compression mode (default "gzip")
13049 --compress-ram-cache-limit SizeSuffix Some remotes don't allow the upload of files with unknown size (default 20Mi)
13050 --compress-remote string Remote to compress
13051 -L, --copy-links Follow symlinks and copy the pointed to item
13052 --crypt-directory-name-encryption Option to either encrypt directory names or leave them intact (default true)
13053 --crypt-filename-encryption string How to encrypt the filenames (default "standard")
13054 --crypt-no-data-encryption Option to either encrypt file data or leave it unencrypted
13055 --crypt-password string Password or pass phrase for encryption (obscured)
13056 --crypt-password2 string Password or pass phrase for salt (obscured)
13057 --crypt-remote string Remote to encrypt/decrypt
13058 --crypt-server-side-across-configs Allow server-side operations (e.g. copy) to work across different crypt configs
13059 --crypt-show-mapping For all files listed show how the names encrypt
13060 --drive-acknowledge-abuse Set to allow files which return cannotDownloadAbusiveFile to be downloaded
13061 --drive-allow-import-name-change Allow the filetype to change when uploading Google docs
13062 --drive-auth-owner-only Only consider files owned by the authenticated user
13063 --drive-auth-url string Auth server URL
13064 --drive-chunk-size SizeSuffix Upload chunk size (default 8Mi)
13065 --drive-client-id string Google Application Client Id
13066 --drive-client-secret string OAuth Client Secret
13067 --drive-disable-http2 Disable drive using http2 (default true)
13068 --drive-encoding MultiEncoder This sets the encoding for the backend (default InvalidUtf8)
13069 --drive-export-formats string Comma separated list of preferred formats for downloading Google docs (default "docx,xlsx,pptx,svg")
13070 --drive-formats string Deprecated: See export_formats
13071 --drive-impersonate string Impersonate this user when using a service account
13072 --drive-import-formats string Comma separated list of preferred formats for uploading Google docs
13073 --drive-keep-revision-forever Keep new head revision of each file forever
13074 --drive-list-chunk int Size of listing chunk 100-1000, 0 to disable (default 1000)
13075 --drive-pacer-burst int Number of API calls to allow without sleeping (default 100)
13076 --drive-pacer-min-sleep Duration Minimum time to sleep between API calls (default 100ms)
13077 --drive-root-folder-id string ID of the root folder
13078 --drive-scope string Scope that rclone should use when requesting access from drive
13079 --drive-server-side-across-configs Allow server-side operations (e.g. copy) to work across different drive configs
13080 --drive-service-account-credentials string Service Account Credentials JSON blob
13081 --drive-service-account-file string Service Account Credentials JSON file path
13082 --drive-shared-with-me Only show files that are shared with me
13083 --drive-size-as-quota Show sizes as storage quota usage, not actual size
13084 --drive-skip-checksum-gphotos Skip MD5 checksum on Google photos and videos only
13085 --drive-skip-gdocs Skip google documents in all listings
13086 --drive-skip-shortcuts If set skip shortcut files
13087 --drive-starred-only Only show files that are starred
13088 --drive-stop-on-download-limit Make download limit errors be fatal
13089 --drive-stop-on-upload-limit Make upload limit errors be fatal
13090 --drive-team-drive string ID of the Shared Drive (Team Drive)
13091 --drive-token string OAuth Access Token as a JSON blob
13092 --drive-token-url string Token server url
13093 --drive-trashed-only Only show files that are in the trash
13094 --drive-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 8Mi)
13095 --drive-use-created-date Use file created date instead of modified date
13096 --drive-use-shared-date Use date file was shared instead of modified date
13097 --drive-use-trash Send files to the trash instead of deleting permanently (default true)
13098 --drive-v2-download-min-size SizeSuffix If Object's are greater, use drive v2 API to download (default off)
13099 --dropbox-auth-url string Auth server URL
13100 --dropbox-batch-commit-timeout Duration Max time to wait for a batch to finish comitting (default 10m0s)
13101 --dropbox-batch-mode string Upload file batching sync|async|off (default "sync")
13102 --dropbox-batch-size int Max number of files in upload batch
13103 --dropbox-batch-timeout Duration Max time to allow an idle upload batch before uploading (default 0s)
13104 --dropbox-chunk-size SizeSuffix Upload chunk size (< 150Mi) (default 48Mi)
13105 --dropbox-client-id string OAuth Client Id
13106 --dropbox-client-secret string OAuth Client Secret
13107 --dropbox-encoding MultiEncoder This sets the encoding for the backend (default Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot)
13108 --dropbox-impersonate string Impersonate this user when using a business account
13109 --dropbox-shared-files Instructs rclone to work on individual shared files
13110 --dropbox-shared-folders Instructs rclone to work on shared folders
13111 --dropbox-token string OAuth Access Token as a JSON blob
13112 --dropbox-token-url string Token server url
13113 --fichier-api-key string Your API Key, get it from https://1fichier.com/console/params.pl
13114 --fichier-encoding MultiEncoder This sets the encoding for the backend (default Slash,LtGt,DoubleQuote,SingleQuote,BackQuote,Dollar,BackSlash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot)
13115 --fichier-file-password string If you want to download a shared file that is password protected, add this parameter (obscured)
13116 --fichier-folder-password string If you want to list the files in a shared folder that is password protected, add this parameter (obscured)
13117 --fichier-shared-folder string If you want to download a shared folder, add this parameter
13118 --filefabric-encoding MultiEncoder This sets the encoding for the backend (default Slash,Del,Ctl,InvalidUtf8,Dot)
13119 --filefabric-permanent-token string Permanent Authentication Token
13120 --filefabric-root-folder-id string ID of the root folder
13121 --filefabric-token string Session Token
13122 --filefabric-token-expiry string Token expiry time
13123 --filefabric-url string URL of the Enterprise File Fabric to connect to
13124 --filefabric-version string Version read from the file fabric
13125 --ftp-close-timeout Duration Maximum time to wait for a response to close (default 1m0s)
13126 --ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
13127 --ftp-disable-epsv Disable using EPSV even if server advertises support
13128 --ftp-disable-mlsd Disable using MLSD even if server advertises support
13129 --ftp-disable-tls13 Disable TLS 1.3 (workaround for FTP servers with buggy TLS)
13130 --ftp-encoding MultiEncoder This sets the encoding for the backend (default Slash,Del,Ctl,RightSpace,Dot)
13131 --ftp-explicit-tls Use Explicit FTPS (FTP over TLS)
13132 --ftp-host string FTP host to connect to
13133 --ftp-idle-timeout Duration Max time before closing idle connections (default 1m0s)
13134 --ftp-no-check-certificate Do not verify the TLS certificate of the server
13135 --ftp-pass string FTP password (obscured)
13136 --ftp-port string FTP port, leave blank to use default (21)
13137 --ftp-shut-timeout Duration Maximum time to wait for data connection closing status (default 1m0s)
13138 --ftp-tls Use Implicit FTPS (FTP over TLS)
13139 --ftp-tls-cache-size int Size of TLS session cache for all control and data connections (default 32)
13140 --ftp-user string FTP username, leave blank for current username, $USER
13141 --ftp-writing-mdtm Use MDTM to set modification time (VsFtpd quirk)
13142 --gcs-anonymous Access public buckets and objects without credentials
13143 --gcs-auth-url string Auth server URL
13144 --gcs-bucket-acl string Access Control List for new buckets
13145 --gcs-bucket-policy-only Access checks should use bucket-level IAM policies
13146 --gcs-client-id string OAuth Client Id
13147 --gcs-client-secret string OAuth Client Secret
13148 --gcs-encoding MultiEncoder This sets the encoding for the backend (default Slash,CrLf,InvalidUtf8,Dot)
13149 --gcs-location string Location for the newly created buckets
13150 --gcs-object-acl string Access Control List for new objects
13151 --gcs-project-number string Project number
13152 --gcs-service-account-file string Service Account Credentials JSON file path
13153 --gcs-storage-class string The storage class to use when storing objects in Google Cloud Storage
13154 --gcs-token string OAuth Access Token as a JSON blob
13155 --gcs-token-url string Token server url
13156 --gphotos-auth-url string Auth server URL
13157 --gphotos-client-id string OAuth Client Id
13158 --gphotos-client-secret string OAuth Client Secret
13159 --gphotos-encoding MultiEncoder This sets the encoding for the backend (default Slash,CrLf,InvalidUtf8,Dot)
13160 --gphotos-include-archived Also view and download archived media
13161 --gphotos-read-only Set to make the Google Photos backend read only
13162 --gphotos-read-size Set to read the size of media items
13163 --gphotos-start-year int Year limits the photos to be downloaded to those which are uploaded after the given year (default 2000)
13164 --gphotos-token string OAuth Access Token as a JSON blob
13165 --gphotos-token-url string Token server url
13166 --hasher-auto-size SizeSuffix Auto-update checksum for files smaller than this size (disabled by default)
13167 --hasher-hashes CommaSepList Comma separated list of supported checksum types (default md5,sha1)
13168 --hasher-max-age Duration Maximum time to keep checksums in cache (0 = no cache, off = cache forever) (default off)
13169 --hasher-remote string Remote to cache checksums for (e.g. myRemote:path)
13170 --hdfs-data-transfer-protection string Kerberos data transfer protection: authentication|integrity|privacy
13171 --hdfs-encoding MultiEncoder This sets the encoding for the backend (default Slash,Colon,Del,Ctl,InvalidUtf8,Dot)
13172 --hdfs-namenode string Hadoop name node and port
13173 --hdfs-service-principal-name string Kerberos service principal name for the namenode
13174 --hdfs-username string Hadoop user name
13175 --http-headers CommaSepList Set HTTP headers for all transactions
13176 --http-no-head Don't use HEAD requests to find file sizes in dir listing
13177 --http-no-slash Set this if the site doesn't end directories with /
13178 --http-url string URL of http host to connect to
13179 --hubic-auth-url string Auth server URL
13180 --hubic-chunk-size SizeSuffix Above this size files will be chunked into a _segments container (default 5Gi)
13181 --hubic-client-id string OAuth Client Id
13182 --hubic-client-secret string OAuth Client Secret
13183 --hubic-encoding MultiEncoder This sets the encoding for the backend (default Slash,InvalidUtf8)
13184 --hubic-no-chunk Don't chunk files during streaming upload
13185 --hubic-token string OAuth Access Token as a JSON blob
13186 --hubic-token-url string Token server url
13187 --jottacloud-encoding MultiEncoder This sets the encoding for the backend (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Del,Ctl,InvalidUtf8,Dot)
13188 --jottacloud-hard-delete Delete files permanently rather than putting them into the trash
13189 --jottacloud-md5-memory-limit SizeSuffix Files bigger than this will be cached on disk to calculate the MD5 if required (default 10Mi)
13190 --jottacloud-no-versions Avoid server side versioning by deleting files and recreating files instead of overwriting them
13191 --jottacloud-trashed-only Only show files that are in the trash
13192 --jottacloud-upload-resume-limit SizeSuffix Files bigger than this can be resumed if the upload fail's (default 10Mi)
13193 --koofr-encoding MultiEncoder This sets the encoding for the backend (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
13194 --koofr-endpoint string The Koofr API endpoint to use (default "https://app.koofr.net")
13195 --koofr-mountid string Mount ID of the mount to use
13196 --koofr-password string Your Koofr password for rclone (generate one at https://app.koofr.net/app/admin/preferences/password) (obscured)
13197 --koofr-setmtime Does the backend support setting modification time (default true)
13198 --koofr-user string Your Koofr user name
13199 -l, --links Translate symlinks to/from regular files with a '.rclonelink' extension
13200 --local-case-insensitive Force the filesystem to report itself as case insensitive
13201 --local-case-sensitive Force the filesystem to report itself as case sensitive
13202 --local-encoding MultiEncoder This sets the encoding for the backend (default Slash,Dot)
13203 --local-no-check-updated Don't check to see if the files change during upload
13204 --local-no-preallocate Disable preallocation of disk space for transferred files
13205 --local-no-set-modtime Disable setting modtime
13206 --local-no-sparse Disable sparse files for multi-thread downloads
13207 --local-nounc string Disable UNC (long path names) conversion on Windows
13208 --local-unicode-normalization Apply unicode NFC normalization to paths and filenames
13209 --local-zero-size-links Assume the Stat size of links is zero (and read them instead) (deprecated)
13210 --mailru-check-hash What should copy do if file checksum is mismatched or invalid (default true)
13211 --mailru-encoding MultiEncoder This sets the encoding for the backend (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Del,Ctl,InvalidUtf8,Dot)
13212 --mailru-pass string Password (obscured)
13213 --mailru-speedup-enable Skip full upload if there is another file with same data hash (default true)
13214 --mailru-speedup-file-patterns string Comma separated list of file name patterns eligible for speedup (put by hash) (default "*.mkv,*.avi,*.mp4,*.mp3,*.zip,*.gz,*.rar,*.pdf")
13215 --mailru-speedup-max-disk SizeSuffix This option allows you to disable speedup (put by hash) for large files (default 3Gi)
13216 --mailru-speedup-max-memory SizeSuffix Files larger than the size given below will always be hashed on disk (default 32Mi)
13217 --mailru-user string User name (usually email)
13218 --mega-debug Output more debug from Mega
13219 --mega-encoding MultiEncoder This sets the encoding for the backend (default Slash,InvalidUtf8,Dot)
13220 --mega-hard-delete Delete files permanently rather than putting them into the trash
13221 --mega-pass string Password (obscured)
13222 --mega-user string User name
13223 -x, --one-file-system Don't cross filesystem boundaries (unix/macOS only)
13224 --onedrive-auth-url string Auth server URL
13225 --onedrive-chunk-size SizeSuffix Chunk size to upload files with - must be multiple of 320k (327,680 bytes) (default 10Mi)
13226 --onedrive-client-id string OAuth Client Id
13227 --onedrive-client-secret string OAuth Client Secret
13228 --onedrive-drive-id string The ID of the drive to use
13229 --onedrive-drive-type string The type of the drive (personal | business | documentLibrary)
13230 --onedrive-encoding MultiEncoder This sets the encoding for the backend (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Del,Ctl,LeftSpace,LeftTilde,RightSpace,RightPeriod,InvalidUtf8,Dot)
13231 --onedrive-expose-onenote-files Set to make OneNote files show up in directory listings
13232 --onedrive-link-password string Set the password for links created by the link command
13233 --onedrive-link-scope string Set the scope of the links created by the link command (default "anonymous")
13234 --onedrive-link-type string Set the type of the links created by the link command (default "view")
13235 --onedrive-list-chunk int Size of listing chunk (default 1000)
13236 --onedrive-no-versions Remove all versions on modifying operations
13237 --onedrive-region string Choose national cloud region for OneDrive (default "global")
13238 --onedrive-server-side-across-configs Allow server-side operations (e.g. copy) to work across different onedrive configs
13239 --onedrive-token string OAuth Access Token as a JSON blob
13240 --onedrive-token-url string Token server url
13241 --opendrive-chunk-size SizeSuffix Files will be uploaded in chunks this size (default 10Mi)
13242 --opendrive-encoding MultiEncoder This sets the encoding for the backend (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,LeftSpace,LeftCrLfHtVt,RightSpace,RightCrLfHtVt,InvalidUtf8,Dot)
13243 --opendrive-password string Password (obscured)
13244 --opendrive-username string Username
13245 --pcloud-auth-url string Auth server URL
13246 --pcloud-client-id string OAuth Client Id
13247 --pcloud-client-secret string OAuth Client Secret
13248 --pcloud-encoding MultiEncoder This sets the encoding for the backend (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
13249 --pcloud-hostname string Hostname to connect to (default "api.pcloud.com")
13250 --pcloud-root-folder-id string Fill in for rclone to use a non root folder as its starting point (default "d0")
13251 --pcloud-token string OAuth Access Token as a JSON blob
13252 --pcloud-token-url string Token server url
13253 --premiumizeme-encoding MultiEncoder This sets the encoding for the backend (default Slash,DoubleQuote,BackSlash,Del,Ctl,InvalidUtf8,Dot)
13254 --putio-encoding MultiEncoder This sets the encoding for the backend (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
13255 --qingstor-access-key-id string QingStor Access Key ID
13256 --qingstor-chunk-size SizeSuffix Chunk size to use for uploading (default 4Mi)
13257 --qingstor-connection-retries int Number of connection retries (default 3)
13258 --qingstor-encoding MultiEncoder This sets the encoding for the backend (default Slash,Ctl,InvalidUtf8)
13259 --qingstor-endpoint string Enter an endpoint URL to connection QingStor API
13260 --qingstor-env-auth Get QingStor credentials from runtime
13261 --qingstor-secret-access-key string QingStor Secret Access Key (password)
13262 --qingstor-upload-concurrency int Concurrency for multipart uploads (default 1)
13263 --qingstor-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200Mi)
13264 --qingstor-zone string Zone to connect to
13265 --s3-access-key-id string AWS Access Key ID
13266 --s3-acl string Canned ACL used when creating buckets and storing or copying objects
13267 --s3-bucket-acl string Canned ACL used when creating buckets
13268 --s3-chunk-size SizeSuffix Chunk size to use for uploading (default 5Mi)
13269 --s3-copy-cutoff SizeSuffix Cutoff for switching to multipart copy (default 4.656Gi)
13270 --s3-disable-checksum Don't store MD5 checksum with object metadata
13271 --s3-disable-http2 Disable usage of http2 for S3 backends
13272 --s3-download-url string Custom endpoint for downloads
13273 --s3-encoding MultiEncoder This sets the encoding for the backend (default Slash,InvalidUtf8,Dot)
13274 --s3-endpoint string Endpoint for S3 API
13275 --s3-env-auth Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars)
13276 --s3-force-path-style If true use path style access if false use virtual hosted style (default true)
13277 --s3-leave-parts-on-error If true avoid calling abort upload on a failure, leaving all successfully uploaded parts on S3 for manual recovery
13278 --s3-list-chunk int Size of listing chunk (response list for each ListObject S3 request) (default 1000)
13279 --s3-location-constraint string Location constraint - must be set to match the Region
13280 --s3-max-upload-parts int Maximum number of parts in a multipart upload (default 10000)
13281 --s3-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed (default 1m0s)
13282 --s3-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool
13283 --s3-no-check-bucket If set, don't attempt to check the bucket exists or create it
13284 --s3-no-head If set, don't HEAD uploaded objects to check integrity
13285 --s3-no-head-object If set, do not do HEAD before GET when getting objects
13286 --s3-profile string Profile to use in the shared credentials file
13287 --s3-provider string Choose your S3 provider
13288 --s3-region string Region to connect to
13289 --s3-requester-pays Enables requester pays option when interacting with S3 bucket
13290 --s3-secret-access-key string AWS Secret Access Key (password)
13291 --s3-server-side-encryption string The server-side encryption algorithm used when storing this object in S3
13292 --s3-session-token string An AWS session token
13293 --s3-shared-credentials-file string Path to the shared credentials file
13294 --s3-sse-customer-algorithm string If using SSE-C, the server-side encryption algorithm used when storing this object in S3
13295 --s3-sse-customer-key string If using SSE-C you must provide the secret encryption key used to encrypt/decrypt your data
13296 --s3-sse-customer-key-md5 string If using SSE-C you may provide the secret encryption key MD5 checksum (optional)
13297 --s3-sse-kms-key-id string If using KMS ID you must provide the ARN of Key
13298 --s3-storage-class string The storage class to use when storing new objects in S3
13299 --s3-upload-concurrency int Concurrency for multipart uploads (default 4)
13300 --s3-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200Mi)
13301 --s3-use-accelerate-endpoint If true use the AWS S3 accelerated endpoint
13302 --s3-v2-auth If true use v2 authentication
13303 --seafile-2fa Two-factor authentication ('true' if the account has 2FA enabled)
13304 --seafile-create-library Should rclone create a library if it doesn't exist
13305 --seafile-encoding MultiEncoder This sets the encoding for the backend (default Slash,DoubleQuote,BackSlash,Ctl,InvalidUtf8)
13306 --seafile-library string Name of the library
13307 --seafile-library-key string Library password (for encrypted libraries only) (obscured)
13308 --seafile-pass string Password (obscured)
13309 --seafile-url string URL of seafile host to connect to
13310 --seafile-user string User name (usually email address)
13311 --sftp-ask-password Allow asking for SFTP password when needed
13312 --sftp-disable-concurrent-reads If set don't use concurrent reads
13313 --sftp-disable-concurrent-writes If set don't use concurrent writes
13314 --sftp-disable-hashcheck Disable the execution of SSH commands to determine if remote file hashing is available
13315 --sftp-host string SSH host to connect to
13316 --sftp-idle-timeout Duration Max time before closing idle connections (default 1m0s)
13317 --sftp-key-file string Path to PEM-encoded private key file
13318 --sftp-key-file-pass string The passphrase to decrypt the PEM-encoded private key file (obscured)
13319 --sftp-key-pem string Raw PEM-encoded private key
13320 --sftp-key-use-agent When set forces the usage of the ssh-agent
13321 --sftp-known-hosts-file string Optional path to known_hosts file
13322 --sftp-md5sum-command string The command used to read md5 hashes
13323 --sftp-pass string SSH password, leave blank to use ssh-agent (obscured)
13324 --sftp-path-override string Override path used by SSH connection
13325 --sftp-port string SSH port, leave blank to use default (22)
13326 --sftp-pubkey-file string Optional path to public key file
13327 --sftp-server-command string Specifies the path or command to run a sftp server on the remote host
13328 --sftp-set-modtime Set the modified time on the remote if set (default true)
13329 --sftp-sha1sum-command string The command used to read sha1 hashes
13330 --sftp-skip-links Set to skip any symlinks and any other non regular files
13331 --sftp-subsystem string Specifies the SSH2 subsystem on the remote host (default "sftp")
13332 --sftp-use-fstat If set use fstat instead of stat
13333 --sftp-use-insecure-cipher Enable the use of insecure ciphers and key exchange methods
13334 --sftp-user string SSH username, leave blank for current username, $USER
13335 --sharefile-chunk-size SizeSuffix Upload chunk size (default 64Mi)
13336 --sharefile-encoding MultiEncoder This sets the encoding for the backend (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,LeftSpace,LeftPeriod,RightSpace,RightPeriod,InvalidUtf8,Dot)
13337 --sharefile-endpoint string Endpoint for API calls
13338 --sharefile-root-folder-id string ID of the root folder
13339 --sharefile-upload-cutoff SizeSuffix Cutoff for switching to multipart upload (default 128Mi)
13340 --sia-api-password string Sia Daemon API Password (obscured)
13341 --sia-api-url string Sia daemon API URL, like http://sia.daemon.host:9980 (default "http://127.0.0.1:9980")
13342 --sia-encoding MultiEncoder This sets the encoding for the backend (default Slash,Question,Hash,Percent,Del,Ctl,InvalidUtf8,Dot)
13343 --sia-user-agent string Siad User Agent (default "Sia-Agent")
13344 --skip-links Don't warn about skipped symlinks
13345 --sugarsync-access-key-id string Sugarsync Access Key ID
13346 --sugarsync-app-id string Sugarsync App ID
13347 --sugarsync-authorization string Sugarsync authorization
13348 --sugarsync-authorization-expiry string Sugarsync authorization expiry
13349 --sugarsync-deleted-id string Sugarsync deleted folder id
13350 --sugarsync-encoding MultiEncoder This sets the encoding for the backend (default Slash,Ctl,InvalidUtf8,Dot)
13351 --sugarsync-hard-delete Permanently delete files if true
13352 --sugarsync-private-access-key string Sugarsync Private Access Key
13353 --sugarsync-refresh-token string Sugarsync refresh token
13354 --sugarsync-root-id string Sugarsync root id
13355 --sugarsync-user string Sugarsync user
13356 --swift-application-credential-id string Application Credential ID (OS_APPLICATION_CREDENTIAL_ID)
13357 --swift-application-credential-name string Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME)
13358 --swift-application-credential-secret string Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET)
13359 --swift-auth string Authentication URL for server (OS_AUTH_URL)
13360 --swift-auth-token string Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
13361 --swift-auth-version int AuthVersion - optional - set to (1,2,3) if your auth URL has no version (ST_AUTH_VERSION)
13362 --swift-chunk-size SizeSuffix Above this size files will be chunked into a _segments container (default 5Gi)
13363 --swift-domain string User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
13364 --swift-encoding MultiEncoder This sets the encoding for the backend (default Slash,InvalidUtf8)
13365 --swift-endpoint-type string Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE) (default "public")
13366 --swift-env-auth Get swift credentials from environment variables in standard OpenStack form
13367 --swift-key string API key or password (OS_PASSWORD)
13368 --swift-leave-parts-on-error If true avoid calling abort upload on a failure
13369 --swift-no-chunk Don't chunk files during streaming upload
13370 --swift-region string Region name - optional (OS_REGION_NAME)
13371 --swift-storage-policy string The storage policy to use when creating a new container
13372 --swift-storage-url string Storage URL - optional (OS_STORAGE_URL)
13373 --swift-tenant string Tenant name - optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME)
13374 --swift-tenant-domain string Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
13375 --swift-tenant-id string Tenant ID - optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID)
13376 --swift-user string User name to log in (OS_USERNAME)
13377 --swift-user-id string User ID to log in - optional - most swift systems use user and leave this blank (v3 auth) (OS_USER_ID)
13378 --tardigrade-access-grant string Access grant
13379 --tardigrade-api-key string API key
13380 --tardigrade-passphrase string Encryption passphrase
13381 --tardigrade-provider string Choose an authentication method (default "existing")
13382 --tardigrade-satellite-address string Satellite address (default "us-central-1.tardigrade.io")
13383 --union-action-policy string Policy to choose upstream on ACTION category (default "epall")
13384 --union-cache-time int Cache time of usage and free space (in seconds) (default 120)
13385 --union-create-policy string Policy to choose upstream on CREATE category (default "epmfs")
13386 --union-search-policy string Policy to choose upstream on SEARCH category (default "ff")
13387 --union-upstreams string List of space separated upstreams
13388 --uptobox-access-token string Your access token
13389 --uptobox-encoding MultiEncoder This sets the encoding for the backend (default Slash,LtGt,DoubleQuote,BackQuote,Del,Ctl,LeftSpace,InvalidUtf8,Dot)
13390 --webdav-bearer-token string Bearer token instead of user/pass (e.g. a Macaroon)
13391 --webdav-bearer-token-command string Command to run to get a bearer token
13392 --webdav-encoding string This sets the encoding for the backend
13393 --webdav-headers CommaSepList Set HTTP headers for all transactions
13394 --webdav-pass string Password (obscured)
13395 --webdav-url string URL of http host to connect to
13396 --webdav-user string User name
13397 --webdav-vendor string Name of the Webdav site/service/software you are using
13398 --yandex-auth-url string Auth server URL
13399 --yandex-client-id string OAuth Client Id
13400 --yandex-client-secret string OAuth Client Secret
13401 --yandex-encoding MultiEncoder This sets the encoding for the backend (default Slash,Del,Ctl,InvalidUtf8,Dot)
13402 --yandex-token string OAuth Access Token as a JSON blob
13403 --yandex-token-url string Token server url
13404 --zoho-auth-url string Auth server URL
13405 --zoho-client-id string OAuth Client Id
13406 --zoho-client-secret string OAuth Client Secret
13407 --zoho-encoding MultiEncoder This sets the encoding for the backend (default Del,Ctl,InvalidUtf8)
13408 --zoho-region string Zoho region to connect to
13409 --zoho-token string OAuth Access Token as a JSON blob
13410 --zoho-token-url string Token server url
13411
13413 Introduction
13414 Docker 1.9 has added support for creating named volumes
13415 (https://docs.docker.com/storage/volumes/) via command-line interface
13416 (https://docs.docker.com/engine/reference/commandline/volume_create/)
13417 and mounting them in containers as a way to share data between them.
13418 Since Docker 1.10 you can create named volumes with Docker Compose
13419 (https://docs.docker.com/compose/) by descriptions in docker-com‐
13420 pose.yml (https://docs.docker.com/compose/compose-file/compose-file-
13421 v2/#volume-configuration-reference) files for use by container groups
13422 on a single host. As of Docker 1.12 volumes are supported by Docker
13423 Swarm (https://docs.docker.com/engine/swarm/key-concepts/) included
13424 with Docker Engine and created from descriptions in swarm compose v3
13425 (https://docs.docker.com/compose/compose-file/compose-file-v3/#volume-
13426 configuration-reference) files for use with swarm stacks across multi‐
13427 ple cluster nodes.
13428
13429 Docker Volume Plugins (https://docs.docker.com/engine/extend/plug‐
13430 ins_volume/) augment the default local volume driver included in Docker
13431 with stateful volumes shared across containers and hosts. Unlike local
13432 volumes, your data will not be deleted when such volume is removed.
13433 Plugins can run managed by the docker daemon, as a native system ser‐
13434 vice (under systemd, sysv or upstart) or as a standalone executable.
13435 Rclone can run as docker volume plugin in all these modes. It inter‐
13436 acts with the local docker daemon via plugin API (https://docs.dock‐
13437 er.com/engine/extend/plugin_api/) and handles mounting of remote file
13438 systems into docker containers so it must run on the same host as the
13439 docker daemon or on every Swarm node.
13440
13441 Getting started
13442 In the first example we will use the SFTP (https://rclone.org/sftp/)
13443 rclone volume with Docker engine on a standalone Ubuntu machine.
13444
13445 Start from installing Docker (https://docs.docker.com/engine/install/)
13446 on the host.
13447
13448 The FUSE driver is a prerequisite for rclone mounting and should be in‐
13449 stalled on host:
13450
13451 sudo apt-get -y install fuse
13452
13453 Create two directories required by rclone docker plugin:
13454
13455 sudo mkdir -p /var/lib/docker-plugins/rclone/config
13456 sudo mkdir -p /var/lib/docker-plugins/rclone/cache
13457
13458 Install the managed rclone docker plugin for your architecture (here
13459 amd64):
13460
13461 docker plugin install rclone/docker-volume-rclone:amd64 args="-v" --alias rclone --grant-all-permissions
13462 docker plugin list
13463
13464 Create your SFTP volume (https://rclone.org/sftp/#standard-options):
13465
13466 docker volume create firstvolume -d rclone -o type=sftp -o sftp-host=_hostname_ -o sftp-user=_username_ -o sftp-pass=_password_ -o allow-other=true
13467
13468 Note that since all options are static, you don't even have to run
13469 rclone config or create the rclone.conf file (but the config directory
13470 should still be present). In the simplest case you can use localhost
13471 as hostname and your SSH credentials as username and password. You can
13472 also change the remote path to your home directory on the host, for ex‐
13473 ample -o path=/home/username.
13474
13475 Time to create a test container and mount the volume into it:
13476
13477 docker run --rm -it -v firstvolume:/mnt --workdir /mnt ubuntu:latest bash
13478
13479 If all goes well, you will enter the new container and change right to
13480 the mounted SFTP remote. You can type ls to list the mounted directory
13481 or otherwise play with it. Type exit when you are done. The container
13482 will stop but the volume will stay, ready to be reused. When it's not
13483 needed anymore, remove it:
13484
13485 docker volume list
13486 docker volume remove firstvolume
13487
13488 Now let us try something more elaborate: Google Drive
13489 (https://rclone.org/drive/) volume on multi-node Docker Swarm.
13490
13491 You should start from installing Docker and FUSE, creating plugin di‐
13492 rectories and installing rclone plugin on every swarm node. Then setup
13493 the Swarm (https://docs.docker.com/engine/swarm/swarm-mode/).
13494
13495 Google Drive volumes need an access token which can be setup via web
13496 browser and will be periodically renewed by rclone. The managed plugin
13497 cannot run a browser so we will use a technique similar to the rclone
13498 setup on a headless box (https://rclone.org/remote_setup/).
13499
13500 Run rclone config (https://rclone.org/commands/rclone_config_create/)
13501 on another machine equipped with web browser and graphical user inter‐
13502 face. Create the Google Drive remote (https://rclone.org/drive/#stan‐
13503 dard-options). When done, transfer the resulting rclone.conf to the
13504 Swarm cluster and save as /var/lib/docker-plugins/rclone/con‐
13505 fig/rclone.conf on every node. By default this location is accessible
13506 only to the root user so you will need appropriate privileges. The re‐
13507 sulting config will look like this:
13508
13509 [gdrive]
13510 type = drive
13511 scope = drive
13512 drive_id = 1234567...
13513 root_folder_id = 0Abcd...
13514 token = {"access_token":...}
13515
13516 Now create the file named example.yml with a swarm stack description
13517 like this:
13518
13519 version: '3'
13520 services:
13521 heimdall:
13522 image: linuxserver/heimdall:latest
13523 ports: [8080:80]
13524 volumes: [configdata:/config]
13525 volumes:
13526 configdata:
13527 driver: rclone
13528 driver_opts:
13529 remote: 'gdrive:heimdall'
13530 allow_other: 'true'
13531 vfs_cache_mode: full
13532 poll_interval: 0
13533
13534 and run the stack:
13535
13536 docker stack deploy example -c ./example.yml
13537
13538 After a few seconds docker will spread the parsed stack description
13539 over cluster, create the example_heimdall service on port 8080, run
13540 service containers on one or more cluster nodes and request the exam‐
13541 ple_configdata volume from rclone plugins on the node hosts. You can
13542 use the following commands to confirm results:
13543
13544 docker service ls
13545 docker service ps example_heimdall
13546 docker volume ls
13547
13548 Point your browser to http://cluster.host.address:8080 and play with
13549 the service. Stop it with docker stack remove example when you are
13550 done. Note that the example_configdata volume(s) created on demand at
13551 the cluster nodes will not be automatically removed together with the
13552 stack but stay for future reuse. You can remove them manually by in‐
13553 voking the docker volume remove example_configdata command on every
13554 node.
13555
13556 Creating Volumes via CLI
13557 Volumes can be created with docker volume create (https://docs.dock‐
13558 er.com/engine/reference/commandline/volume_create/). Here are a few
13559 examples:
13560
13561 docker volume create vol1 -d rclone -o remote=storj: -o vfs-cache-mode=full
13562 docker volume create vol2 -d rclone -o remote=:tardigrade,access_grant=xxx:heimdall
13563 docker volume create vol3 -d rclone -o type=tardigrade -o path=heimdall -o tardigrade-access-grant=xxx -o poll-interval=0
13564
13565 Note the -d rclone flag that tells docker to request volume from the
13566 rclone driver. This works even if you installed managed driver by its
13567 full name rclone/docker-volume-rclone because you provided the --alias
13568 rclone option.
13569
13570 Volumes can be inspected as follows:
13571
13572 docker volume list
13573 docker volume inspect vol1
13574
13575 Volume Configuration
13576 Rclone flags and volume options are set via the -o flag to the docker
13577 volume create command. They include backend-specific parameters as
13578 well as mount and VFS options. Also there are a few special -o op‐
13579 tions: remote, fs, type, path, mount-type and persist.
13580
13581 remote determines an existing remote name from the config file, with
13582 trailing colon and optionally with a remote path. See the full syntax
13583 in the rclone documentation (https://rclone.org/docs/#syntax-of-remote-
13584 paths). This option can be aliased as fs to prevent confusion with the
13585 remote parameter of such backends as crypt or alias.
13586
13587 The remote=:backend:dir/subdir syntax can be used to create on-the-fly
13588 (config-less) remotes (https://rclone.org/docs/#backend-path-to-dir),
13589 while the type and path options provide a simpler alternative for this.
13590 Using two split options
13591
13592 -o type=backend -o path=dir/subdir
13593
13594 is equivalent to the combined syntax
13595
13596 -o remote=:backend:dir/subdir
13597
13598 but is arguably easier to parameterize in scripts. The path part is
13599 optional.
13600
13601 Mount and VFS options (https://rclone.org/commands/rclone_serve_dock‐
13602 er/#options) as well as backend parameters
13603 (https://rclone.org/flags/#backend-flags) are named like their twin
13604 command-line flags without the -- CLI prefix. Optionally you can use
13605 underscores instead of dashes in option names. For example,
13606 --vfs-cache-mode full becomes -o vfs-cache-mode=full or -o
13607 vfs_cache_mode=full. Boolean CLI flags without value will gain the
13608 true value, e.g. --allow-other becomes -o allow-other=true or -o al‐
13609 low_other=true.
13610
13611 Please note that you can provide parameters only for the backend imme‐
13612 diately referenced by the backend type of mounted remote. If this is a
13613 wrapping backend like alias, chunker or crypt, you cannot provide op‐
13614 tions for the referred to remote or backend. This limitation is im‐
13615 posed by the rclone connection string parser. The only workaround is
13616 to feed plugin with rclone.conf or configure plugin arguments (see be‐
13617 low).
13618
13619 Special Volume Options
13620 mount-type determines the mount method and in general can be one of:
13621 mount, cmount, or mount2. This can be aliased as mount_type. It
13622 should be noted that the managed rclone docker plugin currently does
13623 not support the cmount method and mount2 is rarely needed. This option
13624 defaults to the first found method, which is usually mount so you gen‐
13625 erally won't need it.
13626
13627 persist is a reserved boolean (true/false) option. In future it will
13628 allow to persist on-the-fly remotes in the plugin rclone.conf file.
13629
13630 Connection Strings
13631 The remote value can be extended with connection strings
13632 (https://rclone.org/docs/#connection-strings) as an alternative way to
13633 supply backend parameters. This is equivalent to the -o backend op‐
13634 tions with one syntactic difference. Inside connection string the
13635 backend prefix must be dropped from parameter names but in the -o
13636 param=value array it must be present. For instance, compare the fol‐
13637 lowing option array
13638
13639 -o remote=:sftp:/home -o sftp-host=localhost
13640
13641 with equivalent connection string:
13642
13643 -o remote=:sftp,host=localhost:/home
13644
13645 This difference exists because flag options -o key=val include not only
13646 backend parameters but also mount/VFS flags and possibly other set‐
13647 tings. Also it allows to discriminate the remote option from the
13648 crypt-remote (or similarly named backend parameters) and arguably sim‐
13649 plifies scripting due to clearer value substitution.
13650
13651 Using with Swarm or Compose
13652 Both Docker Swarm and Docker Compose use YAML
13653 (http://yaml.org/spec/1.2/spec.html)-formatted text files to describe
13654 groups (stacks) of containers, their properties, networks and volumes.
13655 Compose uses the compose v2 (https://docs.docker.com/compose/compose-
13656 file/compose-file-v2/#volume-configuration-reference) format, Swarm us‐
13657 es the compose v3 (https://docs.docker.com/compose/compose-file/com‐
13658 pose-file-v3/#volume-configuration-reference) format. They are mostly
13659 similar, differences are explained in the docker documentation
13660 (https://docs.docker.com/compose/compose-file/compose-versioning/#up‐
13661 grading).
13662
13663 Volumes are described by the children of the top-level volumes: node.
13664 Each of them should be named after its volume and have at least two el‐
13665 ements, the self-explanatory driver: rclone value and the driver_opts:
13666 structure playing the same role as -o key=val CLI flags:
13667
13668 volumes:
13669 volume_name_1:
13670 driver: rclone
13671 driver_opts:
13672 remote: 'gdrive:'
13673 allow_other: 'true'
13674 vfs_cache_mode: full
13675 token: '{"type": "borrower", "expires": "2021-12-31"}'
13676 poll_interval: 0
13677
13678 Notice a few important details: - YAML prefers _ in option names in‐
13679 stead of -. - YAML treats single and double quotes interchangeably.
13680 Simple strings and integers can be left unquoted. - Boolean values
13681 must be quoted like 'true' or "false" because these two words are re‐
13682 served by YAML. - The filesystem string is keyed with remote (or with
13683 fs). Normally you can omit quotes here, but if the string ends with
13684 colon, you must quote it like remote: "storage_box:". - YAML is picky
13685 about surrounding braces in values as this is in fact another syntax
13686 for key/value mappings (http://yaml.org/spec/1.2/spec.html#id2790832).
13687 For example, JSON access tokens usually contain double quotes and sur‐
13688 rounding braces, so you must put them in single quotes.
13689
13690 Installing as Managed Plugin
13691 Docker daemon can install plugins from an image registry and run them
13692 managed. We maintain the docker-volume-rclone (https://hub.dock‐
13693 er.com/p/rclone/docker-volume-rclone/) plugin image on Docker Hub
13694 (https://hub.docker.com).
13695
13696 Rclone volume plugin requires Docker Engine >= 19.03.15
13697
13698 The plugin requires presence of two directories on the host before it
13699 can be installed. Note that plugin will not create them automatically.
13700 By default they must exist on host at the following locations (though
13701 you can tweak the paths): - /var/lib/docker-plugins/rclone/config is
13702 reserved for the rclone.conf config file and must exist even if it's
13703 empty and the config file is not present. - /var/lib/docker-plug‐
13704 ins/rclone/cache holds the plugin state file as well as optional VFS
13705 caches.
13706
13707 You can install managed plugin (https://docs.docker.com/engine/refer‐
13708 ence/commandline/plugin_install/) with default settings as follows:
13709
13710 docker plugin install rclone/docker-volume-rclone:amd64 --grant-all-permissions --alias rclone
13711
13712 The :amd64 part of the image specification after colon is called a tag.
13713 Usually you will want to install the latest plugin for your architec‐
13714 ture. In this case the tag will just name it, like amd64 above. The
13715 following plugin architectures are currently available: - amd64 - arm64
13716 - arm-v7
13717
13718 Sometimes you might want a concrete plugin version, not the latest one.
13719 Then you should use image tag in the form :ARCHITECTURE-VERSION. For
13720 example, to install plugin version v1.56.2 on architecture arm64 you
13721 will use tag arm64-1.56.2 (note the removed v) so the full image speci‐
13722 fication becomes rclone/docker-volume-rclone:arm64-1.56.2.
13723
13724 We also provide the latest plugin tag, but since docker does not sup‐
13725 port multi-architecture plugins as of the time of this writing, this
13726 tag is currently an alias for amd64. By convention the latest tag is
13727 the default one and can be omitted, thus both rclone/docker-vol‐
13728 ume-rclone:latest and just rclone/docker-volume-rclone will refer to
13729 the latest plugin release for the amd64 platform.
13730
13731 Also the amd64 part can be omitted from the versioned rclone plugin
13732 tags. For example, rclone image reference rclone/docker-vol‐
13733 ume-rclone:amd64-1.56.2 can be abbreviated as rclone/docker-vol‐
13734 ume-rclone:1.56.2 for convenience. However, for non-intel architec‐
13735 tures you still have to use the full tag as amd64 or latest will fail
13736 to start.
13737
13738 Managed plugin is in fact a special container running in a namespace
13739 separate from normal docker containers. Inside it runs the rclone
13740 serve docker command. The config and cache directories are bind-mount‐
13741 ed into the container at start. The docker daemon connects to a unix
13742 socket created by the command inside the container. The command cre‐
13743 ates on-demand remote mounts right inside, then docker machinery propa‐
13744 gates them through kernel mount namespaces and bind-mounts into re‐
13745 questing user containers.
13746
13747 You can tweak a few plugin settings after installation when it's dis‐
13748 abled (not in use), for instance:
13749
13750 docker plugin disable rclone
13751 docker plugin set rclone RCLONE_VERBOSE=2 config=/etc/rclone args="--vfs-cache-mode=writes --allow-other"
13752 docker plugin enable rclone
13753 docker plugin inspect rclone
13754
13755 Note that if docker refuses to disable the plugin, you should find and
13756 remove all active volumes connected with it as well as containers and
13757 swarm services that use them. This is rather tedious so please care‐
13758 fully plan in advance.
13759
13760 You can tweak the following settings: args, config, cache, HTTP_PROXY,
13761 HTTPS_PROXY, NO_PROXY and RCLONE_VERBOSE. It's your task to keep plug‐
13762 in settings in sync across swarm cluster nodes.
13763
13764 args sets command-line arguments for the rclone serve docker command
13765 (none by default). Arguments should be separated by space so you will
13766 normally want to put them in quotes on the docker plugin set
13767 (https://docs.docker.com/engine/reference/commandline/plugin_set/) com‐
13768 mand line. Both serve docker flags (https://rclone.org/com‐
13769 mands/rclone_serve_docker/#options) and generic rclone flags
13770 (https://rclone.org/flags/) are supported, including backend parameters
13771 that will be used as defaults for volume creation. Note that plugin
13772 will fail (due to this docker bug (https://github.com/moby/mo‐
13773 by/blob/v20.10.7/plugin/v2/plugin.go#L195)) if the args value is empty.
13774 Use e.g. args="-v" as a workaround.
13775
13776 config=/host/dir sets alternative host location for the config directo‐
13777 ry. Plugin will look for rclone.conf here. It's not an error if the
13778 config file is not present but the directory must exist. Please note
13779 that plugin can periodically rewrite the config file, for example when
13780 it renews storage access tokens. Keep this in mind and try to avoid
13781 races between the plugin and other instances of rclone on the host that
13782 might try to change the config simultaneously resulting in corrupted
13783 rclone.conf. You can also put stuff like private key files for SFTP
13784 remotes in this directory. Just note that it's bind-mounted inside the
13785 plugin container at the predefined path /data/config. For example, if
13786 your key file is named sftp-box1.key on the host, the corresponding
13787 volume config option should read -o sftp-key-file=/data/con‐
13788 fig/sftp-box1.key.
13789
13790 cache=/host/dir sets alternative host location for the cache directory.
13791 The plugin will keep VFS caches here. Also it will create and maintain
13792 the docker-plugin.state file in this directory. When the plugin is
13793 restarted or reinstalled, it will look in this file to recreate any
13794 volumes that existed previously. However, they will not be re-mounted
13795 into consuming containers after restart. Usually this is not a problem
13796 as the docker daemon normally will restart affected user containers af‐
13797 ter failures, daemon restarts or host reboots.
13798
13799 RCLONE_VERBOSE sets plugin verbosity from 0 (errors only, by default)
13800 to 2 (debugging). Verbosity can be also tweaked via args="-v [-v]
13801 ...". Since arguments are more generic, you will rarely need this set‐
13802 ting. The plugin output by default feeds the docker daemon log on lo‐
13803 cal host. Log entries are reflected as errors in the docker log but
13804 retain their actual level assigned by rclone in the encapsulated mes‐
13805 sage string.
13806
13807 HTTP_PROXY, HTTPS_PROXY, NO_PROXY customize the plugin proxy settings.
13808
13809 You can set custom plugin options right when you install it, in one go:
13810
13811 docker plugin remove rclone
13812 docker plugin install rclone/docker-volume-rclone:amd64 \
13813 --alias rclone --grant-all-permissions \
13814 args="-v --allow-other" config=/etc/rclone
13815 docker plugin inspect rclone
13816
13817 Healthchecks
13818 The docker plugin volume protocol doesn't provide a way for plugins to
13819 inform the docker daemon that a volume is (un-)available. As a work‐
13820 around you can setup a healthcheck to verify that the mount is respond‐
13821 ing, for example:
13822
13823 services:
13824 my_service:
13825 image: my_image
13826 healthcheck:
13827 test: ls /path/to/rclone/mount || exit 1
13828 interval: 1m
13829 timeout: 15s
13830 retries: 3
13831 start_period: 15s
13832
13833 Running Plugin under Systemd
13834 In most cases you should prefer managed mode. Moreover, MacOS and Win‐
13835 dows do not support native Docker plugins. Please use managed mode on
13836 these systems. Proceed further only if you are on Linux.
13837
13838 First, install rclone (https://rclone.org/install/). You can just run
13839 it (type rclone serve docker and hit enter) for the test.
13840
13841 Install FUSE:
13842
13843 sudo apt-get -y install fuse
13844
13845 Download two systemd configuration files: docker-volume-rclone.service
13846 (https://raw.githubusercontent.com/rclone/rclone/master/contrib/docker-
13847 plugin/systemd/docker-volume-rclone.service) and docker-vol‐
13848 ume-rclone.socket (https://raw.githubusercontent.com/rclone/rclone/mas‐
13849 ter/contrib/docker-plugin/systemd/docker-volume-rclone.socket).
13850
13851 Put them to the /etc/systemd/system/ directory:
13852
13853 cp docker-volume-plugin.service /etc/systemd/system/
13854 cp docker-volume-plugin.socket /etc/systemd/system/
13855
13856 Please note that all commands in this section must be run as root but
13857 we omit sudo prefix for brevity. Now create directories required by
13858 the service:
13859
13860 mkdir -p /var/lib/docker-volumes/rclone
13861 mkdir -p /var/lib/docker-plugins/rclone/config
13862 mkdir -p /var/lib/docker-plugins/rclone/cache
13863
13864 Run the docker plugin service in the socket activated mode:
13865
13866 systemctl daemon-reload
13867 systemctl start docker-volume-rclone.service
13868 systemctl enable docker-volume-rclone.socket
13869 systemctl start docker-volume-rclone.socket
13870 systemctl restart docker
13871
13872 Or run the service directly: - run systemctl daemon-reload to let sys‐
13873 temd pick up new config - run systemctl enable docker-vol‐
13874 ume-rclone.service to make the new service start automatically when you
13875 power on your machine. - run systemctl start docker-volume-rclone.ser‐
13876 vice to start the service now. - run systemctl restart docker to
13877 restart docker daemon and let it detect the new plugin socket. Note
13878 that this step is not needed in managed mode where docker knows about
13879 plugin state changes.
13880
13881 The two methods are equivalent from the user perspective, but I person‐
13882 ally prefer socket activation.
13883
13884 Troubleshooting
13885 You can see managed plugin settings (https://docs.docker.com/engine/ex‐
13886 tend/#debugging-plugins) with
13887
13888 docker plugin list
13889 docker plugin inspect rclone
13890
13891 Note that docker (including latest 20.10.7) will not show actual values
13892 of args, just the defaults.
13893
13894 Use journalctl --unit docker to see managed plugin output as part of
13895 the docker daemon log. Note that docker reflects plugin lines as er‐
13896 rors but their actual level can be seen from encapsulated message
13897 string.
13898
13899 You will usually install the latest version of managed plugin for your
13900 platform. Use the following commands to print the actual installed
13901 version:
13902
13903 PLUGID=$(docker plugin list --no-trunc | awk '/rclone/{print$1}')
13904 sudo runc --root /run/docker/runtime-runc/plugins.moby exec $PLUGID rclone version
13905
13906 You can even use runc to run shell inside the plugin container:
13907
13908 sudo runc --root /run/docker/runtime-runc/plugins.moby exec --tty $PLUGID bash
13909
13910 Also you can use curl to check the plugin socket connectivity:
13911
13912 docker plugin list --no-trunc
13913 PLUGID=123abc...
13914 sudo curl -H Content-Type:application/json -XPOST -d {} --unix-socket /run/docker/plugins/$PLUGID/rclone.sock http://localhost/Plugin.Activate
13915
13916 though this is rarely needed.
13917
13918 Caveats
13919 Finally I'd like to mention a caveat with updating volume settings.
13920 Docker CLI does not have a dedicated command like docker volume update.
13921 It may be tempting to invoke docker volume create with updated options
13922 on existing volume, but there is a gotcha. The command will do noth‐
13923 ing, it won't even return an error. I hope that docker maintainers
13924 will fix this some day. In the meantime be aware that you must remove
13925 your volume before recreating it with new settings:
13926
13927 docker volume remove my_vol
13928 docker volume create my_vol -d rclone -o opt1=new_val1 ...
13929
13930 and verify that settings did update:
13931
13932 docker volume list
13933 docker volume inspect my_vol
13934
13935 If docker refuses to remove the volume, you should find containers or
13936 swarm services that use it and stop them first.
13937
13939 This is a backend for the 1fichier (https://1fichier.com) cloud storage
13940 service. Note that a Premium subscription is required to use the API.
13941
13942 Paths are specified as remote:path
13943
13944 Paths may be as deep as required, e.g. remote:directory/subdirectory.
13945
13946 Configuration
13947 The initial setup for 1Fichier involves getting the API key from the
13948 website which you need to do in your browser.
13949
13950 Here is an example of how to make a remote called remote. First run:
13951
13952 rclone config
13953
13954 This will guide you through an interactive setup process:
13955
13956 No remotes found - make a new one
13957 n) New remote
13958 s) Set configuration password
13959 q) Quit config
13960 n/s/q> n
13961 name> remote
13962 Type of storage to configure.
13963 Enter a string value. Press Enter for the default ("").
13964 Choose a number from below, or type in your own value
13965 [snip]
13966 XX / 1Fichier
13967 \ "fichier"
13968 [snip]
13969 Storage> fichier
13970 ** See help for fichier backend at: https://rclone.org/fichier/ **
13971
13972 Your API Key, get it from https://1fichier.com/console/params.pl
13973 Enter a string value. Press Enter for the default ("").
13974 api_key> example_key
13975
13976 Edit advanced config? (y/n)
13977 y) Yes
13978 n) No
13979 y/n>
13980 Remote config
13981 --------------------
13982 [remote]
13983 type = fichier
13984 api_key = example_key
13985 --------------------
13986 y) Yes this is OK
13987 e) Edit this remote
13988 d) Delete this remote
13989 y/e/d> y
13990
13991 Once configured you can then use rclone like this,
13992
13993 List directories in top level of your 1Fichier account
13994
13995 rclone lsd remote:
13996
13997 List all the files in your 1Fichier account
13998
13999 rclone ls remote:
14000
14001 To copy a local directory to a 1Fichier directory called backup
14002
14003 rclone copy /home/source remote:backup
14004
14005 Modified time and hashes
14006 1Fichier does not support modification times. It supports the
14007 Whirlpool hash algorithm.
14008
14009 Duplicated files
14010 1Fichier can have two files with exactly the same name and path (unlike
14011 a normal file system).
14012
14013 Duplicated files cause problems with the syncing and you will see mes‐
14014 sages in the log about duplicates.
14015
14016 Restricted filename characters
14017 In addition to the default restricted characters set
14018 (https://rclone.org/overview/#restricted-characters) the following
14019 characters are also replaced:
14020
14021 Character Value Replacement
14022 ────────────────────────────────
14023 \ 0x5C \
14024 < 0x3C <
14025 > 0x3E >
14026 " 0x22 "
14027 $ 0x24 $
14028 ` 0x60 `
14029 ' 0x27 '
14030
14031 File names can also not start or end with the following characters.
14032 These only get replaced if they are the first or last character in the
14033 name:
14034
14035 Character Value Replacement
14036 ────────────────────────────────
14037 SP 0x20 ␠
14038
14039 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
14040 view/#invalid-utf8), as they can't be used in JSON strings.
14041
14042 Standard options
14043 Here are the standard options specific to fichier (1Fichier).
14044
14045 --fichier-api-key
14046 Your API Key, get it from https://1fichier.com/console/params.pl.
14047
14048 • Config: api_key
14049
14050 • Env Var: RCLONE_FICHIER_API_KEY
14051
14052 • Type: string
14053
14054 • Default: ""
14055
14056 Advanced options
14057 Here are the advanced options specific to fichier (1Fichier).
14058
14059 --fichier-shared-folder
14060 If you want to download a shared folder, add this parameter.
14061
14062 • Config: shared_folder
14063
14064 • Env Var: RCLONE_FICHIER_SHARED_FOLDER
14065
14066 • Type: string
14067
14068 • Default: ""
14069
14070 --fichier-file-password
14071 If you want to download a shared file that is password protected, add
14072 this parameter.
14073
14074 NB Input to this must be obscured - see rclone obscure
14075 (https://rclone.org/commands/rclone_obscure/).
14076
14077 • Config: file_password
14078
14079 • Env Var: RCLONE_FICHIER_FILE_PASSWORD
14080
14081 • Type: string
14082
14083 • Default: ""
14084
14085 --fichier-folder-password
14086 If you want to list the files in a shared folder that is password pro‐
14087 tected, add this parameter.
14088
14089 NB Input to this must be obscured - see rclone obscure
14090 (https://rclone.org/commands/rclone_obscure/).
14091
14092 • Config: folder_password
14093
14094 • Env Var: RCLONE_FICHIER_FOLDER_PASSWORD
14095
14096 • Type: string
14097
14098 • Default: ""
14099
14100 --fichier-encoding
14101 This sets the encoding for the backend.
14102
14103 See the encoding section in the overview (https://rclone.org/over‐
14104 view/#encoding) for more info.
14105
14106 • Config: encoding
14107
14108 • Env Var: RCLONE_FICHIER_ENCODING
14109
14110 • Type: MultiEncoder
14111
14112 • Default: Slash,LtGt,DoubleQuote,SingleQuote,BackQuote,Dollar,Back‐
14113 Slash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot
14114
14115 Limitations
14116 rclone about is not supported by the 1Fichier backend. Backends with‐
14117 out this capability cannot determine free space for an rclone mount or
14118 use policy mfs (most free space) as a member of an rclone union remote.
14119
14120 See List of backends that do not support rclone about
14121 (https://rclone.org/overview/#optional-features) See rclone about
14122 (https://rclone.org/commands/rclone_about/)
14123
14125 The alias remote provides a new name for another remote.
14126
14127 Paths may be as deep as required or a local path, e.g. remote:directo‐
14128 ry/subdirectory or /directory/subdirectory.
14129
14130 During the initial setup with rclone config you will specify the target
14131 remote. The target remote can either be a local path or another re‐
14132 mote.
14133
14134 Subfolders can be used in target remote. Assume an alias remote named
14135 backup with the target mydrive:private/backup. Invoking rclone mkdir
14136 backup:desktop is exactly the same as invoking rclone mkdir my‐
14137 drive:private/backup/desktop.
14138
14139 There will be no special handling of paths containing .. segments.
14140 Invoking rclone mkdir backup:../desktop is exactly the same as invoking
14141 rclone mkdir mydrive:private/backup/../desktop. The empty path is not
14142 allowed as a remote. To alias the current directory use . instead.
14143
14144 Configuration
14145 Here is an example of how to make an alias called remote for local
14146 folder. First run:
14147
14148 rclone config
14149
14150 This will guide you through an interactive setup process:
14151
14152 No remotes found - make a new one
14153 n) New remote
14154 s) Set configuration password
14155 q) Quit config
14156 n/s/q> n
14157 name> remote
14158 Type of storage to configure.
14159 Choose a number from below, or type in your own value
14160 [snip]
14161 XX / Alias for an existing remote
14162 \ "alias"
14163 [snip]
14164 Storage> alias
14165 Remote or path to alias.
14166 Can be "myremote:path/to/dir", "myremote:bucket", "myremote:" or "/local/path".
14167 remote> /mnt/storage/backup
14168 Remote config
14169 --------------------
14170 [remote]
14171 remote = /mnt/storage/backup
14172 --------------------
14173 y) Yes this is OK
14174 e) Edit this remote
14175 d) Delete this remote
14176 y/e/d> y
14177 Current remotes:
14178
14179 Name Type
14180 ==== ====
14181 remote alias
14182
14183 e) Edit existing remote
14184 n) New remote
14185 d) Delete remote
14186 r) Rename remote
14187 c) Copy remote
14188 s) Set configuration password
14189 q) Quit config
14190 e/n/d/r/c/s/q> q
14191
14192 Once configured you can then use rclone like this,
14193
14194 List directories in top level in /mnt/storage/backup
14195
14196 rclone lsd remote:
14197
14198 List all the files in /mnt/storage/backup
14199
14200 rclone ls remote:
14201
14202 Copy another local directory to the alias directory called source
14203
14204 rclone copy /home/source remote:source
14205
14206 Standard options
14207 Here are the standard options specific to alias (Alias for an existing
14208 remote).
14209
14210 --alias-remote
14211 Remote or path to alias.
14212
14213 Can be "myremote:path/to/dir", "myremote:bucket", "myremote:" or "/lo‐
14214 cal/path".
14215
14216 • Config: remote
14217
14218 • Env Var: RCLONE_ALIAS_REMOTE
14219
14220 • Type: string
14221
14222 • Default: ""
14223
14225 Amazon Drive, formerly known as Amazon Cloud Drive, is a cloud storage
14226 service run by Amazon for consumers.
14227
14228 Status
14229 Important: rclone supports Amazon Drive only if you have your own set
14230 of API keys. Unfortunately the Amazon Drive developer program
14231 (https://developer.amazon.com/amazon-drive) is now closed to new en‐
14232 tries so if you don't already have your own set of keys you will not be
14233 able to use rclone with Amazon Drive.
14234
14235 For the history on why rclone no longer has a set of Amazon Drive API
14236 keys see the forum (https://forum.rclone.org/t/rclone-has-been-banned-
14237 from-amazon-drive/2314).
14238
14239 If you happen to know anyone who works at Amazon then please ask them
14240 to re-instate rclone into the Amazon Drive developer program - thanks!
14241
14242 Configuration
14243 The initial setup for Amazon Drive involves getting a token from Amazon
14244 which you need to do in your browser. rclone config walks you through
14245 it.
14246
14247 The configuration process for Amazon Drive may involve using an oauth
14248 proxy (https://github.com/ncw/oauthproxy). This is used to keep the
14249 Amazon credentials out of the source code. The proxy runs in Google's
14250 very secure App Engine environment and doesn't store any credentials
14251 which pass through it.
14252
14253 Since rclone doesn't currently have its own Amazon Drive credentials so
14254 you will either need to have your own client_id and client_secret with
14255 Amazon Drive, or use a third party oauth proxy in which case you will
14256 need to enter client_id, client_secret, auth_url and token_url.
14257
14258 Note also if you are not using Amazon's auth_url and token_url, (ie you
14259 filled in something for those) then if setting up on a remote machine
14260 you can only use the copying the config method of configuration
14261 (https://rclone.org/remote_setup/#configuring-by-copying-the-config-
14262 file) - rclone authorize will not work.
14263
14264 Here is an example of how to make a remote called remote. First run:
14265
14266 rclone config
14267
14268 This will guide you through an interactive setup process:
14269
14270 No remotes found - make a new one
14271 n) New remote
14272 r) Rename remote
14273 c) Copy remote
14274 s) Set configuration password
14275 q) Quit config
14276 n/r/c/s/q> n
14277 name> remote
14278 Type of storage to configure.
14279 Choose a number from below, or type in your own value
14280 [snip]
14281 XX / Amazon Drive
14282 \ "amazon cloud drive"
14283 [snip]
14284 Storage> amazon cloud drive
14285 Amazon Application Client Id - required.
14286 client_id> your client ID goes here
14287 Amazon Application Client Secret - required.
14288 client_secret> your client secret goes here
14289 Auth server URL - leave blank to use Amazon's.
14290 auth_url> Optional auth URL
14291 Token server url - leave blank to use Amazon's.
14292 token_url> Optional token URL
14293 Remote config
14294 Make sure your Redirect URL is set to "http://127.0.0.1:53682/" in your custom config.
14295 Use auto config?
14296 * Say Y if not sure
14297 * Say N if you are working on a remote or headless machine
14298 y) Yes
14299 n) No
14300 y/n> y
14301 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
14302 Log in and authorize rclone for access
14303 Waiting for code...
14304 Got code
14305 --------------------
14306 [remote]
14307 client_id = your client ID goes here
14308 client_secret = your client secret goes here
14309 auth_url = Optional auth URL
14310 token_url = Optional token URL
14311 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxx","token_type":"bearer","refresh_token":"xxxxxxxxxxxxxxxxxx","expiry":"2015-09-06T16:07:39.658438471+01:00"}
14312 --------------------
14313 y) Yes this is OK
14314 e) Edit this remote
14315 d) Delete this remote
14316 y/e/d> y
14317
14318 See the remote setup docs (https://rclone.org/remote_setup/) for how to
14319 set it up on a machine with no Internet browser available.
14320
14321 Note that rclone runs a webserver on your local machine to collect the
14322 token as returned from Amazon. This only runs from the moment it opens
14323 your browser to the moment you get back the verification code. This is
14324 on http://127.0.0.1:53682/ and this it may require you to unblock it
14325 temporarily if you are running a host firewall.
14326
14327 Once configured you can then use rclone like this,
14328
14329 List directories in top level of your Amazon Drive
14330
14331 rclone lsd remote:
14332
14333 List all the files in your Amazon Drive
14334
14335 rclone ls remote:
14336
14337 To copy a local directory to an Amazon Drive directory called backup
14338
14339 rclone copy /home/source remote:backup
14340
14341 Modified time and MD5SUMs
14342 Amazon Drive doesn't allow modification times to be changed via the API
14343 so these won't be accurate or used for syncing.
14344
14345 It does store MD5SUMs so for a more accurate sync, you can use the
14346 --checksum flag.
14347
14348 Restricted filename characters
14349 Character Value Replacement
14350 ────────────────────────────────
14351 NUL 0x00 ␀
14352 / 0x2F /
14353
14354 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
14355 view/#invalid-utf8), as they can't be used in JSON strings.
14356
14357 Deleting files
14358 Any files you delete with rclone will end up in the trash. Amazon
14359 don't provide an API to permanently delete files, nor to empty the
14360 trash, so you will have to do that with one of Amazon's apps or via the
14361 Amazon Drive website. As of November 17, 2016, files are automatically
14362 deleted by Amazon from the trash after 30 days.
14363
14364 Using with non .com Amazon accounts
14365 Let's say you usually use amazon.co.uk. When you authenticate with
14366 rclone it will take you to an amazon.com page to log in. Your ama‐
14367 zon.co.uk email and password should work here just fine.
14368
14369 Standard options
14370 Here are the standard options specific to amazon cloud drive (Amazon
14371 Drive).
14372
14373 --acd-client-id
14374 OAuth Client Id.
14375
14376 Leave blank normally.
14377
14378 • Config: client_id
14379
14380 • Env Var: RCLONE_ACD_CLIENT_ID
14381
14382 • Type: string
14383
14384 • Default: ""
14385
14386 --acd-client-secret
14387 OAuth Client Secret.
14388
14389 Leave blank normally.
14390
14391 • Config: client_secret
14392
14393 • Env Var: RCLONE_ACD_CLIENT_SECRET
14394
14395 • Type: string
14396
14397 • Default: ""
14398
14399 Advanced options
14400 Here are the advanced options specific to amazon cloud drive (Amazon
14401 Drive).
14402
14403 --acd-token
14404 OAuth Access Token as a JSON blob.
14405
14406 • Config: token
14407
14408 • Env Var: RCLONE_ACD_TOKEN
14409
14410 • Type: string
14411
14412 • Default: ""
14413
14414 --acd-auth-url
14415 Auth server URL.
14416
14417 Leave blank to use the provider defaults.
14418
14419 • Config: auth_url
14420
14421 • Env Var: RCLONE_ACD_AUTH_URL
14422
14423 • Type: string
14424
14425 • Default: ""
14426
14427 --acd-token-url
14428 Token server url.
14429
14430 Leave blank to use the provider defaults.
14431
14432 • Config: token_url
14433
14434 • Env Var: RCLONE_ACD_TOKEN_URL
14435
14436 • Type: string
14437
14438 • Default: ""
14439
14440 --acd-checkpoint
14441 Checkpoint for internal polling (debug).
14442
14443 • Config: checkpoint
14444
14445 • Env Var: RCLONE_ACD_CHECKPOINT
14446
14447 • Type: string
14448
14449 • Default: ""
14450
14451 --acd-upload-wait-per-gb
14452 Additional time per GiB to wait after a failed complete upload to see
14453 if it appears.
14454
14455 Sometimes Amazon Drive gives an error when a file has been fully up‐
14456 loaded but the file appears anyway after a little while. This happens
14457 sometimes for files over 1 GiB in size and nearly every time for files
14458 bigger than 10 GiB. This parameter controls the time rclone waits for
14459 the file to appear.
14460
14461 The default value for this parameter is 3 minutes per GiB, so by de‐
14462 fault it will wait 3 minutes for every GiB uploaded to see if the file
14463 appears.
14464
14465 You can disable this feature by setting it to 0. This may cause con‐
14466 flict errors as rclone retries the failed upload but the file will most
14467 likely appear correctly eventually.
14468
14469 These values were determined empirically by observing lots of uploads
14470 of big files for a range of file sizes.
14471
14472 Upload with the "-v" flag to see more info about what rclone is doing
14473 in this situation.
14474
14475 • Config: upload_wait_per_gb
14476
14477 • Env Var: RCLONE_ACD_UPLOAD_WAIT_PER_GB
14478
14479 • Type: Duration
14480
14481 • Default: 3m0s
14482
14483 --acd-templink-threshold
14484 Files >= this size will be downloaded via their tempLink.
14485
14486 Files this size or more will be downloaded via their "tempLink". This
14487 is to work around a problem with Amazon Drive which blocks downloads of
14488 files bigger than about 10 GiB. The default for this is 9 GiB which
14489 shouldn't need to be changed.
14490
14491 To download files above this threshold, rclone requests a "tempLink"
14492 which downloads the file through a temporary URL directly from the un‐
14493 derlying S3 storage.
14494
14495 • Config: templink_threshold
14496
14497 • Env Var: RCLONE_ACD_TEMPLINK_THRESHOLD
14498
14499 • Type: SizeSuffix
14500
14501 • Default: 9Gi
14502
14503 --acd-encoding
14504 This sets the encoding for the backend.
14505
14506 See the encoding section in the overview (https://rclone.org/over‐
14507 view/#encoding) for more info.
14508
14509 • Config: encoding
14510
14511 • Env Var: RCLONE_ACD_ENCODING
14512
14513 • Type: MultiEncoder
14514
14515 • Default: Slash,InvalidUtf8,Dot
14516
14517 Limitations
14518 Note that Amazon Drive is case insensitive so you can't have a file
14519 called "Hello.doc" and one called "hello.doc".
14520
14521 Amazon Drive has rate limiting so you may notice errors in the sync
14522 (429 errors). rclone will automatically retry the sync up to 3 times
14523 by default (see --retries flag) which should hopefully work around this
14524 problem.
14525
14526 Amazon Drive has an internal limit of file sizes that can be uploaded
14527 to the service. This limit is not officially published, but all files
14528 larger than this will fail.
14529
14530 At the time of writing (Jan 2016) is in the area of 50 GiB per file.
14531 This means that larger files are likely to fail.
14532
14533 Unfortunately there is no way for rclone to see that this failure is
14534 because of file size, so it will retry the operation, as any other
14535 failure. To avoid this problem, use --max-size 50000M option to limit
14536 the maximum size of uploaded files. Note that --max-size does not
14537 split files into segments, it only ignores files over this size.
14538
14539 rclone about is not supported by the Amazon Drive backend. Backends
14540 without this capability cannot determine free space for an rclone mount
14541 or use policy mfs (most free space) as a member of an rclone union re‐
14542 mote.
14543
14544 See List of backends that do not support rclone about
14545 (https://rclone.org/overview/#optional-features) See rclone about
14546 (https://rclone.org/commands/rclone_about/)
14547
14549 The S3 backend can be used with a number of different providers:
14550
14551 • AWS S3
14552
14553 • Alibaba Cloud (Aliyun) Object Storage System (OSS)
14554
14555 • Ceph
14556
14557 • DigitalOcean Spaces
14558
14559 • Dreamhost
14560
14561 • IBM COS S3
14562
14563 • Minio
14564
14565 • Scaleway
14566
14567 • SeaweedFS
14568
14569 • StackPath
14570
14571 • Tencent Cloud Object Storage (COS)
14572
14573 • Wasabi
14574
14575 Paths are specified as remote:bucket (or remote: for the lsd command.)
14576 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
14577
14578 Once you have made a remote (see the provider specific section above)
14579 you can use it like this:
14580
14581 See all buckets
14582
14583 rclone lsd remote:
14584
14585 Make a new bucket
14586
14587 rclone mkdir remote:bucket
14588
14589 List the contents of a bucket
14590
14591 rclone ls remote:bucket
14592
14593 Sync /home/local/directory to the remote bucket, deleting any excess
14594 files in the bucket.
14595
14596 rclone sync -i /home/local/directory remote:bucket
14597
14598 Configuration
14599 Here is an example of making an s3 configuration for the AWS S3
14600 provider. Most applies to the other providers as well, any differences
14601 are described below.
14602
14603 First run
14604
14605 rclone config
14606
14607 This will guide you through an interactive setup process.
14608
14609 No remotes found - make a new one
14610 n) New remote
14611 s) Set configuration password
14612 q) Quit config
14613 n/s/q> n
14614 name> remote
14615 Type of storage to configure.
14616 Choose a number from below, or type in your own value
14617 [snip]
14618 XX / Amazon S3 Compliant Storage Providers including AWS, Ceph, Dreamhost, IBM COS, Minio, and Tencent COS
14619 \ "s3"
14620 [snip]
14621 Storage> s3
14622 Choose your S3 provider.
14623 Choose a number from below, or type in your own value
14624 1 / Amazon Web Services (AWS) S3
14625 \ "AWS"
14626 2 / Ceph Object Storage
14627 \ "Ceph"
14628 3 / Digital Ocean Spaces
14629 \ "DigitalOcean"
14630 4 / Dreamhost DreamObjects
14631 \ "Dreamhost"
14632 5 / IBM COS S3
14633 \ "IBMCOS"
14634 6 / Minio Object Storage
14635 \ "Minio"
14636 7 / Wasabi Object Storage
14637 \ "Wasabi"
14638 8 / Any other S3 compatible provider
14639 \ "Other"
14640 provider> 1
14641 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars). Only applies if access_key_id and secret_access_key is blank.
14642 Choose a number from below, or type in your own value
14643 1 / Enter AWS credentials in the next step
14644 \ "false"
14645 2 / Get AWS credentials from the environment (env vars or IAM)
14646 \ "true"
14647 env_auth> 1
14648 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
14649 access_key_id> XXX
14650 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
14651 secret_access_key> YYY
14652 Region to connect to.
14653 Choose a number from below, or type in your own value
14654 / The default endpoint - a good choice if you are unsure.
14655 1 | US Region, Northern Virginia, or Pacific Northwest.
14656 | Leave location constraint empty.
14657 \ "us-east-1"
14658 / US East (Ohio) Region
14659 2 | Needs location constraint us-east-2.
14660 \ "us-east-2"
14661 / US West (Oregon) Region
14662 3 | Needs location constraint us-west-2.
14663 \ "us-west-2"
14664 / US West (Northern California) Region
14665 4 | Needs location constraint us-west-1.
14666 \ "us-west-1"
14667 / Canada (Central) Region
14668 5 | Needs location constraint ca-central-1.
14669 \ "ca-central-1"
14670 / EU (Ireland) Region
14671 6 | Needs location constraint EU or eu-west-1.
14672 \ "eu-west-1"
14673 / EU (London) Region
14674 7 | Needs location constraint eu-west-2.
14675 \ "eu-west-2"
14676 / EU (Frankfurt) Region
14677 8 | Needs location constraint eu-central-1.
14678 \ "eu-central-1"
14679 / Asia Pacific (Singapore) Region
14680 9 | Needs location constraint ap-southeast-1.
14681 \ "ap-southeast-1"
14682 / Asia Pacific (Sydney) Region
14683 10 | Needs location constraint ap-southeast-2.
14684 \ "ap-southeast-2"
14685 / Asia Pacific (Tokyo) Region
14686 11 | Needs location constraint ap-northeast-1.
14687 \ "ap-northeast-1"
14688 / Asia Pacific (Seoul)
14689 12 | Needs location constraint ap-northeast-2.
14690 \ "ap-northeast-2"
14691 / Asia Pacific (Mumbai)
14692 13 | Needs location constraint ap-south-1.
14693 \ "ap-south-1"
14694 / Asia Pacific (Hong Kong) Region
14695 14 | Needs location constraint ap-east-1.
14696 \ "ap-east-1"
14697 / South America (Sao Paulo) Region
14698 15 | Needs location constraint sa-east-1.
14699 \ "sa-east-1"
14700 region> 1
14701 Endpoint for S3 API.
14702 Leave blank if using AWS to use the default endpoint for the region.
14703 endpoint>
14704 Location constraint - must be set to match the Region. Used when creating buckets only.
14705 Choose a number from below, or type in your own value
14706 1 / Empty for US Region, Northern Virginia, or Pacific Northwest.
14707 \ ""
14708 2 / US East (Ohio) Region.
14709 \ "us-east-2"
14710 3 / US West (Oregon) Region.
14711 \ "us-west-2"
14712 4 / US West (Northern California) Region.
14713 \ "us-west-1"
14714 5 / Canada (Central) Region.
14715 \ "ca-central-1"
14716 6 / EU (Ireland) Region.
14717 \ "eu-west-1"
14718 7 / EU (London) Region.
14719 \ "eu-west-2"
14720 8 / EU Region.
14721 \ "EU"
14722 9 / Asia Pacific (Singapore) Region.
14723 \ "ap-southeast-1"
14724 10 / Asia Pacific (Sydney) Region.
14725 \ "ap-southeast-2"
14726 11 / Asia Pacific (Tokyo) Region.
14727 \ "ap-northeast-1"
14728 12 / Asia Pacific (Seoul)
14729 \ "ap-northeast-2"
14730 13 / Asia Pacific (Mumbai)
14731 \ "ap-south-1"
14732 14 / Asia Pacific (Hong Kong)
14733 \ "ap-east-1"
14734 15 / South America (Sao Paulo) Region.
14735 \ "sa-east-1"
14736 location_constraint> 1
14737 Canned ACL used when creating buckets and/or storing objects in S3.
14738 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
14739 Choose a number from below, or type in your own value
14740 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
14741 \ "private"
14742 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
14743 \ "public-read"
14744 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
14745 3 | Granting this on a bucket is generally not recommended.
14746 \ "public-read-write"
14747 4 / Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ access.
14748 \ "authenticated-read"
14749 / Object owner gets FULL_CONTROL. Bucket owner gets READ access.
14750 5 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
14751 \ "bucket-owner-read"
14752 / Both the object owner and the bucket owner get FULL_CONTROL over the object.
14753 6 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
14754 \ "bucket-owner-full-control"
14755 acl> 1
14756 The server-side encryption algorithm used when storing this object in S3.
14757 Choose a number from below, or type in your own value
14758 1 / None
14759 \ ""
14760 2 / AES256
14761 \ "AES256"
14762 server_side_encryption> 1
14763 The storage class to use when storing objects in S3.
14764 Choose a number from below, or type in your own value
14765 1 / Default
14766 \ ""
14767 2 / Standard storage class
14768 \ "STANDARD"
14769 3 / Reduced redundancy storage class
14770 \ "REDUCED_REDUNDANCY"
14771 4 / Standard Infrequent Access storage class
14772 \ "STANDARD_IA"
14773 5 / One Zone Infrequent Access storage class
14774 \ "ONEZONE_IA"
14775 6 / Glacier storage class
14776 \ "GLACIER"
14777 7 / Glacier Deep Archive storage class
14778 \ "DEEP_ARCHIVE"
14779 8 / Intelligent-Tiering storage class
14780 \ "INTELLIGENT_TIERING"
14781 storage_class> 1
14782 Remote config
14783 --------------------
14784 [remote]
14785 type = s3
14786 provider = AWS
14787 env_auth = false
14788 access_key_id = XXX
14789 secret_access_key = YYY
14790 region = us-east-1
14791 endpoint =
14792 location_constraint =
14793 acl = private
14794 server_side_encryption =
14795 storage_class =
14796 --------------------
14797 y) Yes this is OK
14798 e) Edit this remote
14799 d) Delete this remote
14800 y/e/d>
14801
14802 Modified time
14803 The modified time is stored as metadata on the object as
14804 X-Amz-Meta-Mtime as floating point since the epoch, accurate to 1 ns.
14805
14806 If the modification time needs to be updated rclone will attempt to
14807 perform a server side copy to update the modification if the object can
14808 be copied in a single part. In the case the object is larger than 5Gb
14809 or is in Glacier or Glacier Deep Archive storage the object will be up‐
14810 loaded rather than copied.
14811
14812 Note that reading this from the object takes an additional HEAD request
14813 as the metadata isn't returned in object listings.
14814
14815 Reducing costs
14816 Avoiding HEAD requests to read the modification time
14817 By default rclone will use the modification time of objects stored in
14818 S3 for syncing. This is stored in object metadata which unfortunately
14819 takes an extra HEAD request to read which can be expensive (in time and
14820 money).
14821
14822 The modification time is used by default for all operations that re‐
14823 quire checking the time a file was last updated. It allows rclone to
14824 treat the remote more like a true filesystem, but it is inefficient on
14825 S3 because it requires an extra API call to retrieve the metadata.
14826
14827 The extra API calls can be avoided when syncing (using rclone sync or
14828 rclone copy) in a few different ways, each with its own tradeoffs.
14829
14830 • --size-only
14831
14832 • Only checks the size of files.
14833
14834 • Uses no extra transactions.
14835
14836 • If the file doesn't change size then rclone won't detect it has
14837 changed.
14838
14839 • rclone sync --size-only /path/to/source s3:bucket
14840
14841 • --checksum
14842
14843 • Checks the size and MD5 checksum of files.
14844
14845 • Uses no extra transactions.
14846
14847 • The most accurate detection of changes possible.
14848
14849 • Will cause the source to read an MD5 checksum which, if it is a lo‐
14850 cal disk, will cause lots of disk activity.
14851
14852 • If the source and destination are both S3 this is the recommended
14853 flag to use for maximum efficiency.
14854
14855 • rclone sync --checksum /path/to/source s3:bucket
14856
14857 • --update --use-server-modtime
14858
14859 • Uses no extra transactions.
14860
14861 • Modification time becomes the time the object was uploaded.
14862
14863 • For many operations this is sufficient to determine if it needs up‐
14864 loading.
14865
14866 • Using --update along with --use-server-modtime, avoids the extra
14867 API call and uploads files whose local modification time is newer
14868 than the time it was last uploaded.
14869
14870 • Files created with timestamps in the past will be missed by the
14871 sync.
14872
14873 • rclone sync --update --use-server-modtime /path/to/source s3:bucket
14874
14875 These flags can and should be used in combination with --fast-list -
14876 see below.
14877
14878 If using rclone mount or any command using the VFS (eg rclone serve)
14879 commands then you might want to consider using the VFS flag --no-mod‐
14880 time which will stop rclone reading the modification time for every ob‐
14881 ject. You could also use --use-server-modtime if you are happy with
14882 the modification times of the objects being the time of upload.
14883
14884 Avoiding GET requests to read directory listings
14885 Rclone's default directory traversal is to process each directory indi‐
14886 vidually. This takes one API call per directory. Using the
14887 --fast-list flag will read all info about the the objects into memory
14888 first using a smaller number of API calls (one per 1000 objects). See
14889 the rclone docs (https://rclone.org/docs/#fast-list) for more details.
14890
14891 rclone sync --fast-list --checksum /path/to/source s3:bucket
14892
14893 --fast-list trades off API transactions for memory use. As a rough
14894 guide rclone uses 1k of memory per object stored, so using --fast-list
14895 on a sync of a million objects will use roughly 1 GiB of RAM.
14896
14897 If you are only copying a small number of files into a big repository
14898 then using --no-traverse is a good idea. This finds objects directly
14899 instead of through directory listings. You can do a "top-up" sync very
14900 cheaply by using --max-age and --no-traverse to copy only recent files,
14901 eg
14902
14903 rclone copy --min-age 24h --no-traverse /path/to/source s3:bucket
14904
14905 You'd then do a full rclone sync less often.
14906
14907 Note that --fast-list isn't required in the top-up sync.
14908
14909 Avoiding HEAD requests after PUT
14910 By default rclone will HEAD every object it uploads. It does this to
14911 check the object got uploaded correctly.
14912
14913 You can disable this with the --s3-no-head option - see there for more
14914 details.
14915
14916 Setting this flag increases the chance for undetected upload failures.
14917
14918 Hashes
14919 For small objects which weren't uploaded as multipart uploads (objects
14920 sized below --s3-upload-cutoff if uploaded with rclone) rclone uses the
14921 ETag: header as an MD5 checksum.
14922
14923 However for objects which were uploaded as multipart uploads or with
14924 server side encryption (SSE-AWS or SSE-C) the ETag header is no longer
14925 the MD5 sum of the data, so rclone adds an additional piece of metadata
14926 X-Amz-Meta-Md5chksum which is a base64 encoded MD5 hash (in the same
14927 format as is required for Content-MD5).
14928
14929 For large objects, calculating this hash can take some time so the ad‐
14930 dition of this hash can be disabled with --s3-disable-checksum. This
14931 will mean that these objects do not have an MD5 checksum.
14932
14933 Note that reading this from the object takes an additional HEAD request
14934 as the metadata isn't returned in object listings.
14935
14936 Cleanup
14937 If you run rclone cleanup s3:bucket then it will remove all pending
14938 multipart uploads older than 24 hours. You can use the -i flag to see
14939 exactly what it will do. If you want more control over the expiry date
14940 then run rclone backend cleanup s3:bucket -o max-age=1h to expire all
14941 uploads older than one hour. You can use rclone backend list-multi‐
14942 part-uploads s3:bucket to see the pending multipart uploads.
14943
14944 Restricted filename characters
14945 S3 allows any valid UTF-8 string as a key.
14946
14947 Invalid UTF-8 bytes will be replaced (https://rclone.org/overview/#in‐
14948 valid-utf8), as they can't be used in XML.
14949
14950 The following characters are replaced since these are problematic when
14951 dealing with the REST API:
14952
14953 Character Value Replacement
14954 ────────────────────────────────
14955 NUL 0x00 ␀
14956 / 0x2F /
14957
14958 The encoding will also encode these file names as they don't seem to
14959 work with the SDK properly:
14960
14961 File name Replacement
14962 ────────────────────────
14963 . .
14964 .. ..
14965
14966 Multipart uploads
14967 rclone supports multipart uploads with S3 which means that it can up‐
14968 load files bigger than 5 GiB.
14969
14970 Note that files uploaded both with multipart upload and through crypt
14971 remotes do not have MD5 sums.
14972
14973 rclone switches from single part uploads to multipart uploads at the
14974 point specified by --s3-upload-cutoff. This can be a maximum of 5 GiB
14975 and a minimum of 0 (ie always upload multipart files).
14976
14977 The chunk sizes used in the multipart upload are specified by
14978 --s3-chunk-size and the number of chunks uploaded concurrently is spec‐
14979 ified by --s3-upload-concurrency.
14980
14981 Multipart uploads will use --transfers * --s3-upload-concurrency *
14982 --s3-chunk-size extra memory. Single part uploads to not use extra
14983 memory.
14984
14985 Single part transfers can be faster than multipart transfers or slower
14986 depending on your latency from S3 - the more latency, the more likely
14987 single part transfers will be faster.
14988
14989 Increasing --s3-upload-concurrency will increase throughput (8 would be
14990 a sensible value) and increasing --s3-chunk-size also increases
14991 throughput (16M would be sensible). Increasing either of these will
14992 use more memory. The default values are high enough to gain most of
14993 the possible performance without using too much memory.
14994
14995 Buckets and Regions
14996 With Amazon S3 you can list buckets (rclone lsd) using any region, but
14997 you can only access the content of a bucket from the region it was cre‐
14998 ated in. If you attempt to access a bucket from the wrong region, you
14999 will get an error, incorrect region, the bucket is not in 'XXX' region.
15000
15001 Authentication
15002 There are a number of ways to supply rclone with a set of AWS creden‐
15003 tials, with and without using the environment.
15004
15005 The different authentication methods are tried in this order:
15006
15007 • Directly in the rclone configuration file (env_auth = false in the
15008 config file):
15009
15010 • access_key_id and secret_access_key are required.
15011
15012 • session_token can be optionally set when using AWS STS.
15013
15014 • Runtime configuration (env_auth = true in the config file):
15015
15016 • Export the following environment variables before running rclone:
15017
15018 • Access Key ID: AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY
15019
15020 • Secret Access Key: AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY
15021
15022 • Session Token: AWS_SESSION_TOKEN (optional)
15023
15024 • Or, use a named profile (https://docs.aws.amazon.com/cli/lat‐
15025 est/userguide/cli-multiple-profiles.html):
15026
15027 • Profile files are standard files used by AWS CLI tools
15028
15029 • By default it will use the profile in your home directory (e.g.
15030 ~/.aws/credentials on unix based systems) file and the "default"
15031 profile, to change set these environment variables:
15032
15033 • AWS_SHARED_CREDENTIALS_FILE to control which file.
15034
15035 • AWS_PROFILE to control which profile to use.
15036
15037 • Or, run rclone in an ECS task with an IAM role (AWS only).
15038
15039 • Or, run rclone on an EC2 instance with an IAM role (AWS only).
15040
15041 • Or, run rclone in an EKS pod with an IAM role that is associated
15042 with a service account (AWS only).
15043
15044 If none of these option actually end up providing rclone with AWS cre‐
15045 dentials then S3 interaction will be non-authenticated (see below).
15046
15047 S3 Permissions
15048 When using the sync subcommand of rclone the following minimum permis‐
15049 sions are required to be available on the bucket being written to:
15050
15051 • ListBucket
15052
15053 • DeleteObject
15054
15055 • GetObject
15056
15057 • PutObject
15058
15059 • PutObjectACL
15060
15061 When using the lsd subcommand, the ListAllMyBuckets permission is re‐
15062 quired.
15063
15064 Example policy:
15065
15066 {
15067 "Version": "2012-10-17",
15068 "Statement": [
15069 {
15070 "Effect": "Allow",
15071 "Principal": {
15072 "AWS": "arn:aws:iam::USER_SID:user/USER_NAME"
15073 },
15074 "Action": [
15075 "s3:ListBucket",
15076 "s3:DeleteObject",
15077 "s3:GetObject",
15078 "s3:PutObject",
15079 "s3:PutObjectAcl"
15080 ],
15081 "Resource": [
15082 "arn:aws:s3:::BUCKET_NAME/*",
15083 "arn:aws:s3:::BUCKET_NAME"
15084 ]
15085 },
15086 {
15087 "Effect": "Allow",
15088 "Action": "s3:ListAllMyBuckets",
15089 "Resource": "arn:aws:s3:::*"
15090 }
15091 ]
15092 }
15093
15094 Notes on above:
15095
15096 1. This is a policy that can be used when creating bucket. It assumes
15097 that USER_NAME has been created.
15098
15099 2. The Resource entry must include both resource ARNs, as one implies
15100 the bucket and the other implies the bucket's objects.
15101
15102 For reference, here's an Ansible script
15103 (https://gist.github.com/ebridges/ebfc9042dd7c756cd101cfa807b7ae2b)
15104 that will generate one or more buckets that will work with rclone sync.
15105
15106 Key Management System (KMS)
15107 If you are using server-side encryption with KMS then you must make
15108 sure rclone is configured with server_side_encryption = aws:kms other‐
15109 wise you will find you can't transfer small objects - these will create
15110 checksum errors.
15111
15112 Glacier and Glacier Deep Archive
15113 You can upload objects using the glacier storage class or transition
15114 them to glacier using a lifecycle policy (http://docs.aws.ama‐
15115 zon.com/AmazonS3/latest/user-guide/create-lifecycle.html). The bucket
15116 can still be synced or copied into normally, but if rclone tries to ac‐
15117 cess data from the glacier storage class you will see an error like be‐
15118 low.
15119
15120 2017/09/11 19:07:43 Failed to sync: failed to open source object: Object in GLACIER, restore first: path/to/file
15121
15122 In this case you need to restore (http://docs.aws.amazon.com/Ama‐
15123 zonS3/latest/user-guide/restore-archived-objects.html) the object(s) in
15124 question before using rclone.
15125
15126 Note that rclone only speaks the S3 API it does not speak the Glacier
15127 Vault API, so rclone cannot directly access Glacier Vaults.
15128
15129 Standard options
15130 Here are the standard options specific to s3 (Amazon S3 Compliant Stor‐
15131 age Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost,
15132 IBM COS, Minio, SeaweedFS, and Tencent COS).
15133
15134 --s3-provider
15135 Choose your S3 provider.
15136
15137 • Config: provider
15138
15139 • Env Var: RCLONE_S3_PROVIDER
15140
15141 • Type: string
15142
15143 • Default: ""
15144
15145 • Examples:
15146
15147 • "AWS"
15148
15149 • Amazon Web Services (AWS) S3
15150
15151 • "Alibaba"
15152
15153 • Alibaba Cloud Object Storage System (OSS) formerly Aliyun
15154
15155 • "Ceph"
15156
15157 • Ceph Object Storage
15158
15159 • "DigitalOcean"
15160
15161 • Digital Ocean Spaces
15162
15163 • "Dreamhost"
15164
15165 • Dreamhost DreamObjects
15166
15167 • "IBMCOS"
15168
15169 • IBM COS S3
15170
15171 • "Minio"
15172
15173 • Minio Object Storage
15174
15175 • "Netease"
15176
15177 • Netease Object Storage (NOS)
15178
15179 • "Scaleway"
15180
15181 • Scaleway Object Storage
15182
15183 • "SeaweedFS"
15184
15185 • SeaweedFS S3
15186
15187 • "StackPath"
15188
15189 • StackPath Object Storage
15190
15191 • "TencentCOS"
15192
15193 • Tencent Cloud Object Storage (COS)
15194
15195 • "Wasabi"
15196
15197 • Wasabi Object Storage
15198
15199 • "Other"
15200
15201 • Any other S3 compatible provider
15202
15203 --s3-env-auth
15204 Get AWS credentials from runtime (environment variables or EC2/ECS meta
15205 data if no env vars).
15206
15207 Only applies if access_key_id and secret_access_key is blank.
15208
15209 • Config: env_auth
15210
15211 • Env Var: RCLONE_S3_ENV_AUTH
15212
15213 • Type: bool
15214
15215 • Default: false
15216
15217 • Examples:
15218
15219 • "false"
15220
15221 • Enter AWS credentials in the next step.
15222
15223 • "true"
15224
15225 • Get AWS credentials from the environment (env vars or IAM).
15226
15227 --s3-access-key-id
15228 AWS Access Key ID.
15229
15230 Leave blank for anonymous access or runtime credentials.
15231
15232 • Config: access_key_id
15233
15234 • Env Var: RCLONE_S3_ACCESS_KEY_ID
15235
15236 • Type: string
15237
15238 • Default: ""
15239
15240 --s3-secret-access-key
15241 AWS Secret Access Key (password).
15242
15243 Leave blank for anonymous access or runtime credentials.
15244
15245 • Config: secret_access_key
15246
15247 • Env Var: RCLONE_S3_SECRET_ACCESS_KEY
15248
15249 • Type: string
15250
15251 • Default: ""
15252
15253 --s3-region
15254 Region to connect to.
15255
15256 • Config: region
15257
15258 • Env Var: RCLONE_S3_REGION
15259
15260 • Type: string
15261
15262 • Default: ""
15263
15264 • Examples:
15265
15266 • "us-east-1"
15267
15268 • The default endpoint - a good choice if you are unsure.
15269
15270 • US Region, Northern Virginia, or Pacific Northwest.
15271
15272 • Leave location constraint empty.
15273
15274 • "us-east-2"
15275
15276 • US East (Ohio) Region.
15277
15278 • Needs location constraint us-east-2.
15279
15280 • "us-west-1"
15281
15282 • US West (Northern California) Region.
15283
15284 • Needs location constraint us-west-1.
15285
15286 • "us-west-2"
15287
15288 • US West (Oregon) Region.
15289
15290 • Needs location constraint us-west-2.
15291
15292 • "ca-central-1"
15293
15294 • Canada (Central) Region.
15295
15296 • Needs location constraint ca-central-1.
15297
15298 • "eu-west-1"
15299
15300 • EU (Ireland) Region.
15301
15302 • Needs location constraint EU or eu-west-1.
15303
15304 • "eu-west-2"
15305
15306 • EU (London) Region.
15307
15308 • Needs location constraint eu-west-2.
15309
15310 • "eu-west-3"
15311
15312 • EU (Paris) Region.
15313
15314 • Needs location constraint eu-west-3.
15315
15316 • "eu-north-1"
15317
15318 • EU (Stockholm) Region.
15319
15320 • Needs location constraint eu-north-1.
15321
15322 • "eu-south-1"
15323
15324 • EU (Milan) Region.
15325
15326 • Needs location constraint eu-south-1.
15327
15328 • "eu-central-1"
15329
15330 • EU (Frankfurt) Region.
15331
15332 • Needs location constraint eu-central-1.
15333
15334 • "ap-southeast-1"
15335
15336 • Asia Pacific (Singapore) Region.
15337
15338 • Needs location constraint ap-southeast-1.
15339
15340 • "ap-southeast-2"
15341
15342 • Asia Pacific (Sydney) Region.
15343
15344 • Needs location constraint ap-southeast-2.
15345
15346 • "ap-northeast-1"
15347
15348 • Asia Pacific (Tokyo) Region.
15349
15350 • Needs location constraint ap-northeast-1.
15351
15352 • "ap-northeast-2"
15353
15354 • Asia Pacific (Seoul).
15355
15356 • Needs location constraint ap-northeast-2.
15357
15358 • "ap-northeast-3"
15359
15360 • Asia Pacific (Osaka-Local).
15361
15362 • Needs location constraint ap-northeast-3.
15363
15364 • "ap-south-1"
15365
15366 • Asia Pacific (Mumbai).
15367
15368 • Needs location constraint ap-south-1.
15369
15370 • "ap-east-1"
15371
15372 • Asia Pacific (Hong Kong) Region.
15373
15374 • Needs location constraint ap-east-1.
15375
15376 • "sa-east-1"
15377
15378 • South America (Sao Paulo) Region.
15379
15380 • Needs location constraint sa-east-1.
15381
15382 • "me-south-1"
15383
15384 • Middle East (Bahrain) Region.
15385
15386 • Needs location constraint me-south-1.
15387
15388 • "af-south-1"
15389
15390 • Africa (Cape Town) Region.
15391
15392 • Needs location constraint af-south-1.
15393
15394 • "cn-north-1"
15395
15396 • China (Beijing) Region.
15397
15398 • Needs location constraint cn-north-1.
15399
15400 • "cn-northwest-1"
15401
15402 • China (Ningxia) Region.
15403
15404 • Needs location constraint cn-northwest-1.
15405
15406 • "us-gov-east-1"
15407
15408 • AWS GovCloud (US-East) Region.
15409
15410 • Needs location constraint us-gov-east-1.
15411
15412 • "us-gov-west-1"
15413
15414 • AWS GovCloud (US) Region.
15415
15416 • Needs location constraint us-gov-west-1.
15417
15418 --s3-region
15419 Region to connect to.
15420
15421 • Config: region
15422
15423 • Env Var: RCLONE_S3_REGION
15424
15425 • Type: string
15426
15427 • Default: ""
15428
15429 • Examples:
15430
15431 • "nl-ams"
15432
15433 • Amsterdam, The Netherlands
15434
15435 • "fr-par"
15436
15437 • Paris, France
15438
15439 --s3-region
15440 Region to connect to.
15441
15442 Leave blank if you are using an S3 clone and you don't have a region.
15443
15444 • Config: region
15445
15446 • Env Var: RCLONE_S3_REGION
15447
15448 • Type: string
15449
15450 • Default: ""
15451
15452 • Examples:
15453
15454 • ""
15455
15456 • Use this if unsure.
15457
15458 • Will use v4 signatures and an empty region.
15459
15460 • "other-v2-signature"
15461
15462 • Use this only if v4 signatures don't work.
15463
15464 • E.g. pre Jewel/v10 CEPH.
15465
15466 --s3-endpoint
15467 Endpoint for S3 API.
15468
15469 Leave blank if using AWS to use the default endpoint for the region.
15470
15471 • Config: endpoint
15472
15473 • Env Var: RCLONE_S3_ENDPOINT
15474
15475 • Type: string
15476
15477 • Default: ""
15478
15479 --s3-endpoint
15480 Endpoint for IBM COS S3 API.
15481
15482 Specify if using an IBM COS On Premise.
15483
15484 • Config: endpoint
15485
15486 • Env Var: RCLONE_S3_ENDPOINT
15487
15488 • Type: string
15489
15490 • Default: ""
15491
15492 • Examples:
15493
15494 • "s3.us.cloud-object-storage.appdomain.cloud"
15495
15496 • US Cross Region Endpoint
15497
15498 • "s3.dal.us.cloud-object-storage.appdomain.cloud"
15499
15500 • US Cross Region Dallas Endpoint
15501
15502 • "s3.wdc.us.cloud-object-storage.appdomain.cloud"
15503
15504 • US Cross Region Washington DC Endpoint
15505
15506 • "s3.sjc.us.cloud-object-storage.appdomain.cloud"
15507
15508 • US Cross Region San Jose Endpoint
15509
15510 • "s3.private.us.cloud-object-storage.appdomain.cloud"
15511
15512 • US Cross Region Private Endpoint
15513
15514 • "s3.private.dal.us.cloud-object-storage.appdomain.cloud"
15515
15516 • US Cross Region Dallas Private Endpoint
15517
15518 • "s3.private.wdc.us.cloud-object-storage.appdomain.cloud"
15519
15520 • US Cross Region Washington DC Private Endpoint
15521
15522 • "s3.private.sjc.us.cloud-object-storage.appdomain.cloud"
15523
15524 • US Cross Region San Jose Private Endpoint
15525
15526 • "s3.us-east.cloud-object-storage.appdomain.cloud"
15527
15528 • US Region East Endpoint
15529
15530 • "s3.private.us-east.cloud-object-storage.appdomain.cloud"
15531
15532 • US Region East Private Endpoint
15533
15534 • "s3.us-south.cloud-object-storage.appdomain.cloud"
15535
15536 • US Region South Endpoint
15537
15538 • "s3.private.us-south.cloud-object-storage.appdomain.cloud"
15539
15540 • US Region South Private Endpoint
15541
15542 • "s3.eu.cloud-object-storage.appdomain.cloud"
15543
15544 • EU Cross Region Endpoint
15545
15546 • "s3.fra.eu.cloud-object-storage.appdomain.cloud"
15547
15548 • EU Cross Region Frankfurt Endpoint
15549
15550 • "s3.mil.eu.cloud-object-storage.appdomain.cloud"
15551
15552 • EU Cross Region Milan Endpoint
15553
15554 • "s3.ams.eu.cloud-object-storage.appdomain.cloud"
15555
15556 • EU Cross Region Amsterdam Endpoint
15557
15558 • "s3.private.eu.cloud-object-storage.appdomain.cloud"
15559
15560 • EU Cross Region Private Endpoint
15561
15562 • "s3.private.fra.eu.cloud-object-storage.appdomain.cloud"
15563
15564 • EU Cross Region Frankfurt Private Endpoint
15565
15566 • "s3.private.mil.eu.cloud-object-storage.appdomain.cloud"
15567
15568 • EU Cross Region Milan Private Endpoint
15569
15570 • "s3.private.ams.eu.cloud-object-storage.appdomain.cloud"
15571
15572 • EU Cross Region Amsterdam Private Endpoint
15573
15574 • "s3.eu-gb.cloud-object-storage.appdomain.cloud"
15575
15576 • Great Britain Endpoint
15577
15578 • "s3.private.eu-gb.cloud-object-storage.appdomain.cloud"
15579
15580 • Great Britain Private Endpoint
15581
15582 • "s3.eu-de.cloud-object-storage.appdomain.cloud"
15583
15584 • EU Region DE Endpoint
15585
15586 • "s3.private.eu-de.cloud-object-storage.appdomain.cloud"
15587
15588 • EU Region DE Private Endpoint
15589
15590 • "s3.ap.cloud-object-storage.appdomain.cloud"
15591
15592 • APAC Cross Regional Endpoint
15593
15594 • "s3.tok.ap.cloud-object-storage.appdomain.cloud"
15595
15596 • APAC Cross Regional Tokyo Endpoint
15597
15598 • "s3.hkg.ap.cloud-object-storage.appdomain.cloud"
15599
15600 • APAC Cross Regional HongKong Endpoint
15601
15602 • "s3.seo.ap.cloud-object-storage.appdomain.cloud"
15603
15604 • APAC Cross Regional Seoul Endpoint
15605
15606 • "s3.private.ap.cloud-object-storage.appdomain.cloud"
15607
15608 • APAC Cross Regional Private Endpoint
15609
15610 • "s3.private.tok.ap.cloud-object-storage.appdomain.cloud"
15611
15612 • APAC Cross Regional Tokyo Private Endpoint
15613
15614 • "s3.private.hkg.ap.cloud-object-storage.appdomain.cloud"
15615
15616 • APAC Cross Regional HongKong Private Endpoint
15617
15618 • "s3.private.seo.ap.cloud-object-storage.appdomain.cloud"
15619
15620 • APAC Cross Regional Seoul Private Endpoint
15621
15622 • "s3.jp-tok.cloud-object-storage.appdomain.cloud"
15623
15624 • APAC Region Japan Endpoint
15625
15626 • "s3.private.jp-tok.cloud-object-storage.appdomain.cloud"
15627
15628 • APAC Region Japan Private Endpoint
15629
15630 • "s3.au-syd.cloud-object-storage.appdomain.cloud"
15631
15632 • APAC Region Australia Endpoint
15633
15634 • "s3.private.au-syd.cloud-object-storage.appdomain.cloud"
15635
15636 • APAC Region Australia Private Endpoint
15637
15638 • "s3.ams03.cloud-object-storage.appdomain.cloud"
15639
15640 • Amsterdam Single Site Endpoint
15641
15642 • "s3.private.ams03.cloud-object-storage.appdomain.cloud"
15643
15644 • Amsterdam Single Site Private Endpoint
15645
15646 • "s3.che01.cloud-object-storage.appdomain.cloud"
15647
15648 • Chennai Single Site Endpoint
15649
15650 • "s3.private.che01.cloud-object-storage.appdomain.cloud"
15651
15652 • Chennai Single Site Private Endpoint
15653
15654 • "s3.mel01.cloud-object-storage.appdomain.cloud"
15655
15656 • Melbourne Single Site Endpoint
15657
15658 • "s3.private.mel01.cloud-object-storage.appdomain.cloud"
15659
15660 • Melbourne Single Site Private Endpoint
15661
15662 • "s3.osl01.cloud-object-storage.appdomain.cloud"
15663
15664 • Oslo Single Site Endpoint
15665
15666 • "s3.private.osl01.cloud-object-storage.appdomain.cloud"
15667
15668 • Oslo Single Site Private Endpoint
15669
15670 • "s3.tor01.cloud-object-storage.appdomain.cloud"
15671
15672 • Toronto Single Site Endpoint
15673
15674 • "s3.private.tor01.cloud-object-storage.appdomain.cloud"
15675
15676 • Toronto Single Site Private Endpoint
15677
15678 • "s3.seo01.cloud-object-storage.appdomain.cloud"
15679
15680 • Seoul Single Site Endpoint
15681
15682 • "s3.private.seo01.cloud-object-storage.appdomain.cloud"
15683
15684 • Seoul Single Site Private Endpoint
15685
15686 • "s3.mon01.cloud-object-storage.appdomain.cloud"
15687
15688 • Montreal Single Site Endpoint
15689
15690 • "s3.private.mon01.cloud-object-storage.appdomain.cloud"
15691
15692 • Montreal Single Site Private Endpoint
15693
15694 • "s3.mex01.cloud-object-storage.appdomain.cloud"
15695
15696 • Mexico Single Site Endpoint
15697
15698 • "s3.private.mex01.cloud-object-storage.appdomain.cloud"
15699
15700 • Mexico Single Site Private Endpoint
15701
15702 • "s3.sjc04.cloud-object-storage.appdomain.cloud"
15703
15704 • San Jose Single Site Endpoint
15705
15706 • "s3.private.sjc04.cloud-object-storage.appdomain.cloud"
15707
15708 • San Jose Single Site Private Endpoint
15709
15710 • "s3.mil01.cloud-object-storage.appdomain.cloud"
15711
15712 • Milan Single Site Endpoint
15713
15714 • "s3.private.mil01.cloud-object-storage.appdomain.cloud"
15715
15716 • Milan Single Site Private Endpoint
15717
15718 • "s3.hkg02.cloud-object-storage.appdomain.cloud"
15719
15720 • Hong Kong Single Site Endpoint
15721
15722 • "s3.private.hkg02.cloud-object-storage.appdomain.cloud"
15723
15724 • Hong Kong Single Site Private Endpoint
15725
15726 • "s3.par01.cloud-object-storage.appdomain.cloud"
15727
15728 • Paris Single Site Endpoint
15729
15730 • "s3.private.par01.cloud-object-storage.appdomain.cloud"
15731
15732 • Paris Single Site Private Endpoint
15733
15734 • "s3.sng01.cloud-object-storage.appdomain.cloud"
15735
15736 • Singapore Single Site Endpoint
15737
15738 • "s3.private.sng01.cloud-object-storage.appdomain.cloud"
15739
15740 • Singapore Single Site Private Endpoint
15741
15742 --s3-endpoint
15743 Endpoint for OSS API.
15744
15745 • Config: endpoint
15746
15747 • Env Var: RCLONE_S3_ENDPOINT
15748
15749 • Type: string
15750
15751 • Default: ""
15752
15753 • Examples:
15754
15755 • "oss-accelerate.aliyuncs.com"
15756
15757 • Global Accelerate
15758
15759 • "oss-accelerate-overseas.aliyuncs.com"
15760
15761 • Global Accelerate (outside mainland China)
15762
15763 • "oss-cn-hangzhou.aliyuncs.com"
15764
15765 • East China 1 (Hangzhou)
15766
15767 • "oss-cn-shanghai.aliyuncs.com"
15768
15769 • East China 2 (Shanghai)
15770
15771 • "oss-cn-qingdao.aliyuncs.com"
15772
15773 • North China 1 (Qingdao)
15774
15775 • "oss-cn-beijing.aliyuncs.com"
15776
15777 • North China 2 (Beijing)
15778
15779 • "oss-cn-zhangjiakou.aliyuncs.com"
15780
15781 • North China 3 (Zhangjiakou)
15782
15783 • "oss-cn-huhehaote.aliyuncs.com"
15784
15785 • North China 5 (Hohhot)
15786
15787 • "oss-cn-wulanchabu.aliyuncs.com"
15788
15789 • North China 6 (Ulanqab)
15790
15791 • "oss-cn-shenzhen.aliyuncs.com"
15792
15793 • South China 1 (Shenzhen)
15794
15795 • "oss-cn-heyuan.aliyuncs.com"
15796
15797 • South China 2 (Heyuan)
15798
15799 • "oss-cn-guangzhou.aliyuncs.com"
15800
15801 • South China 3 (Guangzhou)
15802
15803 • "oss-cn-chengdu.aliyuncs.com"
15804
15805 • West China 1 (Chengdu)
15806
15807 • "oss-cn-hongkong.aliyuncs.com"
15808
15809 • Hong Kong (Hong Kong)
15810
15811 • "oss-us-west-1.aliyuncs.com"
15812
15813 • US West 1 (Silicon Valley)
15814
15815 • "oss-us-east-1.aliyuncs.com"
15816
15817 • US East 1 (Virginia)
15818
15819 • "oss-ap-southeast-1.aliyuncs.com"
15820
15821 • Southeast Asia Southeast 1 (Singapore)
15822
15823 • "oss-ap-southeast-2.aliyuncs.com"
15824
15825 • Asia Pacific Southeast 2 (Sydney)
15826
15827 • "oss-ap-southeast-3.aliyuncs.com"
15828
15829 • Southeast Asia Southeast 3 (Kuala Lumpur)
15830
15831 • "oss-ap-southeast-5.aliyuncs.com"
15832
15833 • Asia Pacific Southeast 5 (Jakarta)
15834
15835 • "oss-ap-northeast-1.aliyuncs.com"
15836
15837 • Asia Pacific Northeast 1 (Japan)
15838
15839 • "oss-ap-south-1.aliyuncs.com"
15840
15841 • Asia Pacific South 1 (Mumbai)
15842
15843 • "oss-eu-central-1.aliyuncs.com"
15844
15845 • Central Europe 1 (Frankfurt)
15846
15847 • "oss-eu-west-1.aliyuncs.com"
15848
15849 • West Europe (London)
15850
15851 • "oss-me-east-1.aliyuncs.com"
15852
15853 • Middle East 1 (Dubai)
15854
15855 --s3-endpoint
15856 Endpoint for Scaleway Object Storage.
15857
15858 • Config: endpoint
15859
15860 • Env Var: RCLONE_S3_ENDPOINT
15861
15862 • Type: string
15863
15864 • Default: ""
15865
15866 • Examples:
15867
15868 • "s3.nl-ams.scw.cloud"
15869
15870 • Amsterdam Endpoint
15871
15872 • "s3.fr-par.scw.cloud"
15873
15874 • Paris Endpoint
15875
15876 --s3-endpoint
15877 Endpoint for StackPath Object Storage.
15878
15879 • Config: endpoint
15880
15881 • Env Var: RCLONE_S3_ENDPOINT
15882
15883 • Type: string
15884
15885 • Default: ""
15886
15887 • Examples:
15888
15889 • "s3.us-east-2.stackpathstorage.com"
15890
15891 • US East Endpoint
15892
15893 • "s3.us-west-1.stackpathstorage.com"
15894
15895 • US West Endpoint
15896
15897 • "s3.eu-central-1.stackpathstorage.com"
15898
15899 • EU Endpoint
15900
15901 --s3-endpoint
15902 Endpoint for Tencent COS API.
15903
15904 • Config: endpoint
15905
15906 • Env Var: RCLONE_S3_ENDPOINT
15907
15908 • Type: string
15909
15910 • Default: ""
15911
15912 • Examples:
15913
15914 • "cos.ap-beijing.myqcloud.com"
15915
15916 • Beijing Region
15917
15918 • "cos.ap-nanjing.myqcloud.com"
15919
15920 • Nanjing Region
15921
15922 • "cos.ap-shanghai.myqcloud.com"
15923
15924 • Shanghai Region
15925
15926 • "cos.ap-guangzhou.myqcloud.com"
15927
15928 • Guangzhou Region
15929
15930 • "cos.ap-nanjing.myqcloud.com"
15931
15932 • Nanjing Region
15933
15934 • "cos.ap-chengdu.myqcloud.com"
15935
15936 • Chengdu Region
15937
15938 • "cos.ap-chongqing.myqcloud.com"
15939
15940 • Chongqing Region
15941
15942 • "cos.ap-hongkong.myqcloud.com"
15943
15944 • Hong Kong (China) Region
15945
15946 • "cos.ap-singapore.myqcloud.com"
15947
15948 • Singapore Region
15949
15950 • "cos.ap-mumbai.myqcloud.com"
15951
15952 • Mumbai Region
15953
15954 • "cos.ap-seoul.myqcloud.com"
15955
15956 • Seoul Region
15957
15958 • "cos.ap-bangkok.myqcloud.com"
15959
15960 • Bangkok Region
15961
15962 • "cos.ap-tokyo.myqcloud.com"
15963
15964 • Tokyo Region
15965
15966 • "cos.na-siliconvalley.myqcloud.com"
15967
15968 • Silicon Valley Region
15969
15970 • "cos.na-ashburn.myqcloud.com"
15971
15972 • Virginia Region
15973
15974 • "cos.na-toronto.myqcloud.com"
15975
15976 • Toronto Region
15977
15978 • "cos.eu-frankfurt.myqcloud.com"
15979
15980 • Frankfurt Region
15981
15982 • "cos.eu-moscow.myqcloud.com"
15983
15984 • Moscow Region
15985
15986 • "cos.accelerate.myqcloud.com"
15987
15988 • Use Tencent COS Accelerate Endpoint
15989
15990 --s3-endpoint
15991 Endpoint for S3 API.
15992
15993 Required when using an S3 clone.
15994
15995 • Config: endpoint
15996
15997 • Env Var: RCLONE_S3_ENDPOINT
15998
15999 • Type: string
16000
16001 • Default: ""
16002
16003 • Examples:
16004
16005 • "objects-us-east-1.dream.io"
16006
16007 • Dream Objects endpoint
16008
16009 • "nyc3.digitaloceanspaces.com"
16010
16011 • Digital Ocean Spaces New York 3
16012
16013 • "ams3.digitaloceanspaces.com"
16014
16015 • Digital Ocean Spaces Amsterdam 3
16016
16017 • "sgp1.digitaloceanspaces.com"
16018
16019 • Digital Ocean Spaces Singapore 1
16020
16021 • "localhost:8333"
16022
16023 • SeaweedFS S3 localhost
16024
16025 • "s3.wasabisys.com"
16026
16027 • Wasabi US East endpoint
16028
16029 • "s3.us-west-1.wasabisys.com"
16030
16031 • Wasabi US West endpoint
16032
16033 • "s3.eu-central-1.wasabisys.com"
16034
16035 • Wasabi EU Central endpoint
16036
16037 • "s3.ap-northeast-1.wasabisys.com"
16038
16039 • Wasabi AP Northeast endpoint
16040
16041 --s3-location-constraint
16042 Location constraint - must be set to match the Region.
16043
16044 Used when creating buckets only.
16045
16046 • Config: location_constraint
16047
16048 • Env Var: RCLONE_S3_LOCATION_CONSTRAINT
16049
16050 • Type: string
16051
16052 • Default: ""
16053
16054 • Examples:
16055
16056 • ""
16057
16058 • Empty for US Region, Northern Virginia, or Pacific Northwest
16059
16060 • "us-east-2"
16061
16062 • US East (Ohio) Region
16063
16064 • "us-west-1"
16065
16066 • US West (Northern California) Region
16067
16068 • "us-west-2"
16069
16070 • US West (Oregon) Region
16071
16072 • "ca-central-1"
16073
16074 • Canada (Central) Region
16075
16076 • "eu-west-1"
16077
16078 • EU (Ireland) Region
16079
16080 • "eu-west-2"
16081
16082 • EU (London) Region
16083
16084 • "eu-west-3"
16085
16086 • EU (Paris) Region
16087
16088 • "eu-north-1"
16089
16090 • EU (Stockholm) Region
16091
16092 • "eu-south-1"
16093
16094 • EU (Milan) Region
16095
16096 • "EU"
16097
16098 • EU Region
16099
16100 • "ap-southeast-1"
16101
16102 • Asia Pacific (Singapore) Region
16103
16104 • "ap-southeast-2"
16105
16106 • Asia Pacific (Sydney) Region
16107
16108 • "ap-northeast-1"
16109
16110 • Asia Pacific (Tokyo) Region
16111
16112 • "ap-northeast-2"
16113
16114 • Asia Pacific (Seoul) Region
16115
16116 • "ap-northeast-3"
16117
16118 • Asia Pacific (Osaka-Local) Region
16119
16120 • "ap-south-1"
16121
16122 • Asia Pacific (Mumbai) Region
16123
16124 • "ap-east-1"
16125
16126 • Asia Pacific (Hong Kong) Region
16127
16128 • "sa-east-1"
16129
16130 • South America (Sao Paulo) Region
16131
16132 • "me-south-1"
16133
16134 • Middle East (Bahrain) Region
16135
16136 • "af-south-1"
16137
16138 • Africa (Cape Town) Region
16139
16140 • "cn-north-1"
16141
16142 • China (Beijing) Region
16143
16144 • "cn-northwest-1"
16145
16146 • China (Ningxia) Region
16147
16148 • "us-gov-east-1"
16149
16150 • AWS GovCloud (US-East) Region
16151
16152 • "us-gov-west-1"
16153
16154 • AWS GovCloud (US) Region
16155
16156 --s3-location-constraint
16157 Location constraint - must match endpoint when using IBM Cloud Public.
16158
16159 For on-prem COS, do not make a selection from this list, hit enter.
16160
16161 • Config: location_constraint
16162
16163 • Env Var: RCLONE_S3_LOCATION_CONSTRAINT
16164
16165 • Type: string
16166
16167 • Default: ""
16168
16169 • Examples:
16170
16171 • "us-standard"
16172
16173 • US Cross Region Standard
16174
16175 • "us-vault"
16176
16177 • US Cross Region Vault
16178
16179 • "us-cold"
16180
16181 • US Cross Region Cold
16182
16183 • "us-flex"
16184
16185 • US Cross Region Flex
16186
16187 • "us-east-standard"
16188
16189 • US East Region Standard
16190
16191 • "us-east-vault"
16192
16193 • US East Region Vault
16194
16195 • "us-east-cold"
16196
16197 • US East Region Cold
16198
16199 • "us-east-flex"
16200
16201 • US East Region Flex
16202
16203 • "us-south-standard"
16204
16205 • US South Region Standard
16206
16207 • "us-south-vault"
16208
16209 • US South Region Vault
16210
16211 • "us-south-cold"
16212
16213 • US South Region Cold
16214
16215 • "us-south-flex"
16216
16217 • US South Region Flex
16218
16219 • "eu-standard"
16220
16221 • EU Cross Region Standard
16222
16223 • "eu-vault"
16224
16225 • EU Cross Region Vault
16226
16227 • "eu-cold"
16228
16229 • EU Cross Region Cold
16230
16231 • "eu-flex"
16232
16233 • EU Cross Region Flex
16234
16235 • "eu-gb-standard"
16236
16237 • Great Britain Standard
16238
16239 • "eu-gb-vault"
16240
16241 • Great Britain Vault
16242
16243 • "eu-gb-cold"
16244
16245 • Great Britain Cold
16246
16247 • "eu-gb-flex"
16248
16249 • Great Britain Flex
16250
16251 • "ap-standard"
16252
16253 • APAC Standard
16254
16255 • "ap-vault"
16256
16257 • APAC Vault
16258
16259 • "ap-cold"
16260
16261 • APAC Cold
16262
16263 • "ap-flex"
16264
16265 • APAC Flex
16266
16267 • "mel01-standard"
16268
16269 • Melbourne Standard
16270
16271 • "mel01-vault"
16272
16273 • Melbourne Vault
16274
16275 • "mel01-cold"
16276
16277 • Melbourne Cold
16278
16279 • "mel01-flex"
16280
16281 • Melbourne Flex
16282
16283 • "tor01-standard"
16284
16285 • Toronto Standard
16286
16287 • "tor01-vault"
16288
16289 • Toronto Vault
16290
16291 • "tor01-cold"
16292
16293 • Toronto Cold
16294
16295 • "tor01-flex"
16296
16297 • Toronto Flex
16298
16299 --s3-location-constraint
16300 Location constraint - must be set to match the Region.
16301
16302 Leave blank if not sure. Used when creating buckets only.
16303
16304 • Config: location_constraint
16305
16306 • Env Var: RCLONE_S3_LOCATION_CONSTRAINT
16307
16308 • Type: string
16309
16310 • Default: ""
16311
16312 --s3-acl
16313 Canned ACL used when creating buckets and storing or copying objects.
16314
16315 This ACL is used for creating objects and if bucket_acl isn't set, for
16316 creating buckets too.
16317
16318 For more info visit https://docs.aws.amazon.com/AmazonS3/lat‐
16319 est/dev/acl-overview.html#canned-acl
16320
16321 Note that this ACL is applied when server-side copying objects as S3
16322 doesn't copy the ACL from the source but rather writes a fresh one.
16323
16324 • Config: acl
16325
16326 • Env Var: RCLONE_S3_ACL
16327
16328 • Type: string
16329
16330 • Default: ""
16331
16332 • Examples:
16333
16334 • "default"
16335
16336 • Owner gets Full_CONTROL.
16337
16338 • No one else has access rights (default).
16339
16340 • "private"
16341
16342 • Owner gets FULL_CONTROL.
16343
16344 • No one else has access rights (default).
16345
16346 • "public-read"
16347
16348 • Owner gets FULL_CONTROL.
16349
16350 • The AllUsers group gets READ access.
16351
16352 • "public-read-write"
16353
16354 • Owner gets FULL_CONTROL.
16355
16356 • The AllUsers group gets READ and WRITE access.
16357
16358 • Granting this on a bucket is generally not recommended.
16359
16360 • "authenticated-read"
16361
16362 • Owner gets FULL_CONTROL.
16363
16364 • The AuthenticatedUsers group gets READ access.
16365
16366 • "bucket-owner-read"
16367
16368 • Object owner gets FULL_CONTROL.
16369
16370 • Bucket owner gets READ access.
16371
16372 • If you specify this canned ACL when creating a bucket, Amazon S3
16373 ignores it.
16374
16375 • "bucket-owner-full-control"
16376
16377 • Both the object owner and the bucket owner get FULL_CONTROL over
16378 the object.
16379
16380 • If you specify this canned ACL when creating a bucket, Amazon S3
16381 ignores it.
16382
16383 • "private"
16384
16385 • Owner gets FULL_CONTROL.
16386
16387 • No one else has access rights (default).
16388
16389 • This acl is available on IBM Cloud (Infra), IBM Cloud (Storage),
16390 On-Premise COS.
16391
16392 • "public-read"
16393
16394 • Owner gets FULL_CONTROL.
16395
16396 • The AllUsers group gets READ access.
16397
16398 • This acl is available on IBM Cloud (Infra), IBM Cloud (Storage),
16399 On-Premise IBM COS.
16400
16401 • "public-read-write"
16402
16403 • Owner gets FULL_CONTROL.
16404
16405 • The AllUsers group gets READ and WRITE access.
16406
16407 • This acl is available on IBM Cloud (Infra), On-Premise IBM COS.
16408
16409 • "authenticated-read"
16410
16411 • Owner gets FULL_CONTROL.
16412
16413 • The AuthenticatedUsers group gets READ access.
16414
16415 • Not supported on Buckets.
16416
16417 • This acl is available on IBM Cloud (Infra) and On-Premise IBM
16418 COS.
16419
16420 --s3-server-side-encryption
16421 The server-side encryption algorithm used when storing this object in
16422 S3.
16423
16424 • Config: server_side_encryption
16425
16426 • Env Var: RCLONE_S3_SERVER_SIDE_ENCRYPTION
16427
16428 • Type: string
16429
16430 • Default: ""
16431
16432 • Examples:
16433
16434 • ""
16435
16436 • None
16437
16438 • "AES256"
16439
16440 • AES256
16441
16442 • "aws:kms"
16443
16444 • aws:kms
16445
16446 --s3-sse-kms-key-id
16447 If using KMS ID you must provide the ARN of Key.
16448
16449 • Config: sse_kms_key_id
16450
16451 • Env Var: RCLONE_S3_SSE_KMS_KEY_ID
16452
16453 • Type: string
16454
16455 • Default: ""
16456
16457 • Examples:
16458
16459 • ""
16460
16461 • None
16462
16463 • "arn:aws:kms:us-east-1:*"
16464
16465 • arn:aws:kms:*
16466
16467 --s3-storage-class
16468 The storage class to use when storing new objects in S3.
16469
16470 • Config: storage_class
16471
16472 • Env Var: RCLONE_S3_STORAGE_CLASS
16473
16474 • Type: string
16475
16476 • Default: ""
16477
16478 • Examples:
16479
16480 • ""
16481
16482 • Default
16483
16484 • "STANDARD"
16485
16486 • Standard storage class
16487
16488 • "REDUCED_REDUNDANCY"
16489
16490 • Reduced redundancy storage class
16491
16492 • "STANDARD_IA"
16493
16494 • Standard Infrequent Access storage class
16495
16496 • "ONEZONE_IA"
16497
16498 • One Zone Infrequent Access storage class
16499
16500 • "GLACIER"
16501
16502 • Glacier storage class
16503
16504 • "DEEP_ARCHIVE"
16505
16506 • Glacier Deep Archive storage class
16507
16508 • "INTELLIGENT_TIERING"
16509
16510 • Intelligent-Tiering storage class
16511
16512 --s3-storage-class
16513 The storage class to use when storing new objects in OSS.
16514
16515 • Config: storage_class
16516
16517 • Env Var: RCLONE_S3_STORAGE_CLASS
16518
16519 • Type: string
16520
16521 • Default: ""
16522
16523 • Examples:
16524
16525 • ""
16526
16527 • Default
16528
16529 • "STANDARD"
16530
16531 • Standard storage class
16532
16533 • "GLACIER"
16534
16535 • Archive storage mode
16536
16537 • "STANDARD_IA"
16538
16539 • Infrequent access storage mode
16540
16541 --s3-storage-class
16542 The storage class to use when storing new objects in Tencent COS.
16543
16544 • Config: storage_class
16545
16546 • Env Var: RCLONE_S3_STORAGE_CLASS
16547
16548 • Type: string
16549
16550 • Default: ""
16551
16552 • Examples:
16553
16554 • ""
16555
16556 • Default
16557
16558 • "STANDARD"
16559
16560 • Standard storage class
16561
16562 • "ARCHIVE"
16563
16564 • Archive storage mode
16565
16566 • "STANDARD_IA"
16567
16568 • Infrequent access storage mode
16569
16570 --s3-storage-class
16571 The storage class to use when storing new objects in S3.
16572
16573 • Config: storage_class
16574
16575 • Env Var: RCLONE_S3_STORAGE_CLASS
16576
16577 • Type: string
16578
16579 • Default: ""
16580
16581 • Examples:
16582
16583 • ""
16584
16585 • Default.
16586
16587 • "STANDARD"
16588
16589 • The Standard class for any upload.
16590
16591 • Suitable for on-demand content like streaming or CDN.
16592
16593 • "GLACIER"
16594
16595 • Archived storage.
16596
16597 • Prices are lower, but it needs to be restored first to be ac‐
16598 cessed.
16599
16600 Advanced options
16601 Here are the advanced options specific to s3 (Amazon S3 Compliant Stor‐
16602 age Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost,
16603 IBM COS, Minio, SeaweedFS, and Tencent COS).
16604
16605 --s3-bucket-acl
16606 Canned ACL used when creating buckets.
16607
16608 For more info visit https://docs.aws.amazon.com/AmazonS3/lat‐
16609 est/dev/acl-overview.html#canned-acl
16610
16611 Note that this ACL is applied when only when creating buckets. If it
16612 isn't set then "acl" is used instead.
16613
16614 • Config: bucket_acl
16615
16616 • Env Var: RCLONE_S3_BUCKET_ACL
16617
16618 • Type: string
16619
16620 • Default: ""
16621
16622 • Examples:
16623
16624 • "private"
16625
16626 • Owner gets FULL_CONTROL.
16627
16628 • No one else has access rights (default).
16629
16630 • "public-read"
16631
16632 • Owner gets FULL_CONTROL.
16633
16634 • The AllUsers group gets READ access.
16635
16636 • "public-read-write"
16637
16638 • Owner gets FULL_CONTROL.
16639
16640 • The AllUsers group gets READ and WRITE access.
16641
16642 • Granting this on a bucket is generally not recommended.
16643
16644 • "authenticated-read"
16645
16646 • Owner gets FULL_CONTROL.
16647
16648 • The AuthenticatedUsers group gets READ access.
16649
16650 --s3-requester-pays
16651 Enables requester pays option when interacting with S3 bucket.
16652
16653 • Config: requester_pays
16654
16655 • Env Var: RCLONE_S3_REQUESTER_PAYS
16656
16657 • Type: bool
16658
16659 • Default: false
16660
16661 --s3-sse-customer-algorithm
16662 If using SSE-C, the server-side encryption algorithm used when storing
16663 this object in S3.
16664
16665 • Config: sse_customer_algorithm
16666
16667 • Env Var: RCLONE_S3_SSE_CUSTOMER_ALGORITHM
16668
16669 • Type: string
16670
16671 • Default: ""
16672
16673 • Examples:
16674
16675 • ""
16676
16677 • None
16678
16679 • "AES256"
16680
16681 • AES256
16682
16683 --s3-sse-customer-key
16684 If using SSE-C you must provide the secret encryption key used to en‐
16685 crypt/decrypt your data.
16686
16687 • Config: sse_customer_key
16688
16689 • Env Var: RCLONE_S3_SSE_CUSTOMER_KEY
16690
16691 • Type: string
16692
16693 • Default: ""
16694
16695 • Examples:
16696
16697 • ""
16698
16699 • None
16700
16701 --s3-sse-customer-key-md5
16702 If using SSE-C you may provide the secret encryption key MD5 checksum
16703 (optional).
16704
16705 If you leave it blank, this is calculated automatically from the
16706 sse_customer_key provided.
16707
16708 • Config: sse_customer_key_md5
16709
16710 • Env Var: RCLONE_S3_SSE_CUSTOMER_KEY_MD5
16711
16712 • Type: string
16713
16714 • Default: ""
16715
16716 • Examples:
16717
16718 • ""
16719
16720 • None
16721
16722 --s3-upload-cutoff
16723 Cutoff for switching to chunked upload.
16724
16725 Any files larger than this will be uploaded in chunks of chunk_size.
16726 The minimum is 0 and the maximum is 5 GiB.
16727
16728 • Config: upload_cutoff
16729
16730 • Env Var: RCLONE_S3_UPLOAD_CUTOFF
16731
16732 • Type: SizeSuffix
16733
16734 • Default: 200Mi
16735
16736 --s3-chunk-size
16737 Chunk size to use for uploading.
16738
16739 When uploading files larger than upload_cutoff or files with unknown
16740 size (e.g. from "rclone rcat" or uploaded with "rclone mount" or
16741 google photos or google docs) they will be uploaded as multipart up‐
16742 loads using this chunk size.
16743
16744 Note that "--s3-upload-concurrency" chunks of this size are buffered in
16745 memory per transfer.
16746
16747 If you are transferring large files over high-speed links and you have
16748 enough memory, then increasing this will speed up the transfers.
16749
16750 Rclone will automatically increase the chunk size when uploading a
16751 large file of known size to stay below the 10,000 chunks limit.
16752
16753 Files of unknown size are uploaded with the configured chunk_size.
16754 Since the default chunk size is 5 MiB and there can be at most 10,000
16755 chunks, this means that by default the maximum size of a file you can
16756 stream upload is 48 GiB. If you wish to stream upload larger files
16757 then you will need to increase chunk_size.
16758
16759 • Config: chunk_size
16760
16761 • Env Var: RCLONE_S3_CHUNK_SIZE
16762
16763 • Type: SizeSuffix
16764
16765 • Default: 5Mi
16766
16767 --s3-max-upload-parts
16768 Maximum number of parts in a multipart upload.
16769
16770 This option defines the maximum number of multipart chunks to use when
16771 doing a multipart upload.
16772
16773 This can be useful if a service does not support the AWS S3 specifica‐
16774 tion of 10,000 chunks.
16775
16776 Rclone will automatically increase the chunk size when uploading a
16777 large file of a known size to stay below this number of chunks limit.
16778
16779 • Config: max_upload_parts
16780
16781 • Env Var: RCLONE_S3_MAX_UPLOAD_PARTS
16782
16783 • Type: int
16784
16785 • Default: 10000
16786
16787 --s3-copy-cutoff
16788 Cutoff for switching to multipart copy.
16789
16790 Any files larger than this that need to be server-side copied will be
16791 copied in chunks of this size.
16792
16793 The minimum is 0 and the maximum is 5 GiB.
16794
16795 • Config: copy_cutoff
16796
16797 • Env Var: RCLONE_S3_COPY_CUTOFF
16798
16799 • Type: SizeSuffix
16800
16801 • Default: 4.656Gi
16802
16803 --s3-disable-checksum
16804 Don't store MD5 checksum with object metadata.
16805
16806 Normally rclone will calculate the MD5 checksum of the input before up‐
16807 loading it so it can add it to metadata on the object. This is great
16808 for data integrity checking but can cause long delays for large files
16809 to start uploading.
16810
16811 • Config: disable_checksum
16812
16813 • Env Var: RCLONE_S3_DISABLE_CHECKSUM
16814
16815 • Type: bool
16816
16817 • Default: false
16818
16819 --s3-shared-credentials-file
16820 Path to the shared credentials file.
16821
16822 If env_auth = true then rclone can use a shared credentials file.
16823
16824 If this variable is empty rclone will look for the "AWS_SHARED_CREDEN‐
16825 TIALS_FILE" env variable. If the env value is empty it will default to
16826 the current user's home directory.
16827
16828 Linux/OSX: "$HOME/.aws/credentials"
16829 Windows: "%USERPROFILE%\.aws\credentials"
16830
16831 • Config: shared_credentials_file
16832
16833 • Env Var: RCLONE_S3_SHARED_CREDENTIALS_FILE
16834
16835 • Type: string
16836
16837 • Default: ""
16838
16839 --s3-profile
16840 Profile to use in the shared credentials file.
16841
16842 If env_auth = true then rclone can use a shared credentials file. This
16843 variable controls which profile is used in that file.
16844
16845 If empty it will default to the environment variable "AWS_PROFILE" or
16846 "default" if that environment variable is also not set.
16847
16848 • Config: profile
16849
16850 • Env Var: RCLONE_S3_PROFILE
16851
16852 • Type: string
16853
16854 • Default: ""
16855
16856 --s3-session-token
16857 An AWS session token.
16858
16859 • Config: session_token
16860
16861 • Env Var: RCLONE_S3_SESSION_TOKEN
16862
16863 • Type: string
16864
16865 • Default: ""
16866
16867 --s3-upload-concurrency
16868 Concurrency for multipart uploads.
16869
16870 This is the number of chunks of the same file that are uploaded concur‐
16871 rently.
16872
16873 If you are uploading small numbers of large files over high-speed links
16874 and these uploads do not fully utilize your bandwidth, then increasing
16875 this may help to speed up the transfers.
16876
16877 • Config: upload_concurrency
16878
16879 • Env Var: RCLONE_S3_UPLOAD_CONCURRENCY
16880
16881 • Type: int
16882
16883 • Default: 4
16884
16885 --s3-force-path-style
16886 If true use path style access if false use virtual hosted style.
16887
16888 If this is true (the default) then rclone will use path style access,
16889 if false then rclone will use virtual path style. See the AWS S3 docs
16890 (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#ac‐
16891 cess-bucket-intro) for more info.
16892
16893 Some providers (e.g. AWS, Aliyun OSS, Netease COS, or Tencent COS) re‐
16894 quire this set to false - rclone will do this automatically based on
16895 the provider setting.
16896
16897 • Config: force_path_style
16898
16899 • Env Var: RCLONE_S3_FORCE_PATH_STYLE
16900
16901 • Type: bool
16902
16903 • Default: true
16904
16905 --s3-v2-auth
16906 If true use v2 authentication.
16907
16908 If this is false (the default) then rclone will use v4 authentication.
16909 If it is set then rclone will use v2 authentication.
16910
16911 Use this only if v4 signatures don't work, e.g. pre Jewel/v10 CEPH.
16912
16913 • Config: v2_auth
16914
16915 • Env Var: RCLONE_S3_V2_AUTH
16916
16917 • Type: bool
16918
16919 • Default: false
16920
16921 --s3-use-accelerate-endpoint
16922 If true use the AWS S3 accelerated endpoint.
16923
16924 See: AWS S3 Transfer acceleration (https://docs.aws.amazon.com/Ama‐
16925 zonS3/latest/dev/transfer-acceleration-examples.html)
16926
16927 • Config: use_accelerate_endpoint
16928
16929 • Env Var: RCLONE_S3_USE_ACCELERATE_ENDPOINT
16930
16931 • Type: bool
16932
16933 • Default: false
16934
16935 --s3-leave-parts-on-error
16936 If true avoid calling abort upload on a failure, leaving all success‐
16937 fully uploaded parts on S3 for manual recovery.
16938
16939 It should be set to true for resuming uploads across different ses‐
16940 sions.
16941
16942 WARNING: Storing parts of an incomplete multipart upload counts towards
16943 space usage on S3 and will add additional costs if not cleaned up.
16944
16945 • Config: leave_parts_on_error
16946
16947 • Env Var: RCLONE_S3_LEAVE_PARTS_ON_ERROR
16948
16949 • Type: bool
16950
16951 • Default: false
16952
16953 --s3-list-chunk
16954 Size of listing chunk (response list for each ListObject S3 request).
16955
16956 This option is also known as "MaxKeys", "max-items", or "page-size"
16957 from the AWS S3 specification. Most services truncate the response
16958 list to 1000 objects even if requested more than that. In AWS S3 this
16959 is a global maximum and cannot be changed, see AWS S3
16960 (https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html). In
16961 Ceph, this can be increased with the "rgw list buckets max chunk" op‐
16962 tion.
16963
16964 • Config: list_chunk
16965
16966 • Env Var: RCLONE_S3_LIST_CHUNK
16967
16968 • Type: int
16969
16970 • Default: 1000
16971
16972 --s3-no-check-bucket
16973 If set, don't attempt to check the bucket exists or create it.
16974
16975 This can be useful when trying to minimise the number of transactions
16976 rclone does if you know the bucket exists already.
16977
16978 It can also be needed if the user you are using does not have bucket
16979 creation permissions. Before v1.52.0 this would have passed silently
16980 due to a bug.
16981
16982 • Config: no_check_bucket
16983
16984 • Env Var: RCLONE_S3_NO_CHECK_BUCKET
16985
16986 • Type: bool
16987
16988 • Default: false
16989
16990 --s3-no-head
16991 If set, don't HEAD uploaded objects to check integrity.
16992
16993 This can be useful when trying to minimise the number of transactions
16994 rclone does.
16995
16996 Setting it means that if rclone receives a 200 OK message after upload‐
16997 ing an object with PUT then it will assume that it got uploaded proper‐
16998 ly.
16999
17000 In particular it will assume:
17001
17002 • the metadata, including modtime, storage class and content type was
17003 as uploaded
17004
17005 • the size was as uploaded
17006
17007 It reads the following items from the response for a single part PUT:
17008
17009 • the MD5SUM
17010
17011 • The uploaded date
17012
17013 For multipart uploads these items aren't read.
17014
17015 If an source object of unknown length is uploaded then rclone will do a
17016 HEAD request.
17017
17018 Setting this flag increases the chance for undetected upload failures,
17019 in particular an incorrect size, so it isn't recommended for normal op‐
17020 eration. In practice the chance of an undetected upload failure is
17021 very small even with this flag.
17022
17023 • Config: no_head
17024
17025 • Env Var: RCLONE_S3_NO_HEAD
17026
17027 • Type: bool
17028
17029 • Default: false
17030
17031 --s3-no-head-object
17032 If set, do not do HEAD before GET when getting objects.
17033
17034 • Config: no_head_object
17035
17036 • Env Var: RCLONE_S3_NO_HEAD_OBJECT
17037
17038 • Type: bool
17039
17040 • Default: false
17041
17042 --s3-encoding
17043 This sets the encoding for the backend.
17044
17045 See the encoding section in the overview (https://rclone.org/over‐
17046 view/#encoding) for more info.
17047
17048 • Config: encoding
17049
17050 • Env Var: RCLONE_S3_ENCODING
17051
17052 • Type: MultiEncoder
17053
17054 • Default: Slash,InvalidUtf8,Dot
17055
17056 --s3-memory-pool-flush-time
17057 How often internal memory buffer pools will be flushed.
17058
17059 Uploads which requires additional buffers (f.e multipart) will use mem‐
17060 ory pool for allocations. This option controls how often unused buf‐
17061 fers will be removed from the pool.
17062
17063 • Config: memory_pool_flush_time
17064
17065 • Env Var: RCLONE_S3_MEMORY_POOL_FLUSH_TIME
17066
17067 • Type: Duration
17068
17069 • Default: 1m0s
17070
17071 --s3-memory-pool-use-mmap
17072 Whether to use mmap buffers in internal memory pool.
17073
17074 • Config: memory_pool_use_mmap
17075
17076 • Env Var: RCLONE_S3_MEMORY_POOL_USE_MMAP
17077
17078 • Type: bool
17079
17080 • Default: false
17081
17082 --s3-disable-http2
17083 Disable usage of http2 for S3 backends.
17084
17085 There is currently an unsolved issue with the s3 (specifically minio)
17086 backend and HTTP/2. HTTP/2 is enabled by default for the s3 backend
17087 but can be disabled here. When the issue is solved this flag will be
17088 removed.
17089
17090 See: https://github.com/rclone/rclone/issues/4673,
17091 https://github.com/rclone/rclone/issues/3631
17092
17093 • Config: disable_http2
17094
17095 • Env Var: RCLONE_S3_DISABLE_HTTP2
17096
17097 • Type: bool
17098
17099 • Default: false
17100
17101 --s3-download-url
17102 Custom endpoint for downloads. This is usually set to a CloudFront CDN
17103 URL as AWS S3 offers cheaper egress for data downloaded through the
17104 CloudFront network.
17105
17106 • Config: download_url
17107
17108 • Env Var: RCLONE_S3_DOWNLOAD_URL
17109
17110 • Type: string
17111
17112 • Default: ""
17113
17114 Backend commands
17115 Here are the commands specific to the s3 backend.
17116
17117 Run them with
17118
17119 rclone backend COMMAND remote:
17120
17121 The help below will explain what arguments each command takes.
17122
17123 See the "rclone backend" command (https://rclone.org/com‐
17124 mands/rclone_backend/) for more info on how to pass options and argu‐
17125 ments.
17126
17127 These can be run on a running backend using the rc command backend/com‐
17128 mand (https://rclone.org/rc/#backend/command).
17129
17130 restore
17131 Restore objects from GLACIER to normal storage
17132
17133 rclone backend restore remote: [options] [<arguments>+]
17134
17135 This command can be used to restore one or more objects from GLACIER to
17136 normal storage.
17137
17138 Usage Examples:
17139
17140 rclone backend restore s3:bucket/path/to/object [-o priority=PRIORITY] [-o lifetime=DAYS]
17141 rclone backend restore s3:bucket/path/to/directory [-o priority=PRIORITY] [-o lifetime=DAYS]
17142 rclone backend restore s3:bucket [-o priority=PRIORITY] [-o lifetime=DAYS]
17143
17144 This flag also obeys the filters. Test first with -i/--interactive or
17145 --dry-run flags
17146
17147 rclone -i backend restore --include "*.txt" s3:bucket/path -o priority=Standard
17148
17149 All the objects shown will be marked for restore, then
17150
17151 rclone backend restore --include "*.txt" s3:bucket/path -o priority=Standard
17152
17153 It returns a list of status dictionaries with Remote and Status keys.
17154 The Status will be OK if it was successful or an error message if not.
17155
17156 [
17157 {
17158 "Status": "OK",
17159 "Path": "test.txt"
17160 },
17161 {
17162 "Status": "OK",
17163 "Path": "test/file4.txt"
17164 }
17165 ]
17166
17167 Options:
17168
17169 • "description": The optional description for the job.
17170
17171 • "lifetime": Lifetime of the active copy in days
17172
17173 • "priority": Priority of restore: Standard|Expedited|Bulk
17174
17175 list-multipart-uploads
17176 List the unfinished multipart uploads
17177
17178 rclone backend list-multipart-uploads remote: [options] [<arguments>+]
17179
17180 This command lists the unfinished multipart uploads in JSON format.
17181
17182 rclone backend list-multipart s3:bucket/path/to/object
17183
17184 It returns a dictionary of buckets with values as lists of unfinished
17185 multipart uploads.
17186
17187 You can call it with no bucket in which case it lists all bucket, with
17188 a bucket or with a bucket and path.
17189
17190 {
17191 "rclone": [
17192 {
17193 "Initiated": "2020-06-26T14:20:36Z",
17194 "Initiator": {
17195 "DisplayName": "XXX",
17196 "ID": "arn:aws:iam::XXX:user/XXX"
17197 },
17198 "Key": "KEY",
17199 "Owner": {
17200 "DisplayName": null,
17201 "ID": "XXX"
17202 },
17203 "StorageClass": "STANDARD",
17204 "UploadId": "XXX"
17205 }
17206 ],
17207 "rclone-1000files": [],
17208 "rclone-dst": []
17209 }
17210
17211 cleanup
17212 Remove unfinished multipart uploads.
17213
17214 rclone backend cleanup remote: [options] [<arguments>+]
17215
17216 This command removes unfinished multipart uploads of age greater than
17217 max-age which defaults to 24 hours.
17218
17219 Note that you can use -i/--dry-run with this command to see what it
17220 would do.
17221
17222 rclone backend cleanup s3:bucket/path/to/object
17223 rclone backend cleanup -o max-age=7w s3:bucket/path/to/object
17224
17225 Durations are parsed as per the rest of rclone, 2h, 7d, 7w etc.
17226
17227 Options:
17228
17229 • "max-age": Max age of upload to delete
17230
17231 Anonymous access to public buckets
17232 If you want to use rclone to access a public bucket, configure with a
17233 blank access_key_id and secret_access_key. Your config should end up
17234 looking like this:
17235
17236 [anons3]
17237 type = s3
17238 provider = AWS
17239 env_auth = false
17240 access_key_id =
17241 secret_access_key =
17242 region = us-east-1
17243 endpoint =
17244 location_constraint =
17245 acl = private
17246 server_side_encryption =
17247 storage_class =
17248
17249 Then use it as normal with the name of the public bucket, e.g.
17250
17251 rclone lsd anons3:1000genomes
17252
17253 You will be able to list and copy data but not upload it.
17254
17255 Providers
17256 AWS S3
17257 This is the provider used as main example and described in the configu‐
17258 ration section above.
17259
17260 AWS Snowball Edge
17261 AWS Snowball (https://aws.amazon.com/snowball/) is a hardware appliance
17262 used for transferring bulk data back to AWS. Its main software inter‐
17263 face is S3 object storage.
17264
17265 To use rclone with AWS Snowball Edge devices, configure as standard for
17266 an 'S3 Compatible Service' be sure to set upload_cutoff = 0 otherwise
17267 you will run into authentication header issues as the snowball device
17268 does not support query parameter based authentication.
17269
17270 eg.
17271
17272 [snowball]
17273 type = s3
17274 provider = Other
17275 access_key_id = YOUR_ACCESS_KEY
17276 secret_access_key = YOUR_SECRET_KEY
17277 endpoint = http://[IP of Snowball]:8080
17278 upload_cutoff = 0
17279
17280 Ceph
17281 Ceph (https://ceph.com/) is an open source unified, distributed storage
17282 system designed for excellent performance, reliability and scalability.
17283 It has an S3 compatible object storage interface.
17284
17285 To use rclone with Ceph, configure as above but leave the region blank
17286 and set the endpoint. You should end up with something like this in
17287 your config:
17288
17289 [ceph]
17290 type = s3
17291 provider = Ceph
17292 env_auth = false
17293 access_key_id = XXX
17294 secret_access_key = YYY
17295 region =
17296 endpoint = https://ceph.endpoint.example.com
17297 location_constraint =
17298 acl =
17299 server_side_encryption =
17300 storage_class =
17301
17302 If you are using an older version of CEPH, e.g. 10.2.x Jewel, then you
17303 may need to supply the parameter --s3-upload-cutoff 0 or put this in
17304 the config file as upload_cutoff 0 to work around a bug which causes
17305 uploading of small files to fail.
17306
17307 Note also that Ceph sometimes puts / in the passwords it gives users.
17308 If you read the secret access key using the command line tools you will
17309 get a JSON blob with the / escaped as \/. Make sure you only write /
17310 in the secret access key.
17311
17312 Eg the dump from Ceph looks something like this (irrelevant keys re‐
17313 moved).
17314
17315 {
17316 "user_id": "xxx",
17317 "display_name": "xxxx",
17318 "keys": [
17319 {
17320 "user": "xxx",
17321 "access_key": "xxxxxx",
17322 "secret_key": "xxxxxx\/xxxx"
17323 }
17324 ],
17325 }
17326
17327 Because this is a json dump, it is encoding the / as \/, so if you use
17328 the secret key as xxxxxx/xxxx it will work fine.
17329
17330 Dreamhost
17331 Dreamhost DreamObjects (https://www.dreamhost.com/cloud/storage/) is an
17332 object storage system based on CEPH.
17333
17334 To use rclone with Dreamhost, configure as above but leave the region
17335 blank and set the endpoint. You should end up with something like this
17336 in your config:
17337
17338 [dreamobjects]
17339 type = s3
17340 provider = DreamHost
17341 env_auth = false
17342 access_key_id = your_access_key
17343 secret_access_key = your_secret_key
17344 region =
17345 endpoint = objects-us-west-1.dream.io
17346 location_constraint =
17347 acl = private
17348 server_side_encryption =
17349 storage_class =
17350
17351 DigitalOcean Spaces
17352 Spaces (https://www.digitalocean.com/products/object-storage/) is an
17353 S3-interoperable (https://developers.digitalocean.com/documenta‐
17354 tion/spaces/) object storage service from cloud provider DigitalOcean.
17355
17356 To connect to DigitalOcean Spaces you will need an access key and se‐
17357 cret key. These can be retrieved on the "Applications & API
17358 (https://cloud.digitalocean.com/settings/api/tokens)" page of the Digi‐
17359 talOcean control panel. They will be needed when prompted by rclone
17360 config for your access_key_id and secret_access_key.
17361
17362 When prompted for a region or location_constraint, press enter to use
17363 the default value. The region must be included in the endpoint setting
17364 (e.g. nyc3.digitaloceanspaces.com). The default values can be used
17365 for other settings.
17366
17367 Going through the whole process of creating a new remote by running
17368 rclone config, each prompt should be answered as shown below:
17369
17370 Storage> s3
17371 env_auth> 1
17372 access_key_id> YOUR_ACCESS_KEY
17373 secret_access_key> YOUR_SECRET_KEY
17374 region>
17375 endpoint> nyc3.digitaloceanspaces.com
17376 location_constraint>
17377 acl>
17378 storage_class>
17379
17380 The resulting configuration file should look like:
17381
17382 [spaces]
17383 type = s3
17384 provider = DigitalOcean
17385 env_auth = false
17386 access_key_id = YOUR_ACCESS_KEY
17387 secret_access_key = YOUR_SECRET_KEY
17388 region =
17389 endpoint = nyc3.digitaloceanspaces.com
17390 location_constraint =
17391 acl =
17392 server_side_encryption =
17393 storage_class =
17394
17395 Once configured, you can create a new Space and begin copying files.
17396 For example:
17397
17398 rclone mkdir spaces:my-new-space
17399 rclone copy /path/to/files spaces:my-new-space
17400
17401 IBM COS (S3)
17402 Information stored with IBM Cloud Object Storage is encrypted and dis‐
17403 persed across multiple geographic locations, and accessed through an
17404 implementation of the S3 API. This service makes use of the distrib‐
17405 uted storage technologies provided by IBM’s Cloud Object Storage System
17406 (formerly Cleversafe). For more information visit:
17407 (http://www.ibm.com/cloud/object-storage)
17408
17409 To configure access to IBM COS S3, follow the steps below:
17410
17411 1. Run rclone config and select n for a new remote.
17412
17413 2018/02/14 14:13:11 NOTICE: Config file "C:\\Users\\a\\.config\\rclone\\rclone.conf" not found - using defaults
17414 No remotes found - make a new one
17415 n) New remote
17416 s) Set configuration password
17417 q) Quit config
17418 n/s/q> n
17419
17420 2. Enter the name for the configuration
17421
17422 name> <YOUR NAME>
17423
17424 3. Select "s3" storage.
17425
17426 Choose a number from below, or type in your own value
17427 1 / Alias for an existing remote
17428 \ "alias"
17429 2 / Amazon Drive
17430 \ "amazon cloud drive"
17431 3 / Amazon S3 Complaint Storage Providers (Dreamhost, Ceph, Minio, IBM COS)
17432 \ "s3"
17433 4 / Backblaze B2
17434 \ "b2"
17435 [snip]
17436 23 / http Connection
17437 \ "http"
17438 Storage> 3
17439
17440 4. Select IBM COS as the S3 Storage Provider.
17441
17442 Choose the S3 provider.
17443 Choose a number from below, or type in your own value
17444 1 / Choose this option to configure Storage to AWS S3
17445 \ "AWS"
17446 2 / Choose this option to configure Storage to Ceph Systems
17447 \ "Ceph"
17448 3 / Choose this option to configure Storage to Dreamhost
17449 \ "Dreamhost"
17450 4 / Choose this option to the configure Storage to IBM COS S3
17451 \ "IBMCOS"
17452 5 / Choose this option to the configure Storage to Minio
17453 \ "Minio"
17454 Provider>4
17455
17456 5. Enter the Access Key and Secret.
17457
17458 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
17459 access_key_id> <>
17460 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
17461 secret_access_key> <>
17462
17463 6. Specify the endpoint for IBM COS. For Public IBM COS, choose from
17464 the option below. For On Premise IBM COS, enter an endpoint ad‐
17465 dress.
17466
17467 Endpoint for IBM COS S3 API.
17468 Specify if using an IBM COS On Premise.
17469 Choose a number from below, or type in your own value
17470 1 / US Cross Region Endpoint
17471 \ "s3-api.us-geo.objectstorage.softlayer.net"
17472 2 / US Cross Region Dallas Endpoint
17473 \ "s3-api.dal.us-geo.objectstorage.softlayer.net"
17474 3 / US Cross Region Washington DC Endpoint
17475 \ "s3-api.wdc-us-geo.objectstorage.softlayer.net"
17476 4 / US Cross Region San Jose Endpoint
17477 \ "s3-api.sjc-us-geo.objectstorage.softlayer.net"
17478 5 / US Cross Region Private Endpoint
17479 \ "s3-api.us-geo.objectstorage.service.networklayer.com"
17480 6 / US Cross Region Dallas Private Endpoint
17481 \ "s3-api.dal-us-geo.objectstorage.service.networklayer.com"
17482 7 / US Cross Region Washington DC Private Endpoint
17483 \ "s3-api.wdc-us-geo.objectstorage.service.networklayer.com"
17484 8 / US Cross Region San Jose Private Endpoint
17485 \ "s3-api.sjc-us-geo.objectstorage.service.networklayer.com"
17486 9 / US Region East Endpoint
17487 \ "s3.us-east.objectstorage.softlayer.net"
17488 10 / US Region East Private Endpoint
17489 \ "s3.us-east.objectstorage.service.networklayer.com"
17490 11 / US Region South Endpoint
17491 [snip]
17492 34 / Toronto Single Site Private Endpoint
17493 \ "s3.tor01.objectstorage.service.networklayer.com"
17494 endpoint>1
17495
17496 7. Specify a IBM COS Location Constraint. The location constraint must
17497 match endpoint when using IBM Cloud Public. For on-prem COS, do not
17498 make a selection from this list, hit enter
17499
17500 1 / US Cross Region Standard
17501 \ "us-standard"
17502 2 / US Cross Region Vault
17503 \ "us-vault"
17504 3 / US Cross Region Cold
17505 \ "us-cold"
17506 4 / US Cross Region Flex
17507 \ "us-flex"
17508 5 / US East Region Standard
17509 \ "us-east-standard"
17510 6 / US East Region Vault
17511 \ "us-east-vault"
17512 7 / US East Region Cold
17513 \ "us-east-cold"
17514 8 / US East Region Flex
17515 \ "us-east-flex"
17516 9 / US South Region Standard
17517 \ "us-south-standard"
17518 10 / US South Region Vault
17519 \ "us-south-vault"
17520 [snip]
17521 32 / Toronto Flex
17522 \ "tor01-flex"
17523 location_constraint>1
17524
17525 9. Specify a canned ACL. IBM Cloud (Storage) supports "public-read"
17526 and "private". IBM Cloud(Infra) supports all the canned ACLs.
17527 On-Premise COS supports all the canned ACLs.
17528
17529 Canned ACL used when creating buckets and/or storing objects in S3.
17530 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
17531 Choose a number from below, or type in your own value
17532 1 / Owner gets FULL_CONTROL. No one else has access rights (default). This acl is available on IBM Cloud (Infra), IBM Cloud (Storage), On-Premise COS
17533 \ "private"
17534 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access. This acl is available on IBM Cloud (Infra), IBM Cloud (Storage), On-Premise IBM COS
17535 \ "public-read"
17536 3 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access. This acl is available on IBM Cloud (Infra), On-Premise IBM COS
17537 \ "public-read-write"
17538 4 / Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ access. Not supported on Buckets. This acl is available on IBM Cloud (Infra) and On-Premise IBM COS
17539 \ "authenticated-read"
17540 acl> 1
17541
17542 12. Review the displayed configuration and accept to save the "remote"
17543 then quit. The config file should look like this
17544
17545 [xxx]
17546 type = s3
17547 Provider = IBMCOS
17548 access_key_id = xxx
17549 secret_access_key = yyy
17550 endpoint = s3-api.us-geo.objectstorage.softlayer.net
17551 location_constraint = us-standard
17552 acl = private
17553
17554 13. Execute rclone commands
17555
17556 1) Create a bucket.
17557 rclone mkdir IBM-COS-XREGION:newbucket
17558 2) List available buckets.
17559 rclone lsd IBM-COS-XREGION:
17560 -1 2017-11-08 21:16:22 -1 test
17561 -1 2018-02-14 20:16:39 -1 newbucket
17562 3) List contents of a bucket.
17563 rclone ls IBM-COS-XREGION:newbucket
17564 18685952 test.exe
17565 4) Copy a file from local to remote.
17566 rclone copy /Users/file.txt IBM-COS-XREGION:newbucket
17567 5) Copy a file from remote to local.
17568 rclone copy IBM-COS-XREGION:newbucket/file.txt .
17569 6) Delete a file on remote.
17570 rclone delete IBM-COS-XREGION:newbucket/file.txt
17571
17572 Minio
17573 Minio (https://minio.io/) is an object storage server built for cloud
17574 application developers and devops.
17575
17576 It is very easy to install and provides an S3 compatible server which
17577 can be used by rclone.
17578
17579 To use it, install Minio following the instructions here
17580 (https://docs.minio.io/docs/minio-quickstart-guide).
17581
17582 When it configures itself Minio will print something like this
17583
17584 Endpoint: http://192.168.1.106:9000 http://172.23.0.1:9000
17585 AccessKey: USWUXHGYZQYFYFFIT3RE
17586 SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
17587 Region: us-east-1
17588 SQS ARNs: arn:minio:sqs:us-east-1:1:redis arn:minio:sqs:us-east-1:2:redis
17589
17590 Browser Access:
17591 http://192.168.1.106:9000 http://172.23.0.1:9000
17592
17593 Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
17594 $ mc config host add myminio http://192.168.1.106:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
17595
17596 Object API (Amazon S3 compatible):
17597 Go: https://docs.minio.io/docs/golang-client-quickstart-guide
17598 Java: https://docs.minio.io/docs/java-client-quickstart-guide
17599 Python: https://docs.minio.io/docs/python-client-quickstart-guide
17600 JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
17601 .NET: https://docs.minio.io/docs/dotnet-client-quickstart-guide
17602
17603 Drive Capacity: 26 GiB Free, 165 GiB Total
17604
17605 These details need to go into rclone config like this. Note that it is
17606 important to put the region in as stated above.
17607
17608 env_auth> 1
17609 access_key_id> USWUXHGYZQYFYFFIT3RE
17610 secret_access_key> MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
17611 region> us-east-1
17612 endpoint> http://192.168.1.106:9000
17613 location_constraint>
17614 server_side_encryption>
17615
17616 Which makes the config file look like this
17617
17618 [minio]
17619 type = s3
17620 provider = Minio
17621 env_auth = false
17622 access_key_id = USWUXHGYZQYFYFFIT3RE
17623 secret_access_key = MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
17624 region = us-east-1
17625 endpoint = http://192.168.1.106:9000
17626 location_constraint =
17627 server_side_encryption =
17628
17629 So once set up, for example to copy files into a bucket
17630
17631 rclone copy /path/to/files minio:bucket
17632
17633 Scaleway
17634 Scaleway (https://www.scaleway.com/object-storage/) The Object Storage
17635 platform allows you to store anything from backups, logs and web assets
17636 to documents and photos. Files can be dropped from the Scaleway con‐
17637 sole or transferred through our API and CLI or using any S3-compatible
17638 tool.
17639
17640 Scaleway provides an S3 interface which can be configured for use with
17641 rclone like this:
17642
17643 [scaleway]
17644 type = s3
17645 provider = Scaleway
17646 env_auth = false
17647 endpoint = s3.nl-ams.scw.cloud
17648 access_key_id = SCWXXXXXXXXXXXXXX
17649 secret_access_key = 1111111-2222-3333-44444-55555555555555
17650 region = nl-ams
17651 location_constraint =
17652 acl = private
17653 server_side_encryption =
17654 storage_class =
17655
17656 SeaweedFS
17657 SeaweedFS (https://github.com/chrislusf/seaweedfs/) is a distributed
17658 storage system for blobs, objects, files, and data lake, with O(1) disk
17659 seek and a scalable file metadata store. It has an S3 compatible ob‐
17660 ject storage interface.
17661
17662 Assuming the SeaweedFS are configured with weed shell as such:
17663
17664 > s3.bucket.create -name foo
17665 > s3.configure -access_key=any -secret_key=any -buckets=foo -user=me -actions=Read,Write,List,Tagging,Admin -apply
17666 {
17667 "identities": [
17668 {
17669 "name": "me",
17670 "credentials": [
17671 {
17672 "accessKey": "any",
17673 "secretKey": "any"
17674 }
17675 ],
17676 "actions": [
17677 "Read:foo",
17678 "Write:foo",
17679 "List:foo",
17680 "Tagging:foo",
17681 "Admin:foo"
17682 ]
17683 }
17684 ]
17685 }
17686
17687 To use rclone with SeaweedFS, above configuration should end up with
17688 something like this in your config:
17689
17690 [seaweedfs_s3]
17691 type = s3
17692 provider = SeaweedFS
17693 access_key_id = any
17694 secret_access_key = any
17695 endpoint = localhost:8333
17696
17697 So once set up, for example to copy files into a bucket
17698
17699 rclone copy /path/to/files seaweedfs_s3:foo
17700
17701 Wasabi
17702 Wasabi (https://wasabi.com) is a cloud-based object storage service for
17703 a broad range of applications and use cases. Wasabi is designed for
17704 individuals and organizations that require a high-performance, reli‐
17705 able, and secure data storage infrastructure at minimal cost.
17706
17707 Wasabi provides an S3 interface which can be configured for use with
17708 rclone like this.
17709
17710 No remotes found - make a new one
17711 n) New remote
17712 s) Set configuration password
17713 n/s> n
17714 name> wasabi
17715 Type of storage to configure.
17716 Choose a number from below, or type in your own value
17717 [snip]
17718 XX / Amazon S3 (also Dreamhost, Ceph, Minio)
17719 \ "s3"
17720 [snip]
17721 Storage> s3
17722 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars). Only applies if access_key_id and secret_access_key is blank.
17723 Choose a number from below, or type in your own value
17724 1 / Enter AWS credentials in the next step
17725 \ "false"
17726 2 / Get AWS credentials from the environment (env vars or IAM)
17727 \ "true"
17728 env_auth> 1
17729 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
17730 access_key_id> YOURACCESSKEY
17731 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
17732 secret_access_key> YOURSECRETACCESSKEY
17733 Region to connect to.
17734 Choose a number from below, or type in your own value
17735 / The default endpoint - a good choice if you are unsure.
17736 1 | US Region, Northern Virginia, or Pacific Northwest.
17737 | Leave location constraint empty.
17738 \ "us-east-1"
17739 [snip]
17740 region> us-east-1
17741 Endpoint for S3 API.
17742 Leave blank if using AWS to use the default endpoint for the region.
17743 Specify if using an S3 clone such as Ceph.
17744 endpoint> s3.wasabisys.com
17745 Location constraint - must be set to match the Region. Used when creating buckets only.
17746 Choose a number from below, or type in your own value
17747 1 / Empty for US Region, Northern Virginia, or Pacific Northwest.
17748 \ ""
17749 [snip]
17750 location_constraint>
17751 Canned ACL used when creating buckets and/or storing objects in S3.
17752 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
17753 Choose a number from below, or type in your own value
17754 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
17755 \ "private"
17756 [snip]
17757 acl>
17758 The server-side encryption algorithm used when storing this object in S3.
17759 Choose a number from below, or type in your own value
17760 1 / None
17761 \ ""
17762 2 / AES256
17763 \ "AES256"
17764 server_side_encryption>
17765 The storage class to use when storing objects in S3.
17766 Choose a number from below, or type in your own value
17767 1 / Default
17768 \ ""
17769 2 / Standard storage class
17770 \ "STANDARD"
17771 3 / Reduced redundancy storage class
17772 \ "REDUCED_REDUNDANCY"
17773 4 / Standard Infrequent Access storage class
17774 \ "STANDARD_IA"
17775 storage_class>
17776 Remote config
17777 --------------------
17778 [wasabi]
17779 env_auth = false
17780 access_key_id = YOURACCESSKEY
17781 secret_access_key = YOURSECRETACCESSKEY
17782 region = us-east-1
17783 endpoint = s3.wasabisys.com
17784 location_constraint =
17785 acl =
17786 server_side_encryption =
17787 storage_class =
17788 --------------------
17789 y) Yes this is OK
17790 e) Edit this remote
17791 d) Delete this remote
17792 y/e/d> y
17793
17794 This will leave the config file looking like this.
17795
17796 [wasabi]
17797 type = s3
17798 provider = Wasabi
17799 env_auth = false
17800 access_key_id = YOURACCESSKEY
17801 secret_access_key = YOURSECRETACCESSKEY
17802 region =
17803 endpoint = s3.wasabisys.com
17804 location_constraint =
17805 acl =
17806 server_side_encryption =
17807 storage_class =
17808
17809 Alibaba OSS
17810 Here is an example of making an Alibaba Cloud (Aliyun) OSS
17811 (https://www.alibabacloud.com/product/oss/) configuration. First run:
17812
17813 rclone config
17814
17815 This will guide you through an interactive setup process.
17816
17817 No remotes found - make a new one
17818 n) New remote
17819 s) Set configuration password
17820 q) Quit config
17821 n/s/q> n
17822 name> oss
17823 Type of storage to configure.
17824 Enter a string value. Press Enter for the default ("").
17825 Choose a number from below, or type in your own value
17826 [snip]
17827 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, and Tencent COS
17828 \ "s3"
17829 [snip]
17830 Storage> s3
17831 Choose your S3 provider.
17832 Enter a string value. Press Enter for the default ("").
17833 Choose a number from below, or type in your own value
17834 1 / Amazon Web Services (AWS) S3
17835 \ "AWS"
17836 2 / Alibaba Cloud Object Storage System (OSS) formerly Aliyun
17837 \ "Alibaba"
17838 3 / Ceph Object Storage
17839 \ "Ceph"
17840 [snip]
17841 provider> Alibaba
17842 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
17843 Only applies if access_key_id and secret_access_key is blank.
17844 Enter a boolean value (true or false). Press Enter for the default ("false").
17845 Choose a number from below, or type in your own value
17846 1 / Enter AWS credentials in the next step
17847 \ "false"
17848 2 / Get AWS credentials from the environment (env vars or IAM)
17849 \ "true"
17850 env_auth> 1
17851 AWS Access Key ID.
17852 Leave blank for anonymous access or runtime credentials.
17853 Enter a string value. Press Enter for the default ("").
17854 access_key_id> accesskeyid
17855 AWS Secret Access Key (password)
17856 Leave blank for anonymous access or runtime credentials.
17857 Enter a string value. Press Enter for the default ("").
17858 secret_access_key> secretaccesskey
17859 Endpoint for OSS API.
17860 Enter a string value. Press Enter for the default ("").
17861 Choose a number from below, or type in your own value
17862 1 / East China 1 (Hangzhou)
17863 \ "oss-cn-hangzhou.aliyuncs.com"
17864 2 / East China 2 (Shanghai)
17865 \ "oss-cn-shanghai.aliyuncs.com"
17866 3 / North China 1 (Qingdao)
17867 \ "oss-cn-qingdao.aliyuncs.com"
17868 [snip]
17869 endpoint> 1
17870 Canned ACL used when creating buckets and storing or copying objects.
17871
17872 Note that this ACL is applied when server-side copying objects as S3
17873 doesn't copy the ACL from the source but rather writes a fresh one.
17874 Enter a string value. Press Enter for the default ("").
17875 Choose a number from below, or type in your own value
17876 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
17877 \ "private"
17878 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
17879 \ "public-read"
17880 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
17881 [snip]
17882 acl> 1
17883 The storage class to use when storing new objects in OSS.
17884 Enter a string value. Press Enter for the default ("").
17885 Choose a number from below, or type in your own value
17886 1 / Default
17887 \ ""
17888 2 / Standard storage class
17889 \ "STANDARD"
17890 3 / Archive storage mode.
17891 \ "GLACIER"
17892 4 / Infrequent access storage mode.
17893 \ "STANDARD_IA"
17894 storage_class> 1
17895 Edit advanced config? (y/n)
17896 y) Yes
17897 n) No
17898 y/n> n
17899 Remote config
17900 --------------------
17901 [oss]
17902 type = s3
17903 provider = Alibaba
17904 env_auth = false
17905 access_key_id = accesskeyid
17906 secret_access_key = secretaccesskey
17907 endpoint = oss-cn-hangzhou.aliyuncs.com
17908 acl = private
17909 storage_class = Standard
17910 --------------------
17911 y) Yes this is OK
17912 e) Edit this remote
17913 d) Delete this remote
17914 y/e/d> y
17915
17916 Tencent COS
17917 Tencent Cloud Object Storage (COS) (https://intl.cloud.ten‐
17918 cent.com/product/cos) is a distributed storage service offered by Ten‐
17919 cent Cloud for unstructured data. It is secure, stable, massive, con‐
17920 venient, low-delay and low-cost.
17921
17922 To configure access to Tencent COS, follow the steps below:
17923
17924 1. Run rclone config and select n for a new remote.
17925
17926 rclone config
17927 No remotes found - make a new one
17928 n) New remote
17929 s) Set configuration password
17930 q) Quit config
17931 n/s/q> n
17932
17933 2. Give the name of the configuration. For example, name it 'cos'.
17934
17935 name> cos
17936
17937 3. Select s3 storage.
17938
17939 Choose a number from below, or type in your own value
17940 1 / 1Fichier
17941 \ "fichier"
17942 2 / Alias for an existing remote
17943 \ "alias"
17944 3 / Amazon Drive
17945 \ "amazon cloud drive"
17946 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, and Tencent COS
17947 \ "s3"
17948 [snip]
17949 Storage> s3
17950
17951 4. Select TencentCOS provider.
17952
17953 Choose a number from below, or type in your own value
17954 1 / Amazon Web Services (AWS) S3
17955 \ "AWS"
17956 [snip]
17957 11 / Tencent Cloud Object Storage (COS)
17958 \ "TencentCOS"
17959 [snip]
17960 provider> TencentCOS
17961
17962 5. Enter your SecretId and SecretKey of Tencent Cloud.
17963
17964 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
17965 Only applies if access_key_id and secret_access_key is blank.
17966 Enter a boolean value (true or false). Press Enter for the default ("false").
17967 Choose a number from below, or type in your own value
17968 1 / Enter AWS credentials in the next step
17969 \ "false"
17970 2 / Get AWS credentials from the environment (env vars or IAM)
17971 \ "true"
17972 env_auth> 1
17973 AWS Access Key ID.
17974 Leave blank for anonymous access or runtime credentials.
17975 Enter a string value. Press Enter for the default ("").
17976 access_key_id> AKIDxxxxxxxxxx
17977 AWS Secret Access Key (password)
17978 Leave blank for anonymous access or runtime credentials.
17979 Enter a string value. Press Enter for the default ("").
17980 secret_access_key> xxxxxxxxxxx
17981
17982 6. Select endpoint for Tencent COS. This is the standard endpoint for
17983 different region.
17984
17985 1 / Beijing Region.
17986 \ "cos.ap-beijing.myqcloud.com"
17987 2 / Nanjing Region.
17988 \ "cos.ap-nanjing.myqcloud.com"
17989 3 / Shanghai Region.
17990 \ "cos.ap-shanghai.myqcloud.com"
17991 4 / Guangzhou Region.
17992 \ "cos.ap-guangzhou.myqcloud.com"
17993 [snip]
17994 endpoint> 4
17995
17996 7. Choose acl and storage class.
17997
17998 Note that this ACL is applied when server-side copying objects as S3
17999 doesn't copy the ACL from the source but rather writes a fresh one.
18000 Enter a string value. Press Enter for the default ("").
18001 Choose a number from below, or type in your own value
18002 1 / Owner gets Full_CONTROL. No one else has access rights (default).
18003 \ "default"
18004 [snip]
18005 acl> 1
18006 The storage class to use when storing new objects in Tencent COS.
18007 Enter a string value. Press Enter for the default ("").
18008 Choose a number from below, or type in your own value
18009 1 / Default
18010 \ ""
18011 [snip]
18012 storage_class> 1
18013 Edit advanced config? (y/n)
18014 y) Yes
18015 n) No (default)
18016 y/n> n
18017 Remote config
18018 --------------------
18019 [cos]
18020 type = s3
18021 provider = TencentCOS
18022 env_auth = false
18023 access_key_id = xxx
18024 secret_access_key = xxx
18025 endpoint = cos.ap-guangzhou.myqcloud.com
18026 acl = default
18027 --------------------
18028 y) Yes this is OK (default)
18029 e) Edit this remote
18030 d) Delete this remote
18031 y/e/d> y
18032 Current remotes:
18033
18034 Name Type
18035 ==== ====
18036 cos s3
18037
18038 Netease NOS
18039 For Netease NOS configure as per the configurator rclone config setting
18040 the provider Netease. This will automatically set force_path_style =
18041 false which is necessary for it to run properly.
18042
18043 Limitations
18044 rclone about is not supported by the S3 backend. Backends without this
18045 capability cannot determine free space for an rclone mount or use poli‐
18046 cy mfs (most free space) as a member of an rclone union remote.
18047
18048 See List of backends that do not support rclone about
18049 (https://rclone.org/overview/#optional-features) See rclone about
18050 (https://rclone.org/commands/rclone_about/)
18051
18053 B2 is Backblaze's cloud storage system (https://www.backblaze.com/b2/).
18054
18055 Paths are specified as remote:bucket (or remote: for the lsd command.)
18056 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
18057
18058 Configuration
18059 Here is an example of making a b2 configuration. First run
18060
18061 rclone config
18062
18063 This will guide you through an interactive setup process. To authenti‐
18064 cate you will either need your Account ID (a short hex number) and Mas‐
18065 ter Application Key (a long hex number) OR an Application Key, which is
18066 the recommended method. See below for further details on generating
18067 and using an Application Key.
18068
18069 No remotes found - make a new one
18070 n) New remote
18071 q) Quit config
18072 n/q> n
18073 name> remote
18074 Type of storage to configure.
18075 Choose a number from below, or type in your own value
18076 [snip]
18077 XX / Backblaze B2
18078 \ "b2"
18079 [snip]
18080 Storage> b2
18081 Account ID or Application Key ID
18082 account> 123456789abc
18083 Application Key
18084 key> 0123456789abcdef0123456789abcdef0123456789
18085 Endpoint for the service - leave blank normally.
18086 endpoint>
18087 Remote config
18088 --------------------
18089 [remote]
18090 account = 123456789abc
18091 key = 0123456789abcdef0123456789abcdef0123456789
18092 endpoint =
18093 --------------------
18094 y) Yes this is OK
18095 e) Edit this remote
18096 d) Delete this remote
18097 y/e/d> y
18098
18099 This remote is called remote and can now be used like this
18100
18101 See all buckets
18102
18103 rclone lsd remote:
18104
18105 Create a new bucket
18106
18107 rclone mkdir remote:bucket
18108
18109 List the contents of a bucket
18110
18111 rclone ls remote:bucket
18112
18113 Sync /home/local/directory to the remote bucket, deleting any excess
18114 files in the bucket.
18115
18116 rclone sync -i /home/local/directory remote:bucket
18117
18118 Application Keys
18119 B2 supports multiple Application Keys for different access permission
18120 to B2 Buckets (https://www.backblaze.com/b2/docs/applica‐
18121 tion_keys.html).
18122
18123 You can use these with rclone too; you will need to use rclone version
18124 1.43 or later.
18125
18126 Follow Backblaze's docs to create an Application Key with the required
18127 permission and add the applicationKeyId as the account and the Applica‐
18128 tion Key itself as the key.
18129
18130 Note that you must put the applicationKeyId as the account – you can't
18131 use the master Account ID. If you try then B2 will return 401 errors.
18132
18133 --fast-list
18134 This remote supports --fast-list which allows you to use fewer transac‐
18135 tions in exchange for more memory. See the rclone docs
18136 (https://rclone.org/docs/#fast-list) for more details.
18137
18138 Modified time
18139 The modified time is stored as metadata on the object as X-Bz-In‐
18140 fo-src_last_modified_millis as milliseconds since 1970-01-01 in the
18141 Backblaze standard. Other tools should be able to use this as a modi‐
18142 fied time.
18143
18144 Modified times are used in syncing and are fully supported. Note that
18145 if a modification time needs to be updated on an object then it will
18146 create a new version of the object.
18147
18148 Restricted filename characters
18149 In addition to the default restricted characters set
18150 (https://rclone.org/overview/#restricted-characters) the following
18151 characters are also replaced:
18152
18153 Character Value Replacement
18154 ────────────────────────────────
18155 \ 0x5C \
18156
18157 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
18158 view/#invalid-utf8), as they can't be used in JSON strings.
18159
18160 Note that in 2020-05 Backblaze started allowing characters in file
18161 names. Rclone hasn't changed its encoding as this could cause syncs to
18162 re-transfer files. If you want rclone not to replace then see the
18163 --b2-encoding flag below and remove the BackSlash from the string.
18164 This can be set in the config.
18165
18166 SHA1 checksums
18167 The SHA1 checksums of the files are checked on upload and download and
18168 will be used in the syncing process.
18169
18170 Large files (bigger than the limit in --b2-upload-cutoff) which are up‐
18171 loaded in chunks will store their SHA1 on the object as X-Bz-In‐
18172 fo-large_file_sha1 as recommended by Backblaze.
18173
18174 For a large file to be uploaded with an SHA1 checksum, the source needs
18175 to support SHA1 checksums. The local disk supports SHA1 checksums so
18176 large file transfers from local disk will have an SHA1. See the over‐
18177 view (https://rclone.org/overview/#features) for exactly which remotes
18178 support SHA1.
18179
18180 Sources which don't support SHA1, in particular crypt will upload large
18181 files without SHA1 checksums. This may be fixed in the future (see
18182 #1767 (https://github.com/rclone/rclone/issues/1767)).
18183
18184 Files sizes below --b2-upload-cutoff will always have an SHA1 regard‐
18185 less of the source.
18186
18187 Transfers
18188 Backblaze recommends that you do lots of transfers simultaneously for
18189 maximum speed. In tests from my SSD equipped laptop the optimum set‐
18190 ting is about --transfers 32 though higher numbers may be used for a
18191 slight speed improvement. The optimum number for you may vary depend‐
18192 ing on your hardware, how big the files are, how much you want to load
18193 your computer, etc. The default of --transfers 4 is definitely too low
18194 for Backblaze B2 though.
18195
18196 Note that uploading big files (bigger than 200 MiB by default) will use
18197 a 96 MiB RAM buffer by default. There can be at most --transfers of
18198 these in use at any moment, so this sets the upper limit on the memory
18199 used.
18200
18201 Versions
18202 When rclone uploads a new version of a file it creates a new version of
18203 it (https://www.backblaze.com/b2/docs/file_versions.html). Likewise
18204 when you delete a file, the old version will be marked hidden and still
18205 be available. Conversely, you may opt in to a "hard delete" of files
18206 with the --b2-hard-delete flag which would permanently remove the file
18207 instead of hiding it.
18208
18209 Old versions of files, where available, are visible using the --b2-ver‐
18210 sions flag.
18211
18212 If you wish to remove all the old versions then you can use the rclone
18213 cleanup remote:bucket command which will delete all the old versions of
18214 files, leaving the current ones intact. You can also supply a path and
18215 only old versions under that path will be deleted, e.g. rclone cleanup
18216 remote:bucket/path/to/stuff.
18217
18218 Note that cleanup will remove partially uploaded files from the bucket
18219 if they are more than a day old.
18220
18221 When you purge a bucket, the current and the old versions will be
18222 deleted then the bucket will be deleted.
18223
18224 However delete will cause the current versions of the files to become
18225 hidden old versions.
18226
18227 Here is a session showing the listing and retrieval of an old version
18228 followed by a cleanup of the old versions.
18229
18230 Show current version and all the versions with --b2-versions flag.
18231
18232 $ rclone -q ls b2:cleanup-test
18233 9 one.txt
18234
18235 $ rclone -q --b2-versions ls b2:cleanup-test
18236 9 one.txt
18237 8 one-v2016-07-04-141032-000.txt
18238 16 one-v2016-07-04-141003-000.txt
18239 15 one-v2016-07-02-155621-000.txt
18240
18241 Retrieve an old version
18242
18243 $ rclone -q --b2-versions copy b2:cleanup-test/one-v2016-07-04-141003-000.txt /tmp
18244
18245 $ ls -l /tmp/one-v2016-07-04-141003-000.txt
18246 -rw-rw-r-- 1 ncw ncw 16 Jul 2 17:46 /tmp/one-v2016-07-04-141003-000.txt
18247
18248 Clean up all the old versions and show that they've gone.
18249
18250 $ rclone -q cleanup b2:cleanup-test
18251
18252 $ rclone -q ls b2:cleanup-test
18253 9 one.txt
18254
18255 $ rclone -q --b2-versions ls b2:cleanup-test
18256 9 one.txt
18257
18258 Data usage
18259 It is useful to know how many requests are sent to the server in dif‐
18260 ferent scenarios.
18261
18262 All copy commands send the following 4 requests:
18263
18264 /b2api/v1/b2_authorize_account
18265 /b2api/v1/b2_create_bucket
18266 /b2api/v1/b2_list_buckets
18267 /b2api/v1/b2_list_file_names
18268
18269 The b2_list_file_names request will be sent once for every 1k files in
18270 the remote path, providing the checksum and modification time of the
18271 listed files. As of version 1.33 issue #818
18272 (https://github.com/rclone/rclone/issues/818) causes extra requests to
18273 be sent when using B2 with Crypt. When a copy operation does not re‐
18274 quire any files to be uploaded, no more requests will be sent.
18275
18276 Uploading files that do not require chunking, will send 2 requests per
18277 file upload:
18278
18279 /b2api/v1/b2_get_upload_url
18280 /b2api/v1/b2_upload_file/
18281
18282 Uploading files requiring chunking, will send 2 requests (one each to
18283 start and finish the upload) and another 2 requests for each chunk:
18284
18285 /b2api/v1/b2_start_large_file
18286 /b2api/v1/b2_get_upload_part_url
18287 /b2api/v1/b2_upload_part/
18288 /b2api/v1/b2_finish_large_file
18289
18290 Versions
18291 Versions can be viewed with the --b2-versions flag. When it is set
18292 rclone will show and act on older versions of files. For example
18293
18294 Listing without --b2-versions
18295
18296 $ rclone -q ls b2:cleanup-test
18297 9 one.txt
18298
18299 And with
18300
18301 $ rclone -q --b2-versions ls b2:cleanup-test
18302 9 one.txt
18303 8 one-v2016-07-04-141032-000.txt
18304 16 one-v2016-07-04-141003-000.txt
18305 15 one-v2016-07-02-155621-000.txt
18306
18307 Showing that the current version is unchanged but older versions can be
18308 seen. These have the UTC date that they were uploaded to the server to
18309 the nearest millisecond appended to them.
18310
18311 Note that when using --b2-versions no file write operations are permit‐
18312 ted, so you can't upload files or delete them.
18313
18314 B2 and rclone link
18315 Rclone supports generating file share links for private B2 buckets.
18316 They can either be for a file for example:
18317
18318 ./rclone link B2:bucket/path/to/file.txt
18319 https://f002.backblazeb2.com/file/bucket/path/to/file.txt?Authorization=xxxxxxxx
18320
18321 or if run on a directory you will get:
18322
18323 ./rclone link B2:bucket/path
18324 https://f002.backblazeb2.com/file/bucket/path?Authorization=xxxxxxxx
18325
18326 you can then use the authorization token (the part of the url from the
18327 ?Authorization= on) on any file path under that directory. For exam‐
18328 ple:
18329
18330 https://f002.backblazeb2.com/file/bucket/path/to/file1?Authorization=xxxxxxxx
18331 https://f002.backblazeb2.com/file/bucket/path/file2?Authorization=xxxxxxxx
18332 https://f002.backblazeb2.com/file/bucket/path/folder/file3?Authorization=xxxxxxxx
18333
18334 Standard options
18335 Here are the standard options specific to b2 (Backblaze B2).
18336
18337 --b2-account
18338 Account ID or Application Key ID.
18339
18340 • Config: account
18341
18342 • Env Var: RCLONE_B2_ACCOUNT
18343
18344 • Type: string
18345
18346 • Default: ""
18347
18348 --b2-key
18349 Application Key.
18350
18351 • Config: key
18352
18353 • Env Var: RCLONE_B2_KEY
18354
18355 • Type: string
18356
18357 • Default: ""
18358
18359 --b2-hard-delete
18360 Permanently delete files on remote removal, otherwise hide files.
18361
18362 • Config: hard_delete
18363
18364 • Env Var: RCLONE_B2_HARD_DELETE
18365
18366 • Type: bool
18367
18368 • Default: false
18369
18370 Advanced options
18371 Here are the advanced options specific to b2 (Backblaze B2).
18372
18373 --b2-endpoint
18374 Endpoint for the service.
18375
18376 Leave blank normally.
18377
18378 • Config: endpoint
18379
18380 • Env Var: RCLONE_B2_ENDPOINT
18381
18382 • Type: string
18383
18384 • Default: ""
18385
18386 --b2-test-mode
18387 A flag string for X-Bz-Test-Mode header for debugging.
18388
18389 This is for debugging purposes only. Setting it to one of the strings
18390 below will cause b2 to return specific errors:
18391
18392 • "fail_some_uploads"
18393
18394 • "expire_some_account_authorization_tokens"
18395
18396 • "force_cap_exceeded"
18397
18398 These will be set in the "X-Bz-Test-Mode" header which is documented in
18399 the b2 integrations checklist (https://www.backblaze.com/b2/docs/inte‐
18400 gration_checklist.html).
18401
18402 • Config: test_mode
18403
18404 • Env Var: RCLONE_B2_TEST_MODE
18405
18406 • Type: string
18407
18408 • Default: ""
18409
18410 --b2-versions
18411 Include old versions in directory listings.
18412
18413 Note that when using this no file write operations are permitted, so
18414 you can't upload files or delete them.
18415
18416 • Config: versions
18417
18418 • Env Var: RCLONE_B2_VERSIONS
18419
18420 • Type: bool
18421
18422 • Default: false
18423
18424 --b2-upload-cutoff
18425 Cutoff for switching to chunked upload.
18426
18427 Files above this size will be uploaded in chunks of "--b2-chunk-size".
18428
18429 This value should be set no larger than 4.657 GiB (== 5 GB).
18430
18431 • Config: upload_cutoff
18432
18433 • Env Var: RCLONE_B2_UPLOAD_CUTOFF
18434
18435 • Type: SizeSuffix
18436
18437 • Default: 200Mi
18438
18439 --b2-copy-cutoff
18440 Cutoff for switching to multipart copy.
18441
18442 Any files larger than this that need to be server-side copied will be
18443 copied in chunks of this size.
18444
18445 The minimum is 0 and the maximum is 4.6 GiB.
18446
18447 • Config: copy_cutoff
18448
18449 • Env Var: RCLONE_B2_COPY_CUTOFF
18450
18451 • Type: SizeSuffix
18452
18453 • Default: 4Gi
18454
18455 --b2-chunk-size
18456 Upload chunk size.
18457
18458 When uploading large files, chunk the file into this size.
18459
18460 Must fit in memory. These chunks are buffered in memory and there
18461 might a maximum of "--transfers" chunks in progress at once.
18462
18463 5,000,000 Bytes is the minimum size.
18464
18465 • Config: chunk_size
18466
18467 • Env Var: RCLONE_B2_CHUNK_SIZE
18468
18469 • Type: SizeSuffix
18470
18471 • Default: 96Mi
18472
18473 --b2-disable-checksum
18474 Disable checksums for large (> upload cutoff) files.
18475
18476 Normally rclone will calculate the SHA1 checksum of the input before
18477 uploading it so it can add it to metadata on the object. This is great
18478 for data integrity checking but can cause long delays for large files
18479 to start uploading.
18480
18481 • Config: disable_checksum
18482
18483 • Env Var: RCLONE_B2_DISABLE_CHECKSUM
18484
18485 • Type: bool
18486
18487 • Default: false
18488
18489 --b2-download-url
18490 Custom endpoint for downloads.
18491
18492 This is usually set to a Cloudflare CDN URL as Backblaze offers free
18493 egress for data downloaded through the Cloudflare network. Rclone
18494 works with private buckets by sending an "Authorization" header. If
18495 the custom endpoint rewrites the requests for authentication, e.g., in
18496 Cloudflare Workers, this header needs to be handled properly. Leave
18497 blank if you want to use the endpoint provided by Backblaze.
18498
18499 • Config: download_url
18500
18501 • Env Var: RCLONE_B2_DOWNLOAD_URL
18502
18503 • Type: string
18504
18505 • Default: ""
18506
18507 --b2-download-auth-duration
18508 Time before the authorization token will expire in s or suffix
18509 ms|s|m|h|d.
18510
18511 The duration before the download authorization token will expire. The
18512 minimum value is 1 second. The maximum value is one week.
18513
18514 • Config: download_auth_duration
18515
18516 • Env Var: RCLONE_B2_DOWNLOAD_AUTH_DURATION
18517
18518 • Type: Duration
18519
18520 • Default: 1w
18521
18522 --b2-memory-pool-flush-time
18523 How often internal memory buffer pools will be flushed. Uploads which
18524 requires additional buffers (f.e multipart) will use memory pool for
18525 allocations. This option controls how often unused buffers will be re‐
18526 moved from the pool.
18527
18528 • Config: memory_pool_flush_time
18529
18530 • Env Var: RCLONE_B2_MEMORY_POOL_FLUSH_TIME
18531
18532 • Type: Duration
18533
18534 • Default: 1m0s
18535
18536 --b2-memory-pool-use-mmap
18537 Whether to use mmap buffers in internal memory pool.
18538
18539 • Config: memory_pool_use_mmap
18540
18541 • Env Var: RCLONE_B2_MEMORY_POOL_USE_MMAP
18542
18543 • Type: bool
18544
18545 • Default: false
18546
18547 --b2-encoding
18548 This sets the encoding for the backend.
18549
18550 See the encoding section in the overview (https://rclone.org/over‐
18551 view/#encoding) for more info.
18552
18553 • Config: encoding
18554
18555 • Env Var: RCLONE_B2_ENCODING
18556
18557 • Type: MultiEncoder
18558
18559 • Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
18560
18561 Limitations
18562 rclone about is not supported by the B2 backend. Backends without this
18563 capability cannot determine free space for an rclone mount or use poli‐
18564 cy mfs (most free space) as a member of an rclone union remote.
18565
18566 See List of backends that do not support rclone about
18567 (https://rclone.org/overview/#optional-features) See rclone about
18568 (https://rclone.org/commands/rclone_about/)
18569
18571 Paths are specified as remote:path
18572
18573 Paths may be as deep as required, e.g. remote:directory/subdirectory.
18574
18575 The initial setup for Box involves getting a token from Box which you
18576 can do either in your browser, or with a config.json downloaded from
18577 Box to use JWT authentication. rclone config walks you through it.
18578
18579 Configuration
18580 Here is an example of how to make a remote called remote. First run:
18581
18582 rclone config
18583
18584 This will guide you through an interactive setup process:
18585
18586 No remotes found - make a new one
18587 n) New remote
18588 s) Set configuration password
18589 q) Quit config
18590 n/s/q> n
18591 name> remote
18592 Type of storage to configure.
18593 Choose a number from below, or type in your own value
18594 [snip]
18595 XX / Box
18596 \ "box"
18597 [snip]
18598 Storage> box
18599 Box App Client Id - leave blank normally.
18600 client_id>
18601 Box App Client Secret - leave blank normally.
18602 client_secret>
18603 Box App config.json location
18604 Leave blank normally.
18605 Enter a string value. Press Enter for the default ("").
18606 box_config_file>
18607 Box App Primary Access Token
18608 Leave blank normally.
18609 Enter a string value. Press Enter for the default ("").
18610 access_token>
18611
18612 Enter a string value. Press Enter for the default ("user").
18613 Choose a number from below, or type in your own value
18614 1 / Rclone should act on behalf of a user
18615 \ "user"
18616 2 / Rclone should act on behalf of a service account
18617 \ "enterprise"
18618 box_sub_type>
18619 Remote config
18620 Use auto config?
18621 * Say Y if not sure
18622 * Say N if you are working on a remote or headless machine
18623 y) Yes
18624 n) No
18625 y/n> y
18626 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
18627 Log in and authorize rclone for access
18628 Waiting for code...
18629 Got code
18630 --------------------
18631 [remote]
18632 client_id =
18633 client_secret =
18634 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"XXX"}
18635 --------------------
18636 y) Yes this is OK
18637 e) Edit this remote
18638 d) Delete this remote
18639 y/e/d> y
18640
18641 See the remote setup docs (https://rclone.org/remote_setup/) for how to
18642 set it up on a machine with no Internet browser available.
18643
18644 Note that rclone runs a webserver on your local machine to collect the
18645 token as returned from Box. This only runs from the moment it opens
18646 your browser to the moment you get back the verification code. This is
18647 on http://127.0.0.1:53682/ and this it may require you to unblock it
18648 temporarily if you are running a host firewall.
18649
18650 Once configured you can then use rclone like this,
18651
18652 List directories in top level of your Box
18653
18654 rclone lsd remote:
18655
18656 List all the files in your Box
18657
18658 rclone ls remote:
18659
18660 To copy a local directory to an Box directory called backup
18661
18662 rclone copy /home/source remote:backup
18663
18664 Using rclone with an Enterprise account with SSO
18665 If you have an "Enterprise" account type with Box with single sign on
18666 (SSO), you need to create a password to use Box with rclone. This can
18667 be done at your Enterprise Box account by going to Settings, "Account"
18668 Tab, and then set the password in the "Authentication" field.
18669
18670 Once you have done this, you can setup your Enterprise Box account us‐
18671 ing the same procedure detailed above in the, using the password you
18672 have just set.
18673
18674 Invalid refresh token
18675 According to the box docs (https://develop‐
18676 er.box.com/v2.0/docs/oauth-20#section-6-using-the-access-and-refresh-
18677 tokens):
18678
18679 Each refresh_token is valid for one use in 60 days.
18680
18681 This means that if you
18682
18683 • Don't use the box remote for 60 days
18684
18685 • Copy the config file with a box refresh token in and use it in two
18686 places
18687
18688 • Get an error on a token refresh
18689
18690 then rclone will return an error which includes the text Invalid re‐
18691 fresh token.
18692
18693 To fix this you will need to use oauth2 again to update the refresh to‐
18694 ken. You can use the methods in the remote setup docs
18695 (https://rclone.org/remote_setup/), bearing in mind that if you use the
18696 copy the config file method, you should not use that remote on the com‐
18697 puter you did the authentication on.
18698
18699 Here is how to do it.
18700
18701 $ rclone config
18702 Current remotes:
18703
18704 Name Type
18705 ==== ====
18706 remote box
18707
18708 e) Edit existing remote
18709 n) New remote
18710 d) Delete remote
18711 r) Rename remote
18712 c) Copy remote
18713 s) Set configuration password
18714 q) Quit config
18715 e/n/d/r/c/s/q> e
18716 Choose a number from below, or type in an existing value
18717 1 > remote
18718 remote> remote
18719 --------------------
18720 [remote]
18721 type = box
18722 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"2017-07-08T23:40:08.059167677+01:00"}
18723 --------------------
18724 Edit remote
18725 Value "client_id" = ""
18726 Edit? (y/n)>
18727 y) Yes
18728 n) No
18729 y/n> n
18730 Value "client_secret" = ""
18731 Edit? (y/n)>
18732 y) Yes
18733 n) No
18734 y/n> n
18735 Remote config
18736 Already have a token - refresh?
18737 y) Yes
18738 n) No
18739 y/n> y
18740 Use auto config?
18741 * Say Y if not sure
18742 * Say N if you are working on a remote or headless machine
18743 y) Yes
18744 n) No
18745 y/n> y
18746 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
18747 Log in and authorize rclone for access
18748 Waiting for code...
18749 Got code
18750 --------------------
18751 [remote]
18752 type = box
18753 token = {"access_token":"YYY","token_type":"bearer","refresh_token":"YYY","expiry":"2017-07-23T12:22:29.259137901+01:00"}
18754 --------------------
18755 y) Yes this is OK
18756 e) Edit this remote
18757 d) Delete this remote
18758 y/e/d> y
18759
18760 Modified time and hashes
18761 Box allows modification times to be set on objects accurate to 1 sec‐
18762 ond. These will be used to detect whether objects need syncing or not.
18763
18764 Box supports SHA1 type hashes, so you can use the --checksum flag.
18765
18766 Restricted filename characters
18767 In addition to the default restricted characters set
18768 (https://rclone.org/overview/#restricted-characters) the following
18769 characters are also replaced:
18770
18771 Character Value Replacement
18772 ────────────────────────────────
18773 \ 0x5C \
18774
18775 File names can also not end with the following characters. These only
18776 get replaced if they are the last character in the name:
18777
18778 Character Value Replacement
18779 ────────────────────────────────
18780 SP 0x20 ␠
18781
18782 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
18783 view/#invalid-utf8), as they can't be used in JSON strings.
18784
18785 Transfers
18786 For files above 50 MiB rclone will use a chunked transfer. Rclone will
18787 upload up to --transfers chunks at the same time (shared among all the
18788 multipart uploads). Chunks are buffered in memory and are normally 8
18789 MiB so increasing --transfers will increase memory use.
18790
18791 Deleting files
18792 Depending on the enterprise settings for your user, the item will ei‐
18793 ther be actually deleted from Box or moved to the trash.
18794
18795 Emptying the trash is supported via the rclone however cleanup command
18796 however this deletes every trashed file and folder individually so it
18797 may take a very long time. Emptying the trash via the WebUI does not
18798 have this limitation so it is advised to empty the trash via the WebUI.
18799
18800 Root folder ID
18801 You can set the root_folder_id for rclone. This is the directory
18802 (identified by its Folder ID) that rclone considers to be the root of
18803 your Box drive.
18804
18805 Normally you will leave this blank and rclone will determine the cor‐
18806 rect root to use itself.
18807
18808 However you can set this to restrict rclone to a specific folder hier‐
18809 archy.
18810
18811 In order to do this you will have to find the Folder ID of the directo‐
18812 ry you wish rclone to display. This will be the last segment of the
18813 URL when you open the relevant folder in the Box web interface.
18814
18815 So if the folder you want rclone to use has a URL which looks like
18816 https://app.box.com/folder/11xxxxxxxxx8 in the browser, then you use
18817 11xxxxxxxxx8 as the root_folder_id in the config.
18818
18819 Standard options
18820 Here are the standard options specific to box (Box).
18821
18822 --box-client-id
18823 OAuth Client Id.
18824
18825 Leave blank normally.
18826
18827 • Config: client_id
18828
18829 • Env Var: RCLONE_BOX_CLIENT_ID
18830
18831 • Type: string
18832
18833 • Default: ""
18834
18835 --box-client-secret
18836 OAuth Client Secret.
18837
18838 Leave blank normally.
18839
18840 • Config: client_secret
18841
18842 • Env Var: RCLONE_BOX_CLIENT_SECRET
18843
18844 • Type: string
18845
18846 • Default: ""
18847
18848 --box-box-config-file
18849 Box App config.json location
18850
18851 Leave blank normally.
18852
18853 Leading ~ will be expanded in the file name as will environment vari‐
18854 ables such as ${RCLONE_CONFIG_DIR}.
18855
18856 • Config: box_config_file
18857
18858 • Env Var: RCLONE_BOX_BOX_CONFIG_FILE
18859
18860 • Type: string
18861
18862 • Default: ""
18863
18864 --box-access-token
18865 Box App Primary Access Token
18866
18867 Leave blank normally.
18868
18869 • Config: access_token
18870
18871 • Env Var: RCLONE_BOX_ACCESS_TOKEN
18872
18873 • Type: string
18874
18875 • Default: ""
18876
18877 --box-box-sub-type
18878 • Config: box_sub_type
18879
18880 • Env Var: RCLONE_BOX_BOX_SUB_TYPE
18881
18882 • Type: string
18883
18884 • Default: "user"
18885
18886 • Examples:
18887
18888 • "user"
18889
18890 • Rclone should act on behalf of a user.
18891
18892 • "enterprise"
18893
18894 • Rclone should act on behalf of a service account.
18895
18896 Advanced options
18897 Here are the advanced options specific to box (Box).
18898
18899 --box-token
18900 OAuth Access Token as a JSON blob.
18901
18902 • Config: token
18903
18904 • Env Var: RCLONE_BOX_TOKEN
18905
18906 • Type: string
18907
18908 • Default: ""
18909
18910 --box-auth-url
18911 Auth server URL.
18912
18913 Leave blank to use the provider defaults.
18914
18915 • Config: auth_url
18916
18917 • Env Var: RCLONE_BOX_AUTH_URL
18918
18919 • Type: string
18920
18921 • Default: ""
18922
18923 --box-token-url
18924 Token server url.
18925
18926 Leave blank to use the provider defaults.
18927
18928 • Config: token_url
18929
18930 • Env Var: RCLONE_BOX_TOKEN_URL
18931
18932 • Type: string
18933
18934 • Default: ""
18935
18936 --box-root-folder-id
18937 Fill in for rclone to use a non root folder as its starting point.
18938
18939 • Config: root_folder_id
18940
18941 • Env Var: RCLONE_BOX_ROOT_FOLDER_ID
18942
18943 • Type: string
18944
18945 • Default: "0"
18946
18947 --box-upload-cutoff
18948 Cutoff for switching to multipart upload (>= 50 MiB).
18949
18950 • Config: upload_cutoff
18951
18952 • Env Var: RCLONE_BOX_UPLOAD_CUTOFF
18953
18954 • Type: SizeSuffix
18955
18956 • Default: 50Mi
18957
18958 --box-commit-retries
18959 Max number of times to try committing a multipart file.
18960
18961 • Config: commit_retries
18962
18963 • Env Var: RCLONE_BOX_COMMIT_RETRIES
18964
18965 • Type: int
18966
18967 • Default: 100
18968
18969 --box-list-chunk
18970 Size of listing chunk 1-1000.
18971
18972 • Config: list_chunk
18973
18974 • Env Var: RCLONE_BOX_LIST_CHUNK
18975
18976 • Type: int
18977
18978 • Default: 1000
18979
18980 --box-owned-by
18981 Only show items owned by the login (email address) passed in.
18982
18983 • Config: owned_by
18984
18985 • Env Var: RCLONE_BOX_OWNED_BY
18986
18987 • Type: string
18988
18989 • Default: ""
18990
18991 --box-encoding
18992 This sets the encoding for the backend.
18993
18994 See the encoding section in the overview (https://rclone.org/over‐
18995 view/#encoding) for more info.
18996
18997 • Config: encoding
18998
18999 • Env Var: RCLONE_BOX_ENCODING
19000
19001 • Type: MultiEncoder
19002
19003 • Default: Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot
19004
19005 Limitations
19006 Note that Box is case insensitive so you can't have a file called "Hel‐
19007 lo.doc" and one called "hello.doc".
19008
19009 Box file names can't have the \ character in. rclone maps this to and
19010 from an identical looking unicode equivalent \ (U+FF3C Fullwidth Re‐
19011 verse Solidus).
19012
19013 Box only supports filenames up to 255 characters in length.
19014
19015 rclone about is not supported by the Box backend. Backends without
19016 this capability cannot determine free space for an rclone mount or use
19017 policy mfs (most free space) as a member of an rclone union remote.
19018
19019 See List of backends that do not support rclone about
19020 (https://rclone.org/overview/#optional-features) See rclone about
19021 (https://rclone.org/commands/rclone_about/)
19022
19024 The cache remote wraps another existing remote and stores file struc‐
19025 ture and its data for long running tasks like rclone mount.
19026
19027 Status
19028 The cache backend code is working but it currently doesn't have a main‐
19029 tainer so there are outstanding bugs
19030 (https://github.com/rclone/rclone/issues?q=is%3Aopen+is%3Aissue+la‐
19031 bel%3Abug+label%3A%22Remote%3A+Cache%22) which aren't getting fixed.
19032
19033 The cache backend is due to be phased out in favour of the VFS caching
19034 layer eventually which is more tightly integrated into rclone.
19035
19036 Until this happens we recommend only using the cache backend if you
19037 find you can't work without it. There are many docs online describing
19038 the use of the cache backend to minimize API hits and by-and-large
19039 these are out of date and the cache backend isn't needed in those sce‐
19040 narios any more.
19041
19042 Configuration
19043 To get started you just need to have an existing remote which can be
19044 configured with cache.
19045
19046 Here is an example of how to make a remote called test-cache. First
19047 run:
19048
19049 rclone config
19050
19051 This will guide you through an interactive setup process:
19052
19053 No remotes found - make a new one
19054 n) New remote
19055 r) Rename remote
19056 c) Copy remote
19057 s) Set configuration password
19058 q) Quit config
19059 n/r/c/s/q> n
19060 name> test-cache
19061 Type of storage to configure.
19062 Choose a number from below, or type in your own value
19063 [snip]
19064 XX / Cache a remote
19065 \ "cache"
19066 [snip]
19067 Storage> cache
19068 Remote to cache.
19069 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
19070 "myremote:bucket" or maybe "myremote:" (not recommended).
19071 remote> local:/test
19072 Optional: The URL of the Plex server
19073 plex_url> http://127.0.0.1:32400
19074 Optional: The username of the Plex user
19075 plex_username> dummyusername
19076 Optional: The password of the Plex user
19077 y) Yes type in my own password
19078 g) Generate random password
19079 n) No leave this optional password blank
19080 y/g/n> y
19081 Enter the password:
19082 password:
19083 Confirm the password:
19084 password:
19085 The size of a chunk. Lower value good for slow connections but can affect seamless reading.
19086 Default: 5M
19087 Choose a number from below, or type in your own value
19088 1 / 1 MiB
19089 \ "1M"
19090 2 / 5 MiB
19091 \ "5M"
19092 3 / 10 MiB
19093 \ "10M"
19094 chunk_size> 2
19095 How much time should object info (file size, file hashes, etc.) be stored in cache. Use a very high value if you don't plan on changing the source FS from outside the cache.
19096 Accepted units are: "s", "m", "h".
19097 Default: 5m
19098 Choose a number from below, or type in your own value
19099 1 / 1 hour
19100 \ "1h"
19101 2 / 24 hours
19102 \ "24h"
19103 3 / 24 hours
19104 \ "48h"
19105 info_age> 2
19106 The maximum size of stored chunks. When the storage grows beyond this size, the oldest chunks will be deleted.
19107 Default: 10G
19108 Choose a number from below, or type in your own value
19109 1 / 500 MiB
19110 \ "500M"
19111 2 / 1 GiB
19112 \ "1G"
19113 3 / 10 GiB
19114 \ "10G"
19115 chunk_total_size> 3
19116 Remote config
19117 --------------------
19118 [test-cache]
19119 remote = local:/test
19120 plex_url = http://127.0.0.1:32400
19121 plex_username = dummyusername
19122 plex_password = *** ENCRYPTED ***
19123 chunk_size = 5M
19124 info_age = 48h
19125 chunk_total_size = 10G
19126
19127 You can then use it like this,
19128
19129 List directories in top level of your drive
19130
19131 rclone lsd test-cache:
19132
19133 List all the files in your drive
19134
19135 rclone ls test-cache:
19136
19137 To start a cached mount
19138
19139 rclone mount --allow-other test-cache: /var/tmp/test-cache
19140
19141 Write Features
19142 Offline uploading
19143 In an effort to make writing through cache more reliable, the backend
19144 now supports this feature which can be activated by specifying a
19145 cache-tmp-upload-path.
19146
19147 A files goes through these states when using this feature:
19148
19149 1. An upload is started (usually by copying a file on the cache remote)
19150
19151 2. When the copy to the temporary location is complete the file is part
19152 of the cached remote and looks and behaves like any other file
19153 (reading included)
19154
19155 3. After cache-tmp-wait-time passes and the file is next in line,
19156 rclone move is used to move the file to the cloud provider
19157
19158 4. Reading the file still works during the upload but most modifica‐
19159 tions on it will be prohibited
19160
19161 5. Once the move is complete the file is unlocked for modifications as
19162 it becomes as any other regular file
19163
19164 6. If the file is being read through cache when it's actually deleted
19165 from the temporary path then cache will simply swap the source to
19166 the cloud provider without interrupting the reading (small blip can
19167 happen though)
19168
19169 Files are uploaded in sequence and only one file is uploaded at a time.
19170 Uploads will be stored in a queue and be processed based on the order
19171 they were added. The queue and the temporary storage is persistent
19172 across restarts but can be cleared on startup with the --cache-db-purge
19173 flag.
19174
19175 Write Support
19176 Writes are supported through cache. One caveat is that a mounted cache
19177 remote does not add any retry or fallback mechanism to the upload oper‐
19178 ation. This will depend on the implementation of the wrapped remote.
19179 Consider using Offline uploading for reliable writes.
19180
19181 One special case is covered with cache-writes which will cache the file
19182 data at the same time as the upload when it is enabled making it avail‐
19183 able from the cache store immediately once the upload is finished.
19184
19185 Read Features
19186 Multiple connections
19187 To counter the high latency between a local PC where rclone is running
19188 and cloud providers, the cache remote can split multiple requests to
19189 the cloud provider for smaller file chunks and combines them together
19190 locally where they can be available almost immediately before the read‐
19191 er usually needs them.
19192
19193 This is similar to buffering when media files are played online.
19194 Rclone will stay around the current marker but always try its best to
19195 stay ahead and prepare the data before.
19196
19197 Plex Integration
19198 There is a direct integration with Plex which allows cache to detect
19199 during reading if the file is in playback or not. This helps cache to
19200 adapt how it queries the cloud provider depending on what is needed
19201 for.
19202
19203 Scans will have a minimum amount of workers (1) while in a confirmed
19204 playback cache will deploy the configured number of workers.
19205
19206 This integration opens the doorway to additional performance improve‐
19207 ments which will be explored in the near future.
19208
19209 Note: If Plex options are not configured, cache will function with its
19210 configured options without adapting any of its settings.
19211
19212 How to enable? Run rclone config and add all the Plex options (end‐
19213 point, username and password) in your remote and it will be automati‐
19214 cally enabled.
19215
19216 Affected settings: - cache-workers: Configured value during confirmed
19217 playback or 1 all the other times
19218
19219 Certificate Validation
19220 When the Plex server is configured to only accept secure connections,
19221 it is possible to use .plex.direct URLs to ensure certificate valida‐
19222 tion succeeds. These URLs are used by Plex internally to connect to
19223 the Plex server securely.
19224
19225 The format for these URLs is the following:
19226
19227 https://ip-with-dots-replaced.server-hash.plex.direct:32400/
19228
19229 The ip-with-dots-replaced part can be any IPv4 address, where the dots
19230 have been replaced with dashes, e.g. 127.0.0.1 becomes 127-0-0-1.
19231
19232 To get the server-hash part, the easiest way is to visit
19233
19234 https://plex.tv/api/resources?includeHttps=1&X-Plex-Token=your-plex-to‐
19235 ken
19236
19237 This page will list all the available Plex servers for your account
19238 with at least one .plex.direct link for each. Copy one URL and replace
19239 the IP address with the desired address. This can be used as the
19240 plex_url value.
19241
19242 Known issues
19243 Mount and --dir-cache-time
19244 --dir-cache-time controls the first layer of directory caching which
19245 works at the mount layer. Being an independent caching mechanism from
19246 the cache backend, it will manage its own entries based on the config‐
19247 ured time.
19248
19249 To avoid getting in a scenario where dir cache has obsolete data and
19250 cache would have the correct one, try to set --dir-cache-time to a low‐
19251 er time than --cache-info-age. Default values are already configured
19252 in this way.
19253
19254 Windows support - Experimental
19255 There are a couple of issues with Windows mount functionality that
19256 still require some investigations. It should be considered as experi‐
19257 mental thus far as fixes come in for this OS.
19258
19259 Most of the issues seem to be related to the difference between
19260 filesystems on Linux flavors and Windows as cache is heavily dependent
19261 on them.
19262
19263 Any reports or feedback on how cache behaves on this OS is greatly ap‐
19264 preciated.
19265
19266 • https://github.com/rclone/rclone/issues/1935
19267
19268 • https://github.com/rclone/rclone/issues/1907
19269
19270 • https://github.com/rclone/rclone/issues/1834
19271
19272 Risk of throttling
19273 Future iterations of the cache backend will make use of the pooling
19274 functionality of the cloud provider to synchronize and at the same time
19275 make writing through it more tolerant to failures.
19276
19277 There are a couple of enhancements in track to add these but in the
19278 meantime there is a valid concern that the expiring cache listings can
19279 lead to cloud provider throttles or bans due to repeated queries on it
19280 for very large mounts.
19281
19282 Some recommendations: - don't use a very small interval for entry in‐
19283 formation (--cache-info-age) - while writes aren't yet optimised, you
19284 can still write through cache which gives you the advantage of adding
19285 the file in the cache at the same time if configured to do so.
19286
19287 Future enhancements:
19288
19289 • https://github.com/rclone/rclone/issues/1937
19290
19291 • https://github.com/rclone/rclone/issues/1936
19292
19293 cache and crypt
19294 One common scenario is to keep your data encrypted in the cloud
19295 provider using the crypt remote. crypt uses a similar technique to
19296 wrap around an existing remote and handles this translation in a seam‐
19297 less way.
19298
19299 There is an issue with wrapping the remotes in this order: cloud remote
19300 -> crypt -> cache
19301
19302 During testing, I experienced a lot of bans with the remotes in this
19303 order. I suspect it might be related to how crypt opens files on the
19304 cloud provider which makes it think we're downloading the full file in‐
19305 stead of small chunks. Organizing the remotes in this order yields
19306 better results: cloud remote -> cache -> crypt
19307
19308 absolute remote paths
19309 cache can not differentiate between relative and absolute paths for the
19310 wrapped remote. Any path given in the remote config setting and on the
19311 command line will be passed to the wrapped remote as is, but for stor‐
19312 ing the chunks on disk the path will be made relative by removing any
19313 leading / character.
19314
19315 This behavior is irrelevant for most backend types, but there are back‐
19316 ends where a leading / changes the effective directory, e.g. in the
19317 sftp backend paths starting with a / are relative to the root of the
19318 SSH server and paths without are relative to the user home directory.
19319 As a result sftp:bin and sftp:/bin will share the same cache folder,
19320 even if they represent a different directory on the SSH server.
19321
19322 Cache and Remote Control (--rc)
19323 Cache supports the new --rc mode in rclone and can be remote controlled
19324 through the following end points: By default, the listener is disabled
19325 if you do not add the flag.
19326
19327 rc cache/expire
19328 Purge a remote from the cache backend. Supports either a directory or
19329 a file. It supports both encrypted and unencrypted file names if cache
19330 is wrapped by crypt.
19331
19332 Params: - remote = path to remote (required) - withData = true/false to
19333 delete cached data (chunks) as well (optional, false by default)
19334
19335 Standard options
19336 Here are the standard options specific to cache (Cache a remote).
19337
19338 --cache-remote
19339 Remote to cache.
19340
19341 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
19342 "myremote:bucket" or maybe "myremote:" (not recommended).
19343
19344 • Config: remote
19345
19346 • Env Var: RCLONE_CACHE_REMOTE
19347
19348 • Type: string
19349
19350 • Default: ""
19351
19352 --cache-plex-url
19353 The URL of the Plex server.
19354
19355 • Config: plex_url
19356
19357 • Env Var: RCLONE_CACHE_PLEX_URL
19358
19359 • Type: string
19360
19361 • Default: ""
19362
19363 --cache-plex-username
19364 The username of the Plex user.
19365
19366 • Config: plex_username
19367
19368 • Env Var: RCLONE_CACHE_PLEX_USERNAME
19369
19370 • Type: string
19371
19372 • Default: ""
19373
19374 --cache-plex-password
19375 The password of the Plex user.
19376
19377 NB Input to this must be obscured - see rclone obscure
19378 (https://rclone.org/commands/rclone_obscure/).
19379
19380 • Config: plex_password
19381
19382 • Env Var: RCLONE_CACHE_PLEX_PASSWORD
19383
19384 • Type: string
19385
19386 • Default: ""
19387
19388 --cache-chunk-size
19389 The size of a chunk (partial file data).
19390
19391 Use lower numbers for slower connections. If the chunk size is
19392 changed, any downloaded chunks will be invalid and cache-chunk-path
19393 will need to be cleared or unexpected EOF errors will occur.
19394
19395 • Config: chunk_size
19396
19397 • Env Var: RCLONE_CACHE_CHUNK_SIZE
19398
19399 • Type: SizeSuffix
19400
19401 • Default: 5Mi
19402
19403 • Examples:
19404
19405 • "1M"
19406
19407 • 1 MiB
19408
19409 • "5M"
19410
19411 • 5 MiB
19412
19413 • "10M"
19414
19415 • 10 MiB
19416
19417 --cache-info-age
19418 How long to cache file structure information (directory listings, file
19419 size, times, etc.). If all write operations are done through the cache
19420 then you can safely make this value very large as the cache store will
19421 also be updated in real time.
19422
19423 • Config: info_age
19424
19425 • Env Var: RCLONE_CACHE_INFO_AGE
19426
19427 • Type: Duration
19428
19429 • Default: 6h0m0s
19430
19431 • Examples:
19432
19433 • "1h"
19434
19435 • 1 hour
19436
19437 • "24h"
19438
19439 • 24 hours
19440
19441 • "48h"
19442
19443 • 48 hours
19444
19445 --cache-chunk-total-size
19446 The total size that the chunks can take up on the local disk.
19447
19448 If the cache exceeds this value then it will start to delete the oldest
19449 chunks until it goes under this value.
19450
19451 • Config: chunk_total_size
19452
19453 • Env Var: RCLONE_CACHE_CHUNK_TOTAL_SIZE
19454
19455 • Type: SizeSuffix
19456
19457 • Default: 10Gi
19458
19459 • Examples:
19460
19461 • "500M"
19462
19463 • 500 MiB
19464
19465 • "1G"
19466
19467 • 1 GiB
19468
19469 • "10G"
19470
19471 • 10 GiB
19472
19473 Advanced options
19474 Here are the advanced options specific to cache (Cache a remote).
19475
19476 --cache-plex-token
19477 The plex token for authentication - auto set normally.
19478
19479 • Config: plex_token
19480
19481 • Env Var: RCLONE_CACHE_PLEX_TOKEN
19482
19483 • Type: string
19484
19485 • Default: ""
19486
19487 --cache-plex-insecure
19488 Skip all certificate verification when connecting to the Plex server.
19489
19490 • Config: plex_insecure
19491
19492 • Env Var: RCLONE_CACHE_PLEX_INSECURE
19493
19494 • Type: string
19495
19496 • Default: ""
19497
19498 --cache-db-path
19499 Directory to store file structure metadata DB.
19500
19501 The remote name is used as the DB file name.
19502
19503 • Config: db_path
19504
19505 • Env Var: RCLONE_CACHE_DB_PATH
19506
19507 • Type: string
19508
19509 • Default: "$HOME/.cache/rclone/cache-backend"
19510
19511 --cache-chunk-path
19512 Directory to cache chunk files.
19513
19514 Path to where partial file data (chunks) are stored locally. The re‐
19515 mote name is appended to the final path.
19516
19517 This config follows the "--cache-db-path". If you specify a custom lo‐
19518 cation for "--cache-db-path" and don't specify one for
19519 "--cache-chunk-path" then "--cache-chunk-path" will use the same path
19520 as "--cache-db-path".
19521
19522 • Config: chunk_path
19523
19524 • Env Var: RCLONE_CACHE_CHUNK_PATH
19525
19526 • Type: string
19527
19528 • Default: "$HOME/.cache/rclone/cache-backend"
19529
19530 --cache-db-purge
19531 Clear all the cached data for this remote on start.
19532
19533 • Config: db_purge
19534
19535 • Env Var: RCLONE_CACHE_DB_PURGE
19536
19537 • Type: bool
19538
19539 • Default: false
19540
19541 --cache-chunk-clean-interval
19542 How often should the cache perform cleanups of the chunk storage.
19543
19544 The default value should be ok for most people. If you find that the
19545 cache goes over "cache-chunk-total-size" too often then try to lower
19546 this value to force it to perform cleanups more often.
19547
19548 • Config: chunk_clean_interval
19549
19550 • Env Var: RCLONE_CACHE_CHUNK_CLEAN_INTERVAL
19551
19552 • Type: Duration
19553
19554 • Default: 1m0s
19555
19556 --cache-read-retries
19557 How many times to retry a read from a cache storage.
19558
19559 Since reading from a cache stream is independent from downloading file
19560 data, readers can get to a point where there's no more data in the
19561 cache. Most of the times this can indicate a connectivity issue if
19562 cache isn't able to provide file data anymore.
19563
19564 For really slow connections, increase this to a point where the stream
19565 is able to provide data but your experience will be very stuttering.
19566
19567 • Config: read_retries
19568
19569 • Env Var: RCLONE_CACHE_READ_RETRIES
19570
19571 • Type: int
19572
19573 • Default: 10
19574
19575 --cache-workers
19576 How many workers should run in parallel to download chunks.
19577
19578 Higher values will mean more parallel processing (better CPU needed)
19579 and more concurrent requests on the cloud provider. This impacts sev‐
19580 eral aspects like the cloud provider API limits, more stress on the
19581 hardware that rclone runs on but it also means that streams will be
19582 more fluid and data will be available much more faster to readers.
19583
19584 Note: If the optional Plex integration is enabled then this setting
19585 will adapt to the type of reading performed and the value specified
19586 here will be used as a maximum number of workers to use.
19587
19588 • Config: workers
19589
19590 • Env Var: RCLONE_CACHE_WORKERS
19591
19592 • Type: int
19593
19594 • Default: 4
19595
19596 --cache-chunk-no-memory
19597 Disable the in-memory cache for storing chunks during streaming.
19598
19599 By default, cache will keep file data during streaming in RAM as well
19600 to provide it to readers as fast as possible.
19601
19602 This transient data is evicted as soon as it is read and the number of
19603 chunks stored doesn't exceed the number of workers. However, depending
19604 on other settings like "cache-chunk-size" and "cache-workers" this
19605 footprint can increase if there are parallel streams too (multiple
19606 files being read at the same time).
19607
19608 If the hardware permits it, use this feature to provide an overall bet‐
19609 ter performance during streaming but it can also be disabled if RAM is
19610 not available on the local machine.
19611
19612 • Config: chunk_no_memory
19613
19614 • Env Var: RCLONE_CACHE_CHUNK_NO_MEMORY
19615
19616 • Type: bool
19617
19618 • Default: false
19619
19620 --cache-rps
19621 Limits the number of requests per second to the source FS (-1 to dis‐
19622 able).
19623
19624 This setting places a hard limit on the number of requests per second
19625 that cache will be doing to the cloud provider remote and try to re‐
19626 spect that value by setting waits between reads.
19627
19628 If you find that you're getting banned or limited on the cloud provider
19629 through cache and know that a smaller number of requests per second
19630 will allow you to work with it then you can use this setting for that.
19631
19632 A good balance of all the other settings should make this setting use‐
19633 less but it is available to set for more special cases.
19634
19635 NOTE: This will limit the number of requests during streams but other
19636 API calls to the cloud provider like directory listings will still
19637 pass.
19638
19639 • Config: rps
19640
19641 • Env Var: RCLONE_CACHE_RPS
19642
19643 • Type: int
19644
19645 • Default: -1
19646
19647 --cache-writes
19648 Cache file data on writes through the FS.
19649
19650 If you need to read files immediately after you upload them through
19651 cache you can enable this flag to have their data stored in the cache
19652 store at the same time during upload.
19653
19654 • Config: writes
19655
19656 • Env Var: RCLONE_CACHE_WRITES
19657
19658 • Type: bool
19659
19660 • Default: false
19661
19662 --cache-tmp-upload-path
19663 Directory to keep temporary files until they are uploaded.
19664
19665 This is the path where cache will use as a temporary storage for new
19666 files that need to be uploaded to the cloud provider.
19667
19668 Specifying a value will enable this feature. Without it, it is com‐
19669 pletely disabled and files will be uploaded directly to the cloud
19670 provider
19671
19672 • Config: tmp_upload_path
19673
19674 • Env Var: RCLONE_CACHE_TMP_UPLOAD_PATH
19675
19676 • Type: string
19677
19678 • Default: ""
19679
19680 --cache-tmp-wait-time
19681 How long should files be stored in local cache before being uploaded.
19682
19683 This is the duration that a file must wait in the temporary location
19684 cache-tmp-upload-path before it is selected for upload.
19685
19686 Note that only one file is uploaded at a time and it can take longer to
19687 start the upload if a queue formed for this purpose.
19688
19689 • Config: tmp_wait_time
19690
19691 • Env Var: RCLONE_CACHE_TMP_WAIT_TIME
19692
19693 • Type: Duration
19694
19695 • Default: 15s
19696
19697 --cache-db-wait-time
19698 How long to wait for the DB to be available - 0 is unlimited.
19699
19700 Only one process can have the DB open at any one time, so rclone waits
19701 for this duration for the DB to become available before it gives an er‐
19702 ror.
19703
19704 If you set it to 0 then it will wait forever.
19705
19706 • Config: db_wait_time
19707
19708 • Env Var: RCLONE_CACHE_DB_WAIT_TIME
19709
19710 • Type: Duration
19711
19712 • Default: 1s
19713
19714 Backend commands
19715 Here are the commands specific to the cache backend.
19716
19717 Run them with
19718
19719 rclone backend COMMAND remote:
19720
19721 The help below will explain what arguments each command takes.
19722
19723 See the "rclone backend" command (https://rclone.org/com‐
19724 mands/rclone_backend/) for more info on how to pass options and argu‐
19725 ments.
19726
19727 These can be run on a running backend using the rc command backend/com‐
19728 mand (https://rclone.org/rc/#backend/command).
19729
19730 stats
19731 Print stats on the cache backend in JSON format.
19732
19733 rclone backend stats remote: [options] [<arguments>+]
19734
19736 The chunker overlay transparently splits large files into smaller
19737 chunks during upload to wrapped remote and transparently assembles them
19738 back when the file is downloaded. This allows to effectively overcome
19739 size limits imposed by storage providers.
19740
19741 Configuration
19742 To use it, first set up the underlying remote following the configura‐
19743 tion instructions for that remote. You can also use a local pathname
19744 instead of a remote.
19745
19746 First check your chosen remote is working - we'll call it remote:path
19747 here. Note that anything inside remote:path will be chunked and any‐
19748 thing outside won't. This means that if you are using a bucket based
19749 remote (e.g. S3, B2, swift) then you should probably put the bucket in
19750 the remote s3:bucket.
19751
19752 Now configure chunker using rclone config. We will call this one over‐
19753 lay to separate it from the remote itself.
19754
19755 No remotes found - make a new one
19756 n) New remote
19757 s) Set configuration password
19758 q) Quit config
19759 n/s/q> n
19760 name> overlay
19761 Type of storage to configure.
19762 Choose a number from below, or type in your own value
19763 [snip]
19764 XX / Transparently chunk/split large files
19765 \ "chunker"
19766 [snip]
19767 Storage> chunker
19768 Remote to chunk/unchunk.
19769 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
19770 "myremote:bucket" or maybe "myremote:" (not recommended).
19771 Enter a string value. Press Enter for the default ("").
19772 remote> remote:path
19773 Files larger than chunk size will be split in chunks.
19774 Enter a size with suffix K,M,G,T. Press Enter for the default ("2G").
19775 chunk_size> 100M
19776 Choose how chunker handles hash sums. All modes but "none" require metadata.
19777 Enter a string value. Press Enter for the default ("md5").
19778 Choose a number from below, or type in your own value
19779 1 / Pass any hash supported by wrapped remote for non-chunked files, return nothing otherwise
19780 \ "none"
19781 2 / MD5 for composite files
19782 \ "md5"
19783 3 / SHA1 for composite files
19784 \ "sha1"
19785 4 / MD5 for all files
19786 \ "md5all"
19787 5 / SHA1 for all files
19788 \ "sha1all"
19789 6 / Copying a file to chunker will request MD5 from the source falling back to SHA1 if unsupported
19790 \ "md5quick"
19791 7 / Similar to "md5quick" but prefers SHA1 over MD5
19792 \ "sha1quick"
19793 hash_type> md5
19794 Edit advanced config? (y/n)
19795 y) Yes
19796 n) No
19797 y/n> n
19798 Remote config
19799 --------------------
19800 [overlay]
19801 type = chunker
19802 remote = remote:bucket
19803 chunk_size = 100M
19804 hash_type = md5
19805 --------------------
19806 y) Yes this is OK
19807 e) Edit this remote
19808 d) Delete this remote
19809 y/e/d> y
19810
19811 Specifying the remote
19812 In normal use, make sure the remote has a : in. If you specify the re‐
19813 mote without a : then rclone will use a local directory of that name.
19814 So if you use a remote of /path/to/secret/files then rclone will chunk
19815 stuff in that directory. If you use a remote of name then rclone will
19816 put files in a directory called name in the current directory.
19817
19818 Chunking
19819 When rclone starts a file upload, chunker checks the file size. If it
19820 doesn't exceed the configured chunk size, chunker will just pass the
19821 file to the wrapped remote. If a file is large, chunker will transpar‐
19822 ently cut data in pieces with temporary names and stream them one by
19823 one, on the fly. Each data chunk will contain the specified number of
19824 bytes, except for the last one which may have less data. If file size
19825 is unknown in advance (this is called a streaming upload), chunker will
19826 internally create a temporary copy, record its size and repeat the
19827 above process.
19828
19829 When upload completes, temporary chunk files are finally renamed. This
19830 scheme guarantees that operations can be run in parallel and look from
19831 outside as atomic. A similar method with hidden temporary chunks is
19832 used for other operations (copy/move/rename, etc.). If an operation
19833 fails, hidden chunks are normally destroyed, and the target composite
19834 file stays intact.
19835
19836 When a composite file download is requested, chunker transparently as‐
19837 sembles it by concatenating data chunks in order. As the split is
19838 trivial one could even manually concatenate data chunks together to ob‐
19839 tain the original content.
19840
19841 When the list rclone command scans a directory on wrapped remote, the
19842 potential chunk files are accounted for, grouped and assembled into
19843 composite directory entries. Any temporary chunks are hidden.
19844
19845 List and other commands can sometimes come across composite files with
19846 missing or invalid chunks, e.g. shadowed by like-named directory or
19847 another file. This usually means that wrapped file system has been di‐
19848 rectly tampered with or damaged. If chunker detects a missing chunk it
19849 will by default print warning, skip the whole incomplete group of
19850 chunks but proceed with current command. You can set the --chun‐
19851 ker-fail-hard flag to have commands abort with error message in such
19852 cases.
19853
19854 Chunk names
19855 The default chunk name format is *.rclone_chunk.###, hence by default
19856 chunk names are BIG_FILE_NAME.rclone_chunk.001,
19857 BIG_FILE_NAME.rclone_chunk.002 etc. You can configure another name
19858 format using the name_format configuration file option. The format us‐
19859 es asterisk * as a placeholder for the base file name and one or more
19860 consecutive hash characters # as a placeholder for sequential chunk
19861 number. There must be one and only one asterisk. The number of con‐
19862 secutive hash characters defines the minimum length of a string repre‐
19863 senting a chunk number. If decimal chunk number has less digits than
19864 the number of hashes, it is left-padded by zeros. If the decimal
19865 string is longer, it is left intact. By default numbering starts from
19866 1 but there is another option that allows user to start from 0, e.g.
19867 for compatibility with legacy software.
19868
19869 For example, if name format is big_*-##.part and original file name is
19870 data.txt and numbering starts from 0, then the first chunk will be
19871 named big_data.txt-00.part, the 99th chunk will be big_data.txt-98.part
19872 and the 302nd chunk will become big_data.txt-301.part.
19873
19874 Note that list assembles composite directory entries only when chunk
19875 names match the configured format and treats non-conforming file names
19876 as normal non-chunked files.
19877
19878 When using norename transactions, chunk names will additionally have a
19879 unique file version suffix. For example,
19880 BIG_FILE_NAME.rclone_chunk.001_bp562k.
19881
19882 Metadata
19883 Besides data chunks chunker will by default create metadata object for
19884 a composite file. The object is named after the original file. Chun‐
19885 ker allows user to disable metadata completely (the none format). Note
19886 that metadata is normally not created for files smaller than the con‐
19887 figured chunk size. This may change in future rclone releases.
19888
19889 Simple JSON metadata format
19890 This is the default format. It supports hash sums and chunk validation
19891 for composite files. Meta objects carry the following fields:
19892
19893 • ver - version of format, currently 1
19894
19895 • size - total size of composite file
19896
19897 • nchunks - number of data chunks in file
19898
19899 • md5 - MD5 hashsum of composite file (if present)
19900
19901 • sha1 - SHA1 hashsum (if present)
19902
19903 • txn - identifies current version of the file
19904
19905 There is no field for composite file name as it's simply equal to the
19906 name of meta object on the wrapped remote. Please refer to respective
19907 sections for details on hashsums and modified time handling.
19908
19909 No metadata
19910 You can disable meta objects by setting the meta format option to none.
19911 In this mode chunker will scan directory for all files that follow con‐
19912 figured chunk name format, group them by detecting chunks with the same
19913 base name and show group names as virtual composite files. This method
19914 is more prone to missing chunk errors (especially missing last chunk)
19915 than format with metadata enabled.
19916
19917 Hashsums
19918 Chunker supports hashsums only when a compatible metadata is present.
19919 Hence, if you choose metadata format of none, chunker will report hash‐
19920 sum as UNSUPPORTED.
19921
19922 Please note that by default metadata is stored only for composite
19923 files. If a file is smaller than configured chunk size, chunker will
19924 transparently redirect hash requests to wrapped remote, so support de‐
19925 pends on that. You will see the empty string as a hashsum of requested
19926 type for small files if the wrapped remote doesn't support it.
19927
19928 Many storage backends support MD5 and SHA1 hash types, so does chunker.
19929 With chunker you can choose one or another but not both. MD5 is set by
19930 default as the most supported type. Since chunker keeps hashes for
19931 composite files and falls back to the wrapped remote hash for non-chun‐
19932 ked ones, we advise you to choose the same hash type as supported by
19933 wrapped remote so that your file listings look coherent.
19934
19935 If your storage backend does not support MD5 or SHA1 but you need con‐
19936 sistent file hashing, configure chunker with md5all or sha1all. These
19937 two modes guarantee given hash for all files. If wrapped remote
19938 doesn't support it, chunker will then add metadata to all files, even
19939 small. However, this can double the amount of small files in storage
19940 and incur additional service charges. You can even use chunker to
19941 force md5/sha1 support in any other remote at expense of sidecar meta
19942 objects by setting e.g. chunk_type=sha1all to force hashsums and
19943 chunk_size=1P to effectively disable chunking.
19944
19945 Normally, when a file is copied to chunker controlled remote, chunker
19946 will ask the file source for compatible file hash and revert to
19947 on-the-fly calculation if none is found. This involves some CPU over‐
19948 head but provides a guarantee that given hashsum is available. Also,
19949 chunker will reject a server-side copy or move operation if source and
19950 destination hashsum types are different resulting in the extra network
19951 bandwidth, too. In some rare cases this may be undesired, so chunker
19952 provides two optional choices: sha1quick and md5quick. If the source
19953 does not support primary hash type and the quick mode is enabled, chun‐
19954 ker will try to fall back to the secondary type. This will save CPU
19955 and bandwidth but can result in empty hashsums at destination. Beware
19956 of consequences: the sync command will revert (sometimes silently) to
19957 time/size comparison if compatible hashsums between source and target
19958 are not found.
19959
19960 Modified time
19961 Chunker stores modification times using the wrapped remote so support
19962 depends on that. For a small non-chunked file the chunker overlay sim‐
19963 ply manipulates modification time of the wrapped remote file. For a
19964 composite file with metadata chunker will get and set modification time
19965 of the metadata object on the wrapped remote. If file is chunked but
19966 metadata format is none then chunker will use modification time of the
19967 first data chunk.
19968
19969 Migrations
19970 The idiomatic way to migrate to a different chunk size, hash type,
19971 transaction style or chunk naming scheme is to:
19972
19973 • Collect all your chunked files under a directory and have your chun‐
19974 ker remote point to it.
19975
19976 • Create another directory (most probably on the same cloud storage)
19977 and configure a new remote with desired metadata format, hash type,
19978 chunk naming etc.
19979
19980 • Now run rclone sync -i oldchunks: newchunks: and all your data will
19981 be transparently converted in transfer. This may take some time, yet
19982 chunker will try server-side copy if possible.
19983
19984 • After checking data integrity you may remove configuration section of
19985 the old remote.
19986
19987 If rclone gets killed during a long operation on a big composite file,
19988 hidden temporary chunks may stay in the directory. They will not be
19989 shown by the list command but will eat up your account quota. Please
19990 note that the deletefile command deletes only active chunks of a file.
19991 As a workaround, you can use remote of the wrapped file system to see
19992 them. An easy way to get rid of hidden garbage is to copy littered di‐
19993 rectory somewhere using the chunker remote and purge the original di‐
19994 rectory. The copy command will copy only active chunks while the purge
19995 will remove everything including garbage.
19996
19997 Caveats and Limitations
19998 Chunker requires wrapped remote to support server-side move (or copy +
19999 delete) operations, otherwise it will explicitly refuse to start. This
20000 is because it internally renames temporary chunk files to their final
20001 names when an operation completes successfully.
20002
20003 Chunker encodes chunk number in file name, so with default name_format
20004 setting it adds 17 characters. Also chunker adds 7 characters of tem‐
20005 porary suffix during operations. Many file systems limit base file
20006 name without path by 255 characters. Using rclone's crypt remote as a
20007 base file system limits file name by 143 characters. Thus, maximum
20008 name length is 231 for most files and 119 for chunker-over-crypt. A
20009 user in need can change name format to e.g. *.rcc## and save 10 char‐
20010 acters (provided at most 99 chunks per file).
20011
20012 Note that a move implemented using the copy-and-delete method may incur
20013 double charging with some cloud storage providers.
20014
20015 Chunker will not automatically rename existing chunks when you run
20016 rclone config on a live remote and change the chunk name format. Be‐
20017 ware that in result of this some files which have been treated as
20018 chunks before the change can pop up in directory listings as normal
20019 files and vice versa. The same warning holds for the chunk size. If
20020 you desperately need to change critical chunking settings, you should
20021 run data migration as described above.
20022
20023 If wrapped remote is case insensitive, the chunker overlay will inherit
20024 that property (so you can't have a file called "Hello.doc" and "hel‐
20025 lo.doc" in the same directory).
20026
20027 Chunker included in rclone releases up to v1.54 can sometimes fail to
20028 detect metadata produced by recent versions of rclone. We recommend
20029 users to keep rclone up-to-date to avoid data corruption.
20030
20031 Changing transactions is dangerous and requires explicit migration.
20032
20033 Standard options
20034 Here are the standard options specific to chunker (Transparently
20035 chunk/split large files).
20036
20037 --chunker-remote
20038 Remote to chunk/unchunk.
20039
20040 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
20041 "myremote:bucket" or maybe "myremote:" (not recommended).
20042
20043 • Config: remote
20044
20045 • Env Var: RCLONE_CHUNKER_REMOTE
20046
20047 • Type: string
20048
20049 • Default: ""
20050
20051 --chunker-chunk-size
20052 Files larger than chunk size will be split in chunks.
20053
20054 • Config: chunk_size
20055
20056 • Env Var: RCLONE_CHUNKER_CHUNK_SIZE
20057
20058 • Type: SizeSuffix
20059
20060 • Default: 2Gi
20061
20062 --chunker-hash-type
20063 Choose how chunker handles hash sums.
20064
20065 All modes but "none" require metadata.
20066
20067 • Config: hash_type
20068
20069 • Env Var: RCLONE_CHUNKER_HASH_TYPE
20070
20071 • Type: string
20072
20073 • Default: "md5"
20074
20075 • Examples:
20076
20077 • "none"
20078
20079 • Pass any hash supported by wrapped remote for non-chunked files.
20080
20081 • Return nothing otherwise.
20082
20083 • "md5"
20084
20085 • MD5 for composite files.
20086
20087 • "sha1"
20088
20089 • SHA1 for composite files.
20090
20091 • "md5all"
20092
20093 • MD5 for all files.
20094
20095 • "sha1all"
20096
20097 • SHA1 for all files.
20098
20099 • "md5quick"
20100
20101 • Copying a file to chunker will request MD5 from the source.
20102
20103 • Falling back to SHA1 if unsupported.
20104
20105 • "sha1quick"
20106
20107 • Similar to "md5quick" but prefers SHA1 over MD5.
20108
20109 Advanced options
20110 Here are the advanced options specific to chunker (Transparently
20111 chunk/split large files).
20112
20113 --chunker-name-format
20114 String format of chunk file names.
20115
20116 The two placeholders are: base file name (*) and chunk number (#...).
20117 There must be one and only one asterisk and one or more consecutive
20118 hash characters. If chunk number has less digits than the number of
20119 hashes, it is left-padded by zeros. If there are more digits in the
20120 number, they are left as is. Possible chunk files are ignored if their
20121 name does not match given format.
20122
20123 • Config: name_format
20124
20125 • Env Var: RCLONE_CHUNKER_NAME_FORMAT
20126
20127 • Type: string
20128
20129 • Default: "*.rclone_chunk.###"
20130
20131 --chunker-start-from
20132 Minimum valid chunk number. Usually 0 or 1.
20133
20134 By default chunk numbers start from 1.
20135
20136 • Config: start_from
20137
20138 • Env Var: RCLONE_CHUNKER_START_FROM
20139
20140 • Type: int
20141
20142 • Default: 1
20143
20144 --chunker-meta-format
20145 Format of the metadata object or "none".
20146
20147 By default "simplejson". Metadata is a small JSON file named after the
20148 composite file.
20149
20150 • Config: meta_format
20151
20152 • Env Var: RCLONE_CHUNKER_META_FORMAT
20153
20154 • Type: string
20155
20156 • Default: "simplejson"
20157
20158 • Examples:
20159
20160 • "none"
20161
20162 • Do not use metadata files at all.
20163
20164 • Requires hash type "none".
20165
20166 • "simplejson"
20167
20168 • Simple JSON supports hash sums and chunk validation.
20169
20170 • It has the following fields: ver, size, nchunks, md5, sha1.
20171
20172 --chunker-fail-hard
20173 Choose how chunker should handle files with missing or invalid chunks.
20174
20175 • Config: fail_hard
20176
20177 • Env Var: RCLONE_CHUNKER_FAIL_HARD
20178
20179 • Type: bool
20180
20181 • Default: false
20182
20183 • Examples:
20184
20185 • "true"
20186
20187 • Report errors and abort current command.
20188
20189 • "false"
20190
20191 • Warn user, skip incomplete file and proceed.
20192
20193 --chunker-transactions
20194 Choose how chunker should handle temporary files during transactions.
20195
20196 • Config: transactions
20197
20198 • Env Var: RCLONE_CHUNKER_TRANSACTIONS
20199
20200 • Type: string
20201
20202 • Default: "rename"
20203
20204 • Examples:
20205
20206 • "rename"
20207
20208 • Rename temporary files after a successful transaction.
20209
20210 • "norename"
20211
20212 • Leave temporary file names and write transaction ID to metadata
20213 file.
20214
20215 • Metadata is required for no rename transactions (meta format can‐
20216 not be "none").
20217
20218 • If you are using norename transactions you should be careful not
20219 to downgrade Rclone
20220
20221 • as older versions of Rclone don't support this transaction style
20222 and will misinterpret
20223
20224 • files manipulated by norename transactions.
20225
20226 • This method is EXPERIMENTAL, don't use on production systems.
20227
20228 • "auto"
20229
20230 • Rename or norename will be used depending on capabilities of the
20231 backend.
20232
20233 • If meta format is set to "none", rename transactions will always
20234 be used.
20235
20236 • This method is EXPERIMENTAL, don't use on production systems.
20237
20239 Citrix ShareFile (https://sharefile.com) is a secure file sharing and
20240 transfer service aimed as business.
20241
20242 Configuration
20243 The initial setup for Citrix ShareFile involves getting a token from
20244 Citrix ShareFile which you can in your browser. rclone config walks
20245 you through it.
20246
20247 Here is an example of how to make a remote called remote. First run:
20248
20249 rclone config
20250
20251 This will guide you through an interactive setup process:
20252
20253 No remotes found - make a new one
20254 n) New remote
20255 s) Set configuration password
20256 q) Quit config
20257 n/s/q> n
20258 name> remote
20259 Type of storage to configure.
20260 Enter a string value. Press Enter for the default ("").
20261 Choose a number from below, or type in your own value
20262 XX / Citrix Sharefile
20263 \ "sharefile"
20264 Storage> sharefile
20265 ** See help for sharefile backend at: https://rclone.org/sharefile/ **
20266
20267 ID of the root folder
20268
20269 Leave blank to access "Personal Folders". You can use one of the
20270 standard values here or any folder ID (long hex number ID).
20271 Enter a string value. Press Enter for the default ("").
20272 Choose a number from below, or type in your own value
20273 1 / Access the Personal Folders. (Default)
20274 \ ""
20275 2 / Access the Favorites folder.
20276 \ "favorites"
20277 3 / Access all the shared folders.
20278 \ "allshared"
20279 4 / Access all the individual connectors.
20280 \ "connectors"
20281 5 / Access the home, favorites, and shared folders as well as the connectors.
20282 \ "top"
20283 root_folder_id>
20284 Edit advanced config? (y/n)
20285 y) Yes
20286 n) No
20287 y/n> n
20288 Remote config
20289 Use auto config?
20290 * Say Y if not sure
20291 * Say N if you are working on a remote or headless machine
20292 y) Yes
20293 n) No
20294 y/n> y
20295 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=XXX
20296 Log in and authorize rclone for access
20297 Waiting for code...
20298 Got code
20299 --------------------
20300 [remote]
20301 type = sharefile
20302 endpoint = https://XXX.sharefile.com
20303 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"2019-09-30T19:41:45.878561877+01:00"}
20304 --------------------
20305 y) Yes this is OK
20306 e) Edit this remote
20307 d) Delete this remote
20308 y/e/d> y
20309
20310 See the remote setup docs (https://rclone.org/remote_setup/) for how to
20311 set it up on a machine with no Internet browser available.
20312
20313 Note that rclone runs a webserver on your local machine to collect the
20314 token as returned from Citrix ShareFile. This only runs from the mo‐
20315 ment it opens your browser to the moment you get back the verification
20316 code. This is on http://127.0.0.1:53682/ and this it may require you
20317 to unblock it temporarily if you are running a host firewall.
20318
20319 Once configured you can then use rclone like this,
20320
20321 List directories in top level of your ShareFile
20322
20323 rclone lsd remote:
20324
20325 List all the files in your ShareFile
20326
20327 rclone ls remote:
20328
20329 To copy a local directory to an ShareFile directory called backup
20330
20331 rclone copy /home/source remote:backup
20332
20333 Paths may be as deep as required, e.g. remote:directory/subdirectory.
20334
20335 Modified time and hashes
20336 ShareFile allows modification times to be set on objects accurate to 1
20337 second. These will be used to detect whether objects need syncing or
20338 not.
20339
20340 ShareFile supports MD5 type hashes, so you can use the --checksum flag.
20341
20342 Transfers
20343 For files above 128 MiB rclone will use a chunked transfer. Rclone
20344 will upload up to --transfers chunks at the same time (shared among all
20345 the multipart uploads). Chunks are buffered in memory and are normally
20346 64 MiB so increasing --transfers will increase memory use.
20347
20348 Restricted filename characters
20349 In addition to the default restricted characters set
20350 (https://rclone.org/overview/#restricted-characters) the following
20351 characters are also replaced:
20352
20353 Character Value Replacement
20354 ────────────────────────────────
20355 \ 0x5C \
20356 * 0x2A *
20357 < 0x3C <
20358 > 0x3E >
20359 ? 0x3F ?
20360 : 0x3A :
20361 | 0x7C |
20362 " 0x22 "
20363
20364 File names can also not start or end with the following characters.
20365 These only get replaced if they are the first or last character in the
20366 name:
20367
20368 Character Value Replacement
20369 ────────────────────────────────
20370 SP 0x20 ␠
20371 . 0x2E .
20372
20373 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
20374 view/#invalid-utf8), as they can't be used in JSON strings.
20375
20376 Standard options
20377 Here are the standard options specific to sharefile (Citrix Sharefile).
20378
20379 --sharefile-root-folder-id
20380 ID of the root folder.
20381
20382 Leave blank to access "Personal Folders". You can use one of the stan‐
20383 dard values here or any folder ID (long hex number ID).
20384
20385 • Config: root_folder_id
20386
20387 • Env Var: RCLONE_SHAREFILE_ROOT_FOLDER_ID
20388
20389 • Type: string
20390
20391 • Default: ""
20392
20393 • Examples:
20394
20395 • ""
20396
20397 • Access the Personal Folders (default).
20398
20399 • "favorites"
20400
20401 • Access the Favorites folder.
20402
20403 • "allshared"
20404
20405 • Access all the shared folders.
20406
20407 • "connectors"
20408
20409 • Access all the individual connectors.
20410
20411 • "top"
20412
20413 • Access the home, favorites, and shared folders as well as the
20414 connectors.
20415
20416 Advanced options
20417 Here are the advanced options specific to sharefile (Citrix Sharefile).
20418
20419 --sharefile-upload-cutoff
20420 Cutoff for switching to multipart upload.
20421
20422 • Config: upload_cutoff
20423
20424 • Env Var: RCLONE_SHAREFILE_UPLOAD_CUTOFF
20425
20426 • Type: SizeSuffix
20427
20428 • Default: 128Mi
20429
20430 --sharefile-chunk-size
20431 Upload chunk size.
20432
20433 Must a power of 2 >= 256k.
20434
20435 Making this larger will improve performance, but note that each chunk
20436 is buffered in memory one per transfer.
20437
20438 Reducing this will reduce memory usage but decrease performance.
20439
20440 • Config: chunk_size
20441
20442 • Env Var: RCLONE_SHAREFILE_CHUNK_SIZE
20443
20444 • Type: SizeSuffix
20445
20446 • Default: 64Mi
20447
20448 --sharefile-endpoint
20449 Endpoint for API calls.
20450
20451 This is usually auto discovered as part of the oauth process, but can
20452 be set manually to something like: https://XXX.sharefile.com
20453
20454 • Config: endpoint
20455
20456 • Env Var: RCLONE_SHAREFILE_ENDPOINT
20457
20458 • Type: string
20459
20460 • Default: ""
20461
20462 --sharefile-encoding
20463 This sets the encoding for the backend.
20464
20465 See the encoding section in the overview (https://rclone.org/over‐
20466 view/#encoding) for more info.
20467
20468 • Config: encoding
20469
20470 • Env Var: RCLONE_SHAREFILE_ENCODING
20471
20472 • Type: MultiEncoder
20473
20474 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
20475 Slash,Ctl,LeftSpace,LeftPeriod,RightSpace,RightPeriod,InvalidUtf8,Dot
20476
20477 Limitations
20478 Note that ShareFile is case insensitive so you can't have a file called
20479 "Hello.doc" and one called "hello.doc".
20480
20481 ShareFile only supports filenames up to 256 characters in length.
20482
20483 rclone about is not supported by the Citrix ShareFile backend. Back‐
20484 ends without this capability cannot determine free space for an rclone
20485 mount or use policy mfs (most free space) as a member of an rclone
20486 union remote.
20487
20488 See List of backends that do not support rclone about
20489 (https://rclone.org/overview/#optional-features) See rclone about
20490 (https://rclone.org/commands/rclone_about/)
20491
20493 Rclone crypt remotes encrypt and decrypt other remotes.
20494
20495 A remote of type crypt does not access a storage system
20496 (https://rclone.org/overview/) directly, but instead wraps another re‐
20497 mote, which in turn accesses the storage system. This is similar to
20498 how alias (https://rclone.org/alias/), union
20499 (https://rclone.org/union/), chunker (https://rclone.org/chunker/) and
20500 a few others work. It makes the usage very flexible, as you can add a
20501 layer, in this case an encryption layer, on top of any other backend,
20502 even in multiple layers. Rclone's functionality can be used as with
20503 any other remote, for example you can mount (https://rclone.org/com‐
20504 mands/rclone_mount/) a crypt remote.
20505
20506 Accessing a storage system through a crypt remote realizes client-side
20507 encryption, which makes it safe to keep your data in a location you do
20508 not trust will not get compromised. When working against the crypt re‐
20509 mote, rclone will automatically encrypt (before uploading) and decrypt
20510 (after downloading) on your local system as needed on the fly, leaving
20511 the data encrypted at rest in the wrapped remote. If you access the
20512 storage system using an application other than rclone, or access the
20513 wrapped remote directly using rclone, there will not be any encryp‐
20514 tion/decryption: Downloading existing content will just give you the
20515 encrypted (scrambled) format, and anything you upload will not become
20516 encrypted.
20517
20518 The encryption is a secret-key encryption (also called symmetric key
20519 encryption) algorithm, where a password (or pass phrase) is used to
20520 generate real encryption key. The password can be supplied by user, or
20521 you may chose to let rclone generate one. It will be stored in the
20522 configuration file, in a lightly obscured form. If you are in an envi‐
20523 ronment where you are not able to keep your configuration secured, you
20524 should add configuration encryption (https://rclone.org/docs/#configu‐
20525 ration-encryption) as protection. As long as you have this configura‐
20526 tion file, you will be able to decrypt your data. Without the configu‐
20527 ration file, as long as you remember the password (or keep it in a safe
20528 place), you can re-create the configuration and gain access to the ex‐
20529 isting data. You may also configure a corresponding remote in a dif‐
20530 ferent installation to access the same data. See below for guidance to
20531 changing password.
20532
20533 Encryption uses cryptographic salt (https://en.wikipedia.org/wi‐
20534 ki/Salt_(cryptography)), to permute the encryption key so that the same
20535 string may be encrypted in different ways. When configuring the crypt
20536 remote it is optional to enter a salt, or to let rclone generate a
20537 unique salt. If omitted, rclone uses a built-in unique string. Nor‐
20538 mally in cryptography, the salt is stored together with the encrypted
20539 content, and do not have to be memorized by the user. This is not the
20540 case in rclone, because rclone does not store any additional informa‐
20541 tion on the remotes. Use of custom salt is effectively a second pass‐
20542 word that must be memorized.
20543
20544 File content encryption is performed using NaCl SecretBox
20545 (https://godoc.org/golang.org/x/crypto/nacl/secretbox), based on XSal‐
20546 sa20 cipher and Poly1305 for integrity. Names (file- and directory
20547 names) are also encrypted by default, but this has some implications
20548 and is therefore possible to turned off.
20549
20550 Configuration
20551 Here is an example of how to make a remote called secret.
20552
20553 To use crypt, first set up the underlying remote. Follow the rclone
20554 config instructions for the specific backend.
20555
20556 Before configuring the crypt remote, check the underlying remote is
20557 working. In this example the underlying remote is called remote. We
20558 will configure a path path within this remote to contain the encrypted
20559 content. Anything inside remote:path will be encrypted and anything
20560 outside will not.
20561
20562 Configure crypt using rclone config. In this example the crypt remote
20563 is called secret, to differentiate it from the underlying remote.
20564
20565 When you are done you can use the crypt remote named secret just as you
20566 would with any other remote, e.g. rclone copy D:\docs secret:\docs,
20567 and rclone will encrypt and decrypt as needed on the fly. If you ac‐
20568 cess the wrapped remote remote:path directly you will bypass the en‐
20569 cryption, and anything you read will be in encrypted form, and anything
20570 you write will be unencrypted. To avoid issues it is best to configure
20571 a dedicated path for encrypted content, and access it exclusively
20572 through a crypt remote.
20573
20574 No remotes found - make a new one
20575 n) New remote
20576 s) Set configuration password
20577 q) Quit config
20578 n/s/q> n
20579 name> secret
20580 Type of storage to configure.
20581 Enter a string value. Press Enter for the default ("").
20582 Choose a number from below, or type in your own value
20583 [snip]
20584 XX / Encrypt/Decrypt a remote
20585 \ "crypt"
20586 [snip]
20587 Storage> crypt
20588 ** See help for crypt backend at: https://rclone.org/crypt/ **
20589
20590 Remote to encrypt/decrypt.
20591 Normally should contain a ':' and a path, eg "myremote:path/to/dir",
20592 "myremote:bucket" or maybe "myremote:" (not recommended).
20593 Enter a string value. Press Enter for the default ("").
20594 remote> remote:path
20595 How to encrypt the filenames.
20596 Enter a string value. Press Enter for the default ("standard").
20597 Choose a number from below, or type in your own value.
20598 / Encrypt the filenames.
20599 1 | See the docs for the details.
20600 \ "standard"
20601 2 / Very simple filename obfuscation.
20602 \ "obfuscate"
20603 / Don't encrypt the file names.
20604 3 | Adds a ".bin" extension only.
20605 \ "off"
20606 filename_encryption>
20607 Option to either encrypt directory names or leave them intact.
20608
20609 NB If filename_encryption is "off" then this option will do nothing.
20610 Enter a boolean value (true or false). Press Enter for the default ("true").
20611 Choose a number from below, or type in your own value
20612 1 / Encrypt directory names.
20613 \ "true"
20614 2 / Don't encrypt directory names, leave them intact.
20615 \ "false"
20616 directory_name_encryption>
20617 Password or pass phrase for encryption.
20618 y) Yes type in my own password
20619 g) Generate random password
20620 y/g> y
20621 Enter the password:
20622 password:
20623 Confirm the password:
20624 password:
20625 Password or pass phrase for salt. Optional but recommended.
20626 Should be different to the previous password.
20627 y) Yes type in my own password
20628 g) Generate random password
20629 n) No leave this optional password blank (default)
20630 y/g/n> g
20631 Password strength in bits.
20632 64 is just about memorable
20633 128 is secure
20634 1024 is the maximum
20635 Bits> 128
20636 Your password is: JAsJvRcgR-_veXNfy_sGmQ
20637 Use this password? Please note that an obscured version of this
20638 password (and not the password itself) will be stored under your
20639 configuration file, so keep this generated password in a safe place.
20640 y) Yes (default)
20641 n) No
20642 y/n>
20643 Edit advanced config? (y/n)
20644 y) Yes
20645 n) No (default)
20646 y/n>
20647 Remote config
20648 --------------------
20649 [secret]
20650 type = crypt
20651 remote = remote:path
20652 password = *** ENCRYPTED ***
20653 password2 = *** ENCRYPTED ***
20654 --------------------
20655 y) Yes this is OK (default)
20656 e) Edit this remote
20657 d) Delete this remote
20658 y/e/d>
20659
20660 Important The crypt password stored in rclone.conf is lightly obscured.
20661 That only protects it from cursory inspection. It is not secure unless
20662 configuration encryption (https://rclone.org/docs/#configuration-en‐
20663 cryption) of rclone.conf is specified.
20664
20665 A long passphrase is recommended, or rclone config can generate a ran‐
20666 dom one.
20667
20668 The obscured password is created using AES-CTR with a static key. The
20669 salt is stored verbatim at the beginning of the obscured password.
20670 This static key is shared between all versions of rclone.
20671
20672 If you reconfigure rclone with the same passwords/passphrases elsewhere
20673 it will be compatible, but the obscured version will be different due
20674 to the different salt.
20675
20676 Rclone does not encrypt
20677
20678 • file length - this can be calculated within 16 bytes
20679
20680 • modification time - used for syncing
20681
20682 Specifying the remote
20683 When configuring the remote to encrypt/decrypt, you may specify any
20684 string that rclone accepts as a source/destination of other commands.
20685
20686 The primary use case is to specify the path into an already configured
20687 remote (e.g. remote:path/to/dir or remote:bucket), such that data in a
20688 remote untrusted location can be stored encrypted.
20689
20690 You may also specify a local filesystem path, such as /path/to/dir on
20691 Linux, C:\path\to\dir on Windows. By creating a crypt remote pointing
20692 to such a local filesystem path, you can use rclone as a utility for
20693 pure local file encryption, for example to keep encrypted files on a
20694 removable USB drive.
20695
20696 Note: A string which do not contain a : will by rclone be treated as a
20697 relative path in the local filesystem. For example, if you enter the
20698 name remote without the trailing :, it will be treated as a subdirecto‐
20699 ry of the current directory with name "remote".
20700
20701 If a path remote:path/to/dir is specified, rclone stores encrypted
20702 files in path/to/dir on the remote. With file name encryption, files
20703 saved to secret:subdir/subfile are stored in the unencrypted path
20704 path/to/dir but the subdir/subpath element is encrypted.
20705
20706 The path you specify does not have to exist, rclone will create it when
20707 needed.
20708
20709 If you intend to use the wrapped remote both directly for keeping unen‐
20710 crypted content, as well as through a crypt remote for encrypted con‐
20711 tent, it is recommended to point the crypt remote to a separate direc‐
20712 tory within the wrapped remote. If you use a bucket based storage sys‐
20713 tem (e.g. Swift, S3, Google Compute Storage, B2, Hubic) it is general‐
20714 ly advisable to wrap the crypt remote around a specific bucket
20715 (s3:bucket). If wrapping around the entire root of the storage (s3:),
20716 and use the optional file name encryption, rclone will encrypt the
20717 bucket name.
20718
20719 Changing password
20720 Should the password, or the configuration file containing a lightly ob‐
20721 scured form of the password, be compromised, you need to re-encrypt
20722 your data with a new password. Since rclone uses secret-key encryp‐
20723 tion, where the encryption key is generated directly from the password
20724 kept on the client, it is not possible to change the password/key of
20725 already encrypted content. Just changing the password configured for
20726 an existing crypt remote means you will no longer able to decrypt any
20727 of the previously encrypted content. The only possibility is to re-up‐
20728 load everything via a crypt remote configured with your new password.
20729
20730 Depending on the size of your data, your bandwith, storage quota etc,
20731 there are different approaches you can take: - If you have everything
20732 in a different location, for example on your local system, you could
20733 remove all of the prior encrypted files, change the password for your
20734 configured crypt remote (or delete and re-create the crypt configura‐
20735 tion), and then re-upload everything from the alternative location. -
20736 If you have enough space on the storage system you can create a new
20737 crypt remote pointing to a separate directory on the same backend, and
20738 then use rclone to copy everything from the original crypt remote to
20739 the new, effectively decrypting everything on the fly using the old
20740 password and re-encrypting using the new password. When done, delete
20741 the original crypt remote directory and finally the rclone crypt con‐
20742 figuration with the old password. All data will be streamed from the
20743 storage system and back, so you will get half the bandwith and be
20744 charged twice if you have upload and download quota on the storage sys‐
20745 tem.
20746
20747 Note: A security problem related to the random password generator was
20748 fixed in rclone version 1.53.3 (released 2020-11-19). Passwords gener‐
20749 ated by rclone config in version 1.49.0 (released 2019-08-26) to 1.53.2
20750 (released 2020-10-26) are not considered secure and should be changed.
20751 If you made up your own password, or used rclone version older than
20752 1.49.0 or newer than 1.53.2 to generate it, you are not affected by
20753 this issue. See issue #4783 (https://github.com/rclone/rclone/is‐
20754 sues/4783) for more details, and a tool you can use to check if you are
20755 affected.
20756
20757 Example
20758 Create the following file structure using "standard" file name encryp‐
20759 tion.
20760
20761 plaintext/
20762 ├── file0.txt
20763 ├── file1.txt
20764 └── subdir
20765 ├── file2.txt
20766 ├── file3.txt
20767 └── subsubdir
20768 └── file4.txt
20769
20770 Copy these to the remote, and list them
20771
20772 $ rclone -q copy plaintext secret:
20773 $ rclone -q ls secret:
20774 7 file1.txt
20775 6 file0.txt
20776 8 subdir/file2.txt
20777 10 subdir/subsubdir/file4.txt
20778 9 subdir/file3.txt
20779
20780 The crypt remote looks like
20781
20782 $ rclone -q ls remote:path
20783 55 hagjclgavj2mbiqm6u6cnjjqcg
20784 54 v05749mltvv1tf4onltun46gls
20785 57 86vhrsv86mpbtd3a0akjuqslj8/dlj7fkq4kdq72emafg7a7s41uo
20786 58 86vhrsv86mpbtd3a0akjuqslj8/7uu829995du6o42n32otfhjqp4/b9pausrfansjth5ob3jkdqd4lc
20787 56 86vhrsv86mpbtd3a0akjuqslj8/8njh1sk437gttmep3p70g81aps
20788
20789 The directory structure is preserved
20790
20791 $ rclone -q ls secret:subdir
20792 8 file2.txt
20793 9 file3.txt
20794 10 subsubdir/file4.txt
20795
20796 Without file name encryption .bin extensions are added to underlying
20797 names. This prevents the cloud provider attempting to interpret file
20798 content.
20799
20800 $ rclone -q ls remote:path
20801 54 file0.txt.bin
20802 57 subdir/file3.txt.bin
20803 56 subdir/file2.txt.bin
20804 58 subdir/subsubdir/file4.txt.bin
20805 55 file1.txt.bin
20806
20807 File name encryption modes
20808 Off
20809
20810 • doesn't hide file names or directory structure
20811
20812 • allows for longer file names (~246 characters)
20813
20814 • can use sub paths and copy single files
20815
20816 Standard
20817
20818 • file names encrypted
20819
20820 • file names can't be as long (~143 characters)
20821
20822 • can use sub paths and copy single files
20823
20824 • directory structure visible
20825
20826 • identical files names will have identical uploaded names
20827
20828 • can use shortcuts to shorten the directory recursion
20829
20830 Obfuscation
20831
20832 This is a simple "rotate" of the filename, with each file having a rot
20833 distance based on the filename. Rclone stores the distance at the be‐
20834 ginning of the filename. A file called "hello" may become "53.jgnnq".
20835
20836 Obfuscation is not a strong encryption of filenames, but hinders auto‐
20837 mated scanning tools picking up on filename patterns. It is an inter‐
20838 mediate between "off" and "standard" which allows for longer path seg‐
20839 ment names.
20840
20841 There is a possibility with some unicode based filenames that the ob‐
20842 fuscation is weak and may map lower case characters to upper case
20843 equivalents.
20844
20845 Obfuscation cannot be relied upon for strong protection.
20846
20847 • file names very lightly obfuscated
20848
20849 • file names can be longer than standard encryption
20850
20851 • can use sub paths and copy single files
20852
20853 • directory structure visible
20854
20855 • identical files names will have identical uploaded names
20856
20857 Cloud storage systems have limits on file name length and total path
20858 length which rclone is more likely to breach using "Standard" file name
20859 encryption. Where file names are less thn 156 characters in length is‐
20860 sues should not be encountered, irrespective of cloud storage provider.
20861
20862 An alternative, future rclone file name encryption mode may tolerate
20863 backend provider path length limits.
20864
20865 Directory name encryption
20866 Crypt offers the option of encrypting dir names or leaving them intact.
20867 There are two options:
20868
20869 True
20870
20871 Encrypts the whole file path including directory names Example:
20872 1/12/123.txt is encrypted to
20873 p0e52nreeaj0a5ea7s64m4j72s/l42g6771hnv3an9cgc8cr2n1ng/qgm4avr35m5loi1th53ato71v0
20874
20875 False
20876
20877 Only encrypts file names, skips directory names Example: 1/12/123.txt
20878 is encrypted to 1/12/qgm4avr35m5loi1th53ato71v0
20879
20880 Modified time and hashes
20881 Crypt stores modification times using the underlying remote so support
20882 depends on that.
20883
20884 Hashes are not stored for crypt. However the data integrity is pro‐
20885 tected by an extremely strong crypto authenticator.
20886
20887 Use the rclone cryptcheck command to check the integrity of a crypted
20888 remote instead of rclone check which can't check the checksums proper‐
20889 ly.
20890
20891 Standard options
20892 Here are the standard options specific to crypt (Encrypt/Decrypt a re‐
20893 mote).
20894
20895 --crypt-remote
20896 Remote to encrypt/decrypt.
20897
20898 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
20899 "myremote:bucket" or maybe "myremote:" (not recommended).
20900
20901 • Config: remote
20902
20903 • Env Var: RCLONE_CRYPT_REMOTE
20904
20905 • Type: string
20906
20907 • Default: ""
20908
20909 --crypt-filename-encryption
20910 How to encrypt the filenames.
20911
20912 • Config: filename_encryption
20913
20914 • Env Var: RCLONE_CRYPT_FILENAME_ENCRYPTION
20915
20916 • Type: string
20917
20918 • Default: "standard"
20919
20920 • Examples:
20921
20922 • "standard"
20923
20924 • Encrypt the filenames.
20925
20926 • See the docs for the details.
20927
20928 • "obfuscate"
20929
20930 • Very simple filename obfuscation.
20931
20932 • "off"
20933
20934 • Don't encrypt the file names.
20935
20936 • Adds a ".bin" extension only.
20937
20938 --crypt-directory-name-encryption
20939 Option to either encrypt directory names or leave them intact.
20940
20941 NB If filename_encryption is "off" then this option will do nothing.
20942
20943 • Config: directory_name_encryption
20944
20945 • Env Var: RCLONE_CRYPT_DIRECTORY_NAME_ENCRYPTION
20946
20947 • Type: bool
20948
20949 • Default: true
20950
20951 • Examples:
20952
20953 • "true"
20954
20955 • Encrypt directory names.
20956
20957 • "false"
20958
20959 • Don't encrypt directory names, leave them intact.
20960
20961 --crypt-password
20962 Password or pass phrase for encryption.
20963
20964 NB Input to this must be obscured - see rclone obscure
20965 (https://rclone.org/commands/rclone_obscure/).
20966
20967 • Config: password
20968
20969 • Env Var: RCLONE_CRYPT_PASSWORD
20970
20971 • Type: string
20972
20973 • Default: ""
20974
20975 --crypt-password2
20976 Password or pass phrase for salt.
20977
20978 Optional but recommended. Should be different to the previous pass‐
20979 word.
20980
20981 NB Input to this must be obscured - see rclone obscure
20982 (https://rclone.org/commands/rclone_obscure/).
20983
20984 • Config: password2
20985
20986 • Env Var: RCLONE_CRYPT_PASSWORD2
20987
20988 • Type: string
20989
20990 • Default: ""
20991
20992 Advanced options
20993 Here are the advanced options specific to crypt (Encrypt/Decrypt a re‐
20994 mote).
20995
20996 --crypt-server-side-across-configs
20997 Allow server-side operations (e.g. copy) to work across different
20998 crypt configs.
20999
21000 Normally this option is not what you want, but if you have two crypts
21001 pointing to the same backend you can use it.
21002
21003 This can be used, for example, to change file name encryption type
21004 without re-uploading all the data. Just make two crypt backends point‐
21005 ing to two different directories with the single changed parameter and
21006 use rclone move to move the files between the crypt remotes.
21007
21008 • Config: server_side_across_configs
21009
21010 • Env Var: RCLONE_CRYPT_SERVER_SIDE_ACROSS_CONFIGS
21011
21012 • Type: bool
21013
21014 • Default: false
21015
21016 --crypt-show-mapping
21017 For all files listed show how the names encrypt.
21018
21019 If this flag is set then for each file that the remote is asked to
21020 list, it will log (at level INFO) a line stating the decrypted file
21021 name and the encrypted file name.
21022
21023 This is so you can work out which encrypted names are which decrypted
21024 names just in case you need to do something with the encrypted file
21025 names, or for debugging purposes.
21026
21027 • Config: show_mapping
21028
21029 • Env Var: RCLONE_CRYPT_SHOW_MAPPING
21030
21031 • Type: bool
21032
21033 • Default: false
21034
21035 --crypt-no-data-encryption
21036 Option to either encrypt file data or leave it unencrypted.
21037
21038 • Config: no_data_encryption
21039
21040 • Env Var: RCLONE_CRYPT_NO_DATA_ENCRYPTION
21041
21042 • Type: bool
21043
21044 • Default: false
21045
21046 • Examples:
21047
21048 • "true"
21049
21050 • Don't encrypt file data, leave it unencrypted.
21051
21052 • "false"
21053
21054 • Encrypt file data.
21055
21056 Backend commands
21057 Here are the commands specific to the crypt backend.
21058
21059 Run them with
21060
21061 rclone backend COMMAND remote:
21062
21063 The help below will explain what arguments each command takes.
21064
21065 See the "rclone backend" command (https://rclone.org/com‐
21066 mands/rclone_backend/) for more info on how to pass options and argu‐
21067 ments.
21068
21069 These can be run on a running backend using the rc command backend/com‐
21070 mand (https://rclone.org/rc/#backend/command).
21071
21072 encode
21073 Encode the given filename(s)
21074
21075 rclone backend encode remote: [options] [<arguments>+]
21076
21077 This encodes the filenames given as arguments returning a list of
21078 strings of the encoded results.
21079
21080 Usage Example:
21081
21082 rclone backend encode crypt: file1 [file2...]
21083 rclone rc backend/command command=encode fs=crypt: file1 [file2...]
21084
21085 decode
21086 Decode the given filename(s)
21087
21088 rclone backend decode remote: [options] [<arguments>+]
21089
21090 This decodes the filenames given as arguments returning a list of
21091 strings of the decoded results. It will return an error if any of the
21092 inputs are invalid.
21093
21094 Usage Example:
21095
21096 rclone backend decode crypt: encryptedfile1 [encryptedfile2...]
21097 rclone rc backend/command command=decode fs=crypt: encryptedfile1 [encryptedfile2...]
21098
21099 Backing up a crypted remote
21100 If you wish to backup a crypted remote, it is recommended that you use
21101 rclone sync on the encrypted files, and make sure the passwords are the
21102 same in the new encrypted remote.
21103
21104 This will have the following advantages
21105
21106 • rclone sync will check the checksums while copying
21107
21108 • you can use rclone check between the encrypted remotes
21109
21110 • you don't decrypt and encrypt unnecessarily
21111
21112 For example, let's say you have your original remote at remote: with
21113 the encrypted version at eremote: with path remote:crypt. You would
21114 then set up the new remote remote2: and then the encrypted version ere‐
21115 mote2: with path remote2:crypt using the same passwords as eremote:.
21116
21117 To sync the two remotes you would do
21118
21119 rclone sync -i remote:crypt remote2:crypt
21120
21121 And to check the integrity you would do
21122
21123 rclone check remote:crypt remote2:crypt
21124
21125 File formats
21126 File encryption
21127 Files are encrypted 1:1 source file to destination object. The file
21128 has a header and is divided into chunks.
21129
21130 Header
21131 • 8 bytes magic string RCLONE\x00\x00
21132
21133 • 24 bytes Nonce (IV)
21134
21135 The initial nonce is generated from the operating systems crypto strong
21136 random number generator. The nonce is incremented for each chunk read
21137 making sure each nonce is unique for each block written. The chance of
21138 a nonce being re-used is minuscule. If you wrote an exabyte of data
21139 (10¹⁸ bytes) you would have a probability of approximately 2×10⁻³² of
21140 re-using a nonce.
21141
21142 Chunk
21143 Each chunk will contain 64 KiB of data, except for the last one which
21144 may have less data. The data chunk is in standard NaCl SecretBox for‐
21145 mat. SecretBox uses XSalsa20 and Poly1305 to encrypt and authenticate
21146 messages.
21147
21148 Each chunk contains:
21149
21150 • 16 Bytes of Poly1305 authenticator
21151
21152 • 1 - 65536 bytes XSalsa20 encrypted data
21153
21154 64k chunk size was chosen as the best performing chunk size (the au‐
21155 thenticator takes too much time below this and the performance drops
21156 off due to cache effects above this). Note that these chunks are
21157 buffered in memory so they can't be too big.
21158
21159 This uses a 32 byte (256 bit key) key derived from the user password.
21160
21161 Examples
21162 1 byte file will encrypt to
21163
21164 • 32 bytes header
21165
21166 • 17 bytes data chunk
21167
21168 49 bytes total
21169
21170 1 MiB (1048576 bytes) file will encrypt to
21171
21172 • 32 bytes header
21173
21174 • 16 chunks of 65568 bytes
21175
21176 1049120 bytes total (a 0.05% overhead). This is the overhead for big
21177 files.
21178
21179 Name encryption
21180 File names are encrypted segment by segment - the path is broken up in‐
21181 to / separated strings and these are encrypted individually.
21182
21183 File segments are padded using PKCS#7 to a multiple of 16 bytes before
21184 encryption.
21185
21186 They are then encrypted with EME using AES with 256 bit key. EME
21187 (ECB-Mix-ECB) is a wide-block encryption mode presented in the 2003 pa‐
21188 per "A Parallelizable Enciphering Mode" by Halevi and Rogaway.
21189
21190 This makes for deterministic encryption which is what we want - the
21191 same filename must encrypt to the same thing otherwise we can't find it
21192 on the cloud storage system.
21193
21194 This means that
21195
21196 • filenames with the same name will encrypt the same
21197
21198 • filenames which start the same won't have a common prefix
21199
21200 This uses a 32 byte key (256 bits) and a 16 byte (128 bits) IV both of
21201 which are derived from the user password.
21202
21203 After encryption they are written out using a modified version of stan‐
21204 dard base32 encoding as described in RFC4648. The standard encoding is
21205 modified in two ways:
21206
21207 • it becomes lower case (no-one likes upper case filenames!)
21208
21209 • we strip the padding character =
21210
21211 base32 is used rather than the more efficient base64 so rclone can be
21212 used on case insensitive remotes (e.g. Windows, Amazon Drive).
21213
21214 Key derivation
21215 Rclone uses scrypt with parameters N=16384, r=8, p=1 with an optional
21216 user supplied salt (password2) to derive the 32+32+16 = 80 bytes of key
21217 material required. If the user doesn't supply a salt then rclone uses
21218 an internal one.
21219
21220 scrypt makes it impractical to mount a dictionary attack on rclone en‐
21221 crypted data. For full protection against this you should always use a
21222 salt.
21223
21224 SEE ALSO
21225 • rclone cryptdecode (https://rclone.org/commands/rclone_cryptdecode/)
21226 - Show forward/reverse mapping of encrypted filenames
21227
21229 Warning
21230 This remote is currently experimental. Things may break and data may
21231 be lost. Anything you do with this remote is at your own risk. Please
21232 understand the risks associated with using experimental code and don't
21233 use this remote in critical applications.
21234
21235 The Compress remote adds compression to another remote. It is best
21236 used with remotes containing many large compressible files.
21237
21238 Configuration
21239 To use this remote, all you need to do is specify another remote and a
21240 compression mode to use:
21241
21242 Current remotes:
21243
21244 Name Type
21245 ==== ====
21246 remote_to_press sometype
21247
21248 e) Edit existing remote
21249 $ rclone config
21250 n) New remote
21251 d) Delete remote
21252 r) Rename remote
21253 c) Copy remote
21254 s) Set configuration password
21255 q) Quit config
21256 e/n/d/r/c/s/q> n
21257 name> compress
21258 ...
21259 8 / Compress a remote
21260 \ "compress"
21261 ...
21262 Storage> compress
21263 ** See help for compress backend at: https://rclone.org/compress/ **
21264
21265 Remote to compress.
21266 Enter a string value. Press Enter for the default ("").
21267 remote> remote_to_press:subdir
21268 Compression mode.
21269 Enter a string value. Press Enter for the default ("gzip").
21270 Choose a number from below, or type in your own value
21271 1 / Gzip compression balanced for speed and compression strength.
21272 \ "gzip"
21273 compression_mode> gzip
21274 Edit advanced config? (y/n)
21275 y) Yes
21276 n) No (default)
21277 y/n> n
21278 Remote config
21279 --------------------
21280 [compress]
21281 type = compress
21282 remote = remote_to_press:subdir
21283 compression_mode = gzip
21284 --------------------
21285 y) Yes this is OK (default)
21286 e) Edit this remote
21287 d) Delete this remote
21288 y/e/d> y
21289
21290 Compression Modes
21291 Currently only gzip compression is supported. It provides a decent
21292 balance between speed and size and is well supported by other applica‐
21293 tions. Compression strength can further be configured via an advanced
21294 setting where 0 is no compression and 9 is strongest compression.
21295
21296 File types
21297 If you open a remote wrapped by compress, you will see that there are
21298 many files with an extension corresponding to the compression algorithm
21299 you chose. These files are standard files that can be opened by vari‐
21300 ous archive programs, but they have some hidden metadata that allows
21301 them to be used by rclone. While you may download and decompress these
21302 files at will, do not manually delete or rename files. Files without
21303 correct metadata files will not be recognized by rclone.
21304
21305 File names
21306 The compressed files will be named *.###########.gz where * is the base
21307 file and the # part is base64 encoded size of the uncompressed file.
21308 The file names should not be changed by anything other than the rclone
21309 compression backend.
21310
21311 Standard options
21312 Here are the standard options specific to compress (Compress a remote).
21313
21314 --compress-remote
21315 Remote to compress.
21316
21317 • Config: remote
21318
21319 • Env Var: RCLONE_COMPRESS_REMOTE
21320
21321 • Type: string
21322
21323 • Default: ""
21324
21325 --compress-mode
21326 Compression mode.
21327
21328 • Config: mode
21329
21330 • Env Var: RCLONE_COMPRESS_MODE
21331
21332 • Type: string
21333
21334 • Default: "gzip"
21335
21336 • Examples:
21337
21338 • "gzip"
21339
21340 • Standard gzip compression with fastest parameters.
21341
21342 Advanced options
21343 Here are the advanced options specific to compress (Compress a remote).
21344
21345 --compress-level
21346 GZIP compression level (-2 to 9).
21347
21348 Generally -1 (default, equivalent to 5) is recommended. Levels 1 to 9
21349 increase compression at the cost of speed. Going past 6 generally of‐
21350 fers very little return.
21351
21352 Level -2 uses Huffmann encoding only. Only use if you know what you
21353 are doing. Level 0 turns off compression.
21354
21355 • Config: level
21356
21357 • Env Var: RCLONE_COMPRESS_LEVEL
21358
21359 • Type: int
21360
21361 • Default: -1
21362
21363 --compress-ram-cache-limit
21364 Some remotes don't allow the upload of files with unknown size. In
21365 this case the compressed file will need to be cached to determine it's
21366 size.
21367
21368 Files smaller than this limit will be cached in RAM, files larger than
21369 this limit will be cached on disk.
21370
21371 • Config: ram_cache_limit
21372
21373 • Env Var: RCLONE_COMPRESS_RAM_CACHE_LIMIT
21374
21375 • Type: SizeSuffix
21376
21377 • Default: 20Mi
21378
21380 Paths are specified as remote:path
21381
21382 Dropbox paths may be as deep as required, e.g. remote:directory/subdi‐
21383 rectory.
21384
21385 Configuration
21386 The initial setup for dropbox involves getting a token from Dropbox
21387 which you need to do in your browser. rclone config walks you through
21388 it.
21389
21390 Here is an example of how to make a remote called remote. First run:
21391
21392 rclone config
21393
21394 This will guide you through an interactive setup process:
21395
21396 n) New remote
21397 d) Delete remote
21398 q) Quit config
21399 e/n/d/q> n
21400 name> remote
21401 Type of storage to configure.
21402 Choose a number from below, or type in your own value
21403 [snip]
21404 XX / Dropbox
21405 \ "dropbox"
21406 [snip]
21407 Storage> dropbox
21408 Dropbox App Key - leave blank normally.
21409 app_key>
21410 Dropbox App Secret - leave blank normally.
21411 app_secret>
21412 Remote config
21413 Please visit:
21414 https://www.dropbox.com/1/oauth2/authorize?client_id=XXXXXXXXXXXXXXX&response_type=code
21415 Enter the code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXXXXXXXX
21416 --------------------
21417 [remote]
21418 app_key =
21419 app_secret =
21420 token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
21421 --------------------
21422 y) Yes this is OK
21423 e) Edit this remote
21424 d) Delete this remote
21425 y/e/d> y
21426
21427 You can then use it like this,
21428
21429 List directories in top level of your dropbox
21430
21431 rclone lsd remote:
21432
21433 List all the files in your dropbox
21434
21435 rclone ls remote:
21436
21437 To copy a local directory to a dropbox directory called backup
21438
21439 rclone copy /home/source remote:backup
21440
21441 Dropbox for business
21442 Rclone supports Dropbox for business and Team Folders.
21443
21444 When using Dropbox for business remote: and remote:path/to/file will
21445 refer to your personal folder.
21446
21447 If you wish to see Team Folders you must use a leading / in the path,
21448 so rclone lsd remote:/ will refer to the root and show you all Team
21449 Folders and your User Folder.
21450
21451 You can then use team folders like this remote:/TeamFolder and re‐
21452 mote:/TeamFolder/path/to/file.
21453
21454 A leading / for a Dropbox personal account will do nothing, but it will
21455 take an extra HTTP transaction so it should be avoided.
21456
21457 Modified time and Hashes
21458 Dropbox supports modified times, but the only way to set a modification
21459 time is to re-upload the file.
21460
21461 This means that if you uploaded your data with an older version of
21462 rclone which didn't support the v2 API and modified times, rclone will
21463 decide to upload all your old data to fix the modification times. If
21464 you don't want this to happen use --size-only or --checksum flag to
21465 stop it.
21466
21467 Dropbox supports its own hash type (https://www.dropbox.com/develop‐
21468 ers/reference/content-hash) which is checked for all transfers.
21469
21470 Restricted filename characters
21471 Character Value Replacement
21472 ────────────────────────────────
21473 NUL 0x00 ␀
21474 / 0x2F /
21475 DEL 0x7F ␡
21476 \ 0x5C \
21477
21478 File names can also not end with the following characters. These only
21479 get replaced if they are the last character in the name:
21480
21481 Character Value Replacement
21482 ────────────────────────────────
21483 SP 0x20 ␠
21484
21485 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
21486 view/#invalid-utf8), as they can't be used in JSON strings.
21487
21488 Batch mode uploads
21489 Using batch mode uploads is very important for performance when using
21490 the Dropbox API. See the dropbox performance guide (https://develop‐
21491 ers.dropbox.com/dbx-performance-guide) for more info.
21492
21493 There are 3 modes rclone can use for uploads.
21494
21495 --dropbox-batch-mode off
21496 In this mode rclone will not use upload batching. This was the default
21497 before rclone v1.55. It has the disadvantage that it is very likely to
21498 encounter too_many_requests errors like this
21499
21500 NOTICE: too_many_requests/.: Too many requests or write operations. Trying again in 15 seconds.
21501
21502 When rclone receives these it has to wait for 15s or sometimes 300s be‐
21503 fore continuing which really slows down transfers.
21504
21505 This will happen especially if --transfers is large, so this mode isn't
21506 recommended except for compatibility or investigating problems.
21507
21508 --dropbox-batch-mode sync
21509 In this mode rclone will batch up uploads to the size specified by
21510 --dropbox-batch-size and commit them together.
21511
21512 Using this mode means you can use a much higher --transfers parameter
21513 (32 or 64 works fine) without receiving too_many_requests errors.
21514
21515 This mode ensures full data integrity.
21516
21517 Note that there may be a pause when quitting rclone while rclone fin‐
21518 ishes up the last batch using this mode.
21519
21520 --dropbox-batch-mode async
21521 In this mode rclone will batch up uploads to the size specified by
21522 --dropbox-batch-size and commit them together.
21523
21524 However it will not wait for the status of the batch to be returned to
21525 the caller. This means rclone can use a much bigger batch size (much
21526 bigger than --transfers), at the cost of not being able to check the
21527 status of the upload.
21528
21529 This provides the maximum possible upload speed especially with lots of
21530 small files, however rclone can't check the file got uploaded properly
21531 using this mode.
21532
21533 If you are using this mode then using "rclone check" after the transfer
21534 completes is recommended. Or you could do an initial transfer with
21535 --dropbox-batch-mode async then do a final transfer with --drop‐
21536 box-batch-mode sync (the default).
21537
21538 Note that there may be a pause when quitting rclone while rclone fin‐
21539 ishes up the last batch using this mode.
21540
21541 Standard options
21542 Here are the standard options specific to dropbox (Dropbox).
21543
21544 --dropbox-client-id
21545 OAuth Client Id.
21546
21547 Leave blank normally.
21548
21549 • Config: client_id
21550
21551 • Env Var: RCLONE_DROPBOX_CLIENT_ID
21552
21553 • Type: string
21554
21555 • Default: ""
21556
21557 --dropbox-client-secret
21558 OAuth Client Secret.
21559
21560 Leave blank normally.
21561
21562 • Config: client_secret
21563
21564 • Env Var: RCLONE_DROPBOX_CLIENT_SECRET
21565
21566 • Type: string
21567
21568 • Default: ""
21569
21570 Advanced options
21571 Here are the advanced options specific to dropbox (Dropbox).
21572
21573 --dropbox-token
21574 OAuth Access Token as a JSON blob.
21575
21576 • Config: token
21577
21578 • Env Var: RCLONE_DROPBOX_TOKEN
21579
21580 • Type: string
21581
21582 • Default: ""
21583
21584 --dropbox-auth-url
21585 Auth server URL.
21586
21587 Leave blank to use the provider defaults.
21588
21589 • Config: auth_url
21590
21591 • Env Var: RCLONE_DROPBOX_AUTH_URL
21592
21593 • Type: string
21594
21595 • Default: ""
21596
21597 --dropbox-token-url
21598 Token server url.
21599
21600 Leave blank to use the provider defaults.
21601
21602 • Config: token_url
21603
21604 • Env Var: RCLONE_DROPBOX_TOKEN_URL
21605
21606 • Type: string
21607
21608 • Default: ""
21609
21610 --dropbox-chunk-size
21611 Upload chunk size (< 150Mi).
21612
21613 Any files larger than this will be uploaded in chunks of this size.
21614
21615 Note that chunks are buffered in memory (one at a time) so rclone can
21616 deal with retries. Setting this larger will increase the speed slight‐
21617 ly (at most 10% for 128 MiB in tests) at the cost of using more memory.
21618 It can be set smaller if you are tight on memory.
21619
21620 • Config: chunk_size
21621
21622 • Env Var: RCLONE_DROPBOX_CHUNK_SIZE
21623
21624 • Type: SizeSuffix
21625
21626 • Default: 48Mi
21627
21628 --dropbox-impersonate
21629 Impersonate this user when using a business account.
21630
21631 Note that if you want to use impersonate, you should make sure this
21632 flag is set when running "rclone config" as this will cause rclone to
21633 request the "members.read" scope which it won't normally. This is
21634 needed to lookup a members email address into the internal ID that
21635 dropbox uses in the API.
21636
21637 Using the "members.read" scope will require a Dropbox Team Admin to ap‐
21638 prove during the OAuth flow.
21639
21640 You will have to use your own App (setting your own client_id and
21641 client_secret) to use this option as currently rclone's default set of
21642 permissions doesn't include "members.read". This can be added once
21643 v1.55 or later is in use everywhere.
21644
21645 • Config: impersonate
21646
21647 • Env Var: RCLONE_DROPBOX_IMPERSONATE
21648
21649 • Type: string
21650
21651 • Default: ""
21652
21653 --dropbox-shared-files
21654 Instructs rclone to work on individual shared files.
21655
21656 In this mode rclone's features are extremely limited - only list (ls,
21657 lsl, etc.) operations and read operations (e.g. downloading) are sup‐
21658 ported in this mode. All other operations will be disabled.
21659
21660 • Config: shared_files
21661
21662 • Env Var: RCLONE_DROPBOX_SHARED_FILES
21663
21664 • Type: bool
21665
21666 • Default: false
21667
21668 --dropbox-shared-folders
21669 Instructs rclone to work on shared folders.
21670
21671 When this flag is used with no path only the List operation is support‐
21672 ed and all available shared folders will be listed. If you specify a
21673 path the first part will be interpreted as the name of shared folder.
21674 Rclone will then try to mount this shared to the root namespace. On
21675 success shared folder rclone proceeds normally. The shared folder is
21676 now pretty much a normal folder and all normal operations are support‐
21677 ed.
21678
21679 Note that we don't unmount the shared folder afterwards so the --drop‐
21680 box-shared-folders can be omitted after the first use of a particular
21681 shared folder.
21682
21683 • Config: shared_folders
21684
21685 • Env Var: RCLONE_DROPBOX_SHARED_FOLDERS
21686
21687 • Type: bool
21688
21689 • Default: false
21690
21691 --dropbox-batch-mode
21692 Upload file batching sync|async|off.
21693
21694 This sets the batch mode used by rclone.
21695
21696 For full info see the main docs (https://rclone.org/dropbox/#batch-
21697 mode)
21698
21699 This has 3 possible values
21700
21701 • off - no batching
21702
21703 • sync - batch uploads and check completion (default)
21704
21705 • async - batch upload and don't check completion
21706
21707 Rclone will close any outstanding batches when it exits which may make
21708 a delay on quit.
21709
21710 • Config: batch_mode
21711
21712 • Env Var: RCLONE_DROPBOX_BATCH_MODE
21713
21714 • Type: string
21715
21716 • Default: "sync"
21717
21718 --dropbox-batch-size
21719 Max number of files in upload batch.
21720
21721 This sets the batch size of files to upload. It has to be less than
21722 1000.
21723
21724 By default this is 0 which means rclone which calculate the batch size
21725 depending on the setting of batch_mode.
21726
21727 • batch_mode: async - default batch_size is 100
21728
21729 • batch_mode: sync - default batch_size is the same as --transfers
21730
21731 • batch_mode: off - not in use
21732
21733 Rclone will close any outstanding batches when it exits which may make
21734 a delay on quit.
21735
21736 Setting this is a great idea if you are uploading lots of small files
21737 as it will make them a lot quicker. You can use --transfers 32 to max‐
21738 imise throughput.
21739
21740 • Config: batch_size
21741
21742 • Env Var: RCLONE_DROPBOX_BATCH_SIZE
21743
21744 • Type: int
21745
21746 • Default: 0
21747
21748 --dropbox-batch-timeout
21749 Max time to allow an idle upload batch before uploading.
21750
21751 If an upload batch is idle for more than this long then it will be up‐
21752 loaded.
21753
21754 The default for this is 0 which means rclone will choose a sensible de‐
21755 fault based on the batch_mode in use.
21756
21757 • batch_mode: async - default batch_timeout is 500ms
21758
21759 • batch_mode: sync - default batch_timeout is 10s
21760
21761 • batch_mode: off - not in use
21762
21763 • Config: batch_timeout
21764
21765 • Env Var: RCLONE_DROPBOX_BATCH_TIMEOUT
21766
21767 • Type: Duration
21768
21769 • Default: 0s
21770
21771 --dropbox-batch-commit-timeout
21772 Max time to wait for a batch to finish comitting
21773
21774 • Config: batch_commit_timeout
21775
21776 • Env Var: RCLONE_DROPBOX_BATCH_COMMIT_TIMEOUT
21777
21778 • Type: Duration
21779
21780 • Default: 10m0s
21781
21782 --dropbox-encoding
21783 This sets the encoding for the backend.
21784
21785 See the encoding section in the overview (https://rclone.org/over‐
21786 view/#encoding) for more info.
21787
21788 • Config: encoding
21789
21790 • Env Var: RCLONE_DROPBOX_ENCODING
21791
21792 • Type: MultiEncoder
21793
21794 • Default: Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot
21795
21796 Limitations
21797 Note that Dropbox is case insensitive so you can't have a file called
21798 "Hello.doc" and one called "hello.doc".
21799
21800 There are some file names such as thumbs.db which Dropbox can't store.
21801 There is a full list of them in the "Ignored Files" section of this
21802 document (https://www.dropbox.com/en/help/145). Rclone will issue an
21803 error message File name disallowed - not uploading if it attempts to
21804 upload one of those file names, but the sync won't fail.
21805
21806 Some errors may occur if you try to sync copyright-protected files be‐
21807 cause Dropbox has its own copyright detector
21808 (https://techcrunch.com/2014/03/30/how-dropbox-knows-when-youre-shar‐
21809 ing-copyrighted-stuff-without-actually-looking-at-your-stuff/) that
21810 prevents this sort of file being downloaded. This will return the er‐
21811 ror ERROR : /path/to/your/file: Failed to copy: failed to open source
21812 object: path/restricted_content/.
21813
21814 If you have more than 10,000 files in a directory then rclone purge
21815 dropbox:dir will return the error Failed to purge: There are too many
21816 files involved in this operation. As a work-around do an rclone delete
21817 dropbox:dir followed by an rclone rmdir dropbox:dir.
21818
21819 When using rclone link you'll need to set --expire if using a non-per‐
21820 sonal account otherwise the visibility may not be correct. (Note that
21821 --expire isn't supported on personal accounts). See the forum discus‐
21822 sion (https://forum.rclone.org/t/rclone-link-dropbox-permissions/23211)
21823 and the dropbox SDK issue (https://github.com/dropbox/dropbox-sdk-go-
21824 unofficial/issues/75).
21825
21826 Get your own Dropbox App ID
21827 When you use rclone with Dropbox in its default configuration you are
21828 using rclone's App ID. This is shared between all the rclone users.
21829
21830 Here is how to create your own Dropbox App ID for rclone:
21831
21832 1. Log into the Dropbox App console (https://www.dropbox.com/develop‐
21833 ers/apps/create) with your Dropbox Account (It need not to be the
21834 same account as the Dropbox you want to access)
21835
21836 2. Choose an API => Usually this should be Dropbox API
21837
21838 3. Choose the type of access you want to use => Full Dropbox or App
21839 Folder
21840
21841 4. Name your App. The app name is global, so you can't use rclone for
21842 example
21843
21844 5. Click the button Create App
21845
21846 6. Switch to the Permissions tab. Enable at least the following per‐
21847 missions: account_info.read, files.metadata.write, files.con‐
21848 tent.write, files.content.read, sharing.write. The files.metada‐
21849 ta.read and sharing.read checkboxes will be marked too. Click Sub‐
21850 mit
21851
21852 7. Switch to the Settings tab. Fill OAuth2 - Redirect URIs as
21853 http://localhost:53682/
21854
21855 8. Find the App key and App secret values on the Settings tab. Use
21856 these values in rclone config to add a new remote or edit an exist‐
21857 ing remote. The App key setting corresponds to client_id in rclone
21858 config, the App secret corresponds to client_secret
21859
21861 This backend supports Storage Made Easy's Enterprise File Fabric™
21862 (https://storagemadeeasy.com/about/) which provides a software solution
21863 to integrate and unify File and Object Storage accessible through a
21864 global file system.
21865
21866 Configuration
21867 The initial setup for the Enterprise File Fabric backend involves get‐
21868 ting a token from the the Enterprise File Fabric which you need to do
21869 in your browser. rclone config walks you through it.
21870
21871 Here is an example of how to make a remote called remote. First run:
21872
21873 rclone config
21874
21875 This will guide you through an interactive setup process:
21876
21877 No remotes found - make a new one
21878 n) New remote
21879 s) Set configuration password
21880 q) Quit config
21881 n/s/q> n
21882 name> remote
21883 Type of storage to configure.
21884 Enter a string value. Press Enter for the default ("").
21885 Choose a number from below, or type in your own value
21886 [snip]
21887 XX / Enterprise File Fabric
21888 \ "filefabric"
21889 [snip]
21890 Storage> filefabric
21891 ** See help for filefabric backend at: https://rclone.org/filefabric/ **
21892
21893 URL of the Enterprise File Fabric to connect to
21894 Enter a string value. Press Enter for the default ("").
21895 Choose a number from below, or type in your own value
21896 1 / Storage Made Easy US
21897 \ "https://storagemadeeasy.com"
21898 2 / Storage Made Easy EU
21899 \ "https://eu.storagemadeeasy.com"
21900 3 / Connect to your Enterprise File Fabric
21901 \ "https://yourfabric.smestorage.com"
21902 url> https://yourfabric.smestorage.com/
21903 ID of the root folder
21904 Leave blank normally.
21905
21906 Fill in to make rclone start with directory of a given ID.
21907
21908 Enter a string value. Press Enter for the default ("").
21909 root_folder_id>
21910 Permanent Authentication Token
21911
21912 A Permanent Authentication Token can be created in the Enterprise File
21913 Fabric, on the users Dashboard under Security, there is an entry
21914 you'll see called "My Authentication Tokens". Click the Manage button
21915 to create one.
21916
21917 These tokens are normally valid for several years.
21918
21919 For more info see: https://docs.storagemadeeasy.com/organisationcloud/api-tokens
21920
21921 Enter a string value. Press Enter for the default ("").
21922 permanent_token> xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
21923 Edit advanced config? (y/n)
21924 y) Yes
21925 n) No (default)
21926 y/n> n
21927 Remote config
21928 --------------------
21929 [remote]
21930 type = filefabric
21931 url = https://yourfabric.smestorage.com/
21932 permanent_token = xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
21933 --------------------
21934 y) Yes this is OK (default)
21935 e) Edit this remote
21936 d) Delete this remote
21937 y/e/d> y
21938
21939 Once configured you can then use rclone like this,
21940
21941 List directories in top level of your Enterprise File Fabric
21942
21943 rclone lsd remote:
21944
21945 List all the files in your Enterprise File Fabric
21946
21947 rclone ls remote:
21948
21949 To copy a local directory to an Enterprise File Fabric directory called
21950 backup
21951
21952 rclone copy /home/source remote:backup
21953
21954 Modified time and hashes
21955 The Enterprise File Fabric allows modification times to be set on files
21956 accurate to 1 second. These will be used to detect whether objects
21957 need syncing or not.
21958
21959 The Enterprise File Fabric does not support any data hashes at this
21960 time.
21961
21962 Restricted filename characters
21963 The default restricted characters set (https://rclone.org/overview/#re‐
21964 stricted-characters) will be replaced.
21965
21966 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
21967 view/#invalid-utf8), as they can't be used in JSON strings.
21968
21969 Empty files
21970 Empty files aren't supported by the Enterprise File Fabric. Rclone
21971 will therefore upload an empty file as a single space with a mime type
21972 of application/vnd.rclone.empty.file and files with that mime type are
21973 treated as empty.
21974
21975 Root folder ID
21976 You can set the root_folder_id for rclone. This is the directory
21977 (identified by its Folder ID) that rclone considers to be the root of
21978 your Enterprise File Fabric.
21979
21980 Normally you will leave this blank and rclone will determine the cor‐
21981 rect root to use itself.
21982
21983 However you can set this to restrict rclone to a specific folder hier‐
21984 archy.
21985
21986 In order to do this you will have to find the Folder ID of the directo‐
21987 ry you wish rclone to display. These aren't displayed in the web in‐
21988 terface, but you can use rclone lsf to find them, for example
21989
21990 $ rclone lsf --dirs-only -Fip --csv filefabric:
21991 120673758,Burnt PDFs/
21992 120673759,My Quick Uploads/
21993 120673755,My Syncs/
21994 120673756,My backups/
21995 120673757,My contacts/
21996 120673761,S3 Storage/
21997
21998 The ID for "S3 Storage" would be 120673761.
21999
22000 Standard options
22001 Here are the standard options specific to filefabric (Enterprise File
22002 Fabric).
22003
22004 --filefabric-url
22005 URL of the Enterprise File Fabric to connect to.
22006
22007 • Config: url
22008
22009 • Env Var: RCLONE_FILEFABRIC_URL
22010
22011 • Type: string
22012
22013 • Default: ""
22014
22015 • Examples:
22016
22017 • "https://storagemadeeasy.com"
22018
22019 • Storage Made Easy US
22020
22021 • "https://eu.storagemadeeasy.com"
22022
22023 • Storage Made Easy EU
22024
22025 • "https://yourfabric.smestorage.com"
22026
22027 • Connect to your Enterprise File Fabric
22028
22029 --filefabric-root-folder-id
22030 ID of the root folder.
22031
22032 Leave blank normally.
22033
22034 Fill in to make rclone start with directory of a given ID.
22035
22036 • Config: root_folder_id
22037
22038 • Env Var: RCLONE_FILEFABRIC_ROOT_FOLDER_ID
22039
22040 • Type: string
22041
22042 • Default: ""
22043
22044 --filefabric-permanent-token
22045 Permanent Authentication Token.
22046
22047 A Permanent Authentication Token can be created in the Enterprise File
22048 Fabric, on the users Dashboard under Security, there is an entry you'll
22049 see called "My Authentication Tokens". Click the Manage button to cre‐
22050 ate one.
22051
22052 These tokens are normally valid for several years.
22053
22054 For more info see: https://docs.storagemadeeasy.com/organisation‐
22055 cloud/api-tokens
22056
22057 • Config: permanent_token
22058
22059 • Env Var: RCLONE_FILEFABRIC_PERMANENT_TOKEN
22060
22061 • Type: string
22062
22063 • Default: ""
22064
22065 Advanced options
22066 Here are the advanced options specific to filefabric (Enterprise File
22067 Fabric).
22068
22069 --filefabric-token
22070 Session Token.
22071
22072 This is a session token which rclone caches in the config file. It is
22073 usually valid for 1 hour.
22074
22075 Don't set this value - rclone will set it automatically.
22076
22077 • Config: token
22078
22079 • Env Var: RCLONE_FILEFABRIC_TOKEN
22080
22081 • Type: string
22082
22083 • Default: ""
22084
22085 --filefabric-token-expiry
22086 Token expiry time.
22087
22088 Don't set this value - rclone will set it automatically.
22089
22090 • Config: token_expiry
22091
22092 • Env Var: RCLONE_FILEFABRIC_TOKEN_EXPIRY
22093
22094 • Type: string
22095
22096 • Default: ""
22097
22098 --filefabric-version
22099 Version read from the file fabric.
22100
22101 Don't set this value - rclone will set it automatically.
22102
22103 • Config: version
22104
22105 • Env Var: RCLONE_FILEFABRIC_VERSION
22106
22107 • Type: string
22108
22109 • Default: ""
22110
22111 --filefabric-encoding
22112 This sets the encoding for the backend.
22113
22114 See the encoding section in the overview (https://rclone.org/over‐
22115 view/#encoding) for more info.
22116
22117 • Config: encoding
22118
22119 • Env Var: RCLONE_FILEFABRIC_ENCODING
22120
22121 • Type: MultiEncoder
22122
22123 • Default: Slash,Del,Ctl,InvalidUtf8,Dot
22124
22126 FTP is the File Transfer Protocol. Rclone FTP support is provided us‐
22127 ing the github.com/jlaffaye/ftp (https://godoc.org/github.com/jlaf‐
22128 faye/ftp) package.
22129
22130 Limitations of Rclone's FTP backend
22131
22132 Paths are specified as remote:path. If the path does not begin with a
22133 / it is relative to the home directory of the user. An empty path re‐
22134 mote: refers to the user's home directory.
22135
22136 Configuration
22137 To create an FTP configuration named remote, run
22138
22139 rclone config
22140
22141 Rclone config guides you through an interactive setup process. A mini‐
22142 mal rclone FTP remote definition only requires host, username and pass‐
22143 word. For an anonymous FTP server, use anonymous as username and your
22144 email address as password.
22145
22146 No remotes found - make a new one
22147 n) New remote
22148 r) Rename remote
22149 c) Copy remote
22150 s) Set configuration password
22151 q) Quit config
22152 n/r/c/s/q> n
22153 name> remote
22154 Type of storage to configure.
22155 Enter a string value. Press Enter for the default ("").
22156 Choose a number from below, or type in your own value
22157 [snip]
22158 XX / FTP Connection
22159 \ "ftp"
22160 [snip]
22161 Storage> ftp
22162 ** See help for ftp backend at: https://rclone.org/ftp/ **
22163
22164 FTP host to connect to
22165 Enter a string value. Press Enter for the default ("").
22166 Choose a number from below, or type in your own value
22167 1 / Connect to ftp.example.com
22168 \ "ftp.example.com"
22169 host> ftp.example.com
22170 FTP username, leave blank for current username, $USER
22171 Enter a string value. Press Enter for the default ("").
22172 user>
22173 FTP port, leave blank to use default (21)
22174 Enter a string value. Press Enter for the default ("").
22175 port>
22176 FTP password
22177 y) Yes type in my own password
22178 g) Generate random password
22179 y/g> y
22180 Enter the password:
22181 password:
22182 Confirm the password:
22183 password:
22184 Use FTP over TLS (Implicit)
22185 Enter a boolean value (true or false). Press Enter for the default ("false").
22186 tls>
22187 Use FTP over TLS (Explicit)
22188 Enter a boolean value (true or false). Press Enter for the default ("false").
22189 explicit_tls>
22190 Remote config
22191 --------------------
22192 [remote]
22193 type = ftp
22194 host = ftp.example.com
22195 pass = *** ENCRYPTED ***
22196 --------------------
22197 y) Yes this is OK
22198 e) Edit this remote
22199 d) Delete this remote
22200 y/e/d> y
22201
22202 To see all directories in the home directory of remote
22203
22204 rclone lsd remote:
22205
22206 Make a new directory
22207
22208 rclone mkdir remote:path/to/directory
22209
22210 List the contents of a directory
22211
22212 rclone ls remote:path/to/directory
22213
22214 Sync /home/local/directory to the remote directory, deleting any excess
22215 files in the directory.
22216
22217 rclone sync -i /home/local/directory remote:directory
22218
22219 Example without a config file
22220 rclone lsf :ftp: --ftp-host=speedtest.tele2.net --ftp-user=anonymous --ftp-pass=`rclone obscure dummy`
22221
22222 Implicit TLS
22223 Rlone FTP supports implicit FTP over TLS servers (FTPS). This has to
22224 be enabled in the FTP backend config for the remote, or with --ftp-tls.
22225 The default FTPS port is 990, not 21 and can be set with --ftp-port.
22226
22227 Restricted filename characters
22228 In addition to the default restricted characters set
22229 (https://rclone.org/overview/#restricted-characters) the following
22230 characters are also replaced:
22231
22232 File names cannot end with the following characters. Repacement is
22233 limited to the last character in a file name:
22234
22235 Character Value Replacement
22236 ────────────────────────────────
22237 SP 0x20 ␠
22238
22239 Not all FTP servers can have all characters in file names, for example:
22240
22241 FTP Server Forbidden characters
22242 ──────────────────────────────────
22243
22244 proftpd *
22245 pureftpd \ [ ]
22246
22247 This backend's interactive configuration wizard provides a selection of
22248 sensible encoding settings for major FTP servers: ProFTPd, PureFTPd,
22249 VsFTPd. Just hit a selection number when prompted.
22250
22251 Standard options
22252 Here are the standard options specific to ftp (FTP Connection).
22253
22254 --ftp-host
22255 FTP host to connect to.
22256
22257 E.g. "ftp.example.com".
22258
22259 • Config: host
22260
22261 • Env Var: RCLONE_FTP_HOST
22262
22263 • Type: string
22264
22265 • Default: ""
22266
22267 --ftp-user
22268 FTP username, leave blank for current username, $USER.
22269
22270 • Config: user
22271
22272 • Env Var: RCLONE_FTP_USER
22273
22274 • Type: string
22275
22276 • Default: ""
22277
22278 --ftp-port
22279 FTP port, leave blank to use default (21).
22280
22281 • Config: port
22282
22283 • Env Var: RCLONE_FTP_PORT
22284
22285 • Type: string
22286
22287 • Default: ""
22288
22289 --ftp-pass
22290 FTP password.
22291
22292 NB Input to this must be obscured - see rclone obscure
22293 (https://rclone.org/commands/rclone_obscure/).
22294
22295 • Config: pass
22296
22297 • Env Var: RCLONE_FTP_PASS
22298
22299 • Type: string
22300
22301 • Default: ""
22302
22303 --ftp-tls
22304 Use Implicit FTPS (FTP over TLS).
22305
22306 When using implicit FTP over TLS the client connects using TLS right
22307 from the start which breaks compatibility with non-TLS-aware servers.
22308 This is usually served over port 990 rather than port 21. Cannot be
22309 used in combination with explicit FTP.
22310
22311 • Config: tls
22312
22313 • Env Var: RCLONE_FTP_TLS
22314
22315 • Type: bool
22316
22317 • Default: false
22318
22319 --ftp-explicit-tls
22320 Use Explicit FTPS (FTP over TLS).
22321
22322 When using explicit FTP over TLS the client explicitly requests securi‐
22323 ty from the server in order to upgrade a plain text connection to an
22324 encrypted one. Cannot be used in combination with implicit FTP.
22325
22326 • Config: explicit_tls
22327
22328 • Env Var: RCLONE_FTP_EXPLICIT_TLS
22329
22330 • Type: bool
22331
22332 • Default: false
22333
22334 Advanced options
22335 Here are the advanced options specific to ftp (FTP Connection).
22336
22337 --ftp-concurrency
22338 Maximum number of FTP simultaneous connections, 0 for unlimited.
22339
22340 • Config: concurrency
22341
22342 • Env Var: RCLONE_FTP_CONCURRENCY
22343
22344 • Type: int
22345
22346 • Default: 0
22347
22348 --ftp-no-check-certificate
22349 Do not verify the TLS certificate of the server.
22350
22351 • Config: no_check_certificate
22352
22353 • Env Var: RCLONE_FTP_NO_CHECK_CERTIFICATE
22354
22355 • Type: bool
22356
22357 • Default: false
22358
22359 --ftp-disable-epsv
22360 Disable using EPSV even if server advertises support.
22361
22362 • Config: disable_epsv
22363
22364 • Env Var: RCLONE_FTP_DISABLE_EPSV
22365
22366 • Type: bool
22367
22368 • Default: false
22369
22370 --ftp-disable-mlsd
22371 Disable using MLSD even if server advertises support.
22372
22373 • Config: disable_mlsd
22374
22375 • Env Var: RCLONE_FTP_DISABLE_MLSD
22376
22377 • Type: bool
22378
22379 • Default: false
22380
22381 --ftp-writing-mdtm
22382 Use MDTM to set modification time (VsFtpd quirk)
22383
22384 • Config: writing_mdtm
22385
22386 • Env Var: RCLONE_FTP_WRITING_MDTM
22387
22388 • Type: bool
22389
22390 • Default: false
22391
22392 --ftp-idle-timeout
22393 Max time before closing idle connections.
22394
22395 If no connections have been returned to the connection pool in the time
22396 given, rclone will empty the connection pool.
22397
22398 Set to 0 to keep connections indefinitely.
22399
22400 • Config: idle_timeout
22401
22402 • Env Var: RCLONE_FTP_IDLE_TIMEOUT
22403
22404 • Type: Duration
22405
22406 • Default: 1m0s
22407
22408 --ftp-close-timeout
22409 Maximum time to wait for a response to close.
22410
22411 • Config: close_timeout
22412
22413 • Env Var: RCLONE_FTP_CLOSE_TIMEOUT
22414
22415 • Type: Duration
22416
22417 • Default: 1m0s
22418
22419 --ftp-tls-cache-size
22420 Size of TLS session cache for all control and data connections.
22421
22422 TLS cache allows to resume TLS sessions and reuse PSK between connec‐
22423 tions. Increase if default size is not enough resulting in TLS resump‐
22424 tion errors. Enabled by default. Use 0 to disable.
22425
22426 • Config: tls_cache_size
22427
22428 • Env Var: RCLONE_FTP_TLS_CACHE_SIZE
22429
22430 • Type: int
22431
22432 • Default: 32
22433
22434 --ftp-disable-tls13
22435 Disable TLS 1.3 (workaround for FTP servers with buggy TLS)
22436
22437 • Config: disable_tls13
22438
22439 • Env Var: RCLONE_FTP_DISABLE_TLS13
22440
22441 • Type: bool
22442
22443 • Default: false
22444
22445 --ftp-shut-timeout
22446 Maximum time to wait for data connection closing status.
22447
22448 • Config: shut_timeout
22449
22450 • Env Var: RCLONE_FTP_SHUT_TIMEOUT
22451
22452 • Type: Duration
22453
22454 • Default: 1m0s
22455
22456 --ftp-encoding
22457 This sets the encoding for the backend.
22458
22459 See the encoding section in the overview (https://rclone.org/over‐
22460 view/#encoding) for more info.
22461
22462 • Config: encoding
22463
22464 • Env Var: RCLONE_FTP_ENCODING
22465
22466 • Type: MultiEncoder
22467
22468 • Default: Slash,Del,Ctl,RightSpace,Dot
22469
22470 • Examples:
22471
22472 • "Asterisk,Ctl,Dot,Slash"
22473
22474 • ProFTPd can't handle '*' in file names
22475
22476 • "BackSlash,Ctl,Del,Dot,RightSpace,Slash,SquareBracket"
22477
22478 • PureFTPd can't handle '[]' or '*' in file names
22479
22480 • "Ctl,LeftPeriod,Slash"
22481
22482 • VsFTPd can't handle file names starting with dot
22483
22484 Limitations
22485 FTP servers acting as rclone remotes must support passive mode. The
22486 mode cannot be configured as passive is the only supported one.
22487 Rclone's FTP implementation is not compatible with active mode as the
22488 library it uses doesn't support it (https://github.com/jlaffaye/ftp/is‐
22489 sues/29). This will likely never be supported due to security con‐
22490 cerns.
22491
22492 Rclone's FTP backend does not support any checksums but can compare
22493 file sizes.
22494
22495 rclone about is not supported by the FTP backend. Backends without
22496 this capability cannot determine free space for an rclone mount or use
22497 policy mfs (most free space) as a member of an rclone union remote.
22498
22499 See List of backends that do not support rclone about
22500 (https://rclone.org/overview/#optional-features) See rclone about
22501 (https://rclone.org/commands/rclone_about/)
22502
22503 The implementation of : --dump headers, --dump bodies, --dump auth for
22504 debugging isn't the same as for rclone HTTP based backends - it has
22505 less fine grained control.
22506
22507 --timeout isn't supported (but --contimeout is).
22508
22509 --bind isn't supported.
22510
22511 Rclone's FTP backend could support server-side move but does not at
22512 present.
22513
22514 The ftp_proxy environment variable is not currently supported.
22515
22516 Modified time
22517 File modification time (timestamps) is supported to 1 second resolution
22518 for major FTP servers: ProFTPd, PureFTPd, VsFTPd, and FileZilla FTP
22519 server. The VsFTPd server has non-standard implementation of time re‐
22520 lated protocol commands and needs a special configuration setting:
22521 writing_mdtm = true.
22522
22523 Support for precise file time with other FTP servers varies depending
22524 on what protocol extensions they advertise. If all the MLSD, MDTM and
22525 MFTM extensions are present, rclone will use them together to provide
22526 precise time. Otherwise the times you see on the FTP server through
22527 rclone are those of the last file upload.
22528
22529 You can use the following command to check whether rclone can use pre‐
22530 cise time with your FTP server: rclone backend features your_ftp_re‐
22531 mote: (the trailing colon is important). Look for the number in the
22532 line tagged by Precision designating the remote time precision ex‐
22533 pressed as nanoseconds. A value of 1000000000 means that file time
22534 precision of 1 second is available. A value of 3153600000000000000 (or
22535 another large number) means "unsupported".
22536
22538 Paths are specified as remote:bucket (or remote: for the lsd command.)
22539 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
22540
22541 Configuration
22542 The initial setup for google cloud storage involves getting a token
22543 from Google Cloud Storage which you need to do in your browser. rclone
22544 config walks you through it.
22545
22546 Here is an example of how to make a remote called remote. First run:
22547
22548 rclone config
22549
22550 This will guide you through an interactive setup process:
22551
22552 n) New remote
22553 d) Delete remote
22554 q) Quit config
22555 e/n/d/q> n
22556 name> remote
22557 Type of storage to configure.
22558 Choose a number from below, or type in your own value
22559 [snip]
22560 XX / Google Cloud Storage (this is not Google Drive)
22561 \ "google cloud storage"
22562 [snip]
22563 Storage> google cloud storage
22564 Google Application Client Id - leave blank normally.
22565 client_id>
22566 Google Application Client Secret - leave blank normally.
22567 client_secret>
22568 Project number optional - needed only for list/create/delete buckets - see your developer console.
22569 project_number> 12345678
22570 Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
22571 service_account_file>
22572 Access Control List for new objects.
22573 Choose a number from below, or type in your own value
22574 1 / Object owner gets OWNER access, and all Authenticated Users get READER access.
22575 \ "authenticatedRead"
22576 2 / Object owner gets OWNER access, and project team owners get OWNER access.
22577 \ "bucketOwnerFullControl"
22578 3 / Object owner gets OWNER access, and project team owners get READER access.
22579 \ "bucketOwnerRead"
22580 4 / Object owner gets OWNER access [default if left blank].
22581 \ "private"
22582 5 / Object owner gets OWNER access, and project team members get access according to their roles.
22583 \ "projectPrivate"
22584 6 / Object owner gets OWNER access, and all Users get READER access.
22585 \ "publicRead"
22586 object_acl> 4
22587 Access Control List for new buckets.
22588 Choose a number from below, or type in your own value
22589 1 / Project team owners get OWNER access, and all Authenticated Users get READER access.
22590 \ "authenticatedRead"
22591 2 / Project team owners get OWNER access [default if left blank].
22592 \ "private"
22593 3 / Project team members get access according to their roles.
22594 \ "projectPrivate"
22595 4 / Project team owners get OWNER access, and all Users get READER access.
22596 \ "publicRead"
22597 5 / Project team owners get OWNER access, and all Users get WRITER access.
22598 \ "publicReadWrite"
22599 bucket_acl> 2
22600 Location for the newly created buckets.
22601 Choose a number from below, or type in your own value
22602 1 / Empty for default location (US).
22603 \ ""
22604 2 / Multi-regional location for Asia.
22605 \ "asia"
22606 3 / Multi-regional location for Europe.
22607 \ "eu"
22608 4 / Multi-regional location for United States.
22609 \ "us"
22610 5 / Taiwan.
22611 \ "asia-east1"
22612 6 / Tokyo.
22613 \ "asia-northeast1"
22614 7 / Singapore.
22615 \ "asia-southeast1"
22616 8 / Sydney.
22617 \ "australia-southeast1"
22618 9 / Belgium.
22619 \ "europe-west1"
22620 10 / London.
22621 \ "europe-west2"
22622 11 / Iowa.
22623 \ "us-central1"
22624 12 / South Carolina.
22625 \ "us-east1"
22626 13 / Northern Virginia.
22627 \ "us-east4"
22628 14 / Oregon.
22629 \ "us-west1"
22630 location> 12
22631 The storage class to use when storing objects in Google Cloud Storage.
22632 Choose a number from below, or type in your own value
22633 1 / Default
22634 \ ""
22635 2 / Multi-regional storage class
22636 \ "MULTI_REGIONAL"
22637 3 / Regional storage class
22638 \ "REGIONAL"
22639 4 / Nearline storage class
22640 \ "NEARLINE"
22641 5 / Coldline storage class
22642 \ "COLDLINE"
22643 6 / Durable reduced availability storage class
22644 \ "DURABLE_REDUCED_AVAILABILITY"
22645 storage_class> 5
22646 Remote config
22647 Use auto config?
22648 * Say Y if not sure
22649 * Say N if you are working on a remote or headless machine or Y didn't work
22650 y) Yes
22651 n) No
22652 y/n> y
22653 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
22654 Log in and authorize rclone for access
22655 Waiting for code...
22656 Got code
22657 --------------------
22658 [remote]
22659 type = google cloud storage
22660 client_id =
22661 client_secret =
22662 token = {"AccessToken":"xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"x/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxx","Expiry":"2014-07-17T20:49:14.929208288+01:00","Extra":null}
22663 project_number = 12345678
22664 object_acl = private
22665 bucket_acl = private
22666 --------------------
22667 y) Yes this is OK
22668 e) Edit this remote
22669 d) Delete this remote
22670 y/e/d> y
22671
22672 Note that rclone runs a webserver on your local machine to collect the
22673 token as returned from Google if you use auto config mode. This only
22674 runs from the moment it opens your browser to the moment you get back
22675 the verification code. This is on http://127.0.0.1:53682/ and this it
22676 may require you to unblock it temporarily if you are running a host
22677 firewall, or use manual mode.
22678
22679 This remote is called remote and can now be used like this
22680
22681 See all the buckets in your project
22682
22683 rclone lsd remote:
22684
22685 Make a new bucket
22686
22687 rclone mkdir remote:bucket
22688
22689 List the contents of a bucket
22690
22691 rclone ls remote:bucket
22692
22693 Sync /home/local/directory to the remote bucket, deleting any excess
22694 files in the bucket.
22695
22696 rclone sync -i /home/local/directory remote:bucket
22697
22698 Service Account support
22699 You can set up rclone with Google Cloud Storage in an unattended mode,
22700 i.e. not tied to a specific end-user Google account. This is useful
22701 when you want to synchronise files onto machines that don't have ac‐
22702 tively logged-in users, for example build machines.
22703
22704 To get credentials for Google Cloud Platform IAM Service Accounts
22705 (https://cloud.google.com/iam/docs/service-accounts), please head to
22706 the Service Account (https://console.cloud.google.com/permissions/ser‐
22707 viceaccounts) section of the Google Developer Console. Service Ac‐
22708 counts behave just like normal User permissions in Google Cloud Storage
22709 ACLs (https://cloud.google.com/storage/docs/access-control), so you can
22710 limit their access (e.g. make them read only). After creating an ac‐
22711 count, a JSON file containing the Service Account's credentials will be
22712 downloaded onto your machines. These credentials are what rclone will
22713 use for authentication.
22714
22715 To use a Service Account instead of OAuth2 token flow, enter the path
22716 to your Service Account credentials at the service_account_file prompt
22717 and rclone won't use the browser based authentication flow. If you'd
22718 rather stuff the contents of the credentials file into the rclone con‐
22719 fig file, you can set service_account_credentials with the actual con‐
22720 tents of the file instead, or set the equivalent environment variable.
22721
22722 Anonymous Access
22723 For downloads of objects that permit public access you can configure
22724 rclone to use anonymous access by setting anonymous to true. With
22725 unauthorized access you can't write or create files but only read or
22726 list those buckets and objects that have public read access.
22727
22728 Application Default Credentials
22729 If no other source of credentials is provided, rclone will fall back to
22730 Application Default Credentials (https://cloud.google.com/video-intel‐
22731 ligence/docs/common/auth#authenticating_with_application_default_cre‐
22732 dentials) this is useful both when you already have configured authen‐
22733 tication for your developer account, or in production when running on a
22734 google compute host. Note that if running in docker, you may need to
22735 run additional commands on your google compute machine - see this page
22736 (https://cloud.google.com/container-registry/docs/advanced-authentica‐
22737 tion#gcloud_as_a_docker_credential_helper).
22738
22739 Note that in the case application default credentials are used, there
22740 is no need to explicitly configure a project number.
22741
22742 --fast-list
22743 This remote supports --fast-list which allows you to use fewer transac‐
22744 tions in exchange for more memory. See the rclone docs
22745 (https://rclone.org/docs/#fast-list) for more details.
22746
22747 Custom upload headers
22748 You can set custom upload headers with the --header-upload flag.
22749 Google Cloud Storage supports the headers as described in the working
22750 with metadata documentation (https://cloud.google.com/storage/docs/gsu‐
22751 til/addlhelp/WorkingWithObjectMetadata)
22752
22753 • Cache-Control
22754
22755 • Content-Disposition
22756
22757 • Content-Encoding
22758
22759 • Content-Language
22760
22761 • Content-Type
22762
22763 • X-Goog-Storage-Class
22764
22765 • X-Goog-Meta-
22766
22767 Eg --header-upload "Content-Type text/potato"
22768
22769 Note that the last of these is for setting custom metadata in the form
22770 --header-upload "x-goog-meta-key: value"
22771
22772 Modification time
22773 Google Cloud Storage stores md5sum natively. Google's gsutil
22774 (https://cloud.google.com/storage/docs/gsutil) tool stores modification
22775 time with one-second precision as goog-reserved-file-mtime in file
22776 metadata.
22777
22778 To ensure compatibility with gsutil, rclone stores modification time in
22779 2 separate metadata entries. mtime uses RFC3339 format with
22780 one-nanosecond precision. goog-reserved-file-mtime uses Unix timestamp
22781 format with one-second precision. To get modification time from object
22782 metadata, rclone reads the metadata in the following order: mtime,
22783 goog-reserved-file-mtime, object updated time.
22784
22785 Note that rclone's default modify window is 1ns. Files uploaded by
22786 gsutil only contain timestamps with one-second precision. If you use
22787 rclone to sync files previously uploaded by gsutil, rclone will attempt
22788 to update modification time for all these files. To avoid these possi‐
22789 bly unnecessary updates, use --modify-window 1s.
22790
22791 Restricted filename characters
22792 Character Value Replacement
22793 ────────────────────────────────
22794 NUL 0x00 ␀
22795 LF 0x0A ␊
22796 CR 0x0D ␍
22797 / 0x2F /
22798
22799 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
22800 view/#invalid-utf8), as they can't be used in JSON strings.
22801
22802 Standard options
22803 Here are the standard options specific to google cloud storage (Google
22804 Cloud Storage (this is not Google Drive)).
22805
22806 --gcs-client-id
22807 OAuth Client Id.
22808
22809 Leave blank normally.
22810
22811 • Config: client_id
22812
22813 • Env Var: RCLONE_GCS_CLIENT_ID
22814
22815 • Type: string
22816
22817 • Default: ""
22818
22819 --gcs-client-secret
22820 OAuth Client Secret.
22821
22822 Leave blank normally.
22823
22824 • Config: client_secret
22825
22826 • Env Var: RCLONE_GCS_CLIENT_SECRET
22827
22828 • Type: string
22829
22830 • Default: ""
22831
22832 --gcs-project-number
22833 Project number.
22834
22835 Optional - needed only for list/create/delete buckets - see your devel‐
22836 oper console.
22837
22838 • Config: project_number
22839
22840 • Env Var: RCLONE_GCS_PROJECT_NUMBER
22841
22842 • Type: string
22843
22844 • Default: ""
22845
22846 --gcs-service-account-file
22847 Service Account Credentials JSON file path.
22848
22849 Leave blank normally. Needed only if you want use SA instead of inter‐
22850 active login.
22851
22852 Leading ~ will be expanded in the file name as will environment vari‐
22853 ables such as ${RCLONE_CONFIG_DIR}.
22854
22855 • Config: service_account_file
22856
22857 • Env Var: RCLONE_GCS_SERVICE_ACCOUNT_FILE
22858
22859 • Type: string
22860
22861 • Default: ""
22862
22863 --gcs-service-account-credentials
22864 Service Account Credentials JSON blob.
22865
22866 Leave blank normally. Needed only if you want use SA instead of inter‐
22867 active login.
22868
22869 • Config: service_account_credentials
22870
22871 • Env Var: RCLONE_GCS_SERVICE_ACCOUNT_CREDENTIALS
22872
22873 • Type: string
22874
22875 • Default: ""
22876
22877 --gcs-anonymous
22878 Access public buckets and objects without credentials.
22879
22880 Set to 'true' if you just want to download files and don't configure
22881 credentials.
22882
22883 • Config: anonymous
22884
22885 • Env Var: RCLONE_GCS_ANONYMOUS
22886
22887 • Type: bool
22888
22889 • Default: false
22890
22891 --gcs-object-acl
22892 Access Control List for new objects.
22893
22894 • Config: object_acl
22895
22896 • Env Var: RCLONE_GCS_OBJECT_ACL
22897
22898 • Type: string
22899
22900 • Default: ""
22901
22902 • Examples:
22903
22904 • "authenticatedRead"
22905
22906 • Object owner gets OWNER access.
22907
22908 • All Authenticated Users get READER access.
22909
22910 • "bucketOwnerFullControl"
22911
22912 • Object owner gets OWNER access.
22913
22914 • Project team owners get OWNER access.
22915
22916 • "bucketOwnerRead"
22917
22918 • Object owner gets OWNER access.
22919
22920 • Project team owners get READER access.
22921
22922 • "private"
22923
22924 • Object owner gets OWNER access.
22925
22926 • Default if left blank.
22927
22928 • "projectPrivate"
22929
22930 • Object owner gets OWNER access.
22931
22932 • Project team members get access according to their roles.
22933
22934 • "publicRead"
22935
22936 • Object owner gets OWNER access.
22937
22938 • All Users get READER access.
22939
22940 --gcs-bucket-acl
22941 Access Control List for new buckets.
22942
22943 • Config: bucket_acl
22944
22945 • Env Var: RCLONE_GCS_BUCKET_ACL
22946
22947 • Type: string
22948
22949 • Default: ""
22950
22951 • Examples:
22952
22953 • "authenticatedRead"
22954
22955 • Project team owners get OWNER access.
22956
22957 • All Authenticated Users get READER access.
22958
22959 • "private"
22960
22961 • Project team owners get OWNER access.
22962
22963 • Default if left blank.
22964
22965 • "projectPrivate"
22966
22967 • Project team members get access according to their roles.
22968
22969 • "publicRead"
22970
22971 • Project team owners get OWNER access.
22972
22973 • All Users get READER access.
22974
22975 • "publicReadWrite"
22976
22977 • Project team owners get OWNER access.
22978
22979 • All Users get WRITER access.
22980
22981 --gcs-bucket-policy-only
22982 Access checks should use bucket-level IAM policies.
22983
22984 If you want to upload objects to a bucket with Bucket Policy Only set
22985 then you will need to set this.
22986
22987 When it is set, rclone:
22988
22989 • ignores ACLs set on buckets
22990
22991 • ignores ACLs set on objects
22992
22993 • creates buckets with Bucket Policy Only set
22994
22995 Docs: https://cloud.google.com/storage/docs/bucket-policy-only
22996
22997 • Config: bucket_policy_only
22998
22999 • Env Var: RCLONE_GCS_BUCKET_POLICY_ONLY
23000
23001 • Type: bool
23002
23003 • Default: false
23004
23005 --gcs-location
23006 Location for the newly created buckets.
23007
23008 • Config: location
23009
23010 • Env Var: RCLONE_GCS_LOCATION
23011
23012 • Type: string
23013
23014 • Default: ""
23015
23016 • Examples:
23017
23018 • ""
23019
23020 • Empty for default location (US)
23021
23022 • "asia"
23023
23024 • Multi-regional location for Asia
23025
23026 • "eu"
23027
23028 • Multi-regional location for Europe
23029
23030 • "us"
23031
23032 • Multi-regional location for United States
23033
23034 • "asia-east1"
23035
23036 • Taiwan
23037
23038 • "asia-east2"
23039
23040 • Hong Kong
23041
23042 • "asia-northeast1"
23043
23044 • Tokyo
23045
23046 • "asia-south1"
23047
23048 • Mumbai
23049
23050 • "asia-southeast1"
23051
23052 • Singapore
23053
23054 • "australia-southeast1"
23055
23056 • Sydney
23057
23058 • "europe-north1"
23059
23060 • Finland
23061
23062 • "europe-west1"
23063
23064 • Belgium
23065
23066 • "europe-west2"
23067
23068 • London
23069
23070 • "europe-west3"
23071
23072 • Frankfurt
23073
23074 • "europe-west4"
23075
23076 • Netherlands
23077
23078 • "us-central1"
23079
23080 • Iowa
23081
23082 • "us-east1"
23083
23084 • South Carolina
23085
23086 • "us-east4"
23087
23088 • Northern Virginia
23089
23090 • "us-west1"
23091
23092 • Oregon
23093
23094 • "us-west2"
23095
23096 • California
23097
23098 --gcs-storage-class
23099 The storage class to use when storing objects in Google Cloud Storage.
23100
23101 • Config: storage_class
23102
23103 • Env Var: RCLONE_GCS_STORAGE_CLASS
23104
23105 • Type: string
23106
23107 • Default: ""
23108
23109 • Examples:
23110
23111 • ""
23112
23113 • Default
23114
23115 • "MULTI_REGIONAL"
23116
23117 • Multi-regional storage class
23118
23119 • "REGIONAL"
23120
23121 • Regional storage class
23122
23123 • "NEARLINE"
23124
23125 • Nearline storage class
23126
23127 • "COLDLINE"
23128
23129 • Coldline storage class
23130
23131 • "ARCHIVE"
23132
23133 • Archive storage class
23134
23135 • "DURABLE_REDUCED_AVAILABILITY"
23136
23137 • Durable reduced availability storage class
23138
23139 Advanced options
23140 Here are the advanced options specific to google cloud storage (Google
23141 Cloud Storage (this is not Google Drive)).
23142
23143 --gcs-token
23144 OAuth Access Token as a JSON blob.
23145
23146 • Config: token
23147
23148 • Env Var: RCLONE_GCS_TOKEN
23149
23150 • Type: string
23151
23152 • Default: ""
23153
23154 --gcs-auth-url
23155 Auth server URL.
23156
23157 Leave blank to use the provider defaults.
23158
23159 • Config: auth_url
23160
23161 • Env Var: RCLONE_GCS_AUTH_URL
23162
23163 • Type: string
23164
23165 • Default: ""
23166
23167 --gcs-token-url
23168 Token server url.
23169
23170 Leave blank to use the provider defaults.
23171
23172 • Config: token_url
23173
23174 • Env Var: RCLONE_GCS_TOKEN_URL
23175
23176 • Type: string
23177
23178 • Default: ""
23179
23180 --gcs-encoding
23181 This sets the encoding for the backend.
23182
23183 See the encoding section in the overview (https://rclone.org/over‐
23184 view/#encoding) for more info.
23185
23186 • Config: encoding
23187
23188 • Env Var: RCLONE_GCS_ENCODING
23189
23190 • Type: MultiEncoder
23191
23192 • Default: Slash,CrLf,InvalidUtf8,Dot
23193
23194 Limitations
23195 rclone about is not supported by the Google Cloud Storage backend.
23196 Backends without this capability cannot determine free space for an
23197 rclone mount or use policy mfs (most free space) as a member of an
23198 rclone union remote.
23199
23200 See List of backends that do not support rclone about
23201 (https://rclone.org/overview/#optional-features) See rclone about
23202 (https://rclone.org/commands/rclone_about/)
23203
23205 Paths are specified as drive:path
23206
23207 Drive paths may be as deep as required, e.g. drive:directory/subdirec‐
23208 tory.
23209
23210 Configuration
23211 The initial setup for drive involves getting a token from Google drive
23212 which you need to do in your browser. rclone config walks you through
23213 it.
23214
23215 Here is an example of how to make a remote called remote. First run:
23216
23217 rclone config
23218
23219 This will guide you through an interactive setup process:
23220
23221 No remotes found - make a new one
23222 n) New remote
23223 r) Rename remote
23224 c) Copy remote
23225 s) Set configuration password
23226 q) Quit config
23227 n/r/c/s/q> n
23228 name> remote
23229 Type of storage to configure.
23230 Choose a number from below, or type in your own value
23231 [snip]
23232 XX / Google Drive
23233 \ "drive"
23234 [snip]
23235 Storage> drive
23236 Google Application Client Id - leave blank normally.
23237 client_id>
23238 Google Application Client Secret - leave blank normally.
23239 client_secret>
23240 Scope that rclone should use when requesting access from drive.
23241 Choose a number from below, or type in your own value
23242 1 / Full access all files, excluding Application Data Folder.
23243 \ "drive"
23244 2 / Read-only access to file metadata and file contents.
23245 \ "drive.readonly"
23246 / Access to files created by rclone only.
23247 3 | These are visible in the drive website.
23248 | File authorization is revoked when the user deauthorizes the app.
23249 \ "drive.file"
23250 / Allows read and write access to the Application Data folder.
23251 4 | This is not visible in the drive website.
23252 \ "drive.appfolder"
23253 / Allows read-only access to file metadata but
23254 5 | does not allow any access to read or download file content.
23255 \ "drive.metadata.readonly"
23256 scope> 1
23257 ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs).
23258 root_folder_id>
23259 Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
23260 service_account_file>
23261 Remote config
23262 Use auto config?
23263 * Say Y if not sure
23264 * Say N if you are working on a remote or headless machine or Y didn't work
23265 y) Yes
23266 n) No
23267 y/n> y
23268 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
23269 Log in and authorize rclone for access
23270 Waiting for code...
23271 Got code
23272 Configure this as a Shared Drive (Team Drive)?
23273 y) Yes
23274 n) No
23275 y/n> n
23276 --------------------
23277 [remote]
23278 client_id =
23279 client_secret =
23280 scope = drive
23281 root_folder_id =
23282 service_account_file =
23283 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2014-03-16T13:57:58.955387075Z"}
23284 --------------------
23285 y) Yes this is OK
23286 e) Edit this remote
23287 d) Delete this remote
23288 y/e/d> y
23289
23290 Note that rclone runs a webserver on your local machine to collect the
23291 token as returned from Google if you use auto config mode. This only
23292 runs from the moment it opens your browser to the moment you get back
23293 the verification code. This is on http://127.0.0.1:53682/ and this it
23294 may require you to unblock it temporarily if you are running a host
23295 firewall, or use manual mode.
23296
23297 You can then use it like this,
23298
23299 List directories in top level of your drive
23300
23301 rclone lsd remote:
23302
23303 List all the files in your drive
23304
23305 rclone ls remote:
23306
23307 To copy a local directory to a drive directory called backup
23308
23309 rclone copy /home/source remote:backup
23310
23311 Scopes
23312 Rclone allows you to select which scope you would like for rclone to
23313 use. This changes what type of token is granted to rclone. The scopes
23314 are defined here (https://developers.google.com/drive/v3/web/about-
23315 auth).
23316
23317 The scope are
23318
23319 drive
23320 This is the default scope and allows full access to all files, except
23321 for the Application Data Folder (see below).
23322
23323 Choose this one if you aren't sure.
23324
23325 drive.readonly
23326 This allows read only access to all files. Files may be listed and
23327 downloaded but not uploaded, renamed or deleted.
23328
23329 drive.file
23330 With this scope rclone can read/view/modify only those files and fold‐
23331 ers it creates.
23332
23333 So if you uploaded files to drive via the web interface (or any other
23334 means) they will not be visible to rclone.
23335
23336 This can be useful if you are using rclone to backup data and you want
23337 to be sure confidential data on your drive is not visible to rclone.
23338
23339 Files created with this scope are visible in the web interface.
23340
23341 drive.appfolder
23342 This gives rclone its own private area to store files. Rclone will not
23343 be able to see any other files on your drive and you won't be able to
23344 see rclone's files from the web interface either.
23345
23346 drive.metadata.readonly
23347 This allows read only access to file names only. It does not allow
23348 rclone to download or upload data, or rename or delete files or direc‐
23349 tories.
23350
23351 Root folder ID
23352 You can set the root_folder_id for rclone. This is the directory
23353 (identified by its Folder ID) that rclone considers to be the root of
23354 your drive.
23355
23356 Normally you will leave this blank and rclone will determine the cor‐
23357 rect root to use itself.
23358
23359 However you can set this to restrict rclone to a specific folder hier‐
23360 archy or to access data within the "Computers" tab on the drive web in‐
23361 terface (where files from Google's Backup and Sync desktop program go).
23362
23363 In order to do this you will have to find the Folder ID of the directo‐
23364 ry you wish rclone to display. This will be the last segment of the
23365 URL when you open the relevant folder in the drive web interface.
23366
23367 So if the folder you want rclone to use has a URL which looks like
23368 https://drive.google.com/drive/fold‐
23369 ers/1XyfxxxxxxxxxxxxxxxxxxxxxxxxxKHCh in the browser, then you use
23370 1XyfxxxxxxxxxxxxxxxxxxxxxxxxxKHCh as the root_folder_id in the config.
23371
23372 NB folders under the "Computers" tab seem to be read only (drive gives
23373 a 500 error) when using rclone.
23374
23375 There doesn't appear to be an API to discover the folder IDs of the
23376 "Computers" tab - please contact us if you know otherwise!
23377
23378 Note also that rclone can't access any data under the "Backups" tab on
23379 the google drive web interface yet.
23380
23381 Service Account support
23382 You can set up rclone with Google Drive in an unattended mode, i.e.
23383 not tied to a specific end-user Google account. This is useful when
23384 you want to synchronise files onto machines that don't have actively
23385 logged-in users, for example build machines.
23386
23387 To use a Service Account instead of OAuth2 token flow, enter the path
23388 to your Service Account credentials at the service_account_file prompt
23389 during rclone config and rclone won't use the browser based authentica‐
23390 tion flow. If you'd rather stuff the contents of the credentials file
23391 into the rclone config file, you can set service_account_credentials
23392 with the actual contents of the file instead, or set the equivalent en‐
23393 vironment variable.
23394
23395 Use case - Google Apps/G-suite account and individual Drive
23396 Let's say that you are the administrator of a Google Apps (old) or
23397 G-suite account. The goal is to store data on an individual's Drive
23398 account, who IS a member of the domain. We'll call the domain exam‐
23399 ple.com, and the user foo@example.com.
23400
23401 There's a few steps we need to go through to accomplish this:
23402
23403 1. Create a service account for example.com
23404 • To create a service account and obtain its credentials, go to the
23405 Google Developer Console (https://console.developers.google.com).
23406
23407 • You must have a project - create one if you don't.
23408
23409 • Then go to "IAM & admin" -> "Service Accounts".
23410
23411 • Use the "Create Credentials" button. Fill in "Service account name"
23412 with something that identifies your client. "Role" can be empty.
23413
23414 • Tick "Furnish a new private key" - select "Key type JSON".
23415
23416 • Tick "Enable G Suite Domain-wide Delegation". This option makes "im‐
23417 personation" possible, as documented here: Delegating domain-wide au‐
23418 thority to the service account (https://developers.google.com/identi‐
23419 ty/protocols/OAuth2ServiceAccount#delegatingauthority)
23420
23421 • These credentials are what rclone will use for authentication. If
23422 you ever need to remove access, press the "Delete service account
23423 key" button.
23424
23425 2. Allowing API access to example.com Google Drive
23426 • Go to example.com's admin console
23427
23428 • Go into "Security" (or use the search bar)
23429
23430 • Select "Show more" and then "Advanced settings"
23431
23432 • Select "Manage API client access" in the "Authentication" section
23433
23434 • In the "Client Name" field enter the service account's "Client ID" -
23435 this can be found in the Developer Console under "IAM & Admin" ->
23436 "Service Accounts", then "View Client ID" for the newly created ser‐
23437 vice account. It is a ~21 character numerical string.
23438
23439 • In the next field, "One or More API Scopes", enter
23440 https://www.googleapis.com/auth/drive to grant access to Google Drive
23441 specifically.
23442
23443 3. Configure rclone, assuming a new install
23444 rclone config
23445
23446 n/s/q> n # New
23447 name>gdrive # Gdrive is an example name
23448 Storage> # Select the number shown for Google Drive
23449 client_id> # Can be left blank
23450 client_secret> # Can be left blank
23451 scope> # Select your scope, 1 for example
23452 root_folder_id> # Can be left blank
23453 service_account_file> /home/foo/myJSONfile.json # This is where the JSON file goes!
23454 y/n> # Auto config, n
23455
23456 4. Verify that it's working
23457 • rclone -v --drive-impersonate foo@example.com lsf gdrive:backup
23458
23459 • The arguments do:
23460
23461 • -v - verbose logging
23462
23463 • --drive-impersonate foo@example.com - this is what does the magic,
23464 pretending to be user foo.
23465
23466 • lsf - list files in a parsing friendly way
23467
23468 • gdrive:backup - use the remote called gdrive, work in the folder
23469 named backup.
23470
23471 Note: in case you configured a specific root folder on gdrive and
23472 rclone is unable to access the contents of that folder when using
23473 --drive-impersonate, do this instead: - in the gdrive web interface,
23474 share your root folder with the user/email of the new Service Account
23475 you created/selected at step #1 - use rclone without specifying the
23476 --drive-impersonate option, like this: rclone -v lsf gdrive:backup
23477
23478 Shared drives (team drives)
23479 If you want to configure the remote to point to a Google Shared Drive
23480 (previously known as Team Drives) then answer y to the question Config‐
23481 ure this as a Shared Drive (Team Drive)?.
23482
23483 This will fetch the list of Shared Drives from google and allow you to
23484 configure which one you want to use. You can also type in a Shared
23485 Drive ID if you prefer.
23486
23487 For example:
23488
23489 Configure this as a Shared Drive (Team Drive)?
23490 y) Yes
23491 n) No
23492 y/n> y
23493 Fetching Shared Drive list...
23494 Choose a number from below, or type in your own value
23495 1 / Rclone Test
23496 \ "xxxxxxxxxxxxxxxxxxxx"
23497 2 / Rclone Test 2
23498 \ "yyyyyyyyyyyyyyyyyyyy"
23499 3 / Rclone Test 3
23500 \ "zzzzzzzzzzzzzzzzzzzz"
23501 Enter a Shared Drive ID> 1
23502 --------------------
23503 [remote]
23504 client_id =
23505 client_secret =
23506 token = {"AccessToken":"xxxx.x.xxxxx_xxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"1/xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxx","Expiry":"2014-03-16T13:57:58.955387075Z","Extra":null}
23507 team_drive = xxxxxxxxxxxxxxxxxxxx
23508 --------------------
23509 y) Yes this is OK
23510 e) Edit this remote
23511 d) Delete this remote
23512 y/e/d> y
23513
23514 --fast-list
23515 This remote supports --fast-list which allows you to use fewer transac‐
23516 tions in exchange for more memory. See the rclone docs
23517 (https://rclone.org/docs/#fast-list) for more details.
23518
23519 It does this by combining multiple list calls into a single API re‐
23520 quest.
23521
23522 This works by combining many '%s' in parents filters into one expres‐
23523 sion. To list the contents of directories a, b and c, the following
23524 requests will be send by the regular List function:
23525
23526 trashed=false and 'a' in parents
23527 trashed=false and 'b' in parents
23528 trashed=false and 'c' in parents
23529
23530 These can now be combined into a single request:
23531
23532 trashed=false and ('a' in parents or 'b' in parents or 'c' in parents)
23533
23534 The implementation of ListR will put up to 50 parents filters into one
23535 request. It will use the --checkers value to specify the number of re‐
23536 quests to run in parallel.
23537
23538 In tests, these batch requests were up to 20x faster than the regular
23539 method. Running the following command against different sized folders
23540 gives:
23541
23542 rclone lsjson -vv -R --checkers=6 gdrive:folder
23543
23544 small folder (220 directories, 700 files):
23545
23546 • without --fast-list: 38s
23547
23548 • with --fast-list: 10s
23549
23550 large folder (10600 directories, 39000 files):
23551
23552 • without --fast-list: 22:05 min
23553
23554 • with --fast-list: 58s
23555
23556 Modified time
23557 Google drive stores modification times accurate to 1 ms.
23558
23559 Restricted filename characters
23560 Only Invalid UTF-8 bytes will be replaced (https://rclone.org/over‐
23561 view/#invalid-utf8), as they can't be used in JSON strings.
23562
23563 In contrast to other backends, / can also be used in names and . or ..
23564 are valid names.
23565
23566 Revisions
23567 Google drive stores revisions of files. When you upload a change to an
23568 existing file to google drive using rclone it will create a new revi‐
23569 sion of that file.
23570
23571 Revisions follow the standard google policy which at time of writing
23572 was
23573
23574 • They are deleted after 30 days or 100 revisions (whatever comes
23575 first).
23576
23577 • They do not count towards a user storage quota.
23578
23579 Deleting files
23580 By default rclone will send all files to the trash when deleting files.
23581 If deleting them permanently is required then use the
23582 --drive-use-trash=false flag, or set the equivalent environment vari‐
23583 able.
23584
23585 Shortcuts
23586 In March 2020 Google introduced a new feature in Google Drive called
23587 drive shortcuts (https://support.google.com/drive/answer/9700156) (API
23588 (https://developers.google.com/drive/api/v3/shortcuts)). These will
23589 (by September 2020) replace the ability for files or folders to be in
23590 multiple folders at once (https://cloud.google.com/blog/products/g-
23591 suite/simplifying-google-drives-folder-structure-and-sharing-models).
23592
23593 Shortcuts are files that link to other files on Google Drive somewhat
23594 like a symlink in unix, except they point to the underlying file data
23595 (e.g. the inode in unix terms) so they don't break if the source is
23596 renamed or moved about.
23597
23598 Be default rclone treats these as follows.
23599
23600 For shortcuts pointing to files:
23601
23602 • When listing a file shortcut appears as the destination file.
23603
23604 • When downloading the contents of the destination file is downloaded.
23605
23606 • When updating shortcut file with a non shortcut file, the shortcut is
23607 removed then a new file is uploaded in place of the shortcut.
23608
23609 • When server-side moving (renaming) the shortcut is renamed, not the
23610 destination file.
23611
23612 • When server-side copying the shortcut is copied, not the contents of
23613 the shortcut.
23614
23615 • When deleting the shortcut is deleted not the linked file.
23616
23617 • When setting the modification time, the modification time of the
23618 linked file will be set.
23619
23620 For shortcuts pointing to folders:
23621
23622 • When listing the shortcut appears as a folder and that folder will
23623 contain the contents of the linked folder appear (including any sub
23624 folders)
23625
23626 • When downloading the contents of the linked folder and sub contents
23627 are downloaded
23628
23629 • When uploading to a shortcut folder the file will be placed in the
23630 linked folder
23631
23632 • When server-side moving (renaming) the shortcut is renamed, not the
23633 destination folder
23634
23635 • When server-side copying the contents of the linked folder is copied,
23636 not the shortcut.
23637
23638 • When deleting with rclone rmdir or rclone purge the shortcut is
23639 deleted not the linked folder.
23640
23641 • NB When deleting with rclone remove or rclone mount the contents of
23642 the linked folder will be deleted.
23643
23644 The rclone backend (https://rclone.org/commands/rclone_backend/) com‐
23645 mand can be used to create shortcuts.
23646
23647 Shortcuts can be completely ignored with the --drive-skip-shortcuts
23648 flag or the corresponding skip_shortcuts configuration setting.
23649
23650 Emptying trash
23651 If you wish to empty your trash you can use the rclone cleanup remote:
23652 command which will permanently delete all your trashed files. This
23653 command does not take any path arguments.
23654
23655 Note that Google Drive takes some time (minutes to days) to empty the
23656 trash even though the command returns within a few seconds. No output
23657 is echoed, so there will be no confirmation even using -v or -vv.
23658
23659 Quota information
23660 To view your current quota you can use the rclone about remote: command
23661 which will display your usage limit (quota), the usage in Google Drive,
23662 the size of all files in the Trash and the space used by other Google
23663 services such as Gmail. This command does not take any path arguments.
23664
23665 Import/Export of google documents
23666 Google documents can be exported from and uploaded to Google Drive.
23667
23668 When rclone downloads a Google doc it chooses a format to download de‐
23669 pending upon the --drive-export-formats setting. By default the export
23670 formats are docx,xlsx,pptx,svg which are a sensible default for an ed‐
23671 itable document.
23672
23673 When choosing a format, rclone runs down the list provided in order and
23674 chooses the first file format the doc can be exported as from the list.
23675 If the file can't be exported to a format on the formats list, then
23676 rclone will choose a format from the default list.
23677
23678 If you prefer an archive copy then you might use --drive-export-formats
23679 pdf, or if you prefer openoffice/libreoffice formats you might use
23680 --drive-export-formats ods,odt,odp.
23681
23682 Note that rclone adds the extension to the google doc, so if it is
23683 called My Spreadsheet on google docs, it will be exported as My Spread‐
23684 sheet.xlsx or My Spreadsheet.pdf etc.
23685
23686 When importing files into Google Drive, rclone will convert all files
23687 with an extension in --drive-import-formats to their associated docu‐
23688 ment type. rclone will not convert any files by default, since the
23689 conversion is lossy process.
23690
23691 The conversion must result in a file with the same extension when the
23692 --drive-export-formats rules are applied to the uploaded document.
23693
23694 Here are some examples for allowed and prohibited conversions.
23695
23696 export-for‐ import-for‐ Upload Ext Document Ext Allowed
23697 mats mats
23698 ────────────────────────────────────────────────────────────────
23699 odt odt odt odt Yes
23700 odt docx,odt odt odt Yes
23701 docx docx docx Yes
23702 odt odt docx No
23703 odt,docx docx,odt docx odt No
23704 docx,odt docx,odt docx docx Yes
23705 docx,odt docx,odt odt docx No
23706
23707 This limitation can be disabled by specifying --drive-allow-im‐
23708 port-name-change. When using this flag, rclone can convert multiple
23709 files types resulting in the same document type at once, e.g. with
23710 --drive-import-formats docx,odt,txt, all files having these extension
23711 would result in a document represented as a docx file. This brings the
23712 additional risk of overwriting a document, if multiple files have the
23713 same stem. Many rclone operations will not handle this name change in
23714 any way. They assume an equal name when copying files and might copy
23715 the file again or delete them when the name changes.
23716
23717 Here are the possible export extensions with their corresponding mime
23718 types. Most of these can also be used for importing, but there more
23719 that are not listed here. Some of these additional ones might only be
23720 available when the operating system provides the correct MIME type en‐
23721 tries.
23722
23723 This list can be changed by Google Drive at any time and might not rep‐
23724 resent the currently available conversions.
23725
23726 Extension Mime Type Description
23727 ─────────────────────────────────────────────────────────────────────────────────────
23728 csv text/csv Standard CSV format for
23729 Spreadsheets
23730 docx application/vnd.openxml‐ Microsoft Office Document
23731 formats-officedocu‐
23732 ment.wordprocess‐
23733 ingml.document
23734 epub application/epub+zip E-book format
23735 html text/html An HTML Document
23736 jpg image/jpeg A JPEG Image File
23737 json applica‐ JSON Text Format
23738 tion/vnd.google-apps.script+json
23739 odp application/vnd.oasis.opendocu‐ Openoffice Presentation
23740 ment.presentation
23741 ods application/vnd.oasis.opendocu‐ Openoffice Spreadsheet
23742 ment.spreadsheet
23743 ods application/x-vnd.oasis.opendoc‐ Openoffice Spreadsheet
23744 ument.spreadsheet
23745 odt application/vnd.oasis.opendocu‐ Openoffice Document
23746 ment.text
23747 pdf application/pdf Adobe PDF Format
23748 png image/png PNG Image Format
23749 pptx application/vnd.openxmlfor‐ Microsoft Office Power‐
23750 mats-officedocument.presenta‐ point
23751 tionml.presentation
23752 rtf application/rtf Rich Text Format
23753 svg image/svg+xml Scalable Vector Graphics
23754 Format
23755 tsv text/tab-separated-values Standard TSV format for
23756 spreadsheets
23757 txt text/plain Plain Text
23758 xlsx application/vnd.openxmlfor‐ Microsoft Office Spread‐
23759 mats-officedocument.spread‐ sheet
23760 sheetml.sheet
23761 zip application/zip A ZIP file of HTML, Images
23762 CSS
23763
23764 Google documents can also be exported as link files. These files will
23765 open a browser window for the Google Docs website of that document when
23766 opened. The link file extension has to be specified as a --drive-ex‐
23767 port-formats parameter. They will match all available Google Docu‐
23768 ments.
23769
23770 Extension Description OS Support
23771 ─────────────────────────────────────────────────
23772 desktop freedesktop.org Linux
23773 specified desktop
23774 entry
23775 link.html An HTML Document All
23776 with a redirect
23777 url INI style link file macOS, Windows
23778 webloc macOS specific XML macOS
23779 format
23780
23781 Standard options
23782 Here are the standard options specific to drive (Google Drive).
23783
23784 --drive-client-id
23785 Google Application Client Id Setting your own is recommended. See
23786 https://rclone.org/drive/#making-your-own-client-id for how to create
23787 your own. If you leave this blank, it will use an internal key which
23788 is low performance.
23789
23790 • Config: client_id
23791
23792 • Env Var: RCLONE_DRIVE_CLIENT_ID
23793
23794 • Type: string
23795
23796 • Default: ""
23797
23798 --drive-client-secret
23799 OAuth Client Secret.
23800
23801 Leave blank normally.
23802
23803 • Config: client_secret
23804
23805 • Env Var: RCLONE_DRIVE_CLIENT_SECRET
23806
23807 • Type: string
23808
23809 • Default: ""
23810
23811 --drive-scope
23812 Scope that rclone should use when requesting access from drive.
23813
23814 • Config: scope
23815
23816 • Env Var: RCLONE_DRIVE_SCOPE
23817
23818 • Type: string
23819
23820 • Default: ""
23821
23822 • Examples:
23823
23824 • "drive"
23825
23826 • Full access all files, excluding Application Data Folder.
23827
23828 • "drive.readonly"
23829
23830 • Read-only access to file metadata and file contents.
23831
23832 • "drive.file"
23833
23834 • Access to files created by rclone only.
23835
23836 • These are visible in the drive website.
23837
23838 • File authorization is revoked when the user deauthorizes the app.
23839
23840 • "drive.appfolder"
23841
23842 • Allows read and write access to the Application Data folder.
23843
23844 • This is not visible in the drive website.
23845
23846 • "drive.metadata.readonly"
23847
23848 • Allows read-only access to file metadata but
23849
23850 • does not allow any access to read or download file content.
23851
23852 --drive-root-folder-id
23853 ID of the root folder. Leave blank normally.
23854
23855 Fill in to access "Computers" folders (see docs), or for rclone to use
23856 a non root folder as its starting point.
23857
23858 • Config: root_folder_id
23859
23860 • Env Var: RCLONE_DRIVE_ROOT_FOLDER_ID
23861
23862 • Type: string
23863
23864 • Default: ""
23865
23866 --drive-service-account-file
23867 Service Account Credentials JSON file path.
23868
23869 Leave blank normally. Needed only if you want use SA instead of inter‐
23870 active login.
23871
23872 Leading ~ will be expanded in the file name as will environment vari‐
23873 ables such as ${RCLONE_CONFIG_DIR}.
23874
23875 • Config: service_account_file
23876
23877 • Env Var: RCLONE_DRIVE_SERVICE_ACCOUNT_FILE
23878
23879 • Type: string
23880
23881 • Default: ""
23882
23883 --drive-alternate-export
23884 Deprecated: No longer needed.
23885
23886 • Config: alternate_export
23887
23888 • Env Var: RCLONE_DRIVE_ALTERNATE_EXPORT
23889
23890 • Type: bool
23891
23892 • Default: false
23893
23894 Advanced options
23895 Here are the advanced options specific to drive (Google Drive).
23896
23897 --drive-token
23898 OAuth Access Token as a JSON blob.
23899
23900 • Config: token
23901
23902 • Env Var: RCLONE_DRIVE_TOKEN
23903
23904 • Type: string
23905
23906 • Default: ""
23907
23908 --drive-auth-url
23909 Auth server URL.
23910
23911 Leave blank to use the provider defaults.
23912
23913 • Config: auth_url
23914
23915 • Env Var: RCLONE_DRIVE_AUTH_URL
23916
23917 • Type: string
23918
23919 • Default: ""
23920
23921 --drive-token-url
23922 Token server url.
23923
23924 Leave blank to use the provider defaults.
23925
23926 • Config: token_url
23927
23928 • Env Var: RCLONE_DRIVE_TOKEN_URL
23929
23930 • Type: string
23931
23932 • Default: ""
23933
23934 --drive-service-account-credentials
23935 Service Account Credentials JSON blob.
23936
23937 Leave blank normally. Needed only if you want use SA instead of inter‐
23938 active login.
23939
23940 • Config: service_account_credentials
23941
23942 • Env Var: RCLONE_DRIVE_SERVICE_ACCOUNT_CREDENTIALS
23943
23944 • Type: string
23945
23946 • Default: ""
23947
23948 --drive-team-drive
23949 ID of the Shared Drive (Team Drive).
23950
23951 • Config: team_drive
23952
23953 • Env Var: RCLONE_DRIVE_TEAM_DRIVE
23954
23955 • Type: string
23956
23957 • Default: ""
23958
23959 --drive-auth-owner-only
23960 Only consider files owned by the authenticated user.
23961
23962 • Config: auth_owner_only
23963
23964 • Env Var: RCLONE_DRIVE_AUTH_OWNER_ONLY
23965
23966 • Type: bool
23967
23968 • Default: false
23969
23970 --drive-use-trash
23971 Send files to the trash instead of deleting permanently.
23972
23973 Defaults to true, namely sending files to the trash. Use
23974 --drive-use-trash=false to delete files permanently instead.
23975
23976 • Config: use_trash
23977
23978 • Env Var: RCLONE_DRIVE_USE_TRASH
23979
23980 • Type: bool
23981
23982 • Default: true
23983
23984 --drive-skip-gdocs
23985 Skip google documents in all listings.
23986
23987 If given, gdocs practically become invisible to rclone.
23988
23989 • Config: skip_gdocs
23990
23991 • Env Var: RCLONE_DRIVE_SKIP_GDOCS
23992
23993 • Type: bool
23994
23995 • Default: false
23996
23997 --drive-skip-checksum-gphotos
23998 Skip MD5 checksum on Google photos and videos only.
23999
24000 Use this if you get checksum errors when transferring Google photos or
24001 videos.
24002
24003 Setting this flag will cause Google photos and videos to return a blank
24004 MD5 checksum.
24005
24006 Google photos are identified by being in the "photos" space.
24007
24008 Corrupted checksums are caused by Google modifying the image/video but
24009 not updating the checksum.
24010
24011 • Config: skip_checksum_gphotos
24012
24013 • Env Var: RCLONE_DRIVE_SKIP_CHECKSUM_GPHOTOS
24014
24015 • Type: bool
24016
24017 • Default: false
24018
24019 --drive-shared-with-me
24020 Only show files that are shared with me.
24021
24022 Instructs rclone to operate on your "Shared with me" folder (where
24023 Google Drive lets you access the files and folders others have shared
24024 with you).
24025
24026 This works both with the "list" (lsd, lsl, etc.) and the "copy" com‐
24027 mands (copy, sync, etc.), and with all other commands too.
24028
24029 • Config: shared_with_me
24030
24031 • Env Var: RCLONE_DRIVE_SHARED_WITH_ME
24032
24033 • Type: bool
24034
24035 • Default: false
24036
24037 --drive-trashed-only
24038 Only show files that are in the trash.
24039
24040 This will show trashed files in their original directory structure.
24041
24042 • Config: trashed_only
24043
24044 • Env Var: RCLONE_DRIVE_TRASHED_ONLY
24045
24046 • Type: bool
24047
24048 • Default: false
24049
24050 --drive-starred-only
24051 Only show files that are starred.
24052
24053 • Config: starred_only
24054
24055 • Env Var: RCLONE_DRIVE_STARRED_ONLY
24056
24057 • Type: bool
24058
24059 • Default: false
24060
24061 --drive-formats
24062 Deprecated: See export_formats.
24063
24064 • Config: formats
24065
24066 • Env Var: RCLONE_DRIVE_FORMATS
24067
24068 • Type: string
24069
24070 • Default: ""
24071
24072 --drive-export-formats
24073 Comma separated list of preferred formats for downloading Google docs.
24074
24075 • Config: export_formats
24076
24077 • Env Var: RCLONE_DRIVE_EXPORT_FORMATS
24078
24079 • Type: string
24080
24081 • Default: "docx,xlsx,pptx,svg"
24082
24083 --drive-import-formats
24084 Comma separated list of preferred formats for uploading Google docs.
24085
24086 • Config: import_formats
24087
24088 • Env Var: RCLONE_DRIVE_IMPORT_FORMATS
24089
24090 • Type: string
24091
24092 • Default: ""
24093
24094 --drive-allow-import-name-change
24095 Allow the filetype to change when uploading Google docs.
24096
24097 E.g. file.doc to file.docx. This will confuse sync and reupload every
24098 time.
24099
24100 • Config: allow_import_name_change
24101
24102 • Env Var: RCLONE_DRIVE_ALLOW_IMPORT_NAME_CHANGE
24103
24104 • Type: bool
24105
24106 • Default: false
24107
24108 --drive-use-created-date
24109 Use file created date instead of modified date.
24110
24111 Useful when downloading data and you want the creation date used in
24112 place of the last modified date.
24113
24114 WARNING: This flag may have some unexpected consequences.
24115
24116 When uploading to your drive all files will be overwritten unless they
24117 haven't been modified since their creation. And the inverse will occur
24118 while downloading. This side effect can be avoided by using the
24119 "--checksum" flag.
24120
24121 This feature was implemented to retain photos capture date as recorded
24122 by google photos. You will first need to check the "Create a Google
24123 Photos folder" option in your google drive settings. You can then copy
24124 or move the photos locally and use the date the image was taken (creat‐
24125 ed) set as the modification date.
24126
24127 • Config: use_created_date
24128
24129 • Env Var: RCLONE_DRIVE_USE_CREATED_DATE
24130
24131 • Type: bool
24132
24133 • Default: false
24134
24135 --drive-use-shared-date
24136 Use date file was shared instead of modified date.
24137
24138 Note that, as with "--drive-use-created-date", this flag may have unex‐
24139 pected consequences when uploading/downloading files.
24140
24141 If both this flag and "--drive-use-created-date" are set, the created
24142 date is used.
24143
24144 • Config: use_shared_date
24145
24146 • Env Var: RCLONE_DRIVE_USE_SHARED_DATE
24147
24148 • Type: bool
24149
24150 • Default: false
24151
24152 --drive-list-chunk
24153 Size of listing chunk 100-1000, 0 to disable.
24154
24155 • Config: list_chunk
24156
24157 • Env Var: RCLONE_DRIVE_LIST_CHUNK
24158
24159 • Type: int
24160
24161 • Default: 1000
24162
24163 --drive-impersonate
24164 Impersonate this user when using a service account.
24165
24166 • Config: impersonate
24167
24168 • Env Var: RCLONE_DRIVE_IMPERSONATE
24169
24170 • Type: string
24171
24172 • Default: ""
24173
24174 --drive-upload-cutoff
24175 Cutoff for switching to chunked upload.
24176
24177 • Config: upload_cutoff
24178
24179 • Env Var: RCLONE_DRIVE_UPLOAD_CUTOFF
24180
24181 • Type: SizeSuffix
24182
24183 • Default: 8Mi
24184
24185 --drive-chunk-size
24186 Upload chunk size.
24187
24188 Must a power of 2 >= 256k.
24189
24190 Making this larger will improve performance, but note that each chunk
24191 is buffered in memory one per transfer.
24192
24193 Reducing this will reduce memory usage but decrease performance.
24194
24195 • Config: chunk_size
24196
24197 • Env Var: RCLONE_DRIVE_CHUNK_SIZE
24198
24199 • Type: SizeSuffix
24200
24201 • Default: 8Mi
24202
24203 --drive-acknowledge-abuse
24204 Set to allow files which return cannotDownloadAbusiveFile to be down‐
24205 loaded.
24206
24207 If downloading a file returns the error "This file has been identified
24208 as malware or spam and cannot be downloaded" with the error code "can‐
24209 notDownloadAbusiveFile" then supply this flag to rclone to indicate you
24210 acknowledge the risks of downloading the file and rclone will download
24211 it anyway.
24212
24213 • Config: acknowledge_abuse
24214
24215 • Env Var: RCLONE_DRIVE_ACKNOWLEDGE_ABUSE
24216
24217 • Type: bool
24218
24219 • Default: false
24220
24221 --drive-keep-revision-forever
24222 Keep new head revision of each file forever.
24223
24224 • Config: keep_revision_forever
24225
24226 • Env Var: RCLONE_DRIVE_KEEP_REVISION_FOREVER
24227
24228 • Type: bool
24229
24230 • Default: false
24231
24232 --drive-size-as-quota
24233 Show sizes as storage quota usage, not actual size.
24234
24235 Show the size of a file as the storage quota used. This is the current
24236 version plus any older versions that have been set to keep forever.
24237
24238 WARNING: This flag may have some unexpected consequences.
24239
24240 It is not recommended to set this flag in your config - the recommended
24241 usage is using the flag form --drive-size-as-quota when doing rclone
24242 ls/lsl/lsf/lsjson/etc only.
24243
24244 If you do use this flag for syncing (not recommended) then you will
24245 need to use --ignore size also.
24246
24247 • Config: size_as_quota
24248
24249 • Env Var: RCLONE_DRIVE_SIZE_AS_QUOTA
24250
24251 • Type: bool
24252
24253 • Default: false
24254
24255 --drive-v2-download-min-size
24256 If Object's are greater, use drive v2 API to download.
24257
24258 • Config: v2_download_min_size
24259
24260 • Env Var: RCLONE_DRIVE_V2_DOWNLOAD_MIN_SIZE
24261
24262 • Type: SizeSuffix
24263
24264 • Default: off
24265
24266 --drive-pacer-min-sleep
24267 Minimum time to sleep between API calls.
24268
24269 • Config: pacer_min_sleep
24270
24271 • Env Var: RCLONE_DRIVE_PACER_MIN_SLEEP
24272
24273 • Type: Duration
24274
24275 • Default: 100ms
24276
24277 --drive-pacer-burst
24278 Number of API calls to allow without sleeping.
24279
24280 • Config: pacer_burst
24281
24282 • Env Var: RCLONE_DRIVE_PACER_BURST
24283
24284 • Type: int
24285
24286 • Default: 100
24287
24288 --drive-server-side-across-configs
24289 Allow server-side operations (e.g. copy) to work across different
24290 drive configs.
24291
24292 This can be useful if you wish to do a server-side copy between two
24293 different Google drives. Note that this isn't enabled by default be‐
24294 cause it isn't easy to tell if it will work between any two configura‐
24295 tions.
24296
24297 • Config: server_side_across_configs
24298
24299 • Env Var: RCLONE_DRIVE_SERVER_SIDE_ACROSS_CONFIGS
24300
24301 • Type: bool
24302
24303 • Default: false
24304
24305 --drive-disable-http2
24306 Disable drive using http2.
24307
24308 There is currently an unsolved issue with the google drive backend and
24309 HTTP/2. HTTP/2 is therefore disabled by default for the drive backend
24310 but can be re-enabled here. When the issue is solved this flag will be
24311 removed.
24312
24313 See: https://github.com/rclone/rclone/issues/3631
24314
24315 • Config: disable_http2
24316
24317 • Env Var: RCLONE_DRIVE_DISABLE_HTTP2
24318
24319 • Type: bool
24320
24321 • Default: true
24322
24323 --drive-stop-on-upload-limit
24324 Make upload limit errors be fatal.
24325
24326 At the time of writing it is only possible to upload 750 GiB of data to
24327 Google Drive a day (this is an undocumented limit). When this limit is
24328 reached Google Drive produces a slightly different error message. When
24329 this flag is set it causes these errors to be fatal. These will stop
24330 the in-progress sync.
24331
24332 Note that this detection is relying on error message strings which
24333 Google don't document so it may break in the future.
24334
24335 See: https://github.com/rclone/rclone/issues/3857
24336
24337 • Config: stop_on_upload_limit
24338
24339 • Env Var: RCLONE_DRIVE_STOP_ON_UPLOAD_LIMIT
24340
24341 • Type: bool
24342
24343 • Default: false
24344
24345 --drive-stop-on-download-limit
24346 Make download limit errors be fatal.
24347
24348 At the time of writing it is only possible to download 10 TiB of data
24349 from Google Drive a day (this is an undocumented limit). When this
24350 limit is reached Google Drive produces a slightly different error mes‐
24351 sage. When this flag is set it causes these errors to be fatal. These
24352 will stop the in-progress sync.
24353
24354 Note that this detection is relying on error message strings which
24355 Google don't document so it may break in the future.
24356
24357 • Config: stop_on_download_limit
24358
24359 • Env Var: RCLONE_DRIVE_STOP_ON_DOWNLOAD_LIMIT
24360
24361 • Type: bool
24362
24363 • Default: false
24364
24365 --drive-skip-shortcuts
24366 If set skip shortcut files.
24367
24368 Normally rclone dereferences shortcut files making them appear as if
24369 they are the original file (see the shortcuts section). If this flag
24370 is set then rclone will ignore shortcut files completely.
24371
24372 • Config: skip_shortcuts
24373
24374 • Env Var: RCLONE_DRIVE_SKIP_SHORTCUTS
24375
24376 • Type: bool
24377
24378 • Default: false
24379
24380 --drive-encoding
24381 This sets the encoding for the backend.
24382
24383 See the encoding section in the overview (https://rclone.org/over‐
24384 view/#encoding) for more info.
24385
24386 • Config: encoding
24387
24388 • Env Var: RCLONE_DRIVE_ENCODING
24389
24390 • Type: MultiEncoder
24391
24392 • Default: InvalidUtf8
24393
24394 Backend commands
24395 Here are the commands specific to the drive backend.
24396
24397 Run them with
24398
24399 rclone backend COMMAND remote:
24400
24401 The help below will explain what arguments each command takes.
24402
24403 See the "rclone backend" command (https://rclone.org/com‐
24404 mands/rclone_backend/) for more info on how to pass options and argu‐
24405 ments.
24406
24407 These can be run on a running backend using the rc command backend/com‐
24408 mand (https://rclone.org/rc/#backend/command).
24409
24410 get
24411 Get command for fetching the drive config parameters
24412
24413 rclone backend get remote: [options] [<arguments>+]
24414
24415 This is a get command which will be used to fetch the various drive
24416 config parameters
24417
24418 Usage Examples:
24419
24420 rclone backend get drive: [-o service_account_file] [-o chunk_size]
24421 rclone rc backend/command command=get fs=drive: [-o service_account_file] [-o chunk_size]
24422
24423 Options:
24424
24425 • "chunk_size": show the current upload chunk size
24426
24427 • "service_account_file": show the current service account file
24428
24429 set
24430 Set command for updating the drive config parameters
24431
24432 rclone backend set remote: [options] [<arguments>+]
24433
24434 This is a set command which will be used to update the various drive
24435 config parameters
24436
24437 Usage Examples:
24438
24439 rclone backend set drive: [-o service_account_file=sa.json] [-o chunk_size=67108864]
24440 rclone rc backend/command command=set fs=drive: [-o service_account_file=sa.json] [-o chunk_size=67108864]
24441
24442 Options:
24443
24444 • "chunk_size": update the current upload chunk size
24445
24446 • "service_account_file": update the current service account file
24447
24448 shortcut
24449 Create shortcuts from files or directories
24450
24451 rclone backend shortcut remote: [options] [<arguments>+]
24452
24453 This command creates shortcuts from files or directories.
24454
24455 Usage:
24456
24457 rclone backend shortcut drive: source_item destination_shortcut
24458 rclone backend shortcut drive: source_item -o target=drive2: destination_shortcut
24459
24460 In the first example this creates a shortcut from the "source_item"
24461 which can be a file or a directory to the "destination_shortcut". The
24462 "source_item" and the "destination_shortcut" should be relative paths
24463 from "drive:"
24464
24465 In the second example this creates a shortcut from the "source_item"
24466 relative to "drive:" to the "destination_shortcut" relative to
24467 "drive2:". This may fail with a permission error if the user authenti‐
24468 cated with "drive2:" can't read files from "drive:".
24469
24470 Options:
24471
24472 • "target": optional target remote for the shortcut destination
24473
24474 drives
24475 List the Shared Drives available to this account
24476
24477 rclone backend drives remote: [options] [<arguments>+]
24478
24479 This command lists the Shared Drives (Team Drives) available to this
24480 account.
24481
24482 Usage:
24483
24484 rclone backend [-o config] drives drive:
24485
24486 This will return a JSON list of objects like this
24487
24488 [
24489 {
24490 "id": "0ABCDEF-01234567890",
24491 "kind": "drive#teamDrive",
24492 "name": "My Drive"
24493 },
24494 {
24495 "id": "0ABCDEFabcdefghijkl",
24496 "kind": "drive#teamDrive",
24497 "name": "Test Drive"
24498 }
24499 ]
24500
24501 With the -o config parameter it will output the list in a format suit‐
24502 able for adding to a config file to make aliases for all the drives
24503 found.
24504
24505 [My Drive]
24506 type = alias
24507 remote = drive,team_drive=0ABCDEF-01234567890,root_folder_id=:
24508
24509 [Test Drive]
24510 type = alias
24511 remote = drive,team_drive=0ABCDEFabcdefghijkl,root_folder_id=:
24512
24513 Adding this to the rclone config file will cause those team drives to
24514 be accessible with the aliases shown. This may require manual editing
24515 of the names.
24516
24517 untrash
24518 Untrash files and directories
24519
24520 rclone backend untrash remote: [options] [<arguments>+]
24521
24522 This command untrashes all the files and directories in the directory
24523 passed in recursively.
24524
24525 Usage:
24526
24527 This takes an optional directory to trash which make this easier to use
24528 via the API.
24529
24530 rclone backend untrash drive:directory
24531 rclone backend -i untrash drive:directory subdir
24532
24533 Use the -i flag to see what would be restored before restoring it.
24534
24535 Result:
24536
24537 {
24538 "Untrashed": 17,
24539 "Errors": 0
24540 }
24541
24542 copyid
24543 Copy files by ID
24544
24545 rclone backend copyid remote: [options] [<arguments>+]
24546
24547 This command copies files by ID
24548
24549 Usage:
24550
24551 rclone backend copyid drive: ID path
24552 rclone backend copyid drive: ID1 path1 ID2 path2
24553
24554 It copies the drive file with ID given to the path (an rclone path
24555 which will be passed internally to rclone copyto). The ID and path
24556 pairs can be repeated.
24557
24558 The path should end with a / to indicate copy the file as named to this
24559 directory. If it doesn't end with a / then the last path component
24560 will be used as the file name.
24561
24562 If the destination is a drive backend then server-side copying will be
24563 attempted if possible.
24564
24565 Use the -i flag to see what would be copied before copying.
24566
24567 Limitations
24568 Drive has quite a lot of rate limiting. This causes rclone to be lim‐
24569 ited to transferring about 2 files per second only. Individual files
24570 may be transferred much faster at 100s of MiB/s but lots of small files
24571 can take a long time.
24572
24573 Server side copies are also subject to a separate rate limit. If you
24574 see User rate limit exceeded errors, wait at least 24 hours and retry.
24575 You can disable server-side copies with --disable copy to download and
24576 upload the files if you prefer.
24577
24578 Limitations of Google Docs
24579 Google docs will appear as size -1 in rclone ls and as size 0 in any‐
24580 thing which uses the VFS layer, e.g. rclone mount, rclone serve.
24581
24582 This is because rclone can't find out the size of the Google docs with‐
24583 out downloading them.
24584
24585 Google docs will transfer correctly with rclone sync, rclone copy etc
24586 as rclone knows to ignore the size when doing the transfer.
24587
24588 However an unfortunate consequence of this is that you may not be able
24589 to download Google docs using rclone mount. If it doesn't work you
24590 will get a 0 sized file. If you try again the doc may gain its correct
24591 size and be downloadable. Whether it will work on not depends on the
24592 application accessing the mount and the OS you are running - experiment
24593 to find out if it does work for you!
24594
24595 Duplicated files
24596 Sometimes, for no reason I've been able to track down, drive will du‐
24597 plicate a file that rclone uploads. Drive unlike all the other remotes
24598 can have duplicated files.
24599
24600 Duplicated files cause problems with the syncing and you will see mes‐
24601 sages in the log about duplicates.
24602
24603 Use rclone dedupe to fix duplicated files.
24604
24605 Note that this isn't just a problem with rclone, even Google Photos on
24606 Android duplicates files on drive sometimes.
24607
24608 Rclone appears to be re-copying files it shouldn't
24609 The most likely cause of this is the duplicated file issue above - run
24610 rclone dedupe and check your logs for duplicate object or directory
24611 messages.
24612
24613 This can also be caused by a delay/caching on google drive's end when
24614 comparing directory listings. Specifically with team drives used in
24615 combination with --fast-list. Files that were uploaded recently may
24616 not appear on the directory list sent to rclone when using --fast-list.
24617
24618 Waiting a moderate period of time between attempts (estimated to be ap‐
24619 proximately 1 hour) and/or not using --fast-list both seem to be effec‐
24620 tive in preventing the problem.
24621
24622 Making your own client_id
24623 When you use rclone with Google drive in its default configuration you
24624 are using rclone's client_id. This is shared between all the rclone
24625 users. There is a global rate limit on the number of queries per sec‐
24626 ond that each client_id can do set by Google. rclone already has a
24627 high quota and I will continue to make sure it is high enough by con‐
24628 tacting Google.
24629
24630 It is strongly recommended to use your own client ID as the default
24631 rclone ID is heavily used. If you have multiple services running, it
24632 is recommended to use an API key for each service. The default Google
24633 quota is 10 transactions per second so it is recommended to stay under
24634 that number as if you use more than that, it will cause rclone to rate
24635 limit and make things slower.
24636
24637 Here is how to create your own Google Drive client ID for rclone:
24638
24639 1. Log into the Google API Console (https://console.develop‐
24640 ers.google.com/) with your Google account. It doesn't matter what
24641 Google account you use. (It need not be the same account as the
24642 Google Drive you want to access)
24643
24644 2. Select a project or create a new project.
24645
24646 3. Under "ENABLE APIS AND SERVICES" search for "Drive", and enable the
24647 "Google Drive API".
24648
24649 4. Click "Credentials" in the left-side panel (not "Create creden‐
24650 tials", which opens the wizard), then "Create credentials"
24651
24652 5. If you already configured an "Oauth Consent Screen", then skip to
24653 the next step; if not, click on "CONFIGURE CONSENT SCREEN" button
24654 (near the top right corner of the right panel), then select "Exter‐
24655 nal" and click on "CREATE"; on the next screen, enter an "Applica‐
24656 tion name" ("rclone" is OK) then click on "Save" (all other data is
24657 optional). Click again on "Credentials" on the left panel to go
24658 back to the "Credentials" screen.
24659
24660 (PS: if you are a GSuite user, you could also select "Internal" instead
24661 of "External" above, but this has not been tested/documented so far).
24662
24663 6. Click on the "+ CREATE CREDENTIALS" button at the top of the
24664 screen, then select "OAuth client ID".
24665
24666 7. Choose an application type of "Desktop app" and click "Create".
24667 (the default name is fine)
24668
24669 8. It will show you a client ID and client secret. Make a note of
24670 these.
24671
24672 9. Go to "Oauth consent screen" and press "Publish App"
24673
24674 10. Provide the noted client ID and client secret to rclone.
24675
24676 11. Click "OAuth consent screen", then click "PUBLISH APP" button and
24677 confirm, or add your account under "Test users".
24678
24679 Be aware that, due to the "enhanced security" recently introduced by
24680 Google, you are theoretically expected to "submit your app for verifi‐
24681 cation" and then wait a few weeks(!) for their response; in practice,
24682 you can go right ahead and use the client ID and client secret with
24683 rclone, the only issue will be a very scary confirmation screen shown
24684 when you connect via your browser for rclone to be able to get its to‐
24685 ken-id (but as this only happens during the remote configuration, it's
24686 not such a big deal).
24687
24688 (Thanks to @balazer on github for these instructions.)
24689
24690 Sometimes, creation of an OAuth consent in Google API Console fails due
24691 to an error message “The request failed because changes to one of the
24692 field of the resource is not supported”. As a convenient workaround,
24693 the necessary Google Drive API key can be created on the Python Quick‐
24694 start (https://developers.google.com/drive/api/v3/quickstart/python)
24695 page. Just push the Enable the Drive API button to receive the Client
24696 ID and Secret. Note that it will automatically create a new project in
24697 the API Console.
24698
24700 The rclone backend for Google Photos (https://www.google.com/pho‐
24701 tos/about/) is a specialized backend for transferring photos and videos
24702 to and from Google Photos.
24703
24704 NB The Google Photos API which rclone uses has quite a few limitations,
24705 so please read the limitations section carefully to make sure it is
24706 suitable for your use.
24707
24708 Configuration
24709 The initial setup for google cloud storage involves getting a token
24710 from Google Photos which you need to do in your browser. rclone config
24711 walks you through it.
24712
24713 Here is an example of how to make a remote called remote. First run:
24714
24715 rclone config
24716
24717 This will guide you through an interactive setup process:
24718
24719 No remotes found - make a new one
24720 n) New remote
24721 s) Set configuration password
24722 q) Quit config
24723 n/s/q> n
24724 name> remote
24725 Type of storage to configure.
24726 Enter a string value. Press Enter for the default ("").
24727 Choose a number from below, or type in your own value
24728 [snip]
24729 XX / Google Photos
24730 \ "google photos"
24731 [snip]
24732 Storage> google photos
24733 ** See help for google photos backend at: https://rclone.org/googlephotos/ **
24734
24735 Google Application Client Id
24736 Leave blank normally.
24737 Enter a string value. Press Enter for the default ("").
24738 client_id>
24739 Google Application Client Secret
24740 Leave blank normally.
24741 Enter a string value. Press Enter for the default ("").
24742 client_secret>
24743 Set to make the Google Photos backend read only.
24744
24745 If you choose read only then rclone will only request read only access
24746 to your photos, otherwise rclone will request full access.
24747 Enter a boolean value (true or false). Press Enter for the default ("false").
24748 read_only>
24749 Edit advanced config? (y/n)
24750 y) Yes
24751 n) No
24752 y/n> n
24753 Remote config
24754 Use auto config?
24755 * Say Y if not sure
24756 * Say N if you are working on a remote or headless machine
24757 y) Yes
24758 n) No
24759 y/n> y
24760 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
24761 Log in and authorize rclone for access
24762 Waiting for code...
24763 Got code
24764
24765 *** IMPORTANT: All media items uploaded to Google Photos with rclone
24766 *** are stored in full resolution at original quality. These uploads
24767 *** will count towards storage in your Google Account.
24768
24769 --------------------
24770 [remote]
24771 type = google photos
24772 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2019-06-28T17:38:04.644930156+01:00"}
24773 --------------------
24774 y) Yes this is OK
24775 e) Edit this remote
24776 d) Delete this remote
24777 y/e/d> y
24778
24779 Note that rclone runs a webserver on your local machine to collect the
24780 token as returned from Google if you use auto config mode. This only
24781 runs from the moment it opens your browser to the moment you get back
24782 the verification code. This is on http://127.0.0.1:53682/ and this may
24783 require you to unblock it temporarily if you are running a host fire‐
24784 wall, or use manual mode.
24785
24786 This remote is called remote and can now be used like this
24787
24788 See all the albums in your photos
24789
24790 rclone lsd remote:album
24791
24792 Make a new album
24793
24794 rclone mkdir remote:album/newAlbum
24795
24796 List the contents of an album
24797
24798 rclone ls remote:album/newAlbum
24799
24800 Sync /home/local/images to the Google Photos, removing any excess files
24801 in the album.
24802
24803 rclone sync -i /home/local/image remote:album/newAlbum
24804
24805 Layout
24806 As Google Photos is not a general purpose cloud storage system the
24807 backend is laid out to help you navigate it.
24808
24809 The directories under media show different ways of categorizing the me‐
24810 dia. Each file will appear multiple times. So if you want to make a
24811 backup of your google photos you might choose to backup remote:me‐
24812 dia/by-month. (NB remote:media/by-day is rather slow at the moment so
24813 avoid for syncing.)
24814
24815 Note that all your photos and videos will appear somewhere under media,
24816 but they may not appear under album unless you've put them into albums.
24817
24818 /
24819 - upload
24820 - file1.jpg
24821 - file2.jpg
24822 - ...
24823 - media
24824 - all
24825 - file1.jpg
24826 - file2.jpg
24827 - ...
24828 - by-year
24829 - 2000
24830 - file1.jpg
24831 - ...
24832 - 2001
24833 - file2.jpg
24834 - ...
24835 - ...
24836 - by-month
24837 - 2000
24838 - 2000-01
24839 - file1.jpg
24840 - ...
24841 - 2000-02
24842 - file2.jpg
24843 - ...
24844 - ...
24845 - by-day
24846 - 2000
24847 - 2000-01-01
24848 - file1.jpg
24849 - ...
24850 - 2000-01-02
24851 - file2.jpg
24852 - ...
24853 - ...
24854 - album
24855 - album name
24856 - album name/sub
24857 - shared-album
24858 - album name
24859 - album name/sub
24860 - feature
24861 - favorites
24862 - file1.jpg
24863 - file2.jpg
24864
24865 There are two writable parts of the tree, the upload directory and sub
24866 directories of the album directory.
24867
24868 The upload directory is for uploading files you don't want to put into
24869 albums. This will be empty to start with and will contain the files
24870 you've uploaded for one rclone session only, becoming empty again when
24871 you restart rclone. The use case for this would be if you have a load
24872 of files you just want to once off dump into Google Photos. For re‐
24873 peated syncing, uploading to album will work better.
24874
24875 Directories within the album directory are also writeable and you may
24876 create new directories (albums) under album. If you copy files with a
24877 directory hierarchy in there then rclone will create albums with the /
24878 character in them. For example if you do
24879
24880 rclone copy /path/to/images remote:album/images
24881
24882 and the images directory contains
24883
24884 images
24885 - file1.jpg
24886 dir
24887 file2.jpg
24888 dir2
24889 dir3
24890 file3.jpg
24891
24892 Then rclone will create the following albums with the following files
24893 in
24894
24895 • images
24896
24897 • file1.jpg
24898
24899 • images/dir
24900
24901 • file2.jpg
24902
24903 • images/dir2/dir3
24904
24905 • file3.jpg
24906
24907 This means that you can use the album path pretty much like a normal
24908 filesystem and it is a good target for repeated syncing.
24909
24910 The shared-album directory shows albums shared with you or by you.
24911 This is similar to the Sharing tab in the Google Photos web interface.
24912
24913 Standard options
24914 Here are the standard options specific to google photos (Google Pho‐
24915 tos).
24916
24917 --gphotos-client-id
24918 OAuth Client Id.
24919
24920 Leave blank normally.
24921
24922 • Config: client_id
24923
24924 • Env Var: RCLONE_GPHOTOS_CLIENT_ID
24925
24926 • Type: string
24927
24928 • Default: ""
24929
24930 --gphotos-client-secret
24931 OAuth Client Secret.
24932
24933 Leave blank normally.
24934
24935 • Config: client_secret
24936
24937 • Env Var: RCLONE_GPHOTOS_CLIENT_SECRET
24938
24939 • Type: string
24940
24941 • Default: ""
24942
24943 --gphotos-read-only
24944 Set to make the Google Photos backend read only.
24945
24946 If you choose read only then rclone will only request read only access
24947 to your photos, otherwise rclone will request full access.
24948
24949 • Config: read_only
24950
24951 • Env Var: RCLONE_GPHOTOS_READ_ONLY
24952
24953 • Type: bool
24954
24955 • Default: false
24956
24957 Advanced options
24958 Here are the advanced options specific to google photos (Google Pho‐
24959 tos).
24960
24961 --gphotos-token
24962 OAuth Access Token as a JSON blob.
24963
24964 • Config: token
24965
24966 • Env Var: RCLONE_GPHOTOS_TOKEN
24967
24968 • Type: string
24969
24970 • Default: ""
24971
24972 --gphotos-auth-url
24973 Auth server URL.
24974
24975 Leave blank to use the provider defaults.
24976
24977 • Config: auth_url
24978
24979 • Env Var: RCLONE_GPHOTOS_AUTH_URL
24980
24981 • Type: string
24982
24983 • Default: ""
24984
24985 --gphotos-token-url
24986 Token server url.
24987
24988 Leave blank to use the provider defaults.
24989
24990 • Config: token_url
24991
24992 • Env Var: RCLONE_GPHOTOS_TOKEN_URL
24993
24994 • Type: string
24995
24996 • Default: ""
24997
24998 --gphotos-read-size
24999 Set to read the size of media items.
25000
25001 Normally rclone does not read the size of media items since this takes
25002 another transaction. This isn't necessary for syncing. However rclone
25003 mount needs to know the size of files in advance of reading them, so
25004 setting this flag when using rclone mount is recommended if you want to
25005 read the media.
25006
25007 • Config: read_size
25008
25009 • Env Var: RCLONE_GPHOTOS_READ_SIZE
25010
25011 • Type: bool
25012
25013 • Default: false
25014
25015 --gphotos-start-year
25016 Year limits the photos to be downloaded to those which are uploaded af‐
25017 ter the given year.
25018
25019 • Config: start_year
25020
25021 • Env Var: RCLONE_GPHOTOS_START_YEAR
25022
25023 • Type: int
25024
25025 • Default: 2000
25026
25027 --gphotos-include-archived
25028 Also view and download archived media.
25029
25030 By default rclone does not request archived media. Thus, when syncing,
25031 archived media is not visible in directory listings or transferred.
25032
25033 Note that media in albums is always visible and synced, no matter their
25034 archive status.
25035
25036 With this flag, archived media are always visible in directory listings
25037 and transferred.
25038
25039 Without this flag, archived media will not be visible in directory
25040 listings and won't be transferred.
25041
25042 • Config: include_archived
25043
25044 • Env Var: RCLONE_GPHOTOS_INCLUDE_ARCHIVED
25045
25046 • Type: bool
25047
25048 • Default: false
25049
25050 --gphotos-encoding
25051 This sets the encoding for the backend.
25052
25053 See the encoding section in the overview (https://rclone.org/over‐
25054 view/#encoding) for more info.
25055
25056 • Config: encoding
25057
25058 • Env Var: RCLONE_GPHOTOS_ENCODING
25059
25060 • Type: MultiEncoder
25061
25062 • Default: Slash,CrLf,InvalidUtf8,Dot
25063
25064 Limitations
25065 Only images and videos can be uploaded. If you attempt to upload non
25066 videos or images or formats that Google Photos doesn't understand,
25067 rclone will upload the file, then Google Photos will give an error when
25068 it is put turned into a media item.
25069
25070 Note that all media items uploaded to Google Photos through the API are
25071 stored in full resolution at "original quality" and will count towards
25072 your storage quota in your Google Account. The API does not offer a
25073 way to upload in "high quality" mode..
25074
25075 rclone about is not supported by the Google Photos backend. Backends
25076 without this capability cannot determine free space for an rclone mount
25077 or use policy mfs (most free space) as a member of an rclone union re‐
25078 mote.
25079
25080 See List of backends that do not support rclone about
25081 (https://rclone.org/overview/#optional-features) See rclone about
25082 (https://rclone.org/commands/rclone_about/)
25083
25084 Downloading Images
25085 When Images are downloaded this strips EXIF location (according to the
25086 docs and my tests). This is a limitation of the Google Photos API and
25087 is covered by bug #112096115 (https://issuetracker.google.com/is‐
25088 sues/112096115).
25089
25090 The current google API does not allow photos to be downloaded at origi‐
25091 nal resolution. This is very important if you are, for example, relying
25092 on "Google Photos" as a backup of your photos. You will not be able to
25093 use rclone to redownload original images. You could use 'google take‐
25094 out' to recover the original photos as a last resort
25095
25096 Downloading Videos
25097 When videos are downloaded they are downloaded in a really compressed
25098 version of the video compared to downloading it via the Google Photos
25099 web interface. This is covered by bug #113672044 (https://issuetrack‐
25100 er.google.com/issues/113672044).
25101
25102 Duplicates
25103 If a file name is duplicated in a directory then rclone will add the
25104 file ID into its name. So two files called file.jpg would then appear
25105 as file {123456}.jpg and file {ABCDEF}.jpg (the actual IDs are a lot
25106 longer alas!).
25107
25108 If you upload the same image (with the same binary data) twice then
25109 Google Photos will deduplicate it. However it will retain the filename
25110 from the first upload which may confuse rclone. For example if you up‐
25111 loaded an image to upload then uploaded the same image to album/my_al‐
25112 bum the filename of the image in album/my_album will be what it was up‐
25113 loaded with initially, not what you uploaded it with to album. In
25114 practise this shouldn't cause too many problems.
25115
25116 Modified time
25117 The date shown of media in Google Photos is the creation date as deter‐
25118 mined by the EXIF information, or the upload date if that is not known.
25119
25120 This is not changeable by rclone and is not the modification date of
25121 the media on local disk. This means that rclone cannot use the dates
25122 from Google Photos for syncing purposes.
25123
25124 Size
25125 The Google Photos API does not return the size of media. This means
25126 that when syncing to Google Photos, rclone can only do a file existence
25127 check.
25128
25129 It is possible to read the size of the media, but this needs an extra
25130 HTTP HEAD request per media item so is very slow and uses up a lot of
25131 transactions. This can be enabled with the --gphotos-read-size option
25132 or the read_size = true config parameter.
25133
25134 If you want to use the backend with rclone mount you may need to enable
25135 this flag (depending on your OS and application using the photos) oth‐
25136 erwise you may not be able to read media off the mount. You'll need to
25137 experiment to see if it works for you without the flag.
25138
25139 Albums
25140 Rclone can only upload files to albums it created. This is a limita‐
25141 tion of the Google Photos API (https://developers.google.com/photos/li‐
25142 brary/guides/manage-albums).
25143
25144 Rclone can remove files it uploaded from albums it created only.
25145
25146 Deleting files
25147 Rclone can remove files from albums it created, but note that the
25148 Google Photos API does not allow media to be deleted permanently so
25149 this media will still remain. See bug #109759781 (https://issuetrack‐
25150 er.google.com/issues/109759781).
25151
25152 Rclone cannot delete files anywhere except under album.
25153
25154 Deleting albums
25155 The Google Photos API does not support deleting albums - see bug
25156 #135714733 (https://issuetracker.google.com/issues/135714733).
25157
25159 Hasher is a special overlay backend to create remotes which handle
25160 checksums for other remotes. It's main functions include: - Emulate
25161 hash types unimplemented by backends - Cache checksums to help with
25162 slow hashing of large local or (S)FTP files - Warm up checksum cache
25163 from external SUM files
25164
25165 Getting started
25166 To use Hasher, first set up the underlying remote following the config‐
25167 uration instructions for that remote. You can also use a local path‐
25168 name instead of a remote. Check that your base remote is working.
25169
25170 Let's call the base remote myRemote:path here. Note that anything in‐
25171 side myRemote:path will be handled by hasher and anything outside
25172 won't. This means that if you are using a bucket based remote (S3, B2,
25173 Swift) then you should put the bucket in the remote s3:bucket.
25174
25175 Now proceed to interactive or manual configuration.
25176
25177 Interactive configuration
25178 Run rclone config:
25179
25180 No remotes found - make a new one
25181 n) New remote
25182 s) Set configuration password
25183 q) Quit config
25184 n/s/q> n
25185 name> Hasher1
25186 Type of storage to configure.
25187 Choose a number from below, or type in your own value
25188 [snip]
25189 XX / Handle checksums for other remotes
25190 \ "hasher"
25191 [snip]
25192 Storage> hasher
25193 Remote to cache checksums for, like myremote:mypath.
25194 Enter a string value. Press Enter for the default ("").
25195 remote> myRemote:path
25196 Comma separated list of supported checksum types.
25197 Enter a string value. Press Enter for the default ("md5,sha1").
25198 hashsums> md5
25199 Maximum time to keep checksums in cache. 0 = no cache, off = cache forever.
25200 max_age> off
25201 Edit advanced config? (y/n)
25202 y) Yes
25203 n) No
25204 y/n> n
25205 Remote config
25206 --------------------
25207 [Hasher1]
25208 type = hasher
25209 remote = myRemote:path
25210 hashsums = md5
25211 max_age = off
25212 --------------------
25213 y) Yes this is OK
25214 e) Edit this remote
25215 d) Delete this remote
25216 y/e/d> y
25217
25218 Manual configuration
25219 Run rclone config path to see the path of current active config file,
25220 usually YOURHOME/.config/rclone/rclone.conf. Open it in your favorite
25221 text editor, find section for the base remote and create new section
25222 for hasher like in the following examples:
25223
25224 [Hasher1]
25225 type = hasher
25226 remote = myRemote:path
25227 hashes = md5
25228 max_age = off
25229
25230 [Hasher2]
25231 type = hasher
25232 remote = /local/path
25233 hashes = dropbox,sha1
25234 max_age = 24h
25235
25236 Hasher takes basically the following parameters: - remote is required,
25237 - hashes is a comma separated list of supported checksums (by default
25238 md5,sha1), - max_age - maximum time to keep a checksum value in the
25239 cache, 0 will disable caching completely, off will cache "forever"
25240 (that is until the files get changed).
25241
25242 Make sure the remote has : (colon) in. If you specify the remote with‐
25243 out a colon then rclone will use a local directory of that name. So if
25244 you use a remote of /local/path then rclone will handle hashes for that
25245 directory. If you use remote = name literally then rclone will put
25246 files in a directory called name located under current directory.
25247
25248 Usage
25249 Basic operations
25250 Now you can use it as Hasher2:subdir/file instead of base remote.
25251 Hasher will transparently update cache with new checksums when a file
25252 is fully read or overwritten, like:
25253
25254 rclone copy External:path/file Hasher:dest/path
25255
25256 rclone cat Hasher:path/to/file > /dev/null
25257
25258 The way to refresh all cached checksums (even unsupported by the base
25259 backend) for a subtree is to re-download all files in the subtree. For
25260 example, use hashsum --download using any supported hashsum on the com‐
25261 mand line (we just care to re-read):
25262
25263 rclone hashsum MD5 --download Hasher:path/to/subtree > /dev/null
25264
25265 rclone backend dump Hasher:path/to/subtree
25266
25267 You can print or drop hashsum cache using custom backend commands:
25268
25269 rclone backend dump Hasher:dir/subdir
25270
25271 rclone backend drop Hasher:
25272
25273 Pre-Seed from a SUM File
25274 Hasher supports two backend commands: generic SUM file import and
25275 faster but less consistent stickyimport.
25276
25277 rclone backend import Hasher:dir/subdir SHA1 /path/to/SHA1SUM [--checkers 4]
25278
25279 Instead of SHA1 it can be any hash supported by the remote. The last
25280 argument can point to either a local or an other-remote:path text file
25281 in SUM format. The command will parse the SUM file, then walk down the
25282 path given by the first argument, snapshot current fingerprints and
25283 fill in the cache entries correspondingly. - Paths in the SUM file are
25284 treated as relative to hasher:dir/subdir. - The command will not check
25285 that supplied values are correct. You must know what you are doing. -
25286 This is a one-time action. The SUM file will not get "attached" to the
25287 remote. Cache entries can still be overwritten later, should the ob‐
25288 ject's fingerprint change. - The tree walk can take long depending on
25289 the tree size. You can increase --checkers to make it faster. Or use
25290 stickyimport if you don't care about fingerprints and consistency.
25291
25292 rclone backend stickyimport hasher:path/to/data sha1 remote:/path/to/sum.sha1
25293
25294 stickyimport is similar to import but works much faster because it does
25295 not need to stat existing files and skips initial tree walk. Instead
25296 of binding cache entries to file fingerprints it creates sticky entries
25297 bound to the file name alone ignoring size, modification time etc.
25298 Such hash entries can be replaced only by purge, delete, backend drop
25299 or by full re-read/re-write of the files.
25300
25301 Configuration reference
25302 Standard options
25303 Here are the standard options specific to hasher (Better checksums for
25304 other remotes).
25305
25306 --hasher-remote
25307 Remote to cache checksums for (e.g. myRemote:path).
25308
25309 • Config: remote
25310
25311 • Env Var: RCLONE_HASHER_REMOTE
25312
25313 • Type: string
25314
25315 • Default: ""
25316
25317 --hasher-hashes
25318 Comma separated list of supported checksum types.
25319
25320 • Config: hashes
25321
25322 • Env Var: RCLONE_HASHER_HASHES
25323
25324 • Type: CommaSepList
25325
25326 • Default: md5,sha1
25327
25328 --hasher-max-age
25329 Maximum time to keep checksums in cache (0 = no cache, off = cache for‐
25330 ever).
25331
25332 • Config: max_age
25333
25334 • Env Var: RCLONE_HASHER_MAX_AGE
25335
25336 • Type: Duration
25337
25338 • Default: off
25339
25340 Advanced options
25341 Here are the advanced options specific to hasher (Better checksums for
25342 other remotes).
25343
25344 --hasher-auto-size
25345 Auto-update checksum for files smaller than this size (disabled by de‐
25346 fault).
25347
25348 • Config: auto_size
25349
25350 • Env Var: RCLONE_HASHER_AUTO_SIZE
25351
25352 • Type: SizeSuffix
25353
25354 • Default: 0
25355
25356 Backend commands
25357 Here are the commands specific to the hasher backend.
25358
25359 Run them with
25360
25361 rclone backend COMMAND remote:
25362
25363 The help below will explain what arguments each command takes.
25364
25365 See the "rclone backend" command (https://rclone.org/com‐
25366 mands/rclone_backend/) for more info on how to pass options and argu‐
25367 ments.
25368
25369 These can be run on a running backend using the rc command backend/com‐
25370 mand (https://rclone.org/rc/#backend/command).
25371
25372 drop
25373 Drop cache
25374
25375 rclone backend drop remote: [options] [<arguments>+]
25376
25377 Completely drop checksum cache. Usage Example: rclone backend drop
25378 hasher:
25379
25380 dump
25381 Dump the database
25382
25383 rclone backend dump remote: [options] [<arguments>+]
25384
25385 Dump cache records covered by the current remote
25386
25387 fulldump
25388 Full dump of the database
25389
25390 rclone backend fulldump remote: [options] [<arguments>+]
25391
25392 Dump all cache records in the database
25393
25394 import
25395 Import a SUM file
25396
25397 rclone backend import remote: [options] [<arguments>+]
25398
25399 Amend hash cache from a SUM file and bind checksums to files by
25400 size/time. Usage Example: rclone backend import hasher:subdir md5
25401 /path/to/sum.md5
25402
25403 stickyimport
25404 Perform fast import of a SUM file
25405
25406 rclone backend stickyimport remote: [options] [<arguments>+]
25407
25408 Fill hash cache from a SUM file without verifying file fingerprints.
25409 Usage Example: rclone backend stickyimport hasher:subdir md5 re‐
25410 mote:path/to/sum.md5
25411
25412 Implementation details (advanced)
25413 This section explains how various rclone operations work on a hasher
25414 remote.
25415
25416 Disclaimer. This section describes current implementation which can
25417 change in future rclone versions!.
25418
25419 Hashsum command
25420 The rclone hashsum (or md5sum or sha1sum) command will:
25421
25422 1. if requested hash is supported by lower level, just pass it.
25423
25424 2. if object size is below auto_size then download object and calculate
25425 requested hashes on the fly.
25426
25427 3. if unsupported and the size is big enough, build object fingerprint
25428 (including size, modtime if supported, first-found other hash if
25429 any).
25430
25431 4. if the strict match is found in cache for the requested remote, re‐
25432 turn the stored hash.
25433
25434 5. if remote found but fingerprint mismatched, then purge the entry and
25435 proceed to step 6.
25436
25437 6. if remote not found or had no requested hash type or after step 5:
25438 download object, calculate all supported hashes on the fly and store
25439 in cache; return requested hash.
25440
25441 Other operations
25442 • whenever a file is uploaded or downloaded in full, capture the stream
25443 to calculate all supported hashes on the fly and update database
25444
25445 • server-side move will update keys of existing cache entries
25446
25447 • deletefile will remove a single cache entry
25448
25449 • purge will remove all cache entries under the purged path
25450
25451 Note that setting max_age = 0 will disable checksum caching completely.
25452
25453 If you set max_age = off, checksums in cache will never age, unless you
25454 fully rewrite or delete the file.
25455
25456 Cache storage
25457 Cached checksums are stored as bolt database files under rclone cache
25458 directory, usually ~/.cache/rclone/kv/. Databases are maintained one
25459 per base backend, named like BaseRemote~hasher.bolt. Checksums for
25460 multiple alias-es into a single base backend will be stored in the sin‐
25461 gle database. All local paths are treated as aliases into the local
25462 backend (unless crypted or chunked) and stored in
25463 ~/.cache/rclone/kv/local~hasher.bolt. Databases can be shared between
25464 multiple rclone processes.
25465
25467 HDFS (https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-
25468 hdfs/HdfsDesign.html) is a distributed file-system, part of the Apache
25469 Hadoop (https://hadoop.apache.org/) framework.
25470
25471 Paths are specified as remote: or remote:path/to/dir.
25472
25473 Configuration
25474 Here is an example of how to make a remote called remote. First run:
25475
25476 rclone config
25477
25478 This will guide you through an interactive setup process:
25479
25480 No remotes found - make a new one
25481 n) New remote
25482 s) Set configuration password
25483 q) Quit config
25484 n/s/q> n
25485 name> remote
25486 Type of storage to configure.
25487 Enter a string value. Press Enter for the default ("").
25488 Choose a number from below, or type in your own value
25489 [skip]
25490 XX / Hadoop distributed file system
25491 \ "hdfs"
25492 [skip]
25493 Storage> hdfs
25494 ** See help for hdfs backend at: https://rclone.org/hdfs/ **
25495
25496 hadoop name node and port
25497 Enter a string value. Press Enter for the default ("").
25498 Choose a number from below, or type in your own value
25499 1 / Connect to host namenode at port 8020
25500 \ "namenode:8020"
25501 namenode> namenode.hadoop:8020
25502 hadoop user name
25503 Enter a string value. Press Enter for the default ("").
25504 Choose a number from below, or type in your own value
25505 1 / Connect to hdfs as root
25506 \ "root"
25507 username> root
25508 Edit advanced config? (y/n)
25509 y) Yes
25510 n) No (default)
25511 y/n> n
25512 Remote config
25513 --------------------
25514 [remote]
25515 type = hdfs
25516 namenode = namenode.hadoop:8020
25517 username = root
25518 --------------------
25519 y) Yes this is OK (default)
25520 e) Edit this remote
25521 d) Delete this remote
25522 y/e/d> y
25523 Current remotes:
25524
25525 Name Type
25526 ==== ====
25527 hadoop hdfs
25528
25529 e) Edit existing remote
25530 n) New remote
25531 d) Delete remote
25532 r) Rename remote
25533 c) Copy remote
25534 s) Set configuration password
25535 q) Quit config
25536 e/n/d/r/c/s/q> q
25537
25538 This remote is called remote and can now be used like this
25539
25540 See all the top level directories
25541
25542 rclone lsd remote:
25543
25544 List the contents of a directory
25545
25546 rclone ls remote:directory
25547
25548 Sync the remote directory to /home/local/directory, deleting any excess
25549 files.
25550
25551 rclone sync -i remote:directory /home/local/directory
25552
25553 Setting up your own HDFS instance for testing
25554 You may start with a manual setup (https://hadoop.apache.org/docs/sta‐
25555 ble/hadoop-project-dist/hadoop-common/SingleCluster.html) or use the
25556 docker image from the tests:
25557
25558 If you want to build the docker image
25559
25560 git clone https://github.com/rclone/rclone.git
25561 cd rclone/fstest/testserver/images/test-hdfs
25562 docker build --rm -t rclone/test-hdfs .
25563
25564 Or you can just use the latest one pushed
25565
25566 docker run --rm --name "rclone-hdfs" -p 127.0.0.1:9866:9866 -p 127.0.0.1:8020:8020 --hostname "rclone-hdfs" rclone/test-hdfs
25567
25568 NB it need few seconds to startup.
25569
25570 For this docker image the remote needs to be configured like this:
25571
25572 [remote]
25573 type = hdfs
25574 namenode = 127.0.0.1:8020
25575 username = root
25576
25577 You can stop this image with docker kill rclone-hdfs (NB it does not
25578 use volumes, so all data uploaded will be lost.)
25579
25580 Modified time
25581 Time accurate to 1 second is stored.
25582
25583 Checksum
25584 No checksums are implemented.
25585
25586 Usage information
25587 You can use the rclone about remote: command which will display
25588 filesystem size and current usage.
25589
25590 Restricted filename characters
25591 In addition to the default restricted characters set
25592 (https://rclone.org/overview/#restricted-characters) the following
25593 characters are also replaced:
25594
25595 Character Value Replacement
25596 ────────────────────────────────
25597 : 0x3A :
25598
25599 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
25600 view/#invalid-utf8).
25601
25602 Standard options
25603 Here are the standard options specific to hdfs (Hadoop distributed file
25604 system).
25605
25606 --hdfs-namenode
25607 Hadoop name node and port.
25608
25609 E.g. "namenode:8020" to connect to host namenode at port 8020.
25610
25611 • Config: namenode
25612
25613 • Env Var: RCLONE_HDFS_NAMENODE
25614
25615 • Type: string
25616
25617 • Default: ""
25618
25619 --hdfs-username
25620 Hadoop user name.
25621
25622 • Config: username
25623
25624 • Env Var: RCLONE_HDFS_USERNAME
25625
25626 • Type: string
25627
25628 • Default: ""
25629
25630 • Examples:
25631
25632 • "root"
25633
25634 • Connect to hdfs as root.
25635
25636 Advanced options
25637 Here are the advanced options specific to hdfs (Hadoop distributed file
25638 system).
25639
25640 --hdfs-service-principal-name
25641 Kerberos service principal name for the namenode.
25642
25643 Enables KERBEROS authentication. Specifies the Service Principal Name
25644 (SERVICE/FQDN) for the namenode. E.g. "hdfs/namenode.hadoop.docker"
25645 for namenode running as service 'hdfs' with FQDN 'namenode.hadoop.dock‐
25646 er'.
25647
25648 • Config: service_principal_name
25649
25650 • Env Var: RCLONE_HDFS_SERVICE_PRINCIPAL_NAME
25651
25652 • Type: string
25653
25654 • Default: ""
25655
25656 --hdfs-data-transfer-protection
25657 Kerberos data transfer protection: authentication|integrity|privacy.
25658
25659 Specifies whether or not authentication, data signature integrity
25660 checks, and wire encryption is required when communicating the the
25661 datanodes. Possible values are 'authentication', 'integrity' and 'pri‐
25662 vacy'. Used only with KERBEROS enabled.
25663
25664 • Config: data_transfer_protection
25665
25666 • Env Var: RCLONE_HDFS_DATA_TRANSFER_PROTECTION
25667
25668 • Type: string
25669
25670 • Default: ""
25671
25672 • Examples:
25673
25674 • "privacy"
25675
25676 • Ensure authentication, integrity and encryption enabled.
25677
25678 --hdfs-encoding
25679 This sets the encoding for the backend.
25680
25681 See the encoding section in the overview (https://rclone.org/over‐
25682 view/#encoding) for more info.
25683
25684 • Config: encoding
25685
25686 • Env Var: RCLONE_HDFS_ENCODING
25687
25688 • Type: MultiEncoder
25689
25690 • Default: Slash,Colon,Del,Ctl,InvalidUtf8,Dot
25691
25692 Limitations
25693 • No server-side Move or DirMove.
25694
25695 • Checksums not implemented.
25696
25698 The HTTP remote is a read only remote for reading files of a webserver.
25699 The webserver should provide file listings which rclone will read and
25700 turn into a remote. This has been tested with common webservers such
25701 as Apache/Nginx/Caddy and will likely work with file listings from most
25702 web servers. (If it doesn't then please file an issue, or send a pull
25703 request!)
25704
25705 Paths are specified as remote: or remote:path/to/dir.
25706
25707 Configuration
25708 Here is an example of how to make a remote called remote. First run:
25709
25710 rclone config
25711
25712 This will guide you through an interactive setup process:
25713
25714 No remotes found - make a new one
25715 n) New remote
25716 s) Set configuration password
25717 q) Quit config
25718 n/s/q> n
25719 name> remote
25720 Type of storage to configure.
25721 Choose a number from below, or type in your own value
25722 [snip]
25723 XX / http Connection
25724 \ "http"
25725 [snip]
25726 Storage> http
25727 URL of http host to connect to
25728 Choose a number from below, or type in your own value
25729 1 / Connect to example.com
25730 \ "https://example.com"
25731 url> https://beta.rclone.org
25732 Remote config
25733 --------------------
25734 [remote]
25735 url = https://beta.rclone.org
25736 --------------------
25737 y) Yes this is OK
25738 e) Edit this remote
25739 d) Delete this remote
25740 y/e/d> y
25741 Current remotes:
25742
25743 Name Type
25744 ==== ====
25745 remote http
25746
25747 e) Edit existing remote
25748 n) New remote
25749 d) Delete remote
25750 r) Rename remote
25751 c) Copy remote
25752 s) Set configuration password
25753 q) Quit config
25754 e/n/d/r/c/s/q> q
25755
25756 This remote is called remote and can now be used like this
25757
25758 See all the top level directories
25759
25760 rclone lsd remote:
25761
25762 List the contents of a directory
25763
25764 rclone ls remote:directory
25765
25766 Sync the remote directory to /home/local/directory, deleting any excess
25767 files.
25768
25769 rclone sync -i remote:directory /home/local/directory
25770
25771 Read only
25772 This remote is read only - you can't upload files to an HTTP server.
25773
25774 Modified time
25775 Most HTTP servers store time accurate to 1 second.
25776
25777 Checksum
25778 No checksums are stored.
25779
25780 Usage without a config file
25781 Since the http remote only has one config parameter it is easy to use
25782 without a config file:
25783
25784 rclone lsd --http-url https://beta.rclone.org :http:
25785
25786 Standard options
25787 Here are the standard options specific to http (http Connection).
25788
25789 --http-url
25790 URL of http host to connect to.
25791
25792 E.g. "https://example.com", or "https://user:pass@example.com" to use
25793 a username and password.
25794
25795 • Config: url
25796
25797 • Env Var: RCLONE_HTTP_URL
25798
25799 • Type: string
25800
25801 • Default: ""
25802
25803 Advanced options
25804 Here are the advanced options specific to http (http Connection).
25805
25806 --http-headers
25807 Set HTTP headers for all transactions.
25808
25809 Use this to set additional HTTP headers for all transactions.
25810
25811 The input format is comma separated list of key,value pairs. Standard
25812 CSV encoding (https://godoc.org/encoding/csv) may be used.
25813
25814 For example to set a Cookie use 'Cookie,name=value', or '"Cook‐
25815 ie","name=value"'.
25816
25817 You can set multiple headers, e.g. '"Cookie","name=value","Authoriza‐
25818 tion","xxx"'.
25819
25820 • Config: headers
25821
25822 • Env Var: RCLONE_HTTP_HEADERS
25823
25824 • Type: CommaSepList
25825
25826 • Default:
25827
25828 --http-no-slash
25829 Set this if the site doesn't end directories with /.
25830
25831 Use this if your target website does not use / on the end of directo‐
25832 ries.
25833
25834 A / on the end of a path is how rclone normally tells the difference
25835 between files and directories. If this flag is set, then rclone will
25836 treat all files with Content-Type: text/html as directories and read
25837 URLs from them rather than downloading them.
25838
25839 Note that this may cause rclone to confuse genuine HTML files with di‐
25840 rectories.
25841
25842 • Config: no_slash
25843
25844 • Env Var: RCLONE_HTTP_NO_SLASH
25845
25846 • Type: bool
25847
25848 • Default: false
25849
25850 --http-no-head
25851 Don't use HEAD requests to find file sizes in dir listing.
25852
25853 If your site is being very slow to load then you can try this option.
25854 Normally rclone does a HEAD request for each potential file in a direc‐
25855 tory listing to:
25856
25857 • find its size
25858
25859 • check it really exists
25860
25861 • check to see if it is a directory
25862
25863 If you set this option, rclone will not do the HEAD request. This will
25864 mean
25865
25866 • directory listings are much quicker
25867
25868 • rclone won't have the times or sizes of any files
25869
25870 • some files that don't exist may be in the listing
25871
25872 • Config: no_head
25873
25874 • Env Var: RCLONE_HTTP_NO_HEAD
25875
25876 • Type: bool
25877
25878 • Default: false
25879
25880 Limitations
25881 rclone about is not supported by the HTTP backend. Backends without
25882 this capability cannot determine free space for an rclone mount or use
25883 policy mfs (most free space) as a member of an rclone union remote.
25884
25885 See List of backends that do not support rclone about
25886 (https://rclone.org/overview/#optional-features) See rclone about
25887 (https://rclone.org/commands/rclone_about/)
25888
25890 Paths are specified as remote:path
25891
25892 Paths are specified as remote:container (or remote: for the lsd com‐
25893 mand.) You may put subdirectories in too, e.g. remote:contain‐
25894 er/path/to/dir.
25895
25896 Configuration
25897 The initial setup for Hubic involves getting a token from Hubic which
25898 you need to do in your browser. rclone config walks you through it.
25899
25900 Here is an example of how to make a remote called remote. First run:
25901
25902 rclone config
25903
25904 This will guide you through an interactive setup process:
25905
25906 n) New remote
25907 s) Set configuration password
25908 n/s> n
25909 name> remote
25910 Type of storage to configure.
25911 Choose a number from below, or type in your own value
25912 [snip]
25913 XX / Hubic
25914 \ "hubic"
25915 [snip]
25916 Storage> hubic
25917 Hubic Client Id - leave blank normally.
25918 client_id>
25919 Hubic Client Secret - leave blank normally.
25920 client_secret>
25921 Remote config
25922 Use auto config?
25923 * Say Y if not sure
25924 * Say N if you are working on a remote or headless machine
25925 y) Yes
25926 n) No
25927 y/n> y
25928 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
25929 Log in and authorize rclone for access
25930 Waiting for code...
25931 Got code
25932 --------------------
25933 [remote]
25934 client_id =
25935 client_secret =
25936 token = {"access_token":"XXXXXX"}
25937 --------------------
25938 y) Yes this is OK
25939 e) Edit this remote
25940 d) Delete this remote
25941 y/e/d> y
25942
25943 See the remote setup docs (https://rclone.org/remote_setup/) for how to
25944 set it up on a machine with no Internet browser available.
25945
25946 Note that rclone runs a webserver on your local machine to collect the
25947 token as returned from Hubic. This only runs from the moment it opens
25948 your browser to the moment you get back the verification code. This is
25949 on http://127.0.0.1:53682/ and this it may require you to unblock it
25950 temporarily if you are running a host firewall.
25951
25952 Once configured you can then use rclone like this,
25953
25954 List containers in the top level of your Hubic
25955
25956 rclone lsd remote:
25957
25958 List all the files in your Hubic
25959
25960 rclone ls remote:
25961
25962 To copy a local directory to an Hubic directory called backup
25963
25964 rclone copy /home/source remote:backup
25965
25966 If you want the directory to be visible in the official Hubic browser,
25967 you need to copy your files to the default directory
25968
25969 rclone copy /home/source remote:default/backup
25970
25971 --fast-list
25972 This remote supports --fast-list which allows you to use fewer transac‐
25973 tions in exchange for more memory. See the rclone docs
25974 (https://rclone.org/docs/#fast-list) for more details.
25975
25976 Modified time
25977 The modified time is stored as metadata on the object as X-Ob‐
25978 ject-Meta-Mtime as floating point since the epoch accurate to 1 ns.
25979
25980 This is a de facto standard (used in the official python-swiftclient
25981 amongst others) for storing the modification time for an object.
25982
25983 Note that Hubic wraps the Swift backend, so most of the properties of
25984 are the same.
25985
25986 Standard options
25987 Here are the standard options specific to hubic (Hubic).
25988
25989 --hubic-client-id
25990 OAuth Client Id.
25991
25992 Leave blank normally.
25993
25994 • Config: client_id
25995
25996 • Env Var: RCLONE_HUBIC_CLIENT_ID
25997
25998 • Type: string
25999
26000 • Default: ""
26001
26002 --hubic-client-secret
26003 OAuth Client Secret.
26004
26005 Leave blank normally.
26006
26007 • Config: client_secret
26008
26009 • Env Var: RCLONE_HUBIC_CLIENT_SECRET
26010
26011 • Type: string
26012
26013 • Default: ""
26014
26015 Advanced options
26016 Here are the advanced options specific to hubic (Hubic).
26017
26018 --hubic-token
26019 OAuth Access Token as a JSON blob.
26020
26021 • Config: token
26022
26023 • Env Var: RCLONE_HUBIC_TOKEN
26024
26025 • Type: string
26026
26027 • Default: ""
26028
26029 --hubic-auth-url
26030 Auth server URL.
26031
26032 Leave blank to use the provider defaults.
26033
26034 • Config: auth_url
26035
26036 • Env Var: RCLONE_HUBIC_AUTH_URL
26037
26038 • Type: string
26039
26040 • Default: ""
26041
26042 --hubic-token-url
26043 Token server url.
26044
26045 Leave blank to use the provider defaults.
26046
26047 • Config: token_url
26048
26049 • Env Var: RCLONE_HUBIC_TOKEN_URL
26050
26051 • Type: string
26052
26053 • Default: ""
26054
26055 --hubic-chunk-size
26056 Above this size files will be chunked into a _segments container.
26057
26058 Above this size files will be chunked into a _segments container. The
26059 default for this is 5 GiB which is its maximum value.
26060
26061 • Config: chunk_size
26062
26063 • Env Var: RCLONE_HUBIC_CHUNK_SIZE
26064
26065 • Type: SizeSuffix
26066
26067 • Default: 5Gi
26068
26069 --hubic-no-chunk
26070 Don't chunk files during streaming upload.
26071
26072 When doing streaming uploads (e.g. using rcat or mount) setting this
26073 flag will cause the swift backend to not upload chunked files.
26074
26075 This will limit the maximum upload size to 5 GiB. However non chunked
26076 files are easier to deal with and have an MD5SUM.
26077
26078 Rclone will still chunk files bigger than chunk_size when doing normal
26079 copy operations.
26080
26081 • Config: no_chunk
26082
26083 • Env Var: RCLONE_HUBIC_NO_CHUNK
26084
26085 • Type: bool
26086
26087 • Default: false
26088
26089 --hubic-encoding
26090 This sets the encoding for the backend.
26091
26092 See the encoding section in the overview (https://rclone.org/over‐
26093 view/#encoding) for more info.
26094
26095 • Config: encoding
26096
26097 • Env Var: RCLONE_HUBIC_ENCODING
26098
26099 • Type: MultiEncoder
26100
26101 • Default: Slash,InvalidUtf8
26102
26103 Limitations
26104 This uses the normal OpenStack Swift mechanism to refresh the Swift API
26105 credentials and ignores the expires field returned by the Hubic API.
26106
26107 The Swift API doesn't return a correct MD5SUM for segmented files (Dy‐
26108 namic or Static Large Objects) so rclone won't check or use the MD5SUM
26109 for these.
26110
26112 Jottacloud is a cloud storage service provider from a Norwegian compa‐
26113 ny, using its own datacenters in Norway. In addition to the official
26114 service at jottacloud.com (https://www.jottacloud.com/), it also pro‐
26115 vides white-label solutions to different companies, such as: * Telia *
26116 Telia Cloud (cloud.telia.se) * Telia Sky (sky.telia.no) * Tele2 * Tele2
26117 Cloud (mittcloud.tele2.se) * Elkjøp (with subsidiaries): * Elkjøp Cloud
26118 (cloud.elkjop.no) * Elgiganten Sweden (cloud.elgiganten.se) * Elgigan‐
26119 ten Denmark (cloud.elgiganten.dk) * Giganti Cloud (cloud.gigantti.fi) *
26120 ELKO Clouud (cloud.elko.is)
26121
26122 Most of the white-label versions are supported by this backend, al‐
26123 though may require different authentication setup - described below.
26124
26125 Paths are specified as remote:path
26126
26127 Paths may be as deep as required, e.g. remote:directory/subdirectory.
26128
26129 Authentication types
26130 Some of the whitelabel versions uses a different authentication method
26131 than the official service, and you have to choose the correct one when
26132 setting up the remote.
26133
26134 Standard authentication
26135 To configure Jottacloud you will need to generate a personal security
26136 token in the Jottacloud web interface. You will the option to do in
26137 your account security settings (https://www.jottacloud.com/web/secure)
26138 (for whitelabel version you need to find this page in its web inter‐
26139 face). Note that the web interface may refer to this token as a Jotta‐
26140 Cli token.
26141
26142 Legacy authentication
26143 If you are using one of the whitelabel versions (e.g. from Elkjøp or
26144 Tele2) you may not have the option to generate a CLI token. In this
26145 case you'll have to use the legacy authentication. To to this select
26146 yes when the setup asks for legacy authentication and enter your user‐
26147 name and password. The rest of the setup is identical to the default
26148 setup.
26149
26150 Telia Cloud authentication
26151 Similar to other whitelabel versions Telia Cloud doesn't offer the op‐
26152 tion of creating a CLI token, and additionally uses a separate authen‐
26153 tication flow where the username is generated internally. To setup
26154 rclone to use Telia Cloud, choose Telia Cloud authentication in the
26155 setup. The rest of the setup is identical to the default setup.
26156
26157 Configuration
26158 Here is an example of how to make a remote called remote with the de‐
26159 fault setup. First run:
26160
26161 rclone config
26162
26163 This will guide you through an interactive setup process:
26164
26165 No remotes found - make a new one
26166 n) New remote
26167 s) Set configuration password
26168 q) Quit config
26169 n/s/q> n
26170 name> remote
26171 Type of storage to configure.
26172 Enter a string value. Press Enter for the default ("").
26173 Choose a number from below, or type in your own value
26174 [snip]
26175 XX / Jottacloud
26176 \ "jottacloud"
26177 [snip]
26178 Storage> jottacloud
26179 ** See help for jottacloud backend at: https://rclone.org/jottacloud/ **
26180
26181 Edit advanced config? (y/n)
26182 y) Yes
26183 n) No
26184 y/n> n
26185 Remote config
26186 Use legacy authentication?.
26187 This is only required for certain whitelabel versions of Jottacloud and not recommended for normal users.
26188 y) Yes
26189 n) No (default)
26190 y/n> n
26191
26192 Generate a personal login token here: https://www.jottacloud.com/web/secure
26193 Login Token> <your token here>
26194
26195 Do you want to use a non standard device/mountpoint e.g. for accessing files uploaded using the official Jottacloud client?
26196
26197 y) Yes
26198 n) No
26199 y/n> y
26200 Please select the device to use. Normally this will be Jotta
26201 Choose a number from below, or type in an existing value
26202 1 > DESKTOP-3H31129
26203 2 > Jotta
26204 Devices> 2
26205 Please select the mountpoint to user. Normally this will be Archive
26206 Choose a number from below, or type in an existing value
26207 1 > Archive
26208 2 > Links
26209 3 > Sync
26210
26211 Mountpoints> 1
26212 --------------------
26213 [jotta]
26214 type = jottacloud
26215 token = {........}
26216 device = Jotta
26217 mountpoint = Archive
26218 configVersion = 1
26219 --------------------
26220 y) Yes this is OK
26221 e) Edit this remote
26222 d) Delete this remote
26223 y/e/d> y
26224
26225 Once configured you can then use rclone like this,
26226
26227 List directories in top level of your Jottacloud
26228
26229 rclone lsd remote:
26230
26231 List all the files in your Jottacloud
26232
26233 rclone ls remote:
26234
26235 To copy a local directory to an Jottacloud directory called backup
26236
26237 rclone copy /home/source remote:backup
26238
26239 Devices and Mountpoints
26240 The official Jottacloud client registers a device for each computer you
26241 install it on, and then creates a mountpoint for each folder you select
26242 for Backup. The web interface uses a special device called Jotta for
26243 the Archive and Sync mountpoints. In most cases you'll want to use the
26244 Jotta/Archive device/mountpoint, however if you want to access files
26245 uploaded by any of the official clients rclone provides the option to
26246 select other devices and mountpoints during config.
26247
26248 The built-in Jotta device may also contain several other mountpoints,
26249 such as: Latest, Links, Shared and Trash. These are special mount‐
26250 points with a different internal representation than the "regular"
26251 mountpoints. Rclone will only to a very limited degree support them.
26252 Generally you should avoid these, unless you know what you are doing.
26253
26254 --fast-list
26255 This remote supports --fast-list which allows you to use fewer transac‐
26256 tions in exchange for more memory. See the rclone docs
26257 (https://rclone.org/docs/#fast-list) for more details.
26258
26259 Note that the implementation in Jottacloud always uses only a single
26260 API request to get the entire list, so for large folders this could
26261 lead to long wait time before the first results are shown.
26262
26263 Modified time and hashes
26264 Jottacloud allows modification times to be set on objects accurate to 1
26265 second. These will be used to detect whether objects need syncing or
26266 not.
26267
26268 Jottacloud supports MD5 type hashes, so you can use the --checksum
26269 flag.
26270
26271 Note that Jottacloud requires the MD5 hash before upload so if the
26272 source does not have an MD5 checksum then the file will be cached tem‐
26273 porarily on disk (wherever the TMPDIR environment variable points to)
26274 before it is uploaded. Small files will be cached in memory - see the
26275 --jottacloud-md5-memory-limit flag. When uploading from local disk the
26276 source checksum is always available, so this does not apply. Starting
26277 with rclone version 1.52 the same is true for crypted remotes (in older
26278 versions the crypt backend would not calculate hashes for uploads from
26279 local disk, so the Jottacloud backend had to do it as described above).
26280
26281 Restricted filename characters
26282 In addition to the default restricted characters set
26283 (https://rclone.org/overview/#restricted-characters) the following
26284 characters are also replaced:
26285
26286 Character Value Replacement
26287 ────────────────────────────────
26288 " 0x22 "
26289 * 0x2A *
26290 : 0x3A :
26291 < 0x3C <
26292 > 0x3E >
26293 ? 0x3F ?
26294 | 0x7C |
26295
26296 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26297 view/#invalid-utf8), as they can't be used in XML strings.
26298
26299 Deleting files
26300 By default rclone will send all files to the trash when deleting files.
26301 They will be permanently deleted automatically after 30 days. You may
26302 bypass the trash and permanently delete files immediately by using the
26303 --jottacloud-hard-delete flag, or set the equivalent environment vari‐
26304 able. Emptying the trash is supported by the cleanup
26305 (https://rclone.org/commands/rclone_cleanup/) command.
26306
26307 Versions
26308 Jottacloud supports file versioning. When rclone uploads a new version
26309 of a file it creates a new version of it. Currently rclone only sup‐
26310 ports retrieving the current version but older versions can be accessed
26311 via the Jottacloud Website.
26312
26313 Versioning can be disabled by --jottacloud-no-versions option. This is
26314 achieved by deleting the remote file prior to uploading a new version.
26315 If the upload the fails no version of the file will be available in the
26316 remote.
26317
26318 Quota information
26319 To view your current quota you can use the rclone about remote: command
26320 which will display your usage limit (unless it is unlimited) and the
26321 current usage.
26322
26323 Advanced options
26324 Here are the advanced options specific to jottacloud (Jottacloud).
26325
26326 --jottacloud-md5-memory-limit
26327 Files bigger than this will be cached on disk to calculate the MD5 if
26328 required.
26329
26330 • Config: md5_memory_limit
26331
26332 • Env Var: RCLONE_JOTTACLOUD_MD5_MEMORY_LIMIT
26333
26334 • Type: SizeSuffix
26335
26336 • Default: 10Mi
26337
26338 --jottacloud-trashed-only
26339 Only show files that are in the trash.
26340
26341 This will show trashed files in their original directory structure.
26342
26343 • Config: trashed_only
26344
26345 • Env Var: RCLONE_JOTTACLOUD_TRASHED_ONLY
26346
26347 • Type: bool
26348
26349 • Default: false
26350
26351 --jottacloud-hard-delete
26352 Delete files permanently rather than putting them into the trash.
26353
26354 • Config: hard_delete
26355
26356 • Env Var: RCLONE_JOTTACLOUD_HARD_DELETE
26357
26358 • Type: bool
26359
26360 • Default: false
26361
26362 --jottacloud-upload-resume-limit
26363 Files bigger than this can be resumed if the upload fail's.
26364
26365 • Config: upload_resume_limit
26366
26367 • Env Var: RCLONE_JOTTACLOUD_UPLOAD_RESUME_LIMIT
26368
26369 • Type: SizeSuffix
26370
26371 • Default: 10Mi
26372
26373 --jottacloud-no-versions
26374 Avoid server side versioning by deleting files and recreating files in‐
26375 stead of overwriting them.
26376
26377 • Config: no_versions
26378
26379 • Env Var: RCLONE_JOTTACLOUD_NO_VERSIONS
26380
26381 • Type: bool
26382
26383 • Default: false
26384
26385 --jottacloud-encoding
26386 This sets the encoding for the backend.
26387
26388 See the encoding section in the overview (https://rclone.org/over‐
26389 view/#encoding) for more info.
26390
26391 • Config: encoding
26392
26393 • Env Var: RCLONE_JOTTACLOUD_ENCODING
26394
26395 • Type: MultiEncoder
26396
26397 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Aster‐
26398 isk,Pipe,Del,Ctl,InvalidUtf8,Dot
26399
26400 Limitations
26401 Note that Jottacloud is case insensitive so you can't have a file
26402 called "Hello.doc" and one called "hello.doc".
26403
26404 There are quite a few characters that can't be in Jottacloud file
26405 names. Rclone will map these names to and from an identical looking
26406 unicode equivalent. For example if a file has a ? in it will be
26407 mapped to ? instead.
26408
26409 Jottacloud only supports filenames up to 255 characters in length.
26410
26411 Troubleshooting
26412 Jottacloud exhibits some inconsistent behaviours regarding deleted
26413 files and folders which may cause Copy, Move and DirMove operations to
26414 previously deleted paths to fail. Emptying the trash should help in
26415 such cases.
26416
26418 Paths are specified as remote:path
26419
26420 Paths may be as deep as required, e.g. remote:directory/subdirectory.
26421
26422 Configuration
26423 The initial setup for Koofr involves creating an application password
26424 for rclone. You can do that by opening the Koofr web application
26425 (https://app.koofr.net/app/admin/preferences/password), giving the
26426 password a nice name like rclone and clicking on generate.
26427
26428 Here is an example of how to make a remote called koofr. First run:
26429
26430 rclone config
26431
26432 This will guide you through an interactive setup process:
26433
26434 No remotes found - make a new one
26435 n) New remote
26436 s) Set configuration password
26437 q) Quit config
26438 n/s/q> n
26439 name> koofr
26440 Type of storage to configure.
26441 Enter a string value. Press Enter for the default ("").
26442 Choose a number from below, or type in your own value
26443 [snip]
26444 XX / Koofr
26445 \ "koofr"
26446 [snip]
26447 Storage> koofr
26448 ** See help for koofr backend at: https://rclone.org/koofr/ **
26449
26450 Your Koofr user name
26451 Enter a string value. Press Enter for the default ("").
26452 user> USER@NAME
26453 Your Koofr password for rclone (generate one at https://app.koofr.net/app/admin/preferences/password)
26454 y) Yes type in my own password
26455 g) Generate random password
26456 y/g> y
26457 Enter the password:
26458 password:
26459 Confirm the password:
26460 password:
26461 Edit advanced config? (y/n)
26462 y) Yes
26463 n) No
26464 y/n> n
26465 Remote config
26466 --------------------
26467 [koofr]
26468 type = koofr
26469 baseurl = https://app.koofr.net
26470 user = USER@NAME
26471 password = *** ENCRYPTED ***
26472 --------------------
26473 y) Yes this is OK
26474 e) Edit this remote
26475 d) Delete this remote
26476 y/e/d> y
26477
26478 You can choose to edit advanced config in order to enter your own ser‐
26479 vice URL if you use an on-premise or white label Koofr instance, or
26480 choose an alternative mount instead of your primary storage.
26481
26482 Once configured you can then use rclone like this,
26483
26484 List directories in top level of your Koofr
26485
26486 rclone lsd koofr:
26487
26488 List all the files in your Koofr
26489
26490 rclone ls koofr:
26491
26492 To copy a local directory to an Koofr directory called backup
26493
26494 rclone copy /home/source remote:backup
26495
26496 Restricted filename characters
26497 In addition to the default restricted characters set
26498 (https://rclone.org/overview/#restricted-characters) the following
26499 characters are also replaced:
26500
26501 Character Value Replacement
26502 ────────────────────────────────
26503 \ 0x5C \
26504
26505 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26506 view/#invalid-utf8), as they can't be used in XML strings.
26507
26508 Standard options
26509 Here are the standard options specific to koofr (Koofr).
26510
26511 --koofr-user
26512 Your Koofr user name.
26513
26514 • Config: user
26515
26516 • Env Var: RCLONE_KOOFR_USER
26517
26518 • Type: string
26519
26520 • Default: ""
26521
26522 --koofr-password
26523 Your Koofr password for rclone (generate one at
26524 https://app.koofr.net/app/admin/preferences/password).
26525
26526 NB Input to this must be obscured - see rclone obscure
26527 (https://rclone.org/commands/rclone_obscure/).
26528
26529 • Config: password
26530
26531 • Env Var: RCLONE_KOOFR_PASSWORD
26532
26533 • Type: string
26534
26535 • Default: ""
26536
26537 Advanced options
26538 Here are the advanced options specific to koofr (Koofr).
26539
26540 --koofr-endpoint
26541 The Koofr API endpoint to use.
26542
26543 • Config: endpoint
26544
26545 • Env Var: RCLONE_KOOFR_ENDPOINT
26546
26547 • Type: string
26548
26549 • Default: "https://app.koofr.net"
26550
26551 --koofr-mountid
26552 Mount ID of the mount to use.
26553
26554 If omitted, the primary mount is used.
26555
26556 • Config: mountid
26557
26558 • Env Var: RCLONE_KOOFR_MOUNTID
26559
26560 • Type: string
26561
26562 • Default: ""
26563
26564 --koofr-setmtime
26565 Does the backend support setting modification time.
26566
26567 Set this to false if you use a mount ID that points to a Dropbox or
26568 Amazon Drive backend.
26569
26570 • Config: setmtime
26571
26572 • Env Var: RCLONE_KOOFR_SETMTIME
26573
26574 • Type: bool
26575
26576 • Default: true
26577
26578 --koofr-encoding
26579 This sets the encoding for the backend.
26580
26581 See the encoding section in the overview (https://rclone.org/over‐
26582 view/#encoding) for more info.
26583
26584 • Config: encoding
26585
26586 • Env Var: RCLONE_KOOFR_ENCODING
26587
26588 • Type: MultiEncoder
26589
26590 • Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
26591
26592 Limitations
26593 Note that Koofr is case insensitive so you can't have a file called
26594 "Hello.doc" and one called "hello.doc".
26595
26597 Mail.ru Cloud (https://cloud.mail.ru/) is a cloud storage provided by a
26598 Russian internet company Mail.Ru Group (https://mail.ru). The official
26599 desktop client is Disk-O: (https://disk-o.cloud/en), available on Win‐
26600 dows and Mac OS.
26601
26602 Currently it is recommended to disable 2FA on Mail.ru accounts intended
26603 for rclone until it gets eventually implemented.
26604
26605 Features highlights
26606 • Paths may be as deep as required, e.g. remote:directory/subdirectory
26607
26608 • Files have a last modified time property, directories don't
26609
26610 • Deleted files are by default moved to the trash
26611
26612 • Files and directories can be shared via public links
26613
26614 • Partial uploads or streaming are not supported, file size must be
26615 known before upload
26616
26617 • Maximum file size is limited to 2G for a free account, unlimited for
26618 paid accounts
26619
26620 • Storage keeps hash for all files and performs transparent deduplica‐
26621 tion, the hash algorithm is a modified SHA1
26622
26623 • If a particular file is already present in storage, one can quickly
26624 submit file hash instead of long file upload (this optimization is
26625 supported by rclone)
26626
26627 Configuration
26628 Here is an example of making a mailru configuration. First create a
26629 Mail.ru Cloud account and choose a tariff, then run
26630
26631 rclone config
26632
26633 This will guide you through an interactive setup process:
26634
26635 No remotes found - make a new one
26636 n) New remote
26637 s) Set configuration password
26638 q) Quit config
26639 n/s/q> n
26640 name> remote
26641 Type of storage to configure.
26642 Type of storage to configure.
26643 Enter a string value. Press Enter for the default ("").
26644 Choose a number from below, or type in your own value
26645 [snip]
26646 XX / Mail.ru Cloud
26647 \ "mailru"
26648 [snip]
26649 Storage> mailru
26650 User name (usually email)
26651 Enter a string value. Press Enter for the default ("").
26652 user> username@mail.ru
26653 Password
26654 y) Yes type in my own password
26655 g) Generate random password
26656 y/g> y
26657 Enter the password:
26658 password:
26659 Confirm the password:
26660 password:
26661 Skip full upload if there is another file with same data hash.
26662 This feature is called "speedup" or "put by hash". It is especially efficient
26663 in case of generally available files like popular books, video or audio clips
26664 [snip]
26665 Enter a boolean value (true or false). Press Enter for the default ("true").
26666 Choose a number from below, or type in your own value
26667 1 / Enable
26668 \ "true"
26669 2 / Disable
26670 \ "false"
26671 speedup_enable> 1
26672 Edit advanced config? (y/n)
26673 y) Yes
26674 n) No
26675 y/n> n
26676 Remote config
26677 --------------------
26678 [remote]
26679 type = mailru
26680 user = username@mail.ru
26681 pass = *** ENCRYPTED ***
26682 speedup_enable = true
26683 --------------------
26684 y) Yes this is OK
26685 e) Edit this remote
26686 d) Delete this remote
26687 y/e/d> y
26688
26689 Configuration of this backend does not require a local web browser.
26690 You can use the configured backend as shown below:
26691
26692 See top level directories
26693
26694 rclone lsd remote:
26695
26696 Make a new directory
26697
26698 rclone mkdir remote:directory
26699
26700 List the contents of a directory
26701
26702 rclone ls remote:directory
26703
26704 Sync /home/local/directory to the remote path, deleting any excess
26705 files in the path.
26706
26707 rclone sync -i /home/local/directory remote:directory
26708
26709 Modified time
26710 Files support a modification time attribute with up to 1 second preci‐
26711 sion. Directories do not have a modification time, which is shown as
26712 "Jan 1 1970".
26713
26714 Hash checksums
26715 Hash sums use a custom Mail.ru algorithm based on SHA1. If file size
26716 is less than or equal to the SHA1 block size (20 bytes), its hash is
26717 simply its data right-padded with zero bytes. Hash sum of a larger
26718 file is computed as a SHA1 sum of the file data bytes concatenated with
26719 a decimal representation of the data length.
26720
26721 Emptying Trash
26722 Removing a file or directory actually moves it to the trash, which is
26723 not visible to rclone but can be seen in a web browser. The trashed
26724 file still occupies part of total quota. If you wish to empty your
26725 trash and free some quota, you can use the rclone cleanup remote: com‐
26726 mand, which will permanently delete all your trashed files. This com‐
26727 mand does not take any path arguments.
26728
26729 Quota information
26730 To view your current quota you can use the rclone about remote: command
26731 which will display your usage limit (quota) and the current usage.
26732
26733 Restricted filename characters
26734 In addition to the default restricted characters set
26735 (https://rclone.org/overview/#restricted-characters) the following
26736 characters are also replaced:
26737
26738 Character Value Replacement
26739 ────────────────────────────────
26740 " 0x22 "
26741 * 0x2A *
26742 : 0x3A :
26743 < 0x3C <
26744 > 0x3E >
26745 ? 0x3F ?
26746 \ 0x5C \
26747 | 0x7C |
26748
26749 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26750 view/#invalid-utf8), as they can't be used in JSON strings.
26751
26752 Standard options
26753 Here are the standard options specific to mailru (Mail.ru Cloud).
26754
26755 --mailru-user
26756 User name (usually email).
26757
26758 • Config: user
26759
26760 • Env Var: RCLONE_MAILRU_USER
26761
26762 • Type: string
26763
26764 • Default: ""
26765
26766 --mailru-pass
26767 Password.
26768
26769 NB Input to this must be obscured - see rclone obscure
26770 (https://rclone.org/commands/rclone_obscure/).
26771
26772 • Config: pass
26773
26774 • Env Var: RCLONE_MAILRU_PASS
26775
26776 • Type: string
26777
26778 • Default: ""
26779
26780 --mailru-speedup-enable
26781 Skip full upload if there is another file with same data hash.
26782
26783 This feature is called "speedup" or "put by hash". It is especially
26784 efficient in case of generally available files like popular books,
26785 video or audio clips, because files are searched by hash in all ac‐
26786 counts of all mailru users. It is meaningless and ineffective if
26787 source file is unique or encrypted. Please note that rclone may need
26788 local memory and disk space to calculate content hash in advance and
26789 decide whether full upload is required. Also, if rclone does not know
26790 file size in advance (e.g. in case of streaming or partial uploads),
26791 it will not even try this optimization.
26792
26793 • Config: speedup_enable
26794
26795 • Env Var: RCLONE_MAILRU_SPEEDUP_ENABLE
26796
26797 • Type: bool
26798
26799 • Default: true
26800
26801 • Examples:
26802
26803 • "true"
26804
26805 • Enable
26806
26807 • "false"
26808
26809 • Disable
26810
26811 Advanced options
26812 Here are the advanced options specific to mailru (Mail.ru Cloud).
26813
26814 --mailru-speedup-file-patterns
26815 Comma separated list of file name patterns eligible for speedup (put by
26816 hash).
26817
26818 Patterns are case insensitive and can contain '*' or '?' meta charac‐
26819 ters.
26820
26821 • Config: speedup_file_patterns
26822
26823 • Env Var: RCLONE_MAILRU_SPEEDUP_FILE_PATTERNS
26824
26825 • Type: string
26826
26827 • Default: ".mkv,.avi,.mp4,.mp3,.zip,.gz,.rar,.pdf"
26828
26829 • Examples:
26830
26831 • ""
26832
26833 • Empty list completely disables speedup (put by hash).
26834
26835 • "*"
26836
26837 • All files will be attempted for speedup.
26838
26839 • ".mkv,.avi,.mp4,.mp3"
26840
26841 • Only common audio/video files will be tried for put by hash.
26842
26843 • ".zip,.gz,.rar,.pdf"
26844
26845 • Only common archives or PDF books will be tried for speedup.
26846
26847 --mailru-speedup-max-disk
26848 This option allows you to disable speedup (put by hash) for large
26849 files.
26850
26851 Reason is that preliminary hashing can exhaust your RAM or disk space.
26852
26853 • Config: speedup_max_disk
26854
26855 • Env Var: RCLONE_MAILRU_SPEEDUP_MAX_DISK
26856
26857 • Type: SizeSuffix
26858
26859 • Default: 3Gi
26860
26861 • Examples:
26862
26863 • "0"
26864
26865 • Completely disable speedup (put by hash).
26866
26867 • "1G"
26868
26869 • Files larger than 1Gb will be uploaded directly.
26870
26871 • "3G"
26872
26873 • Choose this option if you have less than 3Gb free on local disk.
26874
26875 --mailru-speedup-max-memory
26876 Files larger than the size given below will always be hashed on disk.
26877
26878 • Config: speedup_max_memory
26879
26880 • Env Var: RCLONE_MAILRU_SPEEDUP_MAX_MEMORY
26881
26882 • Type: SizeSuffix
26883
26884 • Default: 32Mi
26885
26886 • Examples:
26887
26888 • "0"
26889
26890 • Preliminary hashing will always be done in a temporary disk loca‐
26891 tion.
26892
26893 • "32M"
26894
26895 • Do not dedicate more than 32Mb RAM for preliminary hashing.
26896
26897 • "256M"
26898
26899 • You have at most 256Mb RAM free for hash calculations.
26900
26901 --mailru-check-hash
26902 What should copy do if file checksum is mismatched or invalid.
26903
26904 • Config: check_hash
26905
26906 • Env Var: RCLONE_MAILRU_CHECK_HASH
26907
26908 • Type: bool
26909
26910 • Default: true
26911
26912 • Examples:
26913
26914 • "true"
26915
26916 • Fail with error.
26917
26918 • "false"
26919
26920 • Ignore and continue.
26921
26922 --mailru-user-agent
26923 HTTP user agent used internally by client.
26924
26925 Defaults to "rclone/VERSION" or "--user-agent" provided on command
26926 line.
26927
26928 • Config: user_agent
26929
26930 • Env Var: RCLONE_MAILRU_USER_AGENT
26931
26932 • Type: string
26933
26934 • Default: ""
26935
26936 --mailru-quirks
26937 Comma separated list of internal maintenance flags.
26938
26939 This option must not be used by an ordinary user. It is intended only
26940 to facilitate remote troubleshooting of backend issues. Strict meaning
26941 of flags is not documented and not guaranteed to persist between re‐
26942 leases. Quirks will be removed when the backend grows stable. Sup‐
26943 ported quirks: atomicmkdir binlist unknowndirs
26944
26945 • Config: quirks
26946
26947 • Env Var: RCLONE_MAILRU_QUIRKS
26948
26949 • Type: string
26950
26951 • Default: ""
26952
26953 --mailru-encoding
26954 This sets the encoding for the backend.
26955
26956 See the encoding section in the overview (https://rclone.org/over‐
26957 view/#encoding) for more info.
26958
26959 • Config: encoding
26960
26961 • Env Var: RCLONE_MAILRU_ENCODING
26962
26963 • Type: MultiEncoder
26964
26965 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
26966 Slash,Del,Ctl,InvalidUtf8,Dot
26967
26968 Limitations
26969 File size limits depend on your account. A single file size is limited
26970 by 2G for a free account and unlimited for paid tariffs. Please refer
26971 to the Mail.ru site for the total uploaded size limits.
26972
26973 Note that Mailru is case insensitive so you can't have a file called
26974 "Hello.doc" and one called "hello.doc".
26975
26977 Mega (https://mega.nz/) is a cloud storage and file hosting service
26978 known for its security feature where all files are encrypted locally
26979 before they are uploaded. This prevents anyone (including employees of
26980 Mega) from accessing the files without knowledge of the key used for
26981 encryption.
26982
26983 This is an rclone backend for Mega which supports the file transfer
26984 features of Mega using the same client side encryption.
26985
26986 Paths are specified as remote:path
26987
26988 Paths may be as deep as required, e.g. remote:directory/subdirectory.
26989
26990 Configuration
26991 Here is an example of how to make a remote called remote. First run:
26992
26993 rclone config
26994
26995 This will guide you through an interactive setup process:
26996
26997 No remotes found - make a new one
26998 n) New remote
26999 s) Set configuration password
27000 q) Quit config
27001 n/s/q> n
27002 name> remote
27003 Type of storage to configure.
27004 Choose a number from below, or type in your own value
27005 [snip]
27006 XX / Mega
27007 \ "mega"
27008 [snip]
27009 Storage> mega
27010 User name
27011 user> you@example.com
27012 Password.
27013 y) Yes type in my own password
27014 g) Generate random password
27015 n) No leave this optional password blank
27016 y/g/n> y
27017 Enter the password:
27018 password:
27019 Confirm the password:
27020 password:
27021 Remote config
27022 --------------------
27023 [remote]
27024 type = mega
27025 user = you@example.com
27026 pass = *** ENCRYPTED ***
27027 --------------------
27028 y) Yes this is OK
27029 e) Edit this remote
27030 d) Delete this remote
27031 y/e/d> y
27032
27033 NOTE: The encryption keys need to have been already generated after a
27034 regular login via the browser, otherwise attempting to use the creden‐
27035 tials in rclone will fail.
27036
27037 Once configured you can then use rclone like this,
27038
27039 List directories in top level of your Mega
27040
27041 rclone lsd remote:
27042
27043 List all the files in your Mega
27044
27045 rclone ls remote:
27046
27047 To copy a local directory to an Mega directory called backup
27048
27049 rclone copy /home/source remote:backup
27050
27051 Modified time and hashes
27052 Mega does not support modification times or hashes yet.
27053
27054 Restricted filename characters
27055 Character Value Replacement
27056 ────────────────────────────────
27057 NUL 0x00 ␀
27058 / 0x2F /
27059
27060 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
27061 view/#invalid-utf8), as they can't be used in JSON strings.
27062
27063 Duplicated files
27064 Mega can have two files with exactly the same name and path (unlike a
27065 normal file system).
27066
27067 Duplicated files cause problems with the syncing and you will see mes‐
27068 sages in the log about duplicates.
27069
27070 Use rclone dedupe to fix duplicated files.
27071
27072 Failure to log-in
27073 Mega remotes seem to get blocked (reject logins) under "heavy use". We
27074 haven't worked out the exact blocking rules but it seems to be related
27075 to fast paced, successive rclone commands.
27076
27077 For example, executing this command 90 times in a row rclone link re‐
27078 mote:file will cause the remote to become "blocked". This is not an
27079 abnormal situation, for example if you wish to get the public links of
27080 a directory with hundred of files... After more or less a week, the
27081 remote will remote accept rclone logins normally again.
27082
27083 You can mitigate this issue by mounting the remote it with rclone
27084 mount. This will log-in when mounting and a log-out when unmounting
27085 only. You can also run rclone rcd and then use rclone rc to run the
27086 commands over the API to avoid logging in each time.
27087
27088 Rclone does not currently close mega sessions (you can see them in the
27089 web interface), however closing the sessions does not solve the issue.
27090
27091 If you space rclone commands by 3 seconds it will avoid blocking the
27092 remote. We haven't identified the exact blocking rules, so perhaps one
27093 could execute the command 80 times without waiting and avoid blocking
27094 by waiting 3 seconds, then continuing...
27095
27096 Note that this has been observed by trial and error and might not be
27097 set in stone.
27098
27099 Other tools seem not to produce this blocking effect, as they use a
27100 different working approach (state-based, using sessionIDs instead of
27101 log-in) which isn't compatible with the current stateless rclone ap‐
27102 proach.
27103
27104 Note that once blocked, the use of other tools (such as megacmd) is not
27105 a sure workaround: following megacmd login times have been observed in
27106 succession for blocked remote: 7 minutes, 20 min, 30min, 30 min, 30min.
27107 Web access looks unaffected though.
27108
27109 Investigation is continuing in relation to workarounds based on time‐
27110 outs, pacers, retrials and tpslimits - if you discover something rele‐
27111 vant, please post on the forum.
27112
27113 So, if rclone was working nicely and suddenly you are unable to log-in
27114 and you are sure the user and the password are correct, likely you have
27115 got the remote blocked for a while.
27116
27117 Standard options
27118 Here are the standard options specific to mega (Mega).
27119
27120 --mega-user
27121 User name.
27122
27123 • Config: user
27124
27125 • Env Var: RCLONE_MEGA_USER
27126
27127 • Type: string
27128
27129 • Default: ""
27130
27131 --mega-pass
27132 Password.
27133
27134 NB Input to this must be obscured - see rclone obscure
27135 (https://rclone.org/commands/rclone_obscure/).
27136
27137 • Config: pass
27138
27139 • Env Var: RCLONE_MEGA_PASS
27140
27141 • Type: string
27142
27143 • Default: ""
27144
27145 Advanced options
27146 Here are the advanced options specific to mega (Mega).
27147
27148 --mega-debug
27149 Output more debug from Mega.
27150
27151 If this flag is set (along with -vv) it will print further debugging
27152 information from the mega backend.
27153
27154 • Config: debug
27155
27156 • Env Var: RCLONE_MEGA_DEBUG
27157
27158 • Type: bool
27159
27160 • Default: false
27161
27162 --mega-hard-delete
27163 Delete files permanently rather than putting them into the trash.
27164
27165 Normally the mega backend will put all deletions into the trash rather
27166 than permanently deleting them. If you specify this then rclone will
27167 permanently delete objects instead.
27168
27169 • Config: hard_delete
27170
27171 • Env Var: RCLONE_MEGA_HARD_DELETE
27172
27173 • Type: bool
27174
27175 • Default: false
27176
27177 --mega-encoding
27178 This sets the encoding for the backend.
27179
27180 See the encoding section in the overview (https://rclone.org/over‐
27181 view/#encoding) for more info.
27182
27183 • Config: encoding
27184
27185 • Env Var: RCLONE_MEGA_ENCODING
27186
27187 • Type: MultiEncoder
27188
27189 • Default: Slash,InvalidUtf8,Dot
27190
27191 Limitations
27192 This backend uses the go-mega go library
27193 (https://github.com/t3rm1n4l/go-mega) which is an opensource go library
27194 implementing the Mega API. There doesn't appear to be any documenta‐
27195 tion for the mega protocol beyond the mega C++ SDK
27196 (https://github.com/meganz/sdk) source code so there are likely quite a
27197 few errors still remaining in this library.
27198
27199 Mega allows duplicate files which may confuse rclone.
27200
27202 The memory backend is an in RAM backend. It does not persist its data
27203 - use the local backend for that.
27204
27205 The memory backend behaves like a bucket based remote (e.g. like s3).
27206 Because it has no parameters you can just use it with the :memory: re‐
27207 mote name.
27208
27209 Configuration
27210 You can configure it as a remote like this with rclone config too if
27211 you want to:
27212
27213 No remotes found - make a new one
27214 n) New remote
27215 s) Set configuration password
27216 q) Quit config
27217 n/s/q> n
27218 name> remote
27219 Type of storage to configure.
27220 Enter a string value. Press Enter for the default ("").
27221 Choose a number from below, or type in your own value
27222 [snip]
27223 XX / Memory
27224 \ "memory"
27225 [snip]
27226 Storage> memory
27227 ** See help for memory backend at: https://rclone.org/memory/ **
27228
27229 Remote config
27230
27231 --------------------
27232 [remote]
27233 type = memory
27234 --------------------
27235 y) Yes this is OK (default)
27236 e) Edit this remote
27237 d) Delete this remote
27238 y/e/d> y
27239
27240 Because the memory backend isn't persistent it is most useful for test‐
27241 ing or with an rclone server or rclone mount, e.g.
27242
27243 rclone mount :memory: /mnt/tmp
27244 rclone serve webdav :memory:
27245 rclone serve sftp :memory:
27246
27247 Modified time and hashes
27248 The memory backend supports MD5 hashes and modification times accurate
27249 to 1 nS.
27250
27251 Restricted filename characters
27252 The memory backend replaces the default restricted characters set
27253 (https://rclone.org/overview/#restricted-characters).
27254
27256 Paths are specified as remote:container (or remote: for the lsd com‐
27257 mand.) You may put subdirectories in too, e.g. remote:contain‐
27258 er/path/to/dir.
27259
27260 Configuration
27261 Here is an example of making a Microsoft Azure Blob Storage configura‐
27262 tion. For a remote called remote. First run:
27263
27264 rclone config
27265
27266 This will guide you through an interactive setup process:
27267
27268 No remotes found - make a new one
27269 n) New remote
27270 s) Set configuration password
27271 q) Quit config
27272 n/s/q> n
27273 name> remote
27274 Type of storage to configure.
27275 Choose a number from below, or type in your own value
27276 [snip]
27277 XX / Microsoft Azure Blob Storage
27278 \ "azureblob"
27279 [snip]
27280 Storage> azureblob
27281 Storage Account Name
27282 account> account_name
27283 Storage Account Key
27284 key> base64encodedkey==
27285 Endpoint for the service - leave blank normally.
27286 endpoint>
27287 Remote config
27288 --------------------
27289 [remote]
27290 account = account_name
27291 key = base64encodedkey==
27292 endpoint =
27293 --------------------
27294 y) Yes this is OK
27295 e) Edit this remote
27296 d) Delete this remote
27297 y/e/d> y
27298
27299 See all containers
27300
27301 rclone lsd remote:
27302
27303 Make a new container
27304
27305 rclone mkdir remote:container
27306
27307 List the contents of a container
27308
27309 rclone ls remote:container
27310
27311 Sync /home/local/directory to the remote container, deleting any excess
27312 files in the container.
27313
27314 rclone sync -i /home/local/directory remote:container
27315
27316 --fast-list
27317 This remote supports --fast-list which allows you to use fewer transac‐
27318 tions in exchange for more memory. See the rclone docs
27319 (https://rclone.org/docs/#fast-list) for more details.
27320
27321 Modified time
27322 The modified time is stored as metadata on the object with the mtime
27323 key. It is stored using RFC3339 Format time with nanosecond precision.
27324 The metadata is supplied during directory listings so there is no over‐
27325 head to using it.
27326
27327 Restricted filename characters
27328 In addition to the default restricted characters set
27329 (https://rclone.org/overview/#restricted-characters) the following
27330 characters are also replaced:
27331
27332 Character Value Replacement
27333 ────────────────────────────────
27334 / 0x2F /
27335 \ 0x5C \
27336
27337 File names can also not end with the following characters. These only
27338 get replaced if they are the last character in the name:
27339
27340 Character Value Replacement
27341 ────────────────────────────────
27342 . 0x2E .
27343
27344 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
27345 view/#invalid-utf8), as they can't be used in JSON strings.
27346
27347 Hashes
27348 MD5 hashes are stored with blobs. However blobs that were uploaded in
27349 chunks only have an MD5 if the source remote was capable of MD5 hashes,
27350 e.g. the local disk.
27351
27352 Authenticating with Azure Blob Storage
27353 Rclone has 3 ways of authenticating with Azure Blob Storage:
27354
27355 Account and Key
27356 This is the most straight forward and least flexible way. Just fill in
27357 the account and key lines and leave the rest blank.
27358
27359 SAS URL
27360 This can be an account level SAS URL or container level SAS URL.
27361
27362 To use it leave account, key blank and fill in sas_url.
27363
27364 An account level SAS URL or container level SAS URL can be obtained
27365 from the Azure portal or the Azure Storage Explorer. To get a contain‐
27366 er level SAS URL right click on a container in the Azure Blob explorer
27367 in the Azure portal.
27368
27369 If you use a container level SAS URL, rclone operations are permitted
27370 only on a particular container, e.g.
27371
27372 rclone ls azureblob:container
27373
27374 You can also list the single container from the root. This will only
27375 show the container specified by the SAS URL.
27376
27377 $ rclone lsd azureblob:
27378 container/
27379
27380 Note that you can't see or access any other containers - this will fail
27381
27382 rclone ls azureblob:othercontainer
27383
27384 Container level SAS URLs are useful for temporarily allowing third par‐
27385 ties access to a single container or putting credentials into an un‐
27386 trusted environment such as a CI build server.
27387
27388 Standard options
27389 Here are the standard options specific to azureblob (Microsoft Azure
27390 Blob Storage).
27391
27392 --azureblob-account
27393 Storage Account Name.
27394
27395 Leave blank to use SAS URL or Emulator.
27396
27397 • Config: account
27398
27399 • Env Var: RCLONE_AZUREBLOB_ACCOUNT
27400
27401 • Type: string
27402
27403 • Default: ""
27404
27405 --azureblob-service-principal-file
27406 Path to file containing credentials for use with a service principal.
27407
27408 Leave blank normally. Needed only if you want to use a service princi‐
27409 pal instead of interactive login.
27410
27411 $ az ad sp create-for-rbac --name "<name>" \
27412 --role "Storage Blob Data Owner" \
27413 --scopes "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>" \
27414 > azure-principal.json
27415
27416 See "Create an Azure service principal" (https://docs.microsoft.com/en-
27417 us/cli/azure/create-an-azure-service-principal-azure-cli) and "Assign
27418 an Azure role for access to blob data" (https://docs.microsoft.com/en-
27419 us/azure/storage/common/storage-auth-aad-rbac-cli) pages for more de‐
27420 tails.
27421
27422 • Config: service_principal_file
27423
27424 • Env Var: RCLONE_AZUREBLOB_SERVICE_PRINCIPAL_FILE
27425
27426 • Type: string
27427
27428 • Default: ""
27429
27430 --azureblob-key
27431 Storage Account Key.
27432
27433 Leave blank to use SAS URL or Emulator.
27434
27435 • Config: key
27436
27437 • Env Var: RCLONE_AZUREBLOB_KEY
27438
27439 • Type: string
27440
27441 • Default: ""
27442
27443 --azureblob-sas-url
27444 SAS URL for container level access only.
27445
27446 Leave blank if using account/key or Emulator.
27447
27448 • Config: sas_url
27449
27450 • Env Var: RCLONE_AZUREBLOB_SAS_URL
27451
27452 • Type: string
27453
27454 • Default: ""
27455
27456 --azureblob-use-msi
27457 Use a managed service identity to authenticate (only works in Azure).
27458
27459 When true, use a managed service identity (https://docs.micro‐
27460 soft.com/en-us/azure/active-directory/managed-identities-azure-re‐
27461 sources/) to authenticate to Azure Storage instead of a SAS token or
27462 account key.
27463
27464 If the VM(SS) on which this program is running has a system-assigned
27465 identity, it will be used by default. If the resource has no sys‐
27466 tem-assigned but exactly one user-assigned identity, the user-assigned
27467 identity will be used by default. If the resource has multiple us‐
27468 er-assigned identities, the identity to use must be explicitly speci‐
27469 fied using exactly one of the msi_object_id, msi_client_id, or
27470 msi_mi_res_id parameters.
27471
27472 • Config: use_msi
27473
27474 • Env Var: RCLONE_AZUREBLOB_USE_MSI
27475
27476 • Type: bool
27477
27478 • Default: false
27479
27480 --azureblob-use-emulator
27481 Uses local storage emulator if provided as 'true'.
27482
27483 Leave blank if using real azure storage endpoint.
27484
27485 • Config: use_emulator
27486
27487 • Env Var: RCLONE_AZUREBLOB_USE_EMULATOR
27488
27489 • Type: bool
27490
27491 • Default: false
27492
27493 Advanced options
27494 Here are the advanced options specific to azureblob (Microsoft Azure
27495 Blob Storage).
27496
27497 --azureblob-msi-object-id
27498 Object ID of the user-assigned MSI to use, if any.
27499
27500 Leave blank if msi_client_id or msi_mi_res_id specified.
27501
27502 • Config: msi_object_id
27503
27504 • Env Var: RCLONE_AZUREBLOB_MSI_OBJECT_ID
27505
27506 • Type: string
27507
27508 • Default: ""
27509
27510 --azureblob-msi-client-id
27511 Object ID of the user-assigned MSI to use, if any.
27512
27513 Leave blank if msi_object_id or msi_mi_res_id specified.
27514
27515 • Config: msi_client_id
27516
27517 • Env Var: RCLONE_AZUREBLOB_MSI_CLIENT_ID
27518
27519 • Type: string
27520
27521 • Default: ""
27522
27523 --azureblob-msi-mi-res-id
27524 Azure resource ID of the user-assigned MSI to use, if any.
27525
27526 Leave blank if msi_client_id or msi_object_id specified.
27527
27528 • Config: msi_mi_res_id
27529
27530 • Env Var: RCLONE_AZUREBLOB_MSI_MI_RES_ID
27531
27532 • Type: string
27533
27534 • Default: ""
27535
27536 --azureblob-endpoint
27537 Endpoint for the service.
27538
27539 Leave blank normally.
27540
27541 • Config: endpoint
27542
27543 • Env Var: RCLONE_AZUREBLOB_ENDPOINT
27544
27545 • Type: string
27546
27547 • Default: ""
27548
27549 --azureblob-upload-cutoff
27550 Cutoff for switching to chunked upload (<= 256 MiB) (deprecated).
27551
27552 • Config: upload_cutoff
27553
27554 • Env Var: RCLONE_AZUREBLOB_UPLOAD_CUTOFF
27555
27556 • Type: string
27557
27558 • Default: ""
27559
27560 --azureblob-chunk-size
27561 Upload chunk size (<= 100 MiB).
27562
27563 Note that this is stored in memory and there may be up to "--transfers"
27564 chunks stored at once in memory.
27565
27566 • Config: chunk_size
27567
27568 • Env Var: RCLONE_AZUREBLOB_CHUNK_SIZE
27569
27570 • Type: SizeSuffix
27571
27572 • Default: 4Mi
27573
27574 --azureblob-list-chunk
27575 Size of blob list.
27576
27577 This sets the number of blobs requested in each listing chunk. Default
27578 is the maximum, 5000. "List blobs" requests are permitted 2 minutes
27579 per megabyte to complete. If an operation is taking longer than 2 min‐
27580 utes per megabyte on average, it will time out ( source
27581 (https://docs.microsoft.com/en-us/rest/api/storageservices/setting-
27582 timeouts-for-blob-service-operations#exceptions-to-default-timeout-in‐
27583 terval) ). This can be used to limit the number of blobs items to re‐
27584 turn, to avoid the time out.
27585
27586 • Config: list_chunk
27587
27588 • Env Var: RCLONE_AZUREBLOB_LIST_CHUNK
27589
27590 • Type: int
27591
27592 • Default: 5000
27593
27594 --azureblob-access-tier
27595 Access tier of blob: hot, cool or archive.
27596
27597 Archived blobs can be restored by setting access tier to hot or cool.
27598 Leave blank if you intend to use default access tier, which is set at
27599 account level
27600
27601 If there is no "access tier" specified, rclone doesn't apply any tier.
27602 rclone performs "Set Tier" operation on blobs while uploading, if ob‐
27603 jects are not modified, specifying "access tier" to new one will have
27604 no effect. If blobs are in "archive tier" at remote, trying to perform
27605 data transfer operations from remote will not be allowed. User should
27606 first restore by tiering blob to "Hot" or "Cool".
27607
27608 • Config: access_tier
27609
27610 • Env Var: RCLONE_AZUREBLOB_ACCESS_TIER
27611
27612 • Type: string
27613
27614 • Default: ""
27615
27616 --azureblob-archive-tier-delete
27617 Delete archive tier blobs before overwriting.
27618
27619 Archive tier blobs cannot be updated. So without this flag, if you at‐
27620 tempt to update an archive tier blob, then rclone will produce the er‐
27621 ror:
27622
27623 can't update archive tier blob without --azureblob-archive-tier-delete
27624
27625 With this flag set then before rclone attempts to overwrite an archive
27626 tier blob, it will delete the existing blob before uploading its re‐
27627 placement. This has the potential for data loss if the upload fails
27628 (unlike updating a normal blob) and also may cost more since deleting
27629 archive tier blobs early may be chargable.
27630
27631 • Config: archive_tier_delete
27632
27633 • Env Var: RCLONE_AZUREBLOB_ARCHIVE_TIER_DELETE
27634
27635 • Type: bool
27636
27637 • Default: false
27638
27639 --azureblob-disable-checksum
27640 Don't store MD5 checksum with object metadata.
27641
27642 Normally rclone will calculate the MD5 checksum of the input before up‐
27643 loading it so it can add it to metadata on the object. This is great
27644 for data integrity checking but can cause long delays for large files
27645 to start uploading.
27646
27647 • Config: disable_checksum
27648
27649 • Env Var: RCLONE_AZUREBLOB_DISABLE_CHECKSUM
27650
27651 • Type: bool
27652
27653 • Default: false
27654
27655 --azureblob-memory-pool-flush-time
27656 How often internal memory buffer pools will be flushed.
27657
27658 Uploads which requires additional buffers (f.e multipart) will use mem‐
27659 ory pool for allocations. This option controls how often unused buf‐
27660 fers will be removed from the pool.
27661
27662 • Config: memory_pool_flush_time
27663
27664 • Env Var: RCLONE_AZUREBLOB_MEMORY_POOL_FLUSH_TIME
27665
27666 • Type: Duration
27667
27668 • Default: 1m0s
27669
27670 --azureblob-memory-pool-use-mmap
27671 Whether to use mmap buffers in internal memory pool.
27672
27673 • Config: memory_pool_use_mmap
27674
27675 • Env Var: RCLONE_AZUREBLOB_MEMORY_POOL_USE_MMAP
27676
27677 • Type: bool
27678
27679 • Default: false
27680
27681 --azureblob-encoding
27682 This sets the encoding for the backend.
27683
27684 See the encoding section in the overview (https://rclone.org/over‐
27685 view/#encoding) for more info.
27686
27687 • Config: encoding
27688
27689 • Env Var: RCLONE_AZUREBLOB_ENCODING
27690
27691 • Type: MultiEncoder
27692
27693 • Default: Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8
27694
27695 --azureblob-public-access
27696 Public access level of a container: blob or container.
27697
27698 • Config: public_access
27699
27700 • Env Var: RCLONE_AZUREBLOB_PUBLIC_ACCESS
27701
27702 • Type: string
27703
27704 • Default: ""
27705
27706 • Examples:
27707
27708 • ""
27709
27710 • The container and its blobs can be accessed only with an autho‐
27711 rized request.
27712
27713 • It's a default value.
27714
27715 • "blob"
27716
27717 • Blob data within this container can be read via anonymous re‐
27718 quest.
27719
27720 • "container"
27721
27722 • Allow full public read access for container and blob data.
27723
27724 --azureblob-no-head-object
27725 If set, do not do HEAD before GET when getting objects.
27726
27727 • Config: no_head_object
27728
27729 • Env Var: RCLONE_AZUREBLOB_NO_HEAD_OBJECT
27730
27731 • Type: bool
27732
27733 • Default: false
27734
27735 Limitations
27736 MD5 sums are only uploaded with chunked files if the source has an MD5
27737 sum. This will always be the case for a local to azure copy.
27738
27739 rclone about is not supported by the Microsoft Azure Blob storage back‐
27740 end. Backends without this capability cannot determine free space for
27741 an rclone mount or use policy mfs (most free space) as a member of an
27742 rclone union remote.
27743
27744 See List of backends that do not support rclone about
27745 (https://rclone.org/overview/#optional-features) See rclone about
27746 (https://rclone.org/commands/rclone_about/)
27747
27748 Azure Storage Emulator Support
27749 You can test rclone with storage emulator locally, to do this make sure
27750 azure storage emulator installed locally and set up a new remote with
27751 rclone config follow instructions described in introduction, set
27752 use_emulator config as true, you do not need to provide default account
27753 name or key if using emulator.
27754
27756 Paths are specified as remote:path
27757
27758 Paths may be as deep as required, e.g. remote:directory/subdirectory.
27759
27760 Configuration
27761 The initial setup for OneDrive involves getting a token from Microsoft
27762 which you need to do in your browser. rclone config walks you through
27763 it.
27764
27765 Here is an example of how to make a remote called remote. First run:
27766
27767 rclone config
27768
27769 This will guide you through an interactive setup process:
27770
27771 e) Edit existing remote
27772 n) New remote
27773 d) Delete remote
27774 r) Rename remote
27775 c) Copy remote
27776 s) Set configuration password
27777 q) Quit config
27778 e/n/d/r/c/s/q> n
27779 name> remote
27780 Type of storage to configure.
27781 Enter a string value. Press Enter for the default ("").
27782 Choose a number from below, or type in your own value
27783 [snip]
27784 XX / Microsoft OneDrive
27785 \ "onedrive"
27786 [snip]
27787 Storage> onedrive
27788 Microsoft App Client Id
27789 Leave blank normally.
27790 Enter a string value. Press Enter for the default ("").
27791 client_id>
27792 Microsoft App Client Secret
27793 Leave blank normally.
27794 Enter a string value. Press Enter for the default ("").
27795 client_secret>
27796 Edit advanced config? (y/n)
27797 y) Yes
27798 n) No
27799 y/n> n
27800 Remote config
27801 Use auto config?
27802 * Say Y if not sure
27803 * Say N if you are working on a remote or headless machine
27804 y) Yes
27805 n) No
27806 y/n> y
27807 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
27808 Log in and authorize rclone for access
27809 Waiting for code...
27810 Got code
27811 Choose a number from below, or type in an existing value
27812 1 / OneDrive Personal or Business
27813 \ "onedrive"
27814 2 / Sharepoint site
27815 \ "sharepoint"
27816 3 / Type in driveID
27817 \ "driveid"
27818 4 / Type in SiteID
27819 \ "siteid"
27820 5 / Search a Sharepoint site
27821 \ "search"
27822 Your choice> 1
27823 Found 1 drives, please select the one you want to use:
27824 0: OneDrive (business) id=b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
27825 Chose drive to use:> 0
27826 Found drive 'root' of type 'business', URL: https://org-my.sharepoint.com/personal/you/Documents
27827 Is that okay?
27828 y) Yes
27829 n) No
27830 y/n> y
27831 --------------------
27832 [remote]
27833 type = onedrive
27834 token = {"access_token":"youraccesstoken","token_type":"Bearer","refresh_token":"yourrefreshtoken","expiry":"2018-08-26T22:39:52.486512262+08:00"}
27835 drive_id = b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
27836 drive_type = business
27837 --------------------
27838 y) Yes this is OK
27839 e) Edit this remote
27840 d) Delete this remote
27841 y/e/d> y
27842
27843 See the remote setup docs (https://rclone.org/remote_setup/) for how to
27844 set it up on a machine with no Internet browser available.
27845
27846 Note that rclone runs a webserver on your local machine to collect the
27847 token as returned from Microsoft. This only runs from the moment it
27848 opens your browser to the moment you get back the verification code.
27849 This is on http://127.0.0.1:53682/ and this it may require you to un‐
27850 block it temporarily if you are running a host firewall.
27851
27852 Once configured you can then use rclone like this,
27853
27854 List directories in top level of your OneDrive
27855
27856 rclone lsd remote:
27857
27858 List all the files in your OneDrive
27859
27860 rclone ls remote:
27861
27862 To copy a local directory to an OneDrive directory called backup
27863
27864 rclone copy /home/source remote:backup
27865
27866 Getting your own Client ID and Key
27867 You can use your own Client ID if the default (client_id left blank)
27868 one doesn't work for you or you see lots of throttling. The default
27869 Client ID and Key is shared by all rclone users when performing re‐
27870 quests.
27871
27872 If you are having problems with them (E.g., seeing a lot of throt‐
27873 tling), you can get your own Client ID and Key by following the steps
27874 below:
27875
27876 1. Open https://portal.azure.com/#blade/Microsoft_AAD_Regis‐
27877 teredApps/ApplicationsListBlade and then click New registration.
27878
27879 2. Enter a name for your app, choose account type Accounts in any orga‐
27880 nizational directory (Any Azure AD directory - Multitenant) and per‐
27881 sonal Microsoft accounts (e.g. Skype, Xbox), select Web in Redirect
27882 URI, then type (do not copy and paste) http://localhost:53682/ and
27883 click Register. Copy and keep the Application (client) ID under the
27884 app name for later use.
27885
27886 3. Under manage select Certificates & secrets, click New client secret.
27887 Enter a description (can be anything) and set Expires to 24 months.
27888 Copy and keep that secret Value for later use (you won't be able to
27889 see this value afterwards).
27890
27891 4. Under manage select API permissions, click Add a permission and se‐
27892 lect Microsoft Graph then select delegated permissions.
27893
27894 5. Search and select the following permissions: Files.Read, Files.Read‐
27895 Write, Files.Read.All, Files.ReadWrite.All, offline_access, Us‐
27896 er.Read. Once selected click Add permissions at the bottom.
27897
27898 Now the application is complete. Run rclone config to create or edit a
27899 OneDrive remote. Supply the app ID and password as Client ID and Se‐
27900 cret, respectively. rclone will walk you through the remaining steps.
27901
27902 Modification time and hashes
27903 OneDrive allows modification times to be set on objects accurate to 1
27904 second. These will be used to detect whether objects need syncing or
27905 not.
27906
27907 OneDrive personal supports SHA1 type hashes. OneDrive for business and
27908 Sharepoint Server support QuickXorHash (https://docs.microsoft.com/en-
27909 us/onedrive/developer/code-snippets/quickxorhash).
27910
27911 For all types of OneDrive you can use the --checksum flag.
27912
27913 Restricted filename characters
27914 In addition to the default restricted characters set
27915 (https://rclone.org/overview/#restricted-characters) the following
27916 characters are also replaced:
27917
27918 Character Value Replacement
27919 ────────────────────────────────
27920 " 0x22 "
27921 * 0x2A *
27922 : 0x3A :
27923 < 0x3C <
27924 > 0x3E >
27925 ? 0x3F ?
27926 \ 0x5C \
27927 | 0x7C |
27928
27929 File names can also not end with the following characters. These only
27930 get replaced if they are the last character in the name:
27931
27932 Character Value Replacement
27933 ────────────────────────────────
27934 SP 0x20 ␠
27935 . 0x2E .
27936
27937 File names can also not begin with the following characters. These on‐
27938 ly get replaced if they are the first character in the name:
27939
27940 Character Value Replacement
27941 ────────────────────────────────
27942 SP 0x20 ␠
27943 ~ 0x7E ~
27944
27945 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
27946 view/#invalid-utf8), as they can't be used in JSON strings.
27947
27948 Deleting files
27949 Any files you delete with rclone will end up in the trash. Microsoft
27950 doesn't provide an API to permanently delete files, nor to empty the
27951 trash, so you will have to do that with one of Microsoft's apps or via
27952 the OneDrive website.
27953
27954 Standard options
27955 Here are the standard options specific to onedrive (Microsoft
27956 OneDrive).
27957
27958 --onedrive-client-id
27959 OAuth Client Id.
27960
27961 Leave blank normally.
27962
27963 • Config: client_id
27964
27965 • Env Var: RCLONE_ONEDRIVE_CLIENT_ID
27966
27967 • Type: string
27968
27969 • Default: ""
27970
27971 --onedrive-client-secret
27972 OAuth Client Secret.
27973
27974 Leave blank normally.
27975
27976 • Config: client_secret
27977
27978 • Env Var: RCLONE_ONEDRIVE_CLIENT_SECRET
27979
27980 • Type: string
27981
27982 • Default: ""
27983
27984 --onedrive-region
27985 Choose national cloud region for OneDrive.
27986
27987 • Config: region
27988
27989 • Env Var: RCLONE_ONEDRIVE_REGION
27990
27991 • Type: string
27992
27993 • Default: "global"
27994
27995 • Examples:
27996
27997 • "global"
27998
27999 • Microsoft Cloud Global
28000
28001 • "us"
28002
28003 • Microsoft Cloud for US Government
28004
28005 • "de"
28006
28007 • Microsoft Cloud Germany
28008
28009 • "cn"
28010
28011 • Azure and Office 365 operated by 21Vianet in China
28012
28013 Advanced options
28014 Here are the advanced options specific to onedrive (Microsoft
28015 OneDrive).
28016
28017 --onedrive-token
28018 OAuth Access Token as a JSON blob.
28019
28020 • Config: token
28021
28022 • Env Var: RCLONE_ONEDRIVE_TOKEN
28023
28024 • Type: string
28025
28026 • Default: ""
28027
28028 --onedrive-auth-url
28029 Auth server URL.
28030
28031 Leave blank to use the provider defaults.
28032
28033 • Config: auth_url
28034
28035 • Env Var: RCLONE_ONEDRIVE_AUTH_URL
28036
28037 • Type: string
28038
28039 • Default: ""
28040
28041 --onedrive-token-url
28042 Token server url.
28043
28044 Leave blank to use the provider defaults.
28045
28046 • Config: token_url
28047
28048 • Env Var: RCLONE_ONEDRIVE_TOKEN_URL
28049
28050 • Type: string
28051
28052 • Default: ""
28053
28054 --onedrive-chunk-size
28055 Chunk size to upload files with - must be multiple of 320k (327,680
28056 bytes).
28057
28058 Above this size files will be chunked - must be multiple of 320k
28059 (327,680 bytes) and should not exceed 250M (262,144,000 bytes) else you
28060 may encounter "Microsoft.SharePoint.Client.InvalidClientQueryException:
28061 The request message is too big." Note that the chunks will be buffered
28062 into memory.
28063
28064 • Config: chunk_size
28065
28066 • Env Var: RCLONE_ONEDRIVE_CHUNK_SIZE
28067
28068 • Type: SizeSuffix
28069
28070 • Default: 10Mi
28071
28072 --onedrive-drive-id
28073 The ID of the drive to use.
28074
28075 • Config: drive_id
28076
28077 • Env Var: RCLONE_ONEDRIVE_DRIVE_ID
28078
28079 • Type: string
28080
28081 • Default: ""
28082
28083 --onedrive-drive-type
28084 The type of the drive (personal | business | documentLibrary).
28085
28086 • Config: drive_type
28087
28088 • Env Var: RCLONE_ONEDRIVE_DRIVE_TYPE
28089
28090 • Type: string
28091
28092 • Default: ""
28093
28094 --onedrive-expose-onenote-files
28095 Set to make OneNote files show up in directory listings.
28096
28097 By default rclone will hide OneNote files in directory listings because
28098 operations like "Open" and "Update" won't work on them. But this be‐
28099 haviour may also prevent you from deleting them. If you want to delete
28100 OneNote files or otherwise want them to show up in directory listing,
28101 set this option.
28102
28103 • Config: expose_onenote_files
28104
28105 • Env Var: RCLONE_ONEDRIVE_EXPOSE_ONENOTE_FILES
28106
28107 • Type: bool
28108
28109 • Default: false
28110
28111 --onedrive-server-side-across-configs
28112 Allow server-side operations (e.g. copy) to work across different
28113 onedrive configs.
28114
28115 This will only work if you are copying between two OneDrive Personal
28116 drives AND the files to copy are already shared between them. In other
28117 cases, rclone will fall back to normal copy (which will be slightly
28118 slower).
28119
28120 • Config: server_side_across_configs
28121
28122 • Env Var: RCLONE_ONEDRIVE_SERVER_SIDE_ACROSS_CONFIGS
28123
28124 • Type: bool
28125
28126 • Default: false
28127
28128 --onedrive-list-chunk
28129 Size of listing chunk.
28130
28131 • Config: list_chunk
28132
28133 • Env Var: RCLONE_ONEDRIVE_LIST_CHUNK
28134
28135 • Type: int
28136
28137 • Default: 1000
28138
28139 --onedrive-no-versions
28140 Remove all versions on modifying operations.
28141
28142 Onedrive for business creates versions when rclone uploads new files
28143 overwriting an existing one and when it sets the modification time.
28144
28145 These versions take up space out of the quota.
28146
28147 This flag checks for versions after file upload and setting modifica‐
28148 tion time and removes all but the last version.
28149
28150 NB Onedrive personal can't currently delete versions so don't use this
28151 flag there.
28152
28153 • Config: no_versions
28154
28155 • Env Var: RCLONE_ONEDRIVE_NO_VERSIONS
28156
28157 • Type: bool
28158
28159 • Default: false
28160
28161 --onedrive-link-scope
28162 Set the scope of the links created by the link command.
28163
28164 • Config: link_scope
28165
28166 • Env Var: RCLONE_ONEDRIVE_LINK_SCOPE
28167
28168 • Type: string
28169
28170 • Default: "anonymous"
28171
28172 • Examples:
28173
28174 • "anonymous"
28175
28176 • Anyone with the link has access, without needing to sign in.
28177
28178 • This may include people outside of your organization.
28179
28180 • Anonymous link support may be disabled by an administrator.
28181
28182 • "organization"
28183
28184 • Anyone signed into your organization (tenant) can use the link to
28185 get access.
28186
28187 • Only available in OneDrive for Business and SharePoint.
28188
28189 --onedrive-link-type
28190 Set the type of the links created by the link command.
28191
28192 • Config: link_type
28193
28194 • Env Var: RCLONE_ONEDRIVE_LINK_TYPE
28195
28196 • Type: string
28197
28198 • Default: "view"
28199
28200 • Examples:
28201
28202 • "view"
28203
28204 • Creates a read-only link to the item.
28205
28206 • "edit"
28207
28208 • Creates a read-write link to the item.
28209
28210 • "embed"
28211
28212 • Creates an embeddable link to the item.
28213
28214 --onedrive-link-password
28215 Set the password for links created by the link command.
28216
28217 At the time of writing this only works with OneDrive personal paid ac‐
28218 counts.
28219
28220 • Config: link_password
28221
28222 • Env Var: RCLONE_ONEDRIVE_LINK_PASSWORD
28223
28224 • Type: string
28225
28226 • Default: ""
28227
28228 --onedrive-encoding
28229 This sets the encoding for the backend.
28230
28231 See the encoding section in the overview (https://rclone.org/over‐
28232 view/#encoding) for more info.
28233
28234 • Config: encoding
28235
28236 • Env Var: RCLONE_ONEDRIVE_ENCODING
28237
28238 • Type: MultiEncoder
28239
28240 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
28241 Slash,Del,Ctl,LeftSpace,LeftTilde,RightSpace,RightPeriod,In‐
28242 validUtf8,Dot
28243
28244 Limitations
28245 If you don't use rclone for 90 days the refresh token will expire.
28246 This will result in authorization problems. This is easy to fix by
28247 running the rclone config reconnect remote: command to get a new token
28248 and refresh token.
28249
28250 Naming
28251 Note that OneDrive is case insensitive so you can't have a file called
28252 "Hello.doc" and one called "hello.doc".
28253
28254 There are quite a few characters that can't be in OneDrive file names.
28255 These can't occur on Windows platforms, but on non-Windows platforms
28256 they are common. Rclone will map these names to and from an identical
28257 looking unicode equivalent. For example if a file has a ? in it will
28258 be mapped to ? instead.
28259
28260 File sizes
28261 The largest allowed file size is 250 GiB for both OneDrive Personal and
28262 OneDrive for Business (Updated 13 Jan 2021) (https://support.micro‐
28263 soft.com/en-us/office/invalid-file-names-and-file-types-in-onedrive-
28264 and-sharepoint-64883a5d-228e-48f5-b3d2-eb39e07630fa?ui=en-us&rs=en-
28265 us&ad=us#individualfilesize).
28266
28267 Path length
28268 The entire path, including the file name, must contain fewer than 400
28269 characters for OneDrive, OneDrive for Business and SharePoint Online.
28270 If you are encrypting file and folder names with rclone, you may want
28271 to pay attention to this limitation because the encrypted names are
28272 typically longer than the original ones.
28273
28274 Number of files
28275 OneDrive seems to be OK with at least 50,000 files in a folder, but at
28276 100,000 rclone will get errors listing the directory like couldn’t list
28277 files: UnknownError:. See #2707 (https://github.com/rclone/rclone/is‐
28278 sues/2707) for more info.
28279
28280 An official document about the limitations for different types of
28281 OneDrive can be found here (https://support.office.com/en-us/arti‐
28282 cle/invalid-file-names-and-file-types-in-onedrive-onedrive-for-busi‐
28283 ness-and-sharepoint-64883a5d-228e-48f5-b3d2-eb39e07630fa).
28284
28285 Versions
28286 Every change in a file OneDrive causes the service to create a new ver‐
28287 sion of the the file. This counts against a users quota. For example
28288 changing the modification time of a file creates a second version, so
28289 the file apparently uses twice the space.
28290
28291 For example the copy command is affected by this as rclone copies the
28292 file and then afterwards sets the modification time to match the source
28293 file which uses another version.
28294
28295 You can use the rclone cleanup command (see below) to remove all old
28296 versions.
28297
28298 Or you can set the no_versions parameter to true and rclone will remove
28299 versions after operations which create new versions. This takes extra
28300 transactions so only enable it if you need it.
28301
28302 Note At the time of writing Onedrive Personal creates versions (but not
28303 for setting the modification time) but the API for removing them re‐
28304 turns "API not found" so cleanup and no_versions should not be used on
28305 Onedrive Personal.
28306
28307 Disabling versioning
28308 Starting October 2018, users will no longer be able to disable version‐
28309 ing by default. This is because Microsoft has brought an update
28310 (https://techcommunity.microsoft.com/t5/Microsoft-OneDrive-Blog/New-Up‐
28311 dates-to-OneDrive-and-SharePoint-Team-Site-Versioning/ba-p/204390) to
28312 the mechanism. To change this new default setting, a PowerShell com‐
28313 mand is required to be run by a SharePoint admin. If you are an admin,
28314 you can run these commands in PowerShell to change that setting:
28315
28316 1. Install-Module -Name Microsoft.Online.SharePoint.PowerShell (in case
28317 you haven't installed this already)
28318
28319 2. Import-Module Microsoft.Online.SharePoint.PowerShell -Disable‐
28320 NameChecking
28321
28322 3. Connect-SPOService -Url https://YOURSITE-admin.sharepoint.com -Cre‐
28323 dential YOU@YOURSITE.COM (replacing YOURSITE, YOU, YOURSITE.COM with
28324 the actual values; this will prompt for your credentials)
28325
28326 4. Set-SPOTenant -EnableMinimumVersionRequirement $False
28327
28328 5. Disconnect-SPOService (to disconnect from the server)
28329
28330 Below are the steps for normal users to disable versioning. If you
28331 don't see the "No Versioning" option, make sure the above requirements
28332 are met.
28333
28334 User Weropol (https://github.com/Weropol) has found a method to disable
28335 versioning on OneDrive
28336
28337 1. Open the settings menu by clicking on the gear symbol at the top of
28338 the OneDrive Business page.
28339
28340 2. Click Site settings.
28341
28342 3. Once on the Site settings page, navigate to Site Administration >
28343 Site libraries and lists.
28344
28345 4. Click Customize "Documents".
28346
28347 5. Click General Settings > Versioning Settings.
28348
28349 6. Under Document Version History select the option No versioning.
28350 Note: This will disable the creation of new file versions, but will
28351 not remove any previous versions. Your documents are safe.
28352
28353 7. Apply the changes by clicking OK.
28354
28355 8. Use rclone to upload or modify files. (I also use the --no-up‐
28356 date-modtime flag)
28357
28358 9. Restore the versioning settings after using rclone. (Optional)
28359
28360 Cleanup
28361 OneDrive supports rclone cleanup which causes rclone to look through
28362 every file under the path supplied and delete all version but the cur‐
28363 rent version. Because this involves traversing all the files, then
28364 querying each file for versions it can be quite slow. Rclone does
28365 --checkers tests in parallel. The command also supports -i which is a
28366 great way to see what it would do.
28367
28368 rclone cleanup -i remote:path/subdir # interactively remove all old version for path/subdir
28369 rclone cleanup remote:path/subdir # unconditionally remove all old version for path/subdir
28370
28371 NB Onedrive personal can't currently delete versions
28372
28373 Troubleshooting
28374 Excessive throttling or blocked on SharePoint
28375 If you experience excessive throttling or is being blocked on Share‐
28376 Point then it may help to set the user agent explicitly with a flag
28377 like this: --user-agent "ISV|rclone.org|rclone/v1.55.1"
28378
28379 The specific details can be found in the Microsoft document: Avoid get‐
28380 ting throttled or blocked in SharePoint Online (https://docs.micro‐
28381 soft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-
28382 throttled-or-blocked-in-sharepoint-online#how-to-decorate-your-http-
28383 traffic-to-avoid-throttling)
28384
28385 Unexpected file size/hash differences on Sharepoint
28386 It is a known (https://github.com/OneDrive/onedrive-api-docs/is‐
28387 sues/935#issuecomment-441741631) issue that Sharepoint (not OneDrive or
28388 OneDrive for Business) silently modifies uploaded files, mainly Office
28389 files (.docx, .xlsx, etc.), causing file size and hash checks to fail.
28390 There are also other situations that will cause OneDrive to report in‐
28391 consistent file sizes. To use rclone with such affected files on
28392 Sharepoint, you may disable these checks with the following command
28393 line arguments:
28394
28395 --ignore-checksum --ignore-size
28396
28397 Alternatively, if you have write access to the OneDrive files, it may
28398 be possible to fix this problem for certain files, by attempting the
28399 steps below. Open the web interface for OneDrive
28400 (https://onedrive.live.com) and find the affected files (which will be
28401 in the error messages/log for rclone). Simply click on each of these
28402 files, causing OneDrive to open them on the web. This will cause each
28403 file to be converted in place to a format that is functionally equiva‐
28404 lent but which will no longer trigger the size discrepancy. Once all
28405 problematic files are converted you will no longer need the ignore op‐
28406 tions above.
28407
28408 Replacing/deleting existing files on Sharepoint gets "item not found"
28409 It is a known (https://github.com/OneDrive/onedrive-api-docs/is‐
28410 sues/1068) issue that Sharepoint (not OneDrive or OneDrive for Busi‐
28411 ness) may return "item not found" errors when users try to replace or
28412 delete uploaded files; this seems to mainly affect Office files (.docx,
28413 .xlsx, etc.). As a workaround, you may use the --backup-dir <BACK‐
28414 UP_DIR> command line argument so rclone moves the files to be re‐
28415 placed/deleted into a given backup directory (instead of directly re‐
28416 placing/deleting them). For example, to instruct rclone to move the
28417 files into the directory rclone-backup-dir on backend mysharepoint, you
28418 may use:
28419
28420 --backup-dir mysharepoint:rclone-backup-dir
28421
28422 access_denied (AADSTS65005)
28423 Error: access_denied
28424 Code: AADSTS65005
28425 Description: Using application 'rclone' is currently not supported for your organization [YOUR_ORGANIZATION] because it is in an unmanaged state. An administrator needs to claim ownership of the company by DNS validation of [YOUR_ORGANIZATION] before the application rclone can be provisioned.
28426
28427 This means that rclone can't use the OneDrive for Business API with
28428 your account. You can't do much about it, maybe write an email to your
28429 admins.
28430
28431 However, there are other ways to interact with your OneDrive account.
28432 Have a look at the webdav backend: https://rclone.org/webdav/#share‐
28433 point
28434
28435 invalid_grant (AADSTS50076)
28436 Error: invalid_grant
28437 Code: AADSTS50076
28438 Description: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access '...'.
28439
28440 If you see the error above after enabling multi-factor authentication
28441 for your account, you can fix it by refreshing your OAuth refresh to‐
28442 ken. To do that, run rclone config, and choose to edit your OneDrive
28443 backend. Then, you don't need to actually make any changes until you
28444 reach this question: Already have a token - refresh?. For this ques‐
28445 tion, answer y and go through the process to refresh your token, just
28446 like the first time the backend is configured. After this, rclone
28447 should work again for this backend.
28448
28449 Invalid request when making public links
28450 On Sharepoint and OneDrive for Business, rclone link may return an "In‐
28451 valid request" error. A possible cause is that the organisation admin
28452 didn't allow public links to be made for the organisation/sharepoint
28453 library. To fix the permissions as an admin, take a look at the docs:
28454 1 (https://docs.microsoft.com/en-us/sharepoint/turn-external-sharing-
28455 on-or-off), 2 (https://support.microsoft.com/en-us/office/set-up-and-
28456 manage-access-requests-94b26e0b-2822-49d4-929a-8455698654b3).
28457
28459 Paths are specified as remote:path
28460
28461 Paths may be as deep as required, e.g. remote:directory/subdirectory.
28462
28463 Configuration
28464 Here is an example of how to make a remote called remote. First run:
28465
28466 rclone config
28467
28468 This will guide you through an interactive setup process:
28469
28470 n) New remote
28471 d) Delete remote
28472 q) Quit config
28473 e/n/d/q> n
28474 name> remote
28475 Type of storage to configure.
28476 Choose a number from below, or type in your own value
28477 [snip]
28478 XX / OpenDrive
28479 \ "opendrive"
28480 [snip]
28481 Storage> opendrive
28482 Username
28483 username>
28484 Password
28485 y) Yes type in my own password
28486 g) Generate random password
28487 y/g> y
28488 Enter the password:
28489 password:
28490 Confirm the password:
28491 password:
28492 --------------------
28493 [remote]
28494 username =
28495 password = *** ENCRYPTED ***
28496 --------------------
28497 y) Yes this is OK
28498 e) Edit this remote
28499 d) Delete this remote
28500 y/e/d> y
28501
28502 List directories in top level of your OpenDrive
28503
28504 rclone lsd remote:
28505
28506 List all the files in your OpenDrive
28507
28508 rclone ls remote:
28509
28510 To copy a local directory to an OpenDrive directory called backup
28511
28512 rclone copy /home/source remote:backup
28513
28514 Modified time and MD5SUMs
28515 OpenDrive allows modification times to be set on objects accurate to 1
28516 second. These will be used to detect whether objects need syncing or
28517 not.
28518
28519 Restricted filename characters
28520 Character Value Replacement
28521 ────────────────────────────────
28522 NUL 0x00 ␀
28523 / 0x2F /
28524 " 0x22 "
28525 * 0x2A *
28526 : 0x3A :
28527 < 0x3C <
28528 > 0x3E >
28529 ? 0x3F ?
28530 \ 0x5C \
28531 | 0x7C |
28532
28533 File names can also not begin or end with the following characters.
28534 These only get replaced if they are the first or last character in the
28535 name:
28536
28537 Character Value Replacement
28538 ────────────────────────────────
28539 SP 0x20 ␠
28540 HT 0x09 ␉
28541 LF 0x0A ␊
28542 VT 0x0B ␋
28543 CR 0x0D ␍
28544
28545 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
28546 view/#invalid-utf8), as they can't be used in JSON strings.
28547
28548 Standard options
28549 Here are the standard options specific to opendrive (OpenDrive).
28550
28551 --opendrive-username
28552 Username.
28553
28554 • Config: username
28555
28556 • Env Var: RCLONE_OPENDRIVE_USERNAME
28557
28558 • Type: string
28559
28560 • Default: ""
28561
28562 --opendrive-password
28563 Password.
28564
28565 NB Input to this must be obscured - see rclone obscure
28566 (https://rclone.org/commands/rclone_obscure/).
28567
28568 • Config: password
28569
28570 • Env Var: RCLONE_OPENDRIVE_PASSWORD
28571
28572 • Type: string
28573
28574 • Default: ""
28575
28576 Advanced options
28577 Here are the advanced options specific to opendrive (OpenDrive).
28578
28579 --opendrive-encoding
28580 This sets the encoding for the backend.
28581
28582 See the encoding section in the overview (https://rclone.org/over‐
28583 view/#encoding) for more info.
28584
28585 • Config: encoding
28586
28587 • Env Var: RCLONE_OPENDRIVE_ENCODING
28588
28589 • Type: MultiEncoder
28590
28591 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
28592 Slash,LeftSpace,LeftCrLfHtVt,RightSpace,RightCrLfHtVt,InvalidUtf8,Dot
28593
28594 --opendrive-chunk-size
28595 Files will be uploaded in chunks this size.
28596
28597 Note that these chunks are buffered in memory so increasing them will
28598 increase memory use.
28599
28600 • Config: chunk_size
28601
28602 • Env Var: RCLONE_OPENDRIVE_CHUNK_SIZE
28603
28604 • Type: SizeSuffix
28605
28606 • Default: 10Mi
28607
28608 Limitations
28609 Note that OpenDrive is case insensitive so you can't have a file called
28610 "Hello.doc" and one called "hello.doc".
28611
28612 There are quite a few characters that can't be in OpenDrive file names.
28613 These can't occur on Windows platforms, but on non-Windows platforms
28614 they are common. Rclone will map these names to and from an identical
28615 looking unicode equivalent. For example if a file has a ? in it will
28616 be mapped to ? instead.
28617
28618 rclone about is not supported by the OpenDrive backend. Backends with‐
28619 out this capability cannot determine free space for an rclone mount or
28620 use policy mfs (most free space) as a member of an rclone union remote.
28621
28622 See List of backends that do not support rclone about
28623 (https://rclone.org/overview/#optional-features) See rclone about
28624 (https://rclone.org/commands/rclone_about/)
28625
28627 Paths are specified as remote:bucket (or remote: for the lsd command.)
28628 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
28629
28630 Configuration
28631 Here is an example of making an QingStor configuration. First run
28632
28633 rclone config
28634
28635 This will guide you through an interactive setup process.
28636
28637 No remotes found - make a new one
28638 n) New remote
28639 r) Rename remote
28640 c) Copy remote
28641 s) Set configuration password
28642 q) Quit config
28643 n/r/c/s/q> n
28644 name> remote
28645 Type of storage to configure.
28646 Choose a number from below, or type in your own value
28647 [snip]
28648 XX / QingStor Object Storage
28649 \ "qingstor"
28650 [snip]
28651 Storage> qingstor
28652 Get QingStor credentials from runtime. Only applies if access_key_id and secret_access_key is blank.
28653 Choose a number from below, or type in your own value
28654 1 / Enter QingStor credentials in the next step
28655 \ "false"
28656 2 / Get QingStor credentials from the environment (env vars or IAM)
28657 \ "true"
28658 env_auth> 1
28659 QingStor Access Key ID - leave blank for anonymous access or runtime credentials.
28660 access_key_id> access_key
28661 QingStor Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
28662 secret_access_key> secret_key
28663 Enter an endpoint URL to connection QingStor API.
28664 Leave blank will use the default value "https://qingstor.com:443"
28665 endpoint>
28666 Zone connect to. Default is "pek3a".
28667 Choose a number from below, or type in your own value
28668 / The Beijing (China) Three Zone
28669 1 | Needs location constraint pek3a.
28670 \ "pek3a"
28671 / The Shanghai (China) First Zone
28672 2 | Needs location constraint sh1a.
28673 \ "sh1a"
28674 zone> 1
28675 Number of connection retry.
28676 Leave blank will use the default value "3".
28677 connection_retries>
28678 Remote config
28679 --------------------
28680 [remote]
28681 env_auth = false
28682 access_key_id = access_key
28683 secret_access_key = secret_key
28684 endpoint =
28685 zone = pek3a
28686 connection_retries =
28687 --------------------
28688 y) Yes this is OK
28689 e) Edit this remote
28690 d) Delete this remote
28691 y/e/d> y
28692
28693 This remote is called remote and can now be used like this
28694
28695 See all buckets
28696
28697 rclone lsd remote:
28698
28699 Make a new bucket
28700
28701 rclone mkdir remote:bucket
28702
28703 List the contents of a bucket
28704
28705 rclone ls remote:bucket
28706
28707 Sync /home/local/directory to the remote bucket, deleting any excess
28708 files in the bucket.
28709
28710 rclone sync -i /home/local/directory remote:bucket
28711
28712 --fast-list
28713 This remote supports --fast-list which allows you to use fewer transac‐
28714 tions in exchange for more memory. See the rclone docs
28715 (https://rclone.org/docs/#fast-list) for more details.
28716
28717 Multipart uploads
28718 rclone supports multipart uploads with QingStor which means that it can
28719 upload files bigger than 5 GiB. Note that files uploaded with multi‐
28720 part upload don't have an MD5SUM.
28721
28722 Note that incomplete multipart uploads older than 24 hours can be re‐
28723 moved with rclone cleanup remote:bucket just for one bucket rclone
28724 cleanup remote: for all buckets. QingStor does not ever remove incom‐
28725 plete multipart uploads so it may be necessary to run this from time to
28726 time.
28727
28728 Buckets and Zone
28729 With QingStor you can list buckets (rclone lsd) using any zone, but you
28730 can only access the content of a bucket from the zone it was created
28731 in. If you attempt to access a bucket from the wrong zone, you will
28732 get an error, incorrect zone, the bucket is not in 'XXX' zone.
28733
28734 Authentication
28735 There are two ways to supply rclone with a set of QingStor credentials.
28736 In order of precedence:
28737
28738 • Directly in the rclone configuration file (as configured by rclone
28739 config)
28740
28741 • set access_key_id and secret_access_key
28742
28743 • Runtime configuration:
28744
28745 • set env_auth to true in the config file
28746
28747 • Exporting the following environment variables before running rclone
28748
28749 • Access Key ID: QS_ACCESS_KEY_ID or QS_ACCESS_KEY
28750
28751 • Secret Access Key: QS_SECRET_ACCESS_KEY or QS_SECRET_KEY
28752
28753 Restricted filename characters
28754 The control characters 0x00-0x1F and / are replaced as in the default
28755 restricted characters set (https://rclone.org/overview/#restricted-
28756 characters). Note that 0x7F is not replaced.
28757
28758 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
28759 view/#invalid-utf8), as they can't be used in JSON strings.
28760
28761 Standard options
28762 Here are the standard options specific to qingstor (QingCloud Object
28763 Storage).
28764
28765 --qingstor-env-auth
28766 Get QingStor credentials from runtime.
28767
28768 Only applies if access_key_id and secret_access_key is blank.
28769
28770 • Config: env_auth
28771
28772 • Env Var: RCLONE_QINGSTOR_ENV_AUTH
28773
28774 • Type: bool
28775
28776 • Default: false
28777
28778 • Examples:
28779
28780 • "false"
28781
28782 • Enter QingStor credentials in the next step.
28783
28784 • "true"
28785
28786 • Get QingStor credentials from the environment (env vars or IAM).
28787
28788 --qingstor-access-key-id
28789 QingStor Access Key ID.
28790
28791 Leave blank for anonymous access or runtime credentials.
28792
28793 • Config: access_key_id
28794
28795 • Env Var: RCLONE_QINGSTOR_ACCESS_KEY_ID
28796
28797 • Type: string
28798
28799 • Default: ""
28800
28801 --qingstor-secret-access-key
28802 QingStor Secret Access Key (password).
28803
28804 Leave blank for anonymous access or runtime credentials.
28805
28806 • Config: secret_access_key
28807
28808 • Env Var: RCLONE_QINGSTOR_SECRET_ACCESS_KEY
28809
28810 • Type: string
28811
28812 • Default: ""
28813
28814 --qingstor-endpoint
28815 Enter an endpoint URL to connection QingStor API.
28816
28817 Leave blank will use the default value "https://qingstor.com:443".
28818
28819 • Config: endpoint
28820
28821 • Env Var: RCLONE_QINGSTOR_ENDPOINT
28822
28823 • Type: string
28824
28825 • Default: ""
28826
28827 --qingstor-zone
28828 Zone to connect to.
28829
28830 Default is "pek3a".
28831
28832 • Config: zone
28833
28834 • Env Var: RCLONE_QINGSTOR_ZONE
28835
28836 • Type: string
28837
28838 • Default: ""
28839
28840 • Examples:
28841
28842 • "pek3a"
28843
28844 • The Beijing (China) Three Zone.
28845
28846 • Needs location constraint pek3a.
28847
28848 • "sh1a"
28849
28850 • The Shanghai (China) First Zone.
28851
28852 • Needs location constraint sh1a.
28853
28854 • "gd2a"
28855
28856 • The Guangdong (China) Second Zone.
28857
28858 • Needs location constraint gd2a.
28859
28860 Advanced options
28861 Here are the advanced options specific to qingstor (QingCloud Object
28862 Storage).
28863
28864 --qingstor-connection-retries
28865 Number of connection retries.
28866
28867 • Config: connection_retries
28868
28869 • Env Var: RCLONE_QINGSTOR_CONNECTION_RETRIES
28870
28871 • Type: int
28872
28873 • Default: 3
28874
28875 --qingstor-upload-cutoff
28876 Cutoff for switching to chunked upload.
28877
28878 Any files larger than this will be uploaded in chunks of chunk_size.
28879 The minimum is 0 and the maximum is 5 GiB.
28880
28881 • Config: upload_cutoff
28882
28883 • Env Var: RCLONE_QINGSTOR_UPLOAD_CUTOFF
28884
28885 • Type: SizeSuffix
28886
28887 • Default: 200Mi
28888
28889 --qingstor-chunk-size
28890 Chunk size to use for uploading.
28891
28892 When uploading files larger than upload_cutoff they will be uploaded as
28893 multipart uploads using this chunk size.
28894
28895 Note that "--qingstor-upload-concurrency" chunks of this size are
28896 buffered in memory per transfer.
28897
28898 If you are transferring large files over high-speed links and you have
28899 enough memory, then increasing this will speed up the transfers.
28900
28901 • Config: chunk_size
28902
28903 • Env Var: RCLONE_QINGSTOR_CHUNK_SIZE
28904
28905 • Type: SizeSuffix
28906
28907 • Default: 4Mi
28908
28909 --qingstor-upload-concurrency
28910 Concurrency for multipart uploads.
28911
28912 This is the number of chunks of the same file that are uploaded concur‐
28913 rently.
28914
28915 NB if you set this to > 1 then the checksums of multipart uploads be‐
28916 come corrupted (the uploads themselves are not corrupted though).
28917
28918 If you are uploading small numbers of large files over high-speed links
28919 and these uploads do not fully utilize your bandwidth, then increasing
28920 this may help to speed up the transfers.
28921
28922 • Config: upload_concurrency
28923
28924 • Env Var: RCLONE_QINGSTOR_UPLOAD_CONCURRENCY
28925
28926 • Type: int
28927
28928 • Default: 1
28929
28930 --qingstor-encoding
28931 This sets the encoding for the backend.
28932
28933 See the encoding section in the overview (https://rclone.org/over‐
28934 view/#encoding) for more info.
28935
28936 • Config: encoding
28937
28938 • Env Var: RCLONE_QINGSTOR_ENCODING
28939
28940 • Type: MultiEncoder
28941
28942 • Default: Slash,Ctl,InvalidUtf8
28943
28944 Limitations
28945 rclone about is not supported by the qingstor backend. Backends with‐
28946 out this capability cannot determine free space for an rclone mount or
28947 use policy mfs (most free space) as a member of an rclone union remote.
28948
28949 See List of backends that do not support rclone about
28950 (https://rclone.org/overview/#optional-features) See rclone about
28951 (https://rclone.org/commands/rclone_about/)
28952
28954 Sia (sia.tech (https://sia.tech/)) is a decentralized cloud storage
28955 platform based on the blockchain (https://wikipedia.org/wi‐
28956 ki/Blockchain) technology. With rclone you can use it like any other
28957 remote filesystem or mount Sia folders locally. The technology behind
28958 it involves a number of new concepts such as Siacoins and Wallet,
28959 Blockchain and Consensus, Renting and Hosting, and so on. If you are
28960 new to it, you'd better first familiarize yourself using their excel‐
28961 lent support documentation (https://support.sia.tech/).
28962
28963 Introduction
28964 Before you can use rclone with Sia, you will need to have a running
28965 copy of Sia-UI or siad (the Sia daemon) locally on your computer or on
28966 local network (e.g. a NAS). Please follow the Get started
28967 (https://sia.tech/get-started) guide and install one.
28968
28969 rclone interacts with Sia network by talking to the Sia daemon via HTTP
28970 API (https://sia.tech/docs/) which is usually available on port 9980.
28971 By default you will run the daemon locally on the same computer so it's
28972 safe to leave the API password blank (the API URL will be
28973 http://127.0.0.1:9980 making external access impossible).
28974
28975 However, if you want to access Sia daemon running on another node, for
28976 example due to memory constraints or because you want to share single
28977 daemon between several rclone and Sia-UI instances, you'll need to make
28978 a few more provisions: - Ensure you have Sia daemon installed directly
28979 or in a docker container (https://github.com/SiaFounda‐
28980 tion/siad/pkgs/container/siad) because Sia-UI does not support this
28981 mode natively. - Run it on externally accessible port, for example
28982 provide --api-addr :9980 and --disable-api-security arguments on the
28983 daemon command line. - Enforce API password for the siad daemon via
28984 environment variable SIA_API_PASSWORD or text file named apipassword in
28985 the daemon directory. - Set rclone backend option api_password taking
28986 it from above locations.
28987
28988 Notes: 1. If your wallet is locked, rclone cannot unlock it automati‐
28989 cally. You should either unlock it in advance by using Sia-UI or via
28990 command line siac wallet unlock. Alternatively you can make siad un‐
28991 lock your wallet automatically upon startup by running it with environ‐
28992 ment variable SIA_WALLET_PASSWORD. 2. If siad cannot find the
28993 SIA_API_PASSWORD variable or the apipassword file in the SIA_DIR direc‐
28994 tory, it will generate a random password and store in the text file
28995 named apipassword under YOUR_HOME/.sia/ directory on Unix or
28996 C:\Users\YOUR_HOME\AppData\Local\Sia\apipassword on Windows. Remember
28997 this when you configure password in rclone. 3. The only way to use
28998 siad without API password is to run it on localhost with command line
28999 argument --authorize-api=false, but this is insecure and strongly dis‐
29000 couraged.
29001
29002 Configuration
29003 Here is an example of how to make a sia remote called mySia. First,
29004 run:
29005
29006 rclone config
29007
29008 This will guide you through an interactive setup process:
29009
29010 No remotes found - make a new one
29011 n) New remote
29012 s) Set configuration password
29013 q) Quit config
29014 n/s/q> n
29015 name> mySia
29016 Type of storage to configure.
29017 Enter a string value. Press Enter for the default ("").
29018 Choose a number from below, or type in your own value
29019 ...
29020 29 / Sia Decentralized Cloud
29021 \ "sia"
29022 ...
29023 Storage> sia
29024 Sia daemon API URL, like http://sia.daemon.host:9980.
29025 Note that siad must run with --disable-api-security to open API port for other hosts (not recommended).
29026 Keep default if Sia daemon runs on localhost.
29027 Enter a string value. Press Enter for the default ("http://127.0.0.1:9980").
29028 api_url> http://127.0.0.1:9980
29029 Sia Daemon API Password.
29030 Can be found in the apipassword file located in HOME/.sia/ or in the daemon directory.
29031 y) Yes type in my own password
29032 g) Generate random password
29033 n) No leave this optional password blank (default)
29034 y/g/n> y
29035 Enter the password:
29036 password:
29037 Confirm the password:
29038 password:
29039 Edit advanced config?
29040 y) Yes
29041 n) No (default)
29042 y/n> n
29043 --------------------
29044 [mySia]
29045 type = sia
29046 api_url = http://127.0.0.1:9980
29047 api_password = *** ENCRYPTED ***
29048 --------------------
29049 y) Yes this is OK (default)
29050 e) Edit this remote
29051 d) Delete this remote
29052 y/e/d> y
29053
29054 Once configured, you can then use rclone like this:
29055
29056 • List directories in top level of your Sia storage
29057
29058 rclone lsd mySia:
29059
29060 • List all the files in your Sia storage
29061
29062 rclone ls mySia:
29063
29064 • Upload a local directory to the Sia directory called backup
29065
29066 rclone copy /home/source mySia:backup
29067
29068 Standard options
29069 Here are the standard options specific to sia (Sia Decentralized
29070 Cloud).
29071
29072 --sia-api-url
29073 Sia daemon API URL, like http://sia.daemon.host:9980.
29074
29075 Note that siad must run with --disable-api-security to open API port
29076 for other hosts (not recommended). Keep default if Sia daemon runs on
29077 localhost.
29078
29079 • Config: api_url
29080
29081 • Env Var: RCLONE_SIA_API_URL
29082
29083 • Type: string
29084
29085 • Default: "http://127.0.0.1:9980"
29086
29087 --sia-api-password
29088 Sia Daemon API Password.
29089
29090 Can be found in the apipassword file located in HOME/.sia/ or in the
29091 daemon directory.
29092
29093 NB Input to this must be obscured - see rclone obscure
29094 (https://rclone.org/commands/rclone_obscure/).
29095
29096 • Config: api_password
29097
29098 • Env Var: RCLONE_SIA_API_PASSWORD
29099
29100 • Type: string
29101
29102 • Default: ""
29103
29104 Advanced options
29105 Here are the advanced options specific to sia (Sia Decentralized
29106 Cloud).
29107
29108 --sia-user-agent
29109 Siad User Agent
29110
29111 Sia daemon requires the 'Sia-Agent' user agent by default for security
29112
29113 • Config: user_agent
29114
29115 • Env Var: RCLONE_SIA_USER_AGENT
29116
29117 • Type: string
29118
29119 • Default: "Sia-Agent"
29120
29121 --sia-encoding
29122 This sets the encoding for the backend.
29123
29124 See the encoding section in the overview (https://rclone.org/over‐
29125 view/#encoding) for more info.
29126
29127 • Config: encoding
29128
29129 • Env Var: RCLONE_SIA_ENCODING
29130
29131 • Type: MultiEncoder
29132
29133 • Default: Slash,Question,Hash,Percent,Del,Ctl,InvalidUtf8,Dot
29134
29135 Limitations
29136 • Modification times not supported
29137
29138 • Checksums not supported
29139
29140 • rclone about not supported
29141
29142 • rclone can work only with Siad or Sia-UI at the moment, the SkyNet
29143 daemon is not supported yet.
29144
29145 • Sia does not allow control characters or symbols like question and
29146 pound signs in file names. rclone will transparently encode
29147 (https://rclone.org/overview/#encoding) them for you, but you'd bet‐
29148 ter be aware
29149
29151 Swift refers to OpenStack Object Storage (https://docs.open‐
29152 stack.org/swift/latest/). Commercial implementations of that being:
29153
29154 • Rackspace Cloud Files (https://www.rackspace.com/cloud/files/)
29155
29156 • Memset Memstore (https://www.memset.com/cloud/storage/)
29157
29158 • OVH Object Storage (https://www.ovh.co.uk/public-cloud/storage/ob‐
29159 ject-storage/)
29160
29161 • Oracle Cloud Storage (https://cloud.oracle.com/object-storage/buck‐
29162 ets)
29163
29164 • IBM Bluemix Cloud ObjectStorage Swift (https://con‐
29165 sole.bluemix.net/docs/infrastructure/objectstorage-swift/index.html)
29166
29167 Paths are specified as remote:container (or remote: for the lsd com‐
29168 mand.) You may put subdirectories in too, e.g. remote:contain‐
29169 er/path/to/dir.
29170
29171 Configuration
29172 Here is an example of making a swift configuration. First run
29173
29174 rclone config
29175
29176 This will guide you through an interactive setup process.
29177
29178 No remotes found - make a new one
29179 n) New remote
29180 s) Set configuration password
29181 q) Quit config
29182 n/s/q> n
29183 name> remote
29184 Type of storage to configure.
29185 Choose a number from below, or type in your own value
29186 [snip]
29187 XX / OpenStack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
29188 \ "swift"
29189 [snip]
29190 Storage> swift
29191 Get swift credentials from environment variables in standard OpenStack form.
29192 Choose a number from below, or type in your own value
29193 1 / Enter swift credentials in the next step
29194 \ "false"
29195 2 / Get swift credentials from environment vars. Leave other fields blank if using this.
29196 \ "true"
29197 env_auth> true
29198 User name to log in (OS_USERNAME).
29199 user>
29200 API key or password (OS_PASSWORD).
29201 key>
29202 Authentication URL for server (OS_AUTH_URL).
29203 Choose a number from below, or type in your own value
29204 1 / Rackspace US
29205 \ "https://auth.api.rackspacecloud.com/v1.0"
29206 2 / Rackspace UK
29207 \ "https://lon.auth.api.rackspacecloud.com/v1.0"
29208 3 / Rackspace v2
29209 \ "https://identity.api.rackspacecloud.com/v2.0"
29210 4 / Memset Memstore UK
29211 \ "https://auth.storage.memset.com/v1.0"
29212 5 / Memset Memstore UK v2
29213 \ "https://auth.storage.memset.com/v2.0"
29214 6 / OVH
29215 \ "https://auth.cloud.ovh.net/v3"
29216 auth>
29217 User ID to log in - optional - most swift systems use user and leave this blank (v3 auth) (OS_USER_ID).
29218 user_id>
29219 User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
29220 domain>
29221 Tenant name - optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME)
29222 tenant>
29223 Tenant ID - optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID)
29224 tenant_id>
29225 Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
29226 tenant_domain>
29227 Region name - optional (OS_REGION_NAME)
29228 region>
29229 Storage URL - optional (OS_STORAGE_URL)
29230 storage_url>
29231 Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
29232 auth_token>
29233 AuthVersion - optional - set to (1,2,3) if your auth URL has no version (ST_AUTH_VERSION)
29234 auth_version>
29235 Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE)
29236 Choose a number from below, or type in your own value
29237 1 / Public (default, choose this if not sure)
29238 \ "public"
29239 2 / Internal (use internal service net)
29240 \ "internal"
29241 3 / Admin
29242 \ "admin"
29243 endpoint_type>
29244 Remote config
29245 --------------------
29246 [test]
29247 env_auth = true
29248 user =
29249 key =
29250 auth =
29251 user_id =
29252 domain =
29253 tenant =
29254 tenant_id =
29255 tenant_domain =
29256 region =
29257 storage_url =
29258 auth_token =
29259 auth_version =
29260 endpoint_type =
29261 --------------------
29262 y) Yes this is OK
29263 e) Edit this remote
29264 d) Delete this remote
29265 y/e/d> y
29266
29267 This remote is called remote and can now be used like this
29268
29269 See all containers
29270
29271 rclone lsd remote:
29272
29273 Make a new container
29274
29275 rclone mkdir remote:container
29276
29277 List the contents of a container
29278
29279 rclone ls remote:container
29280
29281 Sync /home/local/directory to the remote container, deleting any excess
29282 files in the container.
29283
29284 rclone sync -i /home/local/directory remote:container
29285
29286 Configuration from an OpenStack credentials file
29287 An OpenStack credentials file typically looks something something like
29288 this (without the comments)
29289
29290 export OS_AUTH_URL=https://a.provider.net/v2.0
29291 export OS_TENANT_ID=ffffffffffffffffffffffffffffffff
29292 export OS_TENANT_NAME="1234567890123456"
29293 export OS_USERNAME="123abc567xy"
29294 echo "Please enter your OpenStack Password: "
29295 read -sr OS_PASSWORD_INPUT
29296 export OS_PASSWORD=$OS_PASSWORD_INPUT
29297 export OS_REGION_NAME="SBG1"
29298 if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
29299
29300 The config file needs to look something like this where $OS_USERNAME
29301 represents the value of the OS_USERNAME variable - 123abc567xy in the
29302 example above.
29303
29304 [remote]
29305 type = swift
29306 user = $OS_USERNAME
29307 key = $OS_PASSWORD
29308 auth = $OS_AUTH_URL
29309 tenant = $OS_TENANT_NAME
29310
29311 Note that you may (or may not) need to set region too - try without
29312 first.
29313
29314 Configuration from the environment
29315 If you prefer you can configure rclone to use swift using a standard
29316 set of OpenStack environment variables.
29317
29318 When you run through the config, make sure you choose true for env_auth
29319 and leave everything else blank.
29320
29321 rclone will then set any empty config parameters from the environment
29322 using standard OpenStack environment variables. There is a list of the
29323 variables (https://godoc.org/github.com/ncw/swift#Connection.ApplyEnvi‐
29324 ronment) in the docs for the swift library.
29325
29326 Using an alternate authentication method
29327 If your OpenStack installation uses a non-standard authentication meth‐
29328 od that might not be yet supported by rclone or the underlying swift
29329 library, you can authenticate externally (e.g. calling manually the
29330 openstack commands to get a token). Then, you just need to pass the
29331 two configuration variables auth_token and storage_url. If they are
29332 both provided, the other variables are ignored. rclone will not try to
29333 authenticate but instead assume it is already authenticated and use
29334 these two variables to access the OpenStack installation.
29335
29336 Using rclone without a config file
29337 You can use rclone with swift without a config file, if desired, like
29338 this:
29339
29340 source openstack-credentials-file
29341 export RCLONE_CONFIG_MYREMOTE_TYPE=swift
29342 export RCLONE_CONFIG_MYREMOTE_ENV_AUTH=true
29343 rclone lsd myremote:
29344
29345 --fast-list
29346 This remote supports --fast-list which allows you to use fewer transac‐
29347 tions in exchange for more memory. See the rclone docs
29348 (https://rclone.org/docs/#fast-list) for more details.
29349
29350 --update and --use-server-modtime
29351 As noted below, the modified time is stored on metadata on the object.
29352 It is used by default for all operations that require checking the time
29353 a file was last updated. It allows rclone to treat the remote more
29354 like a true filesystem, but it is inefficient because it requires an
29355 extra API call to retrieve the metadata.
29356
29357 For many operations, the time the object was last uploaded to the re‐
29358 mote is sufficient to determine if it is "dirty". By using --update
29359 along with --use-server-modtime, you can avoid the extra API call and
29360 simply upload files whose local modtime is newer than the time it was
29361 last uploaded.
29362
29363 Modified time
29364 The modified time is stored as metadata on the object as X-Ob‐
29365 ject-Meta-Mtime as floating point since the epoch accurate to 1 ns.
29366
29367 This is a de facto standard (used in the official python-swiftclient
29368 amongst others) for storing the modification time for an object.
29369
29370 Restricted filename characters
29371 Character Value Replacement
29372 ────────────────────────────────
29373 NUL 0x00 ␀
29374 / 0x2F /
29375
29376 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
29377 view/#invalid-utf8), as they can't be used in JSON strings.
29378
29379 Standard options
29380 Here are the standard options specific to swift (OpenStack Swift
29381 (Rackspace Cloud Files, Memset Memstore, OVH)).
29382
29383 --swift-env-auth
29384 Get swift credentials from environment variables in standard OpenStack
29385 form.
29386
29387 • Config: env_auth
29388
29389 • Env Var: RCLONE_SWIFT_ENV_AUTH
29390
29391 • Type: bool
29392
29393 • Default: false
29394
29395 • Examples:
29396
29397 • "false"
29398
29399 • Enter swift credentials in the next step.
29400
29401 • "true"
29402
29403 • Get swift credentials from environment vars.
29404
29405 • Leave other fields blank if using this.
29406
29407 --swift-user
29408 User name to log in (OS_USERNAME).
29409
29410 • Config: user
29411
29412 • Env Var: RCLONE_SWIFT_USER
29413
29414 • Type: string
29415
29416 • Default: ""
29417
29418 --swift-key
29419 API key or password (OS_PASSWORD).
29420
29421 • Config: key
29422
29423 • Env Var: RCLONE_SWIFT_KEY
29424
29425 • Type: string
29426
29427 • Default: ""
29428
29429 --swift-auth
29430 Authentication URL for server (OS_AUTH_URL).
29431
29432 • Config: auth
29433
29434 • Env Var: RCLONE_SWIFT_AUTH
29435
29436 • Type: string
29437
29438 • Default: ""
29439
29440 • Examples:
29441
29442 • "https://auth.api.rackspacecloud.com/v1.0"
29443
29444 • Rackspace US
29445
29446 • "https://lon.auth.api.rackspacecloud.com/v1.0"
29447
29448 • Rackspace UK
29449
29450 • "https://identity.api.rackspacecloud.com/v2.0"
29451
29452 • Rackspace v2
29453
29454 • "https://auth.storage.memset.com/v1.0"
29455
29456 • Memset Memstore UK
29457
29458 • "https://auth.storage.memset.com/v2.0"
29459
29460 • Memset Memstore UK v2
29461
29462 • "https://auth.cloud.ovh.net/v3"
29463
29464 • OVH
29465
29466 --swift-user-id
29467 User ID to log in - optional - most swift systems use user and leave
29468 this blank (v3 auth) (OS_USER_ID).
29469
29470 • Config: user_id
29471
29472 • Env Var: RCLONE_SWIFT_USER_ID
29473
29474 • Type: string
29475
29476 • Default: ""
29477
29478 --swift-domain
29479 User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
29480
29481 • Config: domain
29482
29483 • Env Var: RCLONE_SWIFT_DOMAIN
29484
29485 • Type: string
29486
29487 • Default: ""
29488
29489 --swift-tenant
29490 Tenant name - optional for v1 auth, this or tenant_id required other‐
29491 wise (OS_TENANT_NAME or OS_PROJECT_NAME).
29492
29493 • Config: tenant
29494
29495 • Env Var: RCLONE_SWIFT_TENANT
29496
29497 • Type: string
29498
29499 • Default: ""
29500
29501 --swift-tenant-id
29502 Tenant ID - optional for v1 auth, this or tenant required otherwise
29503 (OS_TENANT_ID).
29504
29505 • Config: tenant_id
29506
29507 • Env Var: RCLONE_SWIFT_TENANT_ID
29508
29509 • Type: string
29510
29511 • Default: ""
29512
29513 --swift-tenant-domain
29514 Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME).
29515
29516 • Config: tenant_domain
29517
29518 • Env Var: RCLONE_SWIFT_TENANT_DOMAIN
29519
29520 • Type: string
29521
29522 • Default: ""
29523
29524 --swift-region
29525 Region name - optional (OS_REGION_NAME).
29526
29527 • Config: region
29528
29529 • Env Var: RCLONE_SWIFT_REGION
29530
29531 • Type: string
29532
29533 • Default: ""
29534
29535 --swift-storage-url
29536 Storage URL - optional (OS_STORAGE_URL).
29537
29538 • Config: storage_url
29539
29540 • Env Var: RCLONE_SWIFT_STORAGE_URL
29541
29542 • Type: string
29543
29544 • Default: ""
29545
29546 --swift-auth-token
29547 Auth Token from alternate authentication - optional (OS_AUTH_TOKEN).
29548
29549 • Config: auth_token
29550
29551 • Env Var: RCLONE_SWIFT_AUTH_TOKEN
29552
29553 • Type: string
29554
29555 • Default: ""
29556
29557 --swift-application-credential-id
29558 Application Credential ID (OS_APPLICATION_CREDENTIAL_ID).
29559
29560 • Config: application_credential_id
29561
29562 • Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_ID
29563
29564 • Type: string
29565
29566 • Default: ""
29567
29568 --swift-application-credential-name
29569 Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME).
29570
29571 • Config: application_credential_name
29572
29573 • Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_NAME
29574
29575 • Type: string
29576
29577 • Default: ""
29578
29579 --swift-application-credential-secret
29580 Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET).
29581
29582 • Config: application_credential_secret
29583
29584 • Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_SECRET
29585
29586 • Type: string
29587
29588 • Default: ""
29589
29590 --swift-auth-version
29591 AuthVersion - optional - set to (1,2,3) if your auth URL has no version
29592 (ST_AUTH_VERSION).
29593
29594 • Config: auth_version
29595
29596 • Env Var: RCLONE_SWIFT_AUTH_VERSION
29597
29598 • Type: int
29599
29600 • Default: 0
29601
29602 --swift-endpoint-type
29603 Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE).
29604
29605 • Config: endpoint_type
29606
29607 • Env Var: RCLONE_SWIFT_ENDPOINT_TYPE
29608
29609 • Type: string
29610
29611 • Default: "public"
29612
29613 • Examples:
29614
29615 • "public"
29616
29617 • Public (default, choose this if not sure)
29618
29619 • "internal"
29620
29621 • Internal (use internal service net)
29622
29623 • "admin"
29624
29625 • Admin
29626
29627 --swift-storage-policy
29628 The storage policy to use when creating a new container.
29629
29630 This applies the specified storage policy when creating a new contain‐
29631 er. The policy cannot be changed afterwards. The allowed configura‐
29632 tion values and their meaning depend on your Swift storage provider.
29633
29634 • Config: storage_policy
29635
29636 • Env Var: RCLONE_SWIFT_STORAGE_POLICY
29637
29638 • Type: string
29639
29640 • Default: ""
29641
29642 • Examples:
29643
29644 • ""
29645
29646 • Default
29647
29648 • "pcs"
29649
29650 • OVH Public Cloud Storage
29651
29652 • "pca"
29653
29654 • OVH Public Cloud Archive
29655
29656 Advanced options
29657 Here are the advanced options specific to swift (OpenStack Swift
29658 (Rackspace Cloud Files, Memset Memstore, OVH)).
29659
29660 --swift-leave-parts-on-error
29661 If true avoid calling abort upload on a failure.
29662
29663 It should be set to true for resuming uploads across different ses‐
29664 sions.
29665
29666 • Config: leave_parts_on_error
29667
29668 • Env Var: RCLONE_SWIFT_LEAVE_PARTS_ON_ERROR
29669
29670 • Type: bool
29671
29672 • Default: false
29673
29674 --swift-chunk-size
29675 Above this size files will be chunked into a _segments container.
29676
29677 Above this size files will be chunked into a _segments container. The
29678 default for this is 5 GiB which is its maximum value.
29679
29680 • Config: chunk_size
29681
29682 • Env Var: RCLONE_SWIFT_CHUNK_SIZE
29683
29684 • Type: SizeSuffix
29685
29686 • Default: 5Gi
29687
29688 --swift-no-chunk
29689 Don't chunk files during streaming upload.
29690
29691 When doing streaming uploads (e.g. using rcat or mount) setting this
29692 flag will cause the swift backend to not upload chunked files.
29693
29694 This will limit the maximum upload size to 5 GiB. However non chunked
29695 files are easier to deal with and have an MD5SUM.
29696
29697 Rclone will still chunk files bigger than chunk_size when doing normal
29698 copy operations.
29699
29700 • Config: no_chunk
29701
29702 • Env Var: RCLONE_SWIFT_NO_CHUNK
29703
29704 • Type: bool
29705
29706 • Default: false
29707
29708 --swift-encoding
29709 This sets the encoding for the backend.
29710
29711 See the encoding section in the overview (https://rclone.org/over‐
29712 view/#encoding) for more info.
29713
29714 • Config: encoding
29715
29716 • Env Var: RCLONE_SWIFT_ENCODING
29717
29718 • Type: MultiEncoder
29719
29720 • Default: Slash,InvalidUtf8
29721
29722 Limitations
29723 The Swift API doesn't return a correct MD5SUM for segmented files (Dy‐
29724 namic or Static Large Objects) so rclone won't check or use the MD5SUM
29725 for these.
29726
29727 Troubleshooting
29728 Rclone gives Failed to create file system for "remote:": Bad Request
29729 Due to an oddity of the underlying swift library, it gives a "Bad Re‐
29730 quest" error rather than a more sensible error when the authentication
29731 fails for Swift.
29732
29733 So this most likely means your username / password is wrong. You can
29734 investigate further with the --dump-bodies flag.
29735
29736 This may also be caused by specifying the region when you shouldn't
29737 have (e.g. OVH).
29738
29739 Rclone gives Failed to create file system: Response didn't have storage url
29740 and auth token
29741 This is most likely caused by forgetting to specify your tenant when
29742 setting up a swift remote.
29743
29744 OVH Cloud Archive
29745 To use rclone with OVH cloud archive, first use rclone config to set up
29746 a swift backend with OVH, choosing pca as the storage_policy.
29747
29748 Uploading Objects
29749 Uploading objects to OVH cloud archive is no different to object stor‐
29750 age, you just simply run the command you like (move, copy or sync) to
29751 upload the objects. Once uploaded the objects will show in a "Frozen"
29752 state within the OVH control panel.
29753
29754 Retrieving Objects
29755 To retrieve objects use rclone copy as normal. If the objects are in a
29756 frozen state then rclone will ask for them all to be unfrozen and it
29757 will wait at the end of the output with a message like the following:
29758
29759 2019/03/23 13:06:33 NOTICE: Received retry after error - sleeping until
29760 2019-03-23T13:16:33.481657164+01:00 (9m59.99985121s)
29761
29762 Rclone will wait for the time specified then retry the copy.
29763
29765 Paths are specified as remote:path
29766
29767 Paths may be as deep as required, e.g. remote:directory/subdirectory.
29768
29769 Configuration
29770 The initial setup for pCloud involves getting a token from pCloud which
29771 you need to do in your browser. rclone config walks you through it.
29772
29773 Here is an example of how to make a remote called remote. First run:
29774
29775 rclone config
29776
29777 This will guide you through an interactive setup process:
29778
29779 No remotes found - make a new one
29780 n) New remote
29781 s) Set configuration password
29782 q) Quit config
29783 n/s/q> n
29784 name> remote
29785 Type of storage to configure.
29786 Choose a number from below, or type in your own value
29787 [snip]
29788 XX / Pcloud
29789 \ "pcloud"
29790 [snip]
29791 Storage> pcloud
29792 Pcloud App Client Id - leave blank normally.
29793 client_id>
29794 Pcloud App Client Secret - leave blank normally.
29795 client_secret>
29796 Remote config
29797 Use auto config?
29798 * Say Y if not sure
29799 * Say N if you are working on a remote or headless machine
29800 y) Yes
29801 n) No
29802 y/n> y
29803 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
29804 Log in and authorize rclone for access
29805 Waiting for code...
29806 Got code
29807 --------------------
29808 [remote]
29809 client_id =
29810 client_secret =
29811 token = {"access_token":"XXX","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}
29812 --------------------
29813 y) Yes this is OK
29814 e) Edit this remote
29815 d) Delete this remote
29816 y/e/d> y
29817
29818 See the remote setup docs (https://rclone.org/remote_setup/) for how to
29819 set it up on a machine with no Internet browser available.
29820
29821 Note that rclone runs a webserver on your local machine to collect the
29822 token as returned from pCloud. This only runs from the moment it opens
29823 your browser to the moment you get back the verification code. This is
29824 on http://127.0.0.1:53682/ and this it may require you to unblock it
29825 temporarily if you are running a host firewall.
29826
29827 Once configured you can then use rclone like this,
29828
29829 List directories in top level of your pCloud
29830
29831 rclone lsd remote:
29832
29833 List all the files in your pCloud
29834
29835 rclone ls remote:
29836
29837 To copy a local directory to an pCloud directory called backup
29838
29839 rclone copy /home/source remote:backup
29840
29841 Modified time and hashes
29842 pCloud allows modification times to be set on objects accurate to 1
29843 second. These will be used to detect whether objects need syncing or
29844 not. In order to set a Modification time pCloud requires the object be
29845 re-uploaded.
29846
29847 pCloud supports MD5 and SHA1 hashes in the US region, and SHA1 and
29848 SHA256 hashes in the EU region, so you can use the --checksum flag.
29849
29850 Restricted filename characters
29851 In addition to the default restricted characters set
29852 (https://rclone.org/overview/#restricted-characters) the following
29853 characters are also replaced:
29854
29855 Character Value Replacement
29856 ────────────────────────────────
29857 \ 0x5C \
29858
29859 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
29860 view/#invalid-utf8), as they can't be used in JSON strings.
29861
29862 Deleting files
29863 Deleted files will be moved to the trash. Your subscription level will
29864 determine how long items stay in the trash. rclone cleanup can be used
29865 to empty the trash.
29866
29867 Root folder ID
29868 You can set the root_folder_id for rclone. This is the directory
29869 (identified by its Folder ID) that rclone considers to be the root of
29870 your pCloud drive.
29871
29872 Normally you will leave this blank and rclone will determine the cor‐
29873 rect root to use itself.
29874
29875 However you can set this to restrict rclone to a specific folder hier‐
29876 archy.
29877
29878 In order to do this you will have to find the Folder ID of the directo‐
29879 ry you wish rclone to display. This will be the folder field of the
29880 URL when you open the relevant folder in the pCloud web interface.
29881
29882 So if the folder you want rclone to use has a URL which looks like
29883 https://my.pcloud.com/#page=filemanager&folder=5xxxxxxxx8&tpl=folder‐
29884 grid in the browser, then you use 5xxxxxxxx8 as the root_folder_id in
29885 the config.
29886
29887 Standard options
29888 Here are the standard options specific to pcloud (Pcloud).
29889
29890 --pcloud-client-id
29891 OAuth Client Id.
29892
29893 Leave blank normally.
29894
29895 • Config: client_id
29896
29897 • Env Var: RCLONE_PCLOUD_CLIENT_ID
29898
29899 • Type: string
29900
29901 • Default: ""
29902
29903 --pcloud-client-secret
29904 OAuth Client Secret.
29905
29906 Leave blank normally.
29907
29908 • Config: client_secret
29909
29910 • Env Var: RCLONE_PCLOUD_CLIENT_SECRET
29911
29912 • Type: string
29913
29914 • Default: ""
29915
29916 Advanced options
29917 Here are the advanced options specific to pcloud (Pcloud).
29918
29919 --pcloud-token
29920 OAuth Access Token as a JSON blob.
29921
29922 • Config: token
29923
29924 • Env Var: RCLONE_PCLOUD_TOKEN
29925
29926 • Type: string
29927
29928 • Default: ""
29929
29930 --pcloud-auth-url
29931 Auth server URL.
29932
29933 Leave blank to use the provider defaults.
29934
29935 • Config: auth_url
29936
29937 • Env Var: RCLONE_PCLOUD_AUTH_URL
29938
29939 • Type: string
29940
29941 • Default: ""
29942
29943 --pcloud-token-url
29944 Token server url.
29945
29946 Leave blank to use the provider defaults.
29947
29948 • Config: token_url
29949
29950 • Env Var: RCLONE_PCLOUD_TOKEN_URL
29951
29952 • Type: string
29953
29954 • Default: ""
29955
29956 --pcloud-encoding
29957 This sets the encoding for the backend.
29958
29959 See the encoding section in the overview (https://rclone.org/over‐
29960 view/#encoding) for more info.
29961
29962 • Config: encoding
29963
29964 • Env Var: RCLONE_PCLOUD_ENCODING
29965
29966 • Type: MultiEncoder
29967
29968 • Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
29969
29970 --pcloud-root-folder-id
29971 Fill in for rclone to use a non root folder as its starting point.
29972
29973 • Config: root_folder_id
29974
29975 • Env Var: RCLONE_PCLOUD_ROOT_FOLDER_ID
29976
29977 • Type: string
29978
29979 • Default: "d0"
29980
29981 --pcloud-hostname
29982 Hostname to connect to.
29983
29984 This is normally set when rclone initially does the oauth connection,
29985 however you will need to set it by hand if you are using remote config
29986 with rclone authorize.
29987
29988 • Config: hostname
29989
29990 • Env Var: RCLONE_PCLOUD_HOSTNAME
29991
29992 • Type: string
29993
29994 • Default: "api.pcloud.com"
29995
29996 • Examples:
29997
29998 • "api.pcloud.com"
29999
30000 • Original/US region
30001
30002 • "eapi.pcloud.com"
30003
30004 • EU region
30005
30007 Paths are specified as remote:path
30008
30009 Paths may be as deep as required, e.g. remote:directory/subdirectory.
30010
30011 Configuration
30012 The initial setup for premiumize.me (https://premiumize.me/) involves
30013 getting a token from premiumize.me which you need to do in your brows‐
30014 er. rclone config walks you through it.
30015
30016 Here is an example of how to make a remote called remote. First run:
30017
30018 rclone config
30019
30020 This will guide you through an interactive setup process:
30021
30022 No remotes found - make a new one
30023 n) New remote
30024 s) Set configuration password
30025 q) Quit config
30026 n/s/q> n
30027 name> remote
30028 Type of storage to configure.
30029 Enter a string value. Press Enter for the default ("").
30030 Choose a number from below, or type in your own value
30031 [snip]
30032 XX / premiumize.me
30033 \ "premiumizeme"
30034 [snip]
30035 Storage> premiumizeme
30036 ** See help for premiumizeme backend at: https://rclone.org/premiumizeme/ **
30037
30038 Remote config
30039 Use auto config?
30040 * Say Y if not sure
30041 * Say N if you are working on a remote or headless machine
30042 y) Yes
30043 n) No
30044 y/n> y
30045 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
30046 Log in and authorize rclone for access
30047 Waiting for code...
30048 Got code
30049 --------------------
30050 [remote]
30051 type = premiumizeme
30052 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2029-08-07T18:44:15.548915378+01:00"}
30053 --------------------
30054 y) Yes this is OK
30055 e) Edit this remote
30056 d) Delete this remote
30057 y/e/d>
30058
30059 See the remote setup docs (https://rclone.org/remote_setup/) for how to
30060 set it up on a machine with no Internet browser available.
30061
30062 Note that rclone runs a webserver on your local machine to collect the
30063 token as returned from premiumize.me. This only runs from the moment
30064 it opens your browser to the moment you get back the verification code.
30065 This is on http://127.0.0.1:53682/ and this it may require you to un‐
30066 block it temporarily if you are running a host firewall.
30067
30068 Once configured you can then use rclone like this,
30069
30070 List directories in top level of your premiumize.me
30071
30072 rclone lsd remote:
30073
30074 List all the files in your premiumize.me
30075
30076 rclone ls remote:
30077
30078 To copy a local directory to an premiumize.me directory called backup
30079
30080 rclone copy /home/source remote:backup
30081
30082 Modified time and hashes
30083 premiumize.me does not support modification times or hashes, therefore
30084 syncing will default to --size-only checking. Note that using --update
30085 will work.
30086
30087 Restricted filename characters
30088 In addition to the default restricted characters set
30089 (https://rclone.org/overview/#restricted-characters) the following
30090 characters are also replaced:
30091
30092 Character Value Replacement
30093 ────────────────────────────────
30094 \ 0x5C \
30095 " 0x22 "
30096
30097 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
30098 view/#invalid-utf8), as they can't be used in JSON strings.
30099
30100 Standard options
30101 Here are the standard options specific to premiumizeme (premiumize.me).
30102
30103 --premiumizeme-api-key
30104 API Key.
30105
30106 This is not normally used - use oauth instead.
30107
30108 • Config: api_key
30109
30110 • Env Var: RCLONE_PREMIUMIZEME_API_KEY
30111
30112 • Type: string
30113
30114 • Default: ""
30115
30116 Advanced options
30117 Here are the advanced options specific to premiumizeme (premiumize.me).
30118
30119 --premiumizeme-encoding
30120 This sets the encoding for the backend.
30121
30122 See the encoding section in the overview (https://rclone.org/over‐
30123 view/#encoding) for more info.
30124
30125 • Config: encoding
30126
30127 • Env Var: RCLONE_PREMIUMIZEME_ENCODING
30128
30129 • Type: MultiEncoder
30130
30131 • Default: Slash,DoubleQuote,BackSlash,Del,Ctl,InvalidUtf8,Dot
30132
30133 Limitations
30134 Note that premiumize.me is case insensitive so you can't have a file
30135 called "Hello.doc" and one called "hello.doc".
30136
30137 premiumize.me file names can't have the \ or " characters in. rclone
30138 maps these to and from an identical looking unicode equivalents \ and
30139 "
30140
30141 premiumize.me only supports filenames up to 255 characters in length.
30142
30144 Paths are specified as remote:path
30145
30146 put.io paths may be as deep as required, e.g. remote:directory/subdi‐
30147 rectory.
30148
30149 Configuration
30150 The initial setup for put.io involves getting a token from put.io which
30151 you need to do in your browser. rclone config walks you through it.
30152
30153 Here is an example of how to make a remote called remote. First run:
30154
30155 rclone config
30156
30157 This will guide you through an interactive setup process:
30158
30159 No remotes found - make a new one
30160 n) New remote
30161 s) Set configuration password
30162 q) Quit config
30163 n/s/q> n
30164 name> putio
30165 Type of storage to configure.
30166 Enter a string value. Press Enter for the default ("").
30167 Choose a number from below, or type in your own value
30168 [snip]
30169 XX / Put.io
30170 \ "putio"
30171 [snip]
30172 Storage> putio
30173 ** See help for putio backend at: https://rclone.org/putio/ **
30174
30175 Remote config
30176 Use auto config?
30177 * Say Y if not sure
30178 * Say N if you are working on a remote or headless machine
30179 y) Yes
30180 n) No
30181 y/n> y
30182 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
30183 Log in and authorize rclone for access
30184 Waiting for code...
30185 Got code
30186 --------------------
30187 [putio]
30188 type = putio
30189 token = {"access_token":"XXXXXXXX","expiry":"0001-01-01T00:00:00Z"}
30190 --------------------
30191 y) Yes this is OK
30192 e) Edit this remote
30193 d) Delete this remote
30194 y/e/d> y
30195 Current remotes:
30196
30197 Name Type
30198 ==== ====
30199 putio putio
30200
30201 e) Edit existing remote
30202 n) New remote
30203 d) Delete remote
30204 r) Rename remote
30205 c) Copy remote
30206 s) Set configuration password
30207 q) Quit config
30208 e/n/d/r/c/s/q> q
30209
30210 Note that rclone runs a webserver on your local machine to collect the
30211 token as returned from Google if you use auto config mode. This only
30212 runs from the moment it opens your browser to the moment you get back
30213 the verification code. This is on http://127.0.0.1:53682/ and this it
30214 may require you to unblock it temporarily if you are running a host
30215 firewall, or use manual mode.
30216
30217 You can then use it like this,
30218
30219 List directories in top level of your put.io
30220
30221 rclone lsd remote:
30222
30223 List all the files in your put.io
30224
30225 rclone ls remote:
30226
30227 To copy a local directory to a put.io directory called backup
30228
30229 rclone copy /home/source remote:backup
30230
30231 Restricted filename characters
30232 In addition to the default restricted characters set
30233 (https://rclone.org/overview/#restricted-characters) the following
30234 characters are also replaced:
30235
30236 Character Value Replacement
30237 ────────────────────────────────
30238 \ 0x5C \
30239
30240 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
30241 view/#invalid-utf8), as they can't be used in JSON strings.
30242
30243 Advanced options
30244 Here are the advanced options specific to putio (Put.io).
30245
30246 --putio-encoding
30247 This sets the encoding for the backend.
30248
30249 See the encoding section in the overview (https://rclone.org/over‐
30250 view/#encoding) for more info.
30251
30252 • Config: encoding
30253
30254 • Env Var: RCLONE_PUTIO_ENCODING
30255
30256 • Type: MultiEncoder
30257
30258 • Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
30259
30261 This is a backend for the Seafile (https://www.seafile.com/) storage
30262 service: - It works with both the free community edition or the profes‐
30263 sional edition. - Seafile versions 6.x and 7.x are all supported. -
30264 Encrypted libraries are also supported. - It supports 2FA enabled
30265 users
30266
30267 Configuration
30268 There are two distinct modes you can setup your remote: - you point
30269 your remote to the root of the server, meaning you don't specify a li‐
30270 brary during the configuration: Paths are specified as remote:library.
30271 You may put subdirectories in too, e.g. remote:library/path/to/dir. -
30272 you point your remote to a specific library during the configuration:
30273 Paths are specified as remote:path/to/dir. This is the recommended
30274 mode when using encrypted libraries. (This mode is possibly slightly
30275 faster than the root mode)
30276
30277 Configuration in root mode
30278 Here is an example of making a seafile configuration for a user with no
30279 two-factor authentication. First run
30280
30281 rclone config
30282
30283 This will guide you through an interactive setup process. To authenti‐
30284 cate you will need the URL of your server, your email (or username) and
30285 your password.
30286
30287 No remotes found - make a new one
30288 n) New remote
30289 s) Set configuration password
30290 q) Quit config
30291 n/s/q> n
30292 name> seafile
30293 Type of storage to configure.
30294 Enter a string value. Press Enter for the default ("").
30295 Choose a number from below, or type in your own value
30296 [snip]
30297 XX / Seafile
30298 \ "seafile"
30299 [snip]
30300 Storage> seafile
30301 ** See help for seafile backend at: https://rclone.org/seafile/ **
30302
30303 URL of seafile host to connect to
30304 Enter a string value. Press Enter for the default ("").
30305 Choose a number from below, or type in your own value
30306 1 / Connect to cloud.seafile.com
30307 \ "https://cloud.seafile.com/"
30308 url> http://my.seafile.server/
30309 User name (usually email address)
30310 Enter a string value. Press Enter for the default ("").
30311 user> me@example.com
30312 Password
30313 y) Yes type in my own password
30314 g) Generate random password
30315 n) No leave this optional password blank (default)
30316 y/g> y
30317 Enter the password:
30318 password:
30319 Confirm the password:
30320 password:
30321 Two-factor authentication ('true' if the account has 2FA enabled)
30322 Enter a boolean value (true or false). Press Enter for the default ("false").
30323 2fa> false
30324 Name of the library. Leave blank to access all non-encrypted libraries.
30325 Enter a string value. Press Enter for the default ("").
30326 library>
30327 Library password (for encrypted libraries only). Leave blank if you pass it through the command line.
30328 y) Yes type in my own password
30329 g) Generate random password
30330 n) No leave this optional password blank (default)
30331 y/g/n> n
30332 Edit advanced config? (y/n)
30333 y) Yes
30334 n) No (default)
30335 y/n> n
30336 Remote config
30337 Two-factor authentication is not enabled on this account.
30338 --------------------
30339 [seafile]
30340 type = seafile
30341 url = http://my.seafile.server/
30342 user = me@example.com
30343 pass = *** ENCRYPTED ***
30344 2fa = false
30345 --------------------
30346 y) Yes this is OK (default)
30347 e) Edit this remote
30348 d) Delete this remote
30349 y/e/d> y
30350
30351 This remote is called seafile. It's pointing to the root of your
30352 seafile server and can now be used like this:
30353
30354 See all libraries
30355
30356 rclone lsd seafile:
30357
30358 Create a new library
30359
30360 rclone mkdir seafile:library
30361
30362 List the contents of a library
30363
30364 rclone ls seafile:library
30365
30366 Sync /home/local/directory to the remote library, deleting any excess
30367 files in the library.
30368
30369 rclone sync -i /home/local/directory seafile:library
30370
30371 Configuration in library mode
30372 Here's an example of a configuration in library mode with a user that
30373 has the two-factor authentication enabled. Your 2FA code will be asked
30374 at the end of the configuration, and will attempt to authenticate you:
30375
30376 No remotes found - make a new one
30377 n) New remote
30378 s) Set configuration password
30379 q) Quit config
30380 n/s/q> n
30381 name> seafile
30382 Type of storage to configure.
30383 Enter a string value. Press Enter for the default ("").
30384 Choose a number from below, or type in your own value
30385 [snip]
30386 XX / Seafile
30387 \ "seafile"
30388 [snip]
30389 Storage> seafile
30390 ** See help for seafile backend at: https://rclone.org/seafile/ **
30391
30392 URL of seafile host to connect to
30393 Enter a string value. Press Enter for the default ("").
30394 Choose a number from below, or type in your own value
30395 1 / Connect to cloud.seafile.com
30396 \ "https://cloud.seafile.com/"
30397 url> http://my.seafile.server/
30398 User name (usually email address)
30399 Enter a string value. Press Enter for the default ("").
30400 user> me@example.com
30401 Password
30402 y) Yes type in my own password
30403 g) Generate random password
30404 n) No leave this optional password blank (default)
30405 y/g> y
30406 Enter the password:
30407 password:
30408 Confirm the password:
30409 password:
30410 Two-factor authentication ('true' if the account has 2FA enabled)
30411 Enter a boolean value (true or false). Press Enter for the default ("false").
30412 2fa> true
30413 Name of the library. Leave blank to access all non-encrypted libraries.
30414 Enter a string value. Press Enter for the default ("").
30415 library> My Library
30416 Library password (for encrypted libraries only). Leave blank if you pass it through the command line.
30417 y) Yes type in my own password
30418 g) Generate random password
30419 n) No leave this optional password blank (default)
30420 y/g/n> n
30421 Edit advanced config? (y/n)
30422 y) Yes
30423 n) No (default)
30424 y/n> n
30425 Remote config
30426 Two-factor authentication: please enter your 2FA code
30427 2fa code> 123456
30428 Authenticating...
30429 Success!
30430 --------------------
30431 [seafile]
30432 type = seafile
30433 url = http://my.seafile.server/
30434 user = me@example.com
30435 pass =
30436 2fa = true
30437 library = My Library
30438 --------------------
30439 y) Yes this is OK (default)
30440 e) Edit this remote
30441 d) Delete this remote
30442 y/e/d> y
30443
30444 You'll notice your password is blank in the configuration. It's be‐
30445 cause we only need the password to authenticate you once.
30446
30447 You specified My Library during the configuration. The root of the re‐
30448 mote is pointing at the root of the library My Library:
30449
30450 See all files in the library:
30451
30452 rclone lsd seafile:
30453
30454 Create a new directory inside the library
30455
30456 rclone mkdir seafile:directory
30457
30458 List the contents of a directory
30459
30460 rclone ls seafile:directory
30461
30462 Sync /home/local/directory to the remote library, deleting any excess
30463 files in the library.
30464
30465 rclone sync -i /home/local/directory seafile:
30466
30467 --fast-list
30468 Seafile version 7+ supports --fast-list which allows you to use fewer
30469 transactions in exchange for more memory. See the rclone docs
30470 (https://rclone.org/docs/#fast-list) for more details. Please note
30471 this is not supported on seafile server version 6.x
30472
30473 Restricted filename characters
30474 In addition to the default restricted characters set
30475 (https://rclone.org/overview/#restricted-characters) the following
30476 characters are also replaced:
30477
30478 Character Value Replacement
30479 ────────────────────────────────
30480 / 0x2F /
30481 " 0x22 "
30482 \ 0x5C \
30483
30484 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
30485 view/#invalid-utf8), as they can't be used in JSON strings.
30486
30487 Seafile and rclone link
30488 Rclone supports generating share links for non-encrypted libraries on‐
30489 ly. They can either be for a file or a directory:
30490
30491 rclone link seafile:seafile-tutorial.doc
30492 http://my.seafile.server/f/fdcd8a2f93f84b8b90f4/
30493
30494 or if run on a directory you will get:
30495
30496 rclone link seafile:dir
30497 http://my.seafile.server/d/9ea2455f6f55478bbb0d/
30498
30499 Please note a share link is unique for each file or directory. If you
30500 run a link command on a file/dir that has already been shared, you will
30501 get the exact same link.
30502
30503 Compatibility
30504 It has been actively tested using the seafile docker image
30505 (https://github.com/haiwen/seafile-docker) of these versions: - 6.3.4
30506 community edition - 7.0.5 community edition - 7.1.3 community edition
30507
30508 Versions below 6.0 are not supported. Versions between 6.0 and 6.3
30509 haven't been tested and might not work properly.
30510
30511 Standard options
30512 Here are the standard options specific to seafile (seafile).
30513
30514 --seafile-url
30515 URL of seafile host to connect to.
30516
30517 • Config: url
30518
30519 • Env Var: RCLONE_SEAFILE_URL
30520
30521 • Type: string
30522
30523 • Default: ""
30524
30525 • Examples:
30526
30527 • "https://cloud.seafile.com/"
30528
30529 • Connect to cloud.seafile.com.
30530
30531 --seafile-user
30532 User name (usually email address).
30533
30534 • Config: user
30535
30536 • Env Var: RCLONE_SEAFILE_USER
30537
30538 • Type: string
30539
30540 • Default: ""
30541
30542 --seafile-pass
30543 Password.
30544
30545 NB Input to this must be obscured - see rclone obscure
30546 (https://rclone.org/commands/rclone_obscure/).
30547
30548 • Config: pass
30549
30550 • Env Var: RCLONE_SEAFILE_PASS
30551
30552 • Type: string
30553
30554 • Default: ""
30555
30556 --seafile-2fa
30557 Two-factor authentication ('true' if the account has 2FA enabled).
30558
30559 • Config: 2fa
30560
30561 • Env Var: RCLONE_SEAFILE_2FA
30562
30563 • Type: bool
30564
30565 • Default: false
30566
30567 --seafile-library
30568 Name of the library.
30569
30570 Leave blank to access all non-encrypted libraries.
30571
30572 • Config: library
30573
30574 • Env Var: RCLONE_SEAFILE_LIBRARY
30575
30576 • Type: string
30577
30578 • Default: ""
30579
30580 --seafile-library-key
30581 Library password (for encrypted libraries only).
30582
30583 Leave blank if you pass it through the command line.
30584
30585 NB Input to this must be obscured - see rclone obscure
30586 (https://rclone.org/commands/rclone_obscure/).
30587
30588 • Config: library_key
30589
30590 • Env Var: RCLONE_SEAFILE_LIBRARY_KEY
30591
30592 • Type: string
30593
30594 • Default: ""
30595
30596 --seafile-auth-token
30597 Authentication token.
30598
30599 • Config: auth_token
30600
30601 • Env Var: RCLONE_SEAFILE_AUTH_TOKEN
30602
30603 • Type: string
30604
30605 • Default: ""
30606
30607 Advanced options
30608 Here are the advanced options specific to seafile (seafile).
30609
30610 --seafile-create-library
30611 Should rclone create a library if it doesn't exist.
30612
30613 • Config: create_library
30614
30615 • Env Var: RCLONE_SEAFILE_CREATE_LIBRARY
30616
30617 • Type: bool
30618
30619 • Default: false
30620
30621 --seafile-encoding
30622 This sets the encoding for the backend.
30623
30624 See the encoding section in the overview (https://rclone.org/over‐
30625 view/#encoding) for more info.
30626
30627 • Config: encoding
30628
30629 • Env Var: RCLONE_SEAFILE_ENCODING
30630
30631 • Type: MultiEncoder
30632
30633 • Default: Slash,DoubleQuote,BackSlash,Ctl,InvalidUtf8
30634
30636 SFTP is the Secure (or SSH) File Transfer Protocol
30637 (https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol).
30638
30639 The SFTP backend can be used with a number of different providers:
30640
30641 • C14
30642
30643 • rsync.net
30644
30645 SFTP runs over SSH v2 and is installed as standard with most modern SSH
30646 installations.
30647
30648 Paths are specified as remote:path. If the path does not begin with a
30649 / it is relative to the home directory of the user. An empty path re‐
30650 mote: refers to the user's home directory. For example, rclone lsd re‐
30651 mote: would list the home directory of the user cofigured in the rclone
30652 remote config (i.e /home/sftpuser). However, rclone lsd remote:/ would
30653 list the root directory for remote machine (i.e. /)
30654
30655 Note that some SFTP servers will need the leading / - Synology is a
30656 good example of this. rsync.net, on the other hand, requires users to
30657 OMIT the leading /.
30658
30659 Configuration
30660 Here is an example of making an SFTP configuration. First run
30661
30662 rclone config
30663
30664 This will guide you through an interactive setup process.
30665
30666 No remotes found - make a new one
30667 n) New remote
30668 s) Set configuration password
30669 q) Quit config
30670 n/s/q> n
30671 name> remote
30672 Type of storage to configure.
30673 Choose a number from below, or type in your own value
30674 [snip]
30675 XX / SSH/SFTP Connection
30676 \ "sftp"
30677 [snip]
30678 Storage> sftp
30679 SSH host to connect to
30680 Choose a number from below, or type in your own value
30681 1 / Connect to example.com
30682 \ "example.com"
30683 host> example.com
30684 SSH username, leave blank for current username, $USER
30685 user> sftpuser
30686 SSH port, leave blank to use default (22)
30687 port>
30688 SSH password, leave blank to use ssh-agent.
30689 y) Yes type in my own password
30690 g) Generate random password
30691 n) No leave this optional password blank
30692 y/g/n> n
30693 Path to unencrypted PEM-encoded private key file, leave blank to use ssh-agent.
30694 key_file>
30695 Remote config
30696 --------------------
30697 [remote]
30698 host = example.com
30699 user = sftpuser
30700 port =
30701 pass =
30702 key_file =
30703 --------------------
30704 y) Yes this is OK
30705 e) Edit this remote
30706 d) Delete this remote
30707 y/e/d> y
30708
30709 This remote is called remote and can now be used like this:
30710
30711 See all directories in the home directory
30712
30713 rclone lsd remote:
30714
30715 See all directories in the root directory
30716
30717 rclone lsd remote:/
30718
30719 Make a new directory
30720
30721 rclone mkdir remote:path/to/directory
30722
30723 List the contents of a directory
30724
30725 rclone ls remote:path/to/directory
30726
30727 Sync /home/local/directory to the remote directory, deleting any excess
30728 files in the directory.
30729
30730 rclone sync -i /home/local/directory remote:directory
30731
30732 Mount the remote path /srv/www-data/ to the local path /mnt/www-data
30733
30734 rclone mount remote:/srv/www-data/ /mnt/www-data
30735
30736 SSH Authentication
30737 The SFTP remote supports three authentication methods:
30738
30739 • Password
30740
30741 • Key file, including certificate signed keys
30742
30743 • ssh-agent
30744
30745 Key files should be PEM-encoded private key files. For instance
30746 /home/$USER/.ssh/id_rsa. Only unencrypted OpenSSH or PEM encrypted
30747 files are supported.
30748
30749 The key file can be specified in either an external file (key_file) or
30750 contained within the rclone config file (key_pem). If using key_pem in
30751 the config file, the entry should be on a single line with new line (''
30752 or '') separating lines. i.e.
30753
30754 key_pem = -----BEGIN RSA PRIVATE KEY-----\nMaMbaIXtE\n0gAMbMbaSsd\nMbaass\n-----END RSA PRIVATE KEY-----
30755
30756 This will generate it correctly for key_pem for use in the config:
30757
30758 awk '{printf "%s\\n", $0}' < ~/.ssh/id_rsa
30759
30760 If you don't specify pass, key_file, or key_pem or ask_password then
30761 rclone will attempt to contact an ssh-agent. You can also specify
30762 key_use_agent to force the usage of an ssh-agent. In this case
30763 key_file or key_pem can also be specified to force the usage of a spe‐
30764 cific key in the ssh-agent.
30765
30766 Using an ssh-agent is the only way to load encrypted OpenSSH keys at
30767 the moment.
30768
30769 If you set the ask_password option, rclone will prompt for a password
30770 when needed and no password has been configured.
30771
30772 Certificate-signed keys
30773 With traditional key-based authentication, you configure your private
30774 key only, and the public key built into it will be used during the au‐
30775 thentication process.
30776
30777 If you have a certificate you may use it to sign your public key, cre‐
30778 ating a separate SSH user certificate that should be used instead of
30779 the plain public key extracted from the private key. Then you must
30780 provide the path to the user certificate public key file in pub‐
30781 key_file.
30782
30783 Note: This is not the traditional public key paired with your private
30784 key, typically saved as /home/$USER/.ssh/id_rsa.pub. Setting this path
30785 in pubkey_file will not work.
30786
30787 Example:
30788
30789 [remote]
30790 type = sftp
30791 host = example.com
30792 user = sftpuser
30793 key_file = ~/id_rsa
30794 pubkey_file = ~/id_rsa-cert.pub
30795
30796 If you concatenate a cert with a private key then you can specify the
30797 merged file in both places.
30798
30799 Note: the cert must come first in the file. e.g.
30800
30801 cat id_rsa-cert.pub id_rsa > merged_key
30802
30803 Host key validation
30804 By default rclone will not check the server's host key for validation.
30805 This can allow an attacker to replace a server with their own and if
30806 you use password authentication then this can lead to that password be‐
30807 ing exposed.
30808
30809 Host key matching, using standard known_hosts files can be turned on by
30810 enabling the known_hosts_file option. This can point to the file main‐
30811 tained by OpenSSH or can point to a unique file.
30812
30813 e.g.
30814
30815 [remote]
30816 type = sftp
30817 host = example.com
30818 user = sftpuser
30819 pass =
30820 known_hosts_file = ~/.ssh/known_hosts
30821
30822 There are some limitations:
30823
30824 • rclone will not manage this file for you. If the key is missing or
30825 wrong then the connection will be refused.
30826
30827 • If the server is set up for a certificate host key then the entry in
30828 the known_hosts file must be the @cert-authority entry for the CA
30829
30830 • Unlike OpenSSH, the libraries used by rclone do not permit (at time
30831 of writing) multiple host keys to be listed for a server. Only the
30832 first entry is used.
30833
30834 If the host key provided by the server does not match the one in the
30835 file (or is missing) then the connection will be aborted and an error
30836 returned such as
30837
30838 NewFs: couldn't connect SSH: ssh: handshake failed: knownhosts: key mismatch
30839
30840 or
30841
30842 NewFs: couldn't connect SSH: ssh: handshake failed: knownhosts: key is unknown
30843
30844 If you see an error such as
30845
30846 NewFs: couldn't connect SSH: ssh: handshake failed: ssh: no authorities for hostname: example.com:22
30847
30848 then it is likely the server has presented a CA signed host certificate
30849 and you will need to add the appropriate @cert-authority entry.
30850
30851 The known_hosts_file setting can be set during rclone config as an ad‐
30852 vanced option.
30853
30854 ssh-agent on macOS
30855 Note that there seem to be various problems with using an ssh-agent on
30856 macOS due to recent changes in the OS. The most effective work-around
30857 seems to be to start an ssh-agent in each session, e.g.
30858
30859 eval `ssh-agent -s` && ssh-add -A
30860
30861 And then at the end of the session
30862
30863 eval `ssh-agent -k`
30864
30865 These commands can be used in scripts of course.
30866
30867 Modified time
30868 Modified times are stored on the server to 1 second precision.
30869
30870 Modified times are used in syncing and are fully supported.
30871
30872 Some SFTP servers disable setting/modifying the file modification time
30873 after upload (for example, certain configurations of ProFTPd with
30874 mod_sftp). If you are using one of these servers, you can set the op‐
30875 tion set_modtime = false in your RClone backend configuration to dis‐
30876 able this behaviour.
30877
30878 Standard options
30879 Here are the standard options specific to sftp (SSH/SFTP Connection).
30880
30881 --sftp-host
30882 SSH host to connect to.
30883
30884 E.g. "example.com".
30885
30886 • Config: host
30887
30888 • Env Var: RCLONE_SFTP_HOST
30889
30890 • Type: string
30891
30892 • Default: ""
30893
30894 --sftp-user
30895 SSH username, leave blank for current username, $USER.
30896
30897 • Config: user
30898
30899 • Env Var: RCLONE_SFTP_USER
30900
30901 • Type: string
30902
30903 • Default: ""
30904
30905 --sftp-port
30906 SSH port, leave blank to use default (22).
30907
30908 • Config: port
30909
30910 • Env Var: RCLONE_SFTP_PORT
30911
30912 • Type: string
30913
30914 • Default: ""
30915
30916 --sftp-pass
30917 SSH password, leave blank to use ssh-agent.
30918
30919 NB Input to this must be obscured - see rclone obscure
30920 (https://rclone.org/commands/rclone_obscure/).
30921
30922 • Config: pass
30923
30924 • Env Var: RCLONE_SFTP_PASS
30925
30926 • Type: string
30927
30928 • Default: ""
30929
30930 --sftp-key-pem
30931 Raw PEM-encoded private key.
30932
30933 If specified, will override key_file parameter.
30934
30935 • Config: key_pem
30936
30937 • Env Var: RCLONE_SFTP_KEY_PEM
30938
30939 • Type: string
30940
30941 • Default: ""
30942
30943 --sftp-key-file
30944 Path to PEM-encoded private key file.
30945
30946 Leave blank or set key-use-agent to use ssh-agent.
30947
30948 Leading ~ will be expanded in the file name as will environment vari‐
30949 ables such as ${RCLONE_CONFIG_DIR}.
30950
30951 • Config: key_file
30952
30953 • Env Var: RCLONE_SFTP_KEY_FILE
30954
30955 • Type: string
30956
30957 • Default: ""
30958
30959 --sftp-key-file-pass
30960 The passphrase to decrypt the PEM-encoded private key file.
30961
30962 Only PEM encrypted key files (old OpenSSH format) are supported. En‐
30963 crypted keys in the new OpenSSH format can't be used.
30964
30965 NB Input to this must be obscured - see rclone obscure
30966 (https://rclone.org/commands/rclone_obscure/).
30967
30968 • Config: key_file_pass
30969
30970 • Env Var: RCLONE_SFTP_KEY_FILE_PASS
30971
30972 • Type: string
30973
30974 • Default: ""
30975
30976 --sftp-pubkey-file
30977 Optional path to public key file.
30978
30979 Set this if you have a signed certificate you want to use for authenti‐
30980 cation.
30981
30982 Leading ~ will be expanded in the file name as will environment vari‐
30983 ables such as ${RCLONE_CONFIG_DIR}.
30984
30985 • Config: pubkey_file
30986
30987 • Env Var: RCLONE_SFTP_PUBKEY_FILE
30988
30989 • Type: string
30990
30991 • Default: ""
30992
30993 --sftp-key-use-agent
30994 When set forces the usage of the ssh-agent.
30995
30996 When key-file is also set, the ".pub" file of the specified key-file is
30997 read and only the associated key is requested from the ssh-agent. This
30998 allows to avoid Too many authentication failures for *username* errors
30999 when the ssh-agent contains many keys.
31000
31001 • Config: key_use_agent
31002
31003 • Env Var: RCLONE_SFTP_KEY_USE_AGENT
31004
31005 • Type: bool
31006
31007 • Default: false
31008
31009 --sftp-use-insecure-cipher
31010 Enable the use of insecure ciphers and key exchange methods.
31011
31012 This enables the use of the following insecure ciphers and key exchange
31013 methods:
31014
31015 • aes128-cbc
31016
31017 • aes192-cbc
31018
31019 • aes256-cbc
31020
31021 • 3des-cbc
31022
31023 • diffie-hellman-group-exchange-sha256
31024
31025 • diffie-hellman-group-exchange-sha1
31026
31027 Those algorithms are insecure and may allow plaintext data to be recov‐
31028 ered by an attacker.
31029
31030 • Config: use_insecure_cipher
31031
31032 • Env Var: RCLONE_SFTP_USE_INSECURE_CIPHER
31033
31034 • Type: bool
31035
31036 • Default: false
31037
31038 • Examples:
31039
31040 • "false"
31041
31042 • Use default Cipher list.
31043
31044 • "true"
31045
31046 • Enables the use of the aes128-cbc cipher and diffie-hell‐
31047 man-group-exchange-sha256, diffie-hellman-group-exchange-sha1 key
31048 exchange.
31049
31050 --sftp-disable-hashcheck
31051 Disable the execution of SSH commands to determine if remote file hash‐
31052 ing is available.
31053
31054 Leave blank or set to false to enable hashing (recommended), set to
31055 true to disable hashing.
31056
31057 • Config: disable_hashcheck
31058
31059 • Env Var: RCLONE_SFTP_DISABLE_HASHCHECK
31060
31061 • Type: bool
31062
31063 • Default: false
31064
31065 Advanced options
31066 Here are the advanced options specific to sftp (SSH/SFTP Connection).
31067
31068 --sftp-known-hosts-file
31069 Optional path to known_hosts file.
31070
31071 Set this value to enable server host key validation.
31072
31073 Leading ~ will be expanded in the file name as will environment vari‐
31074 ables such as ${RCLONE_CONFIG_DIR}.
31075
31076 • Config: known_hosts_file
31077
31078 • Env Var: RCLONE_SFTP_KNOWN_HOSTS_FILE
31079
31080 • Type: string
31081
31082 • Default: ""
31083
31084 • Examples:
31085
31086 • "~/.ssh/known_hosts"
31087
31088 • Use OpenSSH's known_hosts file.
31089
31090 --sftp-ask-password
31091 Allow asking for SFTP password when needed.
31092
31093 If this is set and no password is supplied then rclone will: - ask for
31094 a password - not contact the ssh agent
31095
31096 • Config: ask_password
31097
31098 • Env Var: RCLONE_SFTP_ASK_PASSWORD
31099
31100 • Type: bool
31101
31102 • Default: false
31103
31104 --sftp-path-override
31105 Override path used by SSH connection.
31106
31107 This allows checksum calculation when SFTP and SSH paths are different.
31108 This issue affects among others Synology NAS boxes.
31109
31110 Shared folders can be found in directories representing volumes
31111
31112 rclone sync /home/local/directory remote:/directory --ssh-path-override /volume2/directory
31113
31114 Home directory can be found in a shared folder called "home"
31115
31116 rclone sync /home/local/directory remote:/home/directory --ssh-path-override /volume1/homes/USER/directory
31117
31118 • Config: path_override
31119
31120 • Env Var: RCLONE_SFTP_PATH_OVERRIDE
31121
31122 • Type: string
31123
31124 • Default: ""
31125
31126 --sftp-set-modtime
31127 Set the modified time on the remote if set.
31128
31129 • Config: set_modtime
31130
31131 • Env Var: RCLONE_SFTP_SET_MODTIME
31132
31133 • Type: bool
31134
31135 • Default: true
31136
31137 --sftp-md5sum-command
31138 The command used to read md5 hashes.
31139
31140 Leave blank for autodetect.
31141
31142 • Config: md5sum_command
31143
31144 • Env Var: RCLONE_SFTP_MD5SUM_COMMAND
31145
31146 • Type: string
31147
31148 • Default: ""
31149
31150 --sftp-sha1sum-command
31151 The command used to read sha1 hashes.
31152
31153 Leave blank for autodetect.
31154
31155 • Config: sha1sum_command
31156
31157 • Env Var: RCLONE_SFTP_SHA1SUM_COMMAND
31158
31159 • Type: string
31160
31161 • Default: ""
31162
31163 --sftp-skip-links
31164 Set to skip any symlinks and any other non regular files.
31165
31166 • Config: skip_links
31167
31168 • Env Var: RCLONE_SFTP_SKIP_LINKS
31169
31170 • Type: bool
31171
31172 • Default: false
31173
31174 --sftp-subsystem
31175 Specifies the SSH2 subsystem on the remote host.
31176
31177 • Config: subsystem
31178
31179 • Env Var: RCLONE_SFTP_SUBSYSTEM
31180
31181 • Type: string
31182
31183 • Default: "sftp"
31184
31185 --sftp-server-command
31186 Specifies the path or command to run a sftp server on the remote host.
31187
31188 The subsystem option is ignored when server_command is defined.
31189
31190 • Config: server_command
31191
31192 • Env Var: RCLONE_SFTP_SERVER_COMMAND
31193
31194 • Type: string
31195
31196 • Default: ""
31197
31198 --sftp-use-fstat
31199 If set use fstat instead of stat.
31200
31201 Some servers limit the amount of open files and calling Stat after
31202 opening the file will throw an error from the server. Setting this
31203 flag will call Fstat instead of Stat which is called on an already open
31204 file handle.
31205
31206 It has been found that this helps with IBM Sterling SFTP servers which
31207 have "extractability" level set to 1 which means only 1 file can be
31208 opened at any given time.
31209
31210 • Config: use_fstat
31211
31212 • Env Var: RCLONE_SFTP_USE_FSTAT
31213
31214 • Type: bool
31215
31216 • Default: false
31217
31218 --sftp-disable-concurrent-reads
31219 If set don't use concurrent reads.
31220
31221 Normally concurrent reads are safe to use and not using them will de‐
31222 grade performance, so this option is disabled by default.
31223
31224 Some servers limit the amount number of times a file can be downloaded.
31225 Using concurrent reads can trigger this limit, so if you have a server
31226 which returns
31227
31228 Failed to copy: file does not exist
31229
31230 Then you may need to enable this flag.
31231
31232 If concurrent reads are disabled, the use_fstat option is ignored.
31233
31234 • Config: disable_concurrent_reads
31235
31236 • Env Var: RCLONE_SFTP_DISABLE_CONCURRENT_READS
31237
31238 • Type: bool
31239
31240 • Default: false
31241
31242 --sftp-disable-concurrent-writes
31243 If set don't use concurrent writes.
31244
31245 Normally rclone uses concurrent writes to upload files. This improves
31246 the performance greatly, especially for distant servers.
31247
31248 This option disables concurrent writes should that be necessary.
31249
31250 • Config: disable_concurrent_writes
31251
31252 • Env Var: RCLONE_SFTP_DISABLE_CONCURRENT_WRITES
31253
31254 • Type: bool
31255
31256 • Default: false
31257
31258 --sftp-idle-timeout
31259 Max time before closing idle connections.
31260
31261 If no connections have been returned to the connection pool in the time
31262 given, rclone will empty the connection pool.
31263
31264 Set to 0 to keep connections indefinitely.
31265
31266 • Config: idle_timeout
31267
31268 • Env Var: RCLONE_SFTP_IDLE_TIMEOUT
31269
31270 • Type: Duration
31271
31272 • Default: 1m0s
31273
31274 Limitations
31275 SFTP supports checksums if the same login has shell access and md5sum
31276 or sha1sum as well as echo are in the remote's PATH. This remote
31277 checksumming (file hashing) is recommended and enabled by default.
31278 Disabling the checksumming may be required if you are connecting to
31279 SFTP servers which are not under your control, and to which the execu‐
31280 tion of remote commands is prohibited. Set the configuration option
31281 disable_hashcheck to true to disable checksumming.
31282
31283 SFTP also supports about if the same login has shell access and df are
31284 in the remote's PATH. about will return the total space, free space,
31285 and used space on the remote for the disk of the specified path on the
31286 remote or, if not set, the disk of the root on the remote. about will
31287 fail if it does not have shell access or if df is not in the remote's
31288 PATH.
31289
31290 Note that some SFTP servers (e.g. Synology) the paths are different
31291 for SSH and SFTP so the hashes can't be calculated properly. For them
31292 using disable_hashcheck is a good idea.
31293
31294 The only ssh agent supported under Windows is Putty's pageant.
31295
31296 The Go SSH library disables the use of the aes128-cbc cipher by de‐
31297 fault, due to security concerns. This can be re-enabled on a per-con‐
31298 nection basis by setting the use_insecure_cipher setting in the config‐
31299 uration file to true. Further details on the insecurity of this cipher
31300 can be found in this paper (http://www.isg.rhul.ac.uk/~kp/SandPfi‐
31301 nal.pdf).
31302
31303 SFTP isn't supported under plan9 until this issue
31304 (https://github.com/pkg/sftp/issues/156) is fixed.
31305
31306 Note that since SFTP isn't HTTP based the following flags don't work
31307 with it: --dump-headers, --dump-bodies, --dump-auth
31308
31309 Note that --timeout isn't supported (but --contimeout is).
31310
31311 C14
31312 C14 is supported through the SFTP backend.
31313
31314 See C14's documentation (https://www.online.net/en/storage/c14-cold-
31315 storage)
31316
31317 rsync.net
31318 rsync.net is supported through the SFTP backend.
31319
31320 See rsync.net's documentation of rclone examples
31321 (https://www.rsync.net/products/rclone.html).
31322
31324 SugarSync (https://sugarsync.com) is a cloud service that enables ac‐
31325 tive synchronization of files across computers and other devices for
31326 file backup, access, syncing, and sharing.
31327
31328 Configuration
31329 The initial setup for SugarSync involves getting a token from SugarSync
31330 which you can do with rclone. rclone config walks you through it.
31331
31332 Here is an example of how to make a remote called remote. First run:
31333
31334 rclone config
31335
31336 This will guide you through an interactive setup process:
31337
31338 No remotes found - make a new one
31339 n) New remote
31340 s) Set configuration password
31341 q) Quit config
31342 n/s/q> n
31343 name> remote
31344 Type of storage to configure.
31345 Enter a string value. Press Enter for the default ("").
31346 Choose a number from below, or type in your own value
31347 [snip]
31348 XX / Sugarsync
31349 \ "sugarsync"
31350 [snip]
31351 Storage> sugarsync
31352 ** See help for sugarsync backend at: https://rclone.org/sugarsync/ **
31353
31354 Sugarsync App ID.
31355 Leave blank to use rclone's.
31356 Enter a string value. Press Enter for the default ("").
31357 app_id>
31358 Sugarsync Access Key ID.
31359 Leave blank to use rclone's.
31360 Enter a string value. Press Enter for the default ("").
31361 access_key_id>
31362 Sugarsync Private Access Key
31363 Leave blank to use rclone's.
31364 Enter a string value. Press Enter for the default ("").
31365 private_access_key>
31366 Permanently delete files if true
31367 otherwise put them in the deleted files.
31368 Enter a boolean value (true or false). Press Enter for the default ("false").
31369 hard_delete>
31370 Edit advanced config? (y/n)
31371 y) Yes
31372 n) No (default)
31373 y/n> n
31374 Remote config
31375 Username (email address)> nick@craig-wood.com
31376 Your Sugarsync password is only required during setup and will not be stored.
31377 password:
31378 --------------------
31379 [remote]
31380 type = sugarsync
31381 refresh_token = https://api.sugarsync.com/app-authorization/XXXXXXXXXXXXXXXXXX
31382 --------------------
31383 y) Yes this is OK (default)
31384 e) Edit this remote
31385 d) Delete this remote
31386 y/e/d> y
31387
31388 Note that the config asks for your email and password but doesn't store
31389 them, it only uses them to get the initial token.
31390
31391 Once configured you can then use rclone like this,
31392
31393 List directories (sync folders) in top level of your SugarSync
31394
31395 rclone lsd remote:
31396
31397 List all the files in your SugarSync folder "Test"
31398
31399 rclone ls remote:Test
31400
31401 To copy a local directory to an SugarSync folder called backup
31402
31403 rclone copy /home/source remote:backup
31404
31405 Paths are specified as remote:path
31406
31407 Paths may be as deep as required, e.g. remote:directory/subdirectory.
31408
31409 NB you can't create files in the top level folder you have to create a
31410 folder, which rclone will create as a "Sync Folder" with SugarSync.
31411
31412 Modified time and hashes
31413 SugarSync does not support modification times or hashes, therefore
31414 syncing will default to --size-only checking. Note that using --update
31415 will work as rclone can read the time files were uploaded.
31416
31417 Restricted filename characters
31418 SugarSync replaces the default restricted characters set
31419 (https://rclone.org/overview/#restricted-characters) except for DEL.
31420
31421 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
31422 view/#invalid-utf8), as they can't be used in XML strings.
31423
31424 Deleting files
31425 Deleted files will be moved to the "Deleted items" folder by default.
31426
31427 However you can supply the flag --sugarsync-hard-delete or set the con‐
31428 fig parameter hard_delete = true if you would like files to be deleted
31429 straight away.
31430
31431 Standard options
31432 Here are the standard options specific to sugarsync (Sugarsync).
31433
31434 --sugarsync-app-id
31435 Sugarsync App ID.
31436
31437 Leave blank to use rclone's.
31438
31439 • Config: app_id
31440
31441 • Env Var: RCLONE_SUGARSYNC_APP_ID
31442
31443 • Type: string
31444
31445 • Default: ""
31446
31447 --sugarsync-access-key-id
31448 Sugarsync Access Key ID.
31449
31450 Leave blank to use rclone's.
31451
31452 • Config: access_key_id
31453
31454 • Env Var: RCLONE_SUGARSYNC_ACCESS_KEY_ID
31455
31456 • Type: string
31457
31458 • Default: ""
31459
31460 --sugarsync-private-access-key
31461 Sugarsync Private Access Key.
31462
31463 Leave blank to use rclone's.
31464
31465 • Config: private_access_key
31466
31467 • Env Var: RCLONE_SUGARSYNC_PRIVATE_ACCESS_KEY
31468
31469 • Type: string
31470
31471 • Default: ""
31472
31473 --sugarsync-hard-delete
31474 Permanently delete files if true otherwise put them in the deleted
31475 files.
31476
31477 • Config: hard_delete
31478
31479 • Env Var: RCLONE_SUGARSYNC_HARD_DELETE
31480
31481 • Type: bool
31482
31483 • Default: false
31484
31485 Advanced options
31486 Here are the advanced options specific to sugarsync (Sugarsync).
31487
31488 --sugarsync-refresh-token
31489 Sugarsync refresh token.
31490
31491 Leave blank normally, will be auto configured by rclone.
31492
31493 • Config: refresh_token
31494
31495 • Env Var: RCLONE_SUGARSYNC_REFRESH_TOKEN
31496
31497 • Type: string
31498
31499 • Default: ""
31500
31501 --sugarsync-authorization
31502 Sugarsync authorization.
31503
31504 Leave blank normally, will be auto configured by rclone.
31505
31506 • Config: authorization
31507
31508 • Env Var: RCLONE_SUGARSYNC_AUTHORIZATION
31509
31510 • Type: string
31511
31512 • Default: ""
31513
31514 --sugarsync-authorization-expiry
31515 Sugarsync authorization expiry.
31516
31517 Leave blank normally, will be auto configured by rclone.
31518
31519 • Config: authorization_expiry
31520
31521 • Env Var: RCLONE_SUGARSYNC_AUTHORIZATION_EXPIRY
31522
31523 • Type: string
31524
31525 • Default: ""
31526
31527 --sugarsync-user
31528 Sugarsync user.
31529
31530 Leave blank normally, will be auto configured by rclone.
31531
31532 • Config: user
31533
31534 • Env Var: RCLONE_SUGARSYNC_USER
31535
31536 • Type: string
31537
31538 • Default: ""
31539
31540 --sugarsync-root-id
31541 Sugarsync root id.
31542
31543 Leave blank normally, will be auto configured by rclone.
31544
31545 • Config: root_id
31546
31547 • Env Var: RCLONE_SUGARSYNC_ROOT_ID
31548
31549 • Type: string
31550
31551 • Default: ""
31552
31553 --sugarsync-deleted-id
31554 Sugarsync deleted folder id.
31555
31556 Leave blank normally, will be auto configured by rclone.
31557
31558 • Config: deleted_id
31559
31560 • Env Var: RCLONE_SUGARSYNC_DELETED_ID
31561
31562 • Type: string
31563
31564 • Default: ""
31565
31566 --sugarsync-encoding
31567 This sets the encoding for the backend.
31568
31569 See the encoding section in the overview (https://rclone.org/over‐
31570 view/#encoding) for more info.
31571
31572 • Config: encoding
31573
31574 • Env Var: RCLONE_SUGARSYNC_ENCODING
31575
31576 • Type: MultiEncoder
31577
31578 • Default: Slash,Ctl,InvalidUtf8,Dot
31579
31580 Limitations
31581 rclone about is not supported by the SugarSync backend. Backends with‐
31582 out this capability cannot determine free space for an rclone mount or
31583 use policy mfs (most free space) as a member of an rclone union remote.
31584
31585 See List of backends that do not support rclone about
31586 (https://rclone.org/overview/#optional-features) See rclone about
31587 (https://rclone.org/commands/rclone_about/)
31588
31590 Tardigrade (https://tardigrade.io) is an encrypted, secure, and
31591 cost-effective object storage service that enables you to store, back
31592 up, and archive large amounts of data in a decentralized manner.
31593
31594 Configuration
31595 To make a new Tardigrade configuration you need one of the following: *
31596 Access Grant that someone else shared with you. * API Key
31597 (https://documentation.tardigrade.io/getting-started/uploading-your-
31598 first-object/create-an-api-key) of a Tardigrade project you are a mem‐
31599 ber of.
31600
31601 Here is an example of how to make a remote called remote. First run:
31602
31603 rclone config
31604
31605 This will guide you through an interactive setup process:
31606
31607 Setup with access grant
31608 No remotes found - make a new one
31609 n) New remote
31610 s) Set configuration password
31611 q) Quit config
31612 n/s/q> n
31613 name> remote
31614 Type of storage to configure.
31615 Enter a string value. Press Enter for the default ("").
31616 Choose a number from below, or type in your own value
31617 [snip]
31618 XX / Tardigrade Decentralized Cloud Storage
31619 \ "tardigrade"
31620 [snip]
31621 Storage> tardigrade
31622 ** See help for tardigrade backend at: https://rclone.org/tardigrade/ **
31623
31624 Choose an authentication method.
31625 Enter a string value. Press Enter for the default ("existing").
31626 Choose a number from below, or type in your own value
31627 1 / Use an existing access grant.
31628 \ "existing"
31629 2 / Create a new access grant from satellite address, API key, and passphrase.
31630 \ "new"
31631 provider> existing
31632 Access Grant.
31633 Enter a string value. Press Enter for the default ("").
31634 access_grant> your-access-grant-received-by-someone-else
31635 Remote config
31636 --------------------
31637 [remote]
31638 type = tardigrade
31639 access_grant = your-access-grant-received-by-someone-else
31640 --------------------
31641 y) Yes this is OK (default)
31642 e) Edit this remote
31643 d) Delete this remote
31644 y/e/d> y
31645
31646 Setup with API key and passphrase
31647 No remotes found - make a new one
31648 n) New remote
31649 s) Set configuration password
31650 q) Quit config
31651 n/s/q> n
31652 name> remote
31653 Type of storage to configure.
31654 Enter a string value. Press Enter for the default ("").
31655 Choose a number from below, or type in your own value
31656 [snip]
31657 XX / Tardigrade Decentralized Cloud Storage
31658 \ "tardigrade"
31659 [snip]
31660 Storage> tardigrade
31661 ** See help for tardigrade backend at: https://rclone.org/tardigrade/ **
31662
31663 Choose an authentication method.
31664 Enter a string value. Press Enter for the default ("existing").
31665 Choose a number from below, or type in your own value
31666 1 / Use an existing access grant.
31667 \ "existing"
31668 2 / Create a new access grant from satellite address, API key, and passphrase.
31669 \ "new"
31670 provider> new
31671 Satellite Address. Custom satellite address should match the format: `<nodeid>@<address>:<port>`.
31672 Enter a string value. Press Enter for the default ("us-central-1.tardigrade.io").
31673 Choose a number from below, or type in your own value
31674 1 / US Central 1
31675 \ "us-central-1.tardigrade.io"
31676 2 / Europe West 1
31677 \ "europe-west-1.tardigrade.io"
31678 3 / Asia East 1
31679 \ "asia-east-1.tardigrade.io"
31680 satellite_address> 1
31681 API Key.
31682 Enter a string value. Press Enter for the default ("").
31683 api_key> your-api-key-for-your-tardigrade-project
31684 Encryption Passphrase. To access existing objects enter passphrase used for uploading.
31685 Enter a string value. Press Enter for the default ("").
31686 passphrase> your-human-readable-encryption-passphrase
31687 Remote config
31688 --------------------
31689 [remote]
31690 type = tardigrade
31691 satellite_address = 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S@us-central-1.tardigrade.io:7777
31692 api_key = your-api-key-for-your-tardigrade-project
31693 passphrase = your-human-readable-encryption-passphrase
31694 access_grant = the-access-grant-generated-from-the-api-key-and-passphrase
31695 --------------------
31696 y) Yes this is OK (default)
31697 e) Edit this remote
31698 d) Delete this remote
31699 y/e/d> y
31700
31701 Standard options
31702 Here are the standard options specific to tardigrade (Tardigrade Decen‐
31703 tralized Cloud Storage).
31704
31705 --tardigrade-provider
31706 Choose an authentication method.
31707
31708 • Config: provider
31709
31710 • Env Var: RCLONE_TARDIGRADE_PROVIDER
31711
31712 • Type: string
31713
31714 • Default: "existing"
31715
31716 • Examples:
31717
31718 • "existing"
31719
31720 • Use an existing access grant.
31721
31722 • "new"
31723
31724 • Create a new access grant from satellite address, API key, and
31725 passphrase.
31726
31727 --tardigrade-access-grant
31728 Access grant.
31729
31730 • Config: access_grant
31731
31732 • Env Var: RCLONE_TARDIGRADE_ACCESS_GRANT
31733
31734 • Type: string
31735
31736 • Default: ""
31737
31738 --tardigrade-satellite-address
31739 Satellite address.
31740
31741 Custom satellite address should match the format: <nodeid>@<ad‐
31742 dress>:<port>.
31743
31744 • Config: satellite_address
31745
31746 • Env Var: RCLONE_TARDIGRADE_SATELLITE_ADDRESS
31747
31748 • Type: string
31749
31750 • Default: "us-central-1.tardigrade.io"
31751
31752 • Examples:
31753
31754 • "us-central-1.tardigrade.io"
31755
31756 • US Central 1
31757
31758 • "europe-west-1.tardigrade.io"
31759
31760 • Europe West 1
31761
31762 • "asia-east-1.tardigrade.io"
31763
31764 • Asia East 1
31765
31766 --tardigrade-api-key
31767 API key.
31768
31769 • Config: api_key
31770
31771 • Env Var: RCLONE_TARDIGRADE_API_KEY
31772
31773 • Type: string
31774
31775 • Default: ""
31776
31777 --tardigrade-passphrase
31778 Encryption passphrase.
31779
31780 To access existing objects enter passphrase used for uploading.
31781
31782 • Config: passphrase
31783
31784 • Env Var: RCLONE_TARDIGRADE_PASSPHRASE
31785
31786 • Type: string
31787
31788 • Default: ""
31789
31790 Usage
31791 Paths are specified as remote:bucket (or remote: for the lsf command.)
31792 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
31793
31794 Once configured you can then use rclone like this.
31795
31796 Create a new bucket
31797 Use the mkdir command to create new bucket, e.g. bucket.
31798
31799 rclone mkdir remote:bucket
31800
31801 List all buckets
31802 Use the lsf command to list all buckets.
31803
31804 rclone lsf remote:
31805
31806 Note the colon (:) character at the end of the command line.
31807
31808 Delete a bucket
31809 Use the rmdir command to delete an empty bucket.
31810
31811 rclone rmdir remote:bucket
31812
31813 Use the purge command to delete a non-empty bucket with all its con‐
31814 tent.
31815
31816 rclone purge remote:bucket
31817
31818 Upload objects
31819 Use the copy command to upload an object.
31820
31821 rclone copy --progress /home/local/directory/file.ext remote:bucket/path/to/dir/
31822
31823 The --progress flag is for displaying progress information. Remove it
31824 if you don't need this information.
31825
31826 Use a folder in the local path to upload all its objects.
31827
31828 rclone copy --progress /home/local/directory/ remote:bucket/path/to/dir/
31829
31830 Only modified files will be copied.
31831
31832 List objects
31833 Use the ls command to list recursively all objects in a bucket.
31834
31835 rclone ls remote:bucket
31836
31837 Add the folder to the remote path to list recursively all objects in
31838 this folder.
31839
31840 rclone ls remote:bucket/path/to/dir/
31841
31842 Use the lsf command to list non-recursively all objects in a bucket or
31843 a folder.
31844
31845 rclone lsf remote:bucket/path/to/dir/
31846
31847 Download objects
31848 Use the copy command to download an object.
31849
31850 rclone copy --progress remote:bucket/path/to/dir/file.ext /home/local/directory/
31851
31852 The --progress flag is for displaying progress information. Remove it
31853 if you don't need this information.
31854
31855 Use a folder in the remote path to download all its objects.
31856
31857 rclone copy --progress remote:bucket/path/to/dir/ /home/local/directory/
31858
31859 Delete objects
31860 Use the deletefile command to delete a single object.
31861
31862 rclone deletefile remote:bucket/path/to/dir/file.ext
31863
31864 Use the delete command to delete all object in a folder.
31865
31866 rclone delete remote:bucket/path/to/dir/
31867
31868 Print the total size of objects
31869 Use the size command to print the total size of objects in a bucket or
31870 a folder.
31871
31872 rclone size remote:bucket/path/to/dir/
31873
31874 Sync two Locations
31875 Use the sync command to sync the source to the destination, changing
31876 the destination only, deleting any excess files.
31877
31878 rclone sync -i --progress /home/local/directory/ remote:bucket/path/to/dir/
31879
31880 The --progress flag is for displaying progress information. Remove it
31881 if you don't need this information.
31882
31883 Since this can cause data loss, test first with the --dry-run flag to
31884 see exactly what would be copied and deleted.
31885
31886 The sync can be done also from Tardigrade to the local file system.
31887
31888 rclone sync -i --progress remote:bucket/path/to/dir/ /home/local/directory/
31889
31890 Or between two Tardigrade buckets.
31891
31892 rclone sync -i --progress remote-us:bucket/path/to/dir/ remote-europe:bucket/path/to/dir/
31893
31894 Or even between another cloud storage and Tardigrade.
31895
31896 rclone sync -i --progress s3:bucket/path/to/dir/ tardigrade:bucket/path/to/dir/
31897
31898 Limitations
31899 rclone about is not supported by the rclone Tardigrade backend. Back‐
31900 ends without this capability cannot determine free space for an rclone
31901 mount or use policy mfs (most free space) as a member of an rclone
31902 union remote.
31903
31904 See List of backends that do not support rclone about
31905 (https://rclone.org/overview/#optional-features) See rclone about
31906 (https://rclone.org/commands/rclone_about/)
31907
31908 Known issues
31909 If you get errors like too many open files this usually happens when
31910 the default ulimit for system max open files is exceeded. Native Storj
31911 protocol opens a large number of TCP connections (each of which is
31912 counted as an open file). For a single upload stream you can expect
31913 110 TCP connections to be opened. For a single download stream you can
31914 expect 35. This batch of connections will be opened for every 64 MiB
31915 segment and you should also expect TCP connections to be reused. If
31916 you do many transfers you eventually open a connection to most storage
31917 nodes (thousands of nodes).
31918
31919 To fix these, please raise your system limits. You can do this issuing
31920 a ulimit -n 65536 just before you run rclone. To change the limits
31921 more permanently you can add this to your shell startup script, e.g.
31922 $HOME/.bashrc, or change the system-wide configuration, usually
31923 /etc/sysctl.conf and/or /etc/security/limits.conf, but please refer to
31924 your operating system manual.
31925
31927 This is a Backend for Uptobox file storage service. Uptobox is closer
31928 to a one-click hoster than a traditional cloud storage provider and
31929 therefore not suitable for long term storage.
31930
31931 Paths are specified as remote:path
31932
31933 Paths may be as deep as required, e.g. remote:directory/subdirectory.
31934
31935 Configuration
31936 To configure an Uptobox backend you'll need your personal api token.
31937 You'll find it in your account settings (https://uptobox.com/my_ac‐
31938 count)
31939
31940 Here is an example of how to make a remote called remote with the de‐
31941 fault setup. First run:
31942
31943 rclone config
31944
31945 This will guide you through an interactive setup process:
31946
31947 Current remotes:
31948
31949 Name Type
31950 ==== ====
31951 TestUptobox uptobox
31952
31953 e) Edit existing remote
31954 n) New remote
31955 d) Delete remote
31956 r) Rename remote
31957 c) Copy remote
31958 s) Set configuration password
31959 q) Quit config
31960 e/n/d/r/c/s/q> n
31961 name> uptobox
31962 Type of storage to configure.
31963 Enter a string value. Press Enter for the default ("").
31964 Choose a number from below, or type in your own value
31965 [...]
31966 37 / Uptobox
31967 \ "uptobox"
31968 [...]
31969 Storage> uptobox
31970 ** See help for uptobox backend at: https://rclone.org/uptobox/ **
31971
31972 Your API Key, get it from https://uptobox.com/my_account
31973 Enter a string value. Press Enter for the default ("").
31974 api_key> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
31975 Edit advanced config? (y/n)
31976 y) Yes
31977 n) No (default)
31978 y/n> n
31979 Remote config
31980 --------------------
31981 [uptobox]
31982 type = uptobox
31983 api_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
31984 --------------------
31985 y) Yes this is OK (default)
31986 e) Edit this remote
31987 d) Delete this remote
31988 y/e/d>
31989
31990 Once configured you can then use rclone like this,
31991
31992 List directories in top level of your Uptobox
31993
31994 rclone lsd remote:
31995
31996 List all the files in your Uptobox
31997
31998 rclone ls remote:
31999
32000 To copy a local directory to an Uptobox directory called backup
32001
32002 rclone copy /home/source remote:backup
32003
32004 Modified time and hashes
32005 Uptobox supports neither modified times nor checksums.
32006
32007 Restricted filename characters
32008 In addition to the default restricted characters set
32009 (https://rclone.org/overview/#restricted-characters) the following
32010 characters are also replaced:
32011
32012 Character Value Replacement
32013 ────────────────────────────────
32014 " 0x22 "
32015 ` 0x41 `
32016
32017 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
32018 view/#invalid-utf8), as they can't be used in XML strings.
32019
32020 Standard options
32021 Here are the standard options specific to uptobox (Uptobox).
32022
32023 --uptobox-access-token
32024 Your access token.
32025
32026 Get it from https://uptobox.com/my_account.
32027
32028 • Config: access_token
32029
32030 • Env Var: RCLONE_UPTOBOX_ACCESS_TOKEN
32031
32032 • Type: string
32033
32034 • Default: ""
32035
32036 Advanced options
32037 Here are the advanced options specific to uptobox (Uptobox).
32038
32039 --uptobox-encoding
32040 This sets the encoding for the backend.
32041
32042 See the encoding section in the overview (https://rclone.org/over‐
32043 view/#encoding) for more info.
32044
32045 • Config: encoding
32046
32047 • Env Var: RCLONE_UPTOBOX_ENCODING
32048
32049 • Type: MultiEncoder
32050
32051 • Default: Slash,LtGt,DoubleQuote,BackQuote,Del,Ctl,LeftSpace,In‐
32052 validUtf8,Dot
32053
32054 Limitations
32055 Uptobox will delete inactive files that have not been accessed in 60
32056 days.
32057
32058 rclone about is not supported by this backend an overview of used space
32059 can however been seen in the uptobox web interface.
32060
32062 The union remote provides a unification similar to UnionFS using other
32063 remotes.
32064
32065 Paths may be as deep as required or a local path, e.g. remote:directo‐
32066 ry/subdirectory or /directory/subdirectory.
32067
32068 During the initial setup with rclone config you will specify the up‐
32069 stream remotes as a space separated list. The upstream remotes can ei‐
32070 ther be a local paths or other remotes.
32071
32072 Attribute :ro and :nc can be attach to the end of path to tag the re‐
32073 mote as read only or no create, e.g. remote:directory/subdirectory:ro
32074 or remote:directory/subdirectory:nc.
32075
32076 Subfolders can be used in upstream remotes. Assume a union remote
32077 named backup with the remotes mydrive:private/backup. Invoking rclone
32078 mkdir backup:desktop is exactly the same as invoking rclone mkdir my‐
32079 drive:private/backup/desktop.
32080
32081 There will be no special handling of paths containing .. segments.
32082 Invoking rclone mkdir backup:../desktop is exactly the same as invoking
32083 rclone mkdir mydrive:private/backup/../desktop.
32084
32085 Configuration
32086 Here is an example of how to make a union called remote for local fold‐
32087 ers. First run:
32088
32089 rclone config
32090
32091 This will guide you through an interactive setup process:
32092
32093 No remotes found - make a new one
32094 n) New remote
32095 s) Set configuration password
32096 q) Quit config
32097 n/s/q> n
32098 name> remote
32099 Type of storage to configure.
32100 Choose a number from below, or type in your own value
32101 [snip]
32102 XX / Union merges the contents of several remotes
32103 \ "union"
32104 [snip]
32105 Storage> union
32106 List of space separated upstreams.
32107 Can be 'upstreama:test/dir upstreamb:', '\"upstreama:test/space:ro dir\" upstreamb:', etc.
32108 Enter a string value. Press Enter for the default ("").
32109 upstreams> remote1:dir1 remote2:dir2 remote3:dir3
32110 Policy to choose upstream on ACTION class.
32111 Enter a string value. Press Enter for the default ("epall").
32112 action_policy>
32113 Policy to choose upstream on CREATE class.
32114 Enter a string value. Press Enter for the default ("epmfs").
32115 create_policy>
32116 Policy to choose upstream on SEARCH class.
32117 Enter a string value. Press Enter for the default ("ff").
32118 search_policy>
32119 Cache time of usage and free space (in seconds). This option is only useful when a path preserving policy is used.
32120 Enter a signed integer. Press Enter for the default ("120").
32121 cache_time>
32122 Remote config
32123 --------------------
32124 [remote]
32125 type = union
32126 upstreams = remote1:dir1 remote2:dir2 remote3:dir3
32127 --------------------
32128 y) Yes this is OK
32129 e) Edit this remote
32130 d) Delete this remote
32131 y/e/d> y
32132 Current remotes:
32133
32134 Name Type
32135 ==== ====
32136 remote union
32137
32138 e) Edit existing remote
32139 n) New remote
32140 d) Delete remote
32141 r) Rename remote
32142 c) Copy remote
32143 s) Set configuration password
32144 q) Quit config
32145 e/n/d/r/c/s/q> q
32146
32147 Once configured you can then use rclone like this,
32148
32149 List directories in top level in remote1:dir1, remote2:dir2 and re‐
32150 mote3:dir3
32151
32152 rclone lsd remote:
32153
32154 List all the files in remote1:dir1, remote2:dir2 and remote3:dir3
32155
32156 rclone ls remote:
32157
32158 Copy another local directory to the union directory called source,
32159 which will be placed into remote3:dir3
32160
32161 rclone copy C:\source remote:source
32162
32163 Behavior / Policies
32164 The behavior of union backend is inspired by trapexit/mergerfs
32165 (https://github.com/trapexit/mergerfs). All functions are grouped into
32166 3 categories: action, create and search. These functions and cate‐
32167 gories can be assigned a policy which dictates what file or directory
32168 is chosen when performing that behavior. Any policy can be assigned to
32169 a function or category though some may not be very useful in practice.
32170 For instance: rand (random) may be useful for file creation (create)
32171 but could lead to very odd behavior if used for delete if there were
32172 more than one copy of the file.
32173
32174 Function / Category classifications
32175 Cate‐ Description Functions
32176 gory
32177 ─────────────────────────────────────────────────────────────────────────────
32178 action Writing Exist‐ move, rmdir, rmdirs, delete, purge and copy, sync
32179 ing file (as destination when file exist)
32180 create Create non-ex‐ copy, sync (as destination when file not exist)
32181 isting file
32182 search Reading and ls, lsd, lsl, cat, md5sum, sha1sum and copy, sync
32183 listing file (as source)
32184 N/A size, about
32185
32186 Path Preservation
32187 Policies, as described below, are of two basic types. path preserving
32188 and non-path preserving.
32189
32190 All policies which start with ep (epff, eplfs, eplus, epmfs, eprand)
32191 are path preserving. ep stands for existing path.
32192
32193 A path preserving policy will only consider upstreams where the rela‐
32194 tive path being accessed already exists.
32195
32196 When using non-path preserving policies paths will be created in target
32197 upstreams as necessary.
32198
32199 Quota Relevant Policies
32200 Some policies rely on quota information. These policies should be used
32201 only if your upstreams support the respective quota fields.
32202
32203 Policy Required Field
32204 ────────────────────────────
32205 lfs, eplfs Free
32206 mfs, epmfs Free
32207 lus, eplus Used
32208 lno, eplno Objects
32209
32210 To check if your upstream supports the field, run rclone about remote:
32211 [flags] and see if the required field exists.
32212
32213 Filters
32214 Policies basically search upstream remotes and create a list of files /
32215 paths for functions to work on. The policy is responsible for filter‐
32216 ing and sorting. The policy type defines the sorting but filtering is
32217 mostly uniform as described below.
32218
32219 • No search policies filter.
32220
32221 • All action policies will filter out remotes which are tagged as
32222 read-only.
32223
32224 • All create policies will filter out remotes which are tagged read-on‐
32225 ly or no-create.
32226
32227 If all remotes are filtered an error will be returned.
32228
32229 Policy descriptions
32230 The policies definition are inspired by trapexit/mergerfs
32231 (https://github.com/trapexit/mergerfs) but not exactly the same. Some
32232 policy definition could be different due to the much larger latency of
32233 remote file systems.
32234
32235 Policy Description
32236 ──────────────────────────────────────────────────────────────────────────
32237 all Search category: same as epall. Action category: same
32238 as epall. Create category: act on all upstreams.
32239 epall (existing Search category: Given this order configured, act on
32240 path, all) the first one found where the relative path exists.
32241 Action category: apply to all found. Create category:
32242 act on all upstreams where the relative path exists.
32243 epff (existing Act on the first one found, by the time upstreams re‐
32244 path, first ply, where the relative path exists.
32245 found)
32246 eplfs (existing Of all the upstreams on which the relative path exists
32247 path, least free choose the one with the least free space.
32248 space)
32249 eplus (existing Of all the upstreams on which the relative path exists
32250 path, least used choose the one with the least used space.
32251 space)
32252 eplno (existing Of all the upstreams on which the relative path exists
32253 path, least num‐ choose the one with the least number of objects.
32254 ber of objects)
32255 epmfs (existing Of all the upstreams on which the relative path exists
32256 path, most free choose the one with the most free space.
32257 space)
32258 eprand (existing Calls epall and then randomizes. Returns only one up‐
32259 path, random) stream.
32260 ff (first found) Search category: same as epff. Action category: same
32261 as epff. Create category: Act on the first one found
32262 by the time upstreams reply.
32263 lfs (least free Search category: same as eplfs. Action category: same
32264 space) as eplfs. Create category: Pick the upstream with the
32265 least available free space.
32266 lus (least used Search category: same as eplus. Action category: same
32267 space) as eplus. Create category: Pick the upstream with the
32268 least used space.
32269 lno (least num‐ Search category: same as eplno. Action category: same
32270 ber of objects) as eplno. Create category: Pick the upstream with the
32271 least number of objects.
32272 mfs (most free Search category: same as epmfs. Action category: same
32273 space) as epmfs. Create category: Pick the upstream with the
32274 most available free space.
32275 newest Pick the file / directory with the largest mtime.
32276 rand (random) Calls all and then randomizes. Returns only one up‐
32277 stream.
32278
32279 Standard options
32280 Here are the standard options specific to union (Union merges the con‐
32281 tents of several upstream fs).
32282
32283 --union-upstreams
32284 List of space separated upstreams.
32285
32286 Can be 'upstreama:test/dir upstreamb:', '"upstreama:test/space:ro dir"
32287 upstreamb:', etc.
32288
32289 • Config: upstreams
32290
32291 • Env Var: RCLONE_UNION_UPSTREAMS
32292
32293 • Type: string
32294
32295 • Default: ""
32296
32297 --union-action-policy
32298 Policy to choose upstream on ACTION category.
32299
32300 • Config: action_policy
32301
32302 • Env Var: RCLONE_UNION_ACTION_POLICY
32303
32304 • Type: string
32305
32306 • Default: "epall"
32307
32308 --union-create-policy
32309 Policy to choose upstream on CREATE category.
32310
32311 • Config: create_policy
32312
32313 • Env Var: RCLONE_UNION_CREATE_POLICY
32314
32315 • Type: string
32316
32317 • Default: "epmfs"
32318
32319 --union-search-policy
32320 Policy to choose upstream on SEARCH category.
32321
32322 • Config: search_policy
32323
32324 • Env Var: RCLONE_UNION_SEARCH_POLICY
32325
32326 • Type: string
32327
32328 • Default: "ff"
32329
32330 --union-cache-time
32331 Cache time of usage and free space (in seconds).
32332
32333 This option is only useful when a path preserving policy is used.
32334
32335 • Config: cache_time
32336
32337 • Env Var: RCLONE_UNION_CACHE_TIME
32338
32339 • Type: int
32340
32341 • Default: 120
32342
32344 Paths are specified as remote:path
32345
32346 Paths may be as deep as required, e.g. remote:directory/subdirectory.
32347
32348 Configuration
32349 To configure the WebDAV remote you will need to have a URL for it, and
32350 a username and password. If you know what kind of system you are con‐
32351 necting to then rclone can enable extra features.
32352
32353 Here is an example of how to make a remote called remote. First run:
32354
32355 rclone config
32356
32357 This will guide you through an interactive setup process:
32358
32359 No remotes found - make a new one
32360 n) New remote
32361 s) Set configuration password
32362 q) Quit config
32363 n/s/q> n
32364 name> remote
32365 Type of storage to configure.
32366 Choose a number from below, or type in your own value
32367 [snip]
32368 XX / Webdav
32369 \ "webdav"
32370 [snip]
32371 Storage> webdav
32372 URL of http host to connect to
32373 Choose a number from below, or type in your own value
32374 1 / Connect to example.com
32375 \ "https://example.com"
32376 url> https://example.com/remote.php/webdav/
32377 Name of the Webdav site/service/software you are using
32378 Choose a number from below, or type in your own value
32379 1 / Nextcloud
32380 \ "nextcloud"
32381 2 / Owncloud
32382 \ "owncloud"
32383 3 / Sharepoint Online, authenticated by Microsoft account.
32384 \ "sharepoint"
32385 4 / Sharepoint with NTLM authentication. Usually self-hosted or on-premises.
32386 \ "sharepoint-ntlm"
32387 5 / Other site/service or software
32388 \ "other"
32389 vendor> 1
32390 User name
32391 user> user
32392 Password.
32393 y) Yes type in my own password
32394 g) Generate random password
32395 n) No leave this optional password blank
32396 y/g/n> y
32397 Enter the password:
32398 password:
32399 Confirm the password:
32400 password:
32401 Bearer token instead of user/pass (e.g. a Macaroon)
32402 bearer_token>
32403 Remote config
32404 --------------------
32405 [remote]
32406 type = webdav
32407 url = https://example.com/remote.php/webdav/
32408 vendor = nextcloud
32409 user = user
32410 pass = *** ENCRYPTED ***
32411 bearer_token =
32412 --------------------
32413 y) Yes this is OK
32414 e) Edit this remote
32415 d) Delete this remote
32416 y/e/d> y
32417
32418 Once configured you can then use rclone like this,
32419
32420 List directories in top level of your WebDAV
32421
32422 rclone lsd remote:
32423
32424 List all the files in your WebDAV
32425
32426 rclone ls remote:
32427
32428 To copy a local directory to an WebDAV directory called backup
32429
32430 rclone copy /home/source remote:backup
32431
32432 Modified time and hashes
32433 Plain WebDAV does not support modified times. However when used with
32434 Owncloud or Nextcloud rclone will support modified times.
32435
32436 Likewise plain WebDAV does not support hashes, however when used with
32437 Owncloud or Nextcloud rclone will support SHA1 and MD5 hashes. Depend‐
32438 ing on the exact version of Owncloud or Nextcloud hashes may appear on
32439 all objects, or only on objects which had a hash uploaded with them.
32440
32441 Standard options
32442 Here are the standard options specific to webdav (Webdav).
32443
32444 --webdav-url
32445 URL of http host to connect to.
32446
32447 E.g. https://example.com.
32448
32449 • Config: url
32450
32451 • Env Var: RCLONE_WEBDAV_URL
32452
32453 • Type: string
32454
32455 • Default: ""
32456
32457 --webdav-vendor
32458 Name of the Webdav site/service/software you are using.
32459
32460 • Config: vendor
32461
32462 • Env Var: RCLONE_WEBDAV_VENDOR
32463
32464 • Type: string
32465
32466 • Default: ""
32467
32468 • Examples:
32469
32470 • "nextcloud"
32471
32472 • Nextcloud
32473
32474 • "owncloud"
32475
32476 • Owncloud
32477
32478 • "sharepoint"
32479
32480 • Sharepoint Online, authenticated by Microsoft account
32481
32482 • "sharepoint-ntlm"
32483
32484 • Sharepoint with NTLM authentication, usually self-hosted or
32485 on-premises
32486
32487 • "other"
32488
32489 • Other site/service or software
32490
32491 --webdav-user
32492 User name.
32493
32494 In case NTLM authentication is used, the username should be in the for‐
32495 mat 'Domain'.
32496
32497 • Config: user
32498
32499 • Env Var: RCLONE_WEBDAV_USER
32500
32501 • Type: string
32502
32503 • Default: ""
32504
32505 --webdav-pass
32506 Password.
32507
32508 NB Input to this must be obscured - see rclone obscure
32509 (https://rclone.org/commands/rclone_obscure/).
32510
32511 • Config: pass
32512
32513 • Env Var: RCLONE_WEBDAV_PASS
32514
32515 • Type: string
32516
32517 • Default: ""
32518
32519 --webdav-bearer-token
32520 Bearer token instead of user/pass (e.g. a Macaroon).
32521
32522 • Config: bearer_token
32523
32524 • Env Var: RCLONE_WEBDAV_BEARER_TOKEN
32525
32526 • Type: string
32527
32528 • Default: ""
32529
32530 Advanced options
32531 Here are the advanced options specific to webdav (Webdav).
32532
32533 --webdav-bearer-token-command
32534 Command to run to get a bearer token.
32535
32536 • Config: bearer_token_command
32537
32538 • Env Var: RCLONE_WEBDAV_BEARER_TOKEN_COMMAND
32539
32540 • Type: string
32541
32542 • Default: ""
32543
32544 --webdav-encoding
32545 This sets the encoding for the backend.
32546
32547 See the encoding section in the overview (https://rclone.org/over‐
32548 view/#encoding) for more info.
32549
32550 Default encoding is Slash,LtGt,DoubleQuote,Colon,Question,Aster‐
32551 isk,Pipe,Hash,Percent,BackSlash,Del,Ctl,LeftSpace,Left‐
32552 Tilde,RightSpace,RightPeriod,InvalidUtf8 for sharepoint-ntlm or identi‐
32553 ty otherwise.
32554
32555 • Config: encoding
32556
32557 • Env Var: RCLONE_WEBDAV_ENCODING
32558
32559 • Type: string
32560
32561 • Default: ""
32562
32563 --webdav-headers
32564 Set HTTP headers for all transactions.
32565
32566 Use this to set additional HTTP headers for all transactions
32567
32568 The input format is comma separated list of key,value pairs. Standard
32569 CSV encoding (https://godoc.org/encoding/csv) may be used.
32570
32571 For example to set a Cookie use 'Cookie,name=value', or '"Cook‐
32572 ie","name=value"'.
32573
32574 You can set multiple headers, e.g. '"Cookie","name=value","Authoriza‐
32575 tion","xxx"'.
32576
32577 • Config: headers
32578
32579 • Env Var: RCLONE_WEBDAV_HEADERS
32580
32581 • Type: CommaSepList
32582
32583 • Default:
32584
32585 Provider notes
32586 See below for notes on specific providers.
32587
32588 Owncloud
32589 Click on the settings cog in the bottom right of the page and this will
32590 show the WebDAV URL that rclone needs in the config step. It will look
32591 something like https://example.com/remote.php/webdav/.
32592
32593 Owncloud supports modified times using the X-OC-Mtime header.
32594
32595 Nextcloud
32596 This is configured in an identical way to Owncloud. Note that
32597 Nextcloud initially did not support streaming of files (rcat) whereas
32598 Owncloud did, but this (https://github.com/nextcloud/nextcloud-snap/is‐
32599 sues/365) seems to be fixed as of 2020-11-27 (tested with rclone
32600 v1.53.1 and Nextcloud Server v19).
32601
32602 Sharepoint Online
32603 Rclone can be used with Sharepoint provided by OneDrive for Business or
32604 Office365 Education Accounts. This feature is only needed for a few of
32605 these Accounts, mostly Office365 Education ones. These accounts are
32606 sometimes not verified by the domain owner github#1975
32607 (https://github.com/rclone/rclone/issues/1975)
32608
32609 This means that these accounts can't be added using the official API
32610 (other Accounts should work with the "onedrive" option). However, it
32611 is possible to access them using webdav.
32612
32613 To use a sharepoint remote with rclone, add it like this: First, you
32614 need to get your remote's URL:
32615
32616 • Go here (https://onedrive.live.com/about/en-us/signin/) to open your
32617 OneDrive or to sign in
32618
32619 • Now take a look at your address bar, the URL should look like this:
32620 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/_lay‐
32621 outs/15/onedrive.aspx
32622
32623 You'll only need this URL up to the email address. After that, you'll
32624 most likely want to add "/Documents". That subdirectory contains the
32625 actual data stored on your OneDrive.
32626
32627 Add the remote to rclone like this: Configure the url as
32628 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
32629 and use your normal account email and password for user and pass. If
32630 you have 2FA enabled, you have to generate an app password. Set the
32631 vendor to sharepoint.
32632
32633 Your config file should look like this:
32634
32635 [sharepoint]
32636 type = webdav
32637 url = https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
32638 vendor = sharepoint
32639 user = YourEmailAddress
32640 pass = encryptedpassword
32641
32642 Sharepoint with NTLM Authentication
32643 Use this option in case your (hosted) Sharepoint is not tied to
32644 OneDrive accounts and uses NTLM authentication.
32645
32646 To get the url configuration, similarly to the above, first navigate to
32647 the desired directory in your browser to get the URL, then strip every‐
32648 thing after the name of the opened directory.
32649
32650 Example: If the URL is: https://example.sharepoint.com/sites/12345/Doc‐
32651 uments/Forms/AllItems.aspx
32652
32653 The configuration to use would be: https://example.share‐
32654 point.com/sites/12345/Documents
32655
32656 Set the vendor to sharepoint-ntlm.
32657
32658 NTLM uses domain and user name combination for authentication, set user
32659 to DOMAIN\username.
32660
32661 Your config file should look like this:
32662
32663 [sharepoint]
32664 type = webdav
32665 url = https://[YOUR-DOMAIN]/some-path-to/Documents
32666 vendor = sharepoint-ntlm
32667 user = DOMAIN\user
32668 pass = encryptedpassword
32669
32670 Required Flags for SharePoint
32671 As SharePoint does some special things with uploaded documents, you
32672 won't be able to use the documents size or the documents hash to com‐
32673 pare if a file has been changed since the upload / which file is newer.
32674
32675 For Rclone calls copying files (especially Office files such as .docx,
32676 .xlsx, etc.) from/to SharePoint (like copy, sync, etc.), you should ap‐
32677 pend these flags to ensure Rclone uses the "Last Modified" datetime
32678 property to compare your documents:
32679
32680 --ignore-size --ignore-checksum --update
32681
32682 dCache
32683 dCache is a storage system that supports many protocols and authentica‐
32684 tion/authorisation schemes. For WebDAV clients, it allows users to au‐
32685 thenticate with username and password (BASIC), X.509, Kerberos, and
32686 various bearer tokens, including Macaroons (https://www.dcache.org/man‐
32687 uals/workshop-2017-05-29-Umea/000-Final/anupam_macaroons_v02.pdf) and
32688 OpenID-Connect (https://en.wikipedia.org/wiki/OpenID_Connect) access
32689 tokens.
32690
32691 Configure as normal using the other type. Don't enter a username or
32692 password, instead enter your Macaroon as the bearer_token.
32693
32694 The config will end up looking something like this.
32695
32696 [dcache]
32697 type = webdav
32698 url = https://dcache...
32699 vendor = other
32700 user =
32701 pass =
32702 bearer_token = your-macaroon
32703
32704 There is a script (https://github.com/sara-nl/GridScripts/blob/mas‐
32705 ter/get-macaroon) that obtains a Macaroon from a dCache WebDAV end‐
32706 point, and creates an rclone config file.
32707
32708 Macaroons may also be obtained from the dCacheView web-browser/Java‐
32709 Script client that comes with dCache.
32710
32711 OpenID-Connect
32712 dCache also supports authenticating with OpenID-Connect access tokens.
32713 OpenID-Connect is a protocol (based on OAuth 2.0) that allows services
32714 to identify users who have authenticated with some central service.
32715
32716 Support for OpenID-Connect in rclone is currently achieved using anoth‐
32717 er software package called oidc-agent (https://github.com/indigo-
32718 dc/oidc-agent). This is a command-line tool that facilitates obtaining
32719 an access token. Once installed and configured, an access token is ob‐
32720 tained by running the oidc-token command. The following example shows
32721 a (shortened) access token obtained from the XDC OIDC Provider.
32722
32723 paul@celebrimbor:~$ oidc-token XDC
32724 eyJraWQ[...]QFXDt0
32725 paul@celebrimbor:~$
32726
32727 Note Before the oidc-token command will work, the refresh token must be
32728 loaded into the oidc agent. This is done with the oidc-add command
32729 (e.g., oidc-add XDC). This is typically done once per login session.
32730 Full details on this and how to register oidc-agent with your OIDC
32731 Provider are provided in the oidc-agent documentation (https://indigo-
32732 dc.gitbooks.io/oidc-agent/).
32733
32734 The rclone bearer_token_command configuration option is used to fetch
32735 the access token from oidc-agent.
32736
32737 Configure as a normal WebDAV endpoint, using the 'other' vendor, leav‐
32738 ing the username and password empty. When prompted, choose to edit the
32739 advanced config and enter the command to get a bearer token (e.g.,
32740 oidc-agent XDC).
32741
32742 The following example config shows a WebDAV endpoint that uses
32743 oidc-agent to supply an access token from the XDC OIDC Provider.
32744
32745 [dcache]
32746 type = webdav
32747 url = https://dcache.example.org/
32748 vendor = other
32749 bearer_token_command = oidc-token XDC
32750
32752 Yandex Disk (https://disk.yandex.com) is a cloud storage solution cre‐
32753 ated by Yandex (https://yandex.com).
32754
32755 Configuration
32756 Here is an example of making a yandex configuration. First run
32757
32758 rclone config
32759
32760 This will guide you through an interactive setup process:
32761
32762 No remotes found - make a new one
32763 n) New remote
32764 s) Set configuration password
32765 n/s> n
32766 name> remote
32767 Type of storage to configure.
32768 Choose a number from below, or type in your own value
32769 [snip]
32770 XX / Yandex Disk
32771 \ "yandex"
32772 [snip]
32773 Storage> yandex
32774 Yandex Client Id - leave blank normally.
32775 client_id>
32776 Yandex Client Secret - leave blank normally.
32777 client_secret>
32778 Remote config
32779 Use auto config?
32780 * Say Y if not sure
32781 * Say N if you are working on a remote or headless machine
32782 y) Yes
32783 n) No
32784 y/n> y
32785 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
32786 Log in and authorize rclone for access
32787 Waiting for code...
32788 Got code
32789 --------------------
32790 [remote]
32791 client_id =
32792 client_secret =
32793 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"OAuth","expiry":"2016-12-29T12:27:11.362788025Z"}
32794 --------------------
32795 y) Yes this is OK
32796 e) Edit this remote
32797 d) Delete this remote
32798 y/e/d> y
32799
32800 See the remote setup docs (https://rclone.org/remote_setup/) for how to
32801 set it up on a machine with no Internet browser available.
32802
32803 Note that rclone runs a webserver on your local machine to collect the
32804 token as returned from Yandex Disk. This only runs from the moment it
32805 opens your browser to the moment you get back the verification code.
32806 This is on http://127.0.0.1:53682/ and this it may require you to un‐
32807 block it temporarily if you are running a host firewall.
32808
32809 Once configured you can then use rclone like this,
32810
32811 See top level directories
32812
32813 rclone lsd remote:
32814
32815 Make a new directory
32816
32817 rclone mkdir remote:directory
32818
32819 List the contents of a directory
32820
32821 rclone ls remote:directory
32822
32823 Sync /home/local/directory to the remote path, deleting any excess
32824 files in the path.
32825
32826 rclone sync -i /home/local/directory remote:directory
32827
32828 Yandex paths may be as deep as required, e.g. remote:directory/subdi‐
32829 rectory.
32830
32831 Modified time
32832 Modified times are supported and are stored accurate to 1 ns in custom
32833 metadata called rclone_modified in RFC3339 with nanoseconds format.
32834
32835 MD5 checksums
32836 MD5 checksums are natively supported by Yandex Disk.
32837
32838 Emptying Trash
32839 If you wish to empty your trash you can use the rclone cleanup remote:
32840 command which will permanently delete all your trashed files. This
32841 command does not take any path arguments.
32842
32843 Quota information
32844 To view your current quota you can use the rclone about remote: command
32845 which will display your usage limit (quota) and the current usage.
32846
32847 Restricted filename characters
32848 The default restricted characters set (https://rclone.org/overview/#re‐
32849 stricted-characters) are replaced.
32850
32851 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
32852 view/#invalid-utf8), as they can't be used in JSON strings.
32853
32854 Standard options
32855 Here are the standard options specific to yandex (Yandex Disk).
32856
32857 --yandex-client-id
32858 OAuth Client Id.
32859
32860 Leave blank normally.
32861
32862 • Config: client_id
32863
32864 • Env Var: RCLONE_YANDEX_CLIENT_ID
32865
32866 • Type: string
32867
32868 • Default: ""
32869
32870 --yandex-client-secret
32871 OAuth Client Secret.
32872
32873 Leave blank normally.
32874
32875 • Config: client_secret
32876
32877 • Env Var: RCLONE_YANDEX_CLIENT_SECRET
32878
32879 • Type: string
32880
32881 • Default: ""
32882
32883 Advanced options
32884 Here are the advanced options specific to yandex (Yandex Disk).
32885
32886 --yandex-token
32887 OAuth Access Token as a JSON blob.
32888
32889 • Config: token
32890
32891 • Env Var: RCLONE_YANDEX_TOKEN
32892
32893 • Type: string
32894
32895 • Default: ""
32896
32897 --yandex-auth-url
32898 Auth server URL.
32899
32900 Leave blank to use the provider defaults.
32901
32902 • Config: auth_url
32903
32904 • Env Var: RCLONE_YANDEX_AUTH_URL
32905
32906 • Type: string
32907
32908 • Default: ""
32909
32910 --yandex-token-url
32911 Token server url.
32912
32913 Leave blank to use the provider defaults.
32914
32915 • Config: token_url
32916
32917 • Env Var: RCLONE_YANDEX_TOKEN_URL
32918
32919 • Type: string
32920
32921 • Default: ""
32922
32923 --yandex-encoding
32924 This sets the encoding for the backend.
32925
32926 See the encoding section in the overview (https://rclone.org/over‐
32927 view/#encoding) for more info.
32928
32929 • Config: encoding
32930
32931 • Env Var: RCLONE_YANDEX_ENCODING
32932
32933 • Type: MultiEncoder
32934
32935 • Default: Slash,Del,Ctl,InvalidUtf8,Dot
32936
32937 Limitations
32938 When uploading very large files (bigger than about 5 GiB) you will need
32939 to increase the --timeout parameter. This is because Yandex pauses
32940 (perhaps to calculate the MD5SUM for the entire file) before returning
32941 confirmation that the file has been uploaded. The default handling of
32942 timeouts in rclone is to assume a 5 minute pause is an error and close
32943 the connection - you'll see net/http: timeout awaiting response headers
32944 errors in the logs if this is happening. Setting the timeout to twice
32945 the max size of file in GiB should be enough, so if you want to upload
32946 a 30 GiB file set a timeout of 2 * 30 = 60m, that is --timeout 60m.
32947
32948 Having a Yandex Mail account is mandatory to use the Yandex.Disk sub‐
32949 scription. Token generation will work without a mail account, but
32950 Rclone won't be able to complete any actions.
32951
32952 [403 - DiskUnsupportedUserAccountTypeError] User account type is not supported.
32953
32955 Zoho WorkDrive (https://www.zoho.com/workdrive/) is a cloud storage so‐
32956 lution created by Zoho (https://zoho.com).
32957
32958 Configuration
32959 Here is an example of making a zoho configuration. First run
32960
32961 rclone config
32962
32963 This will guide you through an interactive setup process:
32964
32965 No remotes found - make a new one
32966 n) New remote
32967 s) Set configuration password
32968 n/s> n
32969 name> remote
32970 Type of storage to configure.
32971 Enter a string value. Press Enter for the default ("").
32972 Choose a number from below, or type in your own value
32973 [snip]
32974 XX / Zoho
32975 \ "zoho"
32976 [snip]
32977 Storage> zoho
32978 ** See help for zoho backend at: https://rclone.org/zoho/ **
32979
32980 OAuth Client Id
32981 Leave blank normally.
32982 Enter a string value. Press Enter for the default ("").
32983 client_id>
32984 OAuth Client Secret
32985 Leave blank normally.
32986 Enter a string value. Press Enter for the default ("").
32987 client_secret>
32988 Edit advanced config? (y/n)
32989 y) Yes
32990 n) No (default)
32991 y/n> n
32992 Remote config
32993 Use auto config?
32994 * Say Y if not sure
32995 * Say N if you are working on a remote or headless machine
32996 y) Yes (default)
32997 n) No
32998 y/n>
32999 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=LVn0IHzxej1ZkmQw31d0wQ
33000 Log in and authorize rclone for access
33001 Waiting for code...
33002 Got code
33003 Choose a number from below, or type in your own value
33004 1 / MyTeam
33005 \ "4u28602177065ff22426787a6745dba8954eb"
33006 Enter a Team ID> 1
33007 Choose a number from below, or type in your own value
33008 1 / General
33009 \ "4u2869d2aa6fca04f4f2f896b6539243b85b1"
33010 Enter a Workspace ID> 1
33011 --------------------
33012 [remote]
33013 type = zoho
33014 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"Zoho-oauthtoken","refresh_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","expiry":"2020-10-12T00:54:52.370275223+02:00"}
33015 root_folder_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
33016 --------------------
33017 y) Yes this is OK (default)
33018 e) Edit this remote
33019 d) Delete this remote
33020 y/e/d>
33021
33022 See the remote setup docs (https://rclone.org/remote_setup/) for how to
33023 set it up on a machine with no Internet browser available.
33024
33025 Rclone runs a webserver on your local computer to collect the autho‐
33026 rization token from Zoho Workdrive. This is only from the moment your
33027 browser is opened until the token is returned. The webserver runs on
33028 http://127.0.0.1:53682/. If local port 53682 is protected by a fire‐
33029 wall you may need to temporarily unblock the firewall to complete au‐
33030 thorization.
33031
33032 Once configured you can then use rclone like this,
33033
33034 See top level directories
33035
33036 rclone lsd remote:
33037
33038 Make a new directory
33039
33040 rclone mkdir remote:directory
33041
33042 List the contents of a directory
33043
33044 rclone ls remote:directory
33045
33046 Sync /home/local/directory to the remote path, deleting any excess
33047 files in the path.
33048
33049 rclone sync -i /home/local/directory remote:directory
33050
33051 Zoho paths may be as deep as required, eg remote:directory/subdirecto‐
33052 ry.
33053
33054 Modified time
33055 Modified times are currently not supported for Zoho Workdrive
33056
33057 Checksums
33058 No checksums are supported.
33059
33060 Usage information
33061 To view your current quota you can use the rclone about remote: command
33062 which will display your current usage.
33063
33064 Restricted filename characters
33065 Only control characters and invalid UTF-8 are replaced. In addition
33066 most Unicode full-width characters are not supported at all and will be
33067 removed from filenames during upload.
33068
33069 Standard options
33070 Here are the standard options specific to zoho (Zoho).
33071
33072 --zoho-client-id
33073 OAuth Client Id.
33074
33075 Leave blank normally.
33076
33077 • Config: client_id
33078
33079 • Env Var: RCLONE_ZOHO_CLIENT_ID
33080
33081 • Type: string
33082
33083 • Default: ""
33084
33085 --zoho-client-secret
33086 OAuth Client Secret.
33087
33088 Leave blank normally.
33089
33090 • Config: client_secret
33091
33092 • Env Var: RCLONE_ZOHO_CLIENT_SECRET
33093
33094 • Type: string
33095
33096 • Default: ""
33097
33098 --zoho-region
33099 Zoho region to connect to.
33100
33101 You'll have to use the region your organization is registered in. If
33102 not sure use the same top level domain as you connect to in your brows‐
33103 er.
33104
33105 • Config: region
33106
33107 • Env Var: RCLONE_ZOHO_REGION
33108
33109 • Type: string
33110
33111 • Default: ""
33112
33113 • Examples:
33114
33115 • "com"
33116
33117 • United states / Global
33118
33119 • "eu"
33120
33121 • Europe
33122
33123 • "in"
33124
33125 • India
33126
33127 • "com.au"
33128
33129 • Australia
33130
33131 Advanced options
33132 Here are the advanced options specific to zoho (Zoho).
33133
33134 --zoho-token
33135 OAuth Access Token as a JSON blob.
33136
33137 • Config: token
33138
33139 • Env Var: RCLONE_ZOHO_TOKEN
33140
33141 • Type: string
33142
33143 • Default: ""
33144
33145 --zoho-auth-url
33146 Auth server URL.
33147
33148 Leave blank to use the provider defaults.
33149
33150 • Config: auth_url
33151
33152 • Env Var: RCLONE_ZOHO_AUTH_URL
33153
33154 • Type: string
33155
33156 • Default: ""
33157
33158 --zoho-token-url
33159 Token server url.
33160
33161 Leave blank to use the provider defaults.
33162
33163 • Config: token_url
33164
33165 • Env Var: RCLONE_ZOHO_TOKEN_URL
33166
33167 • Type: string
33168
33169 • Default: ""
33170
33171 --zoho-encoding
33172 This sets the encoding for the backend.
33173
33174 See the encoding section in the overview (https://rclone.org/over‐
33175 view/#encoding) for more info.
33176
33177 • Config: encoding
33178
33179 • Env Var: RCLONE_ZOHO_ENCODING
33180
33181 • Type: MultiEncoder
33182
33183 • Default: Del,Ctl,InvalidUtf8
33184
33186 Local paths are specified as normal filesystem paths, e.g.
33187 /path/to/wherever, so
33188
33189 rclone sync -i /home/source /tmp/destination
33190
33191 Will sync /home/source to /tmp/destination.
33192
33193 Configuration
33194 For consistencies sake one can also configure a remote of type local in
33195 the config file, and access the local filesystem using rclone remote
33196 paths, e.g. remote:path/to/wherever, but it is probably easier not to.
33197
33198 Modified time
33199 Rclone reads and writes the modified time using an accuracy determined
33200 by the OS. Typically this is 1ns on Linux, 10 ns on Windows and 1 Sec‐
33201 ond on OS X.
33202
33203 Filenames
33204 Filenames should be encoded in UTF-8 on disk. This is the normal case
33205 for Windows and OS X.
33206
33207 There is a bit more uncertainty in the Linux world, but new distribu‐
33208 tions will have UTF-8 encoded files names. If you are using an old
33209 Linux filesystem with non UTF-8 file names (e.g. latin1) then you can
33210 use the convmv tool to convert the filesystem to UTF-8. This tool is
33211 available in most distributions' package managers.
33212
33213 If an invalid (non-UTF8) filename is read, the invalid characters will
33214 be replaced with a quoted representation of the invalid bytes. The
33215 name gro\xdf will be transferred as gro‛DF. rclone will emit a debug
33216 message in this case (use -v to see), e.g.
33217
33218 Local file system at .: Replacing invalid UTF-8 characters in "gro\xdf"
33219
33220 Restricted characters
33221 With the local backend, restrictions on the characters that are usable
33222 in file or directory names depend on the operating system. To check
33223 what rclone will replace by default on your system, run rclone help
33224 flags local-encoding.
33225
33226 On non Windows platforms the following characters are replaced when
33227 handling file names.
33228
33229 Character Value Replacement
33230 ────────────────────────────────
33231 NUL 0x00 ␀
33232 / 0x2F /
33233
33234 When running on Windows the following characters are replaced. This
33235 list is based on the Windows file naming conventions (https://docs.mi‐
33236 crosoft.com/de-de/windows/desktop/FileIO/naming-a-file#naming-conven‐
33237 tions).
33238
33239 Character Value Replacement
33240 ────────────────────────────────
33241 NUL 0x00 ␀
33242 SOH 0x01 ␁
33243 STX 0x02 ␂
33244 ETX 0x03 ␃
33245 EOT 0x04 ␄
33246 ENQ 0x05 ␅
33247 ACK 0x06 ␆
33248 BEL 0x07 ␇
33249 BS 0x08 ␈
33250 HT 0x09 ␉
33251 LF 0x0A ␊
33252 VT 0x0B ␋
33253 FF 0x0C ␌
33254 CR 0x0D ␍
33255 SO 0x0E ␎
33256 SI 0x0F ␏
33257 DLE 0x10 ␐
33258 DC1 0x11 ␑
33259 DC2 0x12 ␒
33260 DC3 0x13 ␓
33261 DC4 0x14 ␔
33262 NAK 0x15 ␕
33263 SYN 0x16 ␖
33264 ETB 0x17 ␗
33265
33266 CAN 0x18 ␘
33267 EM 0x19 ␙
33268 SUB 0x1A ␚
33269 ESC 0x1B ␛
33270 FS 0x1C ␜
33271 GS 0x1D ␝
33272 RS 0x1E ␞
33273 US 0x1F ␟
33274 / 0x2F /
33275 " 0x22 "
33276 * 0x2A *
33277 : 0x3A :
33278 < 0x3C <
33279 > 0x3E >
33280 ? 0x3F ?
33281 \ 0x5C \
33282 | 0x7C |
33283
33284 File names on Windows can also not end with the following characters.
33285 These only get replaced if they are the last character in the name:
33286
33287 Character Value Replacement
33288 ────────────────────────────────
33289 SP 0x20 ␠
33290 . 0x2E .
33291
33292 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
33293 view/#invalid-utf8), as they can't be converted to UTF-16.
33294
33295 Paths on Windows
33296 On Windows there are many ways of specifying a path to a file system
33297 resource. Local paths can be absolute, like C:\path\to\wherever, or
33298 relative, like ..\wherever. Network paths in UNC format, \\serv‐
33299 er\share, are also supported. Path separator can be either \ (as in
33300 C:\path\to\wherever) or / (as in C:/path/to/wherever). Length of these
33301 paths are limited to 259 characters for files and 247 characters for
33302 directories, but there is an alternative extended-length path format
33303 increasing the limit to (approximately) 32,767 characters. This format
33304 requires absolute paths and the use of prefix \\?\, e.g.
33305 \\?\D:\some\very\long\path. For convenience rclone will automatically
33306 convert regular paths into the corresponding extended-length paths, so
33307 in most cases you do not have to worry about this (read more below).
33308
33309 Note that Windows supports using the same prefix \\?\ to specify path
33310 to volumes identified by their GUID, e.g. \\?\Vol‐
33311 ume{b75e2c83-0000-0000-0000-602f00000000}\some\path. This is not sup‐
33312 ported in rclone, due to an issue (https://github.com/golang/go/is‐
33313 sues/39785) in go.
33314
33315 Long paths
33316 Rclone handles long paths automatically, by converting all paths to ex‐
33317 tended-length path format (https://docs.microsoft.com/en-us/win‐
33318 dows/win32/fileio/maximum-file-path-limitation), which allows paths up
33319 to 32,767 characters.
33320
33321 This conversion will ensure paths are absolute and prefix them with the
33322 \\?\. This is why you will see that your paths, for instance .\files
33323 is shown as path \\?\C:\files in the output, and \\server\share as
33324 \\?\UNC\server\share.
33325
33326 However, in rare cases this may cause problems with buggy file system
33327 drivers like EncFS (https://github.com/rclone/rclone/issues/261). To
33328 disable UNC conversion globally, add this to your .rclone.conf file:
33329
33330 [local]
33331 nounc = true
33332
33333 If you want to selectively disable UNC, you can add it to a separate
33334 entry like this:
33335
33336 [nounc]
33337 type = local
33338 nounc = true
33339
33340 And use rclone like this:
33341
33342 rclone copy c:\src nounc:z:\dst
33343
33344 This will use UNC paths on c:\src but not on z:\dst. Of course this
33345 will cause problems if the absolute path length of a file exceeds 259
33346 characters on z, so only use this option if you have to.
33347
33348 Symlinks / Junction points
33349 Normally rclone will ignore symlinks or junction points (which behave
33350 like symlinks under Windows).
33351
33352 If you supply --copy-links or -L then rclone will follow the symlink
33353 and copy the pointed to file or directory. Note that this flag is in‐
33354 compatible with --links / -l.
33355
33356 This flag applies to all commands.
33357
33358 For example, supposing you have a directory structure like this
33359
33360 $ tree /tmp/a
33361 /tmp/a
33362 ├── b -> ../b
33363 ├── expected -> ../expected
33364 ├── one
33365 └── two
33366 └── three
33367
33368 Then you can see the difference with and without the flag like this
33369
33370 $ rclone ls /tmp/a
33371 6 one
33372 6 two/three
33373
33374 and
33375
33376 $ rclone -L ls /tmp/a
33377 4174 expected
33378 6 one
33379 6 two/three
33380 6 b/two
33381 6 b/one
33382
33383 --links, -l
33384 Normally rclone will ignore symlinks or junction points (which behave
33385 like symlinks under Windows).
33386
33387 If you supply this flag then rclone will copy symbolic links from the
33388 local storage, and store them as text files, with a '.rclonelink' suf‐
33389 fix in the remote storage.
33390
33391 The text file will contain the target of the symbolic link (see exam‐
33392 ple).
33393
33394 This flag applies to all commands.
33395
33396 For example, supposing you have a directory structure like this
33397
33398 $ tree /tmp/a
33399 /tmp/a
33400 ├── file1 -> ./file4
33401 └── file2 -> /home/user/file3
33402
33403 Copying the entire directory with '-l'
33404
33405 $ rclone copyto -l /tmp/a/file1 remote:/tmp/a/
33406
33407 The remote files are created with a '.rclonelink' suffix
33408
33409 $ rclone ls remote:/tmp/a
33410 5 file1.rclonelink
33411 14 file2.rclonelink
33412
33413 The remote files will contain the target of the symbolic links
33414
33415 $ rclone cat remote:/tmp/a/file1.rclonelink
33416 ./file4
33417
33418 $ rclone cat remote:/tmp/a/file2.rclonelink
33419 /home/user/file3
33420
33421 Copying them back with '-l'
33422
33423 $ rclone copyto -l remote:/tmp/a/ /tmp/b/
33424
33425 $ tree /tmp/b
33426 /tmp/b
33427 ├── file1 -> ./file4
33428 └── file2 -> /home/user/file3
33429
33430 However, if copied back without '-l'
33431
33432 $ rclone copyto remote:/tmp/a/ /tmp/b/
33433
33434 $ tree /tmp/b
33435 /tmp/b
33436 ├── file1.rclonelink
33437 └── file2.rclonelink
33438
33439 Note that this flag is incompatible with -copy-links / -L.
33440
33441 Restricting filesystems with --one-file-system
33442 Normally rclone will recurse through filesystems as mounted.
33443
33444 However if you set --one-file-system or -x this tells rclone to stay in
33445 the filesystem specified by the root and not to recurse into different
33446 file systems.
33447
33448 For example if you have a directory hierarchy like this
33449
33450 root
33451 ├── disk1 - disk1 mounted on the root
33452 │ └── file3 - stored on disk1
33453 ├── disk2 - disk2 mounted on the root
33454 │ └── file4 - stored on disk12
33455 ├── file1 - stored on the root disk
33456 └── file2 - stored on the root disk
33457
33458 Using rclone --one-file-system copy root remote: will only copy file1
33459 and file2. Eg
33460
33461 $ rclone -q --one-file-system ls root
33462 0 file1
33463 0 file2
33464
33465 $ rclone -q ls root
33466 0 disk1/file3
33467 0 disk2/file4
33468 0 file1
33469 0 file2
33470
33471 NB Rclone (like most unix tools such as du, rsync and tar) treats a
33472 bind mount to the same device as being on the same filesystem.
33473
33474 NB This flag is only available on Unix based systems. On systems where
33475 it isn't supported (e.g. Windows) it will be ignored.
33476
33477 Advanced options
33478 Here are the advanced options specific to local (Local Disk).
33479
33480 --local-nounc
33481 Disable UNC (long path names) conversion on Windows.
33482
33483 • Config: nounc
33484
33485 • Env Var: RCLONE_LOCAL_NOUNC
33486
33487 • Type: string
33488
33489 • Default: ""
33490
33491 • Examples:
33492
33493 • "true"
33494
33495 • Disables long file names.
33496
33497 --copy-links / -L
33498 Follow symlinks and copy the pointed to item.
33499
33500 • Config: copy_links
33501
33502 • Env Var: RCLONE_LOCAL_COPY_LINKS
33503
33504 • Type: bool
33505
33506 • Default: false
33507
33508 --links / -l
33509 Translate symlinks to/from regular files with a '.rclonelink' exten‐
33510 sion.
33511
33512 • Config: links
33513
33514 • Env Var: RCLONE_LOCAL_LINKS
33515
33516 • Type: bool
33517
33518 • Default: false
33519
33520 --skip-links
33521 Don't warn about skipped symlinks.
33522
33523 This flag disables warning messages on skipped symlinks or junction
33524 points, as you explicitly acknowledge that they should be skipped.
33525
33526 • Config: skip_links
33527
33528 • Env Var: RCLONE_LOCAL_SKIP_LINKS
33529
33530 • Type: bool
33531
33532 • Default: false
33533
33534 --local-zero-size-links
33535 Assume the Stat size of links is zero (and read them instead) (depre‐
33536 cated).
33537
33538 Rclone used to use the Stat size of links as the link size, but this
33539 fails in quite a few places:
33540
33541 • Windows
33542
33543 • On some virtual filesystems (such ash LucidLink)
33544
33545 • Android
33546
33547 So rclone now always reads the link.
33548
33549 • Config: zero_size_links
33550
33551 • Env Var: RCLONE_LOCAL_ZERO_SIZE_LINKS
33552
33553 • Type: bool
33554
33555 • Default: false
33556
33557 --local-unicode-normalization
33558 Apply unicode NFC normalization to paths and filenames.
33559
33560 This flag can be used to normalize file names into unicode NFC form
33561 that are read from the local filesystem.
33562
33563 Rclone does not normally touch the encoding of file names it reads from
33564 the file system.
33565
33566 This can be useful when using macOS as it normally provides decomposed
33567 (NFD) unicode which in some language (eg Korean) doesn't display prop‐
33568 erly on some OSes.
33569
33570 Note that rclone compares filenames with unicode normalization in the
33571 sync routine so this flag shouldn't normally be used.
33572
33573 • Config: unicode_normalization
33574
33575 • Env Var: RCLONE_LOCAL_UNICODE_NORMALIZATION
33576
33577 • Type: bool
33578
33579 • Default: false
33580
33581 --local-no-check-updated
33582 Don't check to see if the files change during upload.
33583
33584 Normally rclone checks the size and modification time of files as they
33585 are being uploaded and aborts with a message which starts "can't copy -
33586 source file is being updated" if the file changes during upload.
33587
33588 However on some file systems this modification time check may fail
33589 (e.g. Glusterfs #2206 (https://github.com/rclone/rclone/issues/2206))
33590 so this check can be disabled with this flag.
33591
33592 If this flag is set, rclone will use its best efforts to transfer a
33593 file which is being updated. If the file is only having things append‐
33594 ed to it (e.g. a log) then rclone will transfer the log file with the
33595 size it had the first time rclone saw it.
33596
33597 If the file is being modified throughout (not just appended to) then
33598 the transfer may fail with a hash check failure.
33599
33600 In detail, once the file has had stat() called on it for the first time
33601 we:
33602
33603 • Only transfer the size that stat gave
33604
33605 • Only checksum the size that stat gave
33606
33607 • Don't update the stat info for the file
33608
33609 • Config: no_check_updated
33610
33611 • Env Var: RCLONE_LOCAL_NO_CHECK_UPDATED
33612
33613 • Type: bool
33614
33615 • Default: false
33616
33617 --one-file-system / -x
33618 Don't cross filesystem boundaries (unix/macOS only).
33619
33620 • Config: one_file_system
33621
33622 • Env Var: RCLONE_LOCAL_ONE_FILE_SYSTEM
33623
33624 • Type: bool
33625
33626 • Default: false
33627
33628 --local-case-sensitive
33629 Force the filesystem to report itself as case sensitive.
33630
33631 Normally the local backend declares itself as case insensitive on Win‐
33632 dows/macOS and case sensitive for everything else. Use this flag to
33633 override the default choice.
33634
33635 • Config: case_sensitive
33636
33637 • Env Var: RCLONE_LOCAL_CASE_SENSITIVE
33638
33639 • Type: bool
33640
33641 • Default: false
33642
33643 --local-case-insensitive
33644 Force the filesystem to report itself as case insensitive.
33645
33646 Normally the local backend declares itself as case insensitive on Win‐
33647 dows/macOS and case sensitive for everything else. Use this flag to
33648 override the default choice.
33649
33650 • Config: case_insensitive
33651
33652 • Env Var: RCLONE_LOCAL_CASE_INSENSITIVE
33653
33654 • Type: bool
33655
33656 • Default: false
33657
33658 --local-no-preallocate
33659 Disable preallocation of disk space for transferred files.
33660
33661 Preallocation of disk space helps prevent filesystem fragmentation.
33662 However, some virtual filesystem layers (such as Google Drive File
33663 Stream) may incorrectly set the actual file size equal to the preallo‐
33664 cated space, causing checksum and file size checks to fail. Use this
33665 flag to disable preallocation.
33666
33667 • Config: no_preallocate
33668
33669 • Env Var: RCLONE_LOCAL_NO_PREALLOCATE
33670
33671 • Type: bool
33672
33673 • Default: false
33674
33675 --local-no-sparse
33676 Disable sparse files for multi-thread downloads.
33677
33678 On Windows platforms rclone will make sparse files when doing mul‐
33679 ti-thread downloads. This avoids long pauses on large files where the
33680 OS zeros the file. However sparse files may be undesirable as they
33681 cause disk fragmentation and can be slow to work with.
33682
33683 • Config: no_sparse
33684
33685 • Env Var: RCLONE_LOCAL_NO_SPARSE
33686
33687 • Type: bool
33688
33689 • Default: false
33690
33691 --local-no-set-modtime
33692 Disable setting modtime.
33693
33694 Normally rclone updates modification time of files after they are done
33695 uploading. This can cause permissions issues on Linux platforms when
33696 the user rclone is running as does not own the file uploaded, such as
33697 when copying to a CIFS mount owned by another user. If this option is
33698 enabled, rclone will no longer update the modtime after copying a file.
33699
33700 • Config: no_set_modtime
33701
33702 • Env Var: RCLONE_LOCAL_NO_SET_MODTIME
33703
33704 • Type: bool
33705
33706 • Default: false
33707
33708 --local-encoding
33709 This sets the encoding for the backend.
33710
33711 See the encoding section in the overview (https://rclone.org/over‐
33712 view/#encoding) for more info.
33713
33714 • Config: encoding
33715
33716 • Env Var: RCLONE_LOCAL_ENCODING
33717
33718 • Type: MultiEncoder
33719
33720 • Default: Slash,Dot
33721
33722 Backend commands
33723 Here are the commands specific to the local backend.
33724
33725 Run them with
33726
33727 rclone backend COMMAND remote:
33728
33729 The help below will explain what arguments each command takes.
33730
33731 See the "rclone backend" command (https://rclone.org/com‐
33732 mands/rclone_backend/) for more info on how to pass options and argu‐
33733 ments.
33734
33735 These can be run on a running backend using the rc command backend/com‐
33736 mand (https://rclone.org/rc/#backend/command).
33737
33738 noop
33739 A null operation for testing backend commands
33740
33741 rclone backend noop remote: [options] [<arguments>+]
33742
33743 This is a test command which has some options you can try to change the
33744 output.
33745
33746 Options:
33747
33748 • "echo": echo the input arguments
33749
33750 • "error": return an error based on option value
33751
33753 v1.57.0 - 2021-11-01
33754 See commits (https://github.com/rclone/rclone/com‐
33755 pare/v1.56.0...v1.57.0)
33756
33757 • New backends
33758
33759 • Sia: for Sia decentralized cloud (Ian Levesque, Matthew Sevey, Ivan
33760 Andreev)
33761
33762 • Hasher: caches hashes and enable hashes for backends that don't
33763 support them (Ivan Andreev)
33764
33765 • New commands
33766
33767 • lsjson --stat: to get info about a single file/dir and opera‐
33768 tions/stat api (Nick Craig-Wood)
33769
33770 • config paths: show configured paths (albertony)
33771
33772 • New Features
33773
33774 • about: Make human-readable output more consistent with other com‐
33775 mands (albertony)
33776
33777 • build
33778
33779 • Use go1.17 for building and make go1.14 the minimum supported
33780 (Nick Craig-Wood)
33781
33782 • Update Go to 1.16 and NDK to 22b for Android builds (x0b)
33783
33784 • config
33785
33786 • Support hyphen in remote name from environment variable (al‐
33787 bertony)
33788
33789 • Make temporary directory user-configurable (albertony)
33790
33791 • Convert --cache-dir value to an absolute path (albertony)
33792
33793 • Do not override MIME types from OS defaults (albertony)
33794
33795 • docs
33796
33797 • Toc styling and header levels cleanup (albertony)
33798
33799 • Extend documentation on valid remote names (albertony)
33800
33801 • Mention make for building and cmount tag for macos (Alex Chen)
33802
33803 • ...and many more contributions to numerous to mention!
33804
33805 • fs: Move with --ignore-existing will not delete skipped files
33806 (Nathan Collins)
33807
33808 • hashsum
33809
33810 • Treat hash values in sum file as case insensitive (Ivan Andreev)
33811
33812 • Don't put ERROR or UNSUPPORTED in output (Ivan Andreev)
33813
33814 • lib/encoder: Add encoding of square brackets (Ivan Andreev)
33815
33816 • lib/file: Improve error message when attempting to create dir on
33817 nonexistent drive on windows (albertony)
33818
33819 • lib/http: Factor password hash salt into options with default
33820 (Nolan Woods)
33821
33822 • lib/kv: Add key-value database api (Ivan Andreev)
33823
33824 • librclone
33825
33826 • Add RcloneFreeString function (albertony)
33827
33828 • Free strings in python example (albertony)
33829
33830 • log: Optionally print pid in logs (Ivan Andreev)
33831
33832 • ls: Introduce --human-readable global option to print human-read‐
33833 able sizes (albertony)
33834
33835 • ncdu: Introduce key u to toggle human-readable (albertony)
33836
33837 • operations: Add rmdirs -v output (Justin Winokur)
33838
33839 • serve sftp
33840
33841 • Generate an ECDSA server key as well as RSA (Nick Craig-Wood)
33842
33843 • Generate an Ed25519 server key as well as ECDSA and RSA (al‐
33844 bertony)
33845
33846 • serve docker
33847
33848 • Allow to customize proxy settings of docker plugin (Ivan Andreev)
33849
33850 • Build docker plugin for multiple platforms (Thomas Stachl)
33851
33852 • size: Include human-readable count (albertony)
33853
33854 • touch: Add support for touching files in directory, with recursive
33855 option, filtering and --dry-run/-i (albertony)
33856
33857 • tree: Option to print human-readable sizes removed in favor of
33858 global option (albertony)
33859
33860 • Bug Fixes
33861
33862 • lib/http
33863
33864 • Fix bad username check in single auth secret provider (Nolan
33865 Woods)
33866
33867 • Fix handling of SSL credentials (Nolan Woods)
33868
33869 • serve ftp: Ensure modtime is passed as UTC always to fix timezone
33870 oddities (Nick Craig-Wood)
33871
33872 • serve sftp: Fix generation of server keys on windows (albertony)
33873
33874 • serve docker: Fix octal umask (Ivan Andreev)
33875
33876 • Mount
33877
33878 • Enable rclone to be run as mount helper direct from the fstab (Ivan
33879 Andreev)
33880
33881 • Use procfs to validate mount on linux (Ivan Andreev)
33882
33883 • Correctly daemonize for compatibility with automount (Ivan Andreev)
33884
33885 • VFS
33886
33887 • Ensure names used in cache path are legal on current OS (albertony)
33888
33889 • Ignore ECLOSED when truncating file handles to fix intermittent bad
33890 file descriptor error (Nick Craig-Wood)
33891
33892 • Local
33893
33894 • Refactor default OS encoding out from local backend into shared en‐
33895 coder lib (albertony)
33896
33897 • Crypt
33898
33899 • Return wrapped object even with --crypt-no-data-encryption (Ivan
33900 Andreev)
33901
33902 • Fix uploads with --crypt-no-data-encryption (Nick Craig-Wood)
33903
33904 • Azure Blob
33905
33906 • Add --azureblob-no-head-object (Tatsuya Noyori)
33907
33908 • Box
33909
33910 • Make listings of heavily used directories more reliable (Nick
33911 Craig-Wood)
33912
33913 • When doing cleanup delete as much as possible (Nick Craig-Wood)
33914
33915 • Add --box-list-chunk to control listing chunk size (Nick
33916 Craig-Wood)
33917
33918 • Delete items in parallel in cleanup using --checkers threads (Nick
33919 Craig-Wood)
33920
33921 • Add --box-owned-by to only show items owned by the login passed
33922 (Nick Craig-Wood)
33923
33924 • Retry operation_blocked_temporary errors (Nick Craig-Wood)
33925
33926 • Chunker
33927
33928 • Md5all must create metadata if base hash is slow (Ivan Andreev)
33929
33930 • Drive
33931
33932 • Speed up directory listings by constraining the API listing using
33933 the current filters (fotile96, Ivan Andreev)
33934
33935 • Fix buffering for single request upload for files smaller than
33936 --drive-upload-cutoff (YenForYang)
33937
33938 • Add -o config option to backend drives to make config for all
33939 shared drives (Nick Craig-Wood)
33940
33941 • Dropbox
33942
33943 • Add --dropbox-batch-commit-timeout to control batch timeout (Nick
33944 Craig-Wood)
33945
33946 • Filefabric
33947
33948 • Make backoff exponential for error_background to fix errors (Nick
33949 Craig-Wood)
33950
33951 • Fix directory move after API change (Nick Craig-Wood)
33952
33953 • FTP
33954
33955 • Enable tls session cache by default (Ivan Andreev)
33956
33957 • Add option to disable tls13 (Ivan Andreev)
33958
33959 • Fix timeout after long uploads (Ivan Andreev)
33960
33961 • Add support for precise time (Ivan Andreev)
33962
33963 • Enable CI for ProFtpd, PureFtpd, VsFtpd (Ivan Andreev)
33964
33965 • Googlephotos
33966
33967 • Use encoder for album names to fix albums with control characters
33968 (Parth Shukla)
33969
33970 • Jottacloud
33971
33972 • Implement SetModTime to support modtime-only changes (albertony)
33973
33974 • Improved error handling with SetModTime and corrupt files in gener‐
33975 al (albertony)
33976
33977 • Add support for UserInfo (rclone config userinfo) feature (al‐
33978 bertony)
33979
33980 • Return direct download link from rclone link command (albertony)
33981
33982 • Koofr
33983
33984 • Create direct share link (Dmitry Bogatov)
33985
33986 • Pcloud
33987
33988 • Add sha256 support (Ken Enrique Morel)
33989
33990 • Premiumizeme
33991
33992 • Fix directory listing after API changes (Nick Craig-Wood)
33993
33994 • Fix server side move after API change (Nick Craig-Wood)
33995
33996 • Fix server side directory move after API changes (Nick Craig-Wood)
33997
33998 • S3
33999
34000 • Add support to use CDN URL to download the file (Logeshwaran)
34001
34002 • Add AWS Snowball Edge to providers examples (r0kk3rz)
34003
34004 • Use a combination of SDK retries and rclone retries (Nick
34005 Craig-Wood)
34006
34007 • Fix IAM Role for Service Account not working and other auth prob‐
34008 lems (Nick Craig-Wood)
34009
34010 • Fix shared_credentials_file auth after reverting incorrect fix
34011 (Nick Craig-Wood)
34012
34013 • Fix corrupted on transfer: sizes differ 0 vs xxxx with Ceph (Nick
34014 Craig-Wood)
34015
34016 • Seafile
34017
34018 • Fix error when not configured for 2fa (Fred)
34019
34020 • SFTP
34021
34022 • Fix timeout when doing MD5SUM of large file (Nick Craig-Wood)
34023
34024 • Swift
34025
34026 • Update OCI URL (David Liu)
34027
34028 • Document OVH Cloud Archive (HNGamingUK)
34029
34030 • Union
34031
34032 • Fix rename not working with union of local disk and bucket based
34033 remote (Nick Craig-Wood)
34034
34035 v1.56.2 - 2021-10-01
34036 See commits (https://github.com/rclone/rclone/com‐
34037 pare/v1.56.1...v1.56.2)
34038
34039 • Bug Fixes
34040
34041 • serve http: Re-add missing auth to http service (Nolan Woods)
34042
34043 • build: Update golang.org/x/sys to fix crash on macOS when compiled
34044 with go1.17 (Herby Gillot)
34045
34046 • FTP
34047
34048 • Fix deadlock after failed update when concurrency=1 (Ivan Andreev)
34049
34050 v1.56.1 - 2021-09-19
34051 See commits (https://github.com/rclone/rclone/com‐
34052 pare/v1.56.0...v1.56.1)
34053
34054 • Bug Fixes
34055
34056 • accounting: Fix maximum bwlimit by scaling scale max token bucket
34057 size (Nick Craig-Wood)
34058
34059 • rc: Fix speed does not update in core/stats (negative0)
34060
34061 • selfupdate: Fix --quiet option, not quite quiet (yedamo)
34062
34063 • serve http: Fix serve http exiting directly after starting (Cnly)
34064
34065 • build
34066
34067 • Apply gofmt from golang 1.17 (Ivan Andreev)
34068
34069 • Update Go to 1.16 and NDK to 22b for android/any (x0b)
34070
34071 • Mount
34072
34073 • Fix --daemon mode (Ivan Andreev)
34074
34075 • VFS
34076
34077 • Fix duplicates on rename (Nick Craig-Wood)
34078
34079 • Fix crash when truncating a just uploaded object (Nick Craig-Wood)
34080
34081 • Fix issue where empty dirs would build up in cache meta dir (al‐
34082 bertony)
34083
34084 • Drive
34085
34086 • Fix instructions for auto config (Greg Sadetsky)
34087
34088 • Fix lsf example without drive-impersonate (Greg Sadetsky)
34089
34090 • Onedrive
34091
34092 • Handle HTTP 400 better in PublicLink (Alex Chen)
34093
34094 • Clarification of the process for creating custom client_id (Mariano
34095 Absatz)
34096
34097 • Pcloud
34098
34099 • Return an early error when Put is called with an unknown size (Nick
34100 Craig-Wood)
34101
34102 • Try harder to delete a failed upload (Nick Craig-Wood)
34103
34104 • S3
34105
34106 • Add Wasabi's AP-Northeast endpoint info (hota)
34107
34108 • Fix typo in s3 documentation (Greg Sadetsky)
34109
34110 • Seafile
34111
34112 • Fix 2fa config state machine (Fred)
34113
34114 • SFTP
34115
34116 • Remove spurious error message on --sftp-disable-concurrent-reads
34117 (Nick Craig-Wood)
34118
34119 • Sugarsync
34120
34121 • Fix initial connection after config re-arrangement (Nick
34122 Craig-Wood)
34123
34124 v1.56.0 - 2021-07-20
34125 See commits (https://github.com/rclone/rclone/com‐
34126 pare/v1.55.0...v1.56.0)
34127
34128 • New backends
34129
34130 • Uptobox (https://rclone.org/uptobox/) (buengese)
34131
34132 • New commands
34133
34134 • serve docker (https://rclone.org/commands/rclone_serve_docker/)
34135 (Antoine GIRARD) (Ivan Andreev)
34136
34137 • and accompanying docker volume plugin (https://rclone.org/dock‐
34138 er/)
34139
34140 • checksum (https://rclone.org/commands/rclone_checksum/) to check
34141 files against a file of checksums (Ivan Andreev)
34142
34143 • this is also available as rclone md5sum -C etc
34144
34145 • config touch (https://rclone.org/commands/rclone_config_touch/):
34146 ensure config exists at configured location (albertony)
34147
34148 • test changenotify (https://rclone.org/com‐
34149 mands/rclone_test_changenotify/): command to help debugging
34150 changenotify (Nick Craig-Wood)
34151
34152 • Deprecations
34153
34154 • dbhashsum: Remove command deprecated a year ago (Ivan Andreev)
34155
34156 • cache: Deprecate cache backend (Ivan Andreev)
34157
34158 • New Features
34159
34160 • rework config system so it can be used non-interactively via cli
34161 and rc API.
34162
34163 • See docs in config create (https://rclone.org/com‐
34164 mands/rclone_config_create/)
34165
34166 • This is a very big change to all the backends so may cause break‐
34167 ages - please file bugs!
34168
34169 • librclone - export the rclone RC as a C library (lewisxy) (Nick
34170 Craig-Wood)
34171
34172 • Link a C-API rclone shared object into your project
34173
34174 • Use the RC as an in memory interface
34175
34176 • Python example supplied
34177
34178 • Also supports Android and gomobile
34179
34180 • fs
34181
34182 • Add --disable-http2 for global http2 disable (Nick Craig-Wood)
34183
34184 • Make --dump imply -vv (Alex Chen)
34185
34186 • Use binary prefixes for size and rate units (albertony)
34187
34188 • Use decimal prefixes for counts (albertony)
34189
34190 • Add google search widget to rclone.org (Ivan Andreev)
34191
34192 • accounting: Calculate rolling average speed (Haochen Tong)
34193
34194 • atexit: Terminate with non-zero status after receiving signal
34195 (Michael Hanselmann)
34196
34197 • build
34198
34199 • Only run event-based workflow scripts under rclone repo with man‐
34200 ual override (Mathieu Carbou)
34201
34202 • Add Android build with gomobile (x0b)
34203
34204 • check: Log the hash in use like cryptcheck does (Nick Craig-Wood)
34205
34206 • version: Print os/version, kernel and bitness (Ivan Andreev)
34207
34208 • config
34209
34210 • Prevent use of Windows reserved names in config file name (al‐
34211 bertony)
34212
34213 • Create config file in windows appdata directory by default (al‐
34214 bertony)
34215
34216 • Treat any config file paths with filename notfound as memory-only
34217 config (albertony)
34218
34219 • Delay load config file (albertony)
34220
34221 • Replace defaultConfig with a thread-safe in-memory implementation
34222 (Chris Macklin)
34223
34224 • Allow config create and friends to take key=value parameters
34225 (Nick Craig-Wood)
34226
34227 • Fixed issues with flags/options set by environment vars. (Ole
34228 Frost)
34229
34230 • fshttp: Implement graceful DSCP error handling (Tyson Moore)
34231
34232 • lib/http - provides an abstraction for a central http server that
34233 services can bind routes to (Nolan Woods)
34234
34235 • Add --template config and flags to serve/data (Nolan Woods)
34236
34237 • Add default 404 handler (Nolan Woods)
34238
34239 • link: Use "off" value for unset expiry (Nick Craig-Wood)
34240
34241 • oauthutil: Raise fatal error if token expired without refresh token
34242 (Alex Chen)
34243
34244 • rcat: Add --size flag for more efficient uploads of known size
34245 (Nazar Mishturak)
34246
34247 • serve sftp: Add --stdio flag to serve via stdio (Tom)
34248
34249 • sync: Don't warn about --no-traverse when --files-from is set (Nick
34250 Gaya)
34251
34252 • test makefiles
34253
34254 • Add --seed flag and make data generated repeatable (Nick
34255 Craig-Wood)
34256
34257 • Add log levels and speed summary (Nick Craig-Wood)
34258
34259 • Bug Fixes
34260
34261 • accounting: Fix startTime of statsGroups.sum (Haochen Tong)
34262
34263 • cmd/ncdu: Fix out of range panic in delete (buengese)
34264
34265 • config
34266
34267 • Fix issues with memory-only config file paths (albertony)
34268
34269 • Fix in memory config not saving on the fly backend config (Nick
34270 Craig-Wood)
34271
34272 • fshttp: Fix address parsing for DSCP (Tyson Moore)
34273
34274 • ncdu: Update termbox-go library to fix crash (Nick Craig-Wood)
34275
34276 • oauthutil: Fix old authorize result not recognised (Cnly)
34277
34278 • operations: Don't update timestamps of files in --compare-dest
34279 (Nick Gaya)
34280
34281 • selfupdate: fix archive name on macos (Ivan Andreev)
34282
34283 • Mount
34284
34285 • Refactor before adding serve docker (Antoine GIRARD)
34286
34287 • VFS
34288
34289 • Add cache reset for --vfs-cache-max-size handling at cache poll in‐
34290 terval (Leo Luan)
34291
34292 • Fix modtime changing when reading file into cache (Nick Craig-Wood)
34293
34294 • Avoid unnecessary subdir in cache path (albertony)
34295
34296 • Fix that umask option cannot be set as environment variable (al‐
34297 bertony)
34298
34299 • Do not print notice about missing poll-interval support when set to
34300 0 (albertony)
34301
34302 • Local
34303
34304 • Always use readlink to read symlink size for better compatibility
34305 (Nick Craig-Wood)
34306
34307 • Add --local-unicode-normalization (and remove --local-no-uni‐
34308 code-normalization) (Nick Craig-Wood)
34309
34310 • Skip entries removed concurrently with List() (Ivan Andreev)
34311
34312 • Crypt
34313
34314 • Support timestamped filenames from --b2-versions (Dominik Mydlil)
34315
34316 • B2
34317
34318 • Don't include the bucket name in public link file prefixes (Jeffrey
34319 Tolar)
34320
34321 • Fix versions and .files with no extension (Nick Craig-Wood)
34322
34323 • Factor version handling into lib/version (Dominik Mydlil)
34324
34325 • Box
34326
34327 • Use upload preflight check to avoid listings in file uploads (Nick
34328 Craig-Wood)
34329
34330 • Return errors instead of calling log.Fatal with them (Nick
34331 Craig-Wood)
34332
34333 • Drive
34334
34335 • Switch to the Drives API for looking up shared drives (Nick
34336 Craig-Wood)
34337
34338 • Fix some google docs being treated as files (Nick Craig-Wood)
34339
34340 • Dropbox
34341
34342 • Add --dropbox-batch-mode flag to speed up uploading (Nick
34343 Craig-Wood)
34344
34345 • Read the batch mode (https://rclone.org/dropbox/#batch-mode) docs
34346 for more info
34347
34348 • Set visibility in link sharing when --expire is set (Nick
34349 Craig-Wood)
34350
34351 • Simplify chunked uploads (Alexey Ivanov)
34352
34353 • Improve "own App IP" instructions (Ivan Andreev)
34354
34355 • Fichier
34356
34357 • Check if more than one upload link is returned (Nick Craig-Wood)
34358
34359 • Support downloading password protected files and folders (Florian
34360 Penzkofer)
34361
34362 • Make error messages report text from the API (Nick Craig-Wood)
34363
34364 • Fix move of files in the same directory (Nick Craig-Wood)
34365
34366 • Check that we actually got a download token and retry if we didn't
34367 (buengese)
34368
34369 • Filefabric
34370
34371 • Fix listing after change of from field from "int" to int. (Nick
34372 Craig-Wood)
34373
34374 • FTP
34375
34376 • Make upload error 250 indicate success (Nick Craig-Wood)
34377
34378 • GCS
34379
34380 • Make compatible with gsutil's mtime metadata (database64128)
34381
34382 • Clean up time format constants (database64128)
34383
34384 • Google Photos
34385
34386 • Fix read only scope not being used properly (Nick Craig-Wood)
34387
34388 • HTTP
34389
34390 • Replace httplib with lib/http (Nolan Woods)
34391
34392 • Clean up Bind to better use middleware (Nolan Woods)
34393
34394 • Jottacloud
34395
34396 • Fix legacy auth with state based config system (buengese)
34397
34398 • Fix invalid url in output from link command (albertony)
34399
34400 • Add no versions option (buengese)
34401
34402 • Onedrive
34403
34404 • Add list_chunk option (Nick Gaya)
34405
34406 • Also report root error if unable to cancel multipart upload (Cnly)
34407
34408 • Fix failed to configure: empty token found error (Nick Craig-Wood)
34409
34410 • Make link return direct download link (Xuanchen Wu)
34411
34412 • S3
34413
34414 • Add --s3-no-head-object (Tatsuya Noyori)
34415
34416 • Remove WebIdentityRoleProvider to fix crash on auth (Nick
34417 Craig-Wood)
34418
34419 • Don't check to see if remote is object if it ends with / (Nick
34420 Craig-Wood)
34421
34422 • Add SeaweedFS (Chris Lu)
34423
34424 • Update Alibaba OSS endpoints (Chuan Zh)
34425
34426 • SFTP
34427
34428 • Fix performance regression by re-enabling concurrent writes (Nick
34429 Craig-Wood)
34430
34431 • Expand tilde and environment variables in configured
34432 known_hosts_file (albertony)
34433
34434 • Tardigrade
34435
34436 • Upgrade to uplink v1.4.6 (Caleb Case)
34437
34438 • Use negative offset (Caleb Case)
34439
34440 • Add warning about too many open files (acsfer)
34441
34442 • WebDAV
34443
34444 • Fix sharepoint auth over http (Nick Craig-Wood)
34445
34446 • Add headers option (Antoon Prins)
34447
34448 v1.55.1 - 2021-04-26
34449 See commits (https://github.com/rclone/rclone/com‐
34450 pare/v1.55.0...v1.55.1)
34451
34452 • Bug Fixes
34453
34454 • selfupdate
34455
34456 • Dont detect FUSE if build is static (Ivan Andreev)
34457
34458 • Add build tag noselfupdate (Ivan Andreev)
34459
34460 • sync: Fix incorrect error reported by graceful cutoff (Nick
34461 Craig-Wood)
34462
34463 • install.sh: fix macOS arm64 download (Nick Craig-Wood)
34464
34465 • build: Fix version numbers in android branch builds (Nick
34466 Craig-Wood)
34467
34468 • docs
34469
34470 • Contributing.md: update setup instructions for go1.16 (Nick Gaya)
34471
34472 • WinFsp 2021 is out of beta (albertony)
34473
34474 • Minor cleanup of space around code section (albertony)
34475
34476 • Fixed some typos (albertony)
34477
34478 • VFS
34479
34480 • Fix a code path which allows dirty data to be removed causing data
34481 loss (Nick Craig-Wood)
34482
34483 • Compress
34484
34485 • Fix compressed name regexp (buengese)
34486
34487 • Drive
34488
34489 • Fix backend copyid of google doc to directory (Nick Craig-Wood)
34490
34491 • Don't open browser when service account... (Ansh Mittal)
34492
34493 • Dropbox
34494
34495 • Add missing team_data.member scope for use with --impersonate (Nick
34496 Craig-Wood)
34497
34498 • Fix About after scopes changes - rclone config reconnect needed
34499 (Nick Craig-Wood)
34500
34501 • Fix Unable to decrypt returned paths from changeNotify (Nick
34502 Craig-Wood)
34503
34504 • FTP
34505
34506 • Fix implicit TLS (Ivan Andreev)
34507
34508 • Onedrive
34509
34510 • Work around for random "Unable to initialize RPS" errors (OleFrost)
34511
34512 • SFTP
34513
34514 • Revert sftp library to v1.12.0 from v1.13.0 to fix performance re‐
34515 gression (Nick Craig-Wood)
34516
34517 • Fix Update ReadFrom failed: failed to send packet: EOF errors (Nick
34518 Craig-Wood)
34519
34520 • Zoho
34521
34522 • Fix error when region isn't set (buengese)
34523
34524 • Do not ask for mountpoint twice when using headless setup
34525 (buengese)
34526
34527 v1.55.0 - 2021-03-31
34528 See commits (https://github.com/rclone/rclone/com‐
34529 pare/v1.54.0...v1.55.0)
34530
34531 • New commands
34532
34533 • selfupdate (https://rclone.org/commands/rclone_selfupdate/) (Ivan
34534 Andreev)
34535
34536 • Allows rclone to update itself in-place or via a package (using
34537 --package flag)
34538
34539 • Reads cryptographically signed signatures for non beta releases
34540
34541 • Works on all OSes.
34542
34543 • test (https://rclone.org/commands/rclone_test/) - these are test
34544 commands - use with care!
34545
34546 • histogram - Makes a histogram of file name characters.
34547
34548 • info - Discovers file name or other limitations for paths.
34549
34550 • makefiles - Make a random file hierarchy for testing.
34551
34552 • memory - Load all the objects at remote:path into memory and re‐
34553 port memory stats.
34554
34555 • New Features
34556
34557 • Connection strings (https://rclone.org/docs/#connection-strings)
34558
34559 • Config parameters can now be passed as part of the remote name as
34560 a connection string.
34561
34562 • For example to do the equivalent of --drive-shared-with-me use
34563 drive,shared_with_me:
34564
34565 • Make sure we don't save on the fly remote config to the config
34566 file (Nick Craig-Wood)
34567
34568 • Make sure backends with additional config have a different name
34569 for caching (Nick Craig-Wood)
34570
34571 • This work was sponsored by CERN, through the CS3MESH4EOSC Project
34572 (https://cs3mesh4eosc.eu/).
34573
34574 • CS3MESH4EOSC has received funding from the European Union’s
34575 Horizon 2020
34576
34577 • research and innovation programme under Grant Agreement no.
34578 863353.
34579
34580 • build
34581
34582 • Update go build version to go1.16 and raise minimum go version to
34583 go1.13 (Nick Craig-Wood)
34584
34585 • Make a macOS ARM64 build to support Apple Silicon (Nick
34586 Craig-Wood)
34587
34588 • Install macfuse 4.x instead of osxfuse 3.x (Nick Craig-Wood)
34589
34590 • Use GO386=softfloat instead of deprecated GO386=387 for 386
34591 builds (Nick Craig-Wood)
34592
34593 • Disable IOS builds for the time being (Nick Craig-Wood)
34594
34595 • Androids builds made with up to date NDK (x0b)
34596
34597 • Add an rclone user to the Docker image but don't use it by de‐
34598 fault (cynthia kwok)
34599
34600 • dedupe: Make largest directory primary to minimize data moved (Sak‐
34601 sham Khanna)
34602
34603 • config
34604
34605 • Wrap config library in an interface (Fionera)
34606
34607 • Make config file system pluggable (Nick Craig-Wood)
34608
34609 • --config "" or "/notfound" for in memory config only (Nick
34610 Craig-Wood)
34611
34612 • Clear fs cache of stale entries when altering config (Nick
34613 Craig-Wood)
34614
34615 • copyurl: Add option to print resulting auto-filename (albertony)
34616
34617 • delete: Make --rmdirs obey the filters (Nick Craig-Wood)
34618
34619 • docs - many fixes and reworks from edwardxml, albertony, pvalls,
34620 Ivan Andreev, Evan Harris, buengese, Alexey Tabakman
34621
34622 • encoder/filename - add SCSU as tables (Klaus Post)
34623
34624 • Add multiple paths support to --compare-dest and --copy-dest flag
34625 (K265)
34626
34627 • filter: Make --exclude "dir/" equivalent to --exclude "dir/**"
34628 (Nick Craig-Wood)
34629
34630 • fshttp: Add DSCP support with --dscp for QoS with differentiated
34631 services (Max Sum)
34632
34633 • lib/cache: Add Delete and DeletePrefix methods (Nick Craig-Wood)
34634
34635 • lib/file
34636
34637 • Make pre-allocate detect disk full errors and return them (Nick
34638 Craig-Wood)
34639
34640 • Don't run preallocate concurrently (Nick Craig-Wood)
34641
34642 • Retry preallocate on EINTR (Nick Craig-Wood)
34643
34644 • operations: Made copy and sync operations obey a RetryAfterError
34645 (Ankur Gupta)
34646
34647 • rc
34648
34649 • Add string alternatives for setting options over the rc (Nick
34650 Craig-Wood)
34651
34652 • Add options/local to see the options configured in the context
34653 (Nick Craig-Wood)
34654
34655 • Add _config parameter to set global config for just this rc call
34656 (Nick Craig-Wood)
34657
34658 • Implement passing filter config with _filter parameter (Nick
34659 Craig-Wood)
34660
34661 • Add fscache/clear and fscache/entries to control the fs cache
34662 (Nick Craig-Wood)
34663
34664 • Avoid +Inf value for speed in core/stats (albertony)
34665
34666 • Add a full set of stats to core/stats (Nick Craig-Wood)
34667
34668 • Allow fs= params to be a JSON blob (Nick Craig-Wood)
34669
34670 • rcd: Added systemd notification during the rclone rcd command.
34671 (Naveen Honest Raj)
34672
34673 • rmdirs: Make --rmdirs obey the filters (Nick Craig-Wood)
34674
34675 • version: Show build tags and type of executable (Ivan Andreev)
34676
34677 • Bug Fixes
34678
34679 • install.sh: make it fail on download errors (Ivan Andreev)
34680
34681 • Fix excessive retries missing --max-duration timeout (Nick
34682 Craig-Wood)
34683
34684 • Fix crash when --low-level-retries=0 (Nick Craig-Wood)
34685
34686 • Fix failed token refresh on mounts created via the rc (Nick
34687 Craig-Wood)
34688
34689 • fshttp: Fix bandwidth limiting after bad merge (Nick Craig-Wood)
34690
34691 • lib/atexit
34692
34693 • Unregister interrupt handler once it has fired so users can in‐
34694 terrupt again (Nick Craig-Wood)
34695
34696 • Fix occasional failure to unmount with CTRL-C (Nick Craig-Wood)
34697
34698 • Fix deadlock calling Finalise while Run is running (Nick
34699 Craig-Wood)
34700
34701 • lib/rest: Fix multipart uploads not stopping on context cancel
34702 (Nick Craig-Wood)
34703
34704 • Mount
34705
34706 • Allow mounting to root directory on windows (albertony)
34707
34708 • Improved handling of relative paths on windows (albertony)
34709
34710 • Fix unicode issues with accented characters on macOS (Nick
34711 Craig-Wood)
34712
34713 • Docs: document the new FileSecurity option in WinFsp 2021 (al‐
34714 bertony)
34715
34716 • Docs: add note about volume path syntax on windows (albertony)
34717
34718 • Fix caching of old directories after renaming them (Nick
34719 Craig-Wood)
34720
34721 • Update cgofuse to the latest version to bring in macfuse 4 fix
34722 (Nick Craig-Wood)
34723
34724 • VFS
34725
34726 • --vfs-used-is-size to report used space using recursive scan
34727 (tYYGH)
34728
34729 • Don't set modification time if it was already correct (Nick
34730 Craig-Wood)
34731
34732 • Fix Create causing windows explorer to truncate files on CTRL-C
34733 CTRL-V (Nick Craig-Wood)
34734
34735 • Fix modtimes not updating when writing via cache (Nick Craig-Wood)
34736
34737 • Fix modtimes changing by fractional seconds after upload (Nick
34738 Craig-Wood)
34739
34740 • Fix modtime set if --vfs-cache-mode writes/full and no write (Nick
34741 Craig-Wood)
34742
34743 • Rename files in cache and cancel uploads on directory rename (Nick
34744 Craig-Wood)
34745
34746 • Fix directory renaming by renaming dirs cached in memory (Nick
34747 Craig-Wood)
34748
34749 • Local
34750
34751 • Add flag --local-no-preallocate (David Sze)
34752
34753 • Make nounc an advanced option except on Windows (albertony)
34754
34755 • Don't ignore preallocate disk full errors (Nick Craig-Wood)
34756
34757 • Cache
34758
34759 • Add --fs-cache-expire-duration to control the fs cache (Nick
34760 Craig-Wood)
34761
34762 • Crypt
34763
34764 • Add option to not encrypt data (Vesnyx)
34765
34766 • Log hash ok on upload (albertony)
34767
34768 • Azure Blob
34769
34770 • Add container public access level support. (Manish Kumar)
34771
34772 • B2
34773
34774 • Fix HTML files downloaded via cloudflare (Nick Craig-Wood)
34775
34776 • Box
34777
34778 • Fix transfers getting stuck on token expiry after API change (Nick
34779 Craig-Wood)
34780
34781 • Chunker
34782
34783 • Partially implement no-rename transactions (Maxwell Calman)
34784
34785 • Drive
34786
34787 • Don't stop server side copy if couldn't read description (Nick
34788 Craig-Wood)
34789
34790 • Pass context on to drive SDK - to help with cancellation (Nick
34791 Craig-Wood)
34792
34793 • Dropbox
34794
34795 • Add polling for changes support (Robert Thomas)
34796
34797 • Make --timeout 0 work properly (Nick Craig-Wood)
34798
34799 • Raise priority of rate limited message to INFO to make it more no‐
34800 ticeable (Nick Craig-Wood)
34801
34802 • Fichier
34803
34804 • Implement copy & move (buengese)
34805
34806 • Implement public link (buengese)
34807
34808 • FTP
34809
34810 • Implement Shutdown method (Nick Craig-Wood)
34811
34812 • Close idle connections after --ftp-idle-timeout (1m by default)
34813 (Nick Craig-Wood)
34814
34815 • Make --timeout 0 work properly (Nick Craig-Wood)
34816
34817 • Add --ftp-close-timeout flag for use with awkward ftp servers (Nick
34818 Craig-Wood)
34819
34820 • Retry connections and logins on 421 errors (Nick Craig-Wood)
34821
34822 • Hdfs
34823
34824 • Fix permissions for when directory is created (Lucas Messenger)
34825
34826 • Onedrive
34827
34828 • Make --timeout 0 work properly (Nick Craig-Wood)
34829
34830 • S3
34831
34832 • Fix --s3-profile which wasn't working (Nick Craig-Wood)
34833
34834 • SFTP
34835
34836 • Close idle connections after --sftp-idle-timeout (1m by default)
34837 (Nick Craig-Wood)
34838
34839 • Fix "file not found" errors for read once servers (Nick Craig-Wood)
34840
34841 • Fix SetModTime stat failed: object not found with --sftp-set-mod‐
34842 time=false (Nick Craig-Wood)
34843
34844 • Swift
34845
34846 • Update github.com/ncw/swift to v2.0.0 (Nick Craig-Wood)
34847
34848 • Implement copying large objects (nguyenhuuluan434)
34849
34850 • Union
34851
34852 • Fix crash when using epff policy (Nick Craig-Wood)
34853
34854 • Fix union attempting to update files on a read only file system
34855 (Nick Craig-Wood)
34856
34857 • Refactor to use fspath.SplitFs instead of fs.ParseRemote (Nick
34858 Craig-Wood)
34859
34860 • Fix initialisation broken in refactor (Nick Craig-Wood)
34861
34862 • WebDAV
34863
34864 • Add support for sharepoint with NTLM authentication (Rauno Ots)
34865
34866 • Make sharepoint-ntlm docs more consistent (Alex Chen)
34867
34868 • Improve terminology in sharepoint-ntlm docs (Ivan Andreev)
34869
34870 • Disable HTTP/2 for NTLM authentication (georne)
34871
34872 • Fix sharepoint-ntlm error 401 for parallel actions (Ivan Andreev)
34873
34874 • Check that purged directory really exists (Ivan Andreev)
34875
34876 • Yandex
34877
34878 • Make --timeout 0 work properly (Nick Craig-Wood)
34879
34880 • Zoho
34881
34882 • Replace client id - you will need to rclone config reconnect after
34883 this (buengese)
34884
34885 • Add forgotten setupRegion() to NewFs - this finally fixes regions
34886 other than EU (buengese)
34887
34888 v1.54.1 - 2021-03-08
34889 See commits (https://github.com/rclone/rclone/com‐
34890 pare/v1.54.0...v1.54.1)
34891
34892 • Bug Fixes
34893
34894 • accounting: Fix --bwlimit when up or down is off (Nick Craig-Wood)
34895
34896 • docs
34897
34898 • Fix nesting of brackets and backticks in ftp docs (edwardxml)
34899
34900 • Fix broken link in sftp page (edwardxml)
34901
34902 • Fix typo in crypt.md (Romeo Kienzler)
34903
34904 • Changelog: Correct link to digitalis.io (Alex JOST)
34905
34906 • Replace #file-caching with #vfs-file-caching (Miron Veryanskiy)
34907
34908 • Convert bogus example link to code (edwardxml)
34909
34910 • Remove dead link from rc.md (edwardxml)
34911
34912 • rc: Sync,copy,move: document createEmptySrcDirs parameter (Nick
34913 Craig-Wood)
34914
34915 • lsjson: Fix unterminated JSON in the presence of errors (Nick
34916 Craig-Wood)
34917
34918 • Mount
34919
34920 • Fix mount dropping on macOS by setting --daemon-timeout 10m (Nick
34921 Craig-Wood)
34922
34923 • VFS
34924
34925 • Document simultaneous usage with the same cache shouldn't be used
34926 (Nick Craig-Wood)
34927
34928 • B2
34929
34930 • Automatically raise upload cutoff to avoid spurious error (Nick
34931 Craig-Wood)
34932
34933 • Fix failed to create file system with application key limited to a
34934 prefix (Nick Craig-Wood)
34935
34936 • Drive
34937
34938 • Refer to Shared Drives instead of Team Drives (Nick Craig-Wood)
34939
34940 • Dropbox
34941
34942 • Add scopes to oauth request and optionally "members.read" (Nick
34943 Craig-Wood)
34944
34945 • S3
34946
34947 • Fix failed to create file system with folder level permissions pol‐
34948 icy (Nick Craig-Wood)
34949
34950 • Fix Wasabi HEAD requests returning stale data by using only 1
34951 transport (Nick Craig-Wood)
34952
34953 • Fix shared_credentials_file auth (Dmitry Chepurovskiy)
34954
34955 • Add --s3-no-head to reducing costs docs (Nick Craig-Wood)
34956
34957 • Union
34958
34959 • Fix mkdir at root with remote:/ (Nick Craig-Wood)
34960
34961 • Zoho
34962
34963 • Fix custom client id's (buengese)
34964
34965 v1.54.0 - 2021-02-02
34966 See commits (https://github.com/rclone/rclone/com‐
34967 pare/v1.53.0...v1.54.0)
34968
34969 • New backends
34970
34971 • Compression remote (experimental) (buengese)
34972
34973 • Enterprise File Fabric (Nick Craig-Wood)
34974
34975 • This work was sponsored by Storage Made Easy (https://storage‐
34976 madeeasy.com/)
34977
34978 • HDFS (Hadoop Distributed File System) (Yury Stankevich)
34979
34980 • Zoho workdrive (buengese)
34981
34982 • New Features
34983
34984 • Deglobalise the config (Nick Craig-Wood)
34985
34986 • Global config now read from the context
34987
34988 • This will enable passing of global config via the rc
34989
34990 • This work was sponsored by Digitalis (https://digitalis.io/)
34991
34992 • Add --bwlimit for upload and download (Nick Craig-Wood)
34993
34994 • Obey bwlimit in http Transport for better limiting
34995
34996 • Enhance systemd integration (Hekmon)
34997
34998 • log level identification, manual activation with flag, automatic
34999 systemd launch detection
35000
35001 • Don't compile systemd log integration for non unix systems (Ben‐
35002 jamin Gustin)
35003
35004 • Add a --download flag to md5sum/sha1sum/hashsum to force rclone to
35005 download and hash files locally (lostheli)
35006
35007 • Add --progress-terminal-title to print ETA to terminal title (La‐
35008 Sombra)
35009
35010 • Make backend env vars show in help as the defaults for backend
35011 flags (Nick Craig-Wood)
35012
35013 • build
35014
35015 • Raise minimum go version to go1.12 (Nick Craig-Wood)
35016
35017 • dedupe
35018
35019 • Add --by-hash to dedupe on content hash not file name (Nick
35020 Craig-Wood)
35021
35022 • Add --dedupe-mode list to just list dupes, changing nothing (Nick
35023 Craig-Wood)
35024
35025 • Add warning if used on a remote which can't have duplicate names
35026 (Nick Craig-Wood)
35027
35028 • fs
35029
35030 • Add Shutdown optional method for backends (Nick Craig-Wood)
35031
35032 • When using --files-from check files concurrently (zhucan)
35033
35034 • Accumulate stats when using --dry-run (Ingo Weiss)
35035
35036 • Always show stats when using --dry-run or --interactive (Nick
35037 Craig-Wood)
35038
35039 • Add support for flag --no-console on windows to hide the console
35040 window (albertony)
35041
35042 • genautocomplete: Add support to output to stdout (Ingo)
35043
35044 • ncdu
35045
35046 • Highlight read errors instead of aborting (Claudio Bantaloukas)
35047
35048 • Add sort by average size in directory (Adam Plánský)
35049
35050 • Add toggle option for average s3ize in directory - key 'a' (Adam
35051 Plánský)
35052
35053 • Add empty folder flag into ncdu browser (Adam Plánský)
35054
35055 • Add ! (errror) and . (unreadable) file flags to go with e (empty)
35056 (Nick Craig-Wood)
35057
35058 • obscure: Make rclone osbcure - ignore newline at end of line (Nick
35059 Craig-Wood)
35060
35061 • operations
35062
35063 • Add logs when need to upload files to set mod times (Nick
35064 Craig-Wood)
35065
35066 • Move and copy log name of the destination object in verbose (Adam
35067 Plánský)
35068
35069 • Add size if known to skipped items and JSON log (Nick Craig-Wood)
35070
35071 • rc
35072
35073 • Prefer actual listener address if using ":port" or "addr:0" only
35074 (Nick Craig-Wood)
35075
35076 • Add listener for finished jobs (Aleksandar Jankovic)
35077
35078 • serve ftp: Add options to enable TLS (Deepak Sah)
35079
35080 • serve http/webdav: Redirect requests to the base url without the /
35081 (Nick Craig-Wood)
35082
35083 • serve restic: Implement object cache (Nick Craig-Wood)
35084
35085 • stats: Add counter for deleted directories (Nick Craig-Wood)
35086
35087 • sync: Only print "There was nothing to transfer" if no errors (Nick
35088 Craig-Wood)
35089
35090 • webui
35091
35092 • Prompt user for updating webui if an update is available (Chai‐
35093 tanya Bankanhal)
35094
35095 • Fix plugins initialization (negative0)
35096
35097 • Bug Fixes
35098
35099 • fs
35100
35101 • Fix nil pointer on copy & move operations directly to remote
35102 (Anagh Kumar Baranwal)
35103
35104 • Fix parsing of .. when joining remotes (Nick Craig-Wood)
35105
35106 • log: Fix enabling systemd logging when using --log-file (Nick
35107 Craig-Wood)
35108
35109 • check
35110
35111 • Make the error count match up in the log message (Nick
35112 Craig-Wood)
35113
35114 • move: Fix data loss when source and destination are the same object
35115 (Nick Craig-Wood)
35116
35117 • operations
35118
35119 • Fix --cutof-mode hard not cutting off immediately (Nick
35120 Craig-Wood)
35121
35122 • Fix --immutable error message (Nick Craig-Wood)
35123
35124 • sync
35125
35126 • Fix --cutoff-mode soft & cautious so it doesn't end the transfer
35127 early (Nick Craig-Wood)
35128
35129 • Fix --immutable errors retrying many times (Nick Craig-Wood)
35130
35131 • Docs
35132
35133 • Many fixes and a rewrite of the filtering docs (edwardxml)
35134
35135 • Many spelling and grammar fixes (Josh Soref)
35136
35137 • Doc fixes for commands delete, purge, rmdir, rmdirs and mount (al‐
35138 bertony)
35139
35140 • And thanks to these people for many doc fixes too numerous to list
35141
35142 • Ameer Dawood, Antoine GIRARD, Bob Bagwill, Christopher Stewart
35143
35144 • CokeMine, David, Dov Murik, Durval Menezes, Evan Harris, gtorelly
35145
35146 • Ilyess Bachiri, Janne Johansson, Kerry Su, Marcin Zelent,
35147
35148 • Martin Michlmayr, Milly, Sơn Trần-Nguyễn
35149
35150 • Mount
35151
35152 • Update systemd status with cache stats (Hekmon)
35153
35154 • Disable bazil/fuse based mount on macOS (Nick Craig-Wood)
35155
35156 • Make rclone mount actually run rclone cmount under macOS (Nick
35157 Craig-Wood)
35158
35159 • Implement mknod to make NFS file creation work (Nick Craig-Wood)
35160
35161 • Make sure we don't call umount more than once (Nick Craig-Wood)
35162
35163 • More user friendly mounting as network drive on windows (albertony)
35164
35165 • Detect if uid or gid are set in same option string: -o
35166 uid=123,gid=456 (albertony)
35167
35168 • Don't attempt to unmount if fs has been destroyed already (Nick
35169 Craig-Wood)
35170
35171 • VFS
35172
35173 • Fix virtual entries causing deleted files to still appear (Nick
35174 Craig-Wood)
35175
35176 • Fix "file already exists" error for stale cache files (Nick
35177 Craig-Wood)
35178
35179 • Fix file leaks with --vfs-cache-mode full and --buffer-size 0 (Nick
35180 Craig-Wood)
35181
35182 • Fix invalid cache path on windows when using :backend: as remote
35183 (albertony)
35184
35185 • Local
35186
35187 • Continue listing files/folders when a circular symlink is detected
35188 (Manish Gupta)
35189
35190 • New flag --local-zero-size-links to fix sync on some virtual
35191 filesystems (Riccardo Iaconelli)
35192
35193 • Azure Blob
35194
35195 • Add support for service principals (James Lim)
35196
35197 • Add support for managed identities (Brad Ackerman)
35198
35199 • Add examples for access tier (Bob Pusateri)
35200
35201 • Utilize the streaming capabilities from the SDK for multipart up‐
35202 loads (Denis Neuling)
35203
35204 • Fix setting of mime types (Nick Craig-Wood)
35205
35206 • Fix crash when listing outside a SAS URL's root (Nick Craig-Wood)
35207
35208 • Delete archive tier blobs before update if --azureblob-ar‐
35209 chive-tier-delete (Nick Craig-Wood)
35210
35211 • Fix crash on startup (Nick Craig-Wood)
35212
35213 • Fix memory usage by upgrading the SDK to v0.13.0 and implementing a
35214 TransferManager (Nick Craig-Wood)
35215
35216 • Require go1.14+ to compile due to SDK changes (Nick Craig-Wood)
35217
35218 • B2
35219
35220 • Make NewObject use less expensive API calls (Nick Craig-Wood)
35221
35222 • This will improve --files-from and restic serve in particular
35223
35224 • Fixed crash on an empty file name (lluuaapp)
35225
35226 • Box
35227
35228 • Fix NewObject for files that differ in case (Nick Craig-Wood)
35229
35230 • Fix finding directories in a case insentive way (Nick Craig-Wood)
35231
35232 • Chunker
35233
35234 • Skip long local hashing, hash in-transit (fixes) (Ivan Andreev)
35235
35236 • Set Features ReadMimeType to false as Object.MimeType not supported
35237 (Nick Craig-Wood)
35238
35239 • Fix case-insensitive NewObject, test metadata detection (Ivan An‐
35240 dreev)
35241
35242 • Drive
35243
35244 • Implement rclone backend copyid command for copying files by ID
35245 (Nick Craig-Wood)
35246
35247 • Added flag --drive-stop-on-download-limit to stop transfers when
35248 the download limit is exceeded (Anagh Kumar Baranwal)
35249
35250 • Implement CleanUp workaround for team drives (buengese)
35251
35252 • Allow shortcut resolution and creation to be retried (Nick
35253 Craig-Wood)
35254
35255 • Log that emptying the trash can take some time (Nick Craig-Wood)
35256
35257 • Add xdg office icons to xdg desktop files (Pau Rodriguez-Estivill)
35258
35259 • Dropbox
35260
35261 • Add support for viewing shared files and folders (buengese)
35262
35263 • Enable short lived access tokens (Nick Craig-Wood)
35264
35265 • Implement IDer on Objects so rclone lsf etc can read the IDs
35266 (buengese)
35267
35268 • Set Features ReadMimeType to false as Object.MimeType not supported
35269 (Nick Craig-Wood)
35270
35271 • Make malformed_path errors from too long files not retriable (Nick
35272 Craig-Wood)
35273
35274 • Test file name length before upload to fix upload loop (Nick
35275 Craig-Wood)
35276
35277 • Fichier
35278
35279 • Set Features ReadMimeType to true as Object.MimeType is supported
35280 (Nick Craig-Wood)
35281
35282 • FTP
35283
35284 • Add --ftp-disable-msld option to ignore MLSD for really old servers
35285 (Nick Craig-Wood)
35286
35287 • Make --tpslimit apply (Nick Craig-Wood)
35288
35289 • Google Cloud Storage
35290
35291 • Storage class object header support (Laurens Janssen)
35292
35293 • Fix anonymous client to use rclone's HTTP client (Nick Craig-Wood)
35294
35295 • Fix Entry doesn't belong in directory "" (same as directory) - ig‐
35296 noring (Nick Craig-Wood)
35297
35298 • Googlephotos
35299
35300 • New flag --gphotos-include-archived to show archived photos as well
35301 (Nicolas Rueff)
35302
35303 • Jottacloud
35304
35305 • Don't erroneously report support for writing mime types (buengese)
35306
35307 • Add support for Telia Cloud (Patrik Nordlén)
35308
35309 • Mailru
35310
35311 • Accept special folders eg camera-upload (Ivan Andreev)
35312
35313 • Avoid prehashing of large local files (Ivan Andreev)
35314
35315 • Fix uploads after recent changes on server (Ivan Andreev)
35316
35317 • Fix range requests after June 2020 changes on server (Ivan Andreev)
35318
35319 • Fix invalid timestamp on corrupted files (fixes) (Ivan Andreev)
35320
35321 • Remove deprecated protocol quirks (Ivan Andreev)
35322
35323 • Memory
35324
35325 • Fix setting of mime types (Nick Craig-Wood)
35326
35327 • Onedrive
35328
35329 • Add support for China region operated by 21vianet and other region‐
35330 al suppliers (NyaMisty)
35331
35332 • Warn on gateway timeout errors (Nick Craig-Wood)
35333
35334 • Fall back to normal copy if server-side copy unavailable (Alex
35335 Chen)
35336
35337 • Fix server-side copy completely disabled on OneDrive for Business
35338 (Cnly)
35339
35340 • (business only) workaround to replace existing file on server-side
35341 copy (Alex Chen)
35342
35343 • Enhance link creation with expiry, scope, type and password (Nick
35344 Craig-Wood)
35345
35346 • Remove % and # from the set of encoded characters (Alex Chen)
35347
35348 • Support addressing site by server-relative URL (kice)
35349
35350 • Opendrive
35351
35352 • Fix finding directories in a case insensitive way (Nick Craig-Wood)
35353
35354 • Pcloud
35355
35356 • Fix setting of mime types (Nick Craig-Wood)
35357
35358 • Premiumizeme
35359
35360 • Fix finding directories in a case insensitive way (Nick Craig-Wood)
35361
35362 • Qingstor
35363
35364 • Fix error propagation in CleanUp (Nick Craig-Wood)
35365
35366 • Fix rclone cleanup (Nick Craig-Wood)
35367
35368 • S3
35369
35370 • Added --s3-disable-http2 to disable http/2 (Anagh Kumar Baranwal)
35371
35372 • Complete SSE-C implementation (Nick Craig-Wood)
35373
35374 • Fix hashes on small files with AWS:KMS and SSE-C (Nick
35375 Craig-Wood)
35376
35377 • Add MD5 metadata to objects uploaded with SSE-AWS/SSE-C (Nick
35378 Craig-Wood)
35379
35380 • Add --s3-no-head parameter to minimise transactions on upload (Nick
35381 Craig-Wood)
35382
35383 • Update docs with a Reducing Costs section (Nick Craig-Wood)
35384
35385 • Added error handling for error code 429 indicating too many re‐
35386 quests (Anagh Kumar Baranwal)
35387
35388 • Add requester pays option (kelv)
35389
35390 • Fix copy multipart with v2 auth failing with 'SignatureDoesNot‐
35391 Match' (Louis Koo)
35392
35393 • SFTP
35394
35395 • Allow cert based auth via optional pubkey (Stephen Harris)
35396
35397 • Allow user to optionally check server hosts key to add security
35398 (Stephen Harris)
35399
35400 • Defer asking for user passwords until the SSH connection succeeds
35401 (Stephen Harris)
35402
35403 • Remember entered password in AskPass mode (Stephen Harris)
35404
35405 • Implement Shutdown method (Nick Craig-Wood)
35406
35407 • Implement keyboard interactive authentication (Nick Craig-Wood)
35408
35409 • Make --tpslimit apply (Nick Craig-Wood)
35410
35411 • Implement --sftp-use-fstat for unusual SFTP servers (Nick
35412 Craig-Wood)
35413
35414 • Sugarsync
35415
35416 • Fix NewObject for files that differ in case (Nick Craig-Wood)
35417
35418 • Fix finding directories in a case insentive way (Nick Craig-Wood)
35419
35420 • Swift
35421
35422 • Fix deletion of parts of Static Large Object (SLO) (Nguyễn Hữu
35423 Luân)
35424
35425 • Ensure partially uploaded large files are uploaded unless
35426 --swift-leave-parts-on-error (Nguyễn Hữu Luân)
35427
35428 • Tardigrade
35429
35430 • Upgrade to uplink v1.4.1 (Caleb Case)
35431
35432 • WebDAV
35433
35434 • Updated docs to show streaming to nextcloud is working (Durval
35435 Menezes)
35436
35437 • Yandex
35438
35439 • Set Features WriteMimeType to false as Yandex ignores mime types
35440 (Nick Craig-Wood)
35441
35442 v1.53.4 - 2021-01-20
35443 See commits (https://github.com/rclone/rclone/com‐
35444 pare/v1.53.3...v1.53.4)
35445
35446 • Bug Fixes
35447
35448 • accounting: Fix data race in Transferred() (Maciej Zimnoch)
35449
35450 • build
35451
35452 • Stop tagged releases making a current beta (Nick Craig-Wood)
35453
35454 • Upgrade docker buildx action (Matteo Pietro Dazzi)
35455
35456 • Add -buildmode to cross-compile.go (Nick Craig-Wood)
35457
35458 • Fix docker build by upgrading ilteoood/docker_buildx (Nick
35459 Craig-Wood)
35460
35461 • Revert GitHub actions brew fix since this is now fixed (Nick
35462 Craig-Wood)
35463
35464 • Fix brew install --cask syntax for macOS build (Nick Craig-Wood)
35465
35466 • Update nfpm syntax to fix build of .deb/.rpm packages (Nick
35467 Craig-Wood)
35468
35469 • Fix for Windows build errors (Ivan Andreev)
35470
35471 • fs: Parseduration: fixed tests to use UTC time (Ankur Gupta)
35472
35473 • fshttp: Prevent overlap of HTTP headers in logs (Nathan Collins)
35474
35475 • rc
35476
35477 • Fix core/command giving 500 internal error (Nick Craig-Wood)
35478
35479 • Add Copy method to rc.Params (Nick Craig-Wood)
35480
35481 • Fix 500 error when marshalling errors from core/command (Nick
35482 Craig-Wood)
35483
35484 • plugins: Create plugins files only if webui is enabled. (nega‐
35485 tive0)
35486
35487 • serve http: Fix serving files of unknown length (Nick Craig-Wood)
35488
35489 • serve sftp: Fix authentication on one connection blocking others
35490 (Nick Craig-Wood)
35491
35492 • Mount
35493
35494 • Add optional brew tag to throw an error when using mount in the bi‐
35495 naries installed via Homebrew (Anagh Kumar Baranwal)
35496
35497 • Add "." and ".." to directories to match cmount and expectations
35498 (Nick Craig-Wood)
35499
35500 • VFS
35501
35502 • Make cache dir absolute before using it to fix path too long errors
35503 (Nick Craig-Wood)
35504
35505 • Chunker
35506
35507 • Improve detection of incompatible metadata (Ivan Andreev)
35508
35509 • Google Cloud Storage
35510
35511 • Fix server side copy of large objects (Nick Craig-Wood)
35512
35513 • Jottacloud
35514
35515 • Fix token renewer to fix long uploads (Nick Craig-Wood)
35516
35517 • Fix token refresh failed: is not a regular file error (Nick
35518 Craig-Wood)
35519
35520 • Pcloud
35521
35522 • Only use SHA1 hashes in EU region (Nick Craig-Wood)
35523
35524 • Sharefile
35525
35526 • Undo Fix backend due to API swapping integers for strings (Nick
35527 Craig-Wood)
35528
35529 • WebDAV
35530
35531 • Fix Open Range requests to fix 4shared mount (Nick Craig-Wood)
35532
35533 • Add "Depth: 0" to GET requests to fix bitrix (Nick Craig-Wood)
35534
35535 v1.53.3 - 2020-11-19
35536 See commits (https://github.com/rclone/rclone/com‐
35537 pare/v1.53.2...v1.53.3)
35538
35539 • Bug Fixes
35540
35541 • random: Fix incorrect use of math/rand instead of crypto/rand
35542 CVE-2020-28924 (Nick Craig-Wood)
35543
35544 • Passwords you have generated with rclone config may be insecure
35545
35546 • See issue #4783 (https://github.com/rclone/rclone/issues/4783)
35547 for more details and a checking tool
35548
35549 • random: Seed math/rand in one place with crypto strong seed (Nick
35550 Craig-Wood)
35551
35552 • VFS
35553
35554 • Fix vfs/refresh calls with fs= parameter (Nick Craig-Wood)
35555
35556 • Sharefile
35557
35558 • Fix backend due to API swapping integers for strings (Nick
35559 Craig-Wood)
35560
35561 v1.53.2 - 2020-10-26
35562 See commits (https://github.com/rclone/rclone/com‐
35563 pare/v1.53.1...v1.53.2)
35564
35565 • Bug Fixes
35566
35567 • acounting
35568
35569 • Fix incorrect speed and transferTime in core/stats (Nick
35570 Craig-Wood)
35571
35572 • Stabilize display order of transfers on Windows (Nick Craig-Wood)
35573
35574 • operations
35575
35576 • Fix use of --suffix without --backup-dir (Nick Craig-Wood)
35577
35578 • Fix spurious "--checksum is in use but the source and destination
35579 have no hashes in common" (Nick Craig-Wood)
35580
35581 • build
35582
35583 • Work around GitHub actions brew problem (Nick Craig-Wood)
35584
35585 • Stop using set-env and set-path in the GitHub actions (Nick
35586 Craig-Wood)
35587
35588 • Mount
35589
35590 • mount2: Fix the swapped UID / GID values (Russell Cattelan)
35591
35592 • VFS
35593
35594 • Detect and recover from a file being removed externally from the
35595 cache (Nick Craig-Wood)
35596
35597 • Fix a deadlock vulnerability in downloaders.Close (Leo Luan)
35598
35599 • Fix a race condition in retryFailedResets (Leo Luan)
35600
35601 • Fix missed concurrency control between some item operations and re‐
35602 set (Leo Luan)
35603
35604 • Add exponential backoff during ENOSPC retries (Leo Luan)
35605
35606 • Add a missed update of used cache space (Leo Luan)
35607
35608 • Fix --no-modtime to not attempt to set modtimes (as documented)
35609 (Nick Craig-Wood)
35610
35611 • Local
35612
35613 • Fix sizes and syncing with --links option on Windows (Nick
35614 Craig-Wood)
35615
35616 • Chunker
35617
35618 • Disable ListR to fix missing files on GDrive (workaround) (Ivan An‐
35619 dreev)
35620
35621 • Fix upload over crypt (Ivan Andreev)
35622
35623 • Fichier
35624
35625 • Increase maximum file size from 100GB to 300GB (gyutw)
35626
35627 • Jottacloud
35628
35629 • Remove clientSecret from config when upgrading to token based au‐
35630 thentication (buengese)
35631
35632 • Avoid double url escaping of device/mountpoint (albertony)
35633
35634 • Remove DirMove workaround as it's not required anymore - also
35635 (buengese)
35636
35637 • Mailru
35638
35639 • Fix uploads after recent changes on server (Ivan Andreev)
35640
35641 • Fix range requests after june changes on server (Ivan Andreev)
35642
35643 • Fix invalid timestamp on corrupted files (fixes) (Ivan Andreev)
35644
35645 • Onedrive
35646
35647 • Fix disk usage for sharepoint (Nick Craig-Wood)
35648
35649 • S3
35650
35651 • Add missing regions for AWS (Anagh Kumar Baranwal)
35652
35653 • Seafile
35654
35655 • Fix accessing libraries > 2GB on 32 bit systems (Muffin King)
35656
35657 • SFTP
35658
35659 • Always convert the checksum to lower case (buengese)
35660
35661 • Union
35662
35663 • Create root directories if none exist (Nick Craig-Wood)
35664
35665 v1.53.1 - 2020-09-13
35666 See commits (https://github.com/rclone/rclone/com‐
35667 pare/v1.53.0...v1.53.1)
35668
35669 • Bug Fixes
35670
35671 • accounting: Remove new line from end of --stats-one-line display
35672 (Nick Craig-Wood)
35673
35674 • check
35675
35676 • Add back missing --download flag (Nick Craig-Wood)
35677
35678 • Fix docs (Nick Craig-Wood)
35679
35680 • docs
35681
35682 • Note --log-file does append (Nick Craig-Wood)
35683
35684 • Add full stops for consistency in rclone --help (edwardxml)
35685
35686 • Add Tencent COS to s3 provider list (wjielai)
35687
35688 • Updated mount command to reflect that it requires Go 1.13 or new‐
35689 er (Evan Harris)
35690
35691 • jottacloud: Mention that uploads from local disk will not need to
35692 cache files to disk for md5 calculation (albertony)
35693
35694 • Fix formatting of rc docs page (Nick Craig-Wood)
35695
35696 • build
35697
35698 • Include vendor tar ball in release and fix startdev (Nick
35699 Craig-Wood)
35700
35701 • Fix "Illegal instruction" error for ARMv6 builds (Nick
35702 Craig-Wood)
35703
35704 • Fix architecture name in ARMv7 build (Nick Craig-Wood)
35705
35706 • VFS
35707
35708 • Fix spurious error "vfs cache: failed to _ensure cache EOF" (Nick
35709 Craig-Wood)
35710
35711 • Log an ERROR if we fail to set the file to be sparse (Nick
35712 Craig-Wood)
35713
35714 • Local
35715
35716 • Log an ERROR if we fail to set the file to be sparse (Nick
35717 Craig-Wood)
35718
35719 • Drive
35720
35721 • Re-adds special oauth help text (Tim Gallant)
35722
35723 • Opendrive
35724
35725 • Do not retry 400 errors (Evan Harris)
35726
35727 v1.53.0 - 2020-09-02
35728 See commits (https://github.com/rclone/rclone/com‐
35729 pare/v1.52.0...v1.53.0)
35730
35731 • New Features
35732
35733 • The VFS layer (https://rclone.org/commands/rclone_mount/#vfs-virtu‐
35734 al-file-system) was heavily reworked for this release - see below
35735 for more details
35736
35737 • Interactive mode -i/--interactive (https://rclone.org/docs/#inter‐
35738 active) for destructive operations (fishbullet)
35739
35740 • Add --bwlimit-file (https://rclone.org/docs/#bwlimit-file-band‐
35741 width-spec) flag to limit speeds of individual file transfers (Nick
35742 Craig-Wood)
35743
35744 • Transfers are sorted by start time in the stats and progress output
35745 (Max Sum)
35746
35747 • Make sure backends expand ~ and environment vars in file names they
35748 use (Nick Craig-Wood)
35749
35750 • Add --refresh-times (https://rclone.org/docs/#refresh-times) flag
35751 to set modtimes on hashless backends (Nick Craig-Wood)
35752
35753 • build
35754
35755 • Remove vendor directory in favour of Go modules (Nick Craig-Wood)
35756
35757 • Build with go1.15.x by default (Nick Craig-Wood)
35758
35759 • Drop macOS 386 build as it is no longer supported by go1.15 (Nick
35760 Craig-Wood)
35761
35762 • Add ARMv7 to the supported builds (Nick Craig-Wood)
35763
35764 • Enable rclone cmount on macOS (Nick Craig-Wood)
35765
35766 • Make rclone build with gccgo (Nick Craig-Wood)
35767
35768 • Make rclone build with wasm (Nick Craig-Wood)
35769
35770 • Change beta numbering to be semver compatible (Nick Craig-Wood)
35771
35772 • Add file properties and icon to Windows executable (albertony)
35773
35774 • Add experimental interface for integrating rclone into browsers
35775 (Nick Craig-Wood)
35776
35777 • lib: Add file name compression (Klaus Post)
35778
35779 • rc
35780
35781 • Allow installation and use of plugins and test plugins with
35782 rclone-webui (Chaitanya Bankanhal)
35783
35784 • Add reverse proxy pluginsHandler for serving plugins (Chaitanya
35785 Bankanhal)
35786
35787 • Add mount/listmounts option for listing current mounts (Chaitanya
35788 Bankanhal)
35789
35790 • Add operations/uploadfile to upload a file through rc using en‐
35791 coding multipart/form-data (Chaitanya Bankanhal)
35792
35793 • Add core/command to execute rclone terminal commands. (Chaitanya
35794 Bankanhal)
35795
35796 • rclone check
35797
35798 • Add reporting of filenames for same/missing/changed (Nick
35799 Craig-Wood)
35800
35801 • Make check command obey --dry-run/-i/--interactive (Nick
35802 Craig-Wood)
35803
35804 • Make check do --checkers files concurrently (Nick Craig-Wood)
35805
35806 • Retry downloads if they fail when using the --download flag (Nick
35807 Craig-Wood)
35808
35809 • Make it show stats by default (Nick Craig-Wood)
35810
35811 • rclone obscure: Allow obscure command to accept password on STDIN
35812 (David Ibarra)
35813
35814 • rclone config
35815
35816 • Set RCLONE_CONFIG_DIR for use in config files and subprocesses
35817 (Nick Craig-Wood)
35818
35819 • Reject remote names starting with a dash. (jtagcat)
35820
35821 • rclone cryptcheck: Add reporting of filenames for same/miss‐
35822 ing/changed (Nick Craig-Wood)
35823
35824 • rclone dedupe: Make it obey the --size-only flag for duplicate de‐
35825 tection (Nick Craig-Wood)
35826
35827 • rclone link: Add --expire and --unlink flags (Roman Kredentser)
35828
35829 • rclone mkdir: Warn when using mkdir on remotes which can't have
35830 empty directories (Nick Craig-Wood)
35831
35832 • rclone rc: Allow JSON parameters to simplify command line usage
35833 (Nick Craig-Wood)
35834
35835 • rclone serve ftp
35836
35837 • Don't compile on < go1.13 after dependency update (Nick
35838 Craig-Wood)
35839
35840 • Add error message if auth proxy fails (Nick Craig-Wood)
35841
35842 • Use refactored goftp.io/server library for binary shrink (Nick
35843 Craig-Wood)
35844
35845 • rclone serve restic: Expose interfaces so that rclone can be used
35846 as a library from within restic (Jack)
35847
35848 • rclone sync: Add --track-renames-strategy leaf (Nick Craig-Wood)
35849
35850 • rclone touch: Add ability to set nanosecond resolution times (Nick
35851 Craig-Wood)
35852
35853 • rclone tree: Remove -i shorthand for --noindent as it conflicts
35854 with -i/--interactive (Nick Craig-Wood)
35855
35856 • Bug Fixes
35857
35858 • accounting
35859
35860 • Fix documentation for speed/speedAvg (Nick Craig-Wood)
35861
35862 • Fix elapsed time not show actual time since beginning (Chaitanya
35863 Bankanhal)
35864
35865 • Fix deadlock in stats printing (Nick Craig-Wood)
35866
35867 • build
35868
35869 • Fix file handle leak in GitHub release tool (Garrett Squire)
35870
35871 • rclone check: Fix successful retries with --download counting er‐
35872 rors (Nick Craig-Wood)
35873
35874 • rclone dedupe: Fix logging to be easier to understand (Nick
35875 Craig-Wood)
35876
35877 • Mount
35878
35879 • Warn macOS users that mount implementation is changing (Nick
35880 Craig-Wood)
35881
35882 • to test the new implementation use rclone cmount instead of
35883 rclone mount
35884
35885 • this is because the library rclone uses has dropped macOS support
35886
35887 • rc interface
35888
35889 • Add call for unmount all (Chaitanya Bankanhal)
35890
35891 • Make mount/mount remote control take vfsOpt option (Nick
35892 Craig-Wood)
35893
35894 • Add mountOpt to mount/mount (Nick Craig-Wood)
35895
35896 • Add VFS and Mount options to mount/listmounts (Nick Craig-Wood)
35897
35898 • Catch panics in cgofuse initialization and turn into error messages
35899 (Nick Craig-Wood)
35900
35901 • Always supply stat information in Readdir (Nick Craig-Wood)
35902
35903 • Add support for reading unknown length files using direct IO (Win‐
35904 dows) (Nick Craig-Wood)
35905
35906 • Fix On Windows don't add -o uid/gid=-1 if user supplies -o uid/gid.
35907 (Nick Craig-Wood)
35908
35909 • Fix macOS losing directory contents in cmount (Nick Craig-Wood)
35910
35911 • Fix volume name broken in recent refactor (Nick Craig-Wood)
35912
35913 • VFS
35914
35915 • Implement partial reads for --vfs-cache-mode full (Nick Craig-Wood)
35916
35917 • Add --vfs-writeback option to delay writes back to cloud storage
35918 (Nick Craig-Wood)
35919
35920 • Add --vfs-read-ahead parameter for use with --vfs-cache-mode full
35921 (Nick Craig-Wood)
35922
35923 • Restart pending uploads on restart of the cache (Nick Craig-Wood)
35924
35925 • Support synchronous cache space recovery upon ENOSPC (Leo Luan)
35926
35927 • Allow ReadAt and WriteAt to run concurrently with themselves (Nick
35928 Craig-Wood)
35929
35930 • Change modtime of file before upload to current (Rob Calistri)
35931
35932 • Recommend --vfs-cache-modes writes on backends which can't stream
35933 (Nick Craig-Wood)
35934
35935 • Add an optional fs parameter to vfs rc methods (Nick Craig-Wood)
35936
35937 • Fix errors when using > 260 char files in the cache in Windows
35938 (Nick Craig-Wood)
35939
35940 • Fix renaming of items while they are being uploaded (Nick
35941 Craig-Wood)
35942
35943 • Fix very high load caused by slow directory listings (Nick
35944 Craig-Wood)
35945
35946 • Fix renamed files not being uploaded with --vfs-cache-mode minimal
35947 (Nick Craig-Wood)
35948
35949 • Fix directory locking caused by slow directory listings (Nick
35950 Craig-Wood)
35951
35952 • Fix saving from chrome without --vfs-cache-mode writes (Nick
35953 Craig-Wood)
35954
35955 • Local
35956
35957 • Add --local-no-updated to provide a consistent view of changing ob‐
35958 jects (Nick Craig-Wood)
35959
35960 • Add --local-no-set-modtime option to prevent modtime changes (tyhu‐
35961 ber1)
35962
35963 • Fix race conditions updating and reading Object metadata (Nick
35964 Craig-Wood)
35965
35966 • Cache
35967
35968 • Make any created backends be cached to fix rc problems (Nick
35969 Craig-Wood)
35970
35971 • Fix dedupe on caches wrapping drives (Nick Craig-Wood)
35972
35973 • Crypt
35974
35975 • Add --crypt-server-side-across-configs flag (Nick Craig-Wood)
35976
35977 • Make any created backends be cached to fix rc problems (Nick
35978 Craig-Wood)
35979
35980 • Alias
35981
35982 • Make any created backends be cached to fix rc problems (Nick
35983 Craig-Wood)
35984
35985 • Azure Blob
35986
35987 • Don't compile on < go1.13 after dependency update (Nick Craig-Wood)
35988
35989 • B2
35990
35991 • Implement server-side copy for files > 5GB (Nick Craig-Wood)
35992
35993 • Cancel in progress multipart uploads and copies on rclone exit
35994 (Nick Craig-Wood)
35995
35996 • Note that b2's encoding now allows but rclone's hasn't changed
35997 (Nick Craig-Wood)
35998
35999 • Fix transfers when using download_url (Nick Craig-Wood)
36000
36001 • Box
36002
36003 • Implement rclone cleanup (buengese)
36004
36005 • Cancel in progress multipart uploads and copies on rclone exit
36006 (Nick Craig-Wood)
36007
36008 • Allow authentication with access token (David)
36009
36010 • Chunker
36011
36012 • Make any created backends be cached to fix rc problems (Nick
36013 Craig-Wood)
36014
36015 • Drive
36016
36017 • Add rclone backend drives to list shared drives (teamdrives) (Nick
36018 Craig-Wood)
36019
36020 • Implement rclone backend untrash (Nick Craig-Wood)
36021
36022 • Work around drive bug which didn't set modtime of copied docs (Nick
36023 Craig-Wood)
36024
36025 • Added --drive-starred-only to only show starred files (Jay McEn‐
36026 tire)
36027
36028 • Deprecate --drive-alternate-export as it is no longer needed (the‐
36029 mylogin)
36030
36031 • Fix duplication of Google docs on server-side copy (Nick
36032 Craig-Wood)
36033
36034 • Fix "panic: send on closed channel" when recycling dir entries
36035 (Nick Craig-Wood)
36036
36037 • Dropbox
36038
36039 • Add copyright detector info in limitations section in the docs
36040 (Alex Guerrero)
36041
36042 • Fix rclone link by removing expires parameter (Nick Craig-Wood)
36043
36044 • Fichier
36045
36046 • Detect Flood detected: IP Locked error and sleep for 30s (Nick
36047 Craig-Wood)
36048
36049 • FTP
36050
36051 • Add explicit TLS support (Heiko Bornholdt)
36052
36053 • Add support for --dump bodies and --dump auth for debugging (Nick
36054 Craig-Wood)
36055
36056 • Fix interoperation with pure-ftpd (Nick Craig-Wood)
36057
36058 • Google Cloud Storage
36059
36060 • Add support for anonymous access (Kai Lüke)
36061
36062 • Jottacloud
36063
36064 • Bring back legacy authentication for use with whitelabel versions
36065 (buengese)
36066
36067 • Switch to new api root - also implement a very ugly workaround for
36068 the DirMove failures (buengese)
36069
36070 • Onedrive
36071
36072 • Rework cancel of multipart uploads on rclone exit (Nick Craig-Wood)
36073
36074 • Implement rclone cleanup (Nick Craig-Wood)
36075
36076 • Add --onedrive-no-versions flag to remove old versions (Nick
36077 Craig-Wood)
36078
36079 • Pcloud
36080
36081 • Implement rclone link for public link creation (buengese)
36082
36083 • Qingstor
36084
36085 • Cancel in progress multipart uploads on rclone exit (Nick
36086 Craig-Wood)
36087
36088 • S3
36089
36090 • Preserve metadata when doing multipart copy (Nick Craig-Wood)
36091
36092 • Cancel in progress multipart uploads and copies on rclone exit
36093 (Nick Craig-Wood)
36094
36095 • Add rclone link for public link sharing (Roman Kredentser)
36096
36097 • Add rclone backend restore command to restore objects from GLACIER
36098 (Nick Craig-Wood)
36099
36100 • Add rclone cleanup and rclone backend cleanup to clean unfinished
36101 multipart uploads (Nick Craig-Wood)
36102
36103 • Add rclone backend list-multipart-uploads to list unfinished multi‐
36104 part uploads (Nick Craig-Wood)
36105
36106 • Add --s3-max-upload-parts support (Kamil Trzciński)
36107
36108 • Add --s3-no-check-bucket for minimising rclone transactions and
36109 perms (Nick Craig-Wood)
36110
36111 • Add --s3-profile and --s3-shared-credentials-file options (Nick
36112 Craig-Wood)
36113
36114 • Use regional s3 us-east-1 endpoint (David)
36115
36116 • Add Scaleway provider (Vincent Feltz)
36117
36118 • Update IBM COS endpoints (Egor Margineanu)
36119
36120 • Reduce the default --s3-copy-cutoff to < 5GB for Backblaze S3 com‐
36121 patibility (Nick Craig-Wood)
36122
36123 • Fix detection of bucket existing (Nick Craig-Wood)
36124
36125 • SFTP
36126
36127 • Use the absolute path instead of the relative path for listing for
36128 improved compatibility (Nick Craig-Wood)
36129
36130 • Add --sftp-subsystem and --sftp-server-command options (aus)
36131
36132 • Swift
36133
36134 • Fix dangling large objects breaking the listing (Nick Craig-Wood)
36135
36136 • Fix purge not deleting directory markers (Nick Craig-Wood)
36137
36138 • Fix update multipart object removing all of its own parts (Nick
36139 Craig-Wood)
36140
36141 • Fix missing hash from object returned from upload (Nick Craig-Wood)
36142
36143 • Tardigrade
36144
36145 • Upgrade to uplink v1.2.0 (Kaloyan Raev)
36146
36147 • Union
36148
36149 • Fix writing with the all policy (Nick Craig-Wood)
36150
36151 • WebDAV
36152
36153 • Fix directory creation with 4shared (Nick Craig-Wood)
36154
36155 v1.52.3 - 2020-08-07
36156 See commits (https://github.com/rclone/rclone/com‐
36157 pare/v1.52.2...v1.52.3)
36158
36159 • Bug Fixes
36160
36161 • docs
36162
36163 • Disable smart typography (e.g. en-dash) in MANUAL.* and man page
36164 (Nick Craig-Wood)
36165
36166 • Update install.md to reflect minimum Go version (Evan Harris)
36167
36168 • Update install from source instructions (Nick Craig-Wood)
36169
36170 • make_manual: Support SOURCE_DATE_EPOCH (Morten Linderud)
36171
36172 • log: Fix --use-json-log going to stderr not --log-file on Windows
36173 (Nick Craig-Wood)
36174
36175 • serve dlna: Fix file list on Samsung Series 6+ TVs (Matteo Pietro
36176 Dazzi)
36177
36178 • sync: Fix deadlock with --track-renames-strategy modtime (Nick
36179 Craig-Wood)
36180
36181 • Cache
36182
36183 • Fix moveto/copyto remote:file remote:file2 (Nick Craig-Wood)
36184
36185 • Drive
36186
36187 • Stop using root_folder_id as a cache (Nick Craig-Wood)
36188
36189 • Make dangling shortcuts appear in listings (Nick Craig-Wood)
36190
36191 • Drop "Disabling ListR" messages down to debug (Nick Craig-Wood)
36192
36193 • Workaround and policy for Google Drive API (Dmitry Ustalov)
36194
36195 • FTP
36196
36197 • Add note to docs about home vs root directory selection (Nick
36198 Craig-Wood)
36199
36200 • Onedrive
36201
36202 • Fix reverting to Copy when Move would have worked (Nick Craig-Wood)
36203
36204 • Avoid comma rendered in URL in onedrive.md (Kevin)
36205
36206 • Pcloud
36207
36208 • Fix oauth on European region "eapi.pcloud.com" (Nick Craig-Wood)
36209
36210 • S3
36211
36212 • Fix bucket Region auto detection when Region unset in config (Nick
36213 Craig-Wood)
36214
36215 v1.52.2 - 2020-06-24
36216 See commits (https://github.com/rclone/rclone/com‐
36217 pare/v1.52.1...v1.52.2)
36218
36219 • Bug Fixes
36220
36221 • build
36222
36223 • Fix docker release build action (Nick Craig-Wood)
36224
36225 • Fix custom timezone in Docker image (NoLooseEnds)
36226
36227 • check: Fix misleading message which printed errors instead of dif‐
36228 ferences (Nick Craig-Wood)
36229
36230 • errors: Add WSAECONNREFUSED and more to the list of retriable Win‐
36231 dows errors (Nick Craig-Wood)
36232
36233 • rcd: Fix incorrect prometheus metrics (Gary Kim)
36234
36235 • serve restic: Fix flags so they use environment variables (Nick
36236 Craig-Wood)
36237
36238 • serve webdav: Fix flags so they use environment variables (Nick
36239 Craig-Wood)
36240
36241 • sync: Fix --track-renames-strategy modtime (Nick Craig-Wood)
36242
36243 • Drive
36244
36245 • Fix not being able to delete a directory with a trashed shortcut
36246 (Nick Craig-Wood)
36247
36248 • Fix creating a directory inside a shortcut (Nick Craig-Wood)
36249
36250 • Fix --drive-impersonate with cached root_folder_id (Nick
36251 Craig-Wood)
36252
36253 • SFTP
36254
36255 • Fix SSH key PEM loading (Zac Rubin)
36256
36257 • Swift
36258
36259 • Speed up deletes by not retrying segment container deletes (Nick
36260 Craig-Wood)
36261
36262 • Tardigrade
36263
36264 • Upgrade to uplink v1.1.1 (Caleb Case)
36265
36266 • WebDAV
36267
36268 • Fix free/used display for rclone about/df for certain backends
36269 (Nick Craig-Wood)
36270
36271 v1.52.1 - 2020-06-10
36272 See commits (https://github.com/rclone/rclone/com‐
36273 pare/v1.52.0...v1.52.1)
36274
36275 • Bug Fixes
36276
36277 • lib/file: Fix SetSparse on Windows 7 which fixes downloads of files
36278 > 250MB (Nick Craig-Wood)
36279
36280 • build
36281
36282 • Update go.mod to go1.14 to enable -mod=vendor build (Nick
36283 Craig-Wood)
36284
36285 • Remove quicktest from Dockerfile (Nick Craig-Wood)
36286
36287 • Build Docker images with GitHub actions (Matteo Pietro Dazzi)
36288
36289 • Update Docker build workflows (Nick Craig-Wood)
36290
36291 • Set user_allow_other in /etc/fuse.conf in the Docker image (Nick
36292 Craig-Wood)
36293
36294 • Fix xgo build after go1.14 go.mod update (Nick Craig-Wood)
36295
36296 • docs
36297
36298 • Add link to source and modified time to footer of every page
36299 (Nick Craig-Wood)
36300
36301 • Remove manually set dates and use git dates instead (Nick
36302 Craig-Wood)
36303
36304 • Minor tense, punctuation, brevity and positivity changes for the
36305 home page (edwardxml)
36306
36307 • Remove leading slash in page reference in footer when present
36308 (Nick Craig-Wood)
36309
36310 • Note commands which need obscured input in the docs (Nick
36311 Craig-Wood)
36312
36313 • obscure: Write more help as we are referencing it elsewhere (Nick
36314 Craig-Wood)
36315
36316 • VFS
36317
36318 • Fix OS vs Unix path confusion - fixes ChangeNotify on Windows (Nick
36319 Craig-Wood)
36320
36321 • Drive
36322
36323 • Fix missing items when listing using --fast-list / ListR (Nick
36324 Craig-Wood)
36325
36326 • Putio
36327
36328 • Fix panic on Object.Open (Cenk Alti)
36329
36330 • S3
36331
36332 • Fix upload of single files into buckets without create permission
36333 (Nick Craig-Wood)
36334
36335 • Fix --header-upload (Nick Craig-Wood)
36336
36337 • Tardigrade
36338
36339 • Fix listing bug by upgrading to v1.0.7
36340
36341 • Set UserAgent to rclone (Caleb Case)
36342
36343 v1.52.0 - 2020-05-27
36344 Special thanks to Martin Michlmayr for proof reading and correcting all
36345 the docs and Edward Barker for helping re-write the front page.
36346
36347 See commits (https://github.com/rclone/rclone/com‐
36348 pare/v1.51.0...v1.52.0)
36349
36350 • New backends
36351
36352 • Tardigrade (https://rclone.org/tardigrade/) backend for use with
36353 storj.io (Caleb Case)
36354
36355 • Union (https://rclone.org/union/) re-write to have multiple
36356 writable remotes (Max Sum)
36357
36358 • Seafile (/seafile) for Seafile server (Fred @creativeprojects)
36359
36360 • New commands
36361
36362 • backend: command for backend specific commands (see backends) (Nick
36363 Craig-Wood)
36364
36365 • cachestats: Deprecate in favour of rclone backend stats cache:
36366 (Nick Craig-Wood)
36367
36368 • dbhashsum: Deprecate in favour of rclone hashsum DropboxHash (Nick
36369 Craig-Wood)
36370
36371 • New Features
36372
36373 • Add --header-download and --header-upload flags for setting HTTP
36374 headers when uploading/downloading (Tim Gallant)
36375
36376 • Add --header flag to add HTTP headers to every HTTP transaction
36377 (Nick Craig-Wood)
36378
36379 • Add --check-first to do all checking before starting transfers
36380 (Nick Craig-Wood)
36381
36382 • Add --track-renames-strategy for configurable matching criteria for
36383 --track-renames (Bernd Schoolmann)
36384
36385 • Add --cutoff-mode hard,soft,cautious (Shing Kit Chan & Franklyn
36386 Tackitt)
36387
36388 • Filter flags (e.g. --files-from -) can read from stdin (fishbul‐
36389 let)
36390
36391 • Add --error-on-no-transfer option (Jon Fautley)
36392
36393 • Implement --order-by xxx,mixed for copying some small and some big
36394 files (Nick Craig-Wood)
36395
36396 • Allow --max-backlog to be negative meaning as large as possible
36397 (Nick Craig-Wood)
36398
36399 • Added --no-unicode-normalization flag to allow Unicode filenames to
36400 remain unique (Ben Zenker)
36401
36402 • Allow --min-age/--max-age to take a date as well as a duration
36403 (Nick Craig-Wood)
36404
36405 • Add rename statistics for file and directory renames (Nick
36406 Craig-Wood)
36407
36408 • Add statistics output to JSON log (reddi)
36409
36410 • Make stats be printed on non-zero exit code (Nick Craig-Wood)
36411
36412 • When running --password-command allow use of stdin (Sébastien
36413 Gross)
36414
36415 • Stop empty strings being a valid remote path (Nick Craig-Wood)
36416
36417 • accounting: support WriterTo for less memory copying (Nick
36418 Craig-Wood)
36419
36420 • build
36421
36422 • Update to use go1.14 for the build (Nick Craig-Wood)
36423
36424 • Add -trimpath to release build for reproduceable builds (Nick
36425 Craig-Wood)
36426
36427 • Remove GOOS and GOARCH from Dockerfile (Brandon Philips)
36428
36429 • config
36430
36431 • Fsync the config file after writing to save more reliably (Nick
36432 Craig-Wood)
36433
36434 • Add --obscure and --no-obscure flags to config create/update
36435 (Nick Craig-Wood)
36436
36437 • Make config show take remote: as well as remote (Nick Craig-Wood)
36438
36439 • copyurl: Add --no-clobber flag (Denis)
36440
36441 • delete: Added --rmdirs flag to delete directories as well (Kush)
36442
36443 • filter: Added --files-from-raw flag (Ankur Gupta)
36444
36445 • genautocomplete: Add support for fish shell (Matan Rosenberg)
36446
36447 • log: Add support for syslog LOCAL facilities (Patryk Jakuszew)
36448
36449 • lsjson: Add --hash-type parameter and use it in lsf to speed up
36450 hashing (Nick Craig-Wood)
36451
36452 • rc
36453
36454 • Add -o/--opt and -a/--arg for more structured input (Nick
36455 Craig-Wood)
36456
36457 • Implement backend/command for running backend specific commands
36458 remotely (Nick Craig-Wood)
36459
36460 • Add mount/mount command for starting rclone mount via the API
36461 (Chaitanya)
36462
36463 • rcd: Add Prometheus metrics support (Gary Kim)
36464
36465 • serve http
36466
36467 • Added a --template flag for user defined markup (calistri)
36468
36469 • Add Last-Modified headers to files and directories (Nick
36470 Craig-Wood)
36471
36472 • serve sftp: Add support for multiple host keys by repeating --key
36473 flag (Maxime Suret)
36474
36475 • touch: Add --localtime flag to make --timestamp localtime not UTC
36476 (Nick Craig-Wood)
36477
36478 • Bug Fixes
36479
36480 • accounting
36481
36482 • Restore "Max number of stats groups reached" log line (Michał
36483 Matczuk)
36484
36485 • Correct exitcode on Transfer Limit Exceeded flag. (Anuar
36486 Serdaliyev)
36487
36488 • Reset bytes read during copy retry (Ankur Gupta)
36489
36490 • Fix race clearing stats (Nick Craig-Wood)
36491
36492 • copy: Only create empty directories when they don't exist on the
36493 remote (Ishuah Kariuki)
36494
36495 • dedupe: Stop dedupe deleting files with identical IDs (Nick
36496 Craig-Wood)
36497
36498 • oauth
36499
36500 • Use custom http client so that --no-check-certificate is honored
36501 by oauth token fetch (Mark Spieth)
36502
36503 • Replace deprecated oauth2.NoContext (Lars Lehtonen)
36504
36505 • operations
36506
36507 • Fix setting the timestamp on Windows for multithread copy (Nick
36508 Craig-Wood)
36509
36510 • Make rcat obey --ignore-checksum (Nick Craig-Wood)
36511
36512 • Make --max-transfer more accurate (Nick Craig-Wood)
36513
36514 • rc
36515
36516 • Fix dropped error (Lars Lehtonen)
36517
36518 • Fix misplaced http server config (Xiaoxing Ye)
36519
36520 • Disable duplicate log (ElonH)
36521
36522 • serve dlna
36523
36524 • Cds: don't specify childCount at all when unknown (Dan Walters)
36525
36526 • Cds: use modification time as date in dlna metadata (Dan Walters)
36527
36528 • serve restic: Fix tests after restic project removed vendoring
36529 (Nick Craig-Wood)
36530
36531 • sync
36532
36533 • Fix incorrect "nothing to transfer" message using --delete-before
36534 (Nick Craig-Wood)
36535
36536 • Only create empty directories when they don't exist on the remote
36537 (Ishuah Kariuki)
36538
36539 • Mount
36540
36541 • Add --async-read flag to disable asynchronous reads (Nick
36542 Craig-Wood)
36543
36544 • Ignore --allow-root flag with a warning as it has been removed up‐
36545 stream (Nick Craig-Wood)
36546
36547 • Warn if --allow-non-empty used on Windows and clarify docs (Nick
36548 Craig-Wood)
36549
36550 • Constrain to go1.13 or above otherwise bazil.org/fuse fails to com‐
36551 pile (Nick Craig-Wood)
36552
36553 • Fix fail because of too long volume name (evileye)
36554
36555 • Report 1PB free for unknown disk sizes (Nick Craig-Wood)
36556
36557 • Map more rclone errors into file systems errors (Nick Craig-Wood)
36558
36559 • Fix disappearing cwd problem (Nick Craig-Wood)
36560
36561 • Use ReaddirPlus on Windows to improve directory listing performance
36562 (Nick Craig-Wood)
36563
36564 • Send a hint as to whether the filesystem is case insensitive or not
36565 (Nick Craig-Wood)
36566
36567 • Add rc command mount/types (Nick Craig-Wood)
36568
36569 • Change maximum leaf name length to 1024 bytes (Nick Craig-Wood)
36570
36571 • VFS
36572
36573 • Add --vfs-read-wait and --vfs-write-wait flags to control time
36574 waiting for a sequential read/write (Nick Craig-Wood)
36575
36576 • Change default --vfs-read-wait to 20ms (it was 5ms and not config‐
36577 urable) (Nick Craig-Wood)
36578
36579 • Make df output more consistent on a rclone mount. (Yves G)
36580
36581 • Report 1PB free for unknown disk sizes (Nick Craig-Wood)
36582
36583 • Fix race condition caused by unlocked reading of Dir.path (Nick
36584 Craig-Wood)
36585
36586 • Make File lock and Dir lock not overlap to avoid deadlock (Nick
36587 Craig-Wood)
36588
36589 • Implement lock ordering between File and Dir to eliminate deadlocks
36590 (Nick Craig-Wood)
36591
36592 • Factor the vfs cache into its own package (Nick Craig-Wood)
36593
36594 • Pin the Fs in use in the Fs cache (Nick Craig-Wood)
36595
36596 • Add SetSys() methods to Node to allow caching stuff on a node (Nick
36597 Craig-Wood)
36598
36599 • Ignore file not found errors from Hash in Read.Release (Nick
36600 Craig-Wood)
36601
36602 • Fix hang in read wait code (Nick Craig-Wood)
36603
36604 • Local
36605
36606 • Speed up multi thread downloads by using sparse files on Windows
36607 (Nick Craig-Wood)
36608
36609 • Implement --local-no-sparse flag for disabling sparse files (Nick
36610 Craig-Wood)
36611
36612 • Implement rclone backend noop for testing purposes (Nick
36613 Craig-Wood)
36614
36615 • Fix "file not found" errors on post transfer Hash calculation (Nick
36616 Craig-Wood)
36617
36618 • Cache
36619
36620 • Implement rclone backend stats command (Nick Craig-Wood)
36621
36622 • Fix Server Side Copy with Temp Upload (Brandon McNama)
36623
36624 • Remove Unused Functions (Lars Lehtonen)
36625
36626 • Disable race tests until bbolt is fixed (Nick Craig-Wood)
36627
36628 • Move methods used for testing into test file (greatroar)
36629
36630 • Add Pin and Unpin and canonicalised lookup (Nick Craig-Wood)
36631
36632 • Use proper import path go.etcd.io/bbolt (Robert-André Mauchin)
36633
36634 • Crypt
36635
36636 • Calculate hashes for uploads from local disk (Nick Craig-Wood)
36637
36638 • This allows crypted Jottacloud uploads without using local disk
36639
36640 • This means crypted s3/b2 uploads will now have hashes
36641
36642 • Added rclone backend decode/encode commands to replicate function‐
36643 ality of cryptdecode (Anagh Kumar Baranwal)
36644
36645 • Get rid of the unused Cipher interface as it obfuscated the code
36646 (Nick Craig-Wood)
36647
36648 • Azure Blob
36649
36650 • Implement streaming of unknown sized files so rcat is now supported
36651 (Nick Craig-Wood)
36652
36653 • Implement memory pooling to control memory use (Nick Craig-Wood)
36654
36655 • Add --azureblob-disable-checksum flag (Nick Craig-Wood)
36656
36657 • Retry InvalidBlobOrBlock error as it may indicate block concurrency
36658 problems (Nick Craig-Wood)
36659
36660 • Remove unused Object.parseTimeString() (Lars Lehtonen)
36661
36662 • Fix permission error on SAS URL limited to container (Nick
36663 Craig-Wood)
36664
36665 • B2
36666
36667 • Add support for --header-upload and --header-download (Tim Gallant)
36668
36669 • Ignore directory markers at the root also (Nick Craig-Wood)
36670
36671 • Force the case of the SHA1 to lowercase (Nick Craig-Wood)
36672
36673 • Remove unused largeUpload.clearUploadURL() (Lars Lehtonen)
36674
36675 • Box
36676
36677 • Add support for --header-upload and --header-download (Tim Gallant)
36678
36679 • Implement About to read size used (Nick Craig-Wood)
36680
36681 • Add token renew function for jwt auth (David Bramwell)
36682
36683 • Added support for interchangeable root folder for Box backend
36684 (Sunil Patra)
36685
36686 • Remove unnecessary iat from jws claims (David)
36687
36688 • Drive
36689
36690 • Follow shortcuts by default, skip with --drive-skip-shortcuts (Nick
36691 Craig-Wood)
36692
36693 • Implement rclone backend shortcut command for creating shortcuts
36694 (Nick Craig-Wood)
36695
36696 • Added rclone backend command to change service_account_file and
36697 chunk_size (Anagh Kumar Baranwal)
36698
36699 • Fix missing files when using --fast-list and --drive-shared-with-me
36700 (Nick Craig-Wood)
36701
36702 • Fix duplicate items when using --drive-shared-with-me (Nick
36703 Craig-Wood)
36704
36705 • Extend --drive-stop-on-upload-limit to respond to teamDriveFileLim‐
36706 itExceeded. (harry)
36707
36708 • Don't delete files with multiple parents to avoid data loss (Nick
36709 Craig-Wood)
36710
36711 • Server side copy docs use default description if empty (Nick
36712 Craig-Wood)
36713
36714 • Dropbox
36715
36716 • Make error insufficient space to be fatal (harry)
36717
36718 • Add info about required redirect url (Elan Ruusamäe)
36719
36720 • Fichier
36721
36722 • Add support for --header-upload and --header-download (Tim Gallant)
36723
36724 • Implement custom pacer to deal with the new rate limiting
36725 (buengese)
36726
36727 • FTP
36728
36729 • Fix lockup when using concurrency limit on failed connections (Nick
36730 Craig-Wood)
36731
36732 • Fix lockup on failed upload when using concurrency limit (Nick
36733 Craig-Wood)
36734
36735 • Fix lockup on Close failures when using concurrency limit (Nick
36736 Craig-Wood)
36737
36738 • Work around pureftp sending spurious 150 messages (Nick Craig-Wood)
36739
36740 • Google Cloud Storage
36741
36742 • Add support for --header-upload and --header-download (Nick
36743 Craig-Wood)
36744
36745 • Add ARCHIVE storage class to help (Adam Stroud)
36746
36747 • Ignore directory markers at the root (Nick Craig-Wood)
36748
36749 • Googlephotos
36750
36751 • Make the start year configurable (Daven)
36752
36753 • Add support for --header-upload and --header-download (Tim Gallant)
36754
36755 • Create feature/favorites directory (Brandon Philips)
36756
36757 • Fix "concurrent map write" error (Nick Craig-Wood)
36758
36759 • Don't put an image in error message (Nick Craig-Wood)
36760
36761 • HTTP
36762
36763 • Improved directory listing with new template from Caddy project
36764 (calisro)
36765
36766 • Jottacloud
36767
36768 • Implement --jottacloud-trashed-only (buengese)
36769
36770 • Add support for --header-upload and --header-download (Tim Gallant)
36771
36772 • Use RawURLEncoding when decoding base64 encoded login token
36773 (buengese)
36774
36775 • Implement cleanup (buengese)
36776
36777 • Update docs regarding cleanup, removed remains from old auth, and
36778 added warning about special mountpoints. (albertony)
36779
36780 • Mailru
36781
36782 • Describe 2FA requirements (valery1707)
36783
36784 • Onedrive
36785
36786 • Implement --onedrive-server-side-across-configs (Nick Craig-Wood)
36787
36788 • Add support for --header-upload and --header-download (Tim Gallant)
36789
36790 • Fix occasional 416 errors on multipart uploads (Nick Craig-Wood)
36791
36792 • Added maximum chunk size limit warning in the docs (Harry)
36793
36794 • Fix missing drive on config (Nick Craig-Wood)
36795
36796 • Make error quotaLimitReached to be fatal (harry)
36797
36798 • Opendrive
36799
36800 • Add support for --header-upload and --header-download (Tim Gallant)
36801
36802 • Pcloud
36803
36804 • Added support for interchangeable root folder for pCloud backend
36805 (Sunil Patra)
36806
36807 • Add support for --header-upload and --header-download (Tim Gallant)
36808
36809 • Fix initial config "Auth state doesn't match" message (Nick
36810 Craig-Wood)
36811
36812 • Premiumizeme
36813
36814 • Add support for --header-upload and --header-download (Tim Gallant)
36815
36816 • Prune unused functions (Lars Lehtonen)
36817
36818 • Putio
36819
36820 • Add support for --header-upload and --header-download (Nick
36821 Craig-Wood)
36822
36823 • Make downloading files use the rclone http Client (Nick Craig-Wood)
36824
36825 • Fix parsing of remotes with leading and trailing / (Nick
36826 Craig-Wood)
36827
36828 • Qingstor
36829
36830 • Make rclone cleanup remove pending multipart uploads older than 24h
36831 (Nick Craig-Wood)
36832
36833 • Try harder to cancel failed multipart uploads (Nick Craig-Wood)
36834
36835 • Prune multiUploader.list() (Lars Lehtonen)
36836
36837 • Lint fix (Lars Lehtonen)
36838
36839 • S3
36840
36841 • Add support for --header-upload and --header-download (Tim Gallant)
36842
36843 • Use memory pool for buffer allocations (Maciej Zimnoch)
36844
36845 • Add SSE-C support for AWS, Ceph, and MinIO (Jack Anderson)
36846
36847 • Fail fast multipart upload (Michał Matczuk)
36848
36849 • Report errors on bucket creation (mkdir) correctly (Nick
36850 Craig-Wood)
36851
36852 • Specify that Minio supports URL encoding in listings (Nick
36853 Craig-Wood)
36854
36855 • Added 500 as retryErrorCode (Michał Matczuk)
36856
36857 • Use --low-level-retries as the number of SDK retries (Aleksandar
36858 Janković)
36859
36860 • Fix multipart abort context (Aleksandar Jankovic)
36861
36862 • Replace deprecated session.New() with session.NewSession() (Lars
36863 Lehtonen)
36864
36865 • Use the provided size parameter when allocating a new memory pool
36866 (Joachim Brandon LeBlanc)
36867
36868 • Use rclone's low level retries instead of AWS SDK to fix listing
36869 retries (Nick Craig-Wood)
36870
36871 • Ignore directory markers at the root also (Nick Craig-Wood)
36872
36873 • Use single memory pool (Michał Matczuk)
36874
36875 • Do not resize buf on put to memBuf (Michał Matczuk)
36876
36877 • Improve docs for --s3-disable-checksum (Nick Craig-Wood)
36878
36879 • Don't leak memory or tokens in edge cases for multipart upload
36880 (Nick Craig-Wood)
36881
36882 • Seafile
36883
36884 • Implement 2FA (Fred)
36885
36886 • SFTP
36887
36888 • Added --sftp-pem-key to support inline key files (calisro)
36889
36890 • Fix post transfer copies failing with 0 size when using set_mod‐
36891 time=false (Nick Craig-Wood)
36892
36893 • Sharefile
36894
36895 • Add support for --header-upload and --header-download (Tim Gallant)
36896
36897 • Sugarsync
36898
36899 • Add support for --header-upload and --header-download (Tim Gallant)
36900
36901 • Swift
36902
36903 • Add support for --header-upload and --header-download (Nick
36904 Craig-Wood)
36905
36906 • Fix cosmetic issue in error message (Martin Michlmayr)
36907
36908 • Union
36909
36910 • Implement multiple writable remotes (Max Sum)
36911
36912 • Fix server-side copy (Max Sum)
36913
36914 • Implement ListR (Max Sum)
36915
36916 • Enable ListR when upstreams contain local (Max Sum)
36917
36918 • WebDAV
36919
36920 • Add support for --header-upload and --header-download (Tim Gallant)
36921
36922 • Fix X-OC-Mtime header for Transip compatibility (Nick Craig-Wood)
36923
36924 • Report full and consistent usage with about (Yves G)
36925
36926 • Yandex
36927
36928 • Add support for --header-upload and --header-download (Tim Gallant)
36929
36930 v1.51.0 - 2020-02-01
36931 • New backends
36932
36933 • Memory (https://rclone.org/memory/) (Nick Craig-Wood)
36934
36935 • Sugarsync (https://rclone.org/sugarsync/) (Nick Craig-Wood)
36936
36937 • New Features
36938
36939 • Adjust all backends to have --backend-encoding parameter (Nick
36940 Craig-Wood)
36941
36942 • this enables the encoding for special characters to be adjusted
36943 or disabled
36944
36945 • Add --max-duration flag to control the maximum duration of a trans‐
36946 fer session (boosh)
36947
36948 • Add --expect-continue-timeout flag, default 1s (Nick Craig-Wood)
36949
36950 • Add --no-check-dest flag for copying without testing the destina‐
36951 tion (Nick Craig-Wood)
36952
36953 • Implement --order-by flag to order transfers (Nick Craig-Wood)
36954
36955 • accounting
36956
36957 • Don't show entries in both transferring and checking (Nick
36958 Craig-Wood)
36959
36960 • Add option to delete stats (Aleksandar Jankovic)
36961
36962 • build
36963
36964 • Compress the test builds with gzip (Nick Craig-Wood)
36965
36966 • Implement a framework for starting test servers during tests
36967 (Nick Craig-Wood)
36968
36969 • cmd: Always print elapsed time to tenth place seconds in progress
36970 (Gary Kim)
36971
36972 • config
36973
36974 • Add --password-command to allow dynamic config password (Damon
36975 Permezel)
36976
36977 • Give config questions default values (Nick Craig-Wood)
36978
36979 • Check a remote exists when creating a new one (Nick Craig-Wood)
36980
36981 • copyurl: Add --stdout flag to write to stdout (Nick Craig-Wood)
36982
36983 • dedupe: Implement keep smallest too (Nick Craig-Wood)
36984
36985 • hashsum: Add flag --base64 flag (landall)
36986
36987 • lsf: Speed up on s3/swift/etc by not reading mimetype by default
36988 (Nick Craig-Wood)
36989
36990 • lsjson: Add --no-mimetype flag (Nick Craig-Wood)
36991
36992 • rc: Add methods to turn on blocking and mutex profiling (Nick
36993 Craig-Wood)
36994
36995 • rcd
36996
36997 • Adding group parameter to stats (Chaitanya)
36998
36999 • Move webgui apart; option to disable browser (Xiaoxing Ye)
37000
37001 • serve sftp: Add support for public key with auth proxy (Paul Tins‐
37002 ley)
37003
37004 • stats: Show deletes in stats and hide zero stats (anuar45)
37005
37006 • Bug Fixes
37007
37008 • accounting
37009
37010 • Fix error counter counting multiple times (Ankur Gupta)
37011
37012 • Fix error count shown as checks (Cnly)
37013
37014 • Clear finished transfer in stats-reset (Maciej Zimnoch)
37015
37016 • Added StatsInfo locking in statsGroups sum function (Michał
37017 Matczuk)
37018
37019 • asyncreader: Fix EOF error (buengese)
37020
37021 • check: Fix --one-way recursing more directories than it needs to
37022 (Nick Craig-Wood)
37023
37024 • chunkedreader: Disable hash calculation for first segment (Nick
37025 Craig-Wood)
37026
37027 • config
37028
37029 • Do not open browser on headless on drive/gcs/google photos (Xi‐
37030 aoxing Ye)
37031
37032 • SetValueAndSave ignore error if config section does not exist yet
37033 (buengese)
37034
37035 • cmd: Fix completion with an encrypted config (Danil Semelenov)
37036
37037 • dbhashsum: Stop it returning UNSUPPORTED on dropbox (Nick
37038 Craig-Wood)
37039
37040 • dedupe: Add missing modes to help string (Nick Craig-Wood)
37041
37042 • operations
37043
37044 • Fix dedupe continuing on errors like insufficientFilePersimmon
37045 (SezalAgrawal)
37046
37047 • Clear accounting before low level retry (Maciej Zimnoch)
37048
37049 • Write debug message when hashes could not be checked (Ole Schütt)
37050
37051 • Move interface assertion to tests to remove pflag dependency
37052 (Nick Craig-Wood)
37053
37054 • Make NewOverrideObjectInfo public and factor uses (Nick
37055 Craig-Wood)
37056
37057 • proxy: Replace use of bcrypt with sha256 (Nick Craig-Wood)
37058
37059 • vendor
37060
37061 • Update bazil.org/fuse to fix FreeBSD 12.1 (Nick Craig-Wood)
37062
37063 • Update github.com/t3rm1n4l/go-mega to fix mega "illegal base64
37064 data at input byte 22" (Nick Craig-Wood)
37065
37066 • Update termbox-go to fix ncdu command on FreeBSD (Kuang-che Wu)
37067
37068 • Update t3rm1n4l/go-mega - fixes mega: couldn't login: crypto/aes:
37069 invalid key size 0 (Nick Craig-Wood)
37070
37071 • Mount
37072
37073 • Enable async reads for a 20% speedup (Nick Craig-Wood)
37074
37075 • Replace use of WriteAt with Write for cache mode >= writes and
37076 O_APPEND (Brett Dutro)
37077
37078 • Make sure we call unmount when exiting (Nick Craig-Wood)
37079
37080 • Don't build on go1.10 as bazil/fuse no longer supports it (Nick
37081 Craig-Wood)
37082
37083 • When setting dates discard out of range dates (Nick Craig-Wood)
37084
37085 • VFS
37086
37087 • Add a newly created file straight into the directory (Nick
37088 Craig-Wood)
37089
37090 • Only calculate one hash for reads for a speedup (Nick Craig-Wood)
37091
37092 • Make ReadAt for non cached files work better with non-sequential
37093 reads (Nick Craig-Wood)
37094
37095 • Fix edge cases when reading ModTime from file (Nick Craig-Wood)
37096
37097 • Make sure existing files opened for write show correct size (Nick
37098 Craig-Wood)
37099
37100 • Don't cache the path in RW file objects to fix renaming (Nick
37101 Craig-Wood)
37102
37103 • Fix rename of open files when using the VFS cache (Nick Craig-Wood)
37104
37105 • When renaming files in the cache, rename the cache item in memory
37106 too (Nick Craig-Wood)
37107
37108 • Fix open file renaming on drive when using --vfs-cache-mode writes
37109 (Nick Craig-Wood)
37110
37111 • Fix incorrect modtime for mv into mount with --vfs-cache-modes
37112 writes (Nick Craig-Wood)
37113
37114 • On rename, rename in cache too if the file exists (Anagh Kumar
37115 Baranwal)
37116
37117 • Local
37118
37119 • Make source file being updated errors be NoLowLevelRetry errors
37120 (Nick Craig-Wood)
37121
37122 • Fix update of hidden files on Windows (Nick Craig-Wood)
37123
37124 • Cache
37125
37126 • Follow move of upstream library github.com/coreos/bbolt
37127 github.com/etcd-io/bbolt (Nick Craig-Wood)
37128
37129 • Fix fatal error: concurrent map writes (Nick Craig-Wood)
37130
37131 • Crypt
37132
37133 • Reorder the filename encryption options (Thomas Eales)
37134
37135 • Correctly handle trailing dot (buengese)
37136
37137 • Chunker
37138
37139 • Reduce length of temporary suffix (Ivan Andreev)
37140
37141 • Drive
37142
37143 • Add --drive-stop-on-upload-limit flag to stop syncs when upload
37144 limit reached (Nick Craig-Wood)
37145
37146 • Add --drive-use-shared-date to use date file was shared instead of
37147 modified date (Garry McNulty)
37148
37149 • Make sure invalid auth for teamdrives always reports an error (Nick
37150 Craig-Wood)
37151
37152 • Fix --fast-list when using appDataFolder (Nick Craig-Wood)
37153
37154 • Use multipart resumable uploads for streaming and uploads in mount
37155 (Nick Craig-Wood)
37156
37157 • Log an ERROR if an incomplete search is returned (Nick Craig-Wood)
37158
37159 • Hide dangerous config from the configurator (Nick Craig-Wood)
37160
37161 • Dropbox
37162
37163 • Treat insufficient_space errors as non retriable errors (Nick
37164 Craig-Wood)
37165
37166 • Jottacloud
37167
37168 • Use new auth method used by official client (buengese)
37169
37170 • Add URL to generate Login Token to config wizard (Nick Craig-Wood)
37171
37172 • Add support whitelabel versions (buengese)
37173
37174 • Koofr
37175
37176 • Use rclone HTTP client. (jaKa)
37177
37178 • Onedrive
37179
37180 • Add Sites.Read.All permission (Benjamin Richter)
37181
37182 • Add support "Retry-After" header (Motonori IWAMURO)
37183
37184 • Opendrive
37185
37186 • Implement --opendrive-chunk-size (Nick Craig-Wood)
37187
37188 • S3
37189
37190 • Re-implement multipart upload to fix memory issues (Nick
37191 Craig-Wood)
37192
37193 • Add --s3-copy-cutoff for size to switch to multipart copy (Nick
37194 Craig-Wood)
37195
37196 • Add new region Asia Pacific (Hong Kong) (Outvi V)
37197
37198 • Reduce memory usage streaming files by reducing max stream upload
37199 size (Nick Craig-Wood)
37200
37201 • Add --s3-list-chunk option for bucket listing (Thomas Kriechbaumer)
37202
37203 • Force path style bucket access to off for AWS deprecation (Nick
37204 Craig-Wood)
37205
37206 • Use AWS web identity role provider if available (Tennix)
37207
37208 • Add StackPath Object Storage Support (Dave Koston)
37209
37210 • Fix ExpiryWindow value (Aleksandar Jankovic)
37211
37212 • Fix DisableChecksum condition (Aleksandar Janković)
37213
37214 • Fix URL decoding of NextMarker (Nick Craig-Wood)
37215
37216 • SFTP
37217
37218 • Add --sftp-skip-links to skip symlinks and non regular files (Nick
37219 Craig-Wood)
37220
37221 • Retry Creation of Connection (Sebastian Brandt)
37222
37223 • Fix "failed to parse private key file: ssh: not an encrypted key"
37224 error (Nick Craig-Wood)
37225
37226 • Open files for update write only to fix AWS SFTP interop (Nick
37227 Craig-Wood)
37228
37229 • Swift
37230
37231 • Reserve segments of dynamic large object when delete objects in
37232 container what was enabled versioning. (Nguyễn Hữu Luân)
37233
37234 • Fix parsing of X-Object-Manifest (Nick Craig-Wood)
37235
37236 • Update OVH API endpoint (unbelauscht)
37237
37238 • WebDAV
37239
37240 • Make nextcloud only upload SHA1 checksums (Nick Craig-Wood)
37241
37242 • Fix case of "Bearer" in Authorization: header to agree with RFC
37243 (Nick Craig-Wood)
37244
37245 • Add Referer header to fix problems with WAFs (Nick Craig-Wood)
37246
37247 v1.50.2 - 2019-11-19
37248 • Bug Fixes
37249
37250 • accounting: Fix memory leak on retries operations (Nick Craig-Wood)
37251
37252 • Drive
37253
37254 • Fix listing of the root directory with drive.files scope (Nick
37255 Craig-Wood)
37256
37257 • Fix --drive-root-folder-id with team/shared drives (Nick
37258 Craig-Wood)
37259
37260 v1.50.1 - 2019-11-02
37261 • Bug Fixes
37262
37263 • hash: Fix accidentally changed hash names for DropboxHash and
37264 CRC-32 (Nick Craig-Wood)
37265
37266 • fshttp: Fix error reporting on tpslimit token bucket errors (Nick
37267 Craig-Wood)
37268
37269 • fshttp: Don't print token bucket errors on context cancelled (Nick
37270 Craig-Wood)
37271
37272 • Local
37273
37274 • Fix listings of . on Windows (Nick Craig-Wood)
37275
37276 • Onedrive
37277
37278 • Fix DirMove/Move after Onedrive change (Xiaoxing Ye)
37279
37280 v1.50.0 - 2019-10-26
37281 • New backends
37282
37283 • Citrix Sharefile (https://rclone.org/sharefile/) (Nick Craig-Wood)
37284
37285 • Chunker (https://rclone.org/chunker/) - an overlay backend to split
37286 files into smaller parts (Ivan Andreev)
37287
37288 • Mail.ru Cloud (https://rclone.org/mailru/) (Ivan Andreev)
37289
37290 • New Features
37291
37292 • encodings (Fabian Möller & Nick Craig-Wood)
37293
37294 • All backends now use file name encoding to ensure any file name
37295 can be written to any backend.
37296
37297 • See the restricted file name docs (https://rclone.org/over‐
37298 view/#restricted-filenames) for more info and the local backend
37299 docs (/local/#filenames).
37300
37301 • Some file names may look different in rclone if you are using any
37302 control characters in names or unicode FULLWIDTH symbols
37303 (https://en.wikipedia.org/wiki/Halfwidth_and_Full‐
37304 width_Forms_(Unicode_block)).
37305
37306 • build
37307
37308 • Update to use go1.13 for the build (Nick Craig-Wood)
37309
37310 • Drop support for go1.9 (Nick Craig-Wood)
37311
37312 • Build rclone with GitHub actions (Nick Craig-Wood)
37313
37314 • Convert python scripts to python3 (Nick Craig-Wood)
37315
37316 • Swap Azure/go-ansiterm for mattn/go-colorable (Nick Craig-Wood)
37317
37318 • Dockerfile fixes (Matei David)
37319
37320 • Add plugin support (https://github.com/rclone/rclone/blob/mas‐
37321 ter/CONTRIBUTING.md#writing-a-plugin) for backends and commands
37322 (Richard Patel)
37323
37324 • config
37325
37326 • Use alternating Red/Green in config to make more obvious (Nick
37327 Craig-Wood)
37328
37329 • contrib
37330
37331 • Add sample DLNA server Docker Compose manifest. (pataquets)
37332
37333 • Add sample WebDAV server Docker Compose manifest. (pataquets)
37334
37335 • copyurl
37336
37337 • Add --auto-filename flag for using file name from URL in destina‐
37338 tion path (Denis)
37339
37340 • serve dlna:
37341
37342 • Many compatibility improvements (Dan Walters)
37343
37344 • Support for external srt subtitles (Dan Walters)
37345
37346 • rc
37347
37348 • Added command core/quit (Saksham Khanna)
37349
37350 • Bug Fixes
37351
37352 • sync
37353
37354 • Make --update/-u not transfer files that haven't changed (Nick
37355 Craig-Wood)
37356
37357 • Free objects after they come out of the transfer pipe to save
37358 memory (Nick Craig-Wood)
37359
37360 • Fix --files-from without --no-traverse doing a recursive scan
37361 (Nick Craig-Wood)
37362
37363 • operations
37364
37365 • Fix accounting for server-side copies (Nick Craig-Wood)
37366
37367 • Display 'All duplicates removed' only if dedupe successful (Sezal
37368 Agrawal)
37369
37370 • Display 'Deleted X extra copies' only if dedupe successful (Sezal
37371 Agrawal)
37372
37373 • accounting
37374
37375 • Only allow up to 100 completed transfers in the accounting list
37376 to save memory (Nick Craig-Wood)
37377
37378 • Cull the old time ranges when possible to save memory (Nick
37379 Craig-Wood)
37380
37381 • Fix panic due to server-side copy fallback (Ivan Andreev)
37382
37383 • Fix memory leak noticeable for transfers of large numbers of ob‐
37384 jects (Nick Craig-Wood)
37385
37386 • Fix total duration calculation (Nick Craig-Wood)
37387
37388 • cmd
37389
37390 • Fix environment variables not setting command line flags (Nick
37391 Craig-Wood)
37392
37393 • Make autocomplete compatible with bash's posix mode for macOS
37394 (Danil Semelenov)
37395
37396 • Make --progress work in git bash on Windows (Nick Craig-Wood)
37397
37398 • Fix 'compopt: command not found' on autocomplete on macOS (Danil
37399 Semelenov)
37400
37401 • config
37402
37403 • Fix setting of non top level flags from environment variables
37404 (Nick Craig-Wood)
37405
37406 • Check config names more carefully and report errors (Nick
37407 Craig-Wood)
37408
37409 • Remove error: can't use --size-only and --ignore-size together.
37410 (Nick Craig-Wood)
37411
37412 • filter: Prevent mixing options when --files-from is in use (Michele
37413 Caci)
37414
37415 • serve sftp: Fix crash on unsupported operations (e.g. Readlink)
37416 (Nick Craig-Wood)
37417
37418 • Mount
37419
37420 • Allow files of unknown size to be read properly (Nick Craig-Wood)
37421
37422 • Skip tests on <= 2 CPUs to avoid lockup (Nick Craig-Wood)
37423
37424 • Fix panic on File.Open (Nick Craig-Wood)
37425
37426 • Fix "mount_fusefs: -o timeout=: option not supported" on FreeBSD
37427 (Nick Craig-Wood)
37428
37429 • Don't pass huge filenames (>4k) to FUSE as it can't cope (Nick
37430 Craig-Wood)
37431
37432 • VFS
37433
37434 • Add flag --vfs-case-insensitive for windows/macOS mounts (Ivan An‐
37435 dreev)
37436
37437 • Make objects of unknown size readable through the VFS (Nick
37438 Craig-Wood)
37439
37440 • Move writeback of dirty data out of close() method into its own
37441 method (FlushWrites) and remove close() call from Flush() (Brett
37442 Dutro)
37443
37444 • Stop empty dirs disappearing when renamed on bucket based remotes
37445 (Nick Craig-Wood)
37446
37447 • Stop change notify polling clearing so much of the directory cache
37448 (Nick Craig-Wood)
37449
37450 • Azure Blob
37451
37452 • Disable logging to the Windows event log (Nick Craig-Wood)
37453
37454 • B2
37455
37456 • Remove unverified: prefix on sha1 to improve interop (e.g. with
37457 CyberDuck) (Nick Craig-Wood)
37458
37459 • Box
37460
37461 • Add options to get access token via JWT auth (David)
37462
37463 • Drive
37464
37465 • Disable HTTP/2 by default to work around INTERNAL_ERROR problems
37466 (Nick Craig-Wood)
37467
37468 • Make sure that drive root ID is always canonical (Nick Craig-Wood)
37469
37470 • Fix --drive-shared-with-me from the root with lsand --fast-list
37471 (Nick Craig-Wood)
37472
37473 • Fix ChangeNotify polling for shared drives (Nick Craig-Wood)
37474
37475 • Fix change notify polling when using appDataFolder (Nick
37476 Craig-Wood)
37477
37478 • Dropbox
37479
37480 • Make disallowed filenames errors not retry (Nick Craig-Wood)
37481
37482 • Fix nil pointer exception on restricted files (Nick Craig-Wood)
37483
37484 • Fichier
37485
37486 • Fix accessing files > 2GB on 32 bit systems (Nick Craig-Wood)
37487
37488 • FTP
37489
37490 • Allow disabling EPSV mode (Jon Fautley)
37491
37492 • HTTP
37493
37494 • HEAD directory entries in parallel to speedup (Nick Craig-Wood)
37495
37496 • Add --http-no-head to stop rclone doing HEAD in listings (Nick
37497 Craig-Wood)
37498
37499 • Putio
37500
37501 • Add ability to resume uploads (Cenk Alti)
37502
37503 • S3
37504
37505 • Fix signature v2_auth headers (Anthony Rusdi)
37506
37507 • Fix encoding for control characters (Nick Craig-Wood)
37508
37509 • Only ask for URL encoded directory listings if we need them on Ceph
37510 (Nick Craig-Wood)
37511
37512 • Add option for multipart failure behaviour (Aleksandar Jankovic)
37513
37514 • Support for multipart copy (庄天翼)
37515
37516 • Fix nil pointer reference if no metadata returned for object (Nick
37517 Craig-Wood)
37518
37519 • SFTP
37520
37521 • Fix --sftp-ask-password trying to contact the ssh agent (Nick
37522 Craig-Wood)
37523
37524 • Fix hashes of files with backslashes (Nick Craig-Wood)
37525
37526 • Include more ciphers with --sftp-use-insecure-cipher (Carlos Fer‐
37527 reyra)
37528
37529 • WebDAV
37530
37531 • Parse and return Sharepoint error response (Henning Surmeier)
37532
37533 v1.49.5 - 2019-10-05
37534 • Bug Fixes
37535
37536 • Revert back to go1.12.x for the v1.49.x builds as go1.13.x was
37537 causing issues (Nick Craig-Wood)
37538
37539 • Fix rpm packages by using master builds of nfpm (Nick Craig-Wood)
37540
37541 • Fix macOS build after brew changes (Nick Craig-Wood)
37542
37543 v1.49.4 - 2019-09-29
37544 • Bug Fixes
37545
37546 • cmd/rcd: Address ZipSlip vulnerability (Richard Patel)
37547
37548 • accounting: Fix file handle leak on errors (Nick Craig-Wood)
37549
37550 • oauthutil: Fix security problem when running with two users on the
37551 same machine (Nick Craig-Wood)
37552
37553 • FTP
37554
37555 • Fix listing of an empty root returning: error dir not found (Nick
37556 Craig-Wood)
37557
37558 • S3
37559
37560 • Fix SetModTime on GLACIER/ARCHIVE objects and implement set/get
37561 tier (Nick Craig-Wood)
37562
37563 v1.49.3 - 2019-09-15
37564 • Bug Fixes
37565
37566 • accounting
37567
37568 • Fix total duration calculation (Aleksandar Jankovic)
37569
37570 • Fix "file already closed" on transfer retries (Nick Craig-Wood)
37571
37572 v1.49.2 - 2019-09-08
37573 • New Features
37574
37575 • build: Add Docker workflow support (Alfonso Montero)
37576
37577 • Bug Fixes
37578
37579 • accounting: Fix locking in Transfer to avoid deadlock with
37580 --progress (Nick Craig-Wood)
37581
37582 • docs: Fix template argument for mktemp in install.sh (Cnly)
37583
37584 • operations: Fix -u/--update with google photos / files of unknown
37585 size (Nick Craig-Wood)
37586
37587 • rc: Fix docs for config/create /update /password (Nick Craig-Wood)
37588
37589 • Google Cloud Storage
37590
37591 • Fix need for elevated permissions on SetModTime (Nick Craig-Wood)
37592
37593 v1.49.1 - 2019-08-28
37594 • Bug Fixes
37595
37596 • config: Fix generated passwords being stored as empty password
37597 (Nick Craig-Wood)
37598
37599 • rcd: Added missing parameter for web-gui info logs. (Chaitanya)
37600
37601 • Googlephotos
37602
37603 • Fix crash on error response (Nick Craig-Wood)
37604
37605 • Onedrive
37606
37607 • Fix crash on error response (Nick Craig-Wood)
37608
37609 v1.49.0 - 2019-08-26
37610 • New backends
37611
37612 • 1fichier (https://rclone.org/fichier/) (Laura Hausmann)
37613
37614 • Google Photos (https://rclone.org/googlephotos/) (Nick Craig-Wood)
37615
37616 • Putio (https://rclone.org/putio/) (Cenk Alti)
37617
37618 • premiumize.me (https://rclone.org/premiumizeme/) (Nick Craig-Wood)
37619
37620 • New Features
37621
37622 • Experimental web GUI (https://rclone.org/gui/) (Chaitanya Bankan‐
37623 hal)
37624
37625 • Implement --compare-dest & --copy-dest (yparitcher)
37626
37627 • Implement --suffix without --backup-dir for backup to current dir
37628 (yparitcher)
37629
37630 • config reconnect to re-login (re-run the oauth login) for the back‐
37631 end. (Nick Craig-Wood)
37632
37633 • config userinfo to discover which user you are logged in as. (Nick
37634 Craig-Wood)
37635
37636 • config disconnect to disconnect you (log out) from the backend.
37637 (Nick Craig-Wood)
37638
37639 • Add --use-json-log for JSON logging (justinalin)
37640
37641 • Add context propagation to rclone (Aleksandar Jankovic)
37642
37643 • Reworking internal statistics interfaces so they work with rc jobs
37644 (Aleksandar Jankovic)
37645
37646 • Add Higher units for ETA (AbelThar)
37647
37648 • Update rclone logos to new design (Andreas Chlupka)
37649
37650 • hash: Add CRC-32 support (Cenk Alti)
37651
37652 • help showbackend: Fixed advanced option category when there are no
37653 standard options (buengese)
37654
37655 • ncdu: Display/Copy to Clipboard Current Path (Gary Kim)
37656
37657 • operations:
37658
37659 • Run hashing operations in parallel (Nick Craig-Wood)
37660
37661 • Don't calculate checksums when using --ignore-checksum (Nick
37662 Craig-Wood)
37663
37664 • Check transfer hashes when using --size-only mode (Nick
37665 Craig-Wood)
37666
37667 • Disable multi thread copy for local to local copies (Nick
37668 Craig-Wood)
37669
37670 • Debug successful hashes as well as failures (Nick Craig-Wood)
37671
37672 • rc
37673
37674 • Add ability to stop async jobs (Aleksandar Jankovic)
37675
37676 • Return current settings if core/bwlimit called without parameters
37677 (Nick Craig-Wood)
37678
37679 • Rclone-WebUI integration with rclone (Chaitanya Bankanhal)
37680
37681 • Added command line parameter to control the cross origin resource
37682 sharing (CORS) in the rcd. (Security Improvement) (Chaitanya
37683 Bankanhal)
37684
37685 • Add anchor tags to the docs so links are consistent (Nick
37686 Craig-Wood)
37687
37688 • Remove _async key from input parameters after parsing so later
37689 operations won't get confused (buengese)
37690
37691 • Add call to clear stats (Aleksandar Jankovic)
37692
37693 • rcd
37694
37695 • Auto-login for web-gui (Chaitanya Bankanhal)
37696
37697 • Implement --baseurl for rcd and web-gui (Chaitanya Bankanhal)
37698
37699 • serve dlna
37700
37701 • Only select interfaces which can multicast for SSDP (Nick
37702 Craig-Wood)
37703
37704 • Add more builtin mime types to cover standard audio/video (Nick
37705 Craig-Wood)
37706
37707 • Fix missing mime types on Android causing missing videos (Nick
37708 Craig-Wood)
37709
37710 • serve ftp
37711
37712 • Refactor to bring into line with other serve commands (Nick
37713 Craig-Wood)
37714
37715 • Implement --auth-proxy (Nick Craig-Wood)
37716
37717 • serve http: Implement --baseurl (Nick Craig-Wood)
37718
37719 • serve restic: Implement --baseurl (Nick Craig-Wood)
37720
37721 • serve sftp
37722
37723 • Implement auth proxy (Nick Craig-Wood)
37724
37725 • Fix detection of whether server is authorized (Nick Craig-Wood)
37726
37727 • serve webdav
37728
37729 • Implement --baseurl (Nick Craig-Wood)
37730
37731 • Support --auth-proxy (Nick Craig-Wood)
37732
37733 • Bug Fixes
37734
37735 • Make "bad record MAC" a retriable error (Nick Craig-Wood)
37736
37737 • copyurl: Fix copying files that return HTTP errors (Nick
37738 Craig-Wood)
37739
37740 • march: Fix checking sub-directories when using --no-traverse
37741 (buengese)
37742
37743 • rc
37744
37745 • Fix unmarshalable http.AuthFn in options and put in test for mar‐
37746 shalability (Nick Craig-Wood)
37747
37748 • Move job expire flags to rc to fix initialization problem (Nick
37749 Craig-Wood)
37750
37751 • Fix --loopback with rc/list and others (Nick Craig-Wood)
37752
37753 • rcat: Fix slowdown on systems with multiple hashes (Nick
37754 Craig-Wood)
37755
37756 • rcd: Fix permissions problems on cache directory with web gui down‐
37757 load (Nick Craig-Wood)
37758
37759 • Mount
37760
37761 • Default --daemon-timout to 15 minutes on macOS and FreeBSD (Nick
37762 Craig-Wood)
37763
37764 • Update docs to show mounting from root OK for bucket based (Nick
37765 Craig-Wood)
37766
37767 • Remove nonseekable flag from write files (Nick Craig-Wood)
37768
37769 • VFS
37770
37771 • Make write without cache more efficient (Nick Craig-Wood)
37772
37773 • Fix --vfs-cache-mode minimal and writes ignoring cached files (Nick
37774 Craig-Wood)
37775
37776 • Local
37777
37778 • Add --local-case-sensitive and --local-case-insensitive (Nick
37779 Craig-Wood)
37780
37781 • Avoid polluting page cache when uploading local files to remote
37782 backends (Michał Matczuk)
37783
37784 • Don't calculate any hashes by default (Nick Craig-Wood)
37785
37786 • Fadvise run syscall on a dedicated go routine (Michał Matczuk)
37787
37788 • Azure Blob
37789
37790 • Azure Storage Emulator support (Sandeep)
37791
37792 • Updated config help details to remove connection string references
37793 (Sandeep)
37794
37795 • Make all operations work from the root (Nick Craig-Wood)
37796
37797 • B2
37798
37799 • Implement link sharing (yparitcher)
37800
37801 • Enable server-side copy to copy between buckets (Nick Craig-Wood)
37802
37803 • Make all operations work from the root (Nick Craig-Wood)
37804
37805 • Drive
37806
37807 • Fix server-side copy of big files (Nick Craig-Wood)
37808
37809 • Update API for teamdrive use (Nick Craig-Wood)
37810
37811 • Add error for purge with --drive-trashed-only (ginvine)
37812
37813 • Fichier
37814
37815 • Make FolderID int and adjust related code (buengese)
37816
37817 • Google Cloud Storage
37818
37819 • Reduce oauth scope requested as suggested by Google (Nick
37820 Craig-Wood)
37821
37822 • Make all operations work from the root (Nick Craig-Wood)
37823
37824 • HTTP
37825
37826 • Add --http-headers flag for setting arbitrary headers (Nick
37827 Craig-Wood)
37828
37829 • Jottacloud
37830
37831 • Use new api for retrieving internal username (buengese)
37832
37833 • Refactor configuration and minor cleanup (buengese)
37834
37835 • Koofr
37836
37837 • Support setting modification times on Koofr backend. (jaKa)
37838
37839 • Opendrive
37840
37841 • Refactor to use existing lib/rest facilities for uploads (Nick
37842 Craig-Wood)
37843
37844 • Qingstor
37845
37846 • Upgrade to v3 SDK and fix listing loop (Nick Craig-Wood)
37847
37848 • Make all operations work from the root (Nick Craig-Wood)
37849
37850 • S3
37851
37852 • Add INTELLIGENT_TIERING storage class (Matti Niemenmaa)
37853
37854 • Make all operations work from the root (Nick Craig-Wood)
37855
37856 • SFTP
37857
37858 • Add missing interface check and fix About (Nick Craig-Wood)
37859
37860 • Completely ignore all modtime checks if SetModTime=false (Jon Faut‐
37861 ley)
37862
37863 • Support md5/sha1 with rsync.net (Nick Craig-Wood)
37864
37865 • Save the md5/sha1 command in use to the config file for efficiency
37866 (Nick Craig-Wood)
37867
37868 • Opt-in support for diffie-hellman-group-exchange-sha256
37869 diffie-hellman-group-exchange-sha1 (Yi FU)
37870
37871 • Swift
37872
37873 • Use FixRangeOption to fix 0 length files via the VFS (Nick
37874 Craig-Wood)
37875
37876 • Fix upload when using no_chunk to return the correct size (Nick
37877 Craig-Wood)
37878
37879 • Make all operations work from the root (Nick Craig-Wood)
37880
37881 • Fix segments leak during failed large file uploads. (nguyenhuulu‐
37882 an434)
37883
37884 • WebDAV
37885
37886 • Add --webdav-bearer-token-command (Nick Craig-Wood)
37887
37888 • Refresh token when it expires with --webdav-bearer-token-command
37889 (Nick Craig-Wood)
37890
37891 • Add docs for using bearer_token_command with oidc-agent (Paul Mil‐
37892 lar)
37893
37894 v1.48.0 - 2019-06-15
37895 • New commands
37896
37897 • serve sftp: Serve an rclone remote over SFTP (Nick Craig-Wood)
37898
37899 • New Features
37900
37901 • Multi threaded downloads to local storage (Nick Craig-Wood)
37902
37903 • controlled with --multi-thread-cutoff and --multi-thread-streams
37904
37905 • Use rclone.conf from rclone executable directory to enable portable
37906 use (albertony)
37907
37908 • Allow sync of a file and a directory with the same name (forgems)
37909
37910 • this is common on bucket based remotes, e.g. s3, gcs
37911
37912 • Add --ignore-case-sync for forced case insensitivity (garry415)
37913
37914 • Implement --stats-one-line-date and --stats-one-line-date-format
37915 (Peter Berbec)
37916
37917 • Log an ERROR for all commands which exit with non-zero status (Nick
37918 Craig-Wood)
37919
37920 • Use go-homedir to read the home directory more reliably (Nick
37921 Craig-Wood)
37922
37923 • Enable creating encrypted config through external script invocation
37924 (Wojciech Smigielski)
37925
37926 • build: Drop support for go1.8 (Nick Craig-Wood)
37927
37928 • config: Make config create/update encrypt passwords where necessary
37929 (Nick Craig-Wood)
37930
37931 • copyurl: Honor --no-check-certificate (Stefan Breunig)
37932
37933 • install: Linux skip man pages if no mandb (didil)
37934
37935 • lsf: Support showing the Tier of the object (Nick Craig-Wood)
37936
37937 • lsjson
37938
37939 • Added EncryptedPath to output (calisro)
37940
37941 • Support showing the Tier of the object (Nick Craig-Wood)
37942
37943 • Add IsBucket field for bucket based remote listing of the root
37944 (Nick Craig-Wood)
37945
37946 • rc
37947
37948 • Add --loopback flag to run commands directly without a server
37949 (Nick Craig-Wood)
37950
37951 • Add operations/fsinfo: Return information about the remote (Nick
37952 Craig-Wood)
37953
37954 • Skip auth for OPTIONS request (Nick Craig-Wood)
37955
37956 • cmd/providers: Add DefaultStr, ValueStr and Type fields (Nick
37957 Craig-Wood)
37958
37959 • jobs: Make job expiry timeouts configurable (Aleksandar Jankovic)
37960
37961 • serve dlna reworked and improved (Dan Walters)
37962
37963 • serve ftp: add --ftp-public-ip flag to specify public IP (calistri)
37964
37965 • serve restic: Add support for --private-repos in serve restic (Flo‐
37966 rian Apolloner)
37967
37968 • serve webdav: Combine serve webdav and serve http (Gary Kim)
37969
37970 • size: Ignore negative sizes when calculating total (Garry McNulty)
37971
37972 • Bug Fixes
37973
37974 • Make move and copy individual files obey --backup-dir (Nick
37975 Craig-Wood)
37976
37977 • If --ignore-checksum is in effect, don't calculate checksum (Nick
37978 Craig-Wood)
37979
37980 • moveto: Fix case-insensitive same remote move (Gary Kim)
37981
37982 • rc: Fix serving bucket based objects with --rc-serve (Nick
37983 Craig-Wood)
37984
37985 • serve webdav: Fix serveDir not being updated with changes from web‐
37986 dav (Gary Kim)
37987
37988 • Mount
37989
37990 • Fix poll interval documentation (Animosity022)
37991
37992 • VFS
37993
37994 • Make WriteAt for non cached files work with non-sequential writes
37995 (Nick Craig-Wood)
37996
37997 • Local
37998
37999 • Only calculate the required hashes for big speedup (Nick
38000 Craig-Wood)
38001
38002 • Log errors when listing instead of returning an error (Nick
38003 Craig-Wood)
38004
38005 • Fix preallocate warning on Linux with ZFS (Nick Craig-Wood)
38006
38007 • Crypt
38008
38009 • Make rclone dedupe work through crypt (Nick Craig-Wood)
38010
38011 • Fix wrapping of ChangeNotify to decrypt directories properly (Nick
38012 Craig-Wood)
38013
38014 • Support PublicLink (rclone link) of underlying backend (Nick
38015 Craig-Wood)
38016
38017 • Implement Optional methods SetTier, GetTier (Nick Craig-Wood)
38018
38019 • B2
38020
38021 • Implement server-side copy (Nick Craig-Wood)
38022
38023 • Implement SetModTime (Nick Craig-Wood)
38024
38025 • Drive
38026
38027 • Fix move and copy from TeamDrive to GDrive (Fionera)
38028
38029 • Add notes that cleanup works in the background on drive (Nick
38030 Craig-Wood)
38031
38032 • Add --drive-server-side-across-configs to default back to old serv‐
38033 er-side copy semantics by default (Nick Craig-Wood)
38034
38035 • Add --drive-size-as-quota to show storage quota usage for file size
38036 (Garry McNulty)
38037
38038 • FTP
38039
38040 • Add FTP List timeout (Jeff Quinn)
38041
38042 • Add FTP over TLS support (Gary Kim)
38043
38044 • Add --ftp-no-check-certificate option for FTPS (Gary Kim)
38045
38046 • Google Cloud Storage
38047
38048 • Fix upload errors when uploading pre 1970 files (Nick Craig-Wood)
38049
38050 • Jottacloud
38051
38052 • Add support for selecting device and mountpoint. (buengese)
38053
38054 • Mega
38055
38056 • Add cleanup support (Gary Kim)
38057
38058 • Onedrive
38059
38060 • More accurately check if root is found (Cnly)
38061
38062 • S3
38063
38064 • Support S3 Accelerated endpoints with --s3-use-accelerate-endpoint
38065 (Nick Craig-Wood)
38066
38067 • Add config info for Wasabi's EU Central endpoint (Robert Marko)
38068
38069 • Make SetModTime work for GLACIER while syncing (Philip Harvey)
38070
38071 • SFTP
38072
38073 • Add About support (Gary Kim)
38074
38075 • Fix about parsing of df results so it can cope with -ve results
38076 (Nick Craig-Wood)
38077
38078 • Send custom client version and debug server version (Nick
38079 Craig-Wood)
38080
38081 • WebDAV
38082
38083 • Retry on 423 Locked errors (Nick Craig-Wood)
38084
38085 v1.47.0 - 2019-04-13
38086 • New backends
38087
38088 • Backend for Koofr cloud storage service. (jaKa)
38089
38090 • New Features
38091
38092 • Resume downloads if the reader fails in copy (Nick Craig-Wood)
38093
38094 • this means rclone will restart transfers if the source has an er‐
38095 ror
38096
38097 • this is most useful for downloads or cloud to cloud copies
38098
38099 • Use --fast-list for listing operations where it won't use more mem‐
38100 ory (Nick Craig-Wood)
38101
38102 • this should speed up the following operations on remotes which
38103 support ListR
38104
38105 • dedupe, serve restic lsf, ls, lsl, lsjson, lsd, md5sum, sha1sum,
38106 hashsum, size, delete, cat, settier
38107
38108 • use --disable ListR to get old behaviour if required
38109
38110 • Make --files-from traverse the destination unless --no-traverse is
38111 set (Nick Craig-Wood)
38112
38113 • this fixes --files-from with Google drive and excessive API use
38114 in general.
38115
38116 • Make server-side copy account bytes and obey --max-transfer (Nick
38117 Craig-Wood)
38118
38119 • Add --create-empty-src-dirs flag and default to not creating empty
38120 dirs (ishuah)
38121
38122 • Add client side TLS/SSL flags --ca-cert/--client-cert/--client-key
38123 (Nick Craig-Wood)
38124
38125 • Implement --suffix-keep-extension for use with --suffix (Nick
38126 Craig-Wood)
38127
38128 • build:
38129
38130 • Switch to semver compliant version tags to be go modules compli‐
38131 ant (Nick Craig-Wood)
38132
38133 • Update to use go1.12.x for the build (Nick Craig-Wood)
38134
38135 • serve dlna: Add connection manager service description to improve
38136 compatibility (Dan Walters)
38137
38138 • lsf: Add 'e' format to show encrypted names and 'o' for original
38139 IDs (Nick Craig-Wood)
38140
38141 • lsjson: Added --files-only and --dirs-only flags (calistri)
38142
38143 • rc: Implement operations/publiclink the equivalent of rclone link
38144 (Nick Craig-Wood)
38145
38146 • Bug Fixes
38147
38148 • accounting: Fix total ETA when --stats-unit bits is in effect (Nick
38149 Craig-Wood)
38150
38151 • Bash TAB completion
38152
38153 • Use private custom func to fix clash between rclone and kubectl
38154 (Nick Craig-Wood)
38155
38156 • Fix for remotes with underscores in their names (Six)
38157
38158 • Fix completion of remotes (Florian Gamböck)
38159
38160 • Fix autocompletion of remote paths with spaces (Danil Semelenov)
38161
38162 • serve dlna: Fix root XML service descriptor (Dan Walters)
38163
38164 • ncdu: Fix display corruption with Chinese characters (Nick
38165 Craig-Wood)
38166
38167 • Add SIGTERM to signals which run the exit handlers on unix (Nick
38168 Craig-Wood)
38169
38170 • rc: Reload filter when the options are set via the rc (Nick
38171 Craig-Wood)
38172
38173 • VFS / Mount
38174
38175 • Fix FreeBSD: Ignore Truncate if called with no readers and already
38176 the correct size (Nick Craig-Wood)
38177
38178 • Read directory and check for a file before mkdir (Nick Craig-Wood)
38179
38180 • Shorten the locking window for vfs/refresh (Nick Craig-Wood)
38181
38182 • Azure Blob
38183
38184 • Enable MD5 checksums when uploading files bigger than the "Cutoff"
38185 (Dr.Rx)
38186
38187 • Fix SAS URL support (Nick Craig-Wood)
38188
38189 • B2
38190
38191 • Allow manual configuration of backblaze downloadUrl (Vince)
38192
38193 • Ignore already_hidden error on remove (Nick Craig-Wood)
38194
38195 • Ignore malformed src_last_modified_millis (Nick Craig-Wood)
38196
38197 • Drive
38198
38199 • Add --skip-checksum-gphotos to ignore incorrect checksums on Google
38200 Photos (Nick Craig-Wood)
38201
38202 • Allow server-side move/copy between different remotes. (Fionera)
38203
38204 • Add docs on team drives and --fast-list eventual consistency (Nes‐
38205 tar47)
38206
38207 • Fix imports of text files (Nick Craig-Wood)
38208
38209 • Fix range requests on 0 length files (Nick Craig-Wood)
38210
38211 • Fix creation of duplicates with server-side copy (Nick Craig-Wood)
38212
38213 • Dropbox
38214
38215 • Retry blank errors to fix long listings (Nick Craig-Wood)
38216
38217 • FTP
38218
38219 • Add --ftp-concurrency to limit maximum number of connections (Nick
38220 Craig-Wood)
38221
38222 • Google Cloud Storage
38223
38224 • Fall back to default application credentials (marcintustin)
38225
38226 • Allow bucket policy only buckets (Nick Craig-Wood)
38227
38228 • HTTP
38229
38230 • Add --http-no-slash for websites with directories with no slashes
38231 (Nick Craig-Wood)
38232
38233 • Remove duplicates from listings (Nick Craig-Wood)
38234
38235 • Fix socket leak on 404 errors (Nick Craig-Wood)
38236
38237 • Jottacloud
38238
38239 • Fix token refresh (Sebastian Bünger)
38240
38241 • Add device registration (Oliver Heyme)
38242
38243 • Onedrive
38244
38245 • Implement graceful cancel of multipart uploads if rclone is inter‐
38246 rupted (Cnly)
38247
38248 • Always add trailing colon to path when addressing items, (Cnly)
38249
38250 • Return errors instead of panic for invalid uploads (Fabian Möller)
38251
38252 • S3
38253
38254 • Add support for "Glacier Deep Archive" storage class (Manu)
38255
38256 • Update Dreamhost endpoint (Nick Craig-Wood)
38257
38258 • Note incompatibility with CEPH Jewel (Nick Craig-Wood)
38259
38260 • SFTP
38261
38262 • Allow custom ssh client config (Alexandru Bumbacea)
38263
38264 • Swift
38265
38266 • Obey Retry-After to enable OVH restore from cold storage (Nick
38267 Craig-Wood)
38268
38269 • Work around token expiry on CEPH (Nick Craig-Wood)
38270
38271 • WebDAV
38272
38273 • Allow IsCollection property to be integer or boolean (Nick
38274 Craig-Wood)
38275
38276 • Fix race when creating directories (Nick Craig-Wood)
38277
38278 • Fix About/df when reading the available/total returns 0 (Nick
38279 Craig-Wood)
38280
38281 v1.46 - 2019-02-09
38282 • New backends
38283
38284 • Support Alibaba Cloud (Aliyun) OSS via the s3 backend (Nick
38285 Craig-Wood)
38286
38287 • New commands
38288
38289 • serve dlna: serves a remove via DLNA for the local network (ni‐
38290 colov)
38291
38292 • New Features
38293
38294 • copy, move: Restore deprecated --no-traverse flag (Nick Craig-Wood)
38295
38296 • This is useful for when transferring a small number of files into
38297 a large destination
38298
38299 • genautocomplete: Add remote path completion for bash completion
38300 (Christopher Peterson & Danil Semelenov)
38301
38302 • Buffer memory handling reworked to return memory to the OS better
38303 (Nick Craig-Wood)
38304
38305 • Buffer recycling library to replace sync.Pool
38306
38307 • Optionally use memory mapped memory for better memory shrinking
38308
38309 • Enable with --use-mmap if having memory problems - not default
38310 yet
38311
38312 • Parallelise reading of files specified by --files-from (Nick
38313 Craig-Wood)
38314
38315 • check: Add stats showing total files matched. (Dario Guzik)
38316
38317 • Allow rename/delete open files under Windows (Nick Craig-Wood)
38318
38319 • lsjson: Use exactly the correct number of decimal places in the
38320 seconds (Nick Craig-Wood)
38321
38322 • Add cookie support with cmdline switch --use-cookies for all HTTP
38323 based remotes (qip)
38324
38325 • Warn if --checksum is set but there are no hashes available (Nick
38326 Craig-Wood)
38327
38328 • Rework rate limiting (pacer) to be more accurate and allow bursting
38329 (Nick Craig-Wood)
38330
38331 • Improve error reporting for too many/few arguments in commands
38332 (Nick Craig-Wood)
38333
38334 • listremotes: Remove -l short flag as it conflicts with the new
38335 global flag (weetmuts)
38336
38337 • Make http serving with auth generate INFO messages on auth fail
38338 (Nick Craig-Wood)
38339
38340 • Bug Fixes
38341
38342 • Fix layout of stats (Nick Craig-Wood)
38343
38344 • Fix --progress crash under Windows Jenkins (Nick Craig-Wood)
38345
38346 • Fix transfer of google/onedrive docs by calling Rcat in Copy when
38347 size is -1 (Cnly)
38348
38349 • copyurl: Fix checking of --dry-run (Denis Skovpen)
38350
38351 • Mount
38352
38353 • Check that mountpoint and local directory to mount don't overlap
38354 (Nick Craig-Wood)
38355
38356 • Fix mount size under 32 bit Windows (Nick Craig-Wood)
38357
38358 • VFS
38359
38360 • Implement renaming of directories for backends without DirMove
38361 (Nick Craig-Wood)
38362
38363 • now all backends except b2 support renaming directories
38364
38365 • Implement --vfs-cache-max-size to limit the total size of the cache
38366 (Nick Craig-Wood)
38367
38368 • Add --dir-perms and --file-perms flags to set default permissions
38369 (Nick Craig-Wood)
38370
38371 • Fix deadlock on concurrent operations on a directory (Nick
38372 Craig-Wood)
38373
38374 • Fix deadlock between RWFileHandle.close and File.Remove (Nick
38375 Craig-Wood)
38376
38377 • Fix renaming/deleting open files with cache mode "writes" under
38378 Windows (Nick Craig-Wood)
38379
38380 • Fix panic on rename with --dry-run set (Nick Craig-Wood)
38381
38382 • Fix vfs/refresh with recurse=true needing the --fast-list flag
38383
38384 • Local
38385
38386 • Add support for -l/--links (symbolic link translation) (yair@uni‐
38387 corn)
38388
38389 • this works by showing links as link.rclonelink - see local back‐
38390 end docs for more info
38391
38392 • this errors if used with -L/--copy-links
38393
38394 • Fix renaming/deleting open files on Windows (Nick Craig-Wood)
38395
38396 • Crypt
38397
38398 • Check for maximum length before decrypting filename to fix panic
38399 (Garry McNulty)
38400
38401 • Azure Blob
38402
38403 • Allow building azureblob backend on *BSD (themylogin)
38404
38405 • Use the rclone HTTP client to support --dump headers, --tpslimit,
38406 etc. (Nick Craig-Wood)
38407
38408 • Use the s3 pacer for 0 delay in non error conditions (Nick
38409 Craig-Wood)
38410
38411 • Ignore directory markers (Nick Craig-Wood)
38412
38413 • Stop Mkdir attempting to create existing containers (Nick
38414 Craig-Wood)
38415
38416 • B2
38417
38418 • cleanup: will remove unfinished large files >24hrs old (Garry Mc‐
38419 Nulty)
38420
38421 • For a bucket limited application key check the bucket name (Nick
38422 Craig-Wood)
38423
38424 • before this, rclone would use the authorised bucket regardless of
38425 what you put on the command line
38426
38427 • Added --b2-disable-checksum flag (Wojciech Smigielski)
38428
38429 • this enables large files to be uploaded without a SHA-1 hash for
38430 speed reasons
38431
38432 • Drive
38433
38434 • Set default pacer to 100ms for 10 tps (Nick Craig-Wood)
38435
38436 • This fits the Google defaults much better and reduces the 403 er‐
38437 rors massively
38438
38439 • Add --drive-pacer-min-sleep and --drive-pacer-burst to control
38440 the pacer
38441
38442 • Improve ChangeNotify support for items with multiple parents (Fabi‐
38443 an Möller)
38444
38445 • Fix ListR for items with multiple parents - this fixes oddities
38446 with vfs/refresh (Fabian Möller)
38447
38448 • Fix using --drive-impersonate and appfolders (Nick Craig-Wood)
38449
38450 • Fix google docs in rclone mount for some (not all) applications
38451 (Nick Craig-Wood)
38452
38453 • Dropbox
38454
38455 • Retry-After support for Dropbox backend (Mathieu Carbou)
38456
38457 • FTP
38458
38459 • Wait for 60 seconds for a connection to Close then declare it dead
38460 (Nick Craig-Wood)
38461
38462 • helps with indefinite hangs on some FTP servers
38463
38464 • Google Cloud Storage
38465
38466 • Update google cloud storage endpoints (weetmuts)
38467
38468 • HTTP
38469
38470 • Add an example with username and password which is supported but
38471 wasn't documented (Nick Craig-Wood)
38472
38473 • Fix backend with --files-from and non-existent files (Nick
38474 Craig-Wood)
38475
38476 • Hubic
38477
38478 • Make error message more informative if authentication fails (Nick
38479 Craig-Wood)
38480
38481 • Jottacloud
38482
38483 • Resume and deduplication support (Oliver Heyme)
38484
38485 • Use token auth for all API requests Don't store password anymore
38486 (Sebastian Bünger)
38487
38488 • Add support for 2-factor authentication (Sebastian Bünger)
38489
38490 • Mega
38491
38492 • Implement v2 account login which fixes logins for newer Mega ac‐
38493 counts (Nick Craig-Wood)
38494
38495 • Return error if an unknown length file is attempted to be uploaded
38496 (Nick Craig-Wood)
38497
38498 • Add new error codes for better error reporting (Nick Craig-Wood)
38499
38500 • Onedrive
38501
38502 • Fix broken support for "shared with me" folders (Alex Chen)
38503
38504 • Fix root ID not normalised (Cnly)
38505
38506 • Return err instead of panic on unknown-sized uploads (Cnly)
38507
38508 • Qingstor
38509
38510 • Fix go routine leak on multipart upload errors (Nick Craig-Wood)
38511
38512 • Add upload chunk size/concurrency/cutoff control (Nick Craig-Wood)
38513
38514 • Default --qingstor-upload-concurrency to 1 to work around bug (Nick
38515 Craig-Wood)
38516
38517 • S3
38518
38519 • Implement --s3-upload-cutoff for single part uploads below this
38520 (Nick Craig-Wood)
38521
38522 • Change --s3-upload-concurrency default to 4 to increase performance
38523 (Nick Craig-Wood)
38524
38525 • Add --s3-bucket-acl to control bucket ACL (Nick Craig-Wood)
38526
38527 • Auto detect region for buckets on operation failure (Nick
38528 Craig-Wood)
38529
38530 • Add GLACIER storage class (William Cocker)
38531
38532 • Add Scaleway to s3 documentation (Rémy Léone)
38533
38534 • Add AWS endpoint eu-north-1 (weetmuts)
38535
38536 • SFTP
38537
38538 • Add support for PEM encrypted private keys (Fabian Möller)
38539
38540 • Add option to force the usage of an ssh-agent (Fabian Möller)
38541
38542 • Perform environment variable expansion on key-file (Fabian Möller)
38543
38544 • Fix rmdir on Windows based servers (e.g. CrushFTP) (Nick
38545 Craig-Wood)
38546
38547 • Fix rmdir deleting directory contents on some SFTP servers (Nick
38548 Craig-Wood)
38549
38550 • Fix error on dangling symlinks (Nick Craig-Wood)
38551
38552 • Swift
38553
38554 • Add --swift-no-chunk to disable segmented uploads in rcat/mount
38555 (Nick Craig-Wood)
38556
38557 • Introduce application credential auth support (kayrus)
38558
38559 • Fix memory usage by slimming Object (Nick Craig-Wood)
38560
38561 • Fix extra requests on upload (Nick Craig-Wood)
38562
38563 • Fix reauth on big files (Nick Craig-Wood)
38564
38565 • Union
38566
38567 • Fix poll-interval not working (Nick Craig-Wood)
38568
38569 • WebDAV
38570
38571 • Support About which means rclone mount will show the correct disk
38572 size (Nick Craig-Wood)
38573
38574 • Support MD5 and SHA1 hashes with Owncloud and Nextcloud (Nick
38575 Craig-Wood)
38576
38577 • Fail soft on time parsing errors (Nick Craig-Wood)
38578
38579 • Fix infinite loop on failed directory creation (Nick Craig-Wood)
38580
38581 • Fix identification of directories for Bitrix Site Manager (Nick
38582 Craig-Wood)
38583
38584 • Fix upload of 0 length files on some servers (Nick Craig-Wood)
38585
38586 • Fix if MKCOL fails with 423 Locked assume the directory exists
38587 (Nick Craig-Wood)
38588
38589 v1.45 - 2018-11-24
38590 • New backends
38591
38592 • The Yandex backend was re-written - see below for details (Sebas‐
38593 tian Bünger)
38594
38595 • New commands
38596
38597 • rcd: New command just to serve the remote control API (Nick
38598 Craig-Wood)
38599
38600 • New Features
38601
38602 • The remote control API (rc) was greatly expanded to allow full con‐
38603 trol over rclone (Nick Craig-Wood)
38604
38605 • sensitive operations require authorization or the --rc-no-auth
38606 flag
38607
38608 • config/* operations to configure rclone
38609
38610 • options/* for reading/setting command line flags
38611
38612 • operations/* for all low level operations, e.g. copy file, list
38613 directory
38614
38615 • sync/* for sync, copy and move
38616
38617 • --rc-files flag to serve files on the rc http server
38618
38619 • this is for building web native GUIs for rclone
38620
38621 • Optionally serving objects on the rc http server
38622
38623 • Ensure rclone fails to start up if the --rc port is in use al‐
38624 ready
38625
38626 • See the rc docs (https://rclone.org/rc/) for more info
38627
38628 • sync/copy/move
38629
38630 • Make --files-from only read the objects specified and don't scan
38631 directories (Nick Craig-Wood)
38632
38633 • This is a huge speed improvement for destinations with lots of
38634 files
38635
38636 • filter: Add --ignore-case flag (Nick Craig-Wood)
38637
38638 • ncdu: Add remove function ('d' key) (Henning Surmeier)
38639
38640 • rc command
38641
38642 • Add --json flag for structured JSON input (Nick Craig-Wood)
38643
38644 • Add --user and --pass flags and interpret --rc-user, --rc-pass,
38645 --rc-addr (Nick Craig-Wood)
38646
38647 • build
38648
38649 • Require go1.8 or later for compilation (Nick Craig-Wood)
38650
38651 • Enable softfloat on MIPS arch (Scott Edlund)
38652
38653 • Integration test framework revamped with a better report and bet‐
38654 ter retries (Nick Craig-Wood)
38655
38656 • Bug Fixes
38657
38658 • cmd: Make --progress update the stats correctly at the end (Nick
38659 Craig-Wood)
38660
38661 • config: Create config directory on save if it is missing (Nick
38662 Craig-Wood)
38663
38664 • dedupe: Check for existing filename before renaming a dupe file
38665 (ssaqua)
38666
38667 • move: Don't create directories with --dry-run (Nick Craig-Wood)
38668
38669 • operations: Fix Purge and Rmdirs when dir is not the root (Nick
38670 Craig-Wood)
38671
38672 • serve http/webdav/restic: Ensure rclone exits if the port is in use
38673 (Nick Craig-Wood)
38674
38675 • Mount
38676
38677 • Make --volname work for Windows and macOS (Nick Craig-Wood)
38678
38679 • Azure Blob
38680
38681 • Avoid context deadline exceeded error by setting a large TryTimeout
38682 value (brused27)
38683
38684 • Fix erroneous Rmdir error "directory not empty" (Nick Craig-Wood)
38685
38686 • Wait for up to 60s to create a just deleted container (Nick
38687 Craig-Wood)
38688
38689 • Dropbox
38690
38691 • Add dropbox impersonate support (Jake Coggiano)
38692
38693 • Jottacloud
38694
38695 • Fix bug in --fast-list handing of empty folders (albertony)
38696
38697 • Opendrive
38698
38699 • Fix transfer of files with + and & in (Nick Craig-Wood)
38700
38701 • Fix retries of upload chunks (Nick Craig-Wood)
38702
38703 • S3
38704
38705 • Set ACL for server-side copies to that provided by the user (Nick
38706 Craig-Wood)
38707
38708 • Fix role_arn, credential_source, ... (Erik Swanson)
38709
38710 • Add config info for Wasabi's US-West endpoint (Henry Ptasinski)
38711
38712 • SFTP
38713
38714 • Ensure file hash checking is really disabled (Jon Fautley)
38715
38716 • Swift
38717
38718 • Add pacer for retries to make swift more reliable (Nick Craig-Wood)
38719
38720 • WebDAV
38721
38722 • Add Content-Type to PUT requests (Nick Craig-Wood)
38723
38724 • Fix config parsing so --webdav-user and --webdav-pass flags work
38725 (Nick Craig-Wood)
38726
38727 • Add RFC3339 date format (Ralf Hemberger)
38728
38729 • Yandex
38730
38731 • The yandex backend was re-written (Sebastian Bünger)
38732
38733 • This implements low level retries (Sebastian Bünger)
38734
38735 • Copy, Move, DirMove, PublicLink and About optional interfaces
38736 (Sebastian Bünger)
38737
38738 • Improved general error handling (Sebastian Bünger)
38739
38740 • Removed ListR for now due to inconsistent behaviour (Sebastian
38741 Bünger)
38742
38743 v1.44 - 2018-10-15
38744 • New commands
38745
38746 • serve ftp: Add ftp server (Antoine GIRARD)
38747
38748 • settier: perform storage tier changes on supported remotes
38749 (sandeepkru)
38750
38751 • New Features
38752
38753 • Reworked command line help
38754
38755 • Make default help less verbose (Nick Craig-Wood)
38756
38757 • Split flags up into global and backend flags (Nick Craig-Wood)
38758
38759 • Implement specialised help for flags and backends (Nick
38760 Craig-Wood)
38761
38762 • Show URL of backend help page when starting config (Nick
38763 Craig-Wood)
38764
38765 • stats: Long names now split in center (Joanna Marek)
38766
38767 • Add --log-format flag for more control over log output (dcpu)
38768
38769 • rc: Add support for OPTIONS and basic CORS (frenos)
38770
38771 • stats: show FatalErrors and NoRetryErrors in stats (Cédric Connes)
38772
38773 • Bug Fixes
38774
38775 • Fix -P not ending with a new line (Nick Craig-Wood)
38776
38777 • config: don't create default config dir when user supplies --config
38778 (albertony)
38779
38780 • Don't print non-ASCII characters with --progress on windows (Nick
38781 Craig-Wood)
38782
38783 • Correct logs for excluded items (ssaqua)
38784
38785 • Mount
38786
38787 • Remove EXPERIMENTAL tags (Nick Craig-Wood)
38788
38789 • VFS
38790
38791 • Fix race condition detected by serve ftp tests (Nick Craig-Wood)
38792
38793 • Add vfs/poll-interval rc command (Fabian Möller)
38794
38795 • Enable rename for nearly all remotes using server-side Move or Copy
38796 (Nick Craig-Wood)
38797
38798 • Reduce directory cache cleared by poll-interval (Fabian Möller)
38799
38800 • Remove EXPERIMENTAL tags (Nick Craig-Wood)
38801
38802 • Local
38803
38804 • Skip bad symlinks in dir listing with -L enabled (Cédric Connes)
38805
38806 • Preallocate files on Windows to reduce fragmentation (Nick
38807 Craig-Wood)
38808
38809 • Preallocate files on linux with fallocate(2) (Nick Craig-Wood)
38810
38811 • Cache
38812
38813 • Add cache/fetch rc function (Fabian Möller)
38814
38815 • Fix worker scale down (Fabian Möller)
38816
38817 • Improve performance by not sending info requests for cached chunks
38818 (dcpu)
38819
38820 • Fix error return value of cache/fetch rc method (Fabian Möller)
38821
38822 • Documentation fix for cache-chunk-total-size (Anagh Kumar Baranwal)
38823
38824 • Preserve leading / in wrapped remote path (Fabian Möller)
38825
38826 • Add plex_insecure option to skip certificate validation (Fabian
38827 Möller)
38828
38829 • Remove entries that no longer exist in the source (dcpu)
38830
38831 • Crypt
38832
38833 • Preserve leading / in wrapped remote path (Fabian Möller)
38834
38835 • Alias
38836
38837 • Fix handling of Windows network paths (Nick Craig-Wood)
38838
38839 • Azure Blob
38840
38841 • Add --azureblob-list-chunk parameter (Santiago Rodríguez)
38842
38843 • Implemented settier command support on azureblob remote. (sandeep‐
38844 kru)
38845
38846 • Work around SDK bug which causes errors for chunk-sized files (Nick
38847 Craig-Wood)
38848
38849 • Box
38850
38851 • Implement link sharing. (Sebastian Bünger)
38852
38853 • Drive
38854
38855 • Add --drive-import-formats - google docs can now be imported (Fabi‐
38856 an Möller)
38857
38858 • Rewrite mime type and extension handling (Fabian Möller)
38859
38860 • Add document links (Fabian Möller)
38861
38862 • Add support for multipart document extensions (Fabian Möller)
38863
38864 • Add support for apps-script to json export (Fabian Möller)
38865
38866 • Fix escaped chars in documents during list (Fabian Möller)
38867
38868 • Add --drive-v2-download-min-size a workaround for slow downloads
38869 (Fabian Möller)
38870
38871 • Improve directory notifications in ChangeNotify (Fabian Möller)
38872
38873 • When listing team drives in config, continue on failure (Nick
38874 Craig-Wood)
38875
38876 • FTP
38877
38878 • Add a small pause after failed upload before deleting file (Nick
38879 Craig-Wood)
38880
38881 • Google Cloud Storage
38882
38883 • Fix service_account_file being ignored (Fabian Möller)
38884
38885 • Jottacloud
38886
38887 • Minor improvement in quota info (omit if unlimited) (albertony)
38888
38889 • Add --fast-list support (albertony)
38890
38891 • Add permanent delete support: --jottacloud-hard-delete (albertony)
38892
38893 • Add link sharing support (albertony)
38894
38895 • Fix handling of reserved characters. (Sebastian Bünger)
38896
38897 • Fix socket leak on Object.Remove (Nick Craig-Wood)
38898
38899 • Onedrive
38900
38901 • Rework to support Microsoft Graph (Cnly)
38902
38903 • NB this will require re-authenticating the remote
38904
38905 • Removed upload cutoff and always do session uploads (Oliver Heyme)
38906
38907 • Use single-part upload for empty files (Cnly)
38908
38909 • Fix new fields not saved when editing old config (Alex Chen)
38910
38911 • Fix sometimes special chars in filenames not replaced (Alex Chen)
38912
38913 • Ignore OneNote files by default (Alex Chen)
38914
38915 • Add link sharing support (jackyzy823)
38916
38917 • S3
38918
38919 • Use custom pacer, to retry operations when reasonable (Craig
38920 Miskell)
38921
38922 • Use configured server-side-encryption and storage class options
38923 when calling CopyObject() (Paul Kohout)
38924
38925 • Make --s3-v2-auth flag (Nick Craig-Wood)
38926
38927 • Fix v2 auth on files with spaces (Nick Craig-Wood)
38928
38929 • Union
38930
38931 • Implement union backend which reads from multiple backends (Felix
38932 Brucker)
38933
38934 • Implement optional interfaces (Move, DirMove, Copy, etc.) (Nick
38935 Craig-Wood)
38936
38937 • Fix ChangeNotify to support multiple remotes (Fabian Möller)
38938
38939 • Fix --backup-dir on union backend (Nick Craig-Wood)
38940
38941 • WebDAV
38942
38943 • Add another time format (Nick Craig-Wood)
38944
38945 • Add a small pause after failed upload before deleting file (Nick
38946 Craig-Wood)
38947
38948 • Add workaround for missing mtime (buergi)
38949
38950 • Sharepoint: Renew cookies after 12hrs (Henning Surmeier)
38951
38952 • Yandex
38953
38954 • Remove redundant nil checks (teresy)
38955
38956 v1.43.1 - 2018-09-07
38957 Point release to fix hubic and azureblob backends.
38958
38959 • Bug Fixes
38960
38961 • ncdu: Return error instead of log.Fatal in Show (Fabian Möller)
38962
38963 • cmd: Fix crash with --progress and --stats 0 (Nick Craig-Wood)
38964
38965 • docs: Tidy website display (Anagh Kumar Baranwal)
38966
38967 • Azure Blob:
38968
38969 • Fix multi-part uploads. (sandeepkru)
38970
38971 • Hubic
38972
38973 • Fix uploads (Nick Craig-Wood)
38974
38975 • Retry auth fetching if it fails to make hubic more reliable (Nick
38976 Craig-Wood)
38977
38978 v1.43 - 2018-09-01
38979 • New backends
38980
38981 • Jottacloud (Sebastian Bünger)
38982
38983 • New commands
38984
38985 • copyurl: copies a URL to a remote (Denis)
38986
38987 • New Features
38988
38989 • Reworked config for backends (Nick Craig-Wood)
38990
38991 • All backend config can now be supplied by command line, env var
38992 or config file
38993
38994 • Advanced section in the config wizard for the optional items
38995
38996 • A large step towards rclone backends being usable in other go
38997 software
38998
38999 • Allow on the fly remotes with :backend: syntax
39000
39001 • Stats revamp
39002
39003 • Add --progress/-P flag to show interactive progress (Nick
39004 Craig-Wood)
39005
39006 • Show the total progress of the sync in the stats (Nick
39007 Craig-Wood)
39008
39009 • Add --stats-one-line flag for single line stats (Nick Craig-Wood)
39010
39011 • Added weekday schedule into --bwlimit (Mateusz)
39012
39013 • lsjson: Add option to show the original object IDs (Fabian Möller)
39014
39015 • serve webdav: Make Content-Type without reading the file and add
39016 --etag-hash (Nick Craig-Wood)
39017
39018 • build
39019
39020 • Build macOS with native compiler (Nick Craig-Wood)
39021
39022 • Update to use go1.11 for the build (Nick Craig-Wood)
39023
39024 • rc
39025
39026 • Added core/stats to return the stats (reddi1)
39027
39028 • version --check: Prints the current release and beta versions (Nick
39029 Craig-Wood)
39030
39031 • Bug Fixes
39032
39033 • accounting
39034
39035 • Fix time to completion estimates (Nick Craig-Wood)
39036
39037 • Fix moving average speed for file stats (Nick Craig-Wood)
39038
39039 • config: Fix error reading password from piped input (Nick
39040 Craig-Wood)
39041
39042 • move: Fix --delete-empty-src-dirs flag to delete all empty dirs on
39043 move (ishuah)
39044
39045 • Mount
39046
39047 • Implement --daemon-timeout flag for OSXFUSE (Nick Craig-Wood)
39048
39049 • Fix mount --daemon not working with encrypted config (Alex Chen)
39050
39051 • Clip the number of blocks to 2^32-1 on macOS - fixes borg backup
39052 (Nick Craig-Wood)
39053
39054 • VFS
39055
39056 • Enable vfs-read-chunk-size by default (Fabian Möller)
39057
39058 • Add the vfs/refresh rc command (Fabian Möller)
39059
39060 • Add non recursive mode to vfs/refresh rc command (Fabian Möller)
39061
39062 • Try to seek buffer on read only files (Fabian Möller)
39063
39064 • Local
39065
39066 • Fix crash when deprecated --local-no-unicode-normalization is sup‐
39067 plied (Nick Craig-Wood)
39068
39069 • Fix mkdir error when trying to copy files to the root of a drive on
39070 windows (Nick Craig-Wood)
39071
39072 • Cache
39073
39074 • Fix nil pointer deref when using lsjson on cached directory (Nick
39075 Craig-Wood)
39076
39077 • Fix nil pointer deref for occasional crash on playback (Nick
39078 Craig-Wood)
39079
39080 • Crypt
39081
39082 • Fix accounting when checking hashes on upload (Nick Craig-Wood)
39083
39084 • Amazon Cloud Drive
39085
39086 • Make very clear in the docs that rclone has no ACD keys (Nick
39087 Craig-Wood)
39088
39089 • Azure Blob
39090
39091 • Add connection string and SAS URL auth (Nick Craig-Wood)
39092
39093 • List the container to see if it exists (Nick Craig-Wood)
39094
39095 • Port new Azure Blob Storage SDK (sandeepkru)
39096
39097 • Added blob tier, tier between Hot, Cool and Archive. (sandeepkru)
39098
39099 • Remove leading / from paths (Nick Craig-Wood)
39100
39101 • B2
39102
39103 • Support Application Keys (Nick Craig-Wood)
39104
39105 • Remove leading / from paths (Nick Craig-Wood)
39106
39107 • Box
39108
39109 • Fix upload of > 2GB files on 32 bit platforms (Nick Craig-Wood)
39110
39111 • Make --box-commit-retries flag defaulting to 100 to fix large up‐
39112 loads (Nick Craig-Wood)
39113
39114 • Drive
39115
39116 • Add --drive-keep-revision-forever flag (lewapm)
39117
39118 • Handle gdocs when filtering file names in list (Fabian Möller)
39119
39120 • Support using --fast-list for large speedups (Fabian Möller)
39121
39122 • FTP
39123
39124 • Fix Put mkParentDir failed: 521 for BunnyCDN (Nick Craig-Wood)
39125
39126 • Google Cloud Storage
39127
39128 • Fix index out of range error with --fast-list (Nick Craig-Wood)
39129
39130 • Jottacloud
39131
39132 • Fix MD5 error check (Oliver Heyme)
39133
39134 • Handle empty time values (Martin Polden)
39135
39136 • Calculate missing MD5s (Oliver Heyme)
39137
39138 • Docs, fixes and tests for MD5 calculation (Nick Craig-Wood)
39139
39140 • Add optional MimeTyper interface. (Sebastian Bünger)
39141
39142 • Implement optional About interface (for df support). (Sebastian
39143 Bünger)
39144
39145 • Mega
39146
39147 • Wait for events instead of arbitrary sleeping (Nick Craig-Wood)
39148
39149 • Add --mega-hard-delete flag (Nick Craig-Wood)
39150
39151 • Fix failed logins with upper case chars in email (Nick Craig-Wood)
39152
39153 • Onedrive
39154
39155 • Shared folder support (Yoni Jah)
39156
39157 • Implement DirMove (Cnly)
39158
39159 • Fix rmdir sometimes deleting directories with contents (Nick
39160 Craig-Wood)
39161
39162 • Pcloud
39163
39164 • Delete half uploaded files on upload error (Nick Craig-Wood)
39165
39166 • Qingstor
39167
39168 • Remove leading / from paths (Nick Craig-Wood)
39169
39170 • S3
39171
39172 • Fix index out of range error with --fast-list (Nick Craig-Wood)
39173
39174 • Add --s3-force-path-style (Nick Craig-Wood)
39175
39176 • Add support for KMS Key ID (bsteiss)
39177
39178 • Remove leading / from paths (Nick Craig-Wood)
39179
39180 • Swift
39181
39182 • Add storage_policy (Ruben Vandamme)
39183
39184 • Make it so just storage_url or auth_token can be overridden (Nick
39185 Craig-Wood)
39186
39187 • Fix server-side copy bug for unusual file names (Nick Craig-Wood)
39188
39189 • Remove leading / from paths (Nick Craig-Wood)
39190
39191 • WebDAV
39192
39193 • Ensure we call MKCOL with a URL with a trailing / for QNAP interop
39194 (Nick Craig-Wood)
39195
39196 • If root ends with / then don't check if it is a file (Nick
39197 Craig-Wood)
39198
39199 • Don't accept redirects when reading metadata (Nick Craig-Wood)
39200
39201 • Add bearer token (Macaroon) support for dCache (Nick Craig-Wood)
39202
39203 • Document dCache and Macaroons (Onno Zweers)
39204
39205 • Sharepoint recursion with different depth (Henning)
39206
39207 • Attempt to remove failed uploads (Nick Craig-Wood)
39208
39209 • Yandex
39210
39211 • Fix listing/deleting files in the root (Nick Craig-Wood)
39212
39213 v1.42 - 2018-06-16
39214 • New backends
39215
39216 • OpenDrive (Oliver Heyme, Jakub Karlicek, ncw)
39217
39218 • New commands
39219
39220 • deletefile command (Filip Bartodziej)
39221
39222 • New Features
39223
39224 • copy, move: Copy single files directly, don't use --files-from
39225 work-around
39226
39227 • this makes them much more efficient
39228
39229 • Implement --max-transfer flag to quit transferring at a limit
39230
39231 • make exit code 8 for --max-transfer exceeded
39232
39233 • copy: copy empty source directories to destination (Ishuah Kariuki)
39234
39235 • check: Add --one-way flag (Kasper Byrdal Nielsen)
39236
39237 • Add siginfo handler for macOS for ctrl-T stats (kubatasiemski)
39238
39239 • rc
39240
39241 • add core/gc to run a garbage collection on demand
39242
39243 • enable go profiling by default on the --rc port
39244
39245 • return error from remote on failure
39246
39247 • lsf
39248
39249 • Add --absolute flag to add a leading / onto path names
39250
39251 • Add --csv flag for compliant CSV output
39252
39253 • Add 'm' format specifier to show the MimeType
39254
39255 • Implement 'i' format for showing object ID
39256
39257 • lsjson
39258
39259 • Add MimeType to the output
39260
39261 • Add ID field to output to show Object ID
39262
39263 • Add --retries-sleep flag (Benjamin Joseph Dag)
39264
39265 • Oauth tidy up web page and error handling (Henning Surmeier)
39266
39267 • Bug Fixes
39268
39269 • Password prompt output with --log-file fixed for unix (Filip Bar‐
39270 todziej)
39271
39272 • Calculate ModifyWindow each time on the fly to fix various problems
39273 (Stefan Breunig)
39274
39275 • Mount
39276
39277 • Only print "File.rename error" if there actually is an error (Ste‐
39278 fan Breunig)
39279
39280 • Delay rename if file has open writers instead of failing outright
39281 (Stefan Breunig)
39282
39283 • Ensure atexit gets run on interrupt
39284
39285 • macOS enhancements
39286
39287 • Make --noappledouble --noapplexattr
39288
39289 • Add --volname flag and remove special chars from it
39290
39291 • Make Get/List/Set/Remove xattr return ENOSYS for efficiency
39292
39293 • Make --daemon work for macOS without CGO
39294
39295 • VFS
39296
39297 • Add --vfs-read-chunk-size and --vfs-read-chunk-size-limit (Fabian
39298 Möller)
39299
39300 • Fix ChangeNotify for new or changed folders (Fabian Möller)
39301
39302 • Local
39303
39304 • Fix symlink/junction point directory handling under Windows
39305
39306 • NB you will need to add -L to your command line to copy files
39307 with reparse points
39308
39309 • Cache
39310
39311 • Add non cached dirs on notifications (Remus Bunduc)
39312
39313 • Allow root to be expired from rc (Remus Bunduc)
39314
39315 • Clean remaining empty folders from temp upload path (Remus Bunduc)
39316
39317 • Cache lists using batch writes (Remus Bunduc)
39318
39319 • Use secure websockets for HTTPS Plex addresses (John Clayton)
39320
39321 • Reconnect plex websocket on failures (Remus Bunduc)
39322
39323 • Fix panic when running without plex configs (Remus Bunduc)
39324
39325 • Fix root folder caching (Remus Bunduc)
39326
39327 • Crypt
39328
39329 • Check the crypted hash of files when uploading for extra data secu‐
39330 rity
39331
39332 • Dropbox
39333
39334 • Make Dropbox for business folders accessible using an initial / in
39335 the path
39336
39337 • Google Cloud Storage
39338
39339 • Low level retry all operations if necessary
39340
39341 • Google Drive
39342
39343 • Add --drive-acknowledge-abuse to download flagged files
39344
39345 • Add --drive-alternate-export to fix large doc export
39346
39347 • Don't attempt to choose Team Drives when using rclone config create
39348
39349 • Fix change list polling with team drives
39350
39351 • Fix ChangeNotify for folders (Fabian Möller)
39352
39353 • Fix about (and df on a mount) for team drives
39354
39355 • Onedrive
39356
39357 • Errorhandler for onedrive for business requests (Henning Surmeier)
39358
39359 • S3
39360
39361 • Adjust upload concurrency with --s3-upload-concurrency (themylogin)
39362
39363 • Fix --s3-chunk-size which was always using the minimum
39364
39365 • SFTP
39366
39367 • Add --ssh-path-override flag (Piotr Oleszczyk)
39368
39369 • Fix slow downloads for long latency connections
39370
39371 • Webdav
39372
39373 • Add workarounds for biz.mail.ru
39374
39375 • Ignore Reason-Phrase in status line to fix 4shared (Rodrigo)
39376
39377 • Better error message generation
39378
39379 v1.41 - 2018-04-28
39380 • New backends
39381
39382 • Mega support added
39383
39384 • Webdav now supports SharePoint cookie authentication (hensur)
39385
39386 • New commands
39387
39388 • link: create public link to files and folders (Stefan Breunig)
39389
39390 • about: gets quota info from a remote (a-roussos, ncw)
39391
39392 • hashsum: a generic tool for any hash to produce md5sum like output
39393
39394 • New Features
39395
39396 • lsd: Add -R flag and fix and update docs for all ls commands
39397
39398 • ncdu: added a "refresh" key - CTRL-L (Keith Goldfarb)
39399
39400 • serve restic: Add append-only mode (Steve Kriss)
39401
39402 • serve restic: Disallow overwriting files in append-only mode (Alex‐
39403 ander Neumann)
39404
39405 • serve restic: Print actual listener address (Matt Holt)
39406
39407 • size: Add --json flag (Matthew Holt)
39408
39409 • sync: implement --ignore-errors (Mateusz Pabian)
39410
39411 • dedupe: Add dedupe largest functionality (Richard Yang)
39412
39413 • fs: Extend SizeSuffix to include TB and PB for rclone about
39414
39415 • fs: add --dump goroutines and --dump openfiles for debugging
39416
39417 • rc: implement core/memstats to print internal memory usage info
39418
39419 • rc: new call rc/pid (Michael P. Dubner)
39420
39421 • Compile
39422
39423 • Drop support for go1.6
39424
39425 • Release
39426
39427 • Fix make tarball (Chih-Hsuan Yen)
39428
39429 • Bug Fixes
39430
39431 • filter: fix --min-age and --max-age together check
39432
39433 • fs: limit MaxIdleConns and MaxIdleConnsPerHost in transport
39434
39435 • lsd,lsf: make sure all times we output are in local time
39436
39437 • rc: fix setting bwlimit to unlimited
39438
39439 • rc: take note of the --rc-addr flag too as per the docs
39440
39441 • Mount
39442
39443 • Use About to return the correct disk total/used/free (e.g. in df)
39444
39445 • Set --attr-timeout default to 1s - fixes:
39446
39447 • rclone using too much memory
39448
39449 • rclone not serving files to samba
39450
39451 • excessive time listing directories
39452
39453 • Fix df -i (upstream fix)
39454
39455 • VFS
39456
39457 • Filter files . and .. from directory listing
39458
39459 • Only make the VFS cache if --vfs-cache-mode > Off
39460
39461 • Local
39462
39463 • Add --local-no-check-updated to disable updated file checks
39464
39465 • Retry remove on Windows sharing violation error
39466
39467 • Cache
39468
39469 • Flush the memory cache after close
39470
39471 • Purge file data on notification
39472
39473 • Always forget parent dir for notifications
39474
39475 • Integrate with Plex websocket
39476
39477 • Add rc cache/stats (seuffert)
39478
39479 • Add info log on notification
39480
39481 • Box
39482
39483 • Fix failure reading large directories - parse file/directory size
39484 as float
39485
39486 • Dropbox
39487
39488 • Fix crypt+obfuscate on dropbox
39489
39490 • Fix repeatedly uploading the same files
39491
39492 • FTP
39493
39494 • Work around strange response from box FTP server
39495
39496 • More workarounds for FTP servers to fix mkParentDir error
39497
39498 • Fix no error on listing non-existent directory
39499
39500 • Google Cloud Storage
39501
39502 • Add service_account_credentials (Matt Holt)
39503
39504 • Detect bucket presence by listing it - minimises permissions needed
39505
39506 • Ignore zero length directory markers
39507
39508 • Google Drive
39509
39510 • Add service_account_credentials (Matt Holt)
39511
39512 • Fix directory move leaving a hardlinked directory behind
39513
39514 • Return proper google errors when Opening files
39515
39516 • When initialized with a filepath, optional features used incorrect
39517 root path (Stefan Breunig)
39518
39519 • HTTP
39520
39521 • Fix sync for servers which don't return Content-Length in HEAD
39522
39523 • Onedrive
39524
39525 • Add QuickXorHash support for OneDrive for business
39526
39527 • Fix socket leak in multipart session upload
39528
39529 • S3
39530
39531 • Look in S3 named profile files for credentials
39532
39533 • Add --s3-disable-checksum to disable checksum uploading (Chris Re‐
39534 dekop)
39535
39536 • Hierarchical configuration support (Giri Badanahatti)
39537
39538 • Add in config for all the supported S3 providers
39539
39540 • Add One Zone Infrequent Access storage class (Craig Rachel)
39541
39542 • Add --use-server-modtime support (Peter Baumgartner)
39543
39544 • Add --s3-chunk-size option to control multipart uploads
39545
39546 • Ignore zero length directory markers
39547
39548 • SFTP
39549
39550 • Update docs to match code, fix typos and clarify disable_hashcheck
39551 prompt (Michael G. Noll)
39552
39553 • Update docs with Synology quirks
39554
39555 • Fail soft with a debug on hash failure
39556
39557 • Swift
39558
39559 • Add --use-server-modtime support (Peter Baumgartner)
39560
39561 • Webdav
39562
39563 • Support SharePoint cookie authentication (hensur)
39564
39565 • Strip leading and trailing / off root
39566
39567 v1.40 - 2018-03-19
39568 • New backends
39569
39570 • Alias backend to create aliases for existing remote names (Fabian
39571 Möller)
39572
39573 • New commands
39574
39575 • lsf: list for parsing purposes (Jakub Tasiemski)
39576
39577 • by default this is a simple non recursive list of files and di‐
39578 rectories
39579
39580 • it can be configured to add more info in an easy to parse way
39581
39582 • serve restic: for serving a remote as a Restic REST endpoint
39583
39584 • This enables restic to use any backends that rclone can access
39585
39586 • Thanks Alexander Neumann for help, patches and review
39587
39588 • rc: enable the remote control of a running rclone
39589
39590 • The running rclone must be started with --rc and related flags.
39591
39592 • Currently there is support for bwlimit, and flushing for mount
39593 and cache.
39594
39595 • New Features
39596
39597 • --max-delete flag to add a delete threshold (Bjørn Erik Pedersen)
39598
39599 • All backends now support RangeOption for ranged Open
39600
39601 • cat: Use RangeOption for limited fetches to make more efficient
39602
39603 • cryptcheck: make reading of nonce more efficient with RangeOption
39604
39605 • serve http/webdav/restic
39606
39607 • support SSL/TLS
39608
39609 • add --user --pass and --htpasswd for authentication
39610
39611 • copy/move: detect file size change during copy/move and abort
39612 transfer (ishuah)
39613
39614 • cryptdecode: added option to return encrypted file names. (ishuah)
39615
39616 • lsjson: add --encrypted to show encrypted name (Jakub Tasiemski)
39617
39618 • Add --stats-file-name-length to specify the printed file name
39619 length for stats (Will Gunn)
39620
39621 • Compile
39622
39623 • Code base was shuffled and factored
39624
39625 • backends moved into a backend directory
39626
39627 • large packages split up
39628
39629 • See the CONTRIBUTING.md doc for info as to what lives where now
39630
39631 • Update to using go1.10 as the default go version
39632
39633 • Implement daily full integration tests (https://pub.rclone.org/in‐
39634 tegration-tests/)
39635
39636 • Release
39637
39638 • Include a source tarball and sign it and the binaries
39639
39640 • Sign the git tags as part of the release process
39641
39642 • Add .deb and .rpm packages as part of the build
39643
39644 • Make a beta release for all branches on the main repo (but not pull
39645 requests)
39646
39647 • Bug Fixes
39648
39649 • config: fixes errors on non existing config by loading config file
39650 only on first access
39651
39652 • config: retry saving the config after failure (Mateusz)
39653
39654 • sync: when using --backup-dir don't delete files if we can't set
39655 their modtime
39656
39657 • this fixes odd behaviour with Dropbox and --backup-dir
39658
39659 • fshttp: fix idle timeouts for HTTP connections
39660
39661 • serve http: fix serving files with : in - fixes
39662
39663 • Fix --exclude-if-present to ignore directories which it doesn't
39664 have permission for (Iakov Davydov)
39665
39666 • Make accounting work properly with crypt and b2
39667
39668 • remove --no-traverse flag because it is obsolete
39669
39670 • Mount
39671
39672 • Add --attr-timeout flag to control attribute caching in kernel
39673
39674 • this now defaults to 0 which is correct but less efficient
39675
39676 • see the mount docs (https://rclone.org/commands/rclone_mount/#at‐
39677 tribute-caching) for more info
39678
39679 • Add --daemon flag to allow mount to run in the background (ishuah)
39680
39681 • Fix: Return ENOSYS rather than EIO on attempted link
39682
39683 • This fixes FileZilla accessing an rclone mount served over sftp.
39684
39685 • Fix setting modtime twice
39686
39687 • Mount tests now run on CI for Linux (mount & cmount)/Mac/Windows
39688
39689 • Many bugs fixed in the VFS layer - see below
39690
39691 • VFS
39692
39693 • Many fixes for --vfs-cache-mode writes and above
39694
39695 • Update cached copy if we know it has changed (fixes stale data)
39696
39697 • Clean path names before using them in the cache
39698
39699 • Disable cache cleaner if --vfs-cache-poll-interval=0
39700
39701 • Fill and clean the cache immediately on startup
39702
39703 • Fix Windows opening every file when it stats the file
39704
39705 • Fix applying modtime for an open Write Handle
39706
39707 • Fix creation of files when truncating
39708
39709 • Write 0 bytes when flushing unwritten handles to avoid race condi‐
39710 tions in FUSE
39711
39712 • Downgrade "poll-interval is not supported" message to Info
39713
39714 • Make OpenFile and friends return EINVAL if O_RDONLY and O_TRUNC
39715
39716 • Local
39717
39718 • Downgrade "invalid cross-device link: trying copy" to debug
39719
39720 • Make DirMove return fs.ErrorCantDirMove to allow fallback to Copy
39721 for cross device
39722
39723 • Fix race conditions updating the hashes
39724
39725 • Cache
39726
39727 • Add support for polling - cache will update when remote changes on
39728 supported backends
39729
39730 • Reduce log level for Plex api
39731
39732 • Fix dir cache issue
39733
39734 • Implement --cache-db-wait-time flag
39735
39736 • Improve efficiency with RangeOption and RangeSeek
39737
39738 • Fix dirmove with temp fs enabled
39739
39740 • Notify vfs when using temp fs
39741
39742 • Offline uploading
39743
39744 • Remote control support for path flushing
39745
39746 • Amazon cloud drive
39747
39748 • Rclone no longer has any working keys - disable integration tests
39749
39750 • Implement DirChangeNotify to notify cache/vfs/mount of changes
39751
39752 • Azureblob
39753
39754 • Don't check for bucket/container presence if listing was OK
39755
39756 • this makes rclone do one less request per invocation
39757
39758 • Improve accounting for chunked uploads
39759
39760 • Backblaze B2
39761
39762 • Don't check for bucket/container presence if listing was OK
39763
39764 • this makes rclone do one less request per invocation
39765
39766 • Box
39767
39768 • Improve accounting for chunked uploads
39769
39770 • Dropbox
39771
39772 • Fix custom oauth client parameters
39773
39774 • Google Cloud Storage
39775
39776 • Don't check for bucket/container presence if listing was OK
39777
39778 • this makes rclone do one less request per invocation
39779
39780 • Google Drive
39781
39782 • Migrate to api v3 (Fabian Möller)
39783
39784 • Add scope configuration and root folder selection
39785
39786 • Add --drive-impersonate for service accounts
39787
39788 • thanks to everyone who tested, explored and contributed docs
39789
39790 • Add --drive-use-created-date to use created date as modified date
39791 (nbuchanan)
39792
39793 • Request the export formats only when required
39794
39795 • This makes rclone quicker when there are no google docs
39796
39797 • Fix finding paths with latin1 chars (a workaround for a drive bug)
39798
39799 • Fix copying of a single Google doc file
39800
39801 • Fix --drive-auth-owner-only to look in all directories
39802
39803 • HTTP
39804
39805 • Fix handling of directories with & in
39806
39807 • Onedrive
39808
39809 • Removed upload cutoff and always do session uploads
39810
39811 • this stops the creation of multiple versions on business onedrive
39812
39813 • Overwrite object size value with real size when reading file.
39814 (Victor)
39815
39816 • this fixes oddities when onedrive misreports the size of images
39817
39818 • Pcloud
39819
39820 • Remove unused chunked upload flag and code
39821
39822 • Qingstor
39823
39824 • Don't check for bucket/container presence if listing was OK
39825
39826 • this makes rclone do one less request per invocation
39827
39828 • S3
39829
39830 • Support hashes for multipart files (Chris Redekop)
39831
39832 • Initial support for IBM COS (S3) (Giri Badanahatti)
39833
39834 • Update docs to discourage use of v2 auth with CEPH and others
39835
39836 • Don't check for bucket/container presence if listing was OK
39837
39838 • this makes rclone do one less request per invocation
39839
39840 • Fix server-side copy and set modtime on files with + in
39841
39842 • SFTP
39843
39844 • Add option to disable remote hash check command execution (Jon
39845 Fautley)
39846
39847 • Add --sftp-ask-password flag to prompt for password when needed
39848 (Leo R. Lundgren)
39849
39850 • Add set_modtime configuration option
39851
39852 • Fix following of symlinks
39853
39854 • Fix reading config file outside of Fs setup
39855
39856 • Fix reading $USER in username fallback not $HOME
39857
39858 • Fix running under crontab - Use correct OS way of reading username
39859
39860 • Swift
39861
39862 • Fix refresh of authentication token
39863
39864 • in v1.39 a bug was introduced which ignored new tokens - this
39865 fixes it
39866
39867 • Fix extra HEAD transaction when uploading a new file
39868
39869 • Don't check for bucket/container presence if listing was OK
39870
39871 • this makes rclone do one less request per invocation
39872
39873 • Webdav
39874
39875 • Add new time formats to support mydrive.ch and others
39876
39877 v1.39 - 2017-12-23
39878 • New backends
39879
39880 • WebDAV
39881
39882 • tested with nextcloud, owncloud, put.io and others!
39883
39884 • Pcloud
39885
39886 • cache - wraps a cache around other backends (Remus Bunduc)
39887
39888 • useful in combination with mount
39889
39890 • NB this feature is in beta so use with care
39891
39892 • New commands
39893
39894 • serve command with subcommands:
39895
39896 • serve webdav: this implements a webdav server for any rclone re‐
39897 mote.
39898
39899 • serve http: command to serve a remote over HTTP
39900
39901 • config: add sub commands for full config file management
39902
39903 • create/delete/dump/edit/file/password/providers/show/update
39904
39905 • touch: to create or update the timestamp of a file (Jakub Tasiems‐
39906 ki)
39907
39908 • New Features
39909
39910 • curl install for rclone (Filip Bartodziej)
39911
39912 • --stats now shows percentage, size, rate and ETA in condensed form
39913 (Ishuah Kariuki)
39914
39915 • --exclude-if-present to exclude a directory if a file is present
39916 (Iakov Davydov)
39917
39918 • rmdirs: add --leave-root flag (lewapm)
39919
39920 • move: add --delete-empty-src-dirs flag to remove dirs after move
39921 (Ishuah Kariuki)
39922
39923 • Add --dump flag, introduce --dump requests, responses and remove
39924 --dump-auth, --dump-filters
39925
39926 • Obscure X-Auth-Token: from headers when dumping too
39927
39928 • Document and implement exit codes for different failure modes
39929 (Ishuah Kariuki)
39930
39931 • Compile
39932
39933 • Bug Fixes
39934
39935 • Retry lots more different types of errors to make multipart trans‐
39936 fers more reliable
39937
39938 • Save the config before asking for a token, fixes disappearing oauth
39939 config
39940
39941 • Warn the user if --include and --exclude are used together (Ernest
39942 Borowski)
39943
39944 • Fix duplicate files (e.g. on Google drive) causing spurious copies
39945
39946 • Allow trailing and leading whitespace for passwords (Jason Rose)
39947
39948 • ncdu: fix crashes on empty directories
39949
39950 • rcat: fix goroutine leak
39951
39952 • moveto/copyto: Fix to allow copying to the same name
39953
39954 • Mount
39955
39956 • --vfs-cache mode to make writes into mounts more reliable.
39957
39958 • this requires caching files on the disk (see --cache-dir)
39959
39960 • As this is a new feature, use with care
39961
39962 • Use sdnotify to signal systemd the mount is ready (Fabian Möller)
39963
39964 • Check if directory is not empty before mounting (Ernest Borowski)
39965
39966 • Local
39967
39968 • Add error message for cross file system moves
39969
39970 • Fix equality check for times
39971
39972 • Dropbox
39973
39974 • Rework multipart upload
39975
39976 • buffer the chunks when uploading large files so they can be re‐
39977 tried
39978
39979 • change default chunk size to 48MB now we are buffering them in
39980 memory
39981
39982 • retry every error after the first chunk is done successfully
39983
39984 • Fix error when renaming directories
39985
39986 • Swift
39987
39988 • Fix crash on bad authentication
39989
39990 • Google Drive
39991
39992 • Add service account support (Tim Cooijmans)
39993
39994 • S3
39995
39996 • Make it work properly with Digital Ocean Spaces (Andrew
39997 Starr-Bochicchio)
39998
39999 • Fix crash if a bad listing is received
40000
40001 • Add support for ECS task IAM roles (David Minor)
40002
40003 • Backblaze B2
40004
40005 • Fix multipart upload retries
40006
40007 • Fix --hard-delete to make it work 100% of the time
40008
40009 • Swift
40010
40011 • Allow authentication with storage URL and auth key (Giovanni Pizzi)
40012
40013 • Add new fields for swift configuration to support IBM Bluemix Swift
40014 (Pierre Carlson)
40015
40016 • Add OS_TENANT_ID and OS_USER_ID to config
40017
40018 • Allow configs with user id instead of user name
40019
40020 • Check if swift segments container exists before creating (John
40021 Leach)
40022
40023 • Fix memory leak in swift transfers (upstream fix)
40024
40025 • SFTP
40026
40027 • Add option to enable the use of aes128-cbc cipher (Jon Fautley)
40028
40029 • Amazon cloud drive
40030
40031 • Fix download of large files failing with "Only one auth mechanism
40032 allowed"
40033
40034 • crypt
40035
40036 • Option to encrypt directory names or leave them intact
40037
40038 • Implement DirChangeNotify (Fabian Möller)
40039
40040 • onedrive
40041
40042 • Add option to choose resourceURL during setup of OneDrive Business
40043 account if more than one is available for user
40044
40045 v1.38 - 2017-09-30
40046 • New backends
40047
40048 • Azure Blob Storage (thanks Andrei Dragomir)
40049
40050 • Box
40051
40052 • Onedrive for Business (thanks Oliver Heyme)
40053
40054 • QingStor from QingCloud (thanks wuyu)
40055
40056 • New commands
40057
40058 • rcat - read from standard input and stream upload
40059
40060 • tree - shows a nicely formatted recursive listing
40061
40062 • cryptdecode - decode crypted file names (thanks ishuah)
40063
40064 • config show - print the config file
40065
40066 • config file - print the config file location
40067
40068 • New Features
40069
40070 • Empty directories are deleted on sync
40071
40072 • dedupe - implement merging of duplicate directories
40073
40074 • check and cryptcheck made more consistent and use less memory
40075
40076 • cleanup for remaining remotes (thanks ishuah)
40077
40078 • --immutable for ensuring that files don't change (thanks Jacob Mc‐
40079 Namee)
40080
40081 • --user-agent option (thanks Alex McGrath Kraak)
40082
40083 • --disable flag to disable optional features
40084
40085 • --bind flag for choosing the local addr on outgoing connections
40086
40087 • Support for zsh auto-completion (thanks bpicode)
40088
40089 • Stop normalizing file names but do a normalized compare in sync
40090
40091 • Compile
40092
40093 • Update to using go1.9 as the default go version
40094
40095 • Remove snapd build due to maintenance problems
40096
40097 • Bug Fixes
40098
40099 • Improve retriable error detection which makes multipart uploads
40100 better
40101
40102 • Make check obey --ignore-size
40103
40104 • Fix bwlimit toggle in conjunction with schedules (thanks cbruegg)
40105
40106 • config ensures newly written config is on the same mount
40107
40108 • Local
40109
40110 • Revert to copy when moving file across file system boundaries
40111
40112 • --skip-links to suppress symlink warnings (thanks Zhiming Wang)
40113
40114 • Mount
40115
40116 • Re-use rcat internals to support uploads from all remotes
40117
40118 • Dropbox
40119
40120 • Fix "entry doesn't belong in directory" error
40121
40122 • Stop using deprecated API methods
40123
40124 • Swift
40125
40126 • Fix server-side copy to empty container with --fast-list
40127
40128 • Google Drive
40129
40130 • Change the default for --drive-use-trash to true
40131
40132 • S3
40133
40134 • Set session token when using STS (thanks Girish Ramakrishnan)
40135
40136 • Glacier docs and error messages (thanks Jan Varho)
40137
40138 • Read 1000 (not 1024) items in dir listings to fix Wasabi
40139
40140 • Backblaze B2
40141
40142 • Fix SHA1 mismatch when downloading files with no SHA1
40143
40144 • Calculate missing hashes on the fly instead of spooling
40145
40146 • --b2-hard-delete to permanently delete (not hide) files (thanks
40147 John Papandriopoulos)
40148
40149 • Hubic
40150
40151 • Fix creating containers - no longer have to use the default con‐
40152 tainer
40153
40154 • Swift
40155
40156 • Optionally configure from a standard set of OpenStack environment
40157 vars
40158
40159 • Add endpoint_type config
40160
40161 • Google Cloud Storage
40162
40163 • Fix bucket creation to work with limited permission users
40164
40165 • SFTP
40166
40167 • Implement connection pooling for multiple ssh connections
40168
40169 • Limit new connections per second
40170
40171 • Add support for MD5 and SHA1 hashes where available (thanks Chris‐
40172 tian Brüggemann)
40173
40174 • HTTP
40175
40176 • Fix URL encoding issues
40177
40178 • Fix directories with : in
40179
40180 • Fix panic with URL encoded content
40181
40182 v1.37 - 2017-07-22
40183 • New backends
40184
40185 • FTP - thanks to Antonio Messina
40186
40187 • HTTP - thanks to Vasiliy Tolstov
40188
40189 • New commands
40190
40191 • rclone ncdu - for exploring a remote with a text based user inter‐
40192 face.
40193
40194 • rclone lsjson - for listing with a machine readable output
40195
40196 • rclone dbhashsum - to show Dropbox style hashes of files (local or
40197 Dropbox)
40198
40199 • New Features
40200
40201 • Implement --fast-list flag
40202
40203 • This allows remotes to list recursively if they can
40204
40205 • This uses less transactions (important if you pay for them)
40206
40207 • This may or may not be quicker
40208
40209 • This will use more memory as it has to hold the listing in memory
40210
40211 • --old-sync-method deprecated - the remaining uses are covered by
40212 --fast-list
40213
40214 • This involved a major re-write of all the listing code
40215
40216 • Add --tpslimit and --tpslimit-burst to limit transactions per sec‐
40217 ond
40218
40219 • this is useful in conjunction with rclone mount to limit external
40220 apps
40221
40222 • Add --stats-log-level so can see --stats without -v
40223
40224 • Print password prompts to stderr - Hraban Luyat
40225
40226 • Warn about duplicate files when syncing
40227
40228 • Oauth improvements
40229
40230 • allow auth_url and token_url to be set in the config file
40231
40232 • Print redirection URI if using own credentials.
40233
40234 • Don't Mkdir at the start of sync to save transactions
40235
40236 • Compile
40237
40238 • Update build to go1.8.3
40239
40240 • Require go1.6 for building rclone
40241
40242 • Compile 386 builds with "GO386=387" for maximum compatibility
40243
40244 • Bug Fixes
40245
40246 • Fix menu selection when no remotes
40247
40248 • Config saving reworked to not kill the file if disk gets full
40249
40250 • Don't delete remote if name does not change while renaming
40251
40252 • moveto, copyto: report transfers and checks as per move and copy
40253
40254 • Local
40255
40256 • Add --local-no-unicode-normalization flag - Bob Potter
40257
40258 • Mount
40259
40260 • Now supported on Windows using cgofuse and WinFsp - thanks to Bill
40261 Zissimopoulos for much help
40262
40263 • Compare checksums on upload/download via FUSE
40264
40265 • Unmount when program ends with SIGINT (Ctrl+C) or SIGTERM - Jérôme
40266 Vizcaino
40267
40268 • On read only open of file, make open pending until first read
40269
40270 • Make --read-only reject modify operations
40271
40272 • Implement ModTime via FUSE for remotes that support it
40273
40274 • Allow modTime to be changed even before all writers are closed
40275
40276 • Fix panic on renames
40277
40278 • Fix hang on errored upload
40279
40280 • Crypt
40281
40282 • Report the name:root as specified by the user
40283
40284 • Add an "obfuscate" option for filename encryption - Stephen Harris
40285
40286 • Amazon Drive
40287
40288 • Fix initialization order for token renewer
40289
40290 • Remove revoked credentials, allow oauth proxy config and update
40291 docs
40292
40293 • B2
40294
40295 • Reduce minimum chunk size to 5MB
40296
40297 • Drive
40298
40299 • Add team drive support
40300
40301 • Reduce bandwidth by adding fields for partial responses - Martin
40302 Kristensen
40303
40304 • Implement --drive-shared-with-me flag to view shared with me files
40305 - Danny Tsai
40306
40307 • Add --drive-trashed-only to read only the files in the trash
40308
40309 • Remove obsolete --drive-full-list
40310
40311 • Add missing seek to start on retries of chunked uploads
40312
40313 • Fix stats accounting for upload
40314
40315 • Convert / in names to a unicode equivalent (/)
40316
40317 • Poll for Google Drive changes when mounted
40318
40319 • OneDrive
40320
40321 • Fix the uploading of files with spaces
40322
40323 • Fix initialization order for token renewer
40324
40325 • Display speeds accurately when uploading - Yoni Jah
40326
40327 • Swap to using http://localhost:53682/ as redirect URL - Michael
40328 Ledin
40329
40330 • Retry on token expired error, reset upload body on retry - Yoni Jah
40331
40332 • Google Cloud Storage
40333
40334 • Add ability to specify location and storage class via config and
40335 command line - thanks gdm85
40336
40337 • Create container if necessary on server-side copy
40338
40339 • Increase directory listing chunk to 1000 to increase performance
40340
40341 • Obtain a refresh token for GCS - Steven Lu
40342
40343 • Yandex
40344
40345 • Fix the name reported in log messages (was empty)
40346
40347 • Correct error return for listing empty directory
40348
40349 • Dropbox
40350
40351 • Rewritten to use the v2 API
40352
40353 • Now supports ModTime
40354
40355 • Can only set by uploading the file again
40356
40357 • If you uploaded with an old rclone, rclone may upload every‐
40358 thing again
40359
40360 • Use --size-only or --checksum to avoid this
40361
40362 • Now supports the Dropbox content hashing scheme
40363
40364 • Now supports low level retries
40365
40366 • S3
40367
40368 • Work around eventual consistency in bucket creation
40369
40370 • Create container if necessary on server-side copy
40371
40372 • Add us-east-2 (Ohio) and eu-west-2 (London) S3 regions - Zahiar
40373 Ahmed
40374
40375 • Swift, Hubic
40376
40377 • Fix zero length directory markers showing in the subdirectory list‐
40378 ing
40379
40380 • this caused lots of duplicate transfers
40381
40382 • Fix paged directory listings
40383
40384 • this caused duplicate directory errors
40385
40386 • Create container if necessary on server-side copy
40387
40388 • Increase directory listing chunk to 1000 to increase performance
40389
40390 • Make sensible error if the user forgets the container
40391
40392 • SFTP
40393
40394 • Add support for using ssh key files
40395
40396 • Fix under Windows
40397
40398 • Fix ssh agent on Windows
40399
40400 • Adapt to latest version of library - Igor Kharin
40401
40402 v1.36 - 2017-03-18
40403 • New Features
40404
40405 • SFTP remote (Jack Schmidt)
40406
40407 • Re-implement sync routine to work a directory at a time reducing
40408 memory usage
40409
40410 • Logging revamped to be more inline with rsync - now much quieter *
40411 -v only shows transfers * -vv is for full debug * --syslog to log
40412 to syslog on capable platforms
40413
40414 • Implement --backup-dir and --suffix
40415
40416 • Implement --track-renames (initial implementation by Bjørn Erik
40417 Pedersen)
40418
40419 • Add time-based bandwidth limits (Lukas Loesche)
40420
40421 • rclone cryptcheck: checks integrity of crypt remotes
40422
40423 • Allow all config file variables and options to be set from environ‐
40424 ment variables
40425
40426 • Add --buffer-size parameter to control buffer size for copy
40427
40428 • Make --delete-after the default
40429
40430 • Add --ignore-checksum flag (fixed by Hisham Zarka)
40431
40432 • rclone check: Add --download flag to check all the data, not just
40433 hashes
40434
40435 • rclone cat: add --head, --tail, --offset, --count and --discard
40436
40437 • rclone config: when choosing from a list, allow the value to be en‐
40438 tered too
40439
40440 • rclone config: allow rename and copy of remotes
40441
40442 • rclone obscure: for generating encrypted passwords for rclone's
40443 config (T.C. Ferguson)
40444
40445 • Comply with XDG Base Directory specification (Dario Giovannetti)
40446
40447 • this moves the default location of the config file in a backwards
40448 compatible way
40449
40450 • Release changes
40451
40452 • Ubuntu snap support (Dedsec1)
40453
40454 • Compile with go 1.8
40455
40456 • MIPS/Linux big and little endian support
40457
40458 • Bug Fixes
40459
40460 • Fix copyto copying things to the wrong place if the destination dir
40461 didn't exist
40462
40463 • Fix parsing of remotes in moveto and copyto
40464
40465 • Fix --delete-before deleting files on copy
40466
40467 • Fix --files-from with an empty file copying everything
40468
40469 • Fix sync: don't update mod times if --dry-run set
40470
40471 • Fix MimeType propagation
40472
40473 • Fix filters to add ** rules to directory rules
40474
40475 • Local
40476
40477 • Implement -L, --copy-links flag to allow rclone to follow symlinks
40478
40479 • Open files in write only mode so rclone can write to an rclone
40480 mount
40481
40482 • Fix unnormalised unicode causing problems reading directories
40483
40484 • Fix interaction between -x flag and --max-depth
40485
40486 • Mount
40487
40488 • Implement proper directory handling (mkdir, rmdir, renaming)
40489
40490 • Make include and exclude filters apply to mount
40491
40492 • Implement read and write async buffers - control with --buffer-size
40493
40494 • Fix fsync on for directories
40495
40496 • Fix retry on network failure when reading off crypt
40497
40498 • Crypt
40499
40500 • Add --crypt-show-mapping to show encrypted file mapping
40501
40502 • Fix crypt writer getting stuck in a loop
40503
40504 • IMPORTANT this bug had the potential to cause data corruption
40505 when
40506
40507 • reading data from a network based remote and
40508
40509 • writing to a crypt on Google Drive
40510
40511 • Use the cryptcheck command to validate your data if you are con‐
40512 cerned
40513
40514 • If syncing two crypt remotes, sync the unencrypted remote
40515
40516 • Amazon Drive
40517
40518 • Fix panics on Move (rename)
40519
40520 • Fix panic on token expiry
40521
40522 • B2
40523
40524 • Fix inconsistent listings and rclone check
40525
40526 • Fix uploading empty files with go1.8
40527
40528 • Constrain memory usage when doing multipart uploads
40529
40530 • Fix upload url not being refreshed properly
40531
40532 • Drive
40533
40534 • Fix Rmdir on directories with trashed files
40535
40536 • Fix "Ignoring unknown object" when downloading
40537
40538 • Add --drive-list-chunk
40539
40540 • Add --drive-skip-gdocs (Károly Oláh)
40541
40542 • OneDrive
40543
40544 • Implement Move
40545
40546 • Fix Copy
40547
40548 • Fix overwrite detection in Copy
40549
40550 • Fix waitForJob to parse errors correctly
40551
40552 • Use token renewer to stop auth errors on long uploads
40553
40554 • Fix uploading empty files with go1.8
40555
40556 • Google Cloud Storage
40557
40558 • Fix depth 1 directory listings
40559
40560 • Yandex
40561
40562 • Fix single level directory listing
40563
40564 • Dropbox
40565
40566 • Normalise the case for single level directory listings
40567
40568 • Fix depth 1 listing
40569
40570 • S3
40571
40572 • Added ca-central-1 region (Jon Yergatian)
40573
40574 v1.35 - 2017-01-02
40575 • New Features
40576
40577 • moveto and copyto commands for choosing a destination name on
40578 copy/move
40579
40580 • rmdirs command to recursively delete empty directories
40581
40582 • Allow repeated --include/--exclude/--filter options
40583
40584 • Only show transfer stats on commands which transfer stuff
40585
40586 • show stats on any command using the --stats flag
40587
40588 • Allow overlapping directories in move when server-side dir move is
40589 supported
40590
40591 • Add --stats-unit option - thanks Scott McGillivray
40592
40593 • Bug Fixes
40594
40595 • Fix the config file being overwritten when two rclone instances are
40596 running
40597
40598 • Make rclone lsd obey the filters properly
40599
40600 • Fix compilation on mips
40601
40602 • Fix not transferring files that don't differ in size
40603
40604 • Fix panic on nil retry/fatal error
40605
40606 • Mount
40607
40608 • Retry reads on error - should help with reliability a lot
40609
40610 • Report the modification times for directories from the remote
40611
40612 • Add bandwidth accounting and limiting (fixes --bwlimit)
40613
40614 • If --stats provided will show stats and which files are transfer‐
40615 ring
40616
40617 • Support R/W files if truncate is set.
40618
40619 • Implement statfs interface so df works
40620
40621 • Note that write is now supported on Amazon Drive
40622
40623 • Report number of blocks in a file - thanks Stefan Breunig
40624
40625 • Crypt
40626
40627 • Prevent the user pointing crypt at itself
40628
40629 • Fix failed to authenticate decrypted block errors
40630
40631 • these will now return the underlying unexpected EOF instead
40632
40633 • Amazon Drive
40634
40635 • Add support for server-side move and directory move - thanks Stefan
40636 Breunig
40637
40638 • Fix nil pointer deref on size attribute
40639
40640 • B2
40641
40642 • Use new prefix and delimiter parameters in directory listings
40643
40644 • This makes --max-depth 1 dir listings as used in mount much
40645 faster
40646
40647 • Reauth the account while doing uploads too - should help with token
40648 expiry
40649
40650 • Drive
40651
40652 • Make DirMove more efficient and complain about moving the root
40653
40654 • Create destination directory on Move()
40655
40656 v1.34 - 2016-11-06
40657 • New Features
40658
40659 • Stop single file and --files-from operations iterating through the
40660 source bucket.
40661
40662 • Stop removing failed upload to cloud storage remotes
40663
40664 • Make ContentType be preserved for cloud to cloud copies
40665
40666 • Add support to toggle bandwidth limits via SIGUSR2 - thanks Marco
40667 Paganini
40668
40669 • rclone check shows count of hashes that couldn't be checked
40670
40671 • rclone listremotes command
40672
40673 • Support linux/arm64 build - thanks Fredrik Fornwall
40674
40675 • Remove Authorization: lines from --dump-headers output
40676
40677 • Bug Fixes
40678
40679 • Ignore files with control characters in the names
40680
40681 • Fix rclone move command
40682
40683 • Delete src files which already existed in dst
40684
40685 • Fix deletion of src file when dst file older
40686
40687 • Fix rclone check on crypted file systems
40688
40689 • Make failed uploads not count as "Transferred"
40690
40691 • Make sure high level retries show with -q
40692
40693 • Use a vendor directory with godep for repeatable builds
40694
40695 • rclone mount - FUSE
40696
40697 • Implement FUSE mount options
40698
40699 • --no-modtime, --debug-fuse, --read-only, --allow-non-empty, --al‐
40700 low-root, --allow-other
40701
40702 • --default-permissions, --write-back-cache, --max-read-ahead,
40703 --umask, --uid, --gid
40704
40705 • Add --dir-cache-time to control caching of directory entries
40706
40707 • Implement seek for files opened for read (useful for video players)
40708
40709 • with -no-seek flag to disable
40710
40711 • Fix crash on 32 bit ARM (alignment of 64 bit counter)
40712
40713 • ...and many more internal fixes and improvements!
40714
40715 • Crypt
40716
40717 • Don't show encrypted password in configurator to stop confusion
40718
40719 • Amazon Drive
40720
40721 • New wait for upload option --acd-upload-wait-per-gb
40722
40723 • upload timeouts scale by file size and can be disabled
40724
40725 • Add 502 Bad Gateway to list of errors we retry
40726
40727 • Fix overwriting a file with a zero length file
40728
40729 • Fix ACD file size warning limit - thanks Felix Bünemann
40730
40731 • Local
40732
40733 • Unix: implement -x/--one-file-system to stay on a single file sys‐
40734 tem
40735
40736 • thanks Durval Menezes and Luiz Carlos Rumbelsperger Viana
40737
40738 • Windows: ignore the symlink bit on files
40739
40740 • Windows: Ignore directory based junction points
40741
40742 • B2
40743
40744 • Make sure each upload has at least one upload slot - fixes strange
40745 upload stats
40746
40747 • Fix uploads when using crypt
40748
40749 • Fix download of large files (sha1 mismatch)
40750
40751 • Return error when we try to create a bucket which someone else owns
40752
40753 • Update B2 docs with Data usage, and Crypt section - thanks Tomasz
40754 Mazur
40755
40756 • S3
40757
40758 • Command line and config file support for
40759
40760 • Setting/overriding ACL - thanks Radek Senfeld
40761
40762 • Setting storage class - thanks Asko Tamm
40763
40764 • Drive
40765
40766 • Make exponential backoff work exactly as per Google specification
40767
40768 • add .epub, .odp and .tsv as export formats.
40769
40770 • Swift
40771
40772 • Don't read metadata for directory marker objects
40773
40774 v1.33 - 2016-08-24
40775 • New Features
40776
40777 • Implement encryption
40778
40779 • data encrypted in NACL secretbox format
40780
40781 • with optional file name encryption
40782
40783 • New commands
40784
40785 • rclone mount - implements FUSE mounting of remotes (EXPERIMENTAL)
40786
40787 • works on Linux, FreeBSD and OS X (need testers for the last 2!)
40788
40789 • rclone cat - outputs remote file or files to the terminal
40790
40791 • rclone genautocomplete - command to make a bash completion script
40792 for rclone
40793
40794 • Editing a remote using rclone config now goes through the wizard
40795
40796 • Compile with go 1.7 - this fixes rclone on macOS Sierra and on 386
40797 processors
40798
40799 • Use cobra for sub commands and docs generation
40800
40801 • drive
40802
40803 • Document how to make your own client_id
40804
40805 • s3
40806
40807 • User-configurable Amazon S3 ACL (thanks Radek Šenfeld)
40808
40809 • b2
40810
40811 • Fix stats accounting for upload - no more jumping to 100% done
40812
40813 • On cleanup delete hide marker if it is the current file
40814
40815 • New B2 API endpoint (thanks Per Cederberg)
40816
40817 • Set maximum backoff to 5 Minutes
40818
40819 • onedrive
40820
40821 • Fix URL escaping in file names - e.g. uploading files with + in
40822 them.
40823
40824 • amazon cloud drive
40825
40826 • Fix token expiry during large uploads
40827
40828 • Work around 408 REQUEST_TIMEOUT and 504 GATEWAY_TIMEOUT errors
40829
40830 • local
40831
40832 • Fix filenames with invalid UTF-8 not being uploaded
40833
40834 • Fix problem with some UTF-8 characters on OS X
40835
40836 v1.32 - 2016-07-13
40837 • Backblaze B2
40838
40839 • Fix upload of files large files not in root
40840
40841 v1.31 - 2016-07-13
40842 • New Features
40843
40844 • Reduce memory on sync by about 50%
40845
40846 • Implement --no-traverse flag to stop copy traversing the destina‐
40847 tion remote.
40848
40849 • This can be used to reduce memory usage down to the smallest pos‐
40850 sible.
40851
40852 • Useful to copy a small number of files into a large destination
40853 folder.
40854
40855 • Implement cleanup command for emptying trash / removing old ver‐
40856 sions of files
40857
40858 • Currently B2 only
40859
40860 • Single file handling improved
40861
40862 • Now copied with --files-from
40863
40864 • Automatically sets --no-traverse when copying a single file
40865
40866 • Info on using installing with ansible - thanks Stefan Weichinger
40867
40868 • Implement --no-update-modtime flag to stop rclone fixing the remote
40869 modified times.
40870
40871 • Bug Fixes
40872
40873 • Fix move command - stop it running for overlapping Fses - this was
40874 causing data loss.
40875
40876 • Local
40877
40878 • Fix incomplete hashes - this was causing problems for B2.
40879
40880 • Amazon Drive
40881
40882 • Rename Amazon Cloud Drive to Amazon Drive - no changes to config
40883 file needed.
40884
40885 • Swift
40886
40887 • Add support for non-default project domain - thanks Antonio Messi‐
40888 na.
40889
40890 • S3
40891
40892 • Add instructions on how to use rclone with minio.
40893
40894 • Add ap-northeast-2 (Seoul) and ap-south-1 (Mumbai) regions.
40895
40896 • Skip setting the modified time for objects > 5GB as it isn't possi‐
40897 ble.
40898
40899 • Backblaze B2
40900
40901 • Add --b2-versions flag so old versions can be listed and retrieved.
40902
40903 • Treat 403 errors (e.g. cap exceeded) as fatal.
40904
40905 • Implement cleanup command for deleting old file versions.
40906
40907 • Make error handling compliant with B2 integrations notes.
40908
40909 • Fix handling of token expiry.
40910
40911 • Implement --b2-test-mode to set X-Bz-Test-Mode header.
40912
40913 • Set cutoff for chunked upload to 200MB as per B2 guidelines.
40914
40915 • Make upload multi-threaded.
40916
40917 • Dropbox
40918
40919 • Don't retry 461 errors.
40920
40921 v1.30 - 2016-06-18
40922 • New Features
40923
40924 • Directory listing code reworked for more features and better error
40925 reporting (thanks to Klaus Post for help). This enables
40926
40927 • Directory include filtering for efficiency
40928
40929 • --max-depth parameter
40930
40931 • Better error reporting
40932
40933 • More to come
40934
40935 • Retry more errors
40936
40937 • Add --ignore-size flag - for uploading images to onedrive
40938
40939 • Log -v output to stdout by default
40940
40941 • Display the transfer stats in more human readable form
40942
40943 • Make 0 size files specifiable with --max-size 0b
40944
40945 • Add b suffix so we can specify bytes in --bwlimit, --min-size, etc.
40946
40947 • Use "password:" instead of "password>" prompt - thanks Klaus Post
40948 and Leigh Klotz
40949
40950 • Bug Fixes
40951
40952 • Fix retry doing one too many retries
40953
40954 • Local
40955
40956 • Fix problems with OS X and UTF-8 characters
40957
40958 • Amazon Drive
40959
40960 • Check a file exists before uploading to help with 408 Conflict er‐
40961 rors
40962
40963 • Reauth on 401 errors - this has been causing a lot of problems
40964
40965 • Work around spurious 403 errors
40966
40967 • Restart directory listings on error
40968
40969 • Google Drive
40970
40971 • Check a file exists before uploading to help with duplicates
40972
40973 • Fix retry of multipart uploads
40974
40975 • Backblaze B2
40976
40977 • Implement large file uploading
40978
40979 • S3
40980
40981 • Add AES256 server-side encryption for - thanks Justin R. Wilson
40982
40983 • Google Cloud Storage
40984
40985 • Make sure we don't use conflicting content types on upload
40986
40987 • Add service account support - thanks Michal Witkowski
40988
40989 • Swift
40990
40991 • Add auth version parameter
40992
40993 • Add domain option for openstack (v3 auth) - thanks Fabian Ruff
40994
40995 v1.29 - 2016-04-18
40996 • New Features
40997
40998 • Implement -I, --ignore-times for unconditional upload
40999
41000 • Improve dedupecommand
41001
41002 • Now removes identical copies without asking
41003
41004 • Now obeys --dry-run
41005
41006 • Implement --dedupe-mode for non interactive running
41007
41008 • --dedupe-mode interactive - interactive the default.
41009
41010 • --dedupe-mode skip - removes identical files then skips any‐
41011 thing left.
41012
41013 • --dedupe-mode first - removes identical files then keeps the
41014 first one.
41015
41016 • --dedupe-mode newest - removes identical files then keeps the
41017 newest one.
41018
41019 • --dedupe-mode oldest - removes identical files then keeps the
41020 oldest one.
41021
41022 • --dedupe-mode rename - removes identical files then renames the
41023 rest to be different.
41024
41025 • Bug fixes
41026
41027 • Make rclone check obey the --size-only flag.
41028
41029 • Use "application/octet-stream" if discovered mime type is invalid.
41030
41031 • Fix missing "quit" option when there are no remotes.
41032
41033 • Google Drive
41034
41035 • Increase default chunk size to 8 MB - increases upload speed of big
41036 files
41037
41038 • Speed up directory listings and make more reliable
41039
41040 • Add missing retries for Move and DirMove - increases reliability
41041
41042 • Preserve mime type on file update
41043
41044 • Backblaze B2
41045
41046 • Enable mod time syncing
41047
41048 • This means that B2 will now check modification times
41049
41050 • It will upload new files to update the modification times
41051
41052 • (there isn't an API to just set the mod time.)
41053
41054 • If you want the old behaviour use --size-only.
41055
41056 • Update API to new version
41057
41058 • Fix parsing of mod time when not in metadata
41059
41060 • Swift/Hubic
41061
41062 • Don't return an MD5SUM for static large objects
41063
41064 • S3
41065
41066 • Fix uploading files bigger than 50GB
41067
41068 v1.28 - 2016-03-01
41069 • New Features
41070
41071 • Configuration file encryption - thanks Klaus Post
41072
41073 • Improve rclone config adding more help and making it easier to un‐
41074 derstand
41075
41076 • Implement -u/--update so creation times can be used on all remotes
41077
41078 • Implement --low-level-retries flag
41079
41080 • Optionally disable gzip compression on downloads with --no-gzip-en‐
41081 coding
41082
41083 • Bug fixes
41084
41085 • Don't make directories if --dry-run set
41086
41087 • Fix and document the move command
41088
41089 • Fix redirecting stderr on unix-like OSes when using --log-file
41090
41091 • Fix delete command to wait until all finished - fixes missing
41092 deletes.
41093
41094 • Backblaze B2
41095
41096 • Use one upload URL per go routine fixes more than one upload using
41097 auth token
41098
41099 • Add pacing, retries and reauthentication - fixes token expiry prob‐
41100 lems
41101
41102 • Upload without using a temporary file from local (and remotes which
41103 support SHA1)
41104
41105 • Fix reading metadata for all files when it shouldn't have been
41106
41107 • Drive
41108
41109 • Fix listing drive documents at root
41110
41111 • Disable copy and move for Google docs
41112
41113 • Swift
41114
41115 • Fix uploading of chunked files with non ASCII characters
41116
41117 • Allow setting of storage_url in the config - thanks Xavier Lucas
41118
41119 • S3
41120
41121 • Allow IAM role and credentials from environment variables - thanks
41122 Brian Stengaard
41123
41124 • Allow low privilege users to use S3 (check if directory exists dur‐
41125 ing Mkdir) - thanks Jakub Gedeon
41126
41127 • Amazon Drive
41128
41129 • Retry on more things to make directory listings more reliable
41130
41131 v1.27 - 2016-01-31
41132 • New Features
41133
41134 • Easier headless configuration with rclone authorize
41135
41136 • Add support for multiple hash types - we now check SHA1 as well as
41137 MD5 hashes.
41138
41139 • delete command which does obey the filters (unlike purge)
41140
41141 • dedupe command to deduplicate a remote. Useful with Google Drive.
41142
41143 • Add --ignore-existing flag to skip all files that exist on destina‐
41144 tion.
41145
41146 • Add --delete-before, --delete-during, --delete-after flags.
41147
41148 • Add --memprofile flag to debug memory use.
41149
41150 • Warn the user about files with same name but different case
41151
41152 • Make --include rules add their implicit exclude * at the end of the
41153 filter list
41154
41155 • Deprecate compiling with go1.3
41156
41157 • Amazon Drive
41158
41159 • Fix download of files > 10 GB
41160
41161 • Fix directory traversal ("Next token is expired") for large direc‐
41162 tory listings
41163
41164 • Remove 409 conflict from error codes we will retry - stops very
41165 long pauses
41166
41167 • Backblaze B2
41168
41169 • SHA1 hashes now checked by rclone core
41170
41171 • Drive
41172
41173 • Add --drive-auth-owner-only to only consider files owned by the us‐
41174 er - thanks Björn Harrtell
41175
41176 • Export Google documents
41177
41178 • Dropbox
41179
41180 • Make file exclusion error controllable with -q
41181
41182 • Swift
41183
41184 • Fix upload from unprivileged user.
41185
41186 • S3
41187
41188 • Fix updating of mod times of files with + in.
41189
41190 • Local
41191
41192 • Add local file system option to disable UNC on Windows.
41193
41194 v1.26 - 2016-01-02
41195 • New Features
41196
41197 • Yandex storage backend - thank you Dmitry Burdeev ("dibu")
41198
41199 • Implement Backblaze B2 storage backend
41200
41201 • Add --min-age and --max-age flags - thank you Adriano Aurélio
41202 Meirelles
41203
41204 • Make ls/lsl/md5sum/size/check obey includes and excludes
41205
41206 • Fixes
41207
41208 • Fix crash in http logging
41209
41210 • Upload releases to github too
41211
41212 • Swift
41213
41214 • Fix sync for chunked files
41215
41216 • OneDrive
41217
41218 • Re-enable server-side copy
41219
41220 • Don't mask HTTP error codes with JSON decode error
41221
41222 • S3
41223
41224 • Fix corrupting Content-Type on mod time update (thanks Joseph
41225 Spurrier)
41226
41227 v1.25 - 2015-11-14
41228 • New features
41229
41230 • Implement Hubic storage system
41231
41232 • Fixes
41233
41234 • Fix deletion of some excluded files without --delete-excluded
41235
41236 • This could have deleted files unexpectedly on sync
41237
41238 • Always check first with --dry-run!
41239
41240 • Swift
41241
41242 • Stop SetModTime losing metadata (e.g. X-Object-Manifest)
41243
41244 • This could have caused data loss for files > 5GB in size
41245
41246 • Use ContentType from Object to avoid lookups in listings
41247
41248 • OneDrive
41249
41250 • disable server-side copy as it seems to be broken at Microsoft
41251
41252 v1.24 - 2015-11-07
41253 • New features
41254
41255 • Add support for Microsoft OneDrive
41256
41257 • Add --no-check-certificate option to disable server certificate
41258 verification
41259
41260 • Add async readahead buffer for faster transfer of big files
41261
41262 • Fixes
41263
41264 • Allow spaces in remotes and check remote names for validity at cre‐
41265 ation time
41266
41267 • Allow '&' and disallow ':' in Windows filenames.
41268
41269 • Swift
41270
41271 • Ignore directory marker objects where appropriate - allows working
41272 with Hubic
41273
41274 • Don't delete the container if fs wasn't at root
41275
41276 • S3
41277
41278 • Don't delete the bucket if fs wasn't at root
41279
41280 • Google Cloud Storage
41281
41282 • Don't delete the bucket if fs wasn't at root
41283
41284 v1.23 - 2015-10-03
41285 • New features
41286
41287 • Implement rclone size for measuring remotes
41288
41289 • Fixes
41290
41291 • Fix headless config for drive and gcs
41292
41293 • Tell the user they should try again if the webserver method failed
41294
41295 • Improve output of --dump-headers
41296
41297 • S3
41298
41299 • Allow anonymous access to public buckets
41300
41301 • Swift
41302
41303 • Stop chunked operations logging "Failed to read info: Object Not
41304 Found"
41305
41306 • Use Content-Length on uploads for extra reliability
41307
41308 v1.22 - 2015-09-28
41309 • Implement rsync like include and exclude flags
41310
41311 • swift
41312
41313 • Support files > 5GB - thanks Sergey Tolmachev
41314
41315 v1.21 - 2015-09-22
41316 • New features
41317
41318 • Display individual transfer progress
41319
41320 • Make lsl output times in localtime
41321
41322 • Fixes
41323
41324 • Fix allowing user to override credentials again in Drive, GCS and
41325 ACD
41326
41327 • Amazon Drive
41328
41329 • Implement compliant pacing scheme
41330
41331 • Google Drive
41332
41333 • Make directory reads concurrent for increased speed.
41334
41335 v1.20 - 2015-09-15
41336 • New features
41337
41338 • Amazon Drive support
41339
41340 • Oauth support redone - fix many bugs and improve usability
41341
41342 • Use "golang.org/x/oauth2" as oauth library of choice
41343
41344 • Improve oauth usability for smoother initial signup
41345
41346 • drive, googlecloudstorage: optionally use auto config for the
41347 oauth token
41348
41349 • Implement --dump-headers and --dump-bodies debug flags
41350
41351 • Show multiple matched commands if abbreviation too short
41352
41353 • Implement server-side move where possible
41354
41355 • local
41356
41357 • Always use UNC paths internally on Windows - fixes a lot of bugs
41358
41359 • dropbox
41360
41361 • force use of our custom transport which makes timeouts work
41362
41363 • Thanks to Klaus Post for lots of help with this release
41364
41365 v1.19 - 2015-08-28
41366 • New features
41367
41368 • Server side copies for s3/swift/drive/dropbox/gcs
41369
41370 • Move command - uses server-side copies if it can
41371
41372 • Implement --retries flag - tries 3 times by default
41373
41374 • Build for plan9/amd64 and solaris/amd64 too
41375
41376 • Fixes
41377
41378 • Make a current version download with a fixed URL for scripting
41379
41380 • Ignore rmdir in limited fs rather than throwing error
41381
41382 • dropbox
41383
41384 • Increase chunk size to improve upload speeds massively
41385
41386 • Issue an error message when trying to upload bad file name
41387
41388 v1.18 - 2015-08-17
41389 • drive
41390
41391 • Add --drive-use-trash flag so rclone trashes instead of deletes
41392
41393 • Add "Forbidden to download" message for files with no downloadURL
41394
41395 • dropbox
41396
41397 • Remove datastore
41398
41399 • This was deprecated and it caused a lot of problems
41400
41401 • Modification times and MD5SUMs no longer stored
41402
41403 • Fix uploading files > 2GB
41404
41405 • s3
41406
41407 • use official AWS SDK from github.com/aws/aws-sdk-go
41408
41409 • NB will most likely require you to delete and recreate remote
41410
41411 • enable multipart upload which enables files > 5GB
41412
41413 • tested with Ceph / RadosGW / S3 emulation
41414
41415 • many thanks to Sam Liston and Brian Haymore at the Utah Center for
41416 High Performance Computing (https://www.chpc.utah.edu/) for a Ceph
41417 test account
41418
41419 • misc
41420
41421 • Show errors when reading the config file
41422
41423 • Do not print stats in quiet mode - thanks Leonid Shalupov
41424
41425 • Add FAQ
41426
41427 • Fix created directories not obeying umask
41428
41429 • Linux installation instructions - thanks Shimon Doodkin
41430
41431 v1.17 - 2015-06-14
41432 • dropbox: fix case insensitivity issues - thanks Leonid Shalupov
41433
41434 v1.16 - 2015-06-09
41435 • Fix uploading big files which was causing timeouts or panics
41436
41437 • Don't check md5sum after download with --size-only
41438
41439 v1.15 - 2015-06-06
41440 • Add --checksum flag to only discard transfers by MD5SUM - thanks Alex
41441 Couper
41442
41443 • Implement --size-only flag to sync on size not checksum & modtime
41444
41445 • Expand docs and remove duplicated information
41446
41447 • Document rclone's limitations with directories
41448
41449 • dropbox: update docs about case insensitivity
41450
41451 v1.14 - 2015-05-21
41452 • local: fix encoding of non utf-8 file names - fixes a duplicate file
41453 problem
41454
41455 • drive: docs about rate limiting
41456
41457 • google cloud storage: Fix compile after API change in
41458 "google.golang.org/api/storage/v1"
41459
41460 v1.13 - 2015-05-10
41461 • Revise documentation (especially sync)
41462
41463 • Implement --timeout and --conntimeout
41464
41465 • s3: ignore etags from multipart uploads which aren't md5sums
41466
41467 v1.12 - 2015-03-15
41468 • drive: Use chunked upload for files above a certain size
41469
41470 • drive: add --drive-chunk-size and --drive-upload-cutoff parameters
41471
41472 • drive: switch to insert from update when a failed copy deletes the
41473 upload
41474
41475 • core: Log duplicate files if they are detected
41476
41477 v1.11 - 2015-03-04
41478 • swift: add region parameter
41479
41480 • drive: fix crash on failed to update remote mtime
41481
41482 • In remote paths, change native directory separators to /
41483
41484 • Add synchronization to ls/lsl/lsd output to stop corruptions
41485
41486 • Ensure all stats/log messages to go stderr
41487
41488 • Add --log-file flag to log everything (including panics) to file
41489
41490 • Make it possible to disable stats printing with --stats=0
41491
41492 • Implement --bwlimit to limit data transfer bandwidth
41493
41494 v1.10 - 2015-02-12
41495 • s3: list an unlimited number of items
41496
41497 • Fix getting stuck in the configurator
41498
41499 v1.09 - 2015-02-07
41500 • windows: Stop drive letters (e.g. C:) getting mixed up with remotes
41501 (e.g. drive:)
41502
41503 • local: Fix directory separators on Windows
41504
41505 • drive: fix rate limit exceeded errors
41506
41507 v1.08 - 2015-02-04
41508 • drive: fix subdirectory listing to not list entire drive
41509
41510 • drive: Fix SetModTime
41511
41512 • dropbox: adapt code to recent library changes
41513
41514 v1.07 - 2014-12-23
41515 • google cloud storage: fix memory leak
41516
41517 v1.06 - 2014-12-12
41518 • Fix "Couldn't find home directory" on OSX
41519
41520 • swift: Add tenant parameter
41521
41522 • Use new location of Google API packages
41523
41524 v1.05 - 2014-08-09
41525 • Improved tests and consequently lots of minor fixes
41526
41527 • core: Fix race detected by go race detector
41528
41529 • core: Fixes after running errcheck
41530
41531 • drive: reset root directory on Rmdir and Purge
41532
41533 • fs: Document that Purger returns error on empty directory, test and
41534 fix
41535
41536 • google cloud storage: fix ListDir on subdirectory
41537
41538 • google cloud storage: re-read metadata in SetModTime
41539
41540 • s3: make reading metadata more reliable to work around eventual con‐
41541 sistency problems
41542
41543 • s3: strip trailing / from ListDir()
41544
41545 • swift: return directories without / in ListDir
41546
41547 v1.04 - 2014-07-21
41548 • google cloud storage: Fix crash on Update
41549
41550 v1.03 - 2014-07-20
41551 • swift, s3, dropbox: fix updated files being marked as corrupted
41552
41553 • Make compile with go 1.1 again
41554
41555 v1.02 - 2014-07-19
41556 • Implement Dropbox remote
41557
41558 • Implement Google Cloud Storage remote
41559
41560 • Verify Md5sums and Sizes after copies
41561
41562 • Remove times from "ls" command - lists sizes only
41563
41564 • Add add "lsl" - lists times and sizes
41565
41566 • Add "md5sum" command
41567
41568 v1.01 - 2014-07-04
41569 • drive: fix transfer of big files using up lots of memory
41570
41571 v1.00 - 2014-07-03
41572 • drive: fix whole second dates
41573
41574 v0.99 - 2014-06-26
41575 • Fix --dry-run not working
41576
41577 • Make compatible with go 1.1
41578
41579 v0.98 - 2014-05-30
41580 • s3: Treat missing Content-Length as 0 for some ceph installations
41581
41582 • rclonetest: add file with a space in
41583
41584 v0.97 - 2014-05-05
41585 • Implement copying of single files
41586
41587 • s3 & swift: support paths inside containers/buckets
41588
41589 v0.96 - 2014-04-24
41590 • drive: Fix multiple files of same name being created
41591
41592 • drive: Use o.Update and fs.Put to optimise transfers
41593
41594 • Add version number, -V and --version
41595
41596 v0.95 - 2014-03-28
41597 • rclone.org: website, docs and graphics
41598
41599 • drive: fix path parsing
41600
41601 v0.94 - 2014-03-27
41602 • Change remote format one last time
41603
41604 • GNU style flags
41605
41606 v0.93 - 2014-03-16
41607 • drive: store token in config file
41608
41609 • cross compile other versions
41610
41611 • set strict permissions on config file
41612
41613 v0.92 - 2014-03-15
41614 • Config fixes and --config option
41615
41616 v0.91 - 2014-03-15
41617 • Make config file
41618
41619 v0.90 - 2013-06-27
41620 • Project named rclone
41621
41622 v0.00 - 2012-11-18
41623 • Project started
41624
41626 Limitations
41627 Directory timestamps aren't preserved
41628 Rclone doesn't currently preserve the timestamps of directories. This
41629 is because rclone only really considers objects when syncing.
41630
41631 Rclone struggles with millions of files in a directory/bucket
41632 Currently rclone loads each directory/bucket entirely into memory be‐
41633 fore using it. Since each rclone object takes 0.5k-1k of memory this
41634 can take a very long time and use a large amount of memory.
41635
41636 Millions of files in a directory tends to occur on bucket-based remotes
41637 (e.g. S3 buckets) since those remotes do not segregate subdirectories
41638 within the bucket.
41639
41640 Bucket based remotes and folders
41641 Bucket based remotes (e.g. S3/GCS/Swift/B2) do not have a concept of
41642 directories. Rclone therefore cannot create directories in them which
41643 means that empty directories on a bucket based remote will tend to dis‐
41644 appear.
41645
41646 Some software creates empty keys ending in / as directory markers.
41647 Rclone doesn't do this as it potentially creates more objects and costs
41648 more. This ability may be added in the future (probably via a flag/op‐
41649 tion).
41650
41651 Bugs
41652 Bugs are stored in rclone's GitHub project:
41653
41654 • Reported bugs (https://github.com/rclone/rclone/is‐
41655 sues?q=is%3Aopen+is%3Aissue+label%3Abug)
41656
41657 • Known issues (https://github.com/rclone/rclone/is‐
41658 sues?q=is%3Aopen+is%3Aissue+milestone%3A%22Known+Problem%22)
41659
41661 Do all cloud storage systems support all rclone commands
41662 Yes they do. All the rclone commands (e.g. sync, copy, etc.) will
41663 work on all the remote storage systems.
41664
41665 Can I copy the config from one machine to another
41666 Sure! Rclone stores all of its config in a single file. If you want to
41667 find this file, run rclone config file which will tell you where it is.
41668
41669 See the remote setup docs (https://rclone.org/remote_setup/) for more
41670 info.
41671
41672 How do I configure rclone on a remote / headless box with no browser?
41673 This has now been documented in its own remote setup page
41674 (https://rclone.org/remote_setup/).
41675
41676 Can rclone sync directly from drive to s3
41677 Rclone can sync between two remote cloud storage systems just fine.
41678
41679 Note that it effectively downloads the file and uploads it again, so
41680 the node running rclone would need to have lots of bandwidth.
41681
41682 The syncs would be incremental (on a file by file basis).
41683
41684 Eg
41685
41686 rclone sync -i drive:Folder s3:bucket
41687
41688 Using rclone from multiple locations at the same time
41689 You can use rclone from multiple places at the same time if you choose
41690 different subdirectory for the output, e.g.
41691
41692 Server A> rclone sync -i /tmp/whatever remote:ServerA
41693 Server B> rclone sync -i /tmp/whatever remote:ServerB
41694
41695 If you sync to the same directory then you should use rclone copy oth‐
41696 erwise the two instances of rclone may delete each other's files, e.g.
41697
41698 Server A> rclone copy /tmp/whatever remote:Backup
41699 Server B> rclone copy /tmp/whatever remote:Backup
41700
41701 The file names you upload from Server A and Server B should be differ‐
41702 ent in this case, otherwise some file systems (e.g. Drive) may make
41703 duplicates.
41704
41705 Why doesn't rclone support partial transfers / binary diffs like rsync?
41706 Rclone stores each file you transfer as a native object on the remote
41707 cloud storage system. This means that you can see the files you upload
41708 as expected using alternative access methods (e.g. using the Google
41709 Drive web interface). There is a 1:1 mapping between files on your
41710 hard disk and objects created in the cloud storage system.
41711
41712 Cloud storage systems (at least none I've come across yet) don't sup‐
41713 port partially uploading an object. You can't take an existing object,
41714 and change some bytes in the middle of it.
41715
41716 It would be possible to make a sync system which stored binary diffs
41717 instead of whole objects like rclone does, but that would break the 1:1
41718 mapping of files on your hard disk to objects in the remote cloud stor‐
41719 age system.
41720
41721 All the cloud storage systems support partial downloads of content, so
41722 it would be possible to make partial downloads work. However to make
41723 this work efficiently this would require storing a significant amount
41724 of metadata, which breaks the desired 1:1 mapping of files to objects.
41725
41726 Can rclone do bi-directional sync?
41727 No, not at present. rclone only does uni-directional sync from A -> B.
41728 It may do in the future though since it has all the primitives - it
41729 just requires writing the algorithm to do it.
41730
41731 Can I use rclone with an HTTP proxy?
41732 Yes. rclone will follow the standard environment variables for prox‐
41733 ies, similar to cURL and other programs.
41734
41735 In general the variables are called http_proxy (for services reached
41736 over http) and https_proxy (for services reached over https). Most
41737 public services will be using https, but you may wish to set both.
41738
41739 The content of the variable is protocol://server:port. The protocol
41740 value is the one used to talk to the proxy server, itself, and is com‐
41741 monly either http or socks5.
41742
41743 Slightly annoyingly, there is no standard for the name; some applica‐
41744 tions may use http_proxy but another one HTTP_PROXY. The Go libraries
41745 used by rclone will try both variations, but you may wish to set all
41746 possibilities. So, on Linux, you may end up with code similar to
41747
41748 export http_proxy=http://proxyserver:12345
41749 export https_proxy=$http_proxy
41750 export HTTP_PROXY=$http_proxy
41751 export HTTPS_PROXY=$http_proxy
41752
41753 The NO_PROXY allows you to disable the proxy for specific hosts. Hosts
41754 must be comma separated, and can contain domains or parts. For in‐
41755 stance "foo.com" also matches "bar.foo.com".
41756
41757 e.g.
41758
41759 export no_proxy=localhost,127.0.0.0/8,my.host.name
41760 export NO_PROXY=$no_proxy
41761
41762 Note that the ftp backend does not support ftp_proxy yet.
41763
41764 Rclone gives x509: failed to load system roots and no roots provided error
41765 This means that rclone can't find the SSL root certificates. Likely
41766 you are running rclone on a NAS with a cut-down Linux OS, or possibly
41767 on Solaris.
41768
41769 Rclone (via the Go runtime) tries to load the root certificates from
41770 these places on Linux.
41771
41772 "/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
41773 "/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL
41774 "/etc/ssl/ca-bundle.pem", // OpenSUSE
41775 "/etc/pki/tls/cacert.pem", // OpenELEC
41776
41777 So doing something like this should fix the problem. It also sets the
41778 time which is important for SSL to work properly.
41779
41780 mkdir -p /etc/ssl/certs/
41781 curl -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
41782 ntpclient -s -h pool.ntp.org
41783
41784 The two environment variables SSL_CERT_FILE and SSL_CERT_DIR, mentioned
41785 in the x509 package (https://godoc.org/crypto/x509), provide an addi‐
41786 tional way to provide the SSL root certificates.
41787
41788 Note that you may need to add the --insecure option to the curl command
41789 line if it doesn't work without.
41790
41791 curl --insecure -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
41792
41793 Rclone gives Failed to load config file: function not implemented error
41794 Likely this means that you are running rclone on Linux version not sup‐
41795 ported by the go runtime, ie earlier than version 2.6.23.
41796
41797 See the system requirements section in the go install docs
41798 (https://golang.org/doc/install) for full details.
41799
41800 All my uploaded docx/xlsx/pptx files appear as archive/zip
41801 This is caused by uploading these files from a Windows computer which
41802 hasn't got the Microsoft Office suite installed. The easiest way to
41803 fix is to install the Word viewer and the Microsoft Office Compatibili‐
41804 ty Pack for Word, Excel, and PowerPoint 2007 and later versions' file
41805 formats
41806
41807 tcp lookup some.domain.com no such host
41808 This happens when rclone cannot resolve a domain. Please check that
41809 your DNS setup is generally working, e.g.
41810
41811 # both should print a long list of possible IP addresses
41812 dig www.googleapis.com # resolve using your default DNS
41813 dig www.googleapis.com @8.8.8.8 # resolve with Google's DNS server
41814
41815 If you are using systemd-resolved (default on Arch Linux), ensure it is
41816 at version 233 or higher. Previous releases contain a bug which causes
41817 not all domains to be resolved properly.
41818
41819 Additionally with the GODEBUG=netdns= environment variable the Go re‐
41820 solver decision can be influenced. This also allows to resolve certain
41821 issues with DNS resolution. See the name resolution section in the go
41822 docs (https://golang.org/pkg/net/#hdr-Name_Resolution).
41823
41824 The total size reported in the stats for a sync is wrong and keeps changing
41825 It is likely you have more than 10,000 files that need to be synced.
41826 By default rclone only gets 10,000 files ahead in a sync so as not to
41827 use up too much memory. You can change this default with the
41828 --max-backlog (https://rclone.org/docs/#max-backlog-n) flag.
41829
41830 Rclone is using too much memory or appears to have a memory leak
41831 Rclone is written in Go which uses a garbage collector. The default
41832 settings for the garbage collector mean that it runs when the heap size
41833 has doubled.
41834
41835 However it is possible to tune the garbage collector to use less memory
41836 by setting GOGC (https://dave.cheney.net/tag/gogc) to a lower value,
41837 say export GOGC=20. This will make the garbage collector work harder,
41838 reducing memory size at the expense of CPU usage.
41839
41840 The most common cause of rclone using lots of memory is a single direc‐
41841 tory with thousands or millions of files in. Rclone has to load this
41842 entirely into memory as rclone objects. Each rclone object takes
41843 0.5k-1k of memory.
41844
41845 Rclone changes fullwidth Unicode punctuation marks in file names
41846 For example: On a Windows system, you have a file with name
41847 Test:1.jpg, where : is the Unicode fullwidth colon symbol. When us‐
41848 ing rclone to copy this to your Google Drive, you will notice that the
41849 file gets renamed to Test:1.jpg, where : is the regular (halfwidth)
41850 colon.
41851
41852 The reason for such renames is the way rclone handles different re‐
41853 stricted filenames (https://rclone.org/overview/#restricted-filenames)
41854 on different cloud storage systems. It tries to avoid ambiguous file
41855 names as much and allow moving files between many cloud storage systems
41856 transparently, by replacing invalid characters with similar looking
41857 Unicode characters when transferring to one storage system, and replac‐
41858 ing back again when transferring to a different storage system where
41859 the original characters are supported. When the same Unicode charac‐
41860 ters are intentionally used in file names, this replacement strategy
41861 leads to unwanted renames. Read more here (https://rclone.org/over‐
41862 view/#restricted-filenames-caveats).
41863
41865 This is free software under the terms of MIT the license (check the
41866 COPYING file included with the source code).
41867
41868 Copyright (C) 2019 by Nick Craig-Wood https://www.craig-wood.com/nick/
41869
41870 Permission is hereby granted, free of charge, to any person obtaining a copy
41871 of this software and associated documentation files (the "Software"), to deal
41872 in the Software without restriction, including without limitation the rights
41873 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
41874 copies of the Software, and to permit persons to whom the Software is
41875 furnished to do so, subject to the following conditions:
41876
41877 The above copyright notice and this permission notice shall be included in
41878 all copies or substantial portions of the Software.
41879
41880 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41881 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41882 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41883 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
41884 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
41885 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
41886 THE SOFTWARE.
41887
41889 Authors
41890 • Nick Craig-Wood <nick@craig-wood.com>
41891
41892 Contributors
41893 {{< rem email addresses removed from here need to be addeed to bin/.ig‐
41894 nore-emails to make sure update-authors.py doesn't immediately put them
41895 back in again. >}}
41896
41897 • Alex Couper <amcouper@gmail.com>
41898
41899 • Leonid Shalupov <leonid@shalupov.com> <shalupov@diverse.org.ru>
41900
41901 • Shimon Doodkin <helpmepro1@gmail.com>
41902
41903 • Colin Nicholson <colin@colinn.com>
41904
41905 • Klaus Post <klauspost@gmail.com>
41906
41907 • Sergey Tolmachev <tolsi.ru@gmail.com>
41908
41909 • Adriano Aurélio Meirelles <adriano@atinge.com>
41910
41911 • C. Bess <cbess@users.noreply.github.com>
41912
41913 • Dmitry Burdeev <dibu28@gmail.com>
41914
41915 • Joseph Spurrier <github@josephspurrier.com>
41916
41917 • Björn Harrtell <bjorn@wololo.org>
41918
41919 • Xavier Lucas <xavier.lucas@corp.ovh.com>
41920
41921 • Werner Beroux <werner@beroux.com>
41922
41923 • Brian Stengaard <brian@stengaard.eu>
41924
41925 • Jakub Gedeon <jgedeon@sofi.com>
41926
41927 • Jim Tittsler <jwt@onjapan.net>
41928
41929 • Michal Witkowski <michal@improbable.io>
41930
41931 • Fabian Ruff <fabian.ruff@sap.com>
41932
41933 • Leigh Klotz <klotz@quixey.com>
41934
41935 • Romain Lapray <lapray.romain@gmail.com>
41936
41937 • Justin R. Wilson <jrw972@gmail.com>
41938
41939 • Antonio Messina <antonio.s.messina@gmail.com>
41940
41941 • Stefan G. Weichinger <office@oops.co.at>
41942
41943 • Per Cederberg <cederberg@gmail.com>
41944
41945 • Radek Šenfeld <rush@logic.cz>
41946
41947 • Fredrik Fornwall <fredrik@fornwall.net>
41948
41949 • Asko Tamm <asko@deekit.net>
41950
41951 • xor-zz <xor@gstocco.com>
41952
41953 • Tomasz Mazur <tmazur90@gmail.com>
41954
41955 • Marco Paganini <paganini@paganini.net>
41956
41957 • Felix Bünemann <buenemann@louis.info>
41958
41959 • Durval Menezes <jmrclone@durval.com>
41960
41961 • Luiz Carlos Rumbelsperger Viana <maxd13_luiz_carlos@hotmail.com>
41962
41963 • Stefan Breunig <stefan-github@yrden.de>
41964
41965 • Alishan Ladhani <ali-l@users.noreply.github.com>
41966
41967 • 0xJAKE <0xJAKE@users.noreply.github.com>
41968
41969 • Thibault Molleman <thibaultmol@users.noreply.github.com>
41970
41971 • Scott McGillivray <scott.mcgillivray@gmail.com>
41972
41973 • Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
41974
41975 • Lukas Loesche <lukas@mesosphere.io>
41976
41977 • emyarod <allllaboutyou@gmail.com>
41978
41979 • T.C. Ferguson <tcf909@gmail.com>
41980
41981 • Brandur <brandur@mutelight.org>
41982
41983 • Dario Giovannetti <dev@dariogiovannetti.net>
41984
41985 • Károly Oláh <okaresz@aol.com>
41986
41987 • Jon Yergatian <jon@macfanatic.ca>
41988
41989 • Jack Schmidt <github@mowsey.org>
41990
41991 • Dedsec1 <Dedsec1@users.noreply.github.com>
41992
41993 • Hisham Zarka <hzarka@gmail.com>
41994
41995 • Jérôme Vizcaino <jerome.vizcaino@gmail.com>
41996
41997 • Mike Tesch <mjt6129@rit.edu>
41998
41999 • Marvin Watson <marvwatson@users.noreply.github.com>
42000
42001 • Danny Tsai <danny8376@gmail.com>
42002
42003 • Yoni Jah <yonjah+git@gmail.com> <yonjah+github@gmail.com>
42004
42005 • Stephen Harris <github@spuddy.org> <sweharris@users.nore‐
42006 ply.github.com>
42007
42008 • Ihor Dvoretskyi <ihor.dvoretskyi@gmail.com>
42009
42010 • Jon Craton <jncraton@gmail.com>
42011
42012 • Hraban Luyat <hraban@0brg.net>
42013
42014 • Michael Ledin <mledin89@gmail.com>
42015
42016 • Martin Kristensen <me@azgul.com>
42017
42018 • Too Much IO <toomuchio@users.noreply.github.com>
42019
42020 • Anisse Astier <anisse@astier.eu>
42021
42022 • Zahiar Ahmed <zahiar@live.com>
42023
42024 • Igor Kharin <igorkharin@gmail.com>
42025
42026 • Bill Zissimopoulos <billziss@navimatics.com>
42027
42028 • Bob Potter <bobby.potter@gmail.com>
42029
42030 • Steven Lu <tacticalazn@gmail.com>
42031
42032 • Sjur Fredriksen <sjurtf@ifi.uio.no>
42033
42034 • Ruwbin <hubus12345@gmail.com>
42035
42036 • Fabian Möller <fabianm88@gmail.com> <f.moeller@nynex.de>
42037
42038 • Edward Q. Bridges <github@eqbridges.com>
42039
42040 • Vasiliy Tolstov <v.tolstov@selfip.ru>
42041
42042 • Harshavardhana <harsha@minio.io>
42043
42044 • sainaen <sainaen@gmail.com>
42045
42046 • gdm85 <gdm85@users.noreply.github.com>
42047
42048 • Yaroslav Halchenko <debian@onerussian.com>
42049
42050 • John Papandriopoulos <jpap@users.noreply.github.com>
42051
42052 • Zhiming Wang <zmwangx@gmail.com>
42053
42054 • Andy Pilate <cubox@cubox.me>
42055
42056 • Oliver Heyme <olihey@googlemail.com> <olihey@users.nore‐
42057 ply.github.com> <de8olihe@lego.com>
42058
42059 • wuyu <wuyu@yunify.com>
42060
42061 • Andrei Dragomir <adragomi@adobe.com>
42062
42063 • Christian Brüggemann <mail@cbruegg.com>
42064
42065 • Alex McGrath Kraak <amkdude@gmail.com>
42066
42067 • bpicode <bjoern.pirnay@googlemail.com>
42068
42069 • Daniel Jagszent <daniel@jagszent.de>
42070
42071 • Josiah White <thegenius2009@gmail.com>
42072
42073 • Ishuah Kariuki <kariuki@ishuah.com> <ishuah91@gmail.com>
42074
42075 • Jan Varho <jan@varho.org>
42076
42077 • Girish Ramakrishnan <girish@cloudron.io>
42078
42079 • LingMan <LingMan@users.noreply.github.com>
42080
42081 • Jacob McNamee <jacobmcnamee@gmail.com>
42082
42083 • jersou <jertux@gmail.com>
42084
42085 • thierry <thierry@substantiel.fr>
42086
42087 • Simon Leinen <simon.leinen@gmail.com> <ubuntu@s3-test.novalocal>
42088
42089 • Dan Dascalescu <ddascalescu+github@gmail.com>
42090
42091 • Jason Rose <jason@jro.io>
42092
42093 • Andrew Starr-Bochicchio <a.starr.b@gmail.com>
42094
42095 • John Leach <john@johnleach.co.uk>
42096
42097 • Corban Raun <craun@instructure.com>
42098
42099 • Pierre Carlson <mpcarl@us.ibm.com>
42100
42101 • Ernest Borowski <er.borowski@gmail.com>
42102
42103 • Remus Bunduc <remus.bunduc@gmail.com>
42104
42105 • Iakov Davydov <iakov.davydov@unil.ch> <dav05.gith@myths.ru>
42106
42107 • Jakub Tasiemski <tasiemski@gmail.com>
42108
42109 • David Minor <dminor@saymedia.com>
42110
42111 • Tim Cooijmans <cooijmans.tim@gmail.com>
42112
42113 • Laurence <liuxy6@gmail.com>
42114
42115 • Giovanni Pizzi <gio.piz@gmail.com>
42116
42117 • Filip Bartodziej <filipbartodziej@gmail.com>
42118
42119 • Jon Fautley <jon@dead.li>
42120
42121 • lewapm <32110057+lewapm@users.noreply.github.com>
42122
42123 • Yassine Imounachen <yassine256@gmail.com>
42124
42125 • Chris Redekop <chris-redekop@users.noreply.github.com> <chris.re‐
42126 dekop@gmail.com>
42127
42128 • Jon Fautley <jon@adenoid.appstal.co.uk>
42129
42130 • Will Gunn <WillGunn@users.noreply.github.com>
42131
42132 • Lucas Bremgartner <lucas@bremis.ch>
42133
42134 • Jody Frankowski <jody.frankowski@gmail.com>
42135
42136 • Andreas Roussos <arouss1980@gmail.com>
42137
42138 • nbuchanan <nbuchanan@utah.gov>
42139
42140 • Durval Menezes <rclone@durval.com>
42141
42142 • Victor <vb-github@viblo.se>
42143
42144 • Mateusz <pabian.mateusz@gmail.com>
42145
42146 • Daniel Loader <spicypixel@gmail.com>
42147
42148 • David0rk <davidork@gmail.com>
42149
42150 • Alexander Neumann <alexander@bumpern.de>
42151
42152 • Giri Badanahatti <gbadanahatti@us.ibm.com@Giris-MacBook-Pro.local>
42153
42154 • Leo R. Lundgren <leo@finalresort.org>
42155
42156 • wolfv <wolfv6@users.noreply.github.com>
42157
42158 • Dave Pedu <dave@davepedu.com>
42159
42160 • Stefan Lindblom <lindblom@spotify.com>
42161
42162 • seuffert <oliver@seuffert.biz>
42163
42164 • gbadanahatti <37121690+gbadanahatti@users.noreply.github.com>
42165
42166 • Keith Goldfarb <barkofdelight@gmail.com>
42167
42168 • Steve Kriss <steve@heptio.com>
42169
42170 • Chih-Hsuan Yen <yan12125@gmail.com>
42171
42172 • Alexander Neumann <fd0@users.noreply.github.com>
42173
42174 • Matt Holt <mholt@users.noreply.github.com>
42175
42176 • Eri Bastos <bastos.eri@gmail.com>
42177
42178 • Michael P. Dubner <pywebmail@list.ru>
42179
42180 • Antoine GIRARD <sapk@users.noreply.github.com>
42181
42182 • Mateusz Piotrowski <mpp302@gmail.com>
42183
42184 • Animosity022 <animosity22@users.noreply.github.com> <earl.tex‐
42185 ter@gmail.com>
42186
42187 • Peter Baumgartner <pete@lincolnloop.com>
42188
42189 • Craig Rachel <craig@craigrachel.com>
42190
42191 • Michael G. Noll <miguno@users.noreply.github.com>
42192
42193 • hensur <me@hensur.de>
42194
42195 • Oliver Heyme <de8olihe@lego.com>
42196
42197 • Richard Yang <richard@yenforyang.com>
42198
42199 • Piotr Oleszczyk <piotr.oleszczyk@gmail.com>
42200
42201 • Rodrigo <rodarima@gmail.com>
42202
42203 • NoLooseEnds <NoLooseEnds@users.noreply.github.com>
42204
42205 • Jakub Karlicek <jakub@karlicek.me>
42206
42207 • John Clayton <john@codemonkeylabs.com>
42208
42209 • Kasper Byrdal Nielsen <byrdal76@gmail.com>
42210
42211 • Benjamin Joseph Dag <bjdag1234@users.noreply.github.com>
42212
42213 • themylogin <themylogin@gmail.com>
42214
42215 • Onno Zweers <onno.zweers@surfsara.nl>
42216
42217 • Jasper Lievisse Adriaanse <jasper@humppa.nl>
42218
42219 • sandeepkru <sandeep.ummadi@gmail.com> <sandeepkru@users.nore‐
42220 ply.github.com>
42221
42222 • HerrH <atomtigerzoo@users.noreply.github.com>
42223
42224 • Andrew <4030760+sparkyman215@users.noreply.github.com>
42225
42226 • dan smith <XX1011@gmail.com>
42227
42228 • Oleg Kovalov <iamolegkovalov@gmail.com>
42229
42230 • Ruben Vandamme <github-com-00ff86@vandamme.email>
42231
42232 • Cnly <minecnly@gmail.com>
42233
42234 • Andres Alvarez <1671935+kir4h@users.noreply.github.com>
42235
42236 • reddi1 <xreddi@gmail.com>
42237
42238 • Matt Tucker <matthewtckr@gmail.com>
42239
42240 • Sebastian Bünger <buengese@gmail.com> <buengese@protonmail.com>
42241
42242 • Martin Polden <mpolden@mpolden.no>
42243
42244 • Alex Chen <Cnly@users.noreply.github.com>
42245
42246 • Denis <deniskovpen@gmail.com>
42247
42248 • bsteiss <35940619+bsteiss@users.noreply.github.com>
42249
42250 • Cédric Connes <cedric.connes@gmail.com>
42251
42252 • Dr. Tobias Quathamer <toddy15@users.noreply.github.com>
42253
42254 • dcpu <42736967+dcpu@users.noreply.github.com>
42255
42256 • Sheldon Rupp <me@shel.io>
42257
42258 • albertony <12441419+albertony@users.noreply.github.com>
42259
42260 • cron410 <cron410@gmail.com>
42261
42262 • Anagh Kumar Baranwal <6824881+darthShadow@users.noreply.github.com>
42263
42264 • Felix Brucker <felix@felixbrucker.com>
42265
42266 • Santiago Rodríguez <scollazo@users.noreply.github.com>
42267
42268 • Craig Miskell <craig.miskell@fluxfederation.com>
42269
42270 • Antoine GIRARD <sapk@sapk.fr>
42271
42272 • Joanna Marek <joanna.marek@u2i.com>
42273
42274 • frenos <frenos@users.noreply.github.com>
42275
42276 • ssaqua <ssaqua@users.noreply.github.com>
42277
42278 • xnaas <me@xnaas.info>
42279
42280 • Frantisek Fuka <fuka@fuxoft.cz>
42281
42282 • Paul Kohout <pauljkohout@yahoo.com>
42283
42284 • dcpu <43330287+dcpu@users.noreply.github.com>
42285
42286 • jackyzy823 <jackyzy823@gmail.com>
42287
42288 • David Haguenauer <ml@kurokatta.org>
42289
42290 • teresy <hi.teresy@gmail.com>
42291
42292 • buergi <patbuergi@gmx.de>
42293
42294 • Florian Gamboeck <mail@floga.de>
42295
42296 • Ralf Hemberger <10364191+rhemberger@users.noreply.github.com>
42297
42298 • Scott Edlund <sedlund@users.noreply.github.com>
42299
42300 • Erik Swanson <erik@retailnext.net>
42301
42302 • Jake Coggiano <jake@stripe.com>
42303
42304 • brused27 <brused27@noemailaddress>
42305
42306 • Peter Kaminski <kaminski@istori.com>
42307
42308 • Henry Ptasinski <henry@logout.com>
42309
42310 • Alexander <kharkovalexander@gmail.com>
42311
42312 • Garry McNulty <garrmcnu@gmail.com>
42313
42314 • Mathieu Carbou <mathieu.carbou@gmail.com>
42315
42316 • Mark Otway <mark@otway.com>
42317
42318 • William Cocker <37018962+WilliamCocker@users.noreply.github.com>
42319
42320 • François Leurent <131.js@cloudyks.org>
42321
42322 • Arkadius Stefanski <arkste@gmail.com>
42323
42324 • Jay <dev@jaygoel.com>
42325
42326 • andrea rota <a@xelera.eu>
42327
42328 • nicolov <nicolov@users.noreply.github.com>
42329
42330 • Dario Guzik <dario@guzik.com.ar>
42331
42332 • qip <qip@users.noreply.github.com>
42333
42334 • yair@unicorn <yair@unicorn>
42335
42336 • Matt Robinson <brimstone@the.narro.ws>
42337
42338 • kayrus <kay.diam@gmail.com>
42339
42340 • Rémy Léone <remy.leone@gmail.com>
42341
42342 • Wojciech Smigielski <wojciech.hieronim.smigielski@gmail.com>
42343
42344 • weetmuts <oehrstroem@gmail.com>
42345
42346 • Jonathan <vanillajonathan@users.noreply.github.com>
42347
42348 • James Carpenter <orbsmiv@users.noreply.github.com>
42349
42350 • Vince <vince0villamora@gmail.com>
42351
42352 • Nestar47 <47841759+Nestar47@users.noreply.github.com>
42353
42354 • Six <brbsix@gmail.com>
42355
42356 • Alexandru Bumbacea <alexandru.bumbacea@booking.com>
42357
42358 • calisro <robert.calistri@gmail.com>
42359
42360 • Dr.Rx <david.rey@nventive.com>
42361
42362 • marcintustin <marcintustin@users.noreply.github.com>
42363
42364 • jaKa Močnik <jaka@koofr.net>
42365
42366 • Fionera <fionera@fionera.de>
42367
42368 • Dan Walters <dan@walters.io>
42369
42370 • Danil Semelenov <sgtpep@users.noreply.github.com>
42371
42372 • xopez <28950736+xopez@users.noreply.github.com>
42373
42374 • Ben Boeckel <mathstuf@gmail.com>
42375
42376 • Manu <manu@snapdragon.cc>
42377
42378 • Kyle E. Mitchell <kyle@kemitchell.com>
42379
42380 • Gary Kim <gary@garykim.dev>
42381
42382 • Jon <jonathn@github.com>
42383
42384 • Jeff Quinn <jeffrey.quinn@bluevoyant.com>
42385
42386 • Peter Berbec <peter@berbec.com>
42387
42388 • didil <1284255+didil@users.noreply.github.com>
42389
42390 • id01 <gaviniboom@gmail.com>
42391
42392 • Robert Marko <robimarko@gmail.com>
42393
42394 • Philip Harvey <32467456+pharveybattelle@users.noreply.github.com>
42395
42396 • JorisE <JorisE@users.noreply.github.com>
42397
42398 • garry415 <garry.415@gmail.com>
42399
42400 • forgems <forgems@gmail.com>
42401
42402 • Florian Apolloner <florian@apolloner.eu>
42403
42404 • Aleksandar Janković <office@ajankovic.com> <ajankovic@users.nore‐
42405 ply.github.com>
42406
42407 • Maran <maran@protonmail.com>
42408
42409 • nguyenhuuluan434 <nguyenhuuluan434@gmail.com>
42410
42411 • Laura Hausmann <zotan@zotan.pw> <laura@hausmann.dev>
42412
42413 • yparitcher <y@paritcher.com>
42414
42415 • AbelThar <abela.tharen@gmail.com>
42416
42417 • Matti Niemenmaa <matti.niemenmaa+git@iki.fi>
42418
42419 • Russell Davis <russelldavis@users.noreply.github.com>
42420
42421 • Yi FU <yi.fu@tink.se>
42422
42423 • Paul Millar <paul.millar@desy.de>
42424
42425 • justinalin <justinalin@qnap.com>
42426
42427 • EliEron <subanimehd@gmail.com>
42428
42429 • justina777 <chiahuei.lin@gmail.com>
42430
42431 • Chaitanya Bankanhal <bchaitanya15@gmail.com>
42432
42433 • Michał Matczuk <michal@scylladb.com>
42434
42435 • Macavirus <macavirus@zoho.com>
42436
42437 • Abhinav Sharma <abhi18av@outlook.com>
42438
42439 • ginvine <34869051+ginvine@users.noreply.github.com>
42440
42441 • Patrick Wang <mail6543210@yahoo.com.tw>
42442
42443 • Cenk Alti <cenkalti@gmail.com>
42444
42445 • Andreas Chlupka <andy@chlupka.com>
42446
42447 • Alfonso Montero <amontero@tinet.org>
42448
42449 • Ivan Andreev <ivandeex@gmail.com>
42450
42451 • David Baumgold <david@davidbaumgold.com>
42452
42453 • Lars Lehtonen <lars.lehtonen@gmail.com>
42454
42455 • Matei David <matei.david@gmail.com>
42456
42457 • David <david.bramwell@endemolshine.com>
42458
42459 • Anthony Rusdi <33247310+antrusd@users.noreply.github.com>
42460
42461 • Richard Patel <me@terorie.dev>
42462
42463 • 庄天翼 <zty0826@gmail.com>
42464
42465 • SwitchJS <dev@switchjs.com>
42466
42467 • Raphael <PowershellNinja@users.noreply.github.com>
42468
42469 • Sezal Agrawal <sezalagrawal@gmail.com>
42470
42471 • Tyler <TylerNakamura@users.noreply.github.com>
42472
42473 • Brett Dutro <brett.dutro@gmail.com>
42474
42475 • Vighnesh SK <booterror99@gmail.com>
42476
42477 • Arijit Biswas <dibbyo456@gmail.com>
42478
42479 • Michele Caci <michele.caci@gmail.com>
42480
42481 • AlexandrBoltris <ua2fgb@gmail.com>
42482
42483 • Bryce Larson <blarson@saltstack.com>
42484
42485 • Carlos Ferreyra <crypticmind@gmail.com>
42486
42487 • Saksham Khanna <sakshamkhanna@outlook.com>
42488
42489 • dausruddin <5763466+dausruddin@users.noreply.github.com>
42490
42491 • zero-24 <zero-24@users.noreply.github.com>
42492
42493 • Xiaoxing Ye <ye@xiaoxing.us>
42494
42495 • Barry Muldrey <barry@muldrey.net>
42496
42497 • Sebastian Brandt <sebastian.brandt@friday.de>
42498
42499 • Marco Molteni <marco.molteni@mailbox.org>
42500
42501 • Ankur Gupta <7876747+ankur0493@users.noreply.github.com>
42502
42503 • Maciej Zimnoch <maciej@scylladb.com>
42504
42505 • anuar45 <serdaliyev.anuar@gmail.com>
42506
42507 • Fernando <ferferga@users.noreply.github.com>
42508
42509 • David Cole <david.cole@sohonet.com>
42510
42511 • Wei He <git@weispot.com>
42512
42513 • Outvi V <19144373+outloudvi@users.noreply.github.com>
42514
42515 • Thomas Kriechbaumer <thomas@kriechbaumer.name>
42516
42517 • Tennix <tennix@users.noreply.github.com>
42518
42519 • Ole Schütt <ole@schuett.name>
42520
42521 • Kuang-che Wu <kcwu@csie.org>
42522
42523 • Thomas Eales <wingsuit@users.noreply.github.com>
42524
42525 • Paul Tinsley <paul.tinsley@vitalsource.com>
42526
42527 • Felix Hungenberg <git@shiftgeist.com>
42528
42529 • Benjamin Richter <github@dev.telepath.de>
42530
42531 • landall <cst_zf@qq.com>
42532
42533 • thestigma <thestigma@gmail.com>
42534
42535 • jtagcat <38327267+jtagcat@users.noreply.github.com>
42536
42537 • Damon Permezel <permezel@me.com>
42538
42539 • boosh <boosh@users.noreply.github.com>
42540
42541 • unbelauscht <58393353+unbelauscht@users.noreply.github.com>
42542
42543 • Motonori IWAMURO <vmi@nifty.com>
42544
42545 • Benjapol Worakan <benwrk@live.com>
42546
42547 • Dave Koston <dave.koston@stackpath.com>
42548
42549 • Durval Menezes <DurvalMenezes@users.noreply.github.com>
42550
42551 • Tim Gallant <me@timgallant.us>
42552
42553 • Frederick Zhang <frederick888@tsundere.moe>
42554
42555 • valery1707 <valery1707@gmail.com>
42556
42557 • Yves G <theYinYeti@yalis.fr>
42558
42559 • Shing Kit Chan <chanshingkit@gmail.com>
42560
42561 • Franklyn Tackitt <franklyn@tackitt.net>
42562
42563 • Robert-André Mauchin <zebob.m@gmail.com>
42564
42565 • evileye <48332831+ibiruai@users.noreply.github.com>
42566
42567 • Joachim Brandon LeBlanc <brandon@leblanc.codes>
42568
42569 • Patryk Jakuszew <patryk.jakuszew@gmail.com>
42570
42571 • fishbullet <shindu666@gmail.com>
42572
42573 • greatroar <@>
42574
42575 • Bernd Schoolmann <mail@quexten.com>
42576
42577 • Elan Ruusamäe <glen@pld-linux.org>
42578
42579 • Max Sum <max@lolyculture.com>
42580
42581 • Mark Spieth <mspieth@users.noreply.github.com>
42582
42583 • harry <me@harry.plus>
42584
42585 • Samantha McVey <samantham@posteo.net>
42586
42587 • Jack Anderson <jack.anderson@metaswitch.com>
42588
42589 • Michael G <draget@speciesm.net>
42590
42591 • Brandon Philips <brandon@ifup.org>
42592
42593 • Daven <dooven@users.noreply.github.com>
42594
42595 • Martin Stone <martin@d7415.co.uk>
42596
42597 • David Bramwell <13053834+dbramwell@users.noreply.github.com>
42598
42599 • Sunil Patra <snl_su@live.com>
42600
42601 • Adam Stroud <adam.stroud@gmail.com>
42602
42603 • Kush <kushsharma@users.noreply.github.com>
42604
42605 • Matan Rosenberg <matan129@gmail.com>
42606
42607 • gitch1 <63495046+gitch1@users.noreply.github.com>
42608
42609 • ElonH <elonhhuang@gmail.com>
42610
42611 • Fred <fred@creativeprojects.tech>
42612
42613 • Sébastien Gross <renard@users.noreply.github.com>
42614
42615 • Maxime Suret <11944422+msuret@users.noreply.github.com>
42616
42617 • Caleb Case <caleb@storj.io> <calebcase@gmail.com>
42618
42619 • Ben Zenker <imbenzenker@gmail.com>
42620
42621 • Martin Michlmayr <tbm@cyrius.com>
42622
42623 • Brandon McNama <bmcnama@pagerduty.com>
42624
42625 • Daniel Slyman <github@skylayer.eu>
42626
42627 • Alex Guerrero <guerrero@users.noreply.github.com>
42628
42629 • Matteo Pietro Dazzi <matteopietro.dazzi@gft.com>
42630
42631 • edwardxml <56691903+edwardxml@users.noreply.github.com>
42632
42633 • Roman Kredentser <shareed2k@gmail.com>
42634
42635 • Kamil Trzciński <ayufan@ayufan.eu>
42636
42637 • Zac Rubin <z-0@users.noreply.github.com>
42638
42639 • Vincent Feltz <psycho@feltzv.fr>
42640
42641 • Heiko Bornholdt <bornholdt@informatik.uni-hamburg.de>
42642
42643 • Matteo Pietro Dazzi <matteopietro.dazzi@gmail.com>
42644
42645 • jtagcat <gitlab@c7.ee>
42646
42647 • Petri Salminen <petri@salminen.dev>
42648
42649 • Tim Burke <tim.burke@gmail.com>
42650
42651 • Kai Lüke <kai@kinvolk.io>
42652
42653 • Garrett Squire <github@garrettsquire.com>
42654
42655 • Evan Harris <eharris@puremagic.com>
42656
42657 • Kevin <keyam@microsoft.com>
42658
42659 • Morten Linderud <morten@linderud.pw>
42660
42661 • Dmitry Ustalov <dmitry.ustalov@gmail.com>
42662
42663 • Jack <196648+jdeng@users.noreply.github.com>
42664
42665 • kcris <cristian.tarsoaga@gmail.com>
42666
42667 • tyhuber1 <68970760+tyhuber1@users.noreply.github.com>
42668
42669 • David Ibarra <david.ibarra@realty.com>
42670
42671 • Tim Gallant <tim@lilt.com>
42672
42673 • Kaloyan Raev <kaloyan@storj.io>
42674
42675 • Jay McEntire <jay.mcentire@gmail.com>
42676
42677 • Leo Luan <leoluan@us.ibm.com>
42678
42679 • aus <549081+aus@users.noreply.github.com>
42680
42681 • Aaron Gokaslan <agokaslan@fb.com>
42682
42683 • Egor Margineanu <egmar@users.noreply.github.com>
42684
42685 • Lucas Kanashiro <lucas.kanashiro@canonical.com>
42686
42687 • WarpedPixel <WarpedPixel@users.noreply.github.com>
42688
42689 • Sam Edwards <sam@samedwards.ca>
42690
42691 • wjielai <gouki0123@gmail.com>
42692
42693 • Muffin King <jinxz_k@live.com>
42694
42695 • Christopher Stewart <6573710+1f47a@users.noreply.github.com>
42696
42697 • Russell Cattelan <cattelan@digitalelves.com>
42698
42699 • gyutw <30371241+gyutw@users.noreply.github.com>
42700
42701 • Hekmon <edouardhur@gmail.com>
42702
42703 • LaSombra <lasombra@users.noreply.github.com>
42704
42705 • Dov Murik <dov.murik@gmail.com>
42706
42707 • Ameer Dawood <ameer1234567890@gmail.com>
42708
42709 • Dan Hipschman <dan.hipschman@opendoor.com>
42710
42711 • Josh Soref <jsoref@users.noreply.github.com>
42712
42713 • David <david@staron.nl>
42714
42715 • Ingo <ingo@hoffmann.cx>
42716
42717 • Adam Plánský <adamplansky@users.noreply.github.com> <adamplan‐
42718 sky@gmail.com>
42719
42720 • Manish Gupta <manishgupta.ait@gmail.com>
42721
42722 • Deepak Sah <sah.sslpu@gmail.com>
42723
42724 • Marcin Zelent <marcin@zelent.net>
42725
42726 • zhucan <zhucan.k8s@gmail.com>
42727
42728 • James Lim <james.lim@samsara.com>
42729
42730 • Laurens Janssen <BD69BM@insim.biz>
42731
42732 • Bob Bagwill <bobbagwill@gmail.com>
42733
42734 • Nathan Collins <colli372@msu.edu>
42735
42736 • lostheli
42737
42738 • kelv <kelvin@acks.org>
42739
42740 • Milly <milly.ca@gmail.com>
42741
42742 • gtorelly <gtorelly@gmail.com>
42743
42744 • Brad Ackerman <brad@facefault.org>
42745
42746 • Mitsuo Heijo <mitsuo.heijo@gmail.com>
42747
42748 • Claudio Bantaloukas <rockdreamer@gmail.com>
42749
42750 • Benjamin Gustin <gustin.ben@gmail.com>
42751
42752 • Ingo Weiss <ingo@redhat.com>
42753
42754 • Kerry Su <me@sshockwave.net>
42755
42756 • Ilyess Bachiri <ilyess.bachiri@sonder.com>
42757
42758 • Yury Stankevich <urykhy@gmail.com>
42759
42760 • kice <wslikerqs@gmail.com>
42761
42762 • Denis Neuling <denisneuling@gmail.com>
42763
42764 • Janne Johansson <icepic.dz@gmail.com>
42765
42766 • Patrik Nordlén <patriki@gmail.com>
42767
42768 • CokeMine <aptx4561@gmail.com>
42769
42770 • Sơn Trần-Nguyễn <github@sntran.com>
42771
42772 • lluuaapp <266615+lluuaapp@users.noreply.github.com>
42773
42774 • Zach Kipp <kipp.zach@gmail.com>
42775
42776 • Riccardo Iaconelli <riccardo@kde.org>
42777
42778 • Sakuragawa Misty <gyc990326@gmail.com>
42779
42780 • Nicolas Rueff <nicolas@rueff.fr>
42781
42782 • Pau Rodriguez-Estivill <prodrigestivill@gmail.com>
42783
42784 • Bob Pusateri <BobPusateri@users.noreply.github.com>
42785
42786 • Alex JOST <25005220+dimejo@users.noreply.github.com>
42787
42788 • Alexey Tabakman <samosad.ru@gmail.com>
42789
42790 • David Sze <sze.david@gmail.com>
42791
42792 • cynthia kwok <cynthia.m.kwok@gmail.com>
42793
42794 • Miron Veryanskiy <MironVeryanskiy@gmail.com>
42795
42796 • K265 <k.265@qq.com>
42797
42798 • Vesnyx <Vesnyx@users.noreply.github.com>
42799
42800 • Dmitry Chepurovskiy <me@dm3ch.net>
42801
42802 • Rauno Ots <rauno.ots@cgi.com>
42803
42804 • Georg Neugschwandtner <georg.neugschwandtner@gmx.net>
42805
42806 • pvalls <polvallsrue@gmail.com>
42807
42808 • Robert Thomas <31854736+wolveix@users.noreply.github.com>
42809
42810 • Romeo Kienzler <romeo.kienzler@gmail.com>
42811
42812 • tYYGH <tYYGH@users.noreply.github.com>
42813
42814 • georne <77802995+georne@users.noreply.github.com>
42815
42816 • Maxwell Calman <mcalman@MacBook-Pro.local>
42817
42818 • Naveen Honest Raj <naveendurai19@gmail.com>
42819
42820 • Lucas Messenger <lmesseng@cisco.com>
42821
42822 • Manish Kumar <krmanish260@gmail.com>
42823
42824 • x0b <x0bdev@gmail.com>
42825
42826 • CERN through the CS3MESH4EOSC Project
42827
42828 • Nick Gaya <nicholasgaya+github@gmail.com>
42829
42830 • Ashok Gelal <401055+ashokgelal@users.noreply.github.com>
42831
42832 • Dominik Mydlil <dominik.mydlil@outlook.com>
42833
42834 • Nazar Mishturak <nazarmx@gmail.com>
42835
42836 • Ansh Mittal <iamAnshMittal@gmail.com>
42837
42838 • noabody <noabody@yahoo.com>
42839
42840 • OleFrost <82263101+olefrost@users.noreply.github.com>
42841
42842 • Kenny Parsons <kennyparsons93@gmail.com>
42843
42844 • Jeffrey Tolar <tolar.jeffrey@gmail.com>
42845
42846 • jtagcat <git-514635f7@jtag.cat>
42847
42848 • Tatsuya Noyori <63089076+public-tatsuya-noyori@users.nore‐
42849 ply.github.com>
42850
42851 • lewisxy <lewisxy@users.noreply.github.com>
42852
42853 • Nolan Woods <nolan_w@sfu.ca>
42854
42855 • Gautam Kumar <25435568+gautamajay52@users.noreply.github.com>
42856
42857 • Chris Macklin <chris.macklin@10xgenomics.com>
42858
42859 • Antoon Prins <antoon.prins@surfsara.nl>
42860
42861 • Alexey Ivanov <rbtz@dropbox.com>
42862
42863 • Serge Pouliquen <sp31415@free.fr>
42864
42865 • acsfer <carlos@reendex.com>
42866
42867 • Tom <tom@tom-fitzhenry.me.uk>
42868
42869 • Tyson Moore <tyson@tyson.me>
42870
42871 • database64128 <free122448@hotmail.com>
42872
42873 • Chris Lu <chrislusf@users.noreply.github.com>
42874
42875 • Reid Buzby <reid@rethink.software>
42876
42877 • darrenrhs <darrenrhs@gmail.com>
42878
42879 • Florian Penzkofer <fp@nullptr.de>
42880
42881 • Xuanchen Wu <117010292@link.cuhk.edu.cn>
42882
42883 • partev <petrosyan@gmail.com>
42884
42885 • Dmitry Sitnikov <fo2@inbox.ru>
42886
42887 • Haochen Tong <i@hexchain.org>
42888
42889 • Michael Hanselmann <public@hansmi.ch>
42890
42891 • Chuan Zh <zhchuan7@gmail.com>
42892
42893 • Antoine GIRARD <antoine.girard@sapk.fr>
42894
42895 • Justin Winokur (Jwink3101) <Jwink3101@users.noreply.github.com>
42896
42897 • Mariano Absatz (git) <scm@baby.com.ar>
42898
42899 • Greg Sadetsky <lepetitg@gmail.com>
42900
42901 • yedamo <logindaveye@gmail.com>
42902
42903 • hota <lindwurm.q@gmail.com>
42904
42905 • vinibali <vinibali1@gmail.com>
42906
42907 • Ken Enrique Morel <ken.morel.santana@gmail.com>
42908
42909 • Justin Hellings <justin.hellings@gmail.com>
42910
42911 • Parth Shukla <pparth@pparth.net>
42912
42913 • wzl <wangzl31@outlook.com>
42914
42915 • HNGamingUK <connor@earnshawhome.co.uk>
42916
42917 • Jonta <359397+Jonta@users.noreply.github.com>
42918
42919 • YenForYang <YenForYang@users.noreply.github.com>
42920
42921 • Joda Stößer <stoesser@yay-digital.de> <services+github@simjo.st>
42922
42923 • Logeshwaran <waranlogesh@gmail.com>
42924
42925 • Rajat Goel <rajat@dropbox.com>
42926
42927 • r0kk3rz <r0kk3rz@gmail.com>
42928
42929 • Matthew Sevey <mjsevey@gmail.com>
42930
42931 • Filip Rysavy <fil@siasky.net>
42932
42933 • Ian Levesque <ian@ianlevesque.org>
42934
42935 • Thomas Stachl <thomas@stachl.me>
42936
42937 • Dmitry Bogatov <git#v1@kaction.cc>
42938
42939 • trevyn <trevyn-git@protonmail.com>
42940
42941 • David Liu <david.yx.liu@oracle.com>
42942
42944 Forum
42945 Forum for questions and general discussion:
42946
42947 • https://forum.rclone.org
42948
42949 GitHub repository
42950 The project's repository is located at:
42951
42952 • https://github.com/rclone/rclone
42953
42954 There you can file bug reports or contribute with pull requests.
42955
42956 Twitter
42957 You can also follow me on twitter for rclone announcements:
42958
42959 • [@njcw](https://twitter.com/njcw)
42960
42961 Email
42962 Or if all else fails or you want to ask something private or confiden‐
42963 tial email Nick Craig-Wood (mailto:nick@craig-wood.com). Please don't
42964 email me requests for help - those are better directed to the forum.
42965 Thanks!
42966
42968 Nick Craig-Wood.
42969
42970
42971
42972User Manual Nov 01, 2021 rclone(1)