1rclone(1) rclone(1)
2
3
4
6 Rclone is a command line program to sync files and directories to and
7 from:
8
9 · 1Fichier
10
11 · Alibaba Cloud (Aliyun) Object Storage System (OSS)
12
13 · Amazon Drive (See note (/amazonclouddrive/#status))
14
15 · Amazon S3
16
17 · Backblaze B2
18
19 · Box
20
21 · Ceph
22
23 · Citrix ShareFile
24
25 · C14
26
27 · DigitalOcean Spaces
28
29 · Dreamhost
30
31 · Dropbox
32
33 · FTP
34
35 · Google Cloud Storage
36
37 · Google Drive
38
39 · Google Photos
40
41 · HTTP
42
43 · Hubic
44
45 · Jottacloud
46
47 · IBM COS S3
48
49 · Koofr
50
51 · Mail.ru Cloud
52
53 · Memset Memstore
54
55 · Mega
56
57 · Memory
58
59 · Microsoft Azure Blob Storage
60
61 · Microsoft OneDrive
62
63 · Minio
64
65 · Nextcloud
66
67 · OVH
68
69 · OpenDrive
70
71 · Openstack Swift
72
73 · Oracle Cloud Storage
74
75 · ownCloud
76
77 · pCloud
78
79 · premiumize.me
80
81 · put.io
82
83 · QingStor
84
85 · Rackspace Cloud Files
86
87 · rsync.net
88
89 · Scaleway
90
91 · SFTP
92
93 · SugarSync
94
95 · Wasabi
96
97 · WebDAV
98
99 · Yandex Disk
100
101 · The local filesystem
102
103 Features
104
105 · MD5/SHA1 hashes checked at all times for file integrity
106
107 · Timestamps preserved on files
108
109 · Partial syncs supported on a whole file basis
110
111 · Copy (https://rclone.org/commands/rclone_copy/) mode to just copy
112 new/changed files
113
114 · Sync (https://rclone.org/commands/rclone_sync/) (one way) mode to
115 make a directory identical
116
117 · Check (https://rclone.org/commands/rclone_check/) mode to check for
118 file hash equality
119
120 · Can sync to and from network, eg two different cloud accounts
121
122 · Encryption (https://rclone.org/crypt/) backend
123
124 · Cache (https://rclone.org/cache/) backend
125
126 · Chunking (https://rclone.org/chunker/) backend
127
128 · Union (https://rclone.org/union/) backend
129
130 · Optional FUSE mount (rclone mount (https://rclone.org/com‐
131 mands/rclone_mount/))
132
133 · Multi-threaded downloads to local disk
134
135 · Can serve (https://rclone.org/commands/rclone_serve/) local or remote
136 files over HTTP (https://rclone.org/commands/rclone_serve_http/)/Web‐
137 Dav (https://rclone.org/commands/rclone_serve_webdav/)/FTP
138 (https://rclone.org/commands/rclone_serve_ftp/)/SFTP
139 (https://rclone.org/commands/rclone_serve_sftp/)/dlna
140 (https://rclone.org/commands/rclone_serve_dlna/)
141
142 · Experimental Web based GUI (https://rclone.org/gui/)
143
144 Links
145
146 · Home page (https://rclone.org/)
147
148 · GitHub project page for source and bug tracker
149 (https://github.com/rclone/rclone)
150
151 · Rclone Forum (https://forum.rclone.org)
152
153 · Downloads (https://rclone.org/downloads/)
154
156 Rclone is a Go program and comes as a single binary file.
157
158 Quickstart
159 · Download (https://rclone.org/downloads/) the relevant binary.
160
161 · Extract the rclone or rclone.exe binary from the archive
162
163 · Run rclone config to setup. See rclone config docs
164 (https://rclone.org/docs/) for more details.
165
166 See below for some expanded Linux / macOS instructions.
167
168 See the Usage section (https://rclone.org/docs/) of the docs for how to
169 use rclone, or run rclone -h.
170
171 Script installation
172 To install rclone on Linux/macOS/BSD systems, run:
173
174 curl https://rclone.org/install.sh | sudo bash
175
176 For beta installation, run:
177
178 curl https://rclone.org/install.sh | sudo bash -s beta
179
180 Note that this script checks the version of rclone installed first and
181 won’t re-download if not needed.
182
183 Linux installation from precompiled binary
184 Fetch and unpack
185
186 curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
187 unzip rclone-current-linux-amd64.zip
188 cd rclone-*-linux-amd64
189
190 Copy binary file
191
192 sudo cp rclone /usr/bin/
193 sudo chown root:root /usr/bin/rclone
194 sudo chmod 755 /usr/bin/rclone
195
196 Install manpage
197
198 sudo mkdir -p /usr/local/share/man/man1
199 sudo cp rclone.1 /usr/local/share/man/man1/
200 sudo mandb
201
202 Run rclone config to setup. See rclone config docs
203 (https://rclone.org/docs/) for more details.
204
205 rclone config
206
207 macOS installation with brew
208 brew install rclone
209
210 macOS installation from precompiled binary, using curl
211 To avoid problems with macOS gatekeeper enforcing the binary to be
212 signed and notarized it is enough to download with curl.
213
214 Download the latest version of rclone.
215
216 cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
217
218 Unzip the download and cd to the extracted folder.
219
220 unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
221
222 Move rclone to your $PATH. You will be prompted for your password.
223
224 sudo mkdir -p /usr/local/bin
225 sudo mv rclone /usr/local/bin/
226
227 (the mkdir command is safe to run, even if the directory already ex‐
228 ists).
229
230 Remove the leftover files.
231
232 cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
233
234 Run rclone config to setup. See rclone config docs
235 (https://rclone.org/docs/) for more details.
236
237 rclone config
238
239 macOS installation from precompiled binary, using a web browser
240 When downloading a binary with a web browser, the browser will set the
241 macOS gatekeeper quarantine attribute. Starting from Catalina, when
242 attempting to run rclone, a pop-up will appear saying:
243
244 “rclone” cannot be opened because the developer cannot be verified.
245 macOS cannot verify that this app is free from malware.
246
247 The simplest fix is to run
248
249 xattr -d com.apple.quarantine rclone
250
251 Install with docker
252 The rclone maintains a docker image for rclone (https://hub.dock‐
253 er.com/r/rclone/rclone). These images are autobuilt by docker hub from
254 the rclone source based on a minimal Alpine linux image.
255
256 The :latest tag will always point to the latest stable release. You
257 can use the :beta tag to get the latest build from master. You can al‐
258 so use version tags, eg :1.49.1, :1.49 or :1.
259
260 $ docker pull rclone/rclone:latest
261 latest: Pulling from rclone/rclone
262 Digest: sha256:0e0ced72671989bb837fea8e88578b3fc48371aa45d209663683e24cfdaa0e11
263 ...
264 $ docker run --rm rclone/rclone:latest version
265 rclone v1.49.1
266 - os/arch: linux/amd64
267 - go version: go1.12.9
268
269 There are a few command line options to consider when starting an
270 rclone Docker container from the rclone image.
271
272 · You need to mount the host rclone config dir at /config/rclone into
273 the Docker container. Due to the fact that rclone updates tokens in‐
274 side its config file, and that the update process involves a file re‐
275 name, you need to mount the whole host rclone config dir, not just
276 the single host rclone config file.
277
278 · You need to mount a host data dir at /data into the Docker container.
279
280 · By default, the rclone binary inside a Docker container runs with
281 UID=0 (root). As a result, all files created in a run will have
282 UID=0. If your config and data files reside on the host with a
283 non-root UID:GID, you need to pass these on the container start com‐
284 mand line.
285
286 · It is possible to use rclone mount inside a userspace Docker contain‐
287 er, and expose the resulting fuse mount to the host. The exact dock‐
288 er run options to do that might vary slightly between hosts. See,
289 e.g. the discussion in this thread (https://github.com/moby/moby/is‐
290 sues/9448).
291
292 You also need to mount the host /etc/passwd and /etc/group for fuse
293 to work inside the container.
294
295 Here are some commands tested on an Ubuntu 18.04.3 host:
296
297 # config on host at ~/.config/rclone/rclone.conf
298 # data on host at ~/data
299
300 # make sure the config is ok by listing the remotes
301 docker run --rm \
302 --volume ~/.config/rclone:/config/rclone \
303 --volume ~/data:/data:shared \
304 --user $(id -u):$(id -g) \
305 rclone/rclone \
306 listremotes
307
308 # perform mount inside Docker container, expose result to host
309 mkdir -p ~/data/mount
310 docker run --rm \
311 --volume ~/.config/rclone:/config/rclone \
312 --volume ~/data:/data:shared \
313 --user $(id -u):$(id -g) \
314 --volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
315 --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
316 rclone/rclone \
317 mount dropbox:Photos /data/mount &
318 ls ~/data/mount
319 kill %1
320
321 Install from source
322 Make sure you have at least Go (https://golang.org/) 1.7 installed.
323 Download go (https://golang.org/dl/) if necessary. The latest release
324 is recommended. Then
325
326 git clone https://github.com/rclone/rclone.git
327 cd rclone
328 go build
329 ./rclone version
330
331 You can also build and install rclone in the GOPATH
332 (https://github.com/golang/go/wiki/GOPATH) (which defaults to ~/go)
333 with:
334
335 go get -u -v github.com/rclone/rclone
336
337 and this will build the binary in $GOPATH/bin (~/go/bin/rclone by de‐
338 fault) after downloading the source to
339 $GOPATH/src/github.com/rclone/rclone (~/go/src/github.com/rclone/rclone
340 by default).
341
342 Installation with Ansible
343 This can be done with Stefan Weichinger’s ansible role
344 (https://github.com/stefangweichinger/ansible-rclone).
345
346 Instructions
347
348 1. git clone https://github.com/stefangweichinger/ansible-rclone.git
349 into your local roles-directory
350
351 2. add the role to the hosts you want rclone installed to:
352
353 - hosts: rclone-hosts
354 roles:
355 - rclone
356
357 Configure
358 First, you’ll need to configure rclone. As the object storage systems
359 have quite complicated authentication these are kept in a config file.
360 (See the --config entry for how to find the config file and choose its
361 location.)
362
363 The easiest way to make the config is to run rclone with the config op‐
364 tion:
365
366 rclone config
367
368 See the following for detailed instructions for
369
370 · 1Fichier (https://rclone.org/fichier/)
371
372 · Alias (https://rclone.org/alias/)
373
374 · Amazon Drive (https://rclone.org/amazonclouddrive/)
375
376 · Amazon S3 (https://rclone.org/s3/)
377
378 · Backblaze B2 (https://rclone.org/b2/)
379
380 · Box (https://rclone.org/box/)
381
382 · Cache (https://rclone.org/cache/)
383
384 · Chunker (https://rclone.org/chunker/) - transparently splits large
385 files for other remotes
386
387 · Citrix ShareFile (https://rclone.org/sharefile/)
388
389 · Crypt (https://rclone.org/crypt/) - to encrypt other remotes
390
391 · DigitalOcean Spaces (/s3/#digitalocean-spaces)
392
393 · Dropbox (https://rclone.org/dropbox/)
394
395 · FTP (https://rclone.org/ftp/)
396
397 · Google Cloud Storage (https://rclone.org/googlecloudstorage/)
398
399 · Google Drive (https://rclone.org/drive/)
400
401 · Google Photos (https://rclone.org/googlephotos/)
402
403 · HTTP (https://rclone.org/http/)
404
405 · Hubic (https://rclone.org/hubic/)
406
407 · Jottacloud / GetSky.no (https://rclone.org/jottacloud/)
408
409 · Koofr (https://rclone.org/koofr/)
410
411 · Mail.ru Cloud (https://rclone.org/mailru/)
412
413 · Mega (https://rclone.org/mega/)
414
415 · Memory (https://rclone.org/memory/)
416
417 · Microsoft Azure Blob Storage (https://rclone.org/azureblob/)
418
419 · Microsoft OneDrive (https://rclone.org/onedrive/)
420
421 · Openstack Swift / Rackspace Cloudfiles / Memset Memstore
422 (https://rclone.org/swift/)
423
424 · OpenDrive (https://rclone.org/opendrive/)
425
426 · Pcloud (https://rclone.org/pcloud/)
427
428 · premiumize.me (https://rclone.org/premiumizeme/)
429
430 · put.io (https://rclone.org/putio/)
431
432 · QingStor (https://rclone.org/qingstor/)
433
434 · SFTP (https://rclone.org/sftp/)
435
436 · SugarSync (https://rclone.org/sugarsync/)
437
438 · Union (https://rclone.org/union/)
439
440 · WebDAV (https://rclone.org/webdav/)
441
442 · Yandex Disk (https://rclone.org/yandex/)
443
444 · The local filesystem (https://rclone.org/local/)
445
446 Usage
447 Rclone syncs a directory tree from one storage system to another.
448
449 Its syntax is like this
450
451 Syntax: [options] subcommand <parameters> <parameters...>
452
453 Source and destination paths are specified by the name you gave the
454 storage system in the config file then the sub path, eg “drive:myfold‐
455 er” to look at “myfolder” in Google drive.
456
457 You can define as many storage paths as you like in the config file.
458
459 Subcommands
460 rclone uses a system of subcommands. For example
461
462 rclone ls remote:path # lists a remote
463 rclone copy /local/path remote:path # copies /local/path to the remote
464 rclone sync /local/path remote:path # syncs /local/path to the remote
465
466 rclone config
467 Enter an interactive configuration session.
468
469 Synopsis
470 Enter an interactive configuration session where you can setup new re‐
471 motes and manage existing ones. You may also set or remove a password
472 to protect your configuration.
473
474 rclone config [flags]
475
476 Options
477 -h, --help help for config
478
479 See the global flags page (https://rclone.org/flags/) for global op‐
480 tions not listed here.
481
482 SEE ALSO
483 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
484 commands, flags and backends.
485
486 · rclone config create (https://rclone.org/commands/rclone_config_cre‐
487 ate/) - Create a new remote with name, type and options.
488
489 · rclone config delete (https://rclone.org/commands/rclone_con‐
490 fig_delete/) - Delete an existing remote .
491
492 · rclone config disconnect (https://rclone.org/commands/rclone_con‐
493 fig_disconnect/) - Disconnects user from remote
494
495 · rclone config dump (https://rclone.org/commands/rclone_config_dump/)
496 - Dump the config file as JSON.
497
498 · rclone config edit (https://rclone.org/commands/rclone_config_edit/)
499 - Enter an interactive configuration session.
500
501 · rclone config file (https://rclone.org/commands/rclone_config_file/)
502 - Show path of configuration file in use.
503
504 · rclone config password (https://rclone.org/commands/rclone_con‐
505 fig_password/) - Update password in an existing remote.
506
507 · rclone config providers (https://rclone.org/commands/rclone_con‐
508 fig_providers/) - List in JSON format all the providers and options.
509
510 · rclone config reconnect (https://rclone.org/commands/rclone_con‐
511 fig_reconnect/) - Re-authenticates user with remote.
512
513 · rclone config show (https://rclone.org/commands/rclone_config_show/)
514 - Print (decrypted) config file, or the config for a single remote.
515
516 · rclone config update (https://rclone.org/commands/rclone_config_up‐
517 date/) - Update options in an existing remote.
518
519 · rclone config userinfo (https://rclone.org/commands/rclone_con‐
520 fig_userinfo/) - Prints info about logged in user of remote.
521
522 rclone copy
523 Copy files from source to dest, skipping already copied
524
525 Synopsis
526 Copy the source to the destination. Doesn’t transfer unchanged files,
527 testing by size and modification time or MD5SUM. Doesn’t delete files
528 from the destination.
529
530 Note that it is always the contents of the directory that is synced,
531 not the directory so when source:path is a directory, it’s the contents
532 of source:path that are copied, not the directory name and contents.
533
534 If dest:path doesn’t exist, it is created and the source:path contents
535 go there.
536
537 For example
538
539 rclone copy source:sourcepath dest:destpath
540
541 Let’s say there are two files in sourcepath
542
543 sourcepath/one.txt
544 sourcepath/two.txt
545
546 This copies them to
547
548 destpath/one.txt
549 destpath/two.txt
550
551 Not to
552
553 destpath/sourcepath/one.txt
554 destpath/sourcepath/two.txt
555
556 If you are familiar with rsync, rclone always works as if you had writ‐
557 ten a trailing / - meaning “copy the contents of this directory”. This
558 applies to all commands and whether you are talking about the source or
559 destination.
560
561 See the –no-traverse (/docs/#no-traverse) option for controlling
562 whether rclone lists the destination directory or not. Supplying this
563 option when copying a small number of files into a large destination
564 can speed transfers up greatly.
565
566 For example, if you have many files in /path/to/src but only a few of
567 them change every day, you can to copy all the files which have changed
568 recently very efficiently like this:
569
570 rclone copy --max-age 24h --no-traverse /path/to/src remote:
571
572 Note: Use the -P/--progress flag to view real-time transfer statistics
573
574 rclone copy source:path dest:path [flags]
575
576 Options
577 --create-empty-src-dirs Create empty source dirs on destination after copy
578 -h, --help help for copy
579
580 See the global flags page (https://rclone.org/flags/) for global op‐
581 tions not listed here.
582
583 SEE ALSO
584 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
585 commands, flags and backends.
586
587 rclone sync
588 Make source and dest identical, modifying destination only.
589
590 Synopsis
591 Sync the source to the destination, changing the destination only.
592 Doesn’t transfer unchanged files, testing by size and modification time
593 or MD5SUM. Destination is updated to match source, including deleting
594 files if necessary.
595
596 Important: Since this can cause data loss, test first with the
597 --dry-run flag to see exactly what would be copied and deleted.
598
599 Note that files in the destination won’t be deleted if there were any
600 errors at any point.
601
602 It is always the contents of the directory that is synced, not the di‐
603 rectory so when source:path is a directory, it’s the contents of
604 source:path that are copied, not the directory name and contents. See
605 extended explanation in the copy command above if unsure.
606
607 If dest:path doesn’t exist, it is created and the source:path contents
608 go there.
609
610 Note: Use the -P/--progress flag to view real-time transfer statistics
611
612 rclone sync source:path dest:path [flags]
613
614 Options
615 --create-empty-src-dirs Create empty source dirs on destination after sync
616 -h, --help help for sync
617
618 See the global flags page (https://rclone.org/flags/) for global op‐
619 tions not listed here.
620
621 SEE ALSO
622 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
623 commands, flags and backends.
624
625 rclone move
626 Move files from source to dest.
627
628 Synopsis
629 Moves the contents of the source directory to the destination directo‐
630 ry. Rclone will error if the source and destination overlap and the
631 remote does not support a server side directory move operation.
632
633 If no filters are in use and if possible this will server side move
634 source:path into dest:path. After this source:path will no longer
635 longer exist.
636
637 Otherwise for each file in source:path selected by the filters (if any)
638 this will move it into dest:path. If possible a server side move will
639 be used, otherwise it will copy it (server side if possible) into
640 dest:path then delete the original (if no errors on copy) in
641 source:path.
642
643 If you want to delete empty source directories after move, use the
644 –delete-empty-src-dirs flag.
645
646 See the –no-traverse (/docs/#no-traverse) option for controlling
647 whether rclone lists the destination directory or not. Supplying this
648 option when moving a small number of files into a large destination can
649 speed transfers up greatly.
650
651 Important: Since this can cause data loss, test first with the –dry-run
652 flag.
653
654 Note: Use the -P/--progress flag to view real-time transfer statistics.
655
656 rclone move source:path dest:path [flags]
657
658 Options
659 --create-empty-src-dirs Create empty source dirs on destination after move
660 --delete-empty-src-dirs Delete empty source dirs after move
661 -h, --help help for move
662
663 See the global flags page (https://rclone.org/flags/) for global op‐
664 tions not listed here.
665
666 SEE ALSO
667 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
668 commands, flags and backends.
669
670 rclone delete
671 Remove the contents of path.
672
673 Synopsis
674 Remove the files in path. Unlike purge it obeys include/exclude fil‐
675 ters so can be used to selectively delete files.
676
677 rclone delete only deletes objects but leaves the directory structure
678 alone. If you want to delete a directory and all of its contents use
679 rclone purge
680
681 Eg delete all files bigger than 100MBytes
682
683 Check what would be deleted first (use either)
684
685 rclone --min-size 100M lsl remote:path
686 rclone --dry-run --min-size 100M delete remote:path
687
688 Then delete
689
690 rclone --min-size 100M delete remote:path
691
692 That reads “delete everything with a minimum size of 100 MB”, hence
693 delete all files bigger than 100MBytes.
694
695 rclone delete remote:path [flags]
696
697 Options
698 -h, --help help for delete
699
700 See the global flags page (https://rclone.org/flags/) for global op‐
701 tions not listed here.
702
703 SEE ALSO
704 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
705 commands, flags and backends.
706
707 rclone purge
708 Remove the path and all of its contents.
709
710 Synopsis
711 Remove the path and all of its contents. Note that this does not obey
712 include/exclude filters - everything will be removed. Use delete if
713 you want to selectively delete files.
714
715 rclone purge remote:path [flags]
716
717 Options
718 -h, --help help for purge
719
720 See the global flags page (https://rclone.org/flags/) for global op‐
721 tions not listed here.
722
723 SEE ALSO
724 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
725 commands, flags and backends.
726
727 rclone mkdir
728 Make the path if it doesn’t already exist.
729
730 Synopsis
731 Make the path if it doesn’t already exist.
732
733 rclone mkdir remote:path [flags]
734
735 Options
736 -h, --help help for mkdir
737
738 See the global flags page (https://rclone.org/flags/) for global op‐
739 tions not listed here.
740
741 SEE ALSO
742 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
743 commands, flags and backends.
744
745 rclone rmdir
746 Remove the path if empty.
747
748 Synopsis
749 Remove the path. Note that you can’t remove a path with objects in it,
750 use purge for that.
751
752 rclone rmdir remote:path [flags]
753
754 Options
755 -h, --help help for rmdir
756
757 See the global flags page (https://rclone.org/flags/) for global op‐
758 tions not listed here.
759
760 SEE ALSO
761 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
762 commands, flags and backends.
763
764 rclone check
765 Checks the files in the source and destination match.
766
767 Synopsis
768 Checks the files in the source and destination match. It compares
769 sizes and hashes (MD5 or SHA1) and logs a report of files which don’t
770 match. It doesn’t alter the source or destination.
771
772 If you supply the –size-only flag, it will only compare the sizes not
773 the hashes as well. Use this for a quick check.
774
775 If you supply the –download flag, it will download the data from both
776 remotes and check them against each other on the fly. This can be use‐
777 ful for remotes that don’t support hashes or if you really want to
778 check all the data.
779
780 If you supply the –one-way flag, it will only check that files in
781 source match the files in destination, not the other way around. Mean‐
782 ing extra files in destination that are not in the source will not
783 trigger an error.
784
785 rclone check source:path dest:path [flags]
786
787 Options
788 --download Check by downloading rather than with hash.
789 -h, --help help for check
790 --one-way Check one way only, source files must exist on remote
791
792 See the global flags page (https://rclone.org/flags/) for global op‐
793 tions not listed here.
794
795 SEE ALSO
796 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
797 commands, flags and backends.
798
799 rclone ls
800 List the objects in the path with size and path.
801
802 Synopsis
803 Lists the objects in the source path to standard output in a human
804 readable format with size and path. Recurses by default.
805
806 Eg
807
808 $ rclone ls swift:bucket
809 60295 bevajer5jef
810 90613 canole
811 94467 diwogej7
812 37600 fubuwic
813
814 Any of the filtering options can be applied to this command.
815
816 There are several related list commands
817
818 · ls to list size and path of objects only
819
820 · lsl to list modification time, size and path of objects only
821
822 · lsd to list directories only
823
824 · lsf to list objects and directories in easy to parse format
825
826 · lsjson to list objects and directories in JSON format
827
828 ls,lsl,lsd are designed to be human readable. lsf is designed to be
829 human and machine readable. lsjson is designed to be machine readable.
830
831 Note that ls and lsl recurse by default - use “–max-depth 1” to stop
832 the recursion.
833
834 The other list commands lsd,lsf,lsjson do not recurse by default - use
835 “-R” to make them recurse.
836
837 Listing a non existent directory will produce an error except for re‐
838 motes which can’t have empty directories (eg s3, swift, gcs, etc - the
839 bucket based remotes).
840
841 rclone ls remote:path [flags]
842
843 Options
844 -h, --help help for ls
845
846 See the global flags page (https://rclone.org/flags/) for global op‐
847 tions not listed here.
848
849 SEE ALSO
850 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
851 commands, flags and backends.
852
853 rclone lsd
854 List all directories/containers/buckets in the path.
855
856 Synopsis
857 Lists the directories in the source path to standard output. Does not
858 recurse by default. Use the -R flag to recurse.
859
860 This command lists the total size of the directory (if known, -1 if
861 not), the modification time (if known, the current time if not), the
862 number of objects in the directory (if known, -1 if not) and the name
863 of the directory, Eg
864
865 $ rclone lsd swift:
866 494000 2018-04-26 08:43:20 10000 10000files
867 65 2018-04-26 08:43:20 1 1File
868
869 Or
870
871 $ rclone lsd drive:test
872 -1 2016-10-17 17:41:53 -1 1000files
873 -1 2017-01-03 14:40:54 -1 2500files
874 -1 2017-07-08 14:39:28 -1 4000files
875
876 If you just want the directory names use “rclone lsf –dirs-only”.
877
878 Any of the filtering options can be applied to this command.
879
880 There are several related list commands
881
882 · ls to list size and path of objects only
883
884 · lsl to list modification time, size and path of objects only
885
886 · lsd to list directories only
887
888 · lsf to list objects and directories in easy to parse format
889
890 · lsjson to list objects and directories in JSON format
891
892 ls,lsl,lsd are designed to be human readable. lsf is designed to be
893 human and machine readable. lsjson is designed to be machine readable.
894
895 Note that ls and lsl recurse by default - use “–max-depth 1” to stop
896 the recursion.
897
898 The other list commands lsd,lsf,lsjson do not recurse by default - use
899 “-R” to make them recurse.
900
901 Listing a non existent directory will produce an error except for re‐
902 motes which can’t have empty directories (eg s3, swift, gcs, etc - the
903 bucket based remotes).
904
905 rclone lsd remote:path [flags]
906
907 Options
908 -h, --help help for lsd
909 -R, --recursive Recurse into the listing.
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
918 rclone lsl
919 List the objects in path with modification time, size and path.
920
921 Synopsis
922 Lists the objects in the source path to standard output in a human
923 readable format with modification time, size and path. Recurses by de‐
924 fault.
925
926 Eg
927
928 $ rclone lsl swift:bucket
929 60295 2016-06-25 18:55:41.062626927 bevajer5jef
930 90613 2016-06-25 18:55:43.302607074 canole
931 94467 2016-06-25 18:55:43.046609333 diwogej7
932 37600 2016-06-25 18:55:40.814629136 fubuwic
933
934 Any of the filtering options can be applied to this command.
935
936 There are several related list commands
937
938 · ls to list size and path of objects only
939
940 · lsl to list modification time, size and path of objects only
941
942 · lsd to list directories only
943
944 · lsf to list objects and directories in easy to parse format
945
946 · lsjson to list objects and directories in JSON format
947
948 ls,lsl,lsd are designed to be human readable. lsf is designed to be
949 human and machine readable. lsjson is designed to be machine readable.
950
951 Note that ls and lsl recurse by default - use “–max-depth 1” to stop
952 the recursion.
953
954 The other list commands lsd,lsf,lsjson do not recurse by default - use
955 “-R” to make them recurse.
956
957 Listing a non existent directory will produce an error except for re‐
958 motes which can’t have empty directories (eg s3, swift, gcs, etc - the
959 bucket based remotes).
960
961 rclone lsl remote:path [flags]
962
963 Options
964 -h, --help help for lsl
965
966 See the global flags page (https://rclone.org/flags/) for global op‐
967 tions not listed here.
968
969 SEE ALSO
970 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
971 commands, flags and backends.
972
973 rclone md5sum
974 Produces an md5sum file for all the objects in the path.
975
976 Synopsis
977 Produces an md5sum file for all the objects in the path. This is in
978 the same format as the standard md5sum tool produces.
979
980 rclone md5sum remote:path [flags]
981
982 Options
983 -h, --help help for md5sum
984
985 See the global flags page (https://rclone.org/flags/) for global op‐
986 tions not listed here.
987
988 SEE ALSO
989 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
990 commands, flags and backends.
991
992 rclone sha1sum
993 Produces an sha1sum file for all the objects in the path.
994
995 Synopsis
996 Produces an sha1sum file for all the objects in the path. This is in
997 the same format as the standard sha1sum tool produces.
998
999 rclone sha1sum remote:path [flags]
1000
1001 Options
1002 -h, --help help for sha1sum
1003
1004 See the global flags page (https://rclone.org/flags/) for global op‐
1005 tions not listed here.
1006
1007 SEE ALSO
1008 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1009 commands, flags and backends.
1010
1011 rclone size
1012 Prints the total size and number of objects in remote:path.
1013
1014 Synopsis
1015 Prints the total size and number of objects in remote:path.
1016
1017 rclone size remote:path [flags]
1018
1019 Options
1020 -h, --help help for size
1021 --json format output as JSON
1022
1023 See the global flags page (https://rclone.org/flags/) for global op‐
1024 tions not listed here.
1025
1026 SEE ALSO
1027 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1028 commands, flags and backends.
1029
1030 rclone version
1031 Show the version number.
1032
1033 Synopsis
1034 Show the version number, the go version and the architecture.
1035
1036 Eg
1037
1038 $ rclone version
1039 rclone v1.41
1040 - os/arch: linux/amd64
1041 - go version: go1.10
1042
1043 If you supply the –check flag, then it will do an online check to com‐
1044 pare your version with the latest release and the latest beta.
1045
1046 $ rclone version --check
1047 yours: 1.42.0.6
1048 latest: 1.42 (released 2018-06-16)
1049 beta: 1.42.0.5 (released 2018-06-17)
1050
1051 Or
1052
1053 $ rclone version --check
1054 yours: 1.41
1055 latest: 1.42 (released 2018-06-16)
1056 upgrade: https://downloads.rclone.org/v1.42
1057 beta: 1.42.0.5 (released 2018-06-17)
1058 upgrade: https://beta.rclone.org/v1.42-005-g56e1e820
1059
1060 rclone version [flags]
1061
1062 Options
1063 --check Check for new version.
1064 -h, --help help for version
1065
1066 See the global flags page (https://rclone.org/flags/) for global op‐
1067 tions not listed here.
1068
1069 SEE ALSO
1070 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1071 commands, flags and backends.
1072
1073 rclone cleanup
1074 Clean up the remote if possible
1075
1076 Synopsis
1077 Clean up the remote if possible. Empty the trash or delete old file
1078 versions. Not supported by all remotes.
1079
1080 rclone cleanup remote:path [flags]
1081
1082 Options
1083 -h, --help help for cleanup
1084
1085 See the global flags page (https://rclone.org/flags/) for global op‐
1086 tions not listed here.
1087
1088 SEE ALSO
1089 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1090 commands, flags and backends.
1091
1092 rclone dedupe
1093 Interactively find duplicate files and delete/rename them.
1094
1095 Synopsis
1096 By default dedupe interactively finds duplicate files and offers to
1097 delete all but one or rename them to be different. Only useful with
1098 Google Drive which can have duplicate file names.
1099
1100 In the first pass it will merge directories with the same name. It
1101 will do this iteratively until all the identical directories have been
1102 merged.
1103
1104 The dedupe command will delete all but one of any identical (same
1105 md5sum) files it finds without confirmation. This means that for most
1106 duplicated files the dedupe command will not be interactive. You can
1107 use --dry-run to see what would happen without doing anything.
1108
1109 Here is an example run.
1110
1111 Before - with duplicates
1112
1113 $ rclone lsl drive:dupes
1114 6048320 2016-03-05 16:23:16.798000000 one.txt
1115 6048320 2016-03-05 16:23:11.775000000 one.txt
1116 564374 2016-03-05 16:23:06.731000000 one.txt
1117 6048320 2016-03-05 16:18:26.092000000 one.txt
1118 6048320 2016-03-05 16:22:46.185000000 two.txt
1119 1744073 2016-03-05 16:22:38.104000000 two.txt
1120 564374 2016-03-05 16:22:52.118000000 two.txt
1121
1122 Now the dedupe session
1123
1124 $ rclone dedupe drive:dupes
1125 2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode.
1126 one.txt: Found 4 duplicates - deleting identical copies
1127 one.txt: Deleting 2/3 identical duplicates (md5sum "1eedaa9fe86fd4b8632e2ac549403b36")
1128 one.txt: 2 duplicates remain
1129 1: 6048320 bytes, 2016-03-05 16:23:16.798000000, md5sum 1eedaa9fe86fd4b8632e2ac549403b36
1130 2: 564374 bytes, 2016-03-05 16:23:06.731000000, md5sum 7594e7dc9fc28f727c42ee3e0749de81
1131 s) Skip and do nothing
1132 k) Keep just one (choose which in next step)
1133 r) Rename all to be different (by changing file.jpg to file-1.jpg)
1134 s/k/r> k
1135 Enter the number of the file to keep> 1
1136 one.txt: Deleted 1 extra copies
1137 two.txt: Found 3 duplicates - deleting identical copies
1138 two.txt: 3 duplicates remain
1139 1: 564374 bytes, 2016-03-05 16:22:52.118000000, md5sum 7594e7dc9fc28f727c42ee3e0749de81
1140 2: 6048320 bytes, 2016-03-05 16:22:46.185000000, md5sum 1eedaa9fe86fd4b8632e2ac549403b36
1141 3: 1744073 bytes, 2016-03-05 16:22:38.104000000, md5sum 851957f7fb6f0bc4ce76be966d336802
1142 s) Skip and do nothing
1143 k) Keep just one (choose which in next step)
1144 r) Rename all to be different (by changing file.jpg to file-1.jpg)
1145 s/k/r> r
1146 two-1.txt: renamed from: two.txt
1147 two-2.txt: renamed from: two.txt
1148 two-3.txt: renamed from: two.txt
1149
1150 The result being
1151
1152 $ rclone lsl drive:dupes
1153 6048320 2016-03-05 16:23:16.798000000 one.txt
1154 564374 2016-03-05 16:22:52.118000000 two-1.txt
1155 6048320 2016-03-05 16:22:46.185000000 two-2.txt
1156 1744073 2016-03-05 16:22:38.104000000 two-3.txt
1157
1158 Dedupe can be run non interactively using the --dedupe-mode flag or by
1159 using an extra parameter with the same value
1160
1161 · --dedupe-mode interactive - interactive as above.
1162
1163 · --dedupe-mode skip - removes identical files then skips anything
1164 left.
1165
1166 · --dedupe-mode first - removes identical files then keeps the first
1167 one.
1168
1169 · --dedupe-mode newest - removes identical files then keeps the newest
1170 one.
1171
1172 · --dedupe-mode oldest - removes identical files then keeps the oldest
1173 one.
1174
1175 · --dedupe-mode largest - removes identical files then keeps the
1176 largest one.
1177
1178 · --dedupe-mode smallest - removes identical files then keeps the
1179 smallest one.
1180
1181 · --dedupe-mode rename - removes identical files then renames the rest
1182 to be different.
1183
1184 For example to rename all the identically named photos in your Google
1185 Photos directory, do
1186
1187 rclone dedupe --dedupe-mode rename "drive:Google Photos"
1188
1189 Or
1190
1191 rclone dedupe rename "drive:Google Photos"
1192
1193 rclone dedupe [mode] remote:path [flags]
1194
1195 Options
1196 --dedupe-mode string Dedupe mode interactive|skip|first|newest|oldest|largest|smallest|rename. (default "interactive")
1197 -h, --help help for dedupe
1198
1199 See the global flags page (https://rclone.org/flags/) for global op‐
1200 tions not listed here.
1201
1202 SEE ALSO
1203 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1204 commands, flags and backends.
1205
1206 rclone about
1207 Get quota information from the remote.
1208
1209 Synopsis
1210 Get quota information from the remote, like bytes used/free/quota and
1211 bytes used in the trash. Not supported by all remotes.
1212
1213 This will print to stdout something like this:
1214
1215 Total: 17G
1216 Used: 7.444G
1217 Free: 1.315G
1218 Trashed: 100.000M
1219 Other: 8.241G
1220
1221 Where the fields are:
1222
1223 · Total: total size available.
1224
1225 · Used: total size used
1226
1227 · Free: total amount this user could upload.
1228
1229 · Trashed: total amount in the trash
1230
1231 · Other: total amount in other storage (eg Gmail, Google Photos)
1232
1233 · Objects: total number of objects in the storage
1234
1235 Note that not all the backends provide all the fields - they will be
1236 missing if they are not known for that backend. Where it is known that
1237 the value is unlimited the value will also be omitted.
1238
1239 Use the –full flag to see the numbers written out in full, eg
1240
1241 Total: 18253611008
1242 Used: 7993453766
1243 Free: 1411001220
1244 Trashed: 104857602
1245 Other: 8849156022
1246
1247 Use the –json flag for a computer readable output, eg
1248
1249 {
1250 "total": 18253611008,
1251 "used": 7993453766,
1252 "trashed": 104857602,
1253 "other": 8849156022,
1254 "free": 1411001220
1255 }
1256
1257 rclone about remote: [flags]
1258
1259 Options
1260 --full Full numbers instead of SI units
1261 -h, --help help for about
1262 --json Format output as JSON
1263
1264 See the global flags page (https://rclone.org/flags/) for global op‐
1265 tions not listed here.
1266
1267 SEE ALSO
1268 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1269 commands, flags and backends.
1270
1271 rclone authorize
1272 Remote authorization.
1273
1274 Synopsis
1275 Remote authorization. Used to authorize a remote or headless rclone
1276 from a machine with a browser - use as instructed by rclone config.
1277
1278 Use the –auth-no-open-browser to prevent rclone to open auth link in
1279 default browser automatically.
1280
1281 rclone authorize [flags]
1282
1283 Options
1284 --auth-no-open-browser Do not automatically open auth link in default browser
1285 -h, --help help for authorize
1286
1287 See the global flags page (https://rclone.org/flags/) for global op‐
1288 tions not listed here.
1289
1290 SEE ALSO
1291 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1292 commands, flags and backends.
1293
1294 rclone cachestats
1295 Print cache stats for a remote
1296
1297 Synopsis
1298 Print cache stats for a remote in JSON format
1299
1300 rclone cachestats source: [flags]
1301
1302 Options
1303 -h, --help help for cachestats
1304
1305 See the global flags page (https://rclone.org/flags/) for global op‐
1306 tions not listed here.
1307
1308 SEE ALSO
1309 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1310 commands, flags and backends.
1311
1312 rclone cat
1313 Concatenates any files and sends them to stdout.
1314
1315 Synopsis
1316 rclone cat sends any files to standard output.
1317
1318 You can use it like this to output a single file
1319
1320 rclone cat remote:path/to/file
1321
1322 Or like this to output any file in dir or subdirectories.
1323
1324 rclone cat remote:path/to/dir
1325
1326 Or like this to output any .txt files in dir or subdirectories.
1327
1328 rclone --include "*.txt" cat remote:path/to/dir
1329
1330 Use the –head flag to print characters only at the start, –tail for the
1331 end and –offset and –count to print a section in the middle. Note that
1332 if offset is negative it will count from the end, so –offset -1 –count
1333 1 is equivalent to –tail 1.
1334
1335 rclone cat remote:path [flags]
1336
1337 Options
1338 --count int Only print N characters. (default -1)
1339 --discard Discard the output instead of printing.
1340 --head int Only print the first N characters.
1341 -h, --help help for cat
1342 --offset int Start printing at offset N (or from end if -ve).
1343 --tail int Only print the last N characters.
1344
1345 See the global flags page (https://rclone.org/flags/) for global op‐
1346 tions not listed here.
1347
1348 SEE ALSO
1349 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1350 commands, flags and backends.
1351
1352 rclone config create
1353 Create a new remote with name, type and options.
1354
1355 Synopsis
1356 Create a new remote of with and options. The options should be passed
1357 in in pairs of .
1358
1359 For example to make a swift remote of name myremote using auto config
1360 you would do:
1361
1362 rclone config create myremote swift env_auth true
1363
1364 Note that if the config process would normally ask a question the de‐
1365 fault is taken. Each time that happens rclone will print a message
1366 saying how to affect the value taken.
1367
1368 If any of the parameters passed is a password field, then rclone will
1369 automatically obscure them before putting them in the config file.
1370
1371 So for example if you wanted to configure a Google Drive remote but us‐
1372 ing remote authorization you would do this:
1373
1374 rclone config create mydrive drive config_is_local false
1375
1376 rclone config create <name> <type> [<key> <value>]* [flags]
1377
1378 Options
1379 -h, --help help for create
1380
1381 See the global flags page (https://rclone.org/flags/) for global op‐
1382 tions not listed here.
1383
1384 SEE ALSO
1385 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1386 interactive configuration session.
1387
1388 rclone config delete
1389 Delete an existing remote .
1390
1391 Synopsis
1392 Delete an existing remote .
1393
1394 rclone config delete <name> [flags]
1395
1396 Options
1397 -h, --help help for delete
1398
1399 See the global flags page (https://rclone.org/flags/) for global op‐
1400 tions not listed here.
1401
1402 SEE ALSO
1403 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1404 interactive configuration session.
1405
1406 rclone config disconnect
1407 Disconnects user from remote
1408
1409 Synopsis
1410 This disconnects the remote: passed in to the cloud storage system.
1411
1412 This normally means revoking the oauth token.
1413
1414 To reconnect use “rclone config reconnect”.
1415
1416 rclone config disconnect remote: [flags]
1417
1418 Options
1419 -h, --help help for disconnect
1420
1421 See the global flags page (https://rclone.org/flags/) for global op‐
1422 tions not listed here.
1423
1424 SEE ALSO
1425 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1426 interactive configuration session.
1427
1428 rclone config dump
1429 Dump the config file as JSON.
1430
1431 Synopsis
1432 Dump the config file as JSON.
1433
1434 rclone config dump [flags]
1435
1436 Options
1437 -h, --help help for dump
1438
1439 See the global flags page (https://rclone.org/flags/) for global op‐
1440 tions not listed here.
1441
1442 SEE ALSO
1443 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1444 interactive configuration session.
1445
1446 rclone config edit
1447 Enter an interactive configuration session.
1448
1449 Synopsis
1450 Enter an interactive configuration session where you can setup new re‐
1451 motes and manage existing ones. You may also set or remove a password
1452 to protect your configuration.
1453
1454 rclone config edit [flags]
1455
1456 Options
1457 -h, --help help for edit
1458
1459 See the global flags page (https://rclone.org/flags/) for global op‐
1460 tions not listed here.
1461
1462 SEE ALSO
1463 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1464 interactive configuration session.
1465
1466 rclone config file
1467 Show path of configuration file in use.
1468
1469 Synopsis
1470 Show path of configuration file in use.
1471
1472 rclone config file [flags]
1473
1474 Options
1475 -h, --help help for file
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 config (https://rclone.org/commands/rclone_config/) - Enter an
1482 interactive configuration session.
1483
1484 rclone config password
1485 Update password in an existing remote.
1486
1487 Synopsis
1488 Update an existing remote’s password. The password should be passed in
1489 in pairs of .
1490
1491 For example to set password of a remote of name myremote you would do:
1492
1493 rclone config password myremote fieldname mypassword
1494
1495 This command is obsolete now that “config update” and “config create”
1496 both support obscuring passwords directly.
1497
1498 rclone config password <name> [<key> <value>]+ [flags]
1499
1500 Options
1501 -h, --help help for password
1502
1503 See the global flags page (https://rclone.org/flags/) for global op‐
1504 tions not listed here.
1505
1506 SEE ALSO
1507 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1508 interactive configuration session.
1509
1510 rclone config providers
1511 List in JSON format all the providers and options.
1512
1513 Synopsis
1514 List in JSON format all the providers and options.
1515
1516 rclone config providers [flags]
1517
1518 Options
1519 -h, --help help for providers
1520
1521 See the global flags page (https://rclone.org/flags/) for global op‐
1522 tions not listed here.
1523
1524 SEE ALSO
1525 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1526 interactive configuration session.
1527
1528 rclone config reconnect
1529 Re-authenticates user with remote.
1530
1531 Synopsis
1532 This reconnects remote: passed in to the cloud storage system.
1533
1534 To disconnect the remote use “rclone config disconnect”.
1535
1536 This normally means going through the interactive oauth flow again.
1537
1538 rclone config reconnect remote: [flags]
1539
1540 Options
1541 -h, --help help for reconnect
1542
1543 See the global flags page (https://rclone.org/flags/) for global op‐
1544 tions not listed here.
1545
1546 SEE ALSO
1547 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1548 interactive configuration session.
1549
1550 rclone config show
1551 Print (decrypted) config file, or the config for a single remote.
1552
1553 Synopsis
1554 Print (decrypted) config file, or the config for a single remote.
1555
1556 rclone config show [<remote>] [flags]
1557
1558 Options
1559 -h, --help help for show
1560
1561 See the global flags page (https://rclone.org/flags/) for global op‐
1562 tions not listed here.
1563
1564 SEE ALSO
1565 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1566 interactive configuration session.
1567
1568 rclone config update
1569 Update options in an existing remote.
1570
1571 Synopsis
1572 Update an existing remote’s options. The options should be passed in
1573 in pairs of .
1574
1575 For example to update the env_auth field of a remote of name myremote
1576 you would do:
1577
1578 rclone config update myremote swift env_auth true
1579
1580 If any of the parameters passed is a password field, then rclone will
1581 automatically obscure them before putting them in the config file.
1582
1583 If the remote uses oauth the token will be updated, if you don’t re‐
1584 quire this add an extra parameter thus:
1585
1586 rclone config update myremote swift env_auth true config_refresh_token false
1587
1588 rclone config update <name> [<key> <value>]+ [flags]
1589
1590 Options
1591 -h, --help help for update
1592
1593 See the global flags page (https://rclone.org/flags/) for global op‐
1594 tions not listed here.
1595
1596 SEE ALSO
1597 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1598 interactive configuration session.
1599
1600 rclone config userinfo
1601 Prints info about logged in user of remote.
1602
1603 Synopsis
1604 This prints the details of the person logged in to the cloud storage
1605 system.
1606
1607 rclone config userinfo remote: [flags]
1608
1609 Options
1610 -h, --help help for userinfo
1611 --json Format output as JSON
1612
1613 See the global flags page (https://rclone.org/flags/) for global op‐
1614 tions not listed here.
1615
1616 SEE ALSO
1617 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1618 interactive configuration session.
1619
1620 rclone copyto
1621 Copy files from source to dest, skipping already copied
1622
1623 Synopsis
1624 If source:path is a file or directory then it copies it to a file or
1625 directory named dest:path.
1626
1627 This can be used to upload single files to other than their current
1628 name. If the source is a directory then it acts exactly like the copy
1629 command.
1630
1631 So
1632
1633 rclone copyto src dst
1634
1635 where src and dst are rclone paths, either remote:path or /path/to/lo‐
1636 cal or C:.
1637
1638 This will:
1639
1640 if src is file
1641 copy it to dst, overwriting an existing file if it exists
1642 if src is directory
1643 copy it to dst, overwriting existing files if they exist
1644 see copy command for full details
1645
1646 This doesn’t transfer unchanged files, testing by size and modification
1647 time or MD5SUM. It doesn’t delete files from the destination.
1648
1649 Note: Use the -P/--progress flag to view real-time transfer statistics
1650
1651 rclone copyto source:path dest:path [flags]
1652
1653 Options
1654 -h, --help help for copyto
1655
1656 See the global flags page (https://rclone.org/flags/) for global op‐
1657 tions not listed here.
1658
1659 SEE ALSO
1660 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1661 commands, flags and backends.
1662
1663 rclone copyurl
1664 Copy url content to dest.
1665
1666 Synopsis
1667 Download a URL’s content and copy it to the destination without saving
1668 it in temporary storage.
1669
1670 Setting –auto-filename will cause the file name to be retreived from
1671 the from URL (after any redirections) and used in the destination path.
1672
1673 Setting –stdout or making the output file name “-” will cause the out‐
1674 put to be written to standard output.
1675
1676 rclone copyurl https://example.com dest:path [flags]
1677
1678 Options
1679 -a, --auto-filename Get the file name from the URL and use it for destination file path
1680 -h, --help help for copyurl
1681 --stdout Write the output to stdout rather than a file
1682
1683 See the global flags page (https://rclone.org/flags/) for global op‐
1684 tions not listed here.
1685
1686 SEE ALSO
1687 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1688 commands, flags and backends.
1689
1690 rclone cryptcheck
1691 Cryptcheck checks the integrity of a crypted remote.
1692
1693 Synopsis
1694 rclone cryptcheck checks a remote against a crypted remote. This is
1695 the equivalent of running rclone check, but able to check the checksums
1696 of the crypted remote.
1697
1698 For it to work the underlying remote of the cryptedremote must support
1699 some kind of checksum.
1700
1701 It works by reading the nonce from each file on the cryptedremote: and
1702 using that to encrypt each file on the remote:. It then checks the
1703 checksum of the underlying file on the cryptedremote: against the
1704 checksum of the file it has just encrypted.
1705
1706 Use it like this
1707
1708 rclone cryptcheck /path/to/files encryptedremote:path
1709
1710 You can use it like this also, but that will involve downloading all
1711 the files in remote:path.
1712
1713 rclone cryptcheck remote:path encryptedremote:path
1714
1715 After it has run it will log the status of the encryptedremote:.
1716
1717 If you supply the –one-way flag, it will only check that files in
1718 source match the files in destination, not the other way around. Mean‐
1719 ing extra files in destination that are not in the source will not
1720 trigger an error.
1721
1722 rclone cryptcheck remote:path cryptedremote:path [flags]
1723
1724 Options
1725 -h, --help help for cryptcheck
1726 --one-way Check one way only, source files must exist on destination
1727
1728 See the global flags page (https://rclone.org/flags/) for global op‐
1729 tions not listed here.
1730
1731 SEE ALSO
1732 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1733 commands, flags and backends.
1734
1735 rclone cryptdecode
1736 Cryptdecode returns unencrypted file names.
1737
1738 Synopsis
1739 rclone cryptdecode returns unencrypted file names when provided with a
1740 list of encrypted file names. List limit is 10 items.
1741
1742 If you supply the –reverse flag, it will return encrypted file names.
1743
1744 use it like this
1745
1746 rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
1747
1748 rclone cryptdecode --reverse encryptedremote: filename1 filename2
1749
1750 rclone cryptdecode encryptedremote: encryptedfilename [flags]
1751
1752 Options
1753 -h, --help help for cryptdecode
1754 --reverse Reverse cryptdecode, encrypts filenames
1755
1756 See the global flags page (https://rclone.org/flags/) for global op‐
1757 tions not listed here.
1758
1759 SEE ALSO
1760 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1761 commands, flags and backends.
1762
1763 rclone dbhashsum
1764 Produces a Dropbox hash file for all the objects in the path.
1765
1766 Synopsis
1767 Produces a Dropbox hash file for all the objects in the path. The
1768 hashes are calculated according to Dropbox content hash rules
1769 (https://www.dropbox.com/developers/reference/content-hash). The out‐
1770 put is in the same format as md5sum and sha1sum.
1771
1772 rclone dbhashsum remote:path [flags]
1773
1774 Options
1775 -h, --help help for dbhashsum
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
1784 rclone deletefile
1785 Remove a single file from remote.
1786
1787 Synopsis
1788 Remove a single file from remote. Unlike delete it cannot be used to
1789 remove a directory and it doesn’t obey include/exclude filters - if the
1790 specified file exists, it will always be removed.
1791
1792 rclone deletefile remote:path [flags]
1793
1794 Options
1795 -h, --help help for deletefile
1796
1797 See the global flags page (https://rclone.org/flags/) for global op‐
1798 tions not listed here.
1799
1800 SEE ALSO
1801 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1802 commands, flags and backends.
1803
1804 rclone genautocomplete
1805 Output completion script for a given shell.
1806
1807 Synopsis
1808 Generates a shell completion script for rclone. Run with –help to list
1809 the supported shells.
1810
1811 Options
1812 -h, --help help for genautocomplete
1813
1814 See the global flags page (https://rclone.org/flags/) for global op‐
1815 tions not listed here.
1816
1817 SEE ALSO
1818 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1819 commands, flags and backends.
1820
1821 · rclone genautocomplete bash (https://rclone.org/commands/rclone_ge‐
1822 nautocomplete_bash/) - Output bash completion script for rclone.
1823
1824 · rclone genautocomplete zsh (https://rclone.org/commands/rclone_genau‐
1825 tocomplete_zsh/) - Output zsh completion script for rclone.
1826
1827 rclone genautocomplete bash
1828 Output bash completion script for rclone.
1829
1830 Synopsis
1831 Generates a bash shell autocompletion script for rclone.
1832
1833 This writes to /etc/bash_completion.d/rclone by default so will proba‐
1834 bly need to be run with sudo or as root, eg
1835
1836 sudo rclone genautocomplete bash
1837
1838 Logout and login again to use the autocompletion scripts, or source
1839 them directly
1840
1841 . /etc/bash_completion
1842
1843 If you supply a command line argument the script will be written there.
1844
1845 rclone genautocomplete bash [output_file] [flags]
1846
1847 Options
1848 -h, --help help for bash
1849
1850 See the global flags page (https://rclone.org/flags/) for global op‐
1851 tions not listed here.
1852
1853 SEE ALSO
1854 · rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
1855 complete/) - Output completion script for a given shell.
1856
1857 rclone genautocomplete zsh
1858 Output zsh completion script for rclone.
1859
1860 Synopsis
1861 Generates a zsh autocompletion script for rclone.
1862
1863 This writes to /usr/share/zsh/vendor-completions/_rclone by default so
1864 will probably need to be run with sudo or as root, eg
1865
1866 sudo rclone genautocomplete zsh
1867
1868 Logout and login again to use the autocompletion scripts, or source
1869 them directly
1870
1871 autoload -U compinit && compinit
1872
1873 If you supply a command line argument the script will be written there.
1874
1875 rclone genautocomplete zsh [output_file] [flags]
1876
1877 Options
1878 -h, --help help for zsh
1879
1880 See the global flags page (https://rclone.org/flags/) for global op‐
1881 tions not listed here.
1882
1883 SEE ALSO
1884 · rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
1885 complete/) - Output completion script for a given shell.
1886
1887 rclone gendocs
1888 Output markdown docs for rclone to the directory supplied.
1889
1890 Synopsis
1891 This produces markdown docs for the rclone commands to the directory
1892 supplied. These are in a format suitable for hugo to render into the
1893 rclone.org website.
1894
1895 rclone gendocs output_directory [flags]
1896
1897 Options
1898 -h, --help help for gendocs
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 hashsum
1908 Produces an hashsum file for all the objects in the path.
1909
1910 Synopsis
1911 Produces a hash file for all the objects in the path using the hash
1912 named. The output is in the same format as the standard md5sum/sha1sum
1913 tool.
1914
1915 Run without a hash to see the list of supported hashes, eg
1916
1917 $ rclone hashsum
1918 Supported hashes are:
1919 * MD5
1920 * SHA-1
1921 * DropboxHash
1922 * QuickXorHash
1923
1924 Then
1925
1926 $ rclone hashsum MD5 remote:path
1927
1928 rclone hashsum <hash> remote:path [flags]
1929
1930 Options
1931 --base64 Output base64 encoded hashsum
1932 -h, --help help for hashsum
1933
1934 See the global flags page (https://rclone.org/flags/) for global op‐
1935 tions not listed here.
1936
1937 SEE ALSO
1938 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1939 commands, flags and backends.
1940
1941 rclone link
1942 Generate public link to file/folder.
1943
1944 Synopsis
1945 rclone link will create or retrieve a public link to the given file or
1946 folder.
1947
1948 rclone link remote:path/to/file
1949 rclone link remote:path/to/folder/
1950
1951 If successful, the last line of the output will contain the link. Ex‐
1952 act capabilities depend on the remote, but the link will always be cre‐
1953 ated with the least constraints – e.g. no expiry, no password protec‐
1954 tion, accessible without account.
1955
1956 rclone link remote:path [flags]
1957
1958 Options
1959 -h, --help help for link
1960
1961 See the global flags page (https://rclone.org/flags/) for global op‐
1962 tions not listed here.
1963
1964 SEE ALSO
1965 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1966 commands, flags and backends.
1967
1968 rclone listremotes
1969 List all the remotes in the config file.
1970
1971 Synopsis
1972 rclone listremotes lists all the available remotes from the config
1973 file.
1974
1975 When uses with the -l flag it lists the types too.
1976
1977 rclone listremotes [flags]
1978
1979 Options
1980 -h, --help help for listremotes
1981 --long Show the type as well as names.
1982
1983 See the global flags page (https://rclone.org/flags/) for global op‐
1984 tions not listed here.
1985
1986 SEE ALSO
1987 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1988 commands, flags and backends.
1989
1990 rclone lsf
1991 List directories and objects in remote:path formatted for parsing
1992
1993 Synopsis
1994 List the contents of the source path (directories and objects) to stan‐
1995 dard output in a form which is easy to parse by scripts. By default
1996 this will just be the names of the objects and directories, one per
1997 line. The directories will have a / suffix.
1998
1999 Eg
2000
2001 $ rclone lsf swift:bucket
2002 bevajer5jef
2003 canole
2004 diwogej7
2005 ferejej3gux/
2006 fubuwic
2007
2008 Use the –format option to control what gets listed. By default this is
2009 just the path, but you can use these parameters to control the output:
2010
2011 p - path
2012 s - size
2013 t - modification time
2014 h - hash
2015 i - ID of object
2016 o - Original ID of underlying object
2017 m - MimeType of object if known
2018 e - encrypted name
2019 T - tier of storage if known, eg "Hot" or "Cool"
2020
2021 So if you wanted the path, size and modification time, you would use
2022 –format “pst”, or maybe –format “tsp” to put the path last.
2023
2024 Eg
2025
2026 $ rclone lsf --format "tsp" swift:bucket
2027 2016-06-25 18:55:41;60295;bevajer5jef
2028 2016-06-25 18:55:43;90613;canole
2029 2016-06-25 18:55:43;94467;diwogej7
2030 2018-04-26 08:50:45;0;ferejej3gux/
2031 2016-06-25 18:55:40;37600;fubuwic
2032
2033 If you specify “h” in the format you will get the MD5 hash by default,
2034 use the “–hash” flag to change which hash you want. Note that this can
2035 be returned as an empty string if it isn’t available on the object (and
2036 for directories), “ERROR” if there was an error reading it from the ob‐
2037 ject and “UNSUPPORTED” if that object does not support that hash type.
2038
2039 For example to emulate the md5sum command you can use
2040
2041 rclone lsf -R --hash MD5 --format hp --separator " " --files-only .
2042
2043 Eg
2044
2045 $ rclone lsf -R --hash MD5 --format hp --separator " " --files-only swift:bucket
2046 7908e352297f0f530b84a756f188baa3 bevajer5jef
2047 cd65ac234e6fea5925974a51cdd865cc canole
2048 03b5341b4f234b9d984d03ad076bae91 diwogej7
2049 8fd37c3810dd660778137ac3a66cc06d fubuwic
2050 99713e14a4c4ff553acaf1930fad985b gixacuh7ku
2051
2052 (Though “rclone md5sum .” is an easier way of typing this.)
2053
2054 By default the separator is “;” this can be changed with the –separator
2055 flag. Note that separators aren’t escaped in the path so putting it
2056 last is a good strategy.
2057
2058 Eg
2059
2060 $ rclone lsf --separator "," --format "tshp" swift:bucket
2061 2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
2062 2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole
2063 2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7
2064 2018-04-26 08:52:53,0,,ferejej3gux/
2065 2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic
2066
2067 You can output in CSV standard format. This will escape things in " if
2068 they contain ,
2069
2070 Eg
2071
2072 $ rclone lsf --csv --files-only --format ps remote:path
2073 test.log,22355
2074 test.sh,449
2075 "this file contains a comma, in the file name.txt",6
2076
2077 Note that the –absolute parameter is useful for making lists of files
2078 to pass to an rclone copy with the –files-from flag.
2079
2080 For example to find all the files modified within one day and copy
2081 those only (without traversing the whole directory structure):
2082
2083 rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
2084 rclone copy --files-from new_files /path/to/local remote:path
2085
2086 Any of the filtering options can be applied to this command.
2087
2088 There are several related list commands
2089
2090 · ls to list size and path of objects only
2091
2092 · lsl to list modification time, size and path of objects only
2093
2094 · lsd to list directories only
2095
2096 · lsf to list objects and directories in easy to parse format
2097
2098 · lsjson to list objects and directories in JSON format
2099
2100 ls,lsl,lsd are designed to be human readable. lsf is designed to be
2101 human and machine readable. lsjson is designed to be machine readable.
2102
2103 Note that ls and lsl recurse by default - use “–max-depth 1” to stop
2104 the recursion.
2105
2106 The other list commands lsd,lsf,lsjson do not recurse by default - use
2107 “-R” to make them recurse.
2108
2109 Listing a non existent directory will produce an error except for re‐
2110 motes which can’t have empty directories (eg s3, swift, gcs, etc - the
2111 bucket based remotes).
2112
2113 rclone lsf remote:path [flags]
2114
2115 Options
2116 --absolute Put a leading / in front of path names.
2117 --csv Output in CSV format.
2118 -d, --dir-slash Append a slash to directory names. (default true)
2119 --dirs-only Only list directories.
2120 --files-only Only list files.
2121 -F, --format string Output format - see help for details (default "p")
2122 --hash h Use this hash when h is used in the format MD5|SHA-1|DropboxHash (default "MD5")
2123 -h, --help help for lsf
2124 -R, --recursive Recurse into the listing.
2125 -s, --separator string Separator for the items in the format. (default ";")
2126
2127 See the global flags page (https://rclone.org/flags/) for global op‐
2128 tions not listed here.
2129
2130 SEE ALSO
2131 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2132 commands, flags and backends.
2133
2134 rclone lsjson
2135 List directories and objects in the path in JSON format.
2136
2137 Synopsis
2138 List directories and objects in the path in JSON format.
2139
2140 The output is an array of Items, where each Item looks like this
2141
2142 { “Hashes” : { “SHA-1” : “f572d396fae9206628714fb2ce00f72e94f2258f”,
2143 “MD5” : “b1946ac92492d2347c6235b4d2611184”, “DropboxHash” :
2144 “ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc” },
2145 “ID”: “y2djkhiujf83u33”, “OrigID”: “UYOJVTUW00Q1RzTDA”, “IsBucket” :
2146 false, “IsDir” : false, “MimeType” : “application/octet-stream”, “Mod‐
2147 Time” : “2017-05-31T16:15:57.034468261+01:00”, “Name” : “file.txt”,
2148 “Encrypted” : “v0qpsdq8anpci8n929v3uu9338”, “EncryptedPath” :
2149 “kja9098349023498/v0qpsdq8anpci8n929v3uu9338”, “Path” :
2150 “full/path/goes/here/file.txt”, “Size” : 6, “Tier” : “hot”, }
2151
2152 If –hash is not specified the Hashes property won’t be emitted.
2153
2154 If –no-modtime is specified then ModTime will be blank. This can speed
2155 things up on remotes where reading the ModTime takes an extra request
2156 (eg s3, swift).
2157
2158 If –no-mimetype is specified then MimeType will be blank. This can
2159 speed things up on remotes where reading the MimeType takes an extra
2160 request (eg s3, swift).
2161
2162 If –encrypted is not specified the Encrypted won’t be emitted.
2163
2164 If –dirs-only is not specified files in addition to directories are re‐
2165 turned
2166
2167 If –files-only is not specified directories in addition to the files
2168 will be returned.
2169
2170 The Path field will only show folders below the remote path being list‐
2171 ed. If “remote:path” contains the file “subfolder/file.txt”, the Path
2172 for “file.txt” will be “subfolder/file.txt”, not “remote:path/subfold‐
2173 er/file.txt”. When used without –recursive the Path will always be the
2174 same as Name.
2175
2176 If the directory is a bucket in a bucket based backend, then “IsBucket”
2177 will be set to true. This key won’t be present unless it is “true”.
2178
2179 The time is in RFC3339 format with up to nanosecond precision. The
2180 number of decimal digits in the seconds will depend on the precision
2181 that the remote can hold the times, so if times are accurate to the
2182 nearest millisecond (eg Google Drive) then 3 digits will always be
2183 shown (“2017-05-31T16:15:57.034+01:00”) whereas if the times are accu‐
2184 rate to the nearest second (Dropbox, Box, WebDav etc) no digits will be
2185 shown (“2017-05-31T16:15:57+01:00”).
2186
2187 The whole output can be processed as a JSON blob, or alternatively it
2188 can be processed line by line as each item is written one to a line.
2189
2190 Any of the filtering options can be applied to this command.
2191
2192 There are several related list commands
2193
2194 · ls to list size and path of objects only
2195
2196 · lsl to list modification time, size and path of objects only
2197
2198 · lsd to list directories only
2199
2200 · lsf to list objects and directories in easy to parse format
2201
2202 · lsjson to list objects and directories in JSON format
2203
2204 ls,lsl,lsd are designed to be human readable. lsf is designed to be
2205 human and machine readable. lsjson is designed to be machine readable.
2206
2207 Note that ls and lsl recurse by default - use “–max-depth 1” to stop
2208 the recursion.
2209
2210 The other list commands lsd,lsf,lsjson do not recurse by default - use
2211 “-R” to make them recurse.
2212
2213 Listing a non existent directory will produce an error except for re‐
2214 motes which can’t have empty directories (eg s3, swift, gcs, etc - the
2215 bucket based remotes).
2216
2217 rclone lsjson remote:path [flags]
2218
2219 Options
2220 --dirs-only Show only directories in the listing.
2221 -M, --encrypted Show the encrypted names.
2222 --files-only Show only files in the listing.
2223 --hash Include hashes in the output (may take longer).
2224 -h, --help help for lsjson
2225 --no-mimetype Don't read the mime type (can speed things up).
2226 --no-modtime Don't read the modification time (can speed things up).
2227 --original Show the ID of the underlying Object.
2228 -R, --recursive Recurse into the listing.
2229
2230 See the global flags page (https://rclone.org/flags/) for global op‐
2231 tions not listed here.
2232
2233 SEE ALSO
2234 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2235 commands, flags and backends.
2236
2237 rclone mount
2238 Mount the remote as file system on a mountpoint.
2239
2240 Synopsis
2241 rclone mount allows Linux, FreeBSD, macOS and Windows to mount any of
2242 Rclone’s cloud storage systems as a file system with FUSE.
2243
2244 First set up your remote using rclone config. Check it works with
2245 rclone ls etc.
2246
2247 Start the mount like this
2248
2249 rclone mount remote:path/to/files /path/to/local/mount
2250
2251 Or on Windows like this where X: is an unused drive letter
2252
2253 rclone mount remote:path/to/files X:
2254
2255 When the program ends, either via Ctrl+C or receiving a SIGINT or
2256 SIGTERM signal, the mount is automatically stopped.
2257
2258 The umount operation can fail, for example when the mountpoint is busy.
2259 When that happens, it is the user’s responsibility to stop the mount
2260 manually with
2261
2262 # Linux
2263 fusermount -u /path/to/local/mount
2264 # OS X
2265 umount /path/to/local/mount
2266
2267 Installing on Windows
2268 To run rclone mount on Windows, you will need to download and install
2269 WinFsp (http://www.secfs.net/winfsp/).
2270
2271 WinFsp is an open source (https://github.com/billziss-gh/winfsp) Win‐
2272 dows File System Proxy which makes it easy to write user space file
2273 systems for Windows. It provides a FUSE emulation layer which rclone
2274 uses combination with cgofuse (https://github.com/billziss-gh/cgofuse).
2275 Both of these packages are by Bill Zissimopoulos who was very helpful
2276 during the implementation of rclone mount for Windows.
2277
2278 Windows caveats
2279 Note that drives created as Administrator are not visible by other ac‐
2280 counts (including the account that was elevated as Administrator). So
2281 if you start a Windows drive from an Administrative Command Prompt and
2282 then try to access the same drive from Explorer (which does not run as
2283 Administrator), you will not be able to see the new drive.
2284
2285 The easiest way around this is to start the drive from a normal command
2286 prompt. It is also possible to start a drive from the SYSTEM account
2287 (using the WinFsp.Launcher infrastructure (https://github.com/billziss-
2288 gh/winfsp/wiki/WinFsp-Service-Architecture)) which creates drives ac‐
2289 cessible for everyone on the system or alternatively using the nssm
2290 service manager (https://nssm.cc/usage).
2291
2292 Limitations
2293 Without the use of “–vfs-cache-mode” this can only write files sequen‐
2294 tially, it can only seek when reading. This means that many applica‐
2295 tions won’t work with their files on an rclone mount without
2296 “–vfs-cache-mode writes” or “–vfs-cache-mode full”. See the File
2297 Caching section for more info.
2298
2299 The bucket based remotes (eg Swift, S3, Google Compute Storage, B2, Hu‐
2300 bic) do not support the concept of empty directories, so empty directo‐
2301 ries will have a tendency to disappear once they fall out of the direc‐
2302 tory cache.
2303
2304 Only supported on Linux, FreeBSD, OS X and Windows at the moment.
2305
2306 rclone mount vs rclone sync/copy
2307 File systems expect things to be 100% reliable, whereas cloud storage
2308 systems are a long way from 100% reliable. The rclone sync/copy com‐
2309 mands cope with this with lots of retries. However rclone mount can’t
2310 use retries in the same way without making local copies of the uploads.
2311 Look at the file caching for solutions to make mount more reliable.
2312
2313 Attribute caching
2314 You can use the flag –attr-timeout to set the time the kernel caches
2315 the attributes (size, modification time etc) for directory entries.
2316
2317 The default is “1s” which caches files just long enough to avoid too
2318 many callbacks to rclone from the kernel.
2319
2320 In theory 0s should be the correct value for filesystems which can
2321 change outside the control of the kernel. However this causes quite a
2322 few problems such as rclone using too much memory
2323 (https://github.com/rclone/rclone/issues/2157), rclone not serving
2324 files to samba (https://forum.rclone.org/t/rclone-1-39-vs-1-40-mount-
2325 issue/5112) and excessive time listing directories
2326 (https://github.com/rclone/rclone/issues/2095#issuecomment-371141147).
2327
2328 The kernel can cache the info about a file for the time given by “–at‐
2329 tr-timeout”. You may see corruption if the remote file changes length
2330 during this window. It will show up as either a truncated file or a
2331 file with garbage on the end. With “–attr-timeout 1s” this is very un‐
2332 likely but not impossible. The higher you set “–attr-timeout” the more
2333 likely it is. The default setting of “1s” is the lowest setting which
2334 mitigates the problems above.
2335
2336 If you set it higher (`10s' or `1m' say) then the kernel will call back
2337 to rclone less often making it more efficient, however there is more
2338 chance of the corruption issue above.
2339
2340 If files don’t change on the remote outside of the control of rclone
2341 then there is no chance of corruption.
2342
2343 This is the same as setting the attr_timeout option in mount.fuse.
2344
2345 Filters
2346 Note that all the rclone filters can be used to select a subset of the
2347 files to be visible in the mount.
2348
2349 systemd
2350 When running rclone mount as a systemd service, it is possible to use
2351 Type=notify. In this case the service will enter the started state af‐
2352 ter the mountpoint has been successfully set up. Units having the
2353 rclone mount service specified as a requirement will see all files and
2354 folders immediately in this mode.
2355
2356 chunked reading
2357 –vfs-read-chunk-size will enable reading the source objects in parts.
2358 This can reduce the used download quota for some remotes by requesting
2359 only chunks from the remote that are actually read at the cost of an
2360 increased number of requests.
2361
2362 When –vfs-read-chunk-size-limit is also specified and greater than
2363 –vfs-read-chunk-size, the chunk size for each open file will get dou‐
2364 bled for each chunk read, until the specified value is reached. A val‐
2365 ue of -1 will disable the limit and the chunk size will grow indefi‐
2366 nitely.
2367
2368 With –vfs-read-chunk-size 100M and –vfs-read-chunk-size-limit 0 the
2369 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
2370 300M-400M and so on. When –vfs-read-chunk-size-limit 500M is speci‐
2371 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
2372 1200M-1700M and so on.
2373
2374 Chunked reading will only work with –vfs-cache-mode < full, as the file
2375 will always be copied to the vfs cache before opening with
2376 –vfs-cache-mode full.
2377
2378 Directory Cache
2379 Using the --dir-cache-time flag, you can set how long a directory
2380 should be considered up to date and not refreshed from the backend.
2381 Changes made locally in the mount may appear immediately or invalidate
2382 the cache. However, changes done on the remote will only be picked up
2383 once the cache expires.
2384
2385 Alternatively, you can send a SIGHUP signal to rclone for it to flush
2386 all directory caches, regardless of how old they are. Assuming only
2387 one rclone instance is running, you can reset the cache like this:
2388
2389 kill -SIGHUP $(pidof rclone)
2390
2391 If you configure rclone with a remote control (/rc) then you can use
2392 rclone rc to flush the whole directory cache:
2393
2394 rclone rc vfs/forget
2395
2396 Or individual files or directories:
2397
2398 rclone rc vfs/forget file=path/to/file dir=path/to/dir
2399
2400 File Buffering
2401 The --buffer-size flag determines the amount of memory, that will be
2402 used to buffer data in advance.
2403
2404 Each open file descriptor will try to keep the specified amount of data
2405 in memory at all times. The buffered data is bound to one file de‐
2406 scriptor and won’t be shared between multiple open file descriptors of
2407 the same file.
2408
2409 This flag is a upper limit for the used memory per file descriptor.
2410 The buffer will only use memory for data that is downloaded but not not
2411 yet read. If the buffer is empty, only a small amount of memory will
2412 be used. The maximum memory used by rclone for buffering can be up to
2413 --buffer-size * open files.
2414
2415 File Caching
2416 These flags control the VFS file caching options. The VFS layer is
2417 used by rclone mount to make a cloud storage system work more like a
2418 normal file system.
2419
2420 You’ll need to enable VFS caching if you want, for example, to read and
2421 write simultaneously to a file. See below for more details.
2422
2423 Note that the VFS cache works in addition to the cache backend and you
2424 may find that you need one or the other or both.
2425
2426 --cache-dir string Directory rclone will use for caching.
2427 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
2428 --vfs-cache-mode string Cache mode off|minimal|writes|full (default "off")
2429 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
2430 --vfs-cache-max-size int Max total size of objects in the cache. (default off)
2431
2432 If run with -vv rclone will print the location of the file cache. The
2433 files are stored in the user cache file area which is OS dependent but
2434 can be controlled with --cache-dir or setting the appropriate environ‐
2435 ment variable.
2436
2437 The cache has 4 different modes selected by --vfs-cache-mode. The
2438 higher the cache mode the more compatible rclone becomes at the cost of
2439 using disk space.
2440
2441 Note that files are written back to the remote only when they are
2442 closed so if rclone is quit or dies with open files then these won’t
2443 get written back to the remote. However they will still be in the on
2444 disk cache.
2445
2446 If using –vfs-cache-max-size note that the cache may exceed this size
2447 for two reasons. Firstly because it is only checked every
2448 –vfs-cache-poll-interval. Secondly because open files cannot be evict‐
2449 ed from the cache.
2450
2451 –vfs-cache-mode off
2452 In this mode the cache will read directly from the remote and write di‐
2453 rectly to the remote without caching anything on disk.
2454
2455 This will mean some operations are not possible
2456
2457 · Files can’t be opened for both read AND write
2458
2459 · Files opened for write can’t be seeked
2460
2461 · Existing files opened for write must have O_TRUNC set
2462
2463 · Files open for read with O_TRUNC will be opened write only
2464
2465 · Files open for write only will behave as if O_TRUNC was supplied
2466
2467 · Open modes O_APPEND, O_TRUNC are ignored
2468
2469 · If an upload fails it can’t be retried
2470
2471 –vfs-cache-mode minimal
2472 This is very similar to “off” except that files opened for read AND
2473 write will be buffered to disks. This means that files opened for
2474 write will be a lot more compatible, but uses the minimal disk space.
2475
2476 These operations are not possible
2477
2478 · Files opened for write only can’t be seeked
2479
2480 · Existing files opened for write must have O_TRUNC set
2481
2482 · Files opened for write only will ignore O_APPEND, O_TRUNC
2483
2484 · If an upload fails it can’t be retried
2485
2486 –vfs-cache-mode writes
2487 In this mode files opened for read only are still read directly from
2488 the remote, write only and read/write files are buffered to disk first.
2489
2490 This mode should support all normal file system operations.
2491
2492 If an upload fails it will be retried up to –low-level-retries times.
2493
2494 –vfs-cache-mode full
2495 In this mode all reads and writes are buffered to and from disk. When
2496 a file is opened for read it will be downloaded in its entirety first.
2497
2498 This may be appropriate for your needs, or you may prefer to look at
2499 the cache backend which does a much more sophisticated job of caching,
2500 including caching directory hierarchies and chunks of files.
2501
2502 In this mode, unlike the others, when a file is written to the disk, it
2503 will be kept on the disk after it is written to the remote. It will be
2504 purged on a schedule according to --vfs-cache-max-age.
2505
2506 This mode should support all normal file system operations.
2507
2508 If an upload or download fails it will be retried up to –low-level-re‐
2509 tries times.
2510
2511 rclone mount remote:path /path/to/mountpoint [flags]
2512
2513 Options
2514 --allow-non-empty Allow mounting over a non-empty directory.
2515 --allow-other Allow access to other users.
2516 --allow-root Allow access to root user.
2517 --attr-timeout duration Time for which file/directory attributes are cached. (default 1s)
2518 --daemon Run mount as a daemon (background mode).
2519 --daemon-timeout duration Time limit for rclone to respond to kernel (not supported by all OSes).
2520 --debug-fuse Debug the FUSE internals - needs -v.
2521 --default-permissions Makes kernel enforce access control based on the file mode.
2522 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
2523 --dir-perms FileMode Directory permissions (default 0777)
2524 --file-perms FileMode File permissions (default 0666)
2525 --fuse-flag stringArray Flags or arguments to be passed direct to libfuse/WinFsp. Repeat if required.
2526 --gid uint32 Override the gid field set by the filesystem. (default 1000)
2527 -h, --help help for mount
2528 --max-read-ahead SizeSuffix The number of bytes that can be prefetched for sequential reads. (default 128k)
2529 --no-checksum Don't compare checksums on up/download.
2530 --no-modtime Don't read/write the modification time (can speed things up).
2531 --no-seek Don't allow seeking in files.
2532 -o, --option stringArray Option for libfuse/WinFsp. Repeat if required.
2533 --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)
2534 --read-only Mount read-only.
2535 --uid uint32 Override the uid field set by the filesystem. (default 1000)
2536 --umask int Override the permission bits set by the filesystem.
2537 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
2538 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
2539 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
2540 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
2541 --vfs-case-insensitive If a file name not found, find a case insensitive match.
2542 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
2543 --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)
2544 --volname string Set the volume name (not supported by all OSes).
2545 --write-back-cache Makes kernel buffer writes before sending them to rclone. Without this, writethrough caching is used.
2546
2547 See the global flags page (https://rclone.org/flags/) for global op‐
2548 tions not listed here.
2549
2550 SEE ALSO
2551 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2552 commands, flags and backends.
2553
2554 rclone moveto
2555 Move file or directory from source to dest.
2556
2557 Synopsis
2558 If source:path is a file or directory then it moves it to a file or di‐
2559 rectory named dest:path.
2560
2561 This can be used to rename files or upload single files to other than
2562 their existing name. If the source is a directory then it acts exactly
2563 like the move command.
2564
2565 So
2566
2567 rclone moveto src dst
2568
2569 where src and dst are rclone paths, either remote:path or /path/to/lo‐
2570 cal or C:.
2571
2572 This will:
2573
2574 if src is file
2575 move it to dst, overwriting an existing file if it exists
2576 if src is directory
2577 move it to dst, overwriting existing files if they exist
2578 see move command for full details
2579
2580 This doesn’t transfer unchanged files, testing by size and modification
2581 time or MD5SUM. src will be deleted on successful transfer.
2582
2583 Important: Since this can cause data loss, test first with the –dry-run
2584 flag.
2585
2586 Note: Use the -P/--progress flag to view real-time transfer statistics.
2587
2588 rclone moveto source:path dest:path [flags]
2589
2590 Options
2591 -h, --help help for moveto
2592
2593 See the global flags page (https://rclone.org/flags/) for global op‐
2594 tions not listed here.
2595
2596 SEE ALSO
2597 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2598 commands, flags and backends.
2599
2600 rclone ncdu
2601 Explore a remote with a text based user interface.
2602
2603 Synopsis
2604 This displays a text based user interface allowing the navigation of a
2605 remote. It is most useful for answering the question - “What is using
2606 all my disk space?”.
2607
2608 To make the user interface it first scans the entire remote given and
2609 builds an in memory representation. rclone ncdu can be used during
2610 this scanning phase and you will see it building up the directory
2611 structure as it goes along.
2612
2613 Here are the keys - press `?' to toggle the help on and off
2614
2615 ↑,↓ or k,j to Move
2616 →,l to enter
2617 ←,h to return
2618 c toggle counts
2619 g toggle graph
2620 n,s,C sort by name,size,count
2621 d delete file/directory
2622 y copy current path to clipbard
2623 Y display current path
2624 ^L refresh screen
2625 ? to toggle help on and off
2626 q/ESC/c-C to quit
2627
2628 This an homage to the ncdu tool (https://dev.yorhel.nl/ncdu) but for
2629 rclone remotes. It is missing lots of features at the moment but is
2630 useful as it stands.
2631
2632 Note that it might take some time to delete big files/folders. The UI
2633 won’t respond in the meantime since the deletion is done synchronously.
2634
2635 rclone ncdu remote:path [flags]
2636
2637 Options
2638 -h, --help help for ncdu
2639
2640 See the global flags page (https://rclone.org/flags/) for global op‐
2641 tions not listed here.
2642
2643 SEE ALSO
2644 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2645 commands, flags and backends.
2646
2647 rclone obscure
2648 Obscure password for use in the rclone.conf
2649
2650 Synopsis
2651 Obscure password for use in the rclone.conf
2652
2653 rclone obscure password [flags]
2654
2655 Options
2656 -h, --help help for obscure
2657
2658 See the global flags page (https://rclone.org/flags/) for global op‐
2659 tions not listed here.
2660
2661 SEE ALSO
2662 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2663 commands, flags and backends.
2664
2665 rclone rc
2666 Run a command against a running rclone.
2667
2668 Synopsis
2669 This runs a command against a running rclone. Use the –url flag to
2670 specify an non default URL to connect on. This can be either a “:port”
2671 which is taken to mean “http://localhost:port” or a “host:port” which
2672 is taken to mean “http://host:port”
2673
2674 A username and password can be passed in with –user and –pass.
2675
2676 Note that –rc-addr, –rc-user, –rc-pass will be read also for –url, –us‐
2677 er, –pass.
2678
2679 Arguments should be passed in as parameter=value.
2680
2681 The result will be returned as a JSON object by default.
2682
2683 The –json parameter can be used to pass in a JSON blob as an input in‐
2684 stead of key=value arguments. This is the only way of passing in more
2685 complicated values.
2686
2687 Use –loopback to connect to the rclone instance running “rclone rc”.
2688 This is very useful for testing commands without having to run an
2689 rclone rc server, eg:
2690
2691 rclone rc --loopback operations/about fs=/
2692
2693 Use “rclone rc” to see a list of all possible commands.
2694
2695 rclone rc commands parameter [flags]
2696
2697 Options
2698 -h, --help help for rc
2699 --json string Input JSON - use instead of key=value args.
2700 --loopback If set connect to this rclone instance not via HTTP.
2701 --no-output If set don't output the JSON result.
2702 --pass string Password to use to connect to rclone remote control.
2703 --url string URL to connect to rclone remote control. (default "http://localhost:5572/")
2704 --user string Username to use to rclone remote control.
2705
2706 See the global flags page (https://rclone.org/flags/) for global op‐
2707 tions not listed here.
2708
2709 SEE ALSO
2710 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2711 commands, flags and backends.
2712
2713 rclone rcat
2714 Copies standard input to file on remote.
2715
2716 Synopsis
2717 rclone rcat reads from standard input (stdin) and copies it to a single
2718 remote file.
2719
2720 echo "hello world" | rclone rcat remote:path/to/file
2721 ffmpeg - | rclone rcat remote:path/to/file
2722
2723 If the remote file already exists, it will be overwritten.
2724
2725 rcat will try to upload small files in a single request, which is usu‐
2726 ally more efficient than the streaming/chunked upload endpoints, which
2727 use multiple requests. Exact behaviour depends on the remote. What is
2728 considered a small file may be set through --streaming-upload-cutoff.
2729 Uploading only starts after the cutoff is reached or if the file ends
2730 before that. The data must fit into RAM. The cutoff needs to be small
2731 enough to adhere the limits of your remote, please see there. General‐
2732 ly speaking, setting this cutoff too high will decrease your perfor‐
2733 mance.
2734
2735 Note that the upload can also not be retried because the data is not
2736 kept around until the upload succeeds. If you need to transfer a lot
2737 of data, you’re better off caching locally and then rclone move it to
2738 the destination.
2739
2740 rclone rcat remote:path [flags]
2741
2742 Options
2743 -h, --help help for rcat
2744
2745 See the global flags page (https://rclone.org/flags/) for global op‐
2746 tions not listed here.
2747
2748 SEE ALSO
2749 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2750 commands, flags and backends.
2751
2752 rclone rcd
2753 Run rclone listening to remote control commands only.
2754
2755 Synopsis
2756 This runs rclone so that it only listens to remote control commands.
2757
2758 This is useful if you are controlling rclone via the rc API.
2759
2760 If you pass in a path to a directory, rclone will serve that directory
2761 for GET requests on the URL passed in. It will also open the URL in
2762 the browser when rclone is run.
2763
2764 See the rc documentation (https://rclone.org/rc/) for more info on the
2765 rc flags.
2766
2767 rclone rcd <path to files to serve>* [flags]
2768
2769 Options
2770 -h, --help help for rcd
2771
2772 See the global flags page (https://rclone.org/flags/) for global op‐
2773 tions not listed here.
2774
2775 SEE ALSO
2776 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2777 commands, flags and backends.
2778
2779 rclone rmdirs
2780 Remove empty directories under the path.
2781
2782 Synopsis
2783 This removes any empty directories (or directories that only contain
2784 empty directories) under the path that it finds, including the path if
2785 it has nothing in.
2786
2787 If you supply the –leave-root flag, it will not remove the root direc‐
2788 tory.
2789
2790 This is useful for tidying up remotes that rclone has left a lot of
2791 empty directories in.
2792
2793 rclone rmdirs remote:path [flags]
2794
2795 Options
2796 -h, --help help for rmdirs
2797 --leave-root Do not remove root directory if empty
2798
2799 See the global flags page (https://rclone.org/flags/) for global op‐
2800 tions not listed here.
2801
2802 SEE ALSO
2803 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2804 commands, flags and backends.
2805
2806 rclone serve
2807 Serve a remote over a protocol.
2808
2809 Synopsis
2810 rclone serve is used to serve a remote over a given protocol. This
2811 command requires the use of a subcommand to specify the protocol, eg
2812
2813 rclone serve http remote:
2814
2815 Each subcommand has its own options which you can see in their help.
2816
2817 rclone serve <protocol> [opts] <remote> [flags]
2818
2819 Options
2820 -h, --help help for serve
2821
2822 See the global flags page (https://rclone.org/flags/) for global op‐
2823 tions not listed here.
2824
2825 SEE ALSO
2826 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2827 commands, flags and backends.
2828
2829 · rclone serve dlna (https://rclone.org/commands/rclone_serve_dlna/) -
2830 Serve remote:path over DLNA
2831
2832 · rclone serve ftp (https://rclone.org/commands/rclone_serve_ftp/) -
2833 Serve remote:path over FTP.
2834
2835 · rclone serve http (https://rclone.org/commands/rclone_serve_http/) -
2836 Serve the remote over HTTP.
2837
2838 · rclone serve restic (https://rclone.org/com‐
2839 mands/rclone_serve_restic/) - Serve the remote for restic’s REST API.
2840
2841 · rclone serve sftp (https://rclone.org/commands/rclone_serve_sftp/) -
2842 Serve the remote over SFTP.
2843
2844 · rclone serve webdav (https://rclone.org/commands/rclone_serve_web‐
2845 dav/) - Serve remote:path over webdav.
2846
2847 rclone serve dlna
2848 Serve remote:path over DLNA
2849
2850 Synopsis
2851 rclone serve dlna is a DLNA media server for media stored in a rclone
2852 remote. Many devices, such as the Xbox and PlayStation, can automati‐
2853 cally discover this server in the LAN and play audio/video from it.
2854 VLC is also supported. Service discovery uses UDP multicast packets
2855 (SSDP) and will thus only work on LANs.
2856
2857 Rclone will list all files present in the remote, without filtering
2858 based on media formats or file extensions. Additionally, there is no
2859 media transcoding support. This means that some players might show
2860 files that they are not able to play back correctly.
2861
2862 Server options
2863 Use –addr to specify which IP address and port the server should listen
2864 on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs.
2865
2866 Use –name to choose the friendly server name, which is by default
2867 “rclone (hostname)”.
2868
2869 Use –log-trace in conjunction with -vv to enable additional debug log‐
2870 ging of all UPNP traffic.
2871
2872 Directory Cache
2873 Using the --dir-cache-time flag, you can set how long a directory
2874 should be considered up to date and not refreshed from the backend.
2875 Changes made locally in the mount may appear immediately or invalidate
2876 the cache. However, changes done on the remote will only be picked up
2877 once the cache expires.
2878
2879 Alternatively, you can send a SIGHUP signal to rclone for it to flush
2880 all directory caches, regardless of how old they are. Assuming only
2881 one rclone instance is running, you can reset the cache like this:
2882
2883 kill -SIGHUP $(pidof rclone)
2884
2885 If you configure rclone with a remote control (/rc) then you can use
2886 rclone rc to flush the whole directory cache:
2887
2888 rclone rc vfs/forget
2889
2890 Or individual files or directories:
2891
2892 rclone rc vfs/forget file=path/to/file dir=path/to/dir
2893
2894 File Buffering
2895 The --buffer-size flag determines the amount of memory, that will be
2896 used to buffer data in advance.
2897
2898 Each open file descriptor will try to keep the specified amount of data
2899 in memory at all times. The buffered data is bound to one file de‐
2900 scriptor and won’t be shared between multiple open file descriptors of
2901 the same file.
2902
2903 This flag is a upper limit for the used memory per file descriptor.
2904 The buffer will only use memory for data that is downloaded but not not
2905 yet read. If the buffer is empty, only a small amount of memory will
2906 be used. The maximum memory used by rclone for buffering can be up to
2907 --buffer-size * open files.
2908
2909 File Caching
2910 These flags control the VFS file caching options. The VFS layer is
2911 used by rclone mount to make a cloud storage system work more like a
2912 normal file system.
2913
2914 You’ll need to enable VFS caching if you want, for example, to read and
2915 write simultaneously to a file. See below for more details.
2916
2917 Note that the VFS cache works in addition to the cache backend and you
2918 may find that you need one or the other or both.
2919
2920 --cache-dir string Directory rclone will use for caching.
2921 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
2922 --vfs-cache-mode string Cache mode off|minimal|writes|full (default "off")
2923 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
2924 --vfs-cache-max-size int Max total size of objects in the cache. (default off)
2925
2926 If run with -vv rclone will print the location of the file cache. The
2927 files are stored in the user cache file area which is OS dependent but
2928 can be controlled with --cache-dir or setting the appropriate environ‐
2929 ment variable.
2930
2931 The cache has 4 different modes selected by --vfs-cache-mode. The
2932 higher the cache mode the more compatible rclone becomes at the cost of
2933 using disk space.
2934
2935 Note that files are written back to the remote only when they are
2936 closed so if rclone is quit or dies with open files then these won’t
2937 get written back to the remote. However they will still be in the on
2938 disk cache.
2939
2940 If using –vfs-cache-max-size note that the cache may exceed this size
2941 for two reasons. Firstly because it is only checked every
2942 –vfs-cache-poll-interval. Secondly because open files cannot be evict‐
2943 ed from the cache.
2944
2945 –vfs-cache-mode off
2946 In this mode the cache will read directly from the remote and write di‐
2947 rectly to the remote without caching anything on disk.
2948
2949 This will mean some operations are not possible
2950
2951 · Files can’t be opened for both read AND write
2952
2953 · Files opened for write can’t be seeked
2954
2955 · Existing files opened for write must have O_TRUNC set
2956
2957 · Files open for read with O_TRUNC will be opened write only
2958
2959 · Files open for write only will behave as if O_TRUNC was supplied
2960
2961 · Open modes O_APPEND, O_TRUNC are ignored
2962
2963 · If an upload fails it can’t be retried
2964
2965 –vfs-cache-mode minimal
2966 This is very similar to “off” except that files opened for read AND
2967 write will be buffered to disks. This means that files opened for
2968 write will be a lot more compatible, but uses the minimal disk space.
2969
2970 These operations are not possible
2971
2972 · Files opened for write only can’t be seeked
2973
2974 · Existing files opened for write must have O_TRUNC set
2975
2976 · Files opened for write only will ignore O_APPEND, O_TRUNC
2977
2978 · If an upload fails it can’t be retried
2979
2980 –vfs-cache-mode writes
2981 In this mode files opened for read only are still read directly from
2982 the remote, write only and read/write files are buffered to disk first.
2983
2984 This mode should support all normal file system operations.
2985
2986 If an upload fails it will be retried up to –low-level-retries times.
2987
2988 –vfs-cache-mode full
2989 In this mode all reads and writes are buffered to and from disk. When
2990 a file is opened for read it will be downloaded in its entirety first.
2991
2992 This may be appropriate for your needs, or you may prefer to look at
2993 the cache backend which does a much more sophisticated job of caching,
2994 including caching directory hierarchies and chunks of files.
2995
2996 In this mode, unlike the others, when a file is written to the disk, it
2997 will be kept on the disk after it is written to the remote. It will be
2998 purged on a schedule according to --vfs-cache-max-age.
2999
3000 This mode should support all normal file system operations.
3001
3002 If an upload or download fails it will be retried up to –low-level-re‐
3003 tries times.
3004
3005 rclone serve dlna remote:path [flags]
3006
3007 Options
3008 --addr string ip:port or :port to bind the DLNA http server to. (default ":7879")
3009 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3010 --dir-perms FileMode Directory permissions (default 0777)
3011 --file-perms FileMode File permissions (default 0666)
3012 --gid uint32 Override the gid field set by the filesystem. (default 1000)
3013 -h, --help help for dlna
3014 --log-trace enable trace logging of SOAP traffic
3015 --name string name of DLNA server
3016 --no-checksum Don't compare checksums on up/download.
3017 --no-modtime Don't read/write the modification time (can speed things up).
3018 --no-seek Don't allow seeking in files.
3019 --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)
3020 --read-only Mount read-only.
3021 --uid uint32 Override the uid field set by the filesystem. (default 1000)
3022 --umask int Override the permission bits set by the filesystem. (default 2)
3023 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3024 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3025 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3026 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3027 --vfs-case-insensitive If a file name not found, find a case insensitive match.
3028 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3029 --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)
3030
3031 See the global flags page (https://rclone.org/flags/) for global op‐
3032 tions not listed here.
3033
3034 SEE ALSO
3035 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
3036 remote over a protocol.
3037
3038 rclone serve ftp
3039 Serve remote:path over FTP.
3040
3041 Synopsis
3042 rclone serve ftp implements a basic ftp server to serve the remote over
3043 FTP protocol. This can be viewed with a ftp client or you can make a
3044 remote of type ftp to read and write it.
3045
3046 Server options
3047 Use –addr to specify which IP address and port the server should listen
3048 on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs. By de‐
3049 fault it only listens on localhost. You can use port :0 to let the OS
3050 choose an available port.
3051
3052 If you set –addr to listen on a public or LAN accessible IP address
3053 then using Authentication is advised - see the next section for info.
3054
3055 Authentication
3056 By default this will serve files without needing a login.
3057
3058 You can set a single username and password with the –user and –pass
3059 flags.
3060
3061 Directory Cache
3062 Using the --dir-cache-time flag, you can set how long a directory
3063 should be considered up to date and not refreshed from the backend.
3064 Changes made locally in the mount may appear immediately or invalidate
3065 the cache. However, changes done on the remote will only be picked up
3066 once the cache expires.
3067
3068 Alternatively, you can send a SIGHUP signal to rclone for it to flush
3069 all directory caches, regardless of how old they are. Assuming only
3070 one rclone instance is running, you can reset the cache like this:
3071
3072 kill -SIGHUP $(pidof rclone)
3073
3074 If you configure rclone with a remote control (/rc) then you can use
3075 rclone rc to flush the whole directory cache:
3076
3077 rclone rc vfs/forget
3078
3079 Or individual files or directories:
3080
3081 rclone rc vfs/forget file=path/to/file dir=path/to/dir
3082
3083 File Buffering
3084 The --buffer-size flag determines the amount of memory, that will be
3085 used to buffer data in advance.
3086
3087 Each open file descriptor will try to keep the specified amount of data
3088 in memory at all times. The buffered data is bound to one file de‐
3089 scriptor and won’t be shared between multiple open file descriptors of
3090 the same file.
3091
3092 This flag is a upper limit for the used memory per file descriptor.
3093 The buffer will only use memory for data that is downloaded but not not
3094 yet read. If the buffer is empty, only a small amount of memory will
3095 be used. The maximum memory used by rclone for buffering can be up to
3096 --buffer-size * open files.
3097
3098 File Caching
3099 These flags control the VFS file caching options. The VFS layer is
3100 used by rclone mount to make a cloud storage system work more like a
3101 normal file system.
3102
3103 You’ll need to enable VFS caching if you want, for example, to read and
3104 write simultaneously to a file. See below for more details.
3105
3106 Note that the VFS cache works in addition to the cache backend and you
3107 may find that you need one or the other or both.
3108
3109 --cache-dir string Directory rclone will use for caching.
3110 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3111 --vfs-cache-mode string Cache mode off|minimal|writes|full (default "off")
3112 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3113 --vfs-cache-max-size int Max total size of objects in the cache. (default off)
3114
3115 If run with -vv rclone will print the location of the file cache. The
3116 files are stored in the user cache file area which is OS dependent but
3117 can be controlled with --cache-dir or setting the appropriate environ‐
3118 ment variable.
3119
3120 The cache has 4 different modes selected by --vfs-cache-mode. The
3121 higher the cache mode the more compatible rclone becomes at the cost of
3122 using disk space.
3123
3124 Note that files are written back to the remote only when they are
3125 closed so if rclone is quit or dies with open files then these won’t
3126 get written back to the remote. However they will still be in the on
3127 disk cache.
3128
3129 If using –vfs-cache-max-size note that the cache may exceed this size
3130 for two reasons. Firstly because it is only checked every
3131 –vfs-cache-poll-interval. Secondly because open files cannot be evict‐
3132 ed from the cache.
3133
3134 –vfs-cache-mode off
3135 In this mode the cache will read directly from the remote and write di‐
3136 rectly to the remote without caching anything on disk.
3137
3138 This will mean some operations are not possible
3139
3140 · Files can’t be opened for both read AND write
3141
3142 · Files opened for write can’t be seeked
3143
3144 · Existing files opened for write must have O_TRUNC set
3145
3146 · Files open for read with O_TRUNC will be opened write only
3147
3148 · Files open for write only will behave as if O_TRUNC was supplied
3149
3150 · Open modes O_APPEND, O_TRUNC are ignored
3151
3152 · If an upload fails it can’t be retried
3153
3154 –vfs-cache-mode minimal
3155 This is very similar to “off” except that files opened for read AND
3156 write will be buffered to disks. This means that files opened for
3157 write will be a lot more compatible, but uses the minimal disk space.
3158
3159 These operations are not possible
3160
3161 · Files opened for write only can’t be seeked
3162
3163 · Existing files opened for write must have O_TRUNC set
3164
3165 · Files opened for write only will ignore O_APPEND, O_TRUNC
3166
3167 · If an upload fails it can’t be retried
3168
3169 –vfs-cache-mode writes
3170 In this mode files opened for read only are still read directly from
3171 the remote, write only and read/write files are buffered to disk first.
3172
3173 This mode should support all normal file system operations.
3174
3175 If an upload fails it will be retried up to –low-level-retries times.
3176
3177 –vfs-cache-mode full
3178 In this mode all reads and writes are buffered to and from disk. When
3179 a file is opened for read it will be downloaded in its entirety first.
3180
3181 This may be appropriate for your needs, or you may prefer to look at
3182 the cache backend which does a much more sophisticated job of caching,
3183 including caching directory hierarchies and chunks of files.
3184
3185 In this mode, unlike the others, when a file is written to the disk, it
3186 will be kept on the disk after it is written to the remote. It will be
3187 purged on a schedule according to --vfs-cache-max-age.
3188
3189 This mode should support all normal file system operations.
3190
3191 If an upload or download fails it will be retried up to –low-level-re‐
3192 tries times.
3193
3194 Auth Proxy
3195 If you supply the parameter --auth-proxy /path/to/program then rclone
3196 will use that program to generate backends on the fly which then are
3197 used to authenticate incoming requests. This uses a simple JSON based
3198 protocl with input on STDIN and output on STDOUT.
3199
3200 There is an example program bin/test_proxy.py
3201 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
3202 rclone source code.
3203
3204 The program’s job is to take a user and pass on the input and turn
3205 those into the config for a backend on STDOUT in JSON format. This
3206 config will have any default parameters for the backend added, but it
3207 won’t use configuration from environment variables or command line op‐
3208 tions - it is the job of the proxy program to make a complete config.
3209
3210 This config generated must have this extra parameter - _root - root to
3211 use for the backend
3212
3213 And it may have this parameter - _obscure - comma separated strings for
3214 parameters to obscure
3215
3216 For example the program might take this on STDIN
3217
3218 {
3219 "user": "me",
3220 "pass": "mypassword"
3221 }
3222
3223 And return this on STDOUT
3224
3225 {
3226 "type": "sftp",
3227 "_root": "",
3228 "_obscure": "pass",
3229 "user": "me",
3230 "pass": "mypassword",
3231 "host": "sftp.example.com"
3232 }
3233
3234 This would mean that an SFTP backend would be created on the fly for
3235 the user and pass returned in the output to the host given. Note that
3236 since _obscure is set to pass, rclone will obscure the pass parameter
3237 before creating the backend (which is required for sftp backends).
3238
3239 The progam can manipulate the supplied user in any way, for example to
3240 make proxy to many different sftp backends, you could make the user be
3241 user@example.com and then set the host to example.com in the output and
3242 the user to user. For security you’d probably want to restrict the
3243 host to a limited list.
3244
3245 Note that an internal cache is keyed on user so only use that for con‐
3246 figuration, don’t use pass. This also means that if a user’s password
3247 is changed the cache will need to expire (which takes 5 mins) before it
3248 takes effect.
3249
3250 This can be used to build general purpose proxies to any kind of back‐
3251 end that rclone supports.
3252
3253 rclone serve ftp remote:path [flags]
3254
3255 Options
3256 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:2121")
3257 --auth-proxy string A program to use to create the backend from the auth.
3258 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3259 --dir-perms FileMode Directory permissions (default 0777)
3260 --file-perms FileMode File permissions (default 0666)
3261 --gid uint32 Override the gid field set by the filesystem. (default 1000)
3262 -h, --help help for ftp
3263 --no-checksum Don't compare checksums on up/download.
3264 --no-modtime Don't read/write the modification time (can speed things up).
3265 --no-seek Don't allow seeking in files.
3266 --pass string Password for authentication. (empty value allow every password)
3267 --passive-port string Passive port range to use. (default "30000-32000")
3268 --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)
3269 --public-ip string Public IP address to advertise for passive connections.
3270 --read-only Mount read-only.
3271 --uid uint32 Override the uid field set by the filesystem. (default 1000)
3272 --umask int Override the permission bits set by the filesystem. (default 2)
3273 --user string User name for authentication. (default "anonymous")
3274 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3275 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3276 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3277 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3278 --vfs-case-insensitive If a file name not found, find a case insensitive match.
3279 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3280 --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)
3281
3282 See the global flags page (https://rclone.org/flags/) for global op‐
3283 tions not listed here.
3284
3285 SEE ALSO
3286 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
3287 remote over a protocol.
3288
3289 rclone serve http
3290 Serve the remote over HTTP.
3291
3292 Synopsis
3293 rclone serve http implements a basic web server to serve the remote
3294 over HTTP. This can be viewed in a web browser or you can make a re‐
3295 mote of type http read from it.
3296
3297 You can use the filter flags (eg –include, –exclude) to control what is
3298 served.
3299
3300 The server will log errors. Use -v to see access logs.
3301
3302 –bwlimit will be respected for file transfers. Use –stats to control
3303 the stats printing.
3304
3305 Server options
3306 Use –addr to specify which IP address and port the server should listen
3307 on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs. By de‐
3308 fault it only listens on localhost. You can use port :0 to let the OS
3309 choose an available port.
3310
3311 If you set –addr to listen on a public or LAN accessible IP address
3312 then using Authentication is advised - see the next section for info.
3313
3314 –server-read-timeout and –server-write-timeout can be used to control
3315 the timeouts on the server. Note that this is the total time for a
3316 transfer.
3317
3318 –max-header-bytes controls the maximum number of bytes the server will
3319 accept in the HTTP header.
3320
3321 –baseurl controls the URL prefix that rclone serves from. By default
3322 rclone will serve from the root. If you used –baseurl “/rclone” then
3323 rclone would serve from a URL starting with “/rclone/”. This is useful
3324 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
3325 ing and trailing “/” on –baseurl, so –baseurl “rclone”, –baseurl
3326 “/rclone” and –baseurl “/rclone/” are all treated identically.
3327
3328 Authentication
3329 By default this will serve files without needing a login.
3330
3331 You can either use an htpasswd file which can take lots of users, or
3332 set a single username and password with the –user and –pass flags.
3333
3334 Use –htpasswd /path/to/htpasswd to provide an htpasswd file. This is
3335 in standard apache format and supports MD5, SHA1 and BCrypt for basic
3336 authentication. Bcrypt is recommended.
3337
3338 To create an htpasswd file:
3339
3340 touch htpasswd
3341 htpasswd -B htpasswd user
3342 htpasswd -B htpasswd anotherUser
3343
3344 The password file can be updated while rclone is running.
3345
3346 Use –realm to set the authentication realm.
3347
3348 SSL/TLS
3349 By default this will serve over http. If you want you can serve over
3350 https. You will need to supply the –cert and –key flags. If you wish
3351 to do client side certificate validation then you will need to supply
3352 –client-ca also.
3353
3354 –cert should be a either a PEM encoded certificate or a concatenation
3355 of that with the CA certificate. –key should be the PEM encoded pri‐
3356 vate key and –client-ca should be the PEM encoded client certificate
3357 authority certificate.
3358
3359 Directory Cache
3360 Using the --dir-cache-time flag, you can set how long a directory
3361 should be considered up to date and not refreshed from the backend.
3362 Changes made locally in the mount may appear immediately or invalidate
3363 the cache. However, changes done on the remote will only be picked up
3364 once the cache expires.
3365
3366 Alternatively, you can send a SIGHUP signal to rclone for it to flush
3367 all directory caches, regardless of how old they are. Assuming only
3368 one rclone instance is running, you can reset the cache like this:
3369
3370 kill -SIGHUP $(pidof rclone)
3371
3372 If you configure rclone with a remote control (/rc) then you can use
3373 rclone rc to flush the whole directory cache:
3374
3375 rclone rc vfs/forget
3376
3377 Or individual files or directories:
3378
3379 rclone rc vfs/forget file=path/to/file dir=path/to/dir
3380
3381 File Buffering
3382 The --buffer-size flag determines the amount of memory, that will be
3383 used to buffer data in advance.
3384
3385 Each open file descriptor will try to keep the specified amount of data
3386 in memory at all times. The buffered data is bound to one file de‐
3387 scriptor and won’t be shared between multiple open file descriptors of
3388 the same file.
3389
3390 This flag is a upper limit for the used memory per file descriptor.
3391 The buffer will only use memory for data that is downloaded but not not
3392 yet read. If the buffer is empty, only a small amount of memory will
3393 be used. The maximum memory used by rclone for buffering can be up to
3394 --buffer-size * open files.
3395
3396 File Caching
3397 These flags control the VFS file caching options. The VFS layer is
3398 used by rclone mount to make a cloud storage system work more like a
3399 normal file system.
3400
3401 You’ll need to enable VFS caching if you want, for example, to read and
3402 write simultaneously to a file. See below for more details.
3403
3404 Note that the VFS cache works in addition to the cache backend and you
3405 may find that you need one or the other or both.
3406
3407 --cache-dir string Directory rclone will use for caching.
3408 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3409 --vfs-cache-mode string Cache mode off|minimal|writes|full (default "off")
3410 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3411 --vfs-cache-max-size int Max total size of objects in the cache. (default off)
3412
3413 If run with -vv rclone will print the location of the file cache. The
3414 files are stored in the user cache file area which is OS dependent but
3415 can be controlled with --cache-dir or setting the appropriate environ‐
3416 ment variable.
3417
3418 The cache has 4 different modes selected by --vfs-cache-mode. The
3419 higher the cache mode the more compatible rclone becomes at the cost of
3420 using disk space.
3421
3422 Note that files are written back to the remote only when they are
3423 closed so if rclone is quit or dies with open files then these won’t
3424 get written back to the remote. However they will still be in the on
3425 disk cache.
3426
3427 If using –vfs-cache-max-size note that the cache may exceed this size
3428 for two reasons. Firstly because it is only checked every
3429 –vfs-cache-poll-interval. Secondly because open files cannot be evict‐
3430 ed from the cache.
3431
3432 –vfs-cache-mode off
3433 In this mode the cache will read directly from the remote and write di‐
3434 rectly to the remote without caching anything on disk.
3435
3436 This will mean some operations are not possible
3437
3438 · Files can’t be opened for both read AND write
3439
3440 · Files opened for write can’t be seeked
3441
3442 · Existing files opened for write must have O_TRUNC set
3443
3444 · Files open for read with O_TRUNC will be opened write only
3445
3446 · Files open for write only will behave as if O_TRUNC was supplied
3447
3448 · Open modes O_APPEND, O_TRUNC are ignored
3449
3450 · If an upload fails it can’t be retried
3451
3452 –vfs-cache-mode minimal
3453 This is very similar to “off” except that files opened for read AND
3454 write will be buffered to disks. This means that files opened for
3455 write will be a lot more compatible, but uses the minimal disk space.
3456
3457 These operations are not possible
3458
3459 · Files opened for write only can’t be seeked
3460
3461 · Existing files opened for write must have O_TRUNC set
3462
3463 · Files opened for write only will ignore O_APPEND, O_TRUNC
3464
3465 · If an upload fails it can’t be retried
3466
3467 –vfs-cache-mode writes
3468 In this mode files opened for read only are still read directly from
3469 the remote, write only and read/write files are buffered to disk first.
3470
3471 This mode should support all normal file system operations.
3472
3473 If an upload fails it will be retried up to –low-level-retries times.
3474
3475 –vfs-cache-mode full
3476 In this mode all reads and writes are buffered to and from disk. When
3477 a file is opened for read it will be downloaded in its entirety first.
3478
3479 This may be appropriate for your needs, or you may prefer to look at
3480 the cache backend which does a much more sophisticated job of caching,
3481 including caching directory hierarchies and chunks of files.
3482
3483 In this mode, unlike the others, when a file is written to the disk, it
3484 will be kept on the disk after it is written to the remote. It will be
3485 purged on a schedule according to --vfs-cache-max-age.
3486
3487 This mode should support all normal file system operations.
3488
3489 If an upload or download fails it will be retried up to –low-level-re‐
3490 tries times.
3491
3492 rclone serve http remote:path [flags]
3493
3494 Options
3495 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
3496 --baseurl string Prefix for URLs - leave blank for root.
3497 --cert string SSL PEM key (concatenation of certificate and CA certificate)
3498 --client-ca string Client certificate authority to verify clients with
3499 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3500 --dir-perms FileMode Directory permissions (default 0777)
3501 --file-perms FileMode File permissions (default 0666)
3502 --gid uint32 Override the gid field set by the filesystem. (default 1000)
3503 -h, --help help for http
3504 --htpasswd string htpasswd file - if not provided no authentication is done
3505 --key string SSL PEM Private key
3506 --max-header-bytes int Maximum size of request header (default 4096)
3507 --no-checksum Don't compare checksums on up/download.
3508 --no-modtime Don't read/write the modification time (can speed things up).
3509 --no-seek Don't allow seeking in files.
3510 --pass string Password for authentication.
3511 --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)
3512 --read-only Mount read-only.
3513 --realm string realm for authentication (default "rclone")
3514 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
3515 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
3516 --uid uint32 Override the uid field set by the filesystem. (default 1000)
3517 --umask int Override the permission bits set by the filesystem. (default 2)
3518 --user string User name for authentication.
3519 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3520 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3521 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3522 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3523 --vfs-case-insensitive If a file name not found, find a case insensitive match.
3524 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3525 --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)
3526
3527 See the global flags page (https://rclone.org/flags/) for global op‐
3528 tions not listed here.
3529
3530 SEE ALSO
3531 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
3532 remote over a protocol.
3533
3534 rclone serve restic
3535 Serve the remote for restic’s REST API.
3536
3537 Synopsis
3538 rclone serve restic implements restic’s REST backend API over HTTP.
3539 This allows restic to use rclone as a data storage mechanism for cloud
3540 providers that restic does not support directly.
3541
3542 Restic (https://restic.net/) is a command line program for doing back‐
3543 ups.
3544
3545 The server will log errors. Use -v to see access logs.
3546
3547 –bwlimit will be respected for file transfers. Use –stats to control
3548 the stats printing.
3549
3550 Setting up rclone for use by restic
3551 First set up a remote for your chosen cloud provider (/docs/#config‐
3552 ure).
3553
3554 Once you have set up the remote, check it is working with, for example
3555 “rclone lsd remote:”. You may have called the remote something other
3556 than “remote:” - just substitute whatever you called it in the follow‐
3557 ing instructions.
3558
3559 Now start the rclone restic server
3560
3561 rclone serve restic -v remote:backup
3562
3563 Where you can replace “backup” in the above by whatever path in the re‐
3564 mote you wish to use.
3565
3566 By default this will serve on “localhost:8080” you can change this with
3567 use of the “–addr” flag.
3568
3569 You might wish to start this server on boot.
3570
3571 Setting up restic to use rclone
3572 Now you can follow the restic instructions (http://restic.readthedo‐
3573 cs.io/en/latest/030_preparing_a_new_repo.html#rest-server) on setting
3574 up restic.
3575
3576 Note that you will need restic 0.8.2 or later to interoperate with
3577 rclone.
3578
3579 For the example above you will want to use “http://localhost:8080/” as
3580 the URL for the REST server.
3581
3582 For example:
3583
3584 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/
3585 $ export RESTIC_PASSWORD=yourpassword
3586 $ restic init
3587 created restic backend 8b1a4b56ae at rest:http://localhost:8080/
3588
3589 Please note that knowledge of your password is required to access
3590 the repository. Losing your password means that your data is
3591 irrecoverably lost.
3592 $ restic backup /path/to/files/to/backup
3593 scan [/path/to/files/to/backup]
3594 scanned 189 directories, 312 files in 0:00
3595 [0:00] 100.00% 38.128 MiB / 38.128 MiB 501 / 501 items 0 errors ETA 0:00
3596 duration: 0:00
3597 snapshot 45c8fdd8 saved
3598
3599 Multiple repositories
3600 Note that you can use the endpoint to host multiple repositories. Do
3601 this by adding a directory name or path after the URL. Note that these
3602 must end with /. Eg
3603
3604 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user1repo/
3605 # backup user1 stuff
3606 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/
3607 # backup user2 stuff
3608
3609 Private repositories
3610 The “–private-repos” flag can be used to limit users to repositories
3611 starting with a path of “//”.
3612
3613 Server options
3614 Use –addr to specify which IP address and port the server should listen
3615 on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs. By de‐
3616 fault it only listens on localhost. You can use port :0 to let the OS
3617 choose an available port.
3618
3619 If you set –addr to listen on a public or LAN accessible IP address
3620 then using Authentication is advised - see the next section for info.
3621
3622 –server-read-timeout and –server-write-timeout can be used to control
3623 the timeouts on the server. Note that this is the total time for a
3624 transfer.
3625
3626 –max-header-bytes controls the maximum number of bytes the server will
3627 accept in the HTTP header.
3628
3629 –baseurl controls the URL prefix that rclone serves from. By default
3630 rclone will serve from the root. If you used –baseurl “/rclone” then
3631 rclone would serve from a URL starting with “/rclone/”. This is useful
3632 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
3633 ing and trailing “/” on –baseurl, so –baseurl “rclone”, –baseurl
3634 “/rclone” and –baseurl “/rclone/” are all treated identically.
3635
3636 Authentication
3637 By default this will serve files without needing a login.
3638
3639 You can either use an htpasswd file which can take lots of users, or
3640 set a single username and password with the –user and –pass flags.
3641
3642 Use –htpasswd /path/to/htpasswd to provide an htpasswd file. This is
3643 in standard apache format and supports MD5, SHA1 and BCrypt for basic
3644 authentication. Bcrypt is recommended.
3645
3646 To create an htpasswd file:
3647
3648 touch htpasswd
3649 htpasswd -B htpasswd user
3650 htpasswd -B htpasswd anotherUser
3651
3652 The password file can be updated while rclone is running.
3653
3654 Use –realm to set the authentication realm.
3655
3656 SSL/TLS
3657 By default this will serve over http. If you want you can serve over
3658 https. You will need to supply the –cert and –key flags. If you wish
3659 to do client side certificate validation then you will need to supply
3660 –client-ca also.
3661
3662 –cert should be a either a PEM encoded certificate or a concatenation
3663 of that with the CA certificate. –key should be the PEM encoded pri‐
3664 vate key and –client-ca should be the PEM encoded client certificate
3665 authority certificate.
3666
3667 rclone serve restic remote:path [flags]
3668
3669 Options
3670 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
3671 --append-only disallow deletion of repository data
3672 --baseurl string Prefix for URLs - leave blank for root.
3673 --cert string SSL PEM key (concatenation of certificate and CA certificate)
3674 --client-ca string Client certificate authority to verify clients with
3675 -h, --help help for restic
3676 --htpasswd string htpasswd file - if not provided no authentication is done
3677 --key string SSL PEM Private key
3678 --max-header-bytes int Maximum size of request header (default 4096)
3679 --pass string Password for authentication.
3680 --private-repos users can only access their private repo
3681 --realm string realm for authentication (default "rclone")
3682 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
3683 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
3684 --stdio run an HTTP2 server on stdin/stdout
3685 --user string User name for authentication.
3686
3687 See the global flags page (https://rclone.org/flags/) for global op‐
3688 tions not listed here.
3689
3690 SEE ALSO
3691 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
3692 remote over a protocol.
3693
3694 rclone serve sftp
3695 Serve the remote over SFTP.
3696
3697 Synopsis
3698 rclone serve sftp implements an SFTP server to serve the remote over
3699 SFTP. This can be used with an SFTP client or you can make a remote of
3700 type sftp to use with it.
3701
3702 You can use the filter flags (eg –include, –exclude) to control what is
3703 served.
3704
3705 The server will log errors. Use -v to see access logs.
3706
3707 –bwlimit will be respected for file transfers. Use –stats to control
3708 the stats printing.
3709
3710 You must provide some means of authentication, either with –user/–pass,
3711 an authorized keys file (specify location with –authorized-keys - the
3712 default is the same as ssh) or set the –no-auth flag for no authentica‐
3713 tion when logging in.
3714
3715 Note that this also implements a small number of shell commands so that
3716 it can provide md5sum/sha1sum/df information for the rclone sftp back‐
3717 end. This means that is can support SHA1SUMs, MD5SUMs and the about
3718 command when paired with the rclone sftp backend.
3719
3720 If you don’t supply a –key then rclone will generate one and cache it
3721 for later use.
3722
3723 By default the server binds to localhost:2022 - if you want it to be
3724 reachable externally then supply “–addr :2022” for example.
3725
3726 Note that the default of “–vfs-cache-mode off” is fine for the rclone
3727 sftp backend, but it may not be with other SFTP clients.
3728
3729 Directory Cache
3730 Using the --dir-cache-time flag, you can set how long a directory
3731 should be considered up to date and not refreshed from the backend.
3732 Changes made locally in the mount may appear immediately or invalidate
3733 the cache. However, changes done on the remote will only be picked up
3734 once the cache expires.
3735
3736 Alternatively, you can send a SIGHUP signal to rclone for it to flush
3737 all directory caches, regardless of how old they are. Assuming only
3738 one rclone instance is running, you can reset the cache like this:
3739
3740 kill -SIGHUP $(pidof rclone)
3741
3742 If you configure rclone with a remote control (/rc) then you can use
3743 rclone rc to flush the whole directory cache:
3744
3745 rclone rc vfs/forget
3746
3747 Or individual files or directories:
3748
3749 rclone rc vfs/forget file=path/to/file dir=path/to/dir
3750
3751 File Buffering
3752 The --buffer-size flag determines the amount of memory, that will be
3753 used to buffer data in advance.
3754
3755 Each open file descriptor will try to keep the specified amount of data
3756 in memory at all times. The buffered data is bound to one file de‐
3757 scriptor and won’t be shared between multiple open file descriptors of
3758 the same file.
3759
3760 This flag is a upper limit for the used memory per file descriptor.
3761 The buffer will only use memory for data that is downloaded but not not
3762 yet read. If the buffer is empty, only a small amount of memory will
3763 be used. The maximum memory used by rclone for buffering can be up to
3764 --buffer-size * open files.
3765
3766 File Caching
3767 These flags control the VFS file caching options. The VFS layer is
3768 used by rclone mount to make a cloud storage system work more like a
3769 normal file system.
3770
3771 You’ll need to enable VFS caching if you want, for example, to read and
3772 write simultaneously to a file. See below for more details.
3773
3774 Note that the VFS cache works in addition to the cache backend and you
3775 may find that you need one or the other or both.
3776
3777 --cache-dir string Directory rclone will use for caching.
3778 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3779 --vfs-cache-mode string Cache mode off|minimal|writes|full (default "off")
3780 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3781 --vfs-cache-max-size int Max total size of objects in the cache. (default off)
3782
3783 If run with -vv rclone will print the location of the file cache. The
3784 files are stored in the user cache file area which is OS dependent but
3785 can be controlled with --cache-dir or setting the appropriate environ‐
3786 ment variable.
3787
3788 The cache has 4 different modes selected by --vfs-cache-mode. The
3789 higher the cache mode the more compatible rclone becomes at the cost of
3790 using disk space.
3791
3792 Note that files are written back to the remote only when they are
3793 closed so if rclone is quit or dies with open files then these won’t
3794 get written back to the remote. However they will still be in the on
3795 disk cache.
3796
3797 If using –vfs-cache-max-size note that the cache may exceed this size
3798 for two reasons. Firstly because it is only checked every
3799 –vfs-cache-poll-interval. Secondly because open files cannot be evict‐
3800 ed from the cache.
3801
3802 –vfs-cache-mode off
3803 In this mode the cache will read directly from the remote and write di‐
3804 rectly to the remote without caching anything on disk.
3805
3806 This will mean some operations are not possible
3807
3808 · Files can’t be opened for both read AND write
3809
3810 · Files opened for write can’t be seeked
3811
3812 · Existing files opened for write must have O_TRUNC set
3813
3814 · Files open for read with O_TRUNC will be opened write only
3815
3816 · Files open for write only will behave as if O_TRUNC was supplied
3817
3818 · Open modes O_APPEND, O_TRUNC are ignored
3819
3820 · If an upload fails it can’t be retried
3821
3822 –vfs-cache-mode minimal
3823 This is very similar to “off” except that files opened for read AND
3824 write will be buffered to disks. This means that files opened for
3825 write will be a lot more compatible, but uses the minimal disk space.
3826
3827 These operations are not possible
3828
3829 · Files opened for write only can’t be seeked
3830
3831 · Existing files opened for write must have O_TRUNC set
3832
3833 · Files opened for write only will ignore O_APPEND, O_TRUNC
3834
3835 · If an upload fails it can’t be retried
3836
3837 –vfs-cache-mode writes
3838 In this mode files opened for read only are still read directly from
3839 the remote, write only and read/write files are buffered to disk first.
3840
3841 This mode should support all normal file system operations.
3842
3843 If an upload fails it will be retried up to –low-level-retries times.
3844
3845 –vfs-cache-mode full
3846 In this mode all reads and writes are buffered to and from disk. When
3847 a file is opened for read it will be downloaded in its entirety first.
3848
3849 This may be appropriate for your needs, or you may prefer to look at
3850 the cache backend which does a much more sophisticated job of caching,
3851 including caching directory hierarchies and chunks of files.
3852
3853 In this mode, unlike the others, when a file is written to the disk, it
3854 will be kept on the disk after it is written to the remote. It will be
3855 purged on a schedule according to --vfs-cache-max-age.
3856
3857 This mode should support all normal file system operations.
3858
3859 If an upload or download fails it will be retried up to –low-level-re‐
3860 tries times.
3861
3862 Auth Proxy
3863 If you supply the parameter --auth-proxy /path/to/program then rclone
3864 will use that program to generate backends on the fly which then are
3865 used to authenticate incoming requests. This uses a simple JSON based
3866 protocl with input on STDIN and output on STDOUT.
3867
3868 There is an example program bin/test_proxy.py
3869 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
3870 rclone source code.
3871
3872 The program’s job is to take a user and pass on the input and turn
3873 those into the config for a backend on STDOUT in JSON format. This
3874 config will have any default parameters for the backend added, but it
3875 won’t use configuration from environment variables or command line op‐
3876 tions - it is the job of the proxy program to make a complete config.
3877
3878 This config generated must have this extra parameter - _root - root to
3879 use for the backend
3880
3881 And it may have this parameter - _obscure - comma separated strings for
3882 parameters to obscure
3883
3884 For example the program might take this on STDIN
3885
3886 {
3887 "user": "me",
3888 "pass": "mypassword"
3889 }
3890
3891 And return this on STDOUT
3892
3893 {
3894 "type": "sftp",
3895 "_root": "",
3896 "_obscure": "pass",
3897 "user": "me",
3898 "pass": "mypassword",
3899 "host": "sftp.example.com"
3900 }
3901
3902 This would mean that an SFTP backend would be created on the fly for
3903 the user and pass returned in the output to the host given. Note that
3904 since _obscure is set to pass, rclone will obscure the pass parameter
3905 before creating the backend (which is required for sftp backends).
3906
3907 The progam can manipulate the supplied user in any way, for example to
3908 make proxy to many different sftp backends, you could make the user be
3909 user@example.com and then set the host to example.com in the output and
3910 the user to user. For security you’d probably want to restrict the
3911 host to a limited list.
3912
3913 Note that an internal cache is keyed on user so only use that for con‐
3914 figuration, don’t use pass. This also means that if a user’s password
3915 is changed the cache will need to expire (which takes 5 mins) before it
3916 takes effect.
3917
3918 This can be used to build general purpose proxies to any kind of back‐
3919 end that rclone supports.
3920
3921 rclone serve sftp remote:path [flags]
3922
3923 Options
3924 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:2022")
3925 --auth-proxy string A program to use to create the backend from the auth.
3926 --authorized-keys string Authorized keys file (default "~/.ssh/authorized_keys")
3927 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3928 --dir-perms FileMode Directory permissions (default 0777)
3929 --file-perms FileMode File permissions (default 0666)
3930 --gid uint32 Override the gid field set by the filesystem. (default 1000)
3931 -h, --help help for sftp
3932 --key string SSH private key file (leave blank to auto generate)
3933 --no-auth Allow connections with no authentication if set.
3934 --no-checksum Don't compare checksums on up/download.
3935 --no-modtime Don't read/write the modification time (can speed things up).
3936 --no-seek Don't allow seeking in files.
3937 --pass string Password for authentication.
3938 --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)
3939 --read-only Mount read-only.
3940 --uid uint32 Override the uid field set by the filesystem. (default 1000)
3941 --umask int Override the permission bits set by the filesystem. (default 2)
3942 --user string User name for authentication.
3943 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3944 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3945 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3946 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3947 --vfs-case-insensitive If a file name not found, find a case insensitive match.
3948 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3949 --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)
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 serve (https://rclone.org/commands/rclone_serve/) - Serve a
3956 remote over a protocol.
3957
3958 rclone serve webdav
3959 Serve remote:path over webdav.
3960
3961 Synopsis
3962 rclone serve webdav implements a basic webdav server to serve the re‐
3963 mote over HTTP via the webdav protocol. This can be viewed with a web‐
3964 dav client, through a web browser, or you can make a remote of type
3965 webdav to read and write it.
3966
3967 Webdav options
3968 –etag-hash
3969 This controls the ETag header. Without this flag the ETag will be
3970 based on the ModTime and Size of the object.
3971
3972 If this flag is set to “auto” then rclone will choose the first sup‐
3973 ported hash on the backend or you can use a named hash such as “MD5” or
3974 “SHA-1”.
3975
3976 Use “rclone hashsum” to see the full list.
3977
3978 Server options
3979 Use –addr to specify which IP address and port the server should listen
3980 on, eg –addr 1.2.3.4:8000 or –addr :8080 to listen to all IPs. By de‐
3981 fault it only listens on localhost. You can use port :0 to let the OS
3982 choose an available port.
3983
3984 If you set –addr to listen on a public or LAN accessible IP address
3985 then using Authentication is advised - see the next section for info.
3986
3987 –server-read-timeout and –server-write-timeout can be used to control
3988 the timeouts on the server. Note that this is the total time for a
3989 transfer.
3990
3991 –max-header-bytes controls the maximum number of bytes the server will
3992 accept in the HTTP header.
3993
3994 –baseurl controls the URL prefix that rclone serves from. By default
3995 rclone will serve from the root. If you used –baseurl “/rclone” then
3996 rclone would serve from a URL starting with “/rclone/”. This is useful
3997 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
3998 ing and trailing “/” on –baseurl, so –baseurl “rclone”, –baseurl
3999 “/rclone” and –baseurl “/rclone/” are all treated identically.
4000
4001 Authentication
4002 By default this will serve files without needing a login.
4003
4004 You can either use an htpasswd file which can take lots of users, or
4005 set a single username and password with the –user and –pass flags.
4006
4007 Use –htpasswd /path/to/htpasswd to provide an htpasswd file. This is
4008 in standard apache format and supports MD5, SHA1 and BCrypt for basic
4009 authentication. Bcrypt is recommended.
4010
4011 To create an htpasswd file:
4012
4013 touch htpasswd
4014 htpasswd -B htpasswd user
4015 htpasswd -B htpasswd anotherUser
4016
4017 The password file can be updated while rclone is running.
4018
4019 Use –realm to set the authentication realm.
4020
4021 SSL/TLS
4022 By default this will serve over http. If you want you can serve over
4023 https. You will need to supply the –cert and –key flags. If you wish
4024 to do client side certificate validation then you will need to supply
4025 –client-ca also.
4026
4027 –cert should be a either a PEM encoded certificate or a concatenation
4028 of that with the CA certificate. –key should be the PEM encoded pri‐
4029 vate key and –client-ca should be the PEM encoded client certificate
4030 authority certificate.
4031
4032 Directory Cache
4033 Using the --dir-cache-time flag, you can set how long a directory
4034 should be considered up to date and not refreshed from the backend.
4035 Changes made locally in the mount may appear immediately or invalidate
4036 the cache. However, changes done on the remote will only be picked up
4037 once the cache expires.
4038
4039 Alternatively, you can send a SIGHUP signal to rclone for it to flush
4040 all directory caches, regardless of how old they are. Assuming only
4041 one rclone instance is running, you can reset the cache like this:
4042
4043 kill -SIGHUP $(pidof rclone)
4044
4045 If you configure rclone with a remote control (/rc) then you can use
4046 rclone rc to flush the whole directory cache:
4047
4048 rclone rc vfs/forget
4049
4050 Or individual files or directories:
4051
4052 rclone rc vfs/forget file=path/to/file dir=path/to/dir
4053
4054 File Buffering
4055 The --buffer-size flag determines the amount of memory, that will be
4056 used to buffer data in advance.
4057
4058 Each open file descriptor will try to keep the specified amount of data
4059 in memory at all times. The buffered data is bound to one file de‐
4060 scriptor and won’t be shared between multiple open file descriptors of
4061 the same file.
4062
4063 This flag is a upper limit for the used memory per file descriptor.
4064 The buffer will only use memory for data that is downloaded but not not
4065 yet read. If the buffer is empty, only a small amount of memory will
4066 be used. The maximum memory used by rclone for buffering can be up to
4067 --buffer-size * open files.
4068
4069 File Caching
4070 These flags control the VFS file caching options. The VFS layer is
4071 used by rclone mount to make a cloud storage system work more like a
4072 normal file system.
4073
4074 You’ll need to enable VFS caching if you want, for example, to read and
4075 write simultaneously to a file. See below for more details.
4076
4077 Note that the VFS cache works in addition to the cache backend and you
4078 may find that you need one or the other or both.
4079
4080 --cache-dir string Directory rclone will use for caching.
4081 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4082 --vfs-cache-mode string Cache mode off|minimal|writes|full (default "off")
4083 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4084 --vfs-cache-max-size int Max total size of objects in the cache. (default off)
4085
4086 If run with -vv rclone will print the location of the file cache. The
4087 files are stored in the user cache file area which is OS dependent but
4088 can be controlled with --cache-dir or setting the appropriate environ‐
4089 ment variable.
4090
4091 The cache has 4 different modes selected by --vfs-cache-mode. The
4092 higher the cache mode the more compatible rclone becomes at the cost of
4093 using disk space.
4094
4095 Note that files are written back to the remote only when they are
4096 closed so if rclone is quit or dies with open files then these won’t
4097 get written back to the remote. However they will still be in the on
4098 disk cache.
4099
4100 If using –vfs-cache-max-size note that the cache may exceed this size
4101 for two reasons. Firstly because it is only checked every
4102 –vfs-cache-poll-interval. Secondly because open files cannot be evict‐
4103 ed from the cache.
4104
4105 –vfs-cache-mode off
4106 In this mode the cache will read directly from the remote and write di‐
4107 rectly to the remote without caching anything on disk.
4108
4109 This will mean some operations are not possible
4110
4111 · Files can’t be opened for both read AND write
4112
4113 · Files opened for write can’t be seeked
4114
4115 · Existing files opened for write must have O_TRUNC set
4116
4117 · Files open for read with O_TRUNC will be opened write only
4118
4119 · Files open for write only will behave as if O_TRUNC was supplied
4120
4121 · Open modes O_APPEND, O_TRUNC are ignored
4122
4123 · If an upload fails it can’t be retried
4124
4125 –vfs-cache-mode minimal
4126 This is very similar to “off” except that files opened for read AND
4127 write will be buffered to disks. This means that files opened for
4128 write will be a lot more compatible, but uses the minimal disk space.
4129
4130 These operations are not possible
4131
4132 · Files opened for write only can’t be seeked
4133
4134 · Existing files opened for write must have O_TRUNC set
4135
4136 · Files opened for write only will ignore O_APPEND, O_TRUNC
4137
4138 · If an upload fails it can’t be retried
4139
4140 –vfs-cache-mode writes
4141 In this mode files opened for read only are still read directly from
4142 the remote, write only and read/write files are buffered to disk first.
4143
4144 This mode should support all normal file system operations.
4145
4146 If an upload fails it will be retried up to –low-level-retries times.
4147
4148 –vfs-cache-mode full
4149 In this mode all reads and writes are buffered to and from disk. When
4150 a file is opened for read it will be downloaded in its entirety first.
4151
4152 This may be appropriate for your needs, or you may prefer to look at
4153 the cache backend which does a much more sophisticated job of caching,
4154 including caching directory hierarchies and chunks of files.
4155
4156 In this mode, unlike the others, when a file is written to the disk, it
4157 will be kept on the disk after it is written to the remote. It will be
4158 purged on a schedule according to --vfs-cache-max-age.
4159
4160 This mode should support all normal file system operations.
4161
4162 If an upload or download fails it will be retried up to –low-level-re‐
4163 tries times.
4164
4165 Auth Proxy
4166 If you supply the parameter --auth-proxy /path/to/program then rclone
4167 will use that program to generate backends on the fly which then are
4168 used to authenticate incoming requests. This uses a simple JSON based
4169 protocl with input on STDIN and output on STDOUT.
4170
4171 There is an example program bin/test_proxy.py
4172 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
4173 rclone source code.
4174
4175 The program’s job is to take a user and pass on the input and turn
4176 those into the config for a backend on STDOUT in JSON format. This
4177 config will have any default parameters for the backend added, but it
4178 won’t use configuration from environment variables or command line op‐
4179 tions - it is the job of the proxy program to make a complete config.
4180
4181 This config generated must have this extra parameter - _root - root to
4182 use for the backend
4183
4184 And it may have this parameter - _obscure - comma separated strings for
4185 parameters to obscure
4186
4187 For example the program might take this on STDIN
4188
4189 {
4190 "user": "me",
4191 "pass": "mypassword"
4192 }
4193
4194 And return this on STDOUT
4195
4196 {
4197 "type": "sftp",
4198 "_root": "",
4199 "_obscure": "pass",
4200 "user": "me",
4201 "pass": "mypassword",
4202 "host": "sftp.example.com"
4203 }
4204
4205 This would mean that an SFTP backend would be created on the fly for
4206 the user and pass returned in the output to the host given. Note that
4207 since _obscure is set to pass, rclone will obscure the pass parameter
4208 before creating the backend (which is required for sftp backends).
4209
4210 The progam can manipulate the supplied user in any way, for example to
4211 make proxy to many different sftp backends, you could make the user be
4212 user@example.com and then set the host to example.com in the output and
4213 the user to user. For security you’d probably want to restrict the
4214 host to a limited list.
4215
4216 Note that an internal cache is keyed on user so only use that for con‐
4217 figuration, don’t use pass. This also means that if a user’s password
4218 is changed the cache will need to expire (which takes 5 mins) before it
4219 takes effect.
4220
4221 This can be used to build general purpose proxies to any kind of back‐
4222 end that rclone supports.
4223
4224 rclone serve webdav remote:path [flags]
4225
4226 Options
4227 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
4228 --auth-proxy string A program to use to create the backend from the auth.
4229 --baseurl string Prefix for URLs - leave blank for root.
4230 --cert string SSL PEM key (concatenation of certificate and CA certificate)
4231 --client-ca string Client certificate authority to verify clients with
4232 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
4233 --dir-perms FileMode Directory permissions (default 0777)
4234 --disable-dir-list Disable HTML directory list on GET request for a directory
4235 --etag-hash string Which hash to use for the ETag, or auto or blank for off
4236 --file-perms FileMode File permissions (default 0666)
4237 --gid uint32 Override the gid field set by the filesystem. (default 1000)
4238 -h, --help help for webdav
4239 --htpasswd string htpasswd file - if not provided no authentication is done
4240 --key string SSL PEM Private key
4241 --max-header-bytes int Maximum size of request header (default 4096)
4242 --no-checksum Don't compare checksums on up/download.
4243 --no-modtime Don't read/write the modification time (can speed things up).
4244 --no-seek Don't allow seeking in files.
4245 --pass string Password for authentication.
4246 --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)
4247 --read-only Mount read-only.
4248 --realm string realm for authentication (default "rclone")
4249 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
4250 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
4251 --uid uint32 Override the uid field set by the filesystem. (default 1000)
4252 --umask int Override the permission bits set by the filesystem. (default 2)
4253 --user string User name for authentication.
4254 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4255 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4256 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4257 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4258 --vfs-case-insensitive If a file name not found, find a case insensitive match.
4259 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4260 --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)
4261
4262 See the global flags page (https://rclone.org/flags/) for global op‐
4263 tions not listed here.
4264
4265 SEE ALSO
4266 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
4267 remote over a protocol.
4268
4269 rclone settier
4270 Changes storage class/tier of objects in remote.
4271
4272 Synopsis
4273 rclone settier changes storage tier or class at remote if supported.
4274 Few cloud storage services provides different storage classes on ob‐
4275 jects, for example AWS S3 and Glacier, Azure Blob storage - Hot, Cool
4276 and Archive, Google Cloud Storage, Regional Storage, Nearline, Coldline
4277 etc.
4278
4279 Note that, certain tier changes make objects not available to access
4280 immediately. For example tiering to archive in azure blob storage
4281 makes objects in frozen state, user can restore by setting tier to
4282 Hot/Cool, similarly S3 to Glacier makes object inaccessible.true
4283
4284 You can use it to tier single object
4285
4286 rclone settier Cool remote:path/file
4287
4288 Or use rclone filters to set tier on only specific files
4289
4290 rclone --include "*.txt" settier Hot remote:path/dir
4291
4292 Or just provide remote directory and all files in directory will be
4293 tiered
4294
4295 rclone settier tier remote:path/dir
4296
4297 rclone settier tier remote:path [flags]
4298
4299 Options
4300 -h, --help help for settier
4301
4302 See the global flags page (https://rclone.org/flags/) for global op‐
4303 tions not listed here.
4304
4305 SEE ALSO
4306 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4307 commands, flags and backends.
4308
4309 rclone touch
4310 Create new file or change file modification time.
4311
4312 Synopsis
4313 Create new file or change file modification time.
4314
4315 rclone touch remote:path [flags]
4316
4317 Options
4318 -h, --help help for touch
4319 -C, --no-create Do not create the file if it does not exist.
4320 -t, --timestamp string Change the modification times to the specified time instead of the current time of day. The argument is of the form 'YYMMDD' (ex. 17.10.30) or 'YYYY-MM-DDTHH:MM:SS' (ex. 2006-01-02T15:04:05)
4321
4322 See the global flags page (https://rclone.org/flags/) for global op‐
4323 tions not listed here.
4324
4325 SEE ALSO
4326 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4327 commands, flags and backends.
4328
4329 rclone tree
4330 List the contents of the remote in a tree like fashion.
4331
4332 Synopsis
4333 rclone tree lists the contents of a remote in a similar way to the unix
4334 tree command.
4335
4336 For example
4337
4338 $ rclone tree remote:path
4339 /
4340 ├── file1
4341 ├── file2
4342 ├── file3
4343 └── subdir
4344 ├── file4
4345 └── file5
4346
4347 1 directories, 5 files
4348
4349 You can use any of the filtering options with the tree command (eg –in‐
4350 clude and –exclude). You can also use –fast-list.
4351
4352 The tree command has many options for controlling the listing which are
4353 compatible with the tree command. Note that not all of them have short
4354 options as they conflict with rclone’s short options.
4355
4356 rclone tree remote:path [flags]
4357
4358 Options
4359 -a, --all All files are listed (list . files too).
4360 -C, --color Turn colorization on always.
4361 -d, --dirs-only List directories only.
4362 --dirsfirst List directories before files (-U disables).
4363 --full-path Print the full path prefix for each file.
4364 -h, --help help for tree
4365 --human Print the size in a more human readable way.
4366 --level int Descend only level directories deep.
4367 -D, --modtime Print the date of last modification.
4368 -i, --noindent Don't print indentation lines.
4369 --noreport Turn off file/directory count at end of tree listing.
4370 -o, --output string Output to file instead of stdout.
4371 -p, --protections Print the protections for each file.
4372 -Q, --quote Quote filenames with double quotes.
4373 -s, --size Print the size in bytes of each file.
4374 --sort string Select sort: name,version,size,mtime,ctime.
4375 --sort-ctime Sort files by last status change time.
4376 -t, --sort-modtime Sort files by last modification time.
4377 -r, --sort-reverse Reverse the order of the sort.
4378 -U, --unsorted Leave files unsorted.
4379 --version Sort files alphanumerically by version.
4380
4381 See the global flags page (https://rclone.org/flags/) for global op‐
4382 tions not listed here.
4383
4384 SEE ALSO
4385 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
4386 commands, flags and backends.
4387
4388 Copying single files
4389 rclone normally syncs or copies directories. However, if the source
4390 remote points to a file, rclone will just copy that file. The destina‐
4391 tion remote must point to a directory - rclone will give the error
4392 Failed to create file system for "remote:file": is a file not a direc‐
4393 tory if it isn’t.
4394
4395 For example, suppose you have a remote with a file in called test.jpg,
4396 then you could copy just that file like this
4397
4398 rclone copy remote:test.jpg /tmp/download
4399
4400 The file test.jpg will be placed inside /tmp/download.
4401
4402 This is equivalent to specifying
4403
4404 rclone copy --files-from /tmp/files remote: /tmp/download
4405
4406 Where /tmp/files contains the single line
4407
4408 test.jpg
4409
4410 It is recommended to use copy when copying individual files, not sync.
4411 They have pretty much the same effect but copy will use a lot less mem‐
4412 ory.
4413
4414 Syntax of remote paths
4415 The syntax of the paths passed to the rclone command are as follows.
4416
4417 /path/to/dir
4418 This refers to the local file system.
4419
4420 On Windows only \ may be used instead of / in local paths only, non lo‐
4421 cal paths must use /.
4422
4423 These paths needn’t start with a leading / - if they don’t then they
4424 will be relative to the current directory.
4425
4426 remote:path/to/dir
4427 This refers to a directory path/to/dir on remote: as defined in the
4428 config file (configured with rclone config).
4429
4430 remote:/path/to/dir
4431 On most backends this is refers to the same directory as re‐
4432 mote:path/to/dir and that format should be preferred. On a very small
4433 number of remotes (FTP, SFTP, Dropbox for business) this will refer to
4434 a different directory. On these, paths without a leading / will refer
4435 to your “home” directory and paths with a leading / will refer to the
4436 root.
4437
4438 :backend:path/to/dir
4439 This is an advanced form for creating remotes on the fly. backend
4440 should be the name or prefix of a backend (the type in the config file)
4441 and all the configuration for the backend should be provided on the
4442 command line (or in environment variables).
4443
4444 Here are some examples:
4445
4446 rclone lsd --http-url https://pub.rclone.org :http:
4447
4448 To list all the directories in the root of https://pub.rclone.org/.
4449
4450 rclone lsf --http-url https://example.com :http:path/to/dir
4451
4452 To list files and directories in https://example.com/path/to/dir/
4453
4454 rclone copy --http-url https://example.com :http:path/to/dir /tmp/dir
4455
4456 To copy files and directories in https://example.com/path/to/dir to
4457 /tmp/dir.
4458
4459 rclone copy --sftp-host example.com :sftp:path/to/dir /tmp/dir
4460
4461 To copy files and directories from example.com in the relative directo‐
4462 ry path/to/dir to /tmp/dir using sftp.
4463
4464 Quoting and the shell
4465 When you are typing commands to your computer you are using something
4466 called the command line shell. This interprets various characters in
4467 an OS specific way.
4468
4469 Here are some gotchas which may help users unfamiliar with the shell
4470 rules
4471
4472 Linux / OSX
4473 If your names have spaces or shell metacharacters (eg *, ?, $, ', "
4474 etc) then you must quote them. Use single quotes ' by default.
4475
4476 rclone copy 'Important files?' remote:backup
4477
4478 If you want to send a ' you will need to use ", eg
4479
4480 rclone copy "O'Reilly Reviews" remote:backup
4481
4482 The rules for quoting metacharacters are complicated and if you want
4483 the full details you’ll have to consult the manual page for your shell.
4484
4485 Windows
4486 If your names have spaces in you need to put them in ", eg
4487
4488 rclone copy "E:\folder name\folder name\folder name" remote:backup
4489
4490 If you are using the root directory on its own then don’t quote it (see
4491 #464 (https://github.com/rclone/rclone/issues/464) for why), eg
4492
4493 rclone copy E:\ remote:backup
4494
4495 Copying files or directories with : in the names
4496 rclone uses : to mark a remote name. This is, however, a valid file‐
4497 name component in non-Windows OSes. The remote name parser will only
4498 search for a : up to the first / so if you need to act on a file or di‐
4499 rectory like this then use the full path starting with a /, or use ./
4500 as a current directory prefix.
4501
4502 So to sync a directory called sync:me to a remote called remote: use
4503
4504 rclone sync ./sync:me remote:path
4505
4506 or
4507
4508 rclone sync /full/path/to/sync:me remote:path
4509
4510 Server Side Copy
4511 Most remotes (but not all - see the overview (/overview/#optional-fea‐
4512 tures)) support server side copy.
4513
4514 This means if you want to copy one folder to another then rclone won’t
4515 download all the files and re-upload them; it will instruct the server
4516 to copy them in place.
4517
4518 Eg
4519
4520 rclone copy s3:oldbucket s3:newbucket
4521
4522 Will copy the contents of oldbucket to newbucket without downloading
4523 and re-uploading.
4524
4525 Remotes which don’t support server side copy will download and re-up‐
4526 load in this case.
4527
4528 Server side copies are used with sync and copy and will be identified
4529 in the log when using the -v flag. The move command may also use them
4530 if remote doesn’t support server side move directly. This is done by
4531 issuing a server side copy then a delete which is much quicker than a
4532 download and re-upload.
4533
4534 Server side copies will only be attempted if the remote names are the
4535 same.
4536
4537 This can be used when scripting to make aged backups efficiently, eg
4538
4539 rclone sync remote:current-backup remote:previous-backup
4540 rclone sync /path/to/files remote:current-backup
4541
4542 Options
4543 Rclone has a number of options to control its behaviour.
4544
4545 Options that take parameters can have the values passed in two ways,
4546 --option=value or --option value. However boolean (true/false) options
4547 behave slightly differently to the other options in that --boolean sets
4548 the option to true and the absence of the flag sets it to false. It is
4549 also possible to specify --boolean=false or --boolean=true. Note that
4550 --boolean false is not valid - this is parsed as --boolean and the
4551 false is parsed as an extra command line argument for rclone.
4552
4553 Options which use TIME use the go time parser. A duration string is a
4554 possibly signed sequence of decimal numbers, each with optional frac‐
4555 tion and a unit suffix, such as “300ms”, “-1.5h” or “2h45m”. Valid
4556 time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”.
4557
4558 Options which use SIZE use kByte by default. However, a suffix of b
4559 for bytes, k for kBytes, M for MBytes, G for GBytes, T for TBytes and P
4560 for PBytes may be used. These are the binary units, eg 1, 2**10,
4561 2**20, 2**30 respectively.
4562
4563 –backup-dir=DIR
4564 When using sync, copy or move any files which would have been overwrit‐
4565 ten or deleted are moved in their original hierarchy into this directo‐
4566 ry.
4567
4568 If --suffix is set, then the moved files will have the suffix added to
4569 them. If there is a file with the same path (after the suffix has been
4570 added) in DIR, then it will be overwritten.
4571
4572 The remote in use must support server side move or copy and you must
4573 use the same remote as the destination of the sync. The backup direc‐
4574 tory must not overlap the destination directory.
4575
4576 For example
4577
4578 rclone sync /path/to/local remote:current --backup-dir remote:old
4579
4580 will sync /path/to/local to remote:current, but for any files which
4581 would have been updated or deleted will be stored in remote:old.
4582
4583 If running rclone from a script you might want to use today’s date as
4584 the directory name passed to --backup-dir to store the old files, or
4585 you might want to pass --suffix with today’s date.
4586
4587 See --compare-dest and --copy-dest.
4588
4589 –bind string
4590 Local address to bind to for outgoing connections. This can be an IPv4
4591 address (1.2.3.4), an IPv6 address (1234::789A) or host name. If the
4592 host name doesn’t resolve or resolves to more than one IP address it
4593 will give an error.
4594
4595 –bwlimit=BANDWIDTH_SPEC
4596 This option controls the bandwidth limit. Limits can be specified in
4597 two ways: As a single limit, or as a timetable.
4598
4599 Single limits last for the duration of the session. To use a single
4600 limit, specify the desired bandwidth in kBytes/s, or use a suffix
4601 b|k|M|G. The default is 0 which means to not limit bandwidth.
4602
4603 For example, to limit bandwidth usage to 10 MBytes/s use --bwlimit 10M
4604
4605 It is also possible to specify a “timetable” of limits, which will
4606 cause certain limits to be applied at certain times. To specify a
4607 timetable, format your entries as “WEEKDAY-HH:MM,BANDWIDTH WEEK‐
4608 DAY-HH:MM,BANDWIDTH...” where: WEEKDAY is optional element. It could
4609 be written as whole world or only using 3 first characters. HH:MM is
4610 an hour from 00:00 to 23:59.
4611
4612 An example of a typical timetable to avoid link saturation during day‐
4613 time working hours could be:
4614
4615 --bwlimit "08:00,512 12:00,10M 13:00,512 18:00,30M 23:00,off"
4616
4617 In this example, the transfer bandwidth will be every day set to
4618 512kBytes/sec at 8am. At noon, it will raise to 10Mbytes/s, and drop
4619 back to 512kBytes/sec at 1pm. At 6pm, the bandwidth limit will be set
4620 to 30MBytes/s, and at 11pm it will be completely disabled (full speed).
4621 Anything between 11pm and 8am will remain unlimited.
4622
4623 An example of timetable with WEEKDAY could be:
4624
4625 --bwlimit "Mon-00:00,512 Fri-23:59,10M Sat-10:00,1M Sun-20:00,off"
4626
4627 It mean that, the transfer bandwidth will be set to 512kBytes/sec on
4628 Monday. It will raise to 10Mbytes/s before the end of Friday. At
4629 10:00 on Sunday it will be set to 1Mbyte/s. From 20:00 at Sunday will
4630 be unlimited.
4631
4632 Timeslots without weekday are extended to whole week. So this one ex‐
4633 ample:
4634
4635 --bwlimit "Mon-00:00,512 12:00,1M Sun-20:00,off"
4636
4637 Is equal to this:
4638
4639 --bwlimit "Mon-00:00,512Mon-12:00,1M Tue-12:00,1M Wed-12:00,1M
4640 Thu-12:00,1M Fri-12:00,1M Sat-12:00,1M Sun-12:00,1M Sun-20:00,off"
4641
4642 Bandwidth limits only apply to the data transfer. They don’t apply to
4643 the bandwidth of the directory listings etc.
4644
4645 Note that the units are Bytes/s, not Bits/s. Typically connections are
4646 measured in Bits/s - to convert divide by 8. For example, let’s say
4647 you have a 10 Mbit/s connection and you wish rclone to use half of it -
4648 5 Mbit/s. This is 5/8 = 0.625MByte/s so you would use a --bwlimit
4649 0.625M parameter for rclone.
4650
4651 On Unix systems (Linux, MacOS, ...) the bandwidth limiter can be tog‐
4652 gled by sending a SIGUSR2 signal to rclone. This allows to remove the
4653 limitations of a long running rclone transfer and to restore it back to
4654 the value specified with --bwlimit quickly when needed. Assuming there
4655 is only one rclone instance running, you can toggle the limiter like
4656 this:
4657
4658 kill -SIGUSR2 $(pidof rclone)
4659
4660 If you configure rclone with a remote control (/rc) then you can use
4661 change the bwlimit dynamically:
4662
4663 rclone rc core/bwlimit rate=1M
4664
4665 –buffer-size=SIZE
4666 Use this sized buffer to speed up file transfers. Each --transfer will
4667 use this much memory for buffering.
4668
4669 When using mount or cmount each open file descriptor will use this much
4670 memory for buffering. See the mount (/commands/rclone_mount/#file-
4671 buffering) documentation for more details.
4672
4673 Set to 0 to disable the buffering for the minimum memory usage.
4674
4675 Note that the memory allocation of the buffers is influenced by the
4676 –use-mmap flag.
4677
4678 –checkers=N
4679 The number of checkers to run in parallel. Checkers do the equality
4680 checking of files during a sync. For some storage systems (eg S3,
4681 Swift, Dropbox) this can take a significant amount of time so they are
4682 run in parallel.
4683
4684 The default is to run 8 checkers in parallel.
4685
4686 -c, –checksum
4687 Normally rclone will look at modification time and size of files to see
4688 if they are equal. If you set this flag then rclone will check the
4689 file hash and size to determine if files are equal.
4690
4691 This is useful when the remote doesn’t support setting modified time
4692 and a more accurate sync is desired than just checking the file size.
4693
4694 This is very useful when transferring between remotes which store the
4695 same hash type on the object, eg Drive and Swift. For details of which
4696 remotes support which hash type see the table in the overview section
4697 (https://rclone.org/overview/).
4698
4699 Eg rclone --checksum sync s3:/bucket swift:/bucket would run much
4700 quicker than without the --checksum flag.
4701
4702 When using this flag, rclone won’t update mtimes of remote files if
4703 they are incorrect as it would normally.
4704
4705 –compare-dest=DIR
4706 When using sync, copy or move DIR is checked in addition to the desti‐
4707 nation for files. If a file identical to the source is found that file
4708 is NOT copied from source. This is useful to copy just files that have
4709 changed since the last backup.
4710
4711 You must use the same remote as the destination of the sync. The com‐
4712 pare directory must not overlap the destination directory.
4713
4714 See --copy-dest and --backup-dir.
4715
4716 –config=CONFIG_FILE
4717 Specify the location of the rclone config file.
4718
4719 Normally the config file is in your home directory as a file called
4720 .config/rclone/rclone.conf (or .rclone.conf if created with an older
4721 version). If $XDG_CONFIG_HOME is set it will be at $XDG_CON‐
4722 FIG_HOME/rclone/rclone.conf.
4723
4724 If there is a file rclone.conf in the same directory as the rclone exe‐
4725 cutable it will be preferred. This file must be created manually for
4726 Rclone to use it, it will never be created automatically.
4727
4728 If you run rclone config file you will see where the default location
4729 is for you.
4730
4731 Use this flag to override the config location, eg rclone --config=".my‐
4732 config" .config.
4733
4734 –contimeout=TIME
4735 Set the connection timeout. This should be in go time format which
4736 looks like 5s for 5 seconds, 10m for 10 minutes, or 3h30m.
4737
4738 The connection timeout is the amount of time rclone will wait for a
4739 connection to go through to a remote object storage system. It is 1m
4740 by default.
4741
4742 –copy-dest=DIR
4743 When using sync, copy or move DIR is checked in addition to the desti‐
4744 nation for files. If a file identical to the source is found that file
4745 is server side copied from DIR to the destination. This is useful for
4746 incremental backup.
4747
4748 The remote in use must support server side copy and you must use the
4749 same remote as the destination of the sync. The compare directory must
4750 not overlap the destination directory.
4751
4752 See --compare-dest and --backup-dir.
4753
4754 –dedupe-mode MODE
4755 Mode to run dedupe command in. One of interactive, skip, first, new‐
4756 est, oldest, rename. The default is interactive. See the dedupe com‐
4757 mand for more information as to what these options mean.
4758
4759 –disable FEATURE,FEATURE,...
4760 This disables a comma separated list of optional features. For example
4761 to disable server side move and server side copy use:
4762
4763 --disable move,copy
4764
4765 The features can be put in in any case.
4766
4767 To see a list of which features can be disabled use:
4768
4769 --disable help
4770
4771 See the overview features (/overview/#features) and optional features
4772 (/overview/#optional-features) to get an idea of which feature does
4773 what.
4774
4775 This flag can be useful for debugging and in exceptional circumstances
4776 (eg Google Drive limiting the total volume of Server Side Copies to
4777 100GB/day).
4778
4779 -n, –dry-run
4780 Do a trial run with no permanent changes. Use this to see what rclone
4781 would do without actually doing it. Useful when setting up the sync
4782 command which deletes files in the destination.
4783
4784 –expect-continue-timeout=TIME
4785 This specifies the amount of time to wait for a server’s first response
4786 headers after fully writing the request headers if the request has an
4787 “Expect: 100-continue” header. Not all backends support using this.
4788
4789 Zero means no timeout and causes the body to be sent immediately, with‐
4790 out waiting for the server to approve. This time does not include the
4791 time to send the request header.
4792
4793 The default is 1s. Set to 0 to disable.
4794
4795 –ignore-case-sync
4796 Using this option will cause rclone to ignore the case of the files
4797 when synchronizing so files will not be copied/synced when the existing
4798 filenames are the same, even if the casing is different.
4799
4800 –ignore-checksum
4801 Normally rclone will check that the checksums of transferred files
4802 match, and give an error “corrupted on transfer” if they don’t.
4803
4804 You can use this option to skip that check. You should only use it if
4805 you have had the “corrupted on transfer” error message and you are sure
4806 you might want to transfer potentially corrupted data.
4807
4808 –ignore-existing
4809 Using this option will make rclone unconditionally skip all files that
4810 exist on the destination, no matter the content of these files.
4811
4812 While this isn’t a generally recommended option, it can be useful in
4813 cases where your files change due to encryption. However, it cannot
4814 correct partial transfers in case a transfer was interrupted.
4815
4816 –ignore-size
4817 Normally rclone will look at modification time and size of files to see
4818 if they are equal. If you set this flag then rclone will check only
4819 the modification time. If --checksum is set then it only checks the
4820 checksum.
4821
4822 It will also cause rclone to skip verifying the sizes are the same af‐
4823 ter transfer.
4824
4825 This can be useful for transferring files to and from OneDrive which
4826 occasionally misreports the size of image files (see #399
4827 (https://github.com/rclone/rclone/issues/399) for more info).
4828
4829 -I, –ignore-times
4830 Using this option will cause rclone to unconditionally upload all files
4831 regardless of the state of files on the destination.
4832
4833 Normally rclone would skip any files that have the same modification
4834 time and are the same size (or have the same checksum if using --check‐
4835 sum).
4836
4837 –immutable
4838 Treat source and destination files as immutable and disallow modifica‐
4839 tion.
4840
4841 With this option set, files will be created and deleted as requested,
4842 but existing files will never be updated. If an existing file does not
4843 match between the source and destination, rclone will give the error
4844 Source and destination exist but do not match: immutable file modified.
4845
4846 Note that only commands which transfer files (e.g. sync, copy, move)
4847 are affected by this behavior, and only modification is disallowed.
4848 Files may still be deleted explicitly (e.g. delete, purge) or implicit‐
4849 ly (e.g. sync, move). Use copy --immutable if it is desired to avoid
4850 deletion as well as modification.
4851
4852 This can be useful as an additional layer of protection for immutable
4853 or append-only data sets (notably backup archives), where modification
4854 implies corruption and should not be propagated.
4855
4856 –leave-root
4857 During rmdirs it will not remove root directory, even if it’s empty.
4858
4859 –log-file=FILE
4860 Log all of rclone’s output to FILE. This is not active by default.
4861 This can be useful for tracking down problems with syncs in combination
4862 with the -v flag. See the Logging section for more info.
4863
4864 Note that if you are using the logrotate program to manage rclone’s
4865 logs, then you should use the copytruncate option as rclone doesn’t
4866 have a signal to rotate logs.
4867
4868 –log-format LIST
4869 Comma separated list of log format options. date, time, microseconds,
4870 longfile, shortfile, UTC. The default is “date,time”.
4871
4872 –log-level LEVEL
4873 This sets the log level for rclone. The default log level is NOTICE.
4874
4875 DEBUG is equivalent to -vv. It outputs lots of debug info - useful for
4876 bug reports and really finding out what rclone is doing.
4877
4878 INFO is equivalent to -v. It outputs information about each transfer
4879 and prints stats once a minute by default.
4880
4881 NOTICE is the default log level if no logging flags are supplied. It
4882 outputs very little when things are working normally. It outputs warn‐
4883 ings and significant events.
4884
4885 ERROR is equivalent to -q. It only outputs error messages.
4886
4887 –use-json-log
4888 This switches the log format to JSON for rclone. The fields of json
4889 log are level, msg, source, time.
4890
4891 –low-level-retries NUMBER
4892 This controls the number of low level retries rclone does.
4893
4894 A low level retry is used to retry a failing operation - typically one
4895 HTTP request. This might be uploading a chunk of a big file for exam‐
4896 ple. You will see low level retries in the log with the -v flag.
4897
4898 This shouldn’t need to be changed from the default in normal opera‐
4899 tions. However, if you get a lot of low level retries you may wish to
4900 reduce the value so rclone moves on to a high level retry (see the
4901 --retries flag) quicker.
4902
4903 Disable low level retries with --low-level-retries 1.
4904
4905 –max-backlog=N
4906 This is the maximum allowable backlog of files in a sync/copy/move
4907 queued for being checked or transferred.
4908
4909 This can be set arbitrarily large. It will only use memory when the
4910 queue is in use. Note that it will use in the order of N kB of memory
4911 when the backlog is in use.
4912
4913 Setting this large allows rclone to calculate how many files are pend‐
4914 ing more accurately, give a more accurate estimated finish time and
4915 make --order-by work more accurately.
4916
4917 Setting this small will make rclone more synchronous to the listings of
4918 the remote which may be desirable.
4919
4920 –max-delete=N
4921 This tells rclone not to delete more than N files. If that limit is
4922 exceeded then a fatal error will be generated and rclone will stop the
4923 operation in progress.
4924
4925 –max-depth=N
4926 This modifies the recursion depth for all the commands except purge.
4927
4928 So if you do rclone --max-depth 1 ls remote:path you will see only the
4929 files in the top level directory. Using --max-depth 2 means you will
4930 see all the files in first two directory levels and so on.
4931
4932 For historical reasons the lsd command defaults to using a --max-depth
4933 of 1 - you can override this with the command line flag.
4934
4935 You can use this command to disable recursion (with --max-depth 1).
4936
4937 Note that if you use this with sync and --delete-excluded the files not
4938 recursed through are considered excluded and will be deleted on the
4939 destination. Test first with --dry-run if you are not sure what will
4940 happen.
4941
4942 –max-duration=TIME
4943 Rclone will stop scheduling new transfers when it has run for the dura‐
4944 tion specified.
4945
4946 Defaults to off.
4947
4948 When the limit is reached any existing transfers will complete.
4949
4950 Rclone won’t exit with an error if the transfer limit is reached.
4951
4952 –max-transfer=SIZE
4953 Rclone will stop transferring when it has reached the size specified.
4954 Defaults to off.
4955
4956 When the limit is reached all transfers will stop immediately.
4957
4958 Rclone will exit with exit code 8 if the transfer limit is reached.
4959
4960 –modify-window=TIME
4961 When checking whether a file has been modified, this is the maximum al‐
4962 lowed time difference that a file can have and still be considered
4963 equivalent.
4964
4965 The default is 1ns unless this is overridden by a remote. For example
4966 OS X only stores modification times to the nearest second so if you are
4967 reading and writing to an OS X filing system this will be 1s by de‐
4968 fault.
4969
4970 This command line flag allows you to override that computed default.
4971
4972 –multi-thread-cutoff=SIZE
4973 When downloading files to the local backend above this size, rclone
4974 will use multiple threads to download the file. (default 250M)
4975
4976 Rclone preallocates the file (using fallocate(FALLOC_FL_KEEP_SIZE) on
4977 unix or NTSetInformationFile on Windows both of which takes no time)
4978 then each thread writes directly into the file at the correct place.
4979 This means that rclone won’t create fragmented or sparse files and
4980 there won’t be any assembly time at the end of the transfer.
4981
4982 The number of threads used to dowload is controlled by --mul‐
4983 ti-thread-streams.
4984
4985 Use -vv if you wish to see info about the threads.
4986
4987 This will work with the sync/copy/move commands and friends copy‐
4988 to/moveto. Multi thread downloads will be used with rclone mount and
4989 rclone serve if --vfs-cache-mode is set to writes or above.
4990
4991 NB that this only works for a local destination but will work with any
4992 source.
4993
4994 NB that multi thread copies are disabled for local to local copies as
4995 they are faster without unless --multi-thread-streams is set explicit‐
4996 ly.
4997
4998 –multi-thread-streams=N
4999 When using multi thread downloads (see above --multi-thread-cutoff)
5000 this sets the maximum number of streams to use. Set to 0 to disable
5001 multi thread downloads. (Default 4)
5002
5003 Exactly how many streams rclone uses for the download depends on the
5004 size of the file. To calculate the number of download streams Rclone
5005 divides the size of the file by the --multi-thread-cutoff and rounds
5006 up, up to the maximum set with --multi-thread-streams.
5007
5008 So if --multi-thread-cutoff 250MB and --multi-thread-streams 4 are in
5009 effect (the defaults):
5010
5011 · 0MB.250MB files will be downloaded with 1 stream
5012
5013 · 250MB..500MB files will be downloaded with 2 streams
5014
5015 · 500MB..750MB files will be downloaded with 3 streams
5016
5017 · 750MB+ files will be downloaded with 4 streams
5018
5019 –no-check-dest
5020 The --no-check-dest can be used with move or copy and it causes rclone
5021 not to check the destination at all when copying files.
5022
5023 This means that:
5024
5025 · the destination is not listed minimising the API calls
5026
5027 · files are always transferred
5028
5029 · this can cause duplicates on remotes which allow it (eg Google Drive)
5030
5031 · --retries 1 is recommended otherwise you’ll transfer everything again
5032 on a retry
5033
5034 This flag is useful to minimise the transactions if you know that none
5035 of the files are on the destination.
5036
5037 This is a specialized flag which should be ignored by most users!
5038
5039 –no-gzip-encoding
5040 Don’t set Accept-Encoding: gzip. This means that rclone won’t ask the
5041 server for compressed files automatically. Useful if you’ve set the
5042 server to return files with Content-Encoding: gzip but you uploaded
5043 compressed files.
5044
5045 There is no need to set this in normal operation, and doing so will de‐
5046 crease the network transfer efficiency of rclone.
5047
5048 –no-traverse
5049 The --no-traverse flag controls whether the destination file system is
5050 traversed when using the copy or move commands. --no-traverse is not
5051 compatible with sync and will be ignored if you supply it with sync.
5052
5053 If you are only copying a small number of files (or are filtering most
5054 of the files) and/or have a large number of files on the destination
5055 then --no-traverse will stop rclone listing the destination and save
5056 time.
5057
5058 However, if you are copying a large number of files, especially if you
5059 are doing a copy where lots of the files under consideration haven’t
5060 changed and won’t need copying then you shouldn’t use --no-traverse.
5061
5062 See rclone copy (https://rclone.org/commands/rclone_copy/) for an exam‐
5063 ple of how to use it.
5064
5065 –no-update-modtime
5066 When using this flag, rclone won’t update modification times of remote
5067 files if they are incorrect as it would normally.
5068
5069 This can be used if the remote is being synced with another tool also
5070 (eg the Google Drive client).
5071
5072 –order-by string
5073 The --order-by flag controls the order in which files in the backlog
5074 are processed in rclone sync, rclone copy and rclone move.
5075
5076 The order by string is constructed like this. The first part describes
5077 what aspect is being measured:
5078
5079 · size - order by the size of the files
5080
5081 · name - order by the full path of the files
5082
5083 · modtime - order by the modification date of the files
5084
5085 This can have a modifier appended with a comma:
5086
5087 · ascending or asc - order so that the smallest (or oldest) is pro‐
5088 cessed first
5089
5090 · descending or desc - order so that the largest (or newest) is pro‐
5091 cessed first
5092
5093 If no modifier is supplied then the order is ascending.
5094
5095 For example
5096
5097 · --order-by size,desc - send the largest files first
5098
5099 · --order-by modtime,ascending - send the oldest files first
5100
5101 · --order-by name - send the files with alphabetically by path first
5102
5103 If the --order-by flag is not supplied or it is supplied with an empty
5104 string then the default ordering will be used which is as scanned.
5105 With --checkers 1 this is mostly alphabetical, however with the default
5106 --checkers 8 it is somewhat random.
5107
5108 Limitations
5109 The --order-by flag does not do a separate pass over the data. This
5110 means that it may transfer some files out of the order specified if
5111
5112 · there are no files in the backlog or the source has not been fully
5113 scanned yet
5114
5115 · there are more than –max-backlog files in the backlog
5116
5117 Rclone will do its best to transfer the best file it has so in practice
5118 this should not cause a problem. Think of --order-by as being more of
5119 a best efforts flag rather than a perfect ordering.
5120
5121 –password-command SpaceSepList
5122 This flag supplies a program which should supply the config password
5123 when run. This is an alternative to rclone prompting for the password
5124 or setting the RCLONE_CONFIG_PASS variable.
5125
5126 The argument to this should be a command with a space separated list of
5127 arguments. If one of the arguments has a space in then enclose it in
5128 ", if you want a literal " in an argument then enclose the argument in
5129 " and double the ". See CSV encoding (https://godoc.org/encoding/csv)
5130 for more info.
5131
5132 Eg
5133
5134 --password-command echo hello
5135 --password-command echo "hello with space"
5136 --password-command echo "hello with ""quotes"" and space"
5137
5138 See the Configuration Encryption for more info.
5139
5140 -P, –progress
5141 This flag makes rclone update the stats in a static block in the termi‐
5142 nal providing a realtime overview of the transfer.
5143
5144 Any log messages will scroll above the static block. Log messages will
5145 push the static block down to the bottom of the terminal where it will
5146 stay.
5147
5148 Normally this is updated every 500mS but this period can be overridden
5149 with the --stats flag.
5150
5151 This can be used with the --stats-one-line flag for a simpler display.
5152
5153 Note: On Windows until this bug (https://github.com/Azure/go-an‐
5154 siterm/issues/26) is fixed all non-ASCII characters will be replaced
5155 with . when --progress is in use.
5156
5157 -q, –quiet
5158 Normally rclone outputs stats and a completion message. If you set
5159 this flag it will make as little output as possible.
5160
5161 –retries int
5162 Retry the entire sync if it fails this many times it fails (default 3).
5163
5164 Some remotes can be unreliable and a few retries help pick up the files
5165 which didn’t get transferred because of errors.
5166
5167 Disable retries with --retries 1.
5168
5169 –retries-sleep=TIME
5170 This sets the interval between each retry specified by --retries
5171
5172 The default is 0. Use 0 to disable.
5173
5174 –size-only
5175 Normally rclone will look at modification time and size of files to see
5176 if they are equal. If you set this flag then rclone will check only
5177 the size.
5178
5179 This can be useful transferring files from Dropbox which have been mod‐
5180 ified by the desktop sync client which doesn’t set checksums of modifi‐
5181 cation times in the same way as rclone.
5182
5183 –stats=TIME
5184 Commands which transfer data (sync, copy, copyto, move, moveto) will
5185 print data transfer stats at regular intervals to show their progress.
5186
5187 This sets the interval.
5188
5189 The default is 1m. Use 0 to disable.
5190
5191 If you set the stats interval then all commands can show stats. This
5192 can be useful when running other commands, check or mount for example.
5193
5194 Stats are logged at INFO level by default which means they won’t show
5195 at default log level NOTICE. Use --stats-log-level NOTICE or -v to
5196 make them show. See the Logging section for more info on log levels.
5197
5198 Note that on macOS you can send a SIGINFO (which is normally ctrl-T in
5199 the terminal) to make the stats print immediately.
5200
5201 –stats-file-name-length integer
5202 By default, the --stats output will truncate file names and paths
5203 longer than 40 characters. This is equivalent to providing
5204 --stats-file-name-length 40. Use --stats-file-name-length 0 to disable
5205 any truncation of file names printed by stats.
5206
5207 –stats-log-level string
5208 Log level to show --stats output at. This can be DEBUG, INFO, NOTICE,
5209 or ERROR. The default is INFO. This means at the default level of
5210 logging which is NOTICE the stats won’t show - if you want them to then
5211 use --stats-log-level NOTICE. See the Logging section for more info on
5212 log levels.
5213
5214 –stats-one-line
5215 When this is specified, rclone condenses the stats into a single line
5216 showing the most important stats only.
5217
5218 –stats-one-line-date
5219 When this is specified, rclone enables the single-line stats and
5220 prepends the display with a date string. The default is 2006/01/02
5221 15:04:05 -
5222
5223 –stats-one-line-date-format
5224 When this is specified, rclone enables the single-line stats and
5225 prepends the display with a user-supplied date string. The date string
5226 MUST be enclosed in quotes. Follow golang specs
5227 (https://golang.org/pkg/time/#Time.Format) for date formatting syntax.
5228
5229 –stats-unit=bits|bytes
5230 By default, data transfer rates will be printed in bytes/second.
5231
5232 This option allows the data rate to be printed in bits/second.
5233
5234 Data transfer volume will still be reported in bytes.
5235
5236 The rate is reported as a binary unit, not SI unit. So 1 Mbit/s equals
5237 1,048,576 bits/s and not 1,000,000 bits/s.
5238
5239 The default is bytes.
5240
5241 –suffix=SUFFIX
5242 When using sync, copy or move any files which would have been overwrit‐
5243 ten or deleted will have the suffix added to them. If there is a file
5244 with the same path (after the suffix has been added), then it will be
5245 overwritten.
5246
5247 The remote in use must support server side move or copy and you must
5248 use the same remote as the destination of the sync.
5249
5250 This is for use with files to add the suffix in the current directory
5251 or with --backup-dir. See --backup-dir for more info.
5252
5253 For example
5254
5255 rclone sync /path/to/local/file remote:current --suffix .bak
5256
5257 will sync /path/to/local to remote:current, but for any files which
5258 would have been updated or deleted have .bak added.
5259
5260 –suffix-keep-extension
5261 When using --suffix, setting this causes rclone put the SUFFIX before
5262 the extension of the files that it backs up rather than after.
5263
5264 So let’s say we had --suffix -2019-01-01, without the flag file.txt
5265 would be backed up to file.txt-2019-01-01 and with the flag it would be
5266 backed up to file-2019-01-01.txt. This can be helpful to make sure the
5267 suffixed files can still be opened.
5268
5269 –syslog
5270 On capable OSes (not Windows or Plan9) send all log output to syslog.
5271
5272 This can be useful for running rclone in a script or rclone mount.
5273
5274 –syslog-facility string
5275 If using --syslog this sets the syslog facility (eg KERN, USER). See
5276 man syslog for a list of possible facilities. The default facility is
5277 DAEMON.
5278
5279 –tpslimit float
5280 Limit HTTP transactions per second to this. Default is 0 which is used
5281 to mean unlimited transactions per second.
5282
5283 For example to limit rclone to 10 HTTP transactions per second use
5284 --tpslimit 10, or to 1 transaction every 2 seconds use --tpslimit 0.5.
5285
5286 Use this when the number of transactions per second from rclone is
5287 causing a problem with the cloud storage provider (eg getting you
5288 banned or rate limited).
5289
5290 This can be very useful for rclone mount to control the behaviour of
5291 applications using it.
5292
5293 See also --tpslimit-burst.
5294
5295 –tpslimit-burst int
5296 Max burst of transactions for --tpslimit. (default 1)
5297
5298 Normally --tpslimit will do exactly the number of transaction per sec‐
5299 ond specified. However if you supply --tps-burst then rclone can save
5300 up some transactions from when it was idle giving a burst of up to the
5301 parameter supplied.
5302
5303 For example if you provide --tpslimit-burst 10 then if rclone has been
5304 idle for more than 10*--tpslimit then it can do 10 transactions very
5305 quickly before they are limited again.
5306
5307 This may be used to increase performance of --tpslimit without changing
5308 the long term average number of transactions per second.
5309
5310 –track-renames
5311 By default, rclone doesn’t keep track of renamed files, so if you re‐
5312 name a file locally then sync it to a remote, rclone will delete the
5313 old file on the remote and upload a new copy.
5314
5315 If you use this flag, and the remote supports server side copy or serv‐
5316 er side move, and the source and destination have a compatible hash,
5317 then this will track renames during sync operations and perform renam‐
5318 ing server-side.
5319
5320 Files will be matched by size and hash - if both match then a rename
5321 will be considered.
5322
5323 If the destination does not support server-side copy or move, rclone
5324 will fall back to the default behaviour and log an error level message
5325 to the console. Note: Encrypted destinations are not supported by
5326 --track-renames.
5327
5328 Note that --track-renames is incompatible with --no-traverse and that
5329 it uses extra memory to keep track of all the rename candidates.
5330
5331 Note also that --track-renames is incompatible with --delete-before and
5332 will select --delete-after instead of --delete-during.
5333
5334 –delete-(before,during,after)
5335 This option allows you to specify when files on your destination are
5336 deleted when you sync folders.
5337
5338 Specifying the value --delete-before will delete all files present on
5339 the destination, but not on the source before starting the transfer of
5340 any new or updated files. This uses two passes through the file sys‐
5341 tems, one for the deletions and one for the copies.
5342
5343 Specifying --delete-during will delete files while checking and upload‐
5344 ing files. This is the fastest option and uses the least memory.
5345
5346 Specifying --delete-after (the default value) will delay deletion of
5347 files until all new/updated files have been successfully transferred.
5348 The files to be deleted are collected in the copy pass then deleted af‐
5349 ter the copy pass has completed successfully. The files to be deleted
5350 are held in memory so this mode may use more memory. This is the
5351 safest mode as it will only delete files if there have been no errors
5352 subsequent to that. If there have been errors before the deletions
5353 start then you will get the message not deleting files as there were IO
5354 errors.
5355
5356 –fast-list
5357 When doing anything which involves a directory listing (eg sync, copy,
5358 ls - in fact nearly every command), rclone normally lists a directory
5359 and processes it before using more directory lists to process any sub‐
5360 directories. This can be parallelised and works very quickly using the
5361 least amount of memory.
5362
5363 However, some remotes have a way of listing all files beneath a direc‐
5364 tory in one (or a small number) of transactions. These tend to be the
5365 bucket based remotes (eg S3, B2, GCS, Swift, Hubic).
5366
5367 If you use the --fast-list flag then rclone will use this method for
5368 listing directories. This will have the following consequences for the
5369 listing:
5370
5371 · It will use fewer transactions (important if you pay for them)
5372
5373 · It will use more memory. Rclone has to load the whole listing into
5374 memory.
5375
5376 · It may be faster because it uses fewer transactions
5377
5378 · It may be slower because it can’t be parallelized
5379
5380 rclone should always give identical results with and without
5381 --fast-list.
5382
5383 If you pay for transactions and can fit your entire sync listing into
5384 memory then --fast-list is recommended. If you have a very big sync to
5385 do then don’t use --fast-list otherwise you will run out of memory.
5386
5387 If you use --fast-list on a remote which doesn’t support it, then
5388 rclone will just ignore it.
5389
5390 –timeout=TIME
5391 This sets the IO idle timeout. If a transfer has started but then be‐
5392 comes idle for this long it is considered broken and disconnected.
5393
5394 The default is 5m. Set to 0 to disable.
5395
5396 –transfers=N
5397 The number of file transfers to run in parallel. It can sometimes be
5398 useful to set this to a smaller number if the remote is giving a lot of
5399 timeouts or bigger if you have lots of bandwidth and a fast remote.
5400
5401 The default is to run 4 file transfers in parallel.
5402
5403 -u, –update
5404 This forces rclone to skip any files which exist on the destination and
5405 have a modified time that is newer than the source file.
5406
5407 This can be useful when transferring to a remote which doesn’t support
5408 mod times directly (or when using --use-server-modtime to avoid extra
5409 API calls) as it is more accurate than a --size-only check and faster
5410 than using --checksum.
5411
5412 If an existing destination file has a modification time equal (within
5413 the computed modify window precision) to the source file’s, it will be
5414 updated if the sizes are different. If --checksum is set then rclone
5415 will update the destination if the checksums differ too.
5416
5417 If an existing destination file is older than the source file then it
5418 will be updated if the size or checksum differs from the source file.
5419
5420 On remotes which don’t support mod time directly (or when using
5421 --use-server-modtime) the time checked will be the uploaded time. This
5422 means that if uploading to one of these remotes, rclone will skip any
5423 files which exist on the destination and have an uploaded time that is
5424 newer than the modification time of the source file.
5425
5426 –use-mmap
5427 If this flag is set then rclone will use anonymous memory allocated by
5428 mmap on Unix based platforms and VirtualAlloc on Windows for its trans‐
5429 fer buffers (size controlled by --buffer-size). Memory allocated like
5430 this does not go on the Go heap and can be returned to the OS immedi‐
5431 ately when it is finished with.
5432
5433 If this flag is not set then rclone will allocate and free the buffers
5434 using the Go memory allocator which may use more memory as memory pages
5435 are returned less aggressively to the OS.
5436
5437 It is possible this does not work well on all platforms so it is dis‐
5438 abled by default; in the future it may be enabled by default.
5439
5440 –use-server-modtime
5441 Some object-store backends (e.g, Swift, S3) do not preserve file modi‐
5442 fication times (modtime). On these backends, rclone stores the origi‐
5443 nal modtime as additional metadata on the object. By default it will
5444 make an API call to retrieve the metadata when the modtime is needed by
5445 an operation.
5446
5447 Use this flag to disable the extra API call and rely instead on the
5448 server’s modified time. In cases such as a local to remote sync using
5449 --update, knowing the local file is newer than the time it was last up‐
5450 loaded to the remote is sufficient. In those cases, this flag can
5451 speed up the process and reduce the number of API calls necessary.
5452
5453 Using this flag on a sync operation without also using --update would
5454 cause all files modified at any time other than the last upload time to
5455 be uploaded again, which is probably not what you want.
5456
5457 -v, -vv, –verbose
5458 With -v rclone will tell you about each file that is transferred and a
5459 small number of significant events.
5460
5461 With -vv rclone will become very verbose telling you about every file
5462 it considers and transfers. Please send bug reports with a log with
5463 this setting.
5464
5465 -V, –version
5466 Prints the version number
5467
5468 SSL/TLS options
5469 The outoing SSL/TLS connections rclone makes can be controlled with
5470 these options. For example this can be very useful with the HTTP or
5471 WebDAV backends. Rclone HTTP servers have their own set of configura‐
5472 tion for SSL/TLS which you can find in their documentation.
5473
5474 –ca-cert string
5475 This loads the PEM encoded certificate authority certificate and uses
5476 it to verify the certificates of the servers rclone connects to.
5477
5478 If you have generated certificates signed with a local CA then you will
5479 need this flag to connect to servers using those certificates.
5480
5481 –client-cert string
5482 This loads the PEM encoded client side certificate.
5483
5484 This is used for mutual TLS authentication
5485 (https://en.wikipedia.org/wiki/Mutual_authentication).
5486
5487 The --client-key flag is required too when using this.
5488
5489 –client-key string
5490 This loads the PEM encoded client side private key used for mutual TLS
5491 authentication. Used in conjunction with --client-cert.
5492
5493 –no-check-certificate=true/false
5494 --no-check-certificate controls whether a client verifies the server’s
5495 certificate chain and host name. If --no-check-certificate is true,
5496 TLS accepts any certificate presented by the server and any host name
5497 in that certificate. In this mode, TLS is susceptible to
5498 man-in-the-middle attacks.
5499
5500 This option defaults to false.
5501
5502 This should be used only for testing.
5503
5504 Configuration Encryption
5505 Your configuration file contains information for logging in to your
5506 cloud services. This means that you should keep your .rclone.conf file
5507 in a secure location.
5508
5509 If you are in an environment where that isn’t possible, you can add a
5510 password to your configuration. This means that you will have to sup‐
5511 ply the password every time you start rclone.
5512
5513 To add a password to your rclone configuration, execute rclone config.
5514
5515 >rclone config
5516 Current remotes:
5517
5518 e) Edit existing remote
5519 n) New remote
5520 d) Delete remote
5521 s) Set configuration password
5522 q) Quit config
5523 e/n/d/s/q>
5524
5525 Go into s, Set configuration password:
5526
5527 e/n/d/s/q> s
5528 Your configuration is not encrypted.
5529 If you add a password, you will protect your login information to cloud services.
5530 a) Add Password
5531 q) Quit to main menu
5532 a/q> a
5533 Enter NEW configuration password:
5534 password:
5535 Confirm NEW password:
5536 password:
5537 Password set
5538 Your configuration is encrypted.
5539 c) Change Password
5540 u) Unencrypt configuration
5541 q) Quit to main menu
5542 c/u/q>
5543
5544 Your configuration is now encrypted, and every time you start rclone
5545 you will have to supply the password. See below for details. In the
5546 same menu, you can change the password or completely remove encryption
5547 from your configuration.
5548
5549 There is no way to recover the configuration if you lose your password.
5550
5551 rclone uses nacl secretbox (https://godoc.org/golang.org/x/crypto/na‐
5552 cl/secretbox) which in turn uses XSalsa20 and Poly1305 to encrypt and
5553 authenticate your configuration with secret-key cryptography. The
5554 password is SHA-256 hashed, which produces the key for secretbox. The
5555 hashed password is not stored.
5556
5557 While this provides very good security, we do not recommend storing
5558 your encrypted rclone configuration in public if it contains sensitive
5559 information, maybe except if you use a very strong password.
5560
5561 If it is safe in your environment, you can set the RCLONE_CONFIG_PASS
5562 environment variable to contain your password, in which case it will be
5563 used for decrypting the configuration.
5564
5565 You can set this for a session from a script. For unix like systems
5566 save this to a file called set-rclone-password:
5567
5568 #!/bin/echo Source this file don't run it
5569
5570 read -s RCLONE_CONFIG_PASS
5571 export RCLONE_CONFIG_PASS
5572
5573 Then source the file when you want to use it. From the shell you would
5574 do source set-rclone-password. It will then ask you for the password
5575 and set it in the environment variable.
5576
5577 An alternate means of supplying the password is to provide a script
5578 which will retrieve the password and print on standard output. This
5579 script should have a fully specified path name and not rely on any en‐
5580 vironment variables. The script is supplied either via --password-com‐
5581 mand="..." command line argument or via the RCLONE_PASSWORD_COMMAND en‐
5582 vironment variable.
5583
5584 One useful example of this is using the passwordstore application to
5585 retrieve the password:
5586
5587 export RCLONE_PASSWORD_COMMAND="pass rclone/config"
5588
5589 If the passwordstore password manager holds the password for the rclone
5590 configuration, using the script method means the password is primarily
5591 protected by the passwordstore system, and is never embedded in the
5592 clear in scripts, nor available for examination using the standard com‐
5593 mands available. It is quite possible with long running rclone ses‐
5594 sions for copies of passwords to be innocently captured in log files or
5595 terminal scroll buffers, etc. Using the script method of supplying the
5596 password enhances the security of the config password considerably.
5597
5598 If you are running rclone inside a script, unless you are using the
5599 --password-command method, you might want to disable password prompts.
5600 To do that, pass the parameter --ask-password=false to rclone. This
5601 will make rclone fail instead of asking for a password if RCLONE_CON‐
5602 FIG_PASS doesn’t contain a valid password, and --password-command has
5603 not been supplied.
5604
5605 Developer options
5606 These options are useful when developing or debugging rclone. There
5607 are also some more remote specific options which aren’t documented here
5608 which are used for testing. These start with remote name eg
5609 --drive-test-option - see the docs for the remote in question.
5610
5611 –cpuprofile=FILE
5612 Write CPU profile to file. This can be analysed with go tool pprof.
5613
5614 –dump flag,flag,flag
5615 The --dump flag takes a comma separated list of flags to dump info
5616 about.
5617
5618 Note that some headers including Accept-Encoding as shown may not be
5619 correct in the request and the response may not show Content-Encoding
5620 if the go standard libraries auto gzip encoding was in effect. In this
5621 case the body of the request will be gunzipped before showing it.
5622
5623 The available flags are:
5624
5625 –dump headers
5626 Dump HTTP headers with Authorization: lines removed. May still contain
5627 sensitive info. Can be very verbose. Useful for debugging only.
5628
5629 Use --dump auth if you do want the Authorization: headers.
5630
5631 –dump bodies
5632 Dump HTTP headers and bodies - may contain sensitive info. Can be very
5633 verbose. Useful for debugging only.
5634
5635 Note that the bodies are buffered in memory so don’t use this for enor‐
5636 mous files.
5637
5638 –dump requests
5639 Like --dump bodies but dumps the request bodies and the response head‐
5640 ers. Useful for debugging download problems.
5641
5642 –dump responses
5643 Like --dump bodies but dumps the response bodies and the request head‐
5644 ers. Useful for debugging upload problems.
5645
5646 –dump auth
5647 Dump HTTP headers - will contain sensitive info such as Authorization:
5648 headers - use --dump headers to dump without Authorization: headers.
5649 Can be very verbose. Useful for debugging only.
5650
5651 –dump filters
5652 Dump the filters to the output. Useful to see exactly what include and
5653 exclude options are filtering on.
5654
5655 –dump goroutines
5656 This dumps a list of the running go-routines at the end of the command
5657 to standard output.
5658
5659 –dump openfiles
5660 This dumps a list of the open files at the end of the command. It uses
5661 the lsof command to do that so you’ll need that installed to use it.
5662
5663 –memprofile=FILE
5664 Write memory profile to file. This can be analysed with go tool pprof.
5665
5666 Filtering
5667 For the filtering options
5668
5669 · --delete-excluded
5670
5671 · --filter
5672
5673 · --filter-from
5674
5675 · --exclude
5676
5677 · --exclude-from
5678
5679 · --include
5680
5681 · --include-from
5682
5683 · --files-from
5684
5685 · --min-size
5686
5687 · --max-size
5688
5689 · --min-age
5690
5691 · --max-age
5692
5693 · --dump filters
5694
5695 See the filtering section (https://rclone.org/filtering/).
5696
5697 Remote control
5698 For the remote control options and for instructions on how to remote
5699 control rclone
5700
5701 · --rc
5702
5703 · and anything starting with --rc-
5704
5705 See the remote control section (https://rclone.org/rc/).
5706
5707 Logging
5708 rclone has 4 levels of logging, ERROR, NOTICE, INFO and DEBUG.
5709
5710 By default, rclone logs to standard error. This means you can redirect
5711 standard error and still see the normal output of rclone commands (eg
5712 rclone ls).
5713
5714 By default, rclone will produce Error and Notice level messages.
5715
5716 If you use the -q flag, rclone will only produce Error messages.
5717
5718 If you use the -v flag, rclone will produce Error, Notice and Info mes‐
5719 sages.
5720
5721 If you use the -vv flag, rclone will produce Error, Notice, Info and
5722 Debug messages.
5723
5724 You can also control the log levels with the --log-level flag.
5725
5726 If you use the --log-file=FILE option, rclone will redirect Error, Info
5727 and Debug messages along with standard error to FILE.
5728
5729 If you use the --syslog flag then rclone will log to syslog and the
5730 --syslog-facility control which facility it uses.
5731
5732 Rclone prefixes all log messages with their level in capitals, eg INFO
5733 which makes it easy to grep the log file for different kinds of infor‐
5734 mation.
5735
5736 Exit Code
5737 If any errors occur during the command execution, rclone will exit with
5738 a non-zero exit code. This allows scripts to detect when rclone opera‐
5739 tions have failed.
5740
5741 During the startup phase, rclone will exit immediately if an error is
5742 detected in the configuration. There will always be a log message im‐
5743 mediately before exiting.
5744
5745 When rclone is running it will accumulate errors as it goes along, and
5746 only exit with a non-zero exit code if (after retries) there were still
5747 failed transfers. For every error counted there will be a high priori‐
5748 ty log message (visible with -q) showing the message and which file
5749 caused the problem. A high priority message is also shown when start‐
5750 ing a retry so the user can see that any previous error messages may
5751 not be valid after the retry. If rclone has done a retry it will log a
5752 high priority message if the retry was successful.
5753
5754 List of exit codes
5755 · 0 - success
5756
5757 · 1 - Syntax or usage error
5758
5759 · 2 - Error not otherwise categorised
5760
5761 · 3 - Directory not found
5762
5763 · 4 - File not found
5764
5765 · 5 - Temporary error (one that more retries might fix) (Retry errors)
5766
5767 · 6 - Less serious errors (like 461 errors from dropbox) (NoRetry er‐
5768 rors)
5769
5770 · 7 - Fatal error (one that more retries won’t fix, like account sus‐
5771 pended) (Fatal errors)
5772
5773 · 8 - Transfer exceeded - limit set by –max-transfer reached
5774
5775 Environment Variables
5776 Rclone can be configured entirely using environment variables. These
5777 can be used to set defaults for options or config file entries.
5778
5779 Options
5780 Every option in rclone can have its default set by environment vari‐
5781 able.
5782
5783 To find the name of the environment variable, first, take the long op‐
5784 tion name, strip the leading --, change - to _, make upper case and
5785 prepend RCLONE_.
5786
5787 For example, to always set --stats 5s, set the environment variable
5788 RCLONE_STATS=5s. If you set stats on the command line this will over‐
5789 ride the environment variable setting.
5790
5791 Or to always use the trash in drive --drive-use-trash, set
5792 RCLONE_DRIVE_USE_TRASH=true.
5793
5794 The same parser is used for the options and the environment variables
5795 so they take exactly the same form.
5796
5797 Config file
5798 You can set defaults for values in the config file on an individual re‐
5799 mote basis. If you want to use this feature, you will need to discover
5800 the name of the config items that you want. The easiest way is to run
5801 through rclone config by hand, then look in the config file to see what
5802 the values are (the config file can be found by looking at the help for
5803 --config in rclone help).
5804
5805 To find the name of the environment variable, you need to set, take
5806 RCLONE_CONFIG_ + name of remote + _ + name of config file option and
5807 make it all uppercase.
5808
5809 For example, to configure an S3 remote named mys3: without a config
5810 file (using unix ways of setting environment variables):
5811
5812 $ export RCLONE_CONFIG_MYS3_TYPE=s3
5813 $ export RCLONE_CONFIG_MYS3_ACCESS_KEY_ID=XXX
5814 $ export RCLONE_CONFIG_MYS3_SECRET_ACCESS_KEY=XXX
5815 $ rclone lsd MYS3:
5816 -1 2016-09-21 12:54:21 -1 my-bucket
5817 $ rclone listremotes | grep mys3
5818 mys3:
5819
5820 Note that if you want to create a remote using environment variables
5821 you must create the ..._TYPE variable as above.
5822
5823 Other environment variables
5824 · RCLONE_CONFIG_PASS` set to contain your config file password (see
5825 Configuration Encryption section)
5826
5827 · HTTP_PROXY, HTTPS_PROXY and NO_PROXY (or the lowercase versions
5828 thereof).
5829
5830 · HTTPS_PROXY takes precedence over HTTP_PROXY for https requests.
5831
5832 · The environment values may be either a complete URL or a
5833 “host[:port]” for, in which case the “http” scheme is assumed.
5834
5836 Some of the configurations (those involving oauth2) require an Internet
5837 connected web browser.
5838
5839 If you are trying to set rclone up on a remote or headless box with no
5840 browser available on it (eg a NAS or a server in a datacenter) then you
5841 will need to use an alternative means of configuration. There are two
5842 ways of doing it, described below.
5843
5844 Configuring using rclone authorize
5845 On the headless box
5846
5847 ...
5848 Remote config
5849 Use auto config?
5850 * Say Y if not sure
5851 * Say N if you are working on a remote or headless machine
5852 y) Yes
5853 n) No
5854 y/n> n
5855 For this to work, you will need rclone available on a machine that has a web browser available.
5856 Execute the following on your machine:
5857 rclone authorize "amazon cloud drive"
5858 Then paste the result below:
5859 result>
5860
5861 Then on your main desktop machine
5862
5863 rclone authorize "amazon cloud drive"
5864 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
5865 Log in and authorize rclone for access
5866 Waiting for code...
5867 Got code
5868 Paste the following into your remote machine --->
5869 SECRET_TOKEN
5870 <---End paste
5871
5872 Then back to the headless box, paste in the code
5873
5874 result> SECRET_TOKEN
5875 --------------------
5876 [acd12]
5877 client_id =
5878 client_secret =
5879 token = SECRET_TOKEN
5880 --------------------
5881 y) Yes this is OK
5882 e) Edit this remote
5883 d) Delete this remote
5884 y/e/d>
5885
5886 Configuring by copying the config file
5887 Rclone stores all of its config in a single configuration file. This
5888 can easily be copied to configure a remote rclone.
5889
5890 So first configure rclone on your desktop machine
5891
5892 rclone config
5893
5894 to set up the config file.
5895
5896 Find the config file by running rclone config file, for example
5897
5898 $ rclone config file
5899 Configuration file is stored at:
5900 /home/user/.rclone.conf
5901
5902 Now transfer it to the remote box (scp, cut paste, ftp, sftp etc) and
5903 place it in the correct place (use rclone config file on the remote box
5904 to find out where).
5905
5907 Rclone has a sophisticated set of include and exclude rules. Some of
5908 these are based on patterns and some on other things like file size.
5909
5910 The filters are applied for the copy, sync, move, ls, lsl, md5sum,
5911 sha1sum, size, delete and check operations. Note that purge does not
5912 obey the filters.
5913
5914 Each path as it passes through rclone is matched against the include
5915 and exclude rules like --include, --exclude, --include-from, --ex‐
5916 clude-from, --filter, or --filter-from. The simplest way to try them
5917 out is using the ls command, or --dry-run together with -v.
5918
5919 Patterns
5920 The patterns used to match files for inclusion or exclusion are based
5921 on “file globs” as used by the unix shell.
5922
5923 If the pattern starts with a / then it only matches at the top level of
5924 the directory tree, relative to the root of the remote (not necessarily
5925 the root of the local drive). If it doesn’t start with / then it is
5926 matched starting at the end of the path, but it will only match a com‐
5927 plete path element:
5928
5929 file.jpg - matches "file.jpg"
5930 - matches "directory/file.jpg"
5931 - doesn't match "afile.jpg"
5932 - doesn't match "directory/afile.jpg"
5933 /file.jpg - matches "file.jpg" in the root directory of the remote
5934 - doesn't match "afile.jpg"
5935 - doesn't match "directory/file.jpg"
5936
5937 Important Note that you must use / in patterns and not \ even if run‐
5938 ning on Windows.
5939
5940 A * matches anything but not a /.
5941
5942 *.jpg - matches "file.jpg"
5943 - matches "directory/file.jpg"
5944 - doesn't match "file.jpg/something"
5945
5946 Use ** to match anything, including slashes (/).
5947
5948 dir/** - matches "dir/file.jpg"
5949 - matches "dir/dir1/dir2/file.jpg"
5950 - doesn't match "directory/file.jpg"
5951 - doesn't match "adir/file.jpg"
5952
5953 A ? matches any character except a slash /.
5954
5955 l?ss - matches "less"
5956 - matches "lass"
5957 - doesn't match "floss"
5958
5959 A [ and ] together make a character class, such as [a-z] or [aeiou] or
5960 [[:alpha:]]. See the go regexp docs (https://golang.org/pkg/reg‐
5961 exp/syntax/) for more info on these.
5962
5963 h[ae]llo - matches "hello"
5964 - matches "hallo"
5965 - doesn't match "hullo"
5966
5967 A { and } define a choice between elements. It should contain a comma
5968 separated list of patterns, any of which might match. These patterns
5969 can contain wildcards.
5970
5971 {one,two}_potato - matches "one_potato"
5972 - matches "two_potato"
5973 - doesn't match "three_potato"
5974 - doesn't match "_potato"
5975
5976 Special characters can be escaped with a \ before them.
5977
5978 \*.jpg - matches "*.jpg"
5979 \\.jpg - matches "\.jpg"
5980 \[one\].jpg - matches "[one].jpg"
5981
5982 Patterns are case sensitive unless the --ignore-case flag is used.
5983
5984 Without --ignore-case (default)
5985
5986 potato - matches "potato"
5987 - doesn't match "POTATO"
5988
5989 With --ignore-case
5990
5991 potato - matches "potato"
5992 - matches "POTATO"
5993
5994 Note also that rclone filter globs can only be used in one of the fil‐
5995 ter command line flags, not in the specification of the remote, so
5996 rclone copy "remote:dir*.jpg" /path/to/dir won’t work - what is re‐
5997 quired is rclone --include "*.jpg" copy remote:dir /path/to/dir
5998
5999 Directories
6000 Rclone keeps track of directories that could match any file patterns.
6001
6002 Eg if you add the include rule
6003
6004 /a/*.jpg
6005
6006 Rclone will synthesize the directory include rule
6007
6008 /a/
6009
6010 If you put any rules which end in / then it will only match directo‐
6011 ries.
6012
6013 Directory matches are only used to optimise directory access patterns -
6014 you must still match the files that you want to match. Directory
6015 matches won’t optimise anything on bucket based remotes (eg s3, swift,
6016 google compute storage, b2) which don’t have a concept of directory.
6017
6018 Differences between rsync and rclone patterns
6019 Rclone implements bash style {a,b,c} glob matching which rsync doesn’t.
6020
6021 Rclone always does a wildcard match so \ must always escape a \.
6022
6023 How the rules are used
6024 Rclone maintains a combined list of include rules and exclude rules.
6025
6026 Each file is matched in order, starting from the top, against the rule
6027 in the list until it finds a match. The file is then included or ex‐
6028 cluded according to the rule type.
6029
6030 If the matcher fails to find a match after testing against all the en‐
6031 tries in the list then the path is included.
6032
6033 For example given the following rules, + being include, - being ex‐
6034 clude,
6035
6036 - secret*.jpg
6037 + *.jpg
6038 + *.png
6039 + file2.avi
6040 - *
6041
6042 This would include
6043
6044 · file1.jpg
6045
6046 · file3.png
6047
6048 · file2.avi
6049
6050 This would exclude
6051
6052 · secret17.jpg
6053
6054 · non *.jpg and *.png
6055
6056 A similar process is done on directory entries before recursing into
6057 them. This only works on remotes which have a concept of directory (Eg
6058 local, google drive, onedrive, amazon drive) and not on bucket based
6059 remotes (eg s3, swift, google compute storage, b2).
6060
6061 Adding filtering rules
6062 Filtering rules are added with the following command line flags.
6063
6064 Repeating options
6065 You can repeat the following options to add more than one rule of that
6066 type.
6067
6068 · --include
6069
6070 · --include-from
6071
6072 · --exclude
6073
6074 · --exclude-from
6075
6076 · --filter
6077
6078 · --filter-from
6079
6080 Important You should not use --include* together with --exclude*. It
6081 may produce different results than you expected. In that case try to
6082 use: --filter*.
6083
6084 Note that all the options of the same type are processed together in
6085 the order above, regardless of what order they were placed on the com‐
6086 mand line.
6087
6088 So all --include options are processed first in the order they appeared
6089 on the command line, then all --include-from options etc.
6090
6091 To mix up the order includes and excludes, the --filter flag can be
6092 used.
6093
6094 --exclude - Exclude files matching pattern
6095 Add a single exclude rule with --exclude.
6096
6097 This flag can be repeated. See above for the order the flags are pro‐
6098 cessed in.
6099
6100 Eg --exclude *.bak to exclude all bak files from the sync.
6101
6102 --exclude-from - Read exclude patterns from file
6103 Add exclude rules from a file.
6104
6105 This flag can be repeated. See above for the order the flags are pro‐
6106 cessed in.
6107
6108 Prepare a file like this exclude-file.txt
6109
6110 # a sample exclude rule file
6111 *.bak
6112 file2.jpg
6113
6114 Then use as --exclude-from exclude-file.txt. This will sync all files
6115 except those ending in bak and file2.jpg.
6116
6117 This is useful if you have a lot of rules.
6118
6119 --include - Include files matching pattern
6120 Add a single include rule with --include.
6121
6122 This flag can be repeated. See above for the order the flags are pro‐
6123 cessed in.
6124
6125 Eg --include *.{png,jpg} to include all png and jpg files in the backup
6126 and no others.
6127
6128 This adds an implicit --exclude * at the very end of the filter list.
6129 This means you can mix --include and --include-from with the other fil‐
6130 ters (eg --exclude) but you must include all the files you want in the
6131 include statement. If this doesn’t provide enough flexibility then you
6132 must use --filter-from.
6133
6134 --include-from - Read include patterns from file
6135 Add include rules from a file.
6136
6137 This flag can be repeated. See above for the order the flags are pro‐
6138 cessed in.
6139
6140 Prepare a file like this include-file.txt
6141
6142 # a sample include rule file
6143 *.jpg
6144 *.png
6145 file2.avi
6146
6147 Then use as --include-from include-file.txt. This will sync all jpg,
6148 png files and file2.avi.
6149
6150 This is useful if you have a lot of rules.
6151
6152 This adds an implicit --exclude * at the very end of the filter list.
6153 This means you can mix --include and --include-from with the other fil‐
6154 ters (eg --exclude) but you must include all the files you want in the
6155 include statement. If this doesn’t provide enough flexibility then you
6156 must use --filter-from.
6157
6158 --filter - Add a file-filtering rule
6159 This can be used to add a single include or exclude rule. Include
6160 rules start with + and exclude rules start with -. A special rule
6161 called ! can be used to clear the existing rules.
6162
6163 This flag can be repeated. See above for the order the flags are pro‐
6164 cessed in.
6165
6166 Eg --filter "- *.bak" to exclude all bak files from the sync.
6167
6168 --filter-from - Read filtering patterns from a file
6169 Add include/exclude rules from a file.
6170
6171 This flag can be repeated. See above for the order the flags are pro‐
6172 cessed in.
6173
6174 Prepare a file like this filter-file.txt
6175
6176 # a sample filter rule file
6177 - secret*.jpg
6178 + *.jpg
6179 + *.png
6180 + file2.avi
6181 - /dir/Trash/**
6182 + /dir/**
6183 # exclude everything else
6184 - *
6185
6186 Then use as --filter-from filter-file.txt. The rules are processed in
6187 the order that they are defined.
6188
6189 This example will include all jpg and png files, exclude any files
6190 matching secret*.jpg and include file2.avi. It will also include ev‐
6191 erything in the directory dir at the root of the sync, except dir/Trash
6192 which it will exclude. Everything else will be excluded from the sync.
6193
6194 --files-from - Read list of source-file names
6195 This reads a list of file names from the file passed in and only these
6196 files are transferred. The filtering rules are ignored completely if
6197 you use this option.
6198
6199 --files-from expects a list of files as it’s input. rclone lsf
6200 (https://rclone.org/commands/rclone_lsf/) has a compatible format that
6201 can be used to export file lists from remotes.
6202
6203 Rclone will traverse the file system if you use --files-from, effec‐
6204 tively using the files in --files-from as a set of filters. Rclone
6205 will not error if any of the files are missing.
6206
6207 If you use --no-traverse as well as --files-from then rclone will not
6208 traverse the destination file system, it will find each file individu‐
6209 ally using approximately 1 API call. This can be more efficient for
6210 small lists of files.
6211
6212 This option can be repeated to read from more than one file. These are
6213 read in the order that they are placed on the command line.
6214
6215 Paths within the --files-from file will be interpreted as starting with
6216 the root specified in the command. Leading / characters are ignored.
6217
6218 For example, suppose you had files-from.txt with this content:
6219
6220 # comment
6221 file1.jpg
6222 subdir/file2.jpg
6223
6224 You could then use it like this:
6225
6226 rclone copy --files-from files-from.txt /home/me/pics remote:pics
6227
6228 This will transfer these files only (if they exist)
6229
6230 /home/me/pics/file1.jpg → remote:pics/file1.jpg
6231 /home/me/pics/subdir/file2.jpg → remote:pics/subdir/file2.jpg
6232
6233 To take a more complicated example, let’s say you had a few files you
6234 want to back up regularly with these absolute paths:
6235
6236 /home/user1/important
6237 /home/user1/dir/file
6238 /home/user2/stuff
6239
6240 To copy these you’d find a common subdirectory - in this case /home and
6241 put the remaining files in files-from.txt with or without leading /, eg
6242
6243 user1/important
6244 user1/dir/file
6245 user2/stuff
6246
6247 You could then copy these to a remote like this
6248
6249 rclone copy --files-from files-from.txt /home remote:backup
6250
6251 The 3 files will arrive in remote:backup with the paths as in the
6252 files-from.txt like this:
6253
6254 /home/user1/important → remote:backup/user1/important
6255 /home/user1/dir/file → remote:backup/user1/dir/file
6256 /home/user2/stuff → remote:backup/user2/stuff
6257
6258 You could of course choose / as the root too in which case your
6259 files-from.txt might look like this.
6260
6261 /home/user1/important
6262 /home/user1/dir/file
6263 /home/user2/stuff
6264
6265 And you would transfer it like this
6266
6267 rclone copy --files-from files-from.txt / remote:backup
6268
6269 In this case there will be an extra home directory on the remote:
6270
6271 /home/user1/important → remote:backup/home/user1/important
6272 /home/user1/dir/file → remote:backup/home/user1/dir/file
6273 /home/user2/stuff → remote:backup/home/user2/stuff
6274
6275 --min-size - Don’t transfer any file smaller than this
6276 This option controls the minimum size file which will be transferred.
6277 This defaults to kBytes but a suffix of k, M, or G can be used.
6278
6279 For example --min-size 50k means no files smaller than 50kByte will be
6280 transferred.
6281
6282 --max-size - Don’t transfer any file larger than this
6283 This option controls the maximum size file which will be transferred.
6284 This defaults to kBytes but a suffix of k, M, or G can be used.
6285
6286 For example --max-size 1G means no files larger than 1GByte will be
6287 transferred.
6288
6289 --max-age - Don’t transfer any file older than this
6290 This option controls the maximum age of files to transfer. Give in
6291 seconds or with a suffix of:
6292
6293 · ms - Milliseconds
6294
6295 · s - Seconds
6296
6297 · m - Minutes
6298
6299 · h - Hours
6300
6301 · d - Days
6302
6303 · w - Weeks
6304
6305 · M - Months
6306
6307 · y - Years
6308
6309 For example --max-age 2d means no files older than 2 days will be
6310 transferred.
6311
6312 --min-age - Don’t transfer any file younger than this
6313 This option controls the minimum age of files to transfer. Give in
6314 seconds or with a suffix (see --max-age for list of suffixes)
6315
6316 For example --min-age 2d means no files younger than 2 days will be
6317 transferred.
6318
6319 --delete-excluded - Delete files on dest excluded from sync
6320 Important this flag is dangerous - use with --dry-run and -v first.
6321
6322 When doing rclone sync this will delete any files which are excluded
6323 from the sync on the destination.
6324
6325 If for example you did a sync from A to B without the --min-size 50k
6326 flag
6327
6328 rclone sync A: B:
6329
6330 Then you repeated it like this with the --delete-excluded
6331
6332 rclone --min-size 50k --delete-excluded sync A: B:
6333
6334 This would delete all files on B which are less than 50 kBytes as these
6335 are now excluded from the sync.
6336
6337 Always test first with --dry-run and -v before using this flag.
6338
6339 --dump filters - dump the filters to the output
6340 This dumps the defined filters to the output as regular expressions.
6341
6342 Useful for debugging.
6343
6344 --ignore-case - make searches case insensitive
6345 Normally filter patterns are case sensitive. If this flag is supplied
6346 then filter patterns become case insensitive.
6347
6348 Normally a --include "file.txt" will not match a file called FILE.txt.
6349 However if you use the --ignore-case flag then --include "file.txt"
6350 this will match a file called FILE.txt.
6351
6352 Quoting shell metacharacters
6353 The examples above may not work verbatim in your shell as they have
6354 shell metacharacters in them (eg *), and may require quoting.
6355
6356 Eg linux, OSX
6357
6358 · --include \*.jpg
6359
6360 · --include '*.jpg'
6361
6362 · --include='*.jpg'
6363
6364 In Windows the expansion is done by the command not the shell so this
6365 should work fine
6366
6367 · --include *.jpg
6368
6369 Exclude directory based on a file
6370 It is possible to exclude a directory based on a file, which is present
6371 in this directory. Filename should be specified using the --ex‐
6372 clude-if-present flag. This flag has a priority over the other filter‐
6373 ing flags.
6374
6375 Imagine, you have the following directory structure:
6376
6377 dir1/file1
6378 dir1/dir2/file2
6379 dir1/dir2/dir3/file3
6380 dir1/dir2/dir3/.ignore
6381
6382 You can exclude dir3 from sync by running the following command:
6383
6384 rclone sync --exclude-if-present .ignore dir1 remote:backup
6385
6386 Currently only one filename is supported, i.e. --exclude-if-present
6387 should not be used multiple times.
6388
6390 Rclone can serve a web based GUI (graphical user interface). This is
6391 somewhat experimental at the moment so things may be subject to change.
6392
6393 Run this command in a terminal and rclone will download and then dis‐
6394 play the GUI in a web browser.
6395
6396 rclone rcd --rc-web-gui
6397
6398 This will produce logs like this and rclone needs to continue to run to
6399 serve the GUI:
6400
6401 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
6402 2019/08/25 11:40:14 NOTICE: Downloading webgui binary. Please wait. [Size: 3813937, Path : /home/USER/.cache/rclone/webgui/v0.0.6.zip]
6403 2019/08/25 11:40:16 NOTICE: Unzipping
6404 2019/08/25 11:40:16 NOTICE: Serving remote control on http://127.0.0.1:5572/
6405
6406 This assumes you are running rclone locally on your machine. It is
6407 possible to separate the rclone and the GUI - see below for details.
6408
6409 If you wish to check for updates then you can add --rc-web-gui-update
6410 to the command line.
6411
6412 If you find your GUI broken, you may force it to update by add
6413 --rc-web-gui-force-update.
6414
6415 By default, rclone will open your browser. Add
6416 --rc-web-gui-no-open-browser to disable this feature.
6417
6418 Using the GUI
6419 Once the GUI opens, you will be looking at the dashboard which has an
6420 overall overview.
6421
6422 On the left hand side you will see a series of view buttons you can
6423 click on:
6424
6425 · Dashboard - main overview
6426
6427 · Configs - examine and create new configurations
6428
6429 · Explorer - view, download and upload files to the cloud storage sys‐
6430 tems
6431
6432 · Backend - view or alter the backend config
6433
6434 · Log out
6435
6436 (More docs and walkthrough video to come!)
6437
6438 How it works
6439 When you run the rclone rcd --rc-web-gui this is what happens
6440
6441 · Rclone starts but only runs the remote control API (“rc”).
6442
6443 · The API is bound to localhost with an auto generated username and
6444 password.
6445
6446 · If the API bundle is missing then rclone will download it.
6447
6448 · rclone will start serving the files from the API bundle over the same
6449 port as the API
6450
6451 · rclone will open the browser with a login_token so it can log
6452 straight in.
6453
6454 Advanced use
6455 The rclone rcd may use any of the flags documented on the rc page
6456 (https://rclone.org/rc/#supported-parameters).
6457
6458 The flag --rc-web-gui is shorthand for
6459
6460 · Download the web GUI if necessary
6461
6462 · Check we are using some authentication
6463
6464 · --rc-user gui
6465
6466 · --rc-pass <random password>
6467
6468 · --rc-serve
6469
6470 These flags can be overidden as desired.
6471
6472 See also the rclone rcd documentation (https://rclone.org/com‐
6473 mands/rclone_rcd/).
6474
6475 Example: Running a public GUI
6476 For example the GUI could be served on a public port over SSL using an
6477 htpasswd file using the following flags:
6478
6479 · --rc-web-gui
6480
6481 · --rc-addr :443
6482
6483 · --rc-htpasswd /path/to/htpasswd
6484
6485 · --rc-cert /path/to/ssl.crt
6486
6487 · --rc-key /path/to/ssl.key
6488
6489 Example: Running a GUI behind a proxy
6490 If you want to run the GUI behind a proxy at /rclone you could use
6491 these flags:
6492
6493 · --rc-web-gui
6494
6495 · --rc-baseurl rclone
6496
6497 · --rc-htpasswd /path/to/htpasswd
6498
6499 Or instead of htpassword if you just want a single user and password:
6500
6501 · --rc-user me
6502
6503 · --rc-pass mypassword
6504
6505 Project
6506 The GUI is being developed in the: rclone/rclone-webui-react resposito‐
6507 ry (https://github.com/rclone/rclone-webui-react).
6508
6509 Bug reports and contributions are very welcome :-)
6510
6511 If you have questions then please ask them on the rclone forum
6512 (https://forum.rclone.org/).
6513
6515 If rclone is run with the --rc flag then it starts an http server which
6516 can be used to remote control rclone.
6517
6518 If you just want to run a remote control then see the rcd command
6519 (https://rclone.org/commands/rclone_rcd/).
6520
6521 NB this is experimental and everything here is subject to change!
6522
6523 Supported parameters
6524 –rc
6525 Flag to start the http server listen on remote requests
6526
6527 –rc-addr=IP
6528 IPaddress:Port or :Port to bind server to. (default “localhost:5572”)
6529
6530 –rc-cert=KEY
6531 SSL PEM key (concatenation of certificate and CA certificate)
6532
6533 –rc-client-ca=PATH
6534 Client certificate authority to verify clients with
6535
6536 –rc-htpasswd=PATH
6537 htpasswd file - if not provided no authentication is done
6538
6539 –rc-key=PATH
6540 SSL PEM Private key
6541
6542 –rc-max-header-bytes=VALUE
6543 Maximum size of request header (default 4096)
6544
6545 –rc-user=VALUE
6546 User name for authentication.
6547
6548 –rc-pass=VALUE
6549 Password for authentication.
6550
6551 –rc-realm=VALUE
6552 Realm for authentication (default “rclone”)
6553
6554 –rc-server-read-timeout=DURATION
6555 Timeout for server reading data (default 1h0m0s)
6556
6557 –rc-server-write-timeout=DURATION
6558 Timeout for server writing data (default 1h0m0s)
6559
6560 –rc-serve
6561 Enable the serving of remote objects via the HTTP interface. This
6562 means objects will be accessible at http://127.0.0.1:5572/ by default,
6563 so you can browse to http://127.0.0.1:5572/ or http://127.0.0.1:5572/*
6564 to see a listing of the remotes. Objects may be requested from remotes
6565 using this syntax http://127.0.0.1:5572/[remote:path]/path/to/object
6566
6567 Default Off.
6568
6569 –rc-files /path/to/directory
6570 Path to local files to serve on the HTTP server.
6571
6572 If this is set then rclone will serve the files in that directory. It
6573 will also open the root in the web browser if specified. This is for
6574 implementing browser based GUIs for rclone functions.
6575
6576 If --rc-user or --rc-pass is set then the URL that is opened will have
6577 the authorization in the URL in the http://user:pass@localhost/ style.
6578
6579 Default Off.
6580
6581 –rc-web-gui
6582 Set this flag to serve the default web gui on the same port as rclone.
6583
6584 Default Off.
6585
6586 –rc-allow-origin
6587 Set the allowed Access-Control-Allow-Origin for rc requests.
6588
6589 Can be used with –rc-web-gui if the rclone is running on different IP
6590 than the web-gui.
6591
6592 Default is IP address on which rc is running.
6593
6594 –rc-web-fetch-url
6595 Set the URL to fetch the rclone-web-gui files from.
6596
6597 Default https://api.github.com/repos/rclone/rclone-webui-react/releas‐
6598 es/latest.
6599
6600 –rc-web-gui-update
6601 Set this flag to check and update rclone-webui-react from the
6602 rc-web-fetch-url.
6603
6604 Default Off.
6605
6606 –rc-web-gui-force-update
6607 Set this flag to force update rclone-webui-react from the
6608 rc-web-fetch-url.
6609
6610 Default Off.
6611
6612 –rc-web-gui-no-open-browser
6613 Set this flag to disable opening browser automatically when using
6614 web-gui.
6615
6616 Default Off.
6617
6618 –rc-job-expire-duration=DURATION
6619 Expire finished async jobs older than DURATION (default 60s).
6620
6621 –rc-job-expire-interval=DURATION
6622 Interval duration to check for expired async jobs (default 10s).
6623
6624 –rc-no-auth
6625 By default rclone will require authorisation to have been set up on the
6626 rc interface in order to use any methods which access any rclone re‐
6627 motes. Eg operations/list is denied as it involved creating a remote
6628 as is sync/copy.
6629
6630 If this is set then no authorisation will be required on the server to
6631 use these methods. The alternative is to use --rc-user and --rc-pass
6632 and use these credentials in the request.
6633
6634 Default Off.
6635
6636 Accessing the remote control via the rclone rc command
6637 Rclone itself implements the remote control protocol in its rclone rc
6638 command.
6639
6640 You can use it like this
6641
6642 $ rclone rc rc/noop param1=one param2=two
6643 {
6644 "param1": "one",
6645 "param2": "two"
6646 }
6647
6648 Run rclone rc on its own to see the help for the installed remote con‐
6649 trol commands.
6650
6651 rclone rc also supports a --json flag which can be used to send more
6652 complicated input parameters.
6653
6654 $ rclone rc --json '{ "p1": [1,"2",null,4], "p2": { "a":1, "b":2 } }' rc/noop
6655 {
6656 "p1": [
6657 1,
6658 "2",
6659 null,
6660 4
6661 ],
6662 "p2": {
6663 "a": 1,
6664 "b": 2
6665 }
6666 }
6667
6668 Special parameters
6669 The rc interface supports some special parameters which apply to all
6670 commands. These start with _ to show they are different.
6671
6672 Running asynchronous jobs with _async = true
6673 Each rc call is classified as a job and it is assigned its own id. By
6674 default jobs are executed immediately as they are created or syn‐
6675 chronously.
6676
6677 If _async has a true value when supplied to an rc call then it will re‐
6678 turn immediately with a job id and the task will be run in the back‐
6679 ground. The job/status call can be used to get information of the
6680 background job. The job can be queried for up to 1 minute after it has
6681 finished.
6682
6683 It is recommended that potentially long running jobs, eg sync/sync,
6684 sync/copy, sync/move, operations/purge are run with the _async flag to
6685 avoid any potential problems with the HTTP request and response timing
6686 out.
6687
6688 Starting a job with the _async flag:
6689
6690 $ rclone rc --json '{ "p1": [1,"2",null,4], "p2": { "a":1, "b":2 }, "_async": true }' rc/noop
6691 {
6692 "jobid": 2
6693 }
6694
6695 Query the status to see if the job has finished. For more information
6696 on the meaning of these return parameters see the job/status call.
6697
6698 $ rclone rc --json '{ "jobid":2 }' job/status
6699 {
6700 "duration": 0.000124163,
6701 "endTime": "2018-10-27T11:38:07.911245881+01:00",
6702 "error": "",
6703 "finished": true,
6704 "id": 2,
6705 "output": {
6706 "_async": true,
6707 "p1": [
6708 1,
6709 "2",
6710 null,
6711 4
6712 ],
6713 "p2": {
6714 "a": 1,
6715 "b": 2
6716 }
6717 },
6718 "startTime": "2018-10-27T11:38:07.911121728+01:00",
6719 "success": true
6720 }
6721
6722 job/list can be used to show the running or recently completed jobs
6723
6724 $ rclone rc job/list
6725 {
6726 "jobids": [
6727 2
6728 ]
6729 }
6730
6731 Assigning operations to groups with _group =
6732 Each rc call has it’s own stats group for tracking it’s metrics. By
6733 default grouping is done by the composite group name from prefix job/
6734 and id of the job like so job/1.
6735
6736 If _group has a value then stats for that request will be grouped under
6737 that value. This allows caller to group stats under their own name.
6738
6739 Stats for specific group can be accessed by passing group to
6740 core/stats:
6741
6742 $ rclone rc --json '{ "group": "job/1" }' core/stats
6743 {
6744 "speed": 12345
6745 ...
6746 }
6747
6748 Supported commands
6749 cache/expire: Purge a remote from cache {#cache/expire}
6750 Purge a remote from the cache backend. Supports either a directory or
6751 a file. Params: - remote = path to remote (required) - withData =
6752 true/false to delete cached data (chunks) as well (optional)
6753
6754 Eg
6755
6756 rclone rc cache/expire remote=path/to/sub/folder/
6757 rclone rc cache/expire remote=/ withData=true
6758
6759 cache/fetch: Fetch file chunks {#cache/fetch}
6760 Ensure the specified file chunks are cached on disk.
6761
6762 The chunks= parameter specifies the file chunks to check. It takes a
6763 comma separated list of array slice indices. The slice indices are
6764 similar to Python slices: start[:end]
6765
6766 start is the 0 based chunk number from the beginning of the file to
6767 fetch inclusive. end is 0 based chunk number from the beginning of the
6768 file to fetch exclusive. Both values can be negative, in which case
6769 they count from the back of the file. The value “-5:” represents the
6770 last 5 chunks of a file.
6771
6772 Some valid examples are: “:5,-5:” -> the first and last five chunks
6773 “0,-2” -> the first and the second last chunk “0:10” -> the first ten
6774 chunks
6775
6776 Any parameter with a key that starts with “file” can be used to specify
6777 files to fetch, eg
6778
6779 rclone rc cache/fetch chunks=0 file=hello file2=home/goodbye
6780
6781 File names will automatically be encrypted when the a crypt remote is
6782 used on top of the cache.
6783
6784 cache/stats: Get cache stats {#cache/stats}
6785 Show statistics for the cache remote.
6786
6787 config/create: create the config for a remote. {#config/create}
6788 This takes the following parameters
6789
6790 · name - name of remote
6791
6792 · parameters - a map of { “key”: “value” } pairs
6793
6794 · type - type of the new remote
6795
6796 See the config create command (https://rclone.org/commands/rclone_con‐
6797 fig_create/) command for more information on the above.
6798
6799 Authentication is required for this call.
6800
6801 config/delete: Delete a remote in the config file. {#config/delete}
6802 Parameters:
6803
6804 · name - name of remote to delete
6805
6806 See the config delete command (https://rclone.org/commands/rclone_con‐
6807 fig_delete/) command for more information on the above.
6808
6809 Authentication is required for this call.
6810
6811 config/dump: Dumps the config file. {#config/dump}
6812 Returns a JSON object: - key: value
6813
6814 Where keys are remote names and values are the config parameters.
6815
6816 See the config dump command (https://rclone.org/commands/rclone_con‐
6817 fig_dump/) command for more information on the above.
6818
6819 Authentication is required for this call.
6820
6821 config/get: Get a remote in the config file. {#config/get}
6822 Parameters:
6823
6824 · name - name of remote to get
6825
6826 See the config dump command (https://rclone.org/commands/rclone_con‐
6827 fig_dump/) command for more information on the above.
6828
6829 Authentication is required for this call.
6830
6831 config/listremotes: Lists the remotes in the config file. {#con‐
6832 fig/listremotes}
6833 Returns - remotes - array of remote names
6834
6835 See the listremotes command (https://rclone.org/com‐
6836 mands/rclone_listremotes/) command for more information on the above.
6837
6838 Authentication is required for this call.
6839
6840 config/password: password the config for a remote. {#config/password}
6841 This takes the following parameters
6842
6843 · name - name of remote
6844
6845 · parameters - a map of { “key”: “value” } pairs
6846
6847 See the config password command (https://rclone.org/com‐
6848 mands/rclone_config_password/) command for more information on the
6849 above.
6850
6851 Authentication is required for this call.
6852
6853 config/providers: Shows how providers are configured in the config file.
6854 {#config/providers}
6855 Returns a JSON object: - providers - array of objects
6856
6857 See the config providers command (https://rclone.org/com‐
6858 mands/rclone_config_providers/) command for more information on the
6859 above.
6860
6861 Authentication is required for this call.
6862
6863 config/update: update the config for a remote. {#config/update}
6864 This takes the following parameters
6865
6866 · name - name of remote
6867
6868 · parameters - a map of { “key”: “value” } pairs
6869
6870 See the config update command (https://rclone.org/commands/rclone_con‐
6871 fig_update/) command for more information on the above.
6872
6873 Authentication is required for this call.
6874
6875 core/bwlimit: Set the bandwidth limit. {#core/bwlimit}
6876 This sets the bandwidth limit to that passed in.
6877
6878 Eg
6879
6880 rclone rc core/bwlimit rate=off
6881 {
6882 "bytesPerSecond": -1,
6883 "rate": "off"
6884 }
6885 rclone rc core/bwlimit rate=1M
6886 {
6887 "bytesPerSecond": 1048576,
6888 "rate": "1M"
6889 }
6890
6891 If the rate parameter is not suppied then the bandwidth is queried
6892
6893 rclone rc core/bwlimit
6894 {
6895 "bytesPerSecond": 1048576,
6896 "rate": "1M"
6897 }
6898
6899 The format of the parameter is exactly the same as passed to –bwlimit
6900 except only one bandwidth may be specified.
6901
6902 In either case “rate” is returned as a human readable string, and
6903 “bytesPerSecond” is returned as a number.
6904
6905 core/gc: Runs a garbage collection. {#core/gc}
6906 This tells the go runtime to do a garbage collection run. It isn’t
6907 necessary to call this normally, but it can be useful for debugging
6908 memory problems.
6909
6910 core/group-list: Returns list of stats. {#core/group-list}
6911 This returns list of stats groups currently in memory.
6912
6913 Returns the following values:
6914
6915 {
6916 "groups": an array of group names:
6917 [
6918 "group1",
6919 "group2",
6920 ...
6921 ]
6922 }
6923
6924 core/memstats: Returns the memory statistics {#core/memstats}
6925 This returns the memory statistics of the running program. What the
6926 values mean are explained in the go docs: https://golang.org/pkg/run‐
6927 time/#MemStats
6928
6929 The most interesting values for most people are:
6930
6931 · HeapAlloc: This is the amount of memory rclone is actually using
6932
6933 · HeapSys: This is the amount of memory rclone has obtained from the OS
6934
6935 · Sys: this is the total amount of memory requested from the OS
6936
6937 · It is virtual memory so may include unused memory
6938
6939 core/obscure: Obscures a string passed in. {#core/obscure}
6940 Pass a clear string and rclone will obscure it for the config file: -
6941 clear - string
6942
6943 Returns - obscured - string
6944
6945 core/pid: Return PID of current process {#core/pid}
6946 This returns PID of current process. Useful for stopping rclone
6947 process.
6948
6949 core/quit: Terminates the app. {#core/quit}
6950 (optional) Pass an exit code to be used for terminating the app: - ex‐
6951 itCode - int
6952
6953 core/stats: Returns stats about current transfers. {#core/stats}
6954 This returns all available stats:
6955
6956 rclone rc core/stats
6957
6958 If group is not provided then summed up stats for all groups will be
6959 returned.
6960
6961 Parameters
6962
6963 · group - name of the stats group (string)
6964
6965 Returns the following values:
6966
6967 {
6968 "speed": average speed in bytes/sec since start of the process,
6969 "bytes": total transferred bytes since the start of the process,
6970 "errors": number of errors,
6971 "fatalError": whether there has been at least one FatalError,
6972 "retryError": whether there has been at least one non-NoRetryError,
6973 "checks": number of checked files,
6974 "transfers": number of transferred files,
6975 "deletes" : number of deleted files,
6976 "elapsedTime": time in seconds since the start of the process,
6977 "lastError": last occurred error,
6978 "transferring": an array of currently active file transfers:
6979 [
6980 {
6981 "bytes": total transferred bytes for this file,
6982 "eta": estimated time in seconds until file transfer completion
6983 "name": name of the file,
6984 "percentage": progress of the file transfer in percent,
6985 "speed": speed in bytes/sec,
6986 "speedAvg": speed in bytes/sec as an exponentially weighted moving average,
6987 "size": size of the file in bytes
6988 }
6989 ],
6990 "checking": an array of names of currently active file checks
6991 []
6992 }
6993
6994 Values for “transferring”, “checking” and “lastError” are only assigned
6995 if data is available. The value for “eta” is null if an eta cannot be
6996 determined.
6997
6998 core/stats-delete: Delete stats group. {#core/stats-delete}
6999 This deletes entire stats group
7000
7001 Parameters
7002
7003 · group - name of the stats group (string)
7004
7005 core/stats-reset: Reset stats. {#core/stats-reset}
7006 This clears counters, errors and finished transfers for all stats or
7007 specific stats group if group is provided.
7008
7009 Parameters
7010
7011 · group - name of the stats group (string)
7012
7013 core/transferred: Returns stats about completed transfers. {#core/trans‐
7014 ferred}
7015 This returns stats about completed transfers:
7016
7017 rclone rc core/transferred
7018
7019 If group is not provided then completed transfers for all groups will
7020 be returned.
7021
7022 Note only the last 100 completed transfers are returned.
7023
7024 Parameters
7025
7026 · group - name of the stats group (string)
7027
7028 Returns the following values:
7029
7030 {
7031 "transferred": an array of completed transfers (including failed ones):
7032 [
7033 {
7034 "name": name of the file,
7035 "size": size of the file in bytes,
7036 "bytes": total transferred bytes for this file,
7037 "checked": if the transfer is only checked (skipped, deleted),
7038 "timestamp": integer representing millisecond unix epoch,
7039 "error": string description of the error (empty if successfull),
7040 "jobid": id of the job that this transfer belongs to
7041 }
7042 ]
7043 }
7044
7045 core/version: Shows the current version of rclone and the go runtime.
7046 {#core/version}
7047 This shows the current version of go and the go runtime
7048
7049 · version - rclone version, eg “v1.44”
7050
7051 · decomposed - version number as [major, minor, patch, subpatch]
7052
7053 · note patch and subpatch will be 999 for a git compiled version
7054
7055 · isGit - boolean - true if this was compiled from the git version
7056
7057 · os - OS in use as according to Go
7058
7059 · arch - cpu architecture in use according to Go
7060
7061 · goVersion - version of Go runtime in use
7062
7063 debug/set-block-profile-rate: Set runtime.SetBlockProfileRate for blocking
7064 profiling. {#debug/set-block-profile-rate}
7065 SetBlockProfileRate controls the fraction of goroutine blocking events
7066 that are reported in the blocking profile. The profiler aims to sample
7067 an average of one blocking event per rate nanoseconds spent blocked.
7068
7069 To include every blocking event in the profile, pass rate = 1. To turn
7070 off profiling entirely, pass rate <= 0.
7071
7072 After calling this you can use this to see the blocking profile:
7073
7074 go tool pprof http://localhost:5572/debug/pprof/block
7075
7076 Parameters
7077
7078 · rate - int
7079
7080 debug/set-mutex-profile-fraction: Set runtime.SetMutexProfileFraction for
7081 mutex profiling. {#debug/set-mutex-profile-fraction}
7082 SetMutexProfileFraction controls the fraction of mutex contention
7083 events that are reported in the mutex profile. On average 1/rate
7084 events are reported. The previous rate is returned.
7085
7086 To turn off profiling entirely, pass rate 0. To just read the current
7087 rate, pass rate < 0. (For n>1 the details of sampling may change.)
7088
7089 Once this is set you can look use this to profile the mutex contention:
7090
7091 go tool pprof http://localhost:5572/debug/pprof/mutex
7092
7093 Parameters
7094
7095 · rate - int
7096
7097 Results
7098
7099 · previousRate - int
7100
7101 job/list: Lists the IDs of the running jobs {#job/list}
7102 Parameters - None
7103
7104 Results
7105
7106 · jobids - array of integer job ids
7107
7108 job/status: Reads the status of the job ID {#job/status}
7109 Parameters
7110
7111 · jobid - id of the job (integer)
7112
7113 Results
7114
7115 · finished - boolean
7116
7117 · duration - time in seconds that the job ran for
7118
7119 · endTime - time the job finished (eg
7120 “2018-10-26T18:50:20.528746884+01:00”)
7121
7122 · error - error from the job or empty string for no error
7123
7124 · finished - boolean whether the job has finished or not
7125
7126 · id - as passed in above
7127
7128 · startTime - time the job started (eg
7129 “2018-10-26T18:50:20.528336039+01:00”)
7130
7131 · success - boolean - true for success false otherwise
7132
7133 · output - output of the job as would have been returned if called syn‐
7134 chronously
7135
7136 · progress - output of the progress related to the underlying job
7137
7138 job/stop: Stop the running job {#job/stop}
7139 Parameters
7140
7141 · jobid - id of the job (integer)
7142
7143 operations/about: Return the space used on the remote {#operations/about}
7144 This takes the following parameters
7145
7146 · fs - a remote name string eg “drive:”
7147
7148 The result is as returned from rclone about –json
7149
7150 See the about command (https://rclone.org/commands/rclone_size/) com‐
7151 mand for more information on the above.
7152
7153 Authentication is required for this call.
7154
7155 operations/cleanup: Remove trashed files in the remote or path {#opera‐
7156 tions/cleanup}
7157 This takes the following parameters
7158
7159 · fs - a remote name string eg “drive:”
7160
7161 See the cleanup command (https://rclone.org/commands/rclone_cleanup/)
7162 command for more information on the above.
7163
7164 Authentication is required for this call.
7165
7166 operations/copyfile: Copy a file from source remote to destination remote
7167 {#operations/copyfile}
7168 This takes the following parameters
7169
7170 · srcFs - a remote name string eg “drive:” for the source
7171
7172 · srcRemote - a path within that remote eg “file.txt” for the source
7173
7174 · dstFs - a remote name string eg “drive2:” for the destination
7175
7176 · dstRemote - a path within that remote eg “file2.txt” for the destina‐
7177 tion
7178
7179 Authentication is required for this call.
7180
7181 operations/copyurl: Copy the URL to the object {#operations/copyurl}
7182 This takes the following parameters
7183
7184 · fs - a remote name string eg “drive:”
7185
7186 · remote - a path within that remote eg “dir”
7187
7188 · url - string, URL to read from
7189
7190 · autoFilename - boolean, set to true to retrieve destination file name
7191 from url See the copyurl command (https://rclone.org/com‐
7192 mands/rclone_copyurl/) command for more information on the above.
7193
7194 Authentication is required for this call.
7195
7196 operations/delete: Remove files in the path {#operations/delete}
7197 This takes the following parameters
7198
7199 · fs - a remote name string eg “drive:”
7200
7201 See the delete command (https://rclone.org/commands/rclone_delete/)
7202 command for more information on the above.
7203
7204 Authentication is required for this call.
7205
7206 operations/deletefile: Remove the single file pointed to {#opera‐
7207 tions/deletefile}
7208 This takes the following parameters
7209
7210 · fs - a remote name string eg “drive:”
7211
7212 · remote - a path within that remote eg “dir”
7213
7214 See the deletefile command (https://rclone.org/commands/rclone_delete‐
7215 file/) command for more information on the above.
7216
7217 Authentication is required for this call.
7218
7219 operations/fsinfo: Return information about the remote {#operations/fsinfo}
7220 This takes the following parameters
7221
7222 · fs - a remote name string eg “drive:”
7223
7224 This returns info about the remote passed in;
7225
7226 {
7227 // optional features and whether they are available or not
7228 "Features": {
7229 "About": true,
7230 "BucketBased": false,
7231 "CanHaveEmptyDirectories": true,
7232 "CaseInsensitive": false,
7233 "ChangeNotify": false,
7234 "CleanUp": false,
7235 "Copy": false,
7236 "DirCacheFlush": false,
7237 "DirMove": true,
7238 "DuplicateFiles": false,
7239 "GetTier": false,
7240 "ListR": false,
7241 "MergeDirs": false,
7242 "Move": true,
7243 "OpenWriterAt": true,
7244 "PublicLink": false,
7245 "Purge": true,
7246 "PutStream": true,
7247 "PutUnchecked": false,
7248 "ReadMimeType": false,
7249 "ServerSideAcrossConfigs": false,
7250 "SetTier": false,
7251 "SetWrapper": false,
7252 "UnWrap": false,
7253 "WrapFs": false,
7254 "WriteMimeType": false
7255 },
7256 // Names of hashes available
7257 "Hashes": [
7258 "MD5",
7259 "SHA-1",
7260 "DropboxHash",
7261 "QuickXorHash"
7262 ],
7263 "Name": "local", // Name as created
7264 "Precision": 1, // Precision of timestamps in ns
7265 "Root": "/", // Path as created
7266 "String": "Local file system at /" // how the remote will appear in logs
7267 }
7268
7269 This command does not have a command line equivalent so use this in‐
7270 stead:
7271
7272 rclone rc --loopback operations/fsinfo fs=remote:
7273
7274 operations/list: List the given remote and path in JSON format {#opera‐
7275 tions/list}
7276 This takes the following parameters
7277
7278 · fs - a remote name string eg “drive:”
7279
7280 · remote - a path within that remote eg “dir”
7281
7282 · opt - a dictionary of options to control the listing (optional)
7283
7284 · recurse - If set recurse directories
7285
7286 · noModTime - If set return modification time
7287
7288 · showEncrypted - If set show decrypted names
7289
7290 · showOrigIDs - If set show the IDs for each item if known
7291
7292 · showHash - If set return a dictionary of hashes
7293
7294 The result is
7295
7296 · list
7297
7298 · This is an array of objects as described in the lsjson command
7299
7300 See the lsjson command (https://rclone.org/commands/rclone_lsjson/) for
7301 more information on the above and examples.
7302
7303 Authentication is required for this call.
7304
7305 operations/mkdir: Make a destination directory or container {#opera‐
7306 tions/mkdir}
7307 This takes the following parameters
7308
7309 · fs - a remote name string eg “drive:”
7310
7311 · remote - a path within that remote eg “dir”
7312
7313 See the mkdir command (https://rclone.org/commands/rclone_mkdir/) com‐
7314 mand for more information on the above.
7315
7316 Authentication is required for this call.
7317
7318 operations/movefile: Move a file from source remote to destination remote
7319 {#operations/movefile}
7320 This takes the following parameters
7321
7322 · srcFs - a remote name string eg “drive:” for the source
7323
7324 · srcRemote - a path within that remote eg “file.txt” for the source
7325
7326 · dstFs - a remote name string eg “drive2:” for the destination
7327
7328 · dstRemote - a path within that remote eg “file2.txt” for the destina‐
7329 tion
7330
7331 Authentication is required for this call.
7332
7333 operations/publiclink: Create or retrieve a public link to the given file
7334 or folder. {#operations/publiclink}
7335 This takes the following parameters
7336
7337 · fs - a remote name string eg “drive:”
7338
7339 · remote - a path within that remote eg “dir”
7340
7341 Returns
7342
7343 · url - URL of the resource
7344
7345 See the link command (https://rclone.org/commands/rclone_link/) command
7346 for more information on the above.
7347
7348 Authentication is required for this call.
7349
7350 operations/purge: Remove a directory or container and all of its contents
7351 {#operations/purge}
7352 This takes the following parameters
7353
7354 · fs - a remote name string eg “drive:”
7355
7356 · remote - a path within that remote eg “dir”
7357
7358 See the purge command (https://rclone.org/commands/rclone_purge/) com‐
7359 mand for more information on the above.
7360
7361 Authentication is required for this call.
7362
7363 operations/rmdir: Remove an empty directory or container {#opera‐
7364 tions/rmdir}
7365 This takes the following parameters
7366
7367 · fs - a remote name string eg “drive:”
7368
7369 · remote - a path within that remote eg “dir”
7370
7371 See the rmdir command (https://rclone.org/commands/rclone_rmdir/) com‐
7372 mand for more information on the above.
7373
7374 Authentication is required for this call.
7375
7376 operations/rmdirs: Remove all the empty directories in the path {#opera‐
7377 tions/rmdirs}
7378 This takes the following parameters
7379
7380 · fs - a remote name string eg “drive:”
7381
7382 · remote - a path within that remote eg “dir”
7383
7384 · leaveRoot - boolean, set to true not to delete the root
7385
7386 See the rmdirs command (https://rclone.org/commands/rclone_rmdirs/)
7387 command for more information on the above.
7388
7389 Authentication is required for this call.
7390
7391 operations/size: Count the number of bytes and files in remote {#opera‐
7392 tions/size}
7393 This takes the following parameters
7394
7395 · fs - a remote name string eg “drive:path/to/dir”
7396
7397 Returns
7398
7399 · count - number of files
7400
7401 · bytes - number of bytes in those files
7402
7403 See the size command (https://rclone.org/commands/rclone_size/) command
7404 for more information on the above.
7405
7406 Authentication is required for this call.
7407
7408 options/blocks: List all the option blocks {#options/blocks}
7409 Returns - options - a list of the options block names
7410
7411 options/get: Get all the options {#options/get}
7412 Returns an object where keys are option block names and values are an
7413 object with the current option values in.
7414
7415 This shows the internal names of the option within rclone which should
7416 map to the external options very easily with a few exceptions.
7417
7418 options/set: Set an option {#options/set}
7419 Parameters
7420
7421 · option block name containing an object with
7422
7423 · key: value
7424
7425 Repeated as often as required.
7426
7427 Only supply the options you wish to change. If an option is unknown it
7428 will be silently ignored. Not all options will have an effect when
7429 changed like this.
7430
7431 For example:
7432
7433 This sets DEBUG level logs (-vv)
7434
7435 rclone rc options/set --json '{"main": {"LogLevel": 8}}'
7436
7437 And this sets INFO level logs (-v)
7438
7439 rclone rc options/set --json '{"main": {"LogLevel": 7}}'
7440
7441 And this sets NOTICE level logs (normal without -v)
7442
7443 rclone rc options/set --json '{"main": {"LogLevel": 6}}'
7444
7445 rc/error: This returns an error {#rc/error}
7446 This returns an error with the input as part of its error string. Use‐
7447 ful for testing error handling.
7448
7449 rc/list: List all the registered remote control commands {#rc/list}
7450 This lists all the registered remote control commands as a JSON map in
7451 the commands response.
7452
7453 rc/noop: Echo the input to the output parameters {#rc/noop}
7454 This echoes the input parameters to the output parameters for testing
7455 purposes. It can be used to check that rclone is still alive and to
7456 check that parameter passing is working properly.
7457
7458 rc/noopauth: Echo the input to the output parameters requiring auth
7459 {#rc/noopauth}
7460 This echoes the input parameters to the output parameters for testing
7461 purposes. It can be used to check that rclone is still alive and to
7462 check that parameter passing is working properly.
7463
7464 Authentication is required for this call.
7465
7466 sync/copy: copy a directory from source remote to destination remote
7467 {#sync/copy}
7468 This takes the following parameters
7469
7470 · srcFs - a remote name string eg “drive:src” for the source
7471
7472 · dstFs - a remote name string eg “drive:dst” for the destination
7473
7474 See the copy command (https://rclone.org/commands/rclone_copy/) command
7475 for more information on the above.
7476
7477 Authentication is required for this call.
7478
7479 sync/move: move a directory from source remote to destination remote
7480 {#sync/move}
7481 This takes the following parameters
7482
7483 · srcFs - a remote name string eg “drive:src” for the source
7484
7485 · dstFs - a remote name string eg “drive:dst” for the destination
7486
7487 · deleteEmptySrcDirs - delete empty src directories if set
7488
7489 See the move command (https://rclone.org/commands/rclone_move/) command
7490 for more information on the above.
7491
7492 Authentication is required for this call.
7493
7494 sync/sync: sync a directory from source remote to destination remote
7495 {#sync/sync}
7496 This takes the following parameters
7497
7498 · srcFs - a remote name string eg “drive:src” for the source
7499
7500 · dstFs - a remote name string eg “drive:dst” for the destination
7501
7502 See the sync command (https://rclone.org/commands/rclone_sync/) command
7503 for more information on the above.
7504
7505 Authentication is required for this call.
7506
7507 vfs/forget: Forget files or directories in the directory cache. {#vfs/for‐
7508 get}
7509 This forgets the paths in the directory cache causing them to be
7510 re-read from the remote when needed.
7511
7512 If no paths are passed in then it will forget all the paths in the di‐
7513 rectory cache.
7514
7515 rclone rc vfs/forget
7516
7517 Otherwise pass files or dirs in as file=path or dir=path. Any parame‐
7518 ter key starting with file will forget that file and any starting with
7519 dir will forget that dir, eg
7520
7521 rclone rc vfs/forget file=hello file2=goodbye dir=home/junk
7522
7523 vfs/poll-interval: Get the status or update the value of the poll-interval
7524 option. {#vfs/poll-interval}
7525 Without any parameter given this returns the current status of the
7526 poll-interval setting.
7527
7528 When the interval=duration parameter is set, the poll-interval value is
7529 updated and the polling function is notified. Setting interval=0 dis‐
7530 ables poll-interval.
7531
7532 rclone rc vfs/poll-interval interval=5m
7533
7534 The timeout=duration parameter can be used to specify a time to wait
7535 for the current poll function to apply the new value. If timeout is
7536 less or equal 0, which is the default, wait indefinitely.
7537
7538 The new poll-interval value will only be active when the timeout is not
7539 reached.
7540
7541 If poll-interval is updated or disabled temporarily, some changes might
7542 not get picked up by the polling function, depending on the used re‐
7543 mote.
7544
7545 vfs/refresh: Refresh the directory cache. {#vfs/refresh}
7546 This reads the directories for the specified paths and freshens the di‐
7547 rectory cache.
7548
7549 If no paths are passed in then it will refresh the root directory.
7550
7551 rclone rc vfs/refresh
7552
7553 Otherwise pass directories in as dir=path. Any parameter key starting
7554 with dir will refresh that directory, eg
7555
7556 rclone rc vfs/refresh dir=home/junk dir2=data/misc
7557
7558 If the parameter recursive=true is given the whole directory tree will
7559 get refreshed. This refresh will use –fast-list if enabled.
7560
7561 Accessing the remote control via HTTP
7562 Rclone implements a simple HTTP based protocol.
7563
7564 Each endpoint takes an JSON object and returns a JSON object or an er‐
7565 ror. The JSON objects are essentially a map of string names to values.
7566
7567 All calls must made using POST.
7568
7569 The input objects can be supplied using URL parameters, POST parameters
7570 or by supplying “Content-Type: application/json” and a JSON blob in the
7571 body. There are examples of these below using curl.
7572
7573 The response will be a JSON blob in the body of the response. This is
7574 formatted to be reasonably human readable.
7575
7576 Error returns
7577 If an error occurs then there will be an HTTP error status (eg 500) and
7578 the body of the response will contain a JSON encoded error object, eg
7579
7580 {
7581 "error": "Expecting string value for key \"remote\" (was float64)",
7582 "input": {
7583 "fs": "/tmp",
7584 "remote": 3
7585 },
7586 "status": 400
7587 "path": "operations/rmdir",
7588 }
7589
7590 The keys in the error response are - error - error string - input - the
7591 input parameters to the call - status - the HTTP status code - path -
7592 the path of the call
7593
7594 CORS
7595 The sever implements basic CORS support and allows all origins for
7596 that. The response to a preflight OPTIONS request will echo the re‐
7597 quested “Access-Control-Request-Headers” back.
7598
7599 Using POST with URL parameters only
7600 curl -X POST 'http://localhost:5572/rc/noop?potato=1&sausage=2'
7601
7602 Response
7603
7604 {
7605 "potato": "1",
7606 "sausage": "2"
7607 }
7608
7609 Here is what an error response looks like:
7610
7611 curl -X POST 'http://localhost:5572/rc/error?potato=1&sausage=2'
7612
7613 {
7614 "error": "arbitrary error on input map[potato:1 sausage:2]",
7615 "input": {
7616 "potato": "1",
7617 "sausage": "2"
7618 }
7619 }
7620
7621 Note that curl doesn’t return errors to the shell unless you use the -f
7622 option
7623
7624 $ curl -f -X POST 'http://localhost:5572/rc/error?potato=1&sausage=2'
7625 curl: (22) The requested URL returned error: 400 Bad Request
7626 $ echo $?
7627 22
7628
7629 Using POST with a form
7630 curl --data "potato=1" --data "sausage=2" http://localhost:5572/rc/noop
7631
7632 Response
7633
7634 {
7635 "potato": "1",
7636 "sausage": "2"
7637 }
7638
7639 Note that you can combine these with URL parameters too with the POST
7640 parameters taking precedence.
7641
7642 curl --data "potato=1" --data "sausage=2" "http://localhost:5572/rc/noop?rutabaga=3&sausage=4"
7643
7644 Response
7645
7646 {
7647 "potato": "1",
7648 "rutabaga": "3",
7649 "sausage": "4"
7650 }
7651
7652 Using POST with a JSON blob
7653 curl -H "Content-Type: application/json" -X POST -d '{"potato":2,"sausage":1}' http://localhost:5572/rc/noop
7654
7655 response
7656
7657 {
7658 "password": "xyz",
7659 "username": "xyz"
7660 }
7661
7662 This can be combined with URL parameters too if required. The JSON
7663 blob takes precedence.
7664
7665 curl -H "Content-Type: application/json" -X POST -d '{"potato":2,"sausage":1}' 'http://localhost:5572/rc/noop?rutabaga=3&potato=4'
7666
7667 {
7668 "potato": 2,
7669 "rutabaga": "3",
7670 "sausage": 1
7671 }
7672
7673 Debugging rclone with pprof
7674 If you use the --rc flag this will also enable the use of the go pro‐
7675 filing tools on the same port.
7676
7677 To use these, first install go (https://golang.org/doc/install).
7678
7679 Debugging memory use
7680 To profile rclone’s memory use you can run:
7681
7682 go tool pprof -web http://localhost:5572/debug/pprof/heap
7683
7684 This should open a page in your browser showing what is using what mem‐
7685 ory.
7686
7687 You can also use the -text flag to produce a textual summary
7688
7689 $ go tool pprof -text http://localhost:5572/debug/pprof/heap
7690 Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total
7691 flat flat% sum% cum cum%
7692 1024.03kB 66.62% 66.62% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.addDecoderNode
7693 513kB 33.38% 100% 513kB 33.38% net/http.newBufioWriterSize
7694 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/all.init
7695 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/serve.init
7696 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/serve/restic.init
7697 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2.init
7698 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.init
7699 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.init.0
7700 0 0% 100% 1024.03kB 66.62% main.init
7701 0 0% 100% 513kB 33.38% net/http.(*conn).readRequest
7702 0 0% 100% 513kB 33.38% net/http.(*conn).serve
7703 0 0% 100% 1024.03kB 66.62% runtime.main
7704
7705 Debugging go routine leaks
7706 Memory leaks are most often caused by go routine leaks keeping memory
7707 alive which should have been garbage collected.
7708
7709 See all active go routines using
7710
7711 curl http://localhost:5572/debug/pprof/goroutine?debug=1
7712
7713 Or go to http://localhost:5572/debug/pprof/goroutine?debug=1 in your
7714 browser.
7715
7716 Other profiles to look at
7717 You can see a summary of profiles available at http://local‐
7718 host:5572/debug/pprof/
7719
7720 Here is how to use some of them:
7721
7722 · Memory: go tool pprof http://localhost:5572/debug/pprof/heap
7723
7724 · Go routines: curl http://localhost:5572/debug/pprof/goroutine?debug=1
7725
7726 · 30-second CPU profile: go tool pprof http://localhost:5572/de‐
7727 bug/pprof/profile
7728
7729 · 5-second execution trace: wget http://localhost:5572/de‐
7730 bug/pprof/trace?seconds=5
7731
7732 · Goroutine blocking profile
7733
7734 · Enable first with: rclone rc debug/set-block-profile-rate rate=1
7735 (docs)
7736
7737 · go tool pprof http://localhost:5572/debug/pprof/block
7738
7739 · Contended mutexes:
7740
7741 · Enable first with: rclone rc debug/set-mutex-profile-fraction
7742 rate=1 (docs)
7743
7744 · go tool pprof http://localhost:5572/debug/pprof/mutex
7745
7746 See the net/http/pprof docs (https://golang.org/pkg/net/http/pprof/)
7747 for more info on how to use the profiling and for a general overview
7748 see the Go team’s blog post on profiling go programs
7749 (https://blog.golang.org/profiling-go-programs).
7750
7751 The profiling hook is zero overhead unless it is used (https://stack‐
7752 overflow.com/q/26545159/164234).
7753
7755 Each cloud storage system is slightly different. Rclone attempts to
7756 provide a unified interface to them, but some underlying differences
7757 show through.
7758
7759 Features
7760 Here is an overview of the major features of each cloud storage system.
7761
7762 Name Hash ModTime Case Insen‐ Duplicate MIME Type
7763 sitive Files
7764 ──────────────────────────────────────────────────────────────────────────
7765 1Fichier Whirlpool No No Yes R
7766 Amazon MD5 No Yes No R
7767 Drive
7768 Amazon S3 MD5 Yes No No R/W
7769 Backblaze SHA1 Yes No No R/W
7770 B2
7771 Box SHA1 Yes Yes No -
7772 Citrix MD5 Yes Yes No -
7773 ShareFile
7774 Dropbox DBHASH † Yes Yes No -
7775
7776 FTP - No No No -
7777 Google MD5 Yes No No R/W
7778 Cloud Stor‐
7779 age
7780 Google MD5 Yes No Yes R/W
7781 Drive
7782 Google Pho‐ - No No Yes R
7783 tos
7784 HTTP - No No No R
7785 Hubic MD5 Yes No No R/W
7786 Jottacloud MD5 Yes Yes No R/W
7787 Koofr MD5 No Yes No -
7788 Mail.ru Mailru ‡‡‡ Yes Yes No -
7789 Cloud
7790 Mega - No No Yes -
7791 Memory MD5 Yes No No -
7792 Microsoft MD5 Yes No No R/W
7793 Azure Blob
7794 Storage
7795 Microsoft SHA1 ‡‡ Yes Yes No R
7796 OneDrive
7797 OpenDrive MD5 Yes Yes No -
7798 Openstack MD5 Yes No No R/W
7799 Swift
7800 pCloud MD5, SHA1 Yes No No W
7801 premiu‐ - No Yes No R
7802 mize.me
7803 put.io CRC-32 Yes No Yes R
7804 QingStor MD5 No No No R/W
7805 SFTP MD5, SHA1 ‡ Yes Depends No -
7806 SugarSync - No No No -
7807 WebDAV MD5, SHA1 Yes ††† Depends No -
7808 ††
7809 Yandex Disk MD5 Yes No No R/W
7810 The local All Yes Depends No -
7811 filesystem
7812
7813 Hash
7814 The cloud storage system supports various hash types of the objects.
7815 The hashes are used when transferring data as an integrity check and
7816 can be specifically used with the --checksum flag in syncs and in the
7817 check command.
7818
7819 To use the verify checksums when transferring between cloud storage
7820 systems they must support a common hash type.
7821
7822 † Note that Dropbox supports its own custom hash (https://www.drop‐
7823 box.com/developers/reference/content-hash). This is an SHA256 sum of
7824 all the 4MB block SHA256s.
7825
7826 ‡ SFTP supports checksums if the same login has shell access and md5sum
7827 or sha1sum as well as echo are in the remote’s PATH.
7828
7829 †† WebDAV supports hashes when used with Owncloud and Nextcloud only.
7830
7831 ††† WebDAV supports modtimes when used with Owncloud and Nextcloud on‐
7832 ly.
7833
7834 ‡‡ Microsoft OneDrive Personal supports SHA1 hashes, whereas OneDrive
7835 for business and SharePoint server support Microsoft’s own QuickXorHash
7836 (https://docs.microsoft.com/en-us/onedrive/developer/code-snip‐
7837 pets/quickxorhash).
7838
7839 ‡‡‡ Mail.ru uses its own modified SHA1 hash
7840
7841 ModTime
7842 The cloud storage system supports setting modification times on ob‐
7843 jects. If it does then this enables a using the modification times as
7844 part of the sync. If not then only the size will be checked by de‐
7845 fault, though the MD5SUM can be checked with the --checksum flag.
7846
7847 All cloud storage systems support some kind of date on the object and
7848 these will be set when transferring from the cloud storage system.
7849
7850 Case Insensitive
7851 If a cloud storage systems is case sensitive then it is possible to
7852 have two files which differ only in case, eg file.txt and FILE.txt. If
7853 a cloud storage system is case insensitive then that isn’t possible.
7854
7855 This can cause problems when syncing between a case insensitive system
7856 and a case sensitive system. The symptom of this is that no matter how
7857 many times you run the sync it never completes fully.
7858
7859 The local filesystem and SFTP may or may not be case sensitive depend‐
7860 ing on OS.
7861
7862 · Windows - usually case insensitive, though case is preserved
7863
7864 · OSX - usually case insensitive, though it is possible to format case
7865 sensitive
7866
7867 · Linux - usually case sensitive, but there are case insensitive file
7868 systems (eg FAT formatted USB keys)
7869
7870 Most of the time this doesn’t cause any problems as people tend to
7871 avoid files whose name differs only by case even on case sensitive sys‐
7872 tems.
7873
7874 Duplicate files
7875 If a cloud storage system allows duplicate files then it can have two
7876 objects with the same name.
7877
7878 This confuses rclone greatly when syncing - use the rclone dedupe com‐
7879 mand to rename or remove duplicates.
7880
7881 Restricted filenames
7882 Some cloud storage systems might have restrictions on the characters
7883 that are usable in file or directory names. When rclone detects such a
7884 name during a file upload, it will transparently replace the restricted
7885 characters with similar looking Unicode characters.
7886
7887 This process is designed to avoid ambiguous file names as much as pos‐
7888 sible and allow to move files between many cloud storage systems trans‐
7889 parently.
7890
7891 The name shown by rclone to the user or during log output will only
7892 contain a minimal set of replaced characters to ensure correct format‐
7893 ting and not necessarily the actual name used on the cloud storage.
7894
7895 This transformation is reversed when downloading a file or parsing
7896 rclone arguments. For example, when uploading a file named my
7897 file?.txt to Onedrive will be displayed as my file?.txt on the console,
7898 but stored as my file?.txt (the ? gets replaced by the similar looking
7899 ? character) to Onedrive. The reverse transformation allows to read a
7900 fileunusual/name.txt from Google Drive, by passing the name unusu‐
7901 al/name.txt (the / needs to be replaced by the similar looking /
7902 character) on the command line.
7903
7904 Default restricted characters
7905 The table below shows the characters that are replaced by default.
7906
7907 When a replacement character is found in a filename, this character
7908 will be escaped with the ‛ character to avoid ambiguous file names.
7909 (e.g. a file named ␀.txt would shown as ‛␀.txt)
7910
7911 Each cloud storage backend can use a different set of characters, which
7912 will be specified in the documentation for each backend.
7913
7914 Character Value Replacement
7915 ────────────────────────────────
7916 NUL 0x00 ␀
7917 SOH 0x01 ␁
7918 STX 0x02 ␂
7919 ETX 0x03 ␃
7920 EOT 0x04 ␄
7921 ENQ 0x05 ␅
7922 ACK 0x06 ␆
7923 BEL 0x07 ␇
7924 BS 0x08 ␈
7925 HT 0x09 ␉
7926 LF 0x0A ␊
7927 VT 0x0B ␋
7928 FF 0x0C ␌
7929 CR 0x0D ␍
7930 SO 0x0E ␎
7931 SI 0x0F ␏
7932 DLE 0x10 ␐
7933 DC1 0x11 ␑
7934 DC2 0x12 ␒
7935 DC3 0x13 ␓
7936 DC4 0x14 ␔
7937 NAK 0x15 ␕
7938 SYN 0x16 ␖
7939 ETB 0x17 ␗
7940 CAN 0x18 ␘
7941 EM 0x19 ␙
7942 SUB 0x1A ␚
7943 ESC 0x1B ␛
7944 FS 0x1C ␜
7945 GS 0x1D ␝
7946 RS 0x1E ␞
7947 US 0x1F ␟
7948 / 0x2F /
7949 DEL 0x7F ␡
7950
7951 The default encoding will also encode these file names as they are
7952 problematic with many cloud storage systems.
7953
7954 File name Replacement
7955 ────────────────────────
7956 . .
7957 .. ..
7958
7959 Invalid UTF-8 bytes
7960 Some backends only support a sequence of well formed UTF-8 bytes as
7961 file or directory names.
7962
7963 In this case all invalid UTF-8 bytes will be replaced with a quoted
7964 representation of the byte value to allow uploading a file to such a
7965 backend. For example, the invalid byte 0xFE will be encoded as ‛FE.
7966
7967 A common source of invalid UTF-8 bytes are local filesystems, that
7968 store names in a different encoding than UTF-8 or UTF-16, like latin1.
7969 See the local filenames (/local/#filenames) section for details.
7970
7971 Encoding option
7972 Most backends have an encoding options, specified as a flag --back‐
7973 end-encoding where backend is the name of the backend, or as a config
7974 parameter encoding (you’ll need to select the Advanced config in rclone
7975 config to see it).
7976
7977 This will have default value which encodes and decodes characters in
7978 such a way as to preserve the maximum number of characters (see above).
7979
7980 However this can be incorrect in some scenarios, for example if you
7981 have a Windows file system with characters such as * and ? that you
7982 want to remain as those characters on the remote rather than being
7983 translated to * and ?.
7984
7985 The --backend-encoding flags allow you to change that. You can disable
7986 the encoding completely with --backend-encoding None or set encoding =
7987 None in the config file.
7988
7989 Encoding takes a comma separated list of encodings. You can see the
7990 list of all available characters by passing an invalid value to this
7991 flag, eg --local-encoding "help" and rclone help flags encoding will
7992 show you the defaults for the backends.
7993
7994 Encoding Characters
7995 ───────────────────────────────────────────
7996 Asterisk *
7997 BackQuote `
7998 BackSlash \
7999 Colon :
8000 CrLf CR 0x0D, LF 0x0A
8001 Ctl All control characters
8002 0x00-0x1F
8003 Del DEL 0x7F
8004 Dollar $
8005 Dot .
8006 DoubleQuote "
8007 Hash #
8008 InvalidUtf8 An invalid UTF-8 character
8009 (eg latin1)
8010 LeftCrLfHtVt CR 0x0D, LF 0x0A,HT 0x09,
8011 VT 0x0B on the left of a
8012 string
8013 LeftPeriod . on the left of a string
8014 LeftSpace SPACE on the left of a
8015 string
8016 LeftTilde ~ on the left of a string
8017 LtGt <, >
8018 None No characters are encoded
8019 Percent %
8020 Pipe |
8021 Question ?
8022 RightCrLfHtVt CR 0x0D, LF 0x0A, HT 0x09,
8023 VT 0x0B on the right of a
8024 string
8025 RightPeriod . on the right of a string
8026 RightSpace SPACE on the right of a
8027 string
8028 SingleQuote '
8029 Slash /
8030
8031 To take a specific example, the FTP backend’s default encoding is
8032
8033 --ftp-encoding "Slash,Del,Ctl,RightSpace,Dot"
8034
8035 However, let’s say the FTP server is running on Windows and can’t have
8036 any of the invalid Windows characters in file names. You are backing
8037 up Linux servers to this FTP server which do have those characters in
8038 file names. So you would add the Windows set which are
8039
8040 Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot
8041
8042 to the existing ones, giving:
8043
8044 Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot,Del,RightSpace
8045
8046 This can be specified using the --ftp-encoding flag or using an encod‐
8047 ing parameter in the config file.
8048
8049 Or let’s say you have a Windows server but you want to preserve * and
8050 ?, you would then have this as the encoding (the Windows encoding mi‐
8051 nus Asterisk and Question).
8052
8053 Slash,LtGt,DoubleQuote,Colon,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot
8054
8055 This can be specified using the --local-encoding flag or using an en‐
8056 coding parameter in the config file.
8057
8058 MIME Type
8059 MIME types (also known as media types) classify types of documents us‐
8060 ing a simple text classification, eg text/html or application/pdf.
8061
8062 Some cloud storage systems support reading (R) the MIME type of objects
8063 and some support writing (W) the MIME type of objects.
8064
8065 The MIME type can be important if you are serving files directly to
8066 HTTP from the storage system.
8067
8068 If you are copying from a remote which supports reading (R) to a remote
8069 which supports writing (W) then rclone will preserve the MIME types.
8070 Otherwise they will be guessed from the extension, or the remote itself
8071 may assign the MIME type.
8072
8073 Optional Features
8074 All the remotes support a basic set of features, but there are some op‐
8075 tional features supported by some remotes used to make some operations
8076 more efficient.
8077
8078 Name Purge Copy Move DirMove CleanUp ListR StreamU‐ LinkShar‐ About Empty‐
8079 pload ing Dir
8080 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
8081 1Fichi‐ No No No No No No No No No Yes
8082 er
8083 Amazon Yes No Yes Yes No #575 No No No #2178 No Yes
8084 Drive (https://github.com/rclone/rclone/is‐ (https://github.com/rclone/rclone/is‐
8085 sues/575) sues/2178)
8086 Amazon No Yes No No No Yes Yes No #2178 No No
8087 S3 (https://github.com/rclone/rclone/is‐
8088 sues/2178)
8089 Back‐ No Yes No No Yes Yes Yes Yes No No
8090 blaze
8091 B2
8092 Box Yes Yes Yes Yes No #575 No Yes Yes No Yes
8093 (https://github.com/rclone/rclone/is‐
8094 sues/575)
8095 Citrix Yes Yes Yes Yes No No Yes No No Yes
8096 Share‐
8097 File
8098 Dropbox Yes Yes Yes Yes No #575 No Yes Yes Yes Yes
8099 (https://github.com/rclone/rclone/is‐
8100 sues/575)
8101 FTP No No Yes Yes No No Yes No #2178 No Yes
8102 (https://github.com/rclone/rclone/is‐
8103 sues/2178)
8104 Google Yes Yes No No No Yes Yes No #2178 No No
8105 Cloud (https://github.com/rclone/rclone/is‐
8106 Storage sues/2178)
8107 Google Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
8108 Drive
8109 Google No No No No No No No No No No
8110 Photos
8111 HTTP No No No No No No No No #2178 No Yes
8112 (https://github.com/rclone/rclone/is‐
8113 sues/2178)
8114 Hubic Yes † Yes No No No Yes Yes No #2178 Yes No
8115 (https://github.com/rclone/rclone/is‐
8116 sues/2178)
8117 Jotta‐ Yes Yes Yes Yes No Yes No Yes Yes Yes
8118 cloud
8119 Mail.ru Yes Yes Yes Yes Yes No No Yes Yes Yes
8120 Cloud
8121 Mega Yes No Yes Yes Yes No No No #2178 Yes Yes
8122 (https://github.com/rclone/rclone/is‐
8123 sues/2178)
8124 Memory No Yes No No No Yes Yes No No No
8125 Micro‐ Yes Yes No No No Yes No No #2178 No No
8126 soft (https://github.com/rclone/rclone/is‐
8127 Azure sues/2178)
8128 Blob
8129 Storage
8130 Micro‐ Yes Yes Yes Yes No #575 No No Yes Yes Yes
8131 soft (https://github.com/rclone/rclone/is‐
8132 OneDrive sues/575)
8133 Open‐ Yes Yes Yes Yes No No No No No Yes
8134 Drive
8135 Open‐ Yes † Yes No No No Yes Yes No #2178 Yes No
8136 stack (https://github.com/rclone/rclone/is‐
8137 Swift sues/2178)
8138 pCloud Yes Yes Yes Yes Yes No No No #2178 Yes Yes
8139 (https://github.com/rclone/rclone/is‐
8140 sues/2178)
8141 premiu‐ Yes No Yes Yes No No No Yes Yes Yes
8142 mize.me
8143 put.io Yes No Yes Yes Yes No Yes No #2178 Yes Yes
8144 (https://github.com/rclone/rclone/is‐
8145 sues/2178)
8146 QingStor No Yes No No No Yes No No #2178 No No
8147 (https://github.com/rclone/rclone/is‐
8148 sues/2178)
8149 SFTP No No Yes Yes No No Yes No #2178 Yes Yes
8150 (https://github.com/rclone/rclone/is‐
8151 sues/2178)
8152 Sug‐ Yes Yes Yes Yes No No Yes Yes No Yes
8153 arSync
8154 WebDAV Yes Yes Yes Yes No No Yes ‡ No #2178 Yes Yes
8155 (https://github.com/rclone/rclone/is‐
8156 sues/2178)
8157 Yandex Yes Yes Yes Yes Yes No Yes Yes Yes Yes
8158 Disk
8159 The lo‐ Yes No Yes Yes No No Yes No Yes Yes
8160 cal
8161 filesys‐
8162 tem
8163
8164 Purge
8165 This deletes a directory quicker than just deleting all the files in
8166 the directory.
8167
8168 † Note Swift and Hubic implement this in order to delete directory
8169 markers but they don’t actually have a quicker way of deleting files
8170 other than deleting them individually.
8171
8172 ‡ StreamUpload is not supported with Nextcloud
8173
8174 Copy
8175 Used when copying an object to and from the same remote. This known as
8176 a server side copy so you can copy a file without downloading it and
8177 uploading it again. It is used if you use rclone copy or rclone move
8178 if the remote doesn’t support Move directly.
8179
8180 If the server doesn’t support Copy directly then for copy operations
8181 the file is downloaded then re-uploaded.
8182
8183 Move
8184 Used when moving/renaming an object on the same remote. This is known
8185 as a server side move of a file. This is used in rclone move if the
8186 server doesn’t support DirMove.
8187
8188 If the server isn’t capable of Move then rclone simulates it with Copy
8189 then delete. If the server doesn’t support Copy then rclone will down‐
8190 load the file and re-upload it.
8191
8192 DirMove
8193 This is used to implement rclone move to move a directory if possible.
8194 If it isn’t then it will use Move on each file (which falls back to
8195 Copy then download and upload - see Move section).
8196
8197 CleanUp
8198 This is used for emptying the trash for a remote by rclone cleanup.
8199
8200 If the server can’t do CleanUp then rclone cleanup will return an er‐
8201 ror.
8202
8203 ListR
8204 The remote supports a recursive list to list all the contents beneath a
8205 directory quickly. This enables the --fast-list flag to work. See the
8206 rclone docs (/docs/#fast-list) for more details.
8207
8208 StreamUpload
8209 Some remotes allow files to be uploaded without knowing the file size
8210 in advance. This allows certain operations to work without spooling
8211 the file to local disk first, e.g. rclone rcat.
8212
8213 LinkSharing
8214 Sets the necessary permissions on a file or folder and prints a link
8215 that allows others to access them, even if they don’t have an account
8216 on the particular cloud provider.
8217
8218 About
8219 This is used to fetch quota information from the remote, like bytes
8220 used/free/quota and bytes used in the trash.
8221
8222 This is also used to return the space used, available for rclone mount.
8223
8224 If the server can’t do About then rclone about will return an error.
8225
8226 EmptyDir
8227 The remote supports empty directories. See Limitations (/bugs/#limita‐
8228 tions) for details. Most Object/Bucket based remotes do not support
8229 this.
8230
8232 This describes the global flags available to every rclone command split
8233 into two groups, non backend and backend flags.
8234
8235 Non Backend Flags
8236 These flags are available for every command.
8237
8238 --ask-password Allow prompt for password for encrypted configuration. (default true)
8239 --auto-confirm If enabled, do not request console confirmation.
8240 --backup-dir string Make backups into hierarchy based in DIR.
8241 --bind string Local address to bind to for outgoing connections, IPv4, IPv6 or name.
8242 --buffer-size SizeSuffix In memory buffer size when reading files for each --transfer. (default 16M)
8243 --bwlimit BwTimetable Bandwidth limit in kBytes/s, or use suffix b|k|M|G or a full timetable.
8244 --ca-cert string CA certificate used to verify servers
8245 --cache-dir string Directory rclone will use for caching. (default "$HOME/.cache/rclone")
8246 --checkers int Number of checkers to run in parallel. (default 8)
8247 -c, --checksum Skip based on checksum (if available) & size, not mod-time & size
8248 --client-cert string Client SSL certificate (PEM) for mutual TLS auth
8249 --client-key string Client SSL private key (PEM) for mutual TLS auth
8250 --compare-dest string Include additional server-side path during comparison.
8251 --config string Config file. (default "$HOME/.config/rclone/rclone.conf")
8252 --contimeout duration Connect timeout (default 1m0s)
8253 --copy-dest string Implies --compare-dest but also copies files from path into destination.
8254 --cpuprofile string Write cpu profile to file
8255 --delete-after When synchronizing, delete files on destination after transferring (default)
8256 --delete-before When synchronizing, delete files on destination before transferring
8257 --delete-during When synchronizing, delete files during transfer
8258 --delete-excluded Delete files on dest excluded from sync
8259 --disable string Disable a comma separated list of features. Use help to see a list.
8260 -n, --dry-run Do a trial run with no permanent changes
8261 --dump DumpFlags List of items to dump from: headers,bodies,requests,responses,auth,filters,goroutines,openfiles
8262 --dump-bodies Dump HTTP headers and bodies - may contain sensitive info
8263 --dump-headers Dump HTTP headers - may contain sensitive info
8264 --exclude stringArray Exclude files matching pattern
8265 --exclude-from stringArray Read exclude patterns from file
8266 --exclude-if-present string Exclude directories if filename is present
8267 --expect-continue-timeout duration Timeout when using expect / 100-continue in HTTP (default 1s)
8268 --fast-list Use recursive list if available. Uses more memory but fewer transactions.
8269 --files-from stringArray Read list of source-file names from file
8270 -f, --filter stringArray Add a file-filtering rule
8271 --filter-from stringArray Read filtering patterns from a file
8272 --ignore-case Ignore case in filters (case insensitive)
8273 --ignore-case-sync Ignore case when synchronizing
8274 --ignore-checksum Skip post copy check of checksums.
8275 --ignore-errors delete even if there are I/O errors
8276 --ignore-existing Skip all files that exist on destination
8277 --ignore-size Ignore size when skipping use mod-time or checksum.
8278 -I, --ignore-times Don't skip files that match size and time - transfer all files
8279 --immutable Do not modify files. Fail if existing files have been modified.
8280 --include stringArray Include files matching pattern
8281 --include-from stringArray Read include patterns from file
8282 --log-file string Log everything to this file
8283 --log-format string Comma separated list of log format options (default "date,time")
8284 --log-level string Log level DEBUG|INFO|NOTICE|ERROR (default "NOTICE")
8285 --low-level-retries int Number of low level retries to do. (default 10)
8286 --max-age Duration Only transfer files younger than this in s or suffix ms|s|m|h|d|w|M|y (default off)
8287 --max-backlog int Maximum number of objects in sync or check backlog. (default 10000)
8288 --max-delete int When synchronizing, limit the number of deletes (default -1)
8289 --max-depth int If set limits the recursion depth to this. (default -1)
8290 --max-duration duration Maximum duration rclone will transfer data for.
8291 --max-size SizeSuffix Only transfer files smaller than this in k or suffix b|k|M|G (default off)
8292 --max-stats-groups int Maximum number of stats groups to keep in memory. On max oldest is discarded. (default 1000)
8293 --max-transfer SizeSuffix Maximum size of data to transfer. (default off)
8294 --memprofile string Write memory profile to file
8295 --min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
8296 --min-size SizeSuffix Only transfer files bigger than this in k or suffix b|k|M|G (default off)
8297 --modify-window duration Max time diff to be considered the same (default 1ns)
8298 --multi-thread-cutoff SizeSuffix Use multi-thread downloads for files above this size. (default 250M)
8299 --multi-thread-streams int Max number of streams to use for multi-thread downloads. (default 4)
8300 --no-check-certificate Do not verify the server SSL certificate. Insecure.
8301 --no-check-dest Don't check the destination, copy regardless.
8302 --no-gzip-encoding Don't set Accept-Encoding: gzip.
8303 --no-traverse Don't traverse destination file system on copy.
8304 --no-update-modtime Don't update destination mod-time if files identical.
8305 --order-by string Instructions on how to order the transfers, eg 'size,descending'
8306 --password-command SpaceSepList Command for supplying password for encrypted configuration.
8307 -P, --progress Show progress during transfer.
8308 -q, --quiet Print as little stuff as possible
8309 --rc Enable the remote control server.
8310 --rc-addr string IPaddress:Port or :Port to bind server to. (default "localhost:5572")
8311 --rc-allow-origin string Set the allowed origin for CORS.
8312 --rc-baseurl string Prefix for URLs - leave blank for root.
8313 --rc-cert string SSL PEM key (concatenation of certificate and CA certificate)
8314 --rc-client-ca string Client certificate authority to verify clients with
8315 --rc-files string Path to local files to serve on the HTTP server.
8316 --rc-htpasswd string htpasswd file - if not provided no authentication is done
8317 --rc-job-expire-duration duration expire finished async jobs older than this value (default 1m0s)
8318 --rc-job-expire-interval duration interval to check for expired async jobs (default 10s)
8319 --rc-key string SSL PEM Private key
8320 --rc-max-header-bytes int Maximum size of request header (default 4096)
8321 --rc-no-auth Don't require auth for certain methods.
8322 --rc-pass string Password for authentication.
8323 --rc-realm string realm for authentication (default "rclone")
8324 --rc-serve Enable the serving of remote objects.
8325 --rc-server-read-timeout duration Timeout for server reading data (default 1h0m0s)
8326 --rc-server-write-timeout duration Timeout for server writing data (default 1h0m0s)
8327 --rc-user string User name for authentication.
8328 --rc-web-fetch-url string URL to fetch the releases for webgui. (default "https://api.github.com/repos/rclone/rclone-webui-react/releases/latest")
8329 --rc-web-gui Launch WebGUI on localhost
8330 --rc-web-gui-force-update Force update to latest version of web gui
8331 --rc-web-gui-no-open-browser Don't open the browser automatically
8332 --rc-web-gui-update Check and update to latest version of web gui
8333 --retries int Retry operations this many times if they fail (default 3)
8334 --retries-sleep duration Interval between retrying operations if they fail, e.g 500ms, 60s, 5m. (0 to disable)
8335 --size-only Skip based on size only, not mod-time or checksum
8336 --stats duration Interval between printing stats, e.g 500ms, 60s, 5m. (0 to disable) (default 1m0s)
8337 --stats-file-name-length int Max file name length in stats. 0 for no limit (default 45)
8338 --stats-log-level string Log level to show --stats output DEBUG|INFO|NOTICE|ERROR (default "INFO")
8339 --stats-one-line Make the stats fit on one line.
8340 --stats-one-line-date Enables --stats-one-line and add current date/time prefix.
8341 --stats-one-line-date-format string Enables --stats-one-line-date and uses custom formatted date. Enclose date string in double quotes ("). See https://golang.org/pkg/time/#Time.Format
8342 --stats-unit string Show data rate in stats as either 'bits' or 'bytes'/s (default "bytes")
8343 --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 100k)
8344 --suffix string Suffix to add to changed files.
8345 --suffix-keep-extension Preserve the extension when using --suffix.
8346 --syslog Use Syslog for logging
8347 --syslog-facility string Facility for syslog, eg KERN,USER,... (default "DAEMON")
8348 --timeout duration IO idle timeout (default 5m0s)
8349 --tpslimit float Limit HTTP transactions per second to this.
8350 --tpslimit-burst int Max burst of transactions for --tpslimit. (default 1)
8351 --track-renames When synchronizing, track file renames and do a server side move if possible
8352 --transfers int Number of file transfers to run in parallel. (default 4)
8353 -u, --update Skip files that are newer on the destination.
8354 --use-cookies Enable session cookiejar.
8355 --use-json-log Use json log format.
8356 --use-mmap Use mmap allocator (see docs).
8357 --use-server-modtime Use server modified time instead of object metadata
8358 --user-agent string Set the user-agent to a specified string. The default is rclone/ version (default "rclone/v1.51.0")
8359 -v, --verbose count Print lots more stuff (repeat for more)
8360
8361 Backend Flags
8362 These flags are available for every command. They control the backends
8363 and may be set in the config file.
8364
8365 --acd-auth-url string Auth server URL.
8366 --acd-client-id string Amazon Application Client ID.
8367 --acd-client-secret string Amazon Application Client Secret.
8368 --acd-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
8369 --acd-templink-threshold SizeSuffix Files >= this size will be downloaded via their tempLink. (default 9G)
8370 --acd-token-url string Token server url.
8371 --acd-upload-wait-per-gb Duration Additional time per GB to wait after a failed complete upload to see if it appears. (default 3m0s)
8372 --alias-remote string Remote or path to alias.
8373 --azureblob-access-tier string Access tier of blob: hot, cool or archive.
8374 --azureblob-account string Storage Account Name (leave blank to use SAS URL or Emulator)
8375 --azureblob-chunk-size SizeSuffix Upload chunk size (<= 100MB). (default 4M)
8376 --azureblob-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8)
8377 --azureblob-endpoint string Endpoint for the service
8378 --azureblob-key string Storage Account Key (leave blank to use SAS URL or Emulator)
8379 --azureblob-list-chunk int Size of blob list. (default 5000)
8380 --azureblob-sas-url string SAS URL for container level access only
8381 --azureblob-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (<= 256MB). (default 256M)
8382 --azureblob-use-emulator Uses local storage emulator if provided as 'true' (leave blank if using real azure storage endpoint)
8383 --b2-account string Account ID or Application Key ID
8384 --b2-chunk-size SizeSuffix Upload chunk size. Must fit in memory. (default 96M)
8385 --b2-disable-checksum Disable checksums for large (> upload cutoff) files
8386 --b2-download-auth-duration Duration Time before the authorization token will expire in s or suffix ms|s|m|h|d. (default 1w)
8387 --b2-download-url string Custom endpoint for downloads.
8388 --b2-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
8389 --b2-endpoint string Endpoint for the service.
8390 --b2-hard-delete Permanently delete files on remote removal, otherwise hide files.
8391 --b2-key string Application Key
8392 --b2-test-mode string A flag string for X-Bz-Test-Mode header for debugging.
8393 --b2-upload-cutoff SizeSuffix Cutoff for switching to chunked upload. (default 200M)
8394 --b2-versions Include old versions in directory listings.
8395 --box-box-config-file string Box App config.json location
8396 --box-box-sub-type string (default "user")
8397 --box-client-id string Box App Client Id.
8398 --box-client-secret string Box App Client Secret
8399 --box-commit-retries int Max number of times to try committing a multipart file. (default 100)
8400 --box-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot)
8401 --box-upload-cutoff SizeSuffix Cutoff for switching to multipart upload (>= 50MB). (default 50M)
8402 --cache-chunk-clean-interval Duration How often should the cache perform cleanups of the chunk storage. (default 1m0s)
8403 --cache-chunk-no-memory Disable the in-memory cache for storing chunks during streaming.
8404 --cache-chunk-path string Directory to cache chunk files. (default "$HOME/.cache/rclone/cache-backend")
8405 --cache-chunk-size SizeSuffix The size of a chunk (partial file data). (default 5M)
8406 --cache-chunk-total-size SizeSuffix The total size that the chunks can take up on the local disk. (default 10G)
8407 --cache-db-path string Directory to store file structure metadata DB. (default "$HOME/.cache/rclone/cache-backend")
8408 --cache-db-purge Clear all the cached data for this remote on start.
8409 --cache-db-wait-time Duration How long to wait for the DB to be available - 0 is unlimited (default 1s)
8410 --cache-info-age Duration How long to cache file structure information (directory listings, file size, times etc). (default 6h0m0s)
8411 --cache-plex-insecure string Skip all certificate verifications when connecting to the Plex server
8412 --cache-plex-password string The password of the Plex user
8413 --cache-plex-url string The URL of the Plex server
8414 --cache-plex-username string The username of the Plex user
8415 --cache-read-retries int How many times to retry a read from a cache storage. (default 10)
8416 --cache-remote string Remote to cache.
8417 --cache-rps int Limits the number of requests per second to the source FS (-1 to disable) (default -1)
8418 --cache-tmp-upload-path string Directory to keep temporary files until they are uploaded.
8419 --cache-tmp-wait-time Duration How long should files be stored in local cache before being uploaded (default 15s)
8420 --cache-workers int How many workers should run in parallel to download chunks. (default 4)
8421 --cache-writes Cache file data on writes through the FS
8422 --chunker-chunk-size SizeSuffix Files larger than chunk size will be split in chunks. (default 2G)
8423 --chunker-fail-hard Choose how chunker should handle files with missing or invalid chunks.
8424 --chunker-hash-type string Choose how chunker handles hash sums. All modes but "none" require metadata. (default "md5")
8425 --chunker-meta-format string Format of the metadata object or "none". By default "simplejson". (default "simplejson")
8426 --chunker-name-format string String format of chunk file names. (default "*.rclone_chunk.###")
8427 --chunker-remote string Remote to chunk/unchunk.
8428 --chunker-start-from int Minimum valid chunk number. Usually 0 or 1. (default 1)
8429 -L, --copy-links Follow symlinks and copy the pointed to item.
8430 --crypt-directory-name-encryption Option to either encrypt directory names or leave them intact. (default true)
8431 --crypt-filename-encryption string How to encrypt the filenames. (default "standard")
8432 --crypt-password string Password or pass phrase for encryption.
8433 --crypt-password2 string Password or pass phrase for salt. Optional but recommended.
8434 --crypt-remote string Remote to encrypt/decrypt.
8435 --crypt-show-mapping For all files listed show how the names encrypt.
8436 --drive-acknowledge-abuse Set to allow files which return cannotDownloadAbusiveFile to be downloaded.
8437 --drive-allow-import-name-change Allow the filetype to change when uploading Google docs (e.g. file.doc to file.docx). This will confuse sync and reupload every time.
8438 --drive-alternate-export Use alternate export URLs for google documents export.,
8439 --drive-auth-owner-only Only consider files owned by the authenticated user.
8440 --drive-chunk-size SizeSuffix Upload chunk size. Must a power of 2 >= 256k. (default 8M)
8441 --drive-client-id string Google Application Client Id
8442 --drive-client-secret string Google Application Client Secret
8443 --drive-disable-http2 Disable drive using http2 (default true)
8444 --drive-encoding MultiEncoder This sets the encoding for the backend. (default InvalidUtf8)
8445 --drive-export-formats string Comma separated list of preferred formats for downloading Google docs. (default "docx,xlsx,pptx,svg")
8446 --drive-formats string Deprecated: see export_formats
8447 --drive-impersonate string Impersonate this user when using a service account.
8448 --drive-import-formats string Comma separated list of preferred formats for uploading Google docs.
8449 --drive-keep-revision-forever Keep new head revision of each file forever.
8450 --drive-list-chunk int Size of listing chunk 100-1000. 0 to disable. (default 1000)
8451 --drive-pacer-burst int Number of API calls to allow without sleeping. (default 100)
8452 --drive-pacer-min-sleep Duration Minimum time to sleep between API calls. (default 100ms)
8453 --drive-root-folder-id string ID of the root folder
8454 --drive-scope string Scope that rclone should use when requesting access from drive.
8455 --drive-server-side-across-configs Allow server side operations (eg copy) to work across different drive configs.
8456 --drive-service-account-credentials string Service Account Credentials JSON blob
8457 --drive-service-account-file string Service Account Credentials JSON file path
8458 --drive-shared-with-me Only show files that are shared with me.
8459 --drive-size-as-quota Show sizes as storage quota usage, not actual size.
8460 --drive-skip-checksum-gphotos Skip MD5 checksum on Google photos and videos only.
8461 --drive-skip-gdocs Skip google documents in all listings.
8462 --drive-stop-on-upload-limit Make upload limit errors be fatal
8463 --drive-team-drive string ID of the Team Drive
8464 --drive-trashed-only Only show files that are in the trash.
8465 --drive-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 8M)
8466 --drive-use-created-date Use file created date instead of modified date.,
8467 --drive-use-shared-date Use date file was shared instead of modified date.
8468 --drive-use-trash Send files to the trash instead of deleting permanently. (default true)
8469 --drive-v2-download-min-size SizeSuffix If Object's are greater, use drive v2 API to download. (default off)
8470 --dropbox-chunk-size SizeSuffix Upload chunk size. (< 150M). (default 48M)
8471 --dropbox-client-id string Dropbox App Client Id
8472 --dropbox-client-secret string Dropbox App Client Secret
8473 --dropbox-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot)
8474 --dropbox-impersonate string Impersonate this user when using a business account.
8475 --fichier-api-key string Your API Key, get it from https://1fichier.com/console/params.pl
8476 --fichier-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,SingleQuote,BackQuote,Dollar,BackSlash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot)
8477 --fichier-shared-folder string If you want to download a shared folder, add this parameter
8478 --ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
8479 --ftp-disable-epsv Disable using EPSV even if server advertises support
8480 --ftp-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,RightSpace,Dot)
8481 --ftp-host string FTP host to connect to
8482 --ftp-no-check-certificate Do not verify the TLS certificate of the server
8483 --ftp-pass string FTP password
8484 --ftp-port string FTP port, leave blank to use default (21)
8485 --ftp-tls Use FTP over TLS (Implicit)
8486 --ftp-user string FTP username, leave blank for current username, $USER
8487 --gcs-bucket-acl string Access Control List for new buckets.
8488 --gcs-bucket-policy-only Access checks should use bucket-level IAM policies.
8489 --gcs-client-id string Google Application Client Id
8490 --gcs-client-secret string Google Application Client Secret
8491 --gcs-encoding MultiEncoder This sets the encoding for the backend. (default Slash,CrLf,InvalidUtf8,Dot)
8492 --gcs-location string Location for the newly created buckets.
8493 --gcs-object-acl string Access Control List for new objects.
8494 --gcs-project-number string Project number.
8495 --gcs-service-account-file string Service Account Credentials JSON file path
8496 --gcs-storage-class string The storage class to use when storing objects in Google Cloud Storage.
8497 --gphotos-client-id string Google Application Client Id
8498 --gphotos-client-secret string Google Application Client Secret
8499 --gphotos-read-only Set to make the Google Photos backend read only.
8500 --gphotos-read-size Set to read the size of media items.
8501 --http-headers CommaSepList Set HTTP headers for all transactions
8502 --http-no-head Don't use HEAD requests to find file sizes in dir listing
8503 --http-no-slash Set this if the site doesn't end directories with /
8504 --http-url string URL of http host to connect to
8505 --hubic-chunk-size SizeSuffix Above this size files will be chunked into a _segments container. (default 5G)
8506 --hubic-client-id string Hubic Client Id
8507 --hubic-client-secret string Hubic Client Secret
8508 --hubic-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8)
8509 --hubic-no-chunk Don't chunk files during streaming upload.
8510 --jottacloud-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Del,Ctl,InvalidUtf8,Dot)
8511 --jottacloud-hard-delete Delete files permanently rather than putting them into the trash.
8512 --jottacloud-md5-memory-limit SizeSuffix Files bigger than this will be cached on disk to calculate the MD5 if required. (default 10M)
8513 --jottacloud-unlink Remove existing public link to file/folder with link command rather than creating.
8514 --jottacloud-upload-resume-limit SizeSuffix Files bigger than this can be resumed if the upload fail's. (default 10M)
8515 --koofr-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
8516 --koofr-endpoint string The Koofr API endpoint to use (default "https://app.koofr.net")
8517 --koofr-mountid string Mount ID of the mount to use. If omitted, the primary mount is used.
8518 --koofr-password string Your Koofr password for rclone (generate one at https://app.koofr.net/app/admin/preferences/password)
8519 --koofr-setmtime Does the backend support setting modification time. Set this to false if you use a mount ID that points to a Dropbox or Amazon Drive backend. (default true)
8520 --koofr-user string Your Koofr user name
8521 -l, --links Translate symlinks to/from regular files with a '.rclonelink' extension
8522 --local-case-insensitive Force the filesystem to report itself as case insensitive
8523 --local-case-sensitive Force the filesystem to report itself as case sensitive.
8524 --local-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Dot)
8525 --local-no-check-updated Don't check to see if the files change during upload
8526 --local-no-unicode-normalization Don't apply unicode normalization to paths and filenames (Deprecated)
8527 --local-nounc string Disable UNC (long path names) conversion on Windows
8528 --mailru-check-hash What should copy do if file checksum is mismatched or invalid (default true)
8529 --mailru-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Del,Ctl,InvalidUtf8,Dot)
8530 --mailru-pass string Password
8531 --mailru-speedup-enable Skip full upload if there is another file with same data hash. (default true)
8532 --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")
8533 --mailru-speedup-max-disk SizeSuffix This option allows you to disable speedup (put by hash) for large files (default 3G)
8534 --mailru-speedup-max-memory SizeSuffix Files larger than the size given below will always be hashed on disk. (default 32M)
8535 --mailru-user string User name (usually email)
8536 --mega-debug Output more debug from Mega.
8537 --mega-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
8538 --mega-hard-delete Delete files permanently rather than putting them into the trash.
8539 --mega-pass string Password.
8540 --mega-user string User name
8541 -x, --one-file-system Don't cross filesystem boundaries (unix/macOS only).
8542 --onedrive-chunk-size SizeSuffix Chunk size to upload files with - must be multiple of 320k (327,680 bytes). (default 10M)
8543 --onedrive-client-id string Microsoft App Client Id
8544 --onedrive-client-secret string Microsoft App Client Secret
8545 --onedrive-drive-id string The ID of the drive to use
8546 --onedrive-drive-type string The type of the drive ( personal | business | documentLibrary )
8547 --onedrive-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Hash,Percent,BackSlash,Del,Ctl,LeftSpace,LeftTilde,RightSpace,RightPeriod,InvalidUtf8,Dot)
8548 --onedrive-expose-onenote-files Set to make OneNote files show up in directory listings.
8549 --opendrive-chunk-size SizeSuffix Files will be uploaded in chunks this size. (default 10M)
8550 --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)
8551 --opendrive-password string Password.
8552 --opendrive-username string Username
8553 --pcloud-client-id string Pcloud App Client Id
8554 --pcloud-client-secret string Pcloud App Client Secret
8555 --pcloud-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
8556 --premiumizeme-encoding MultiEncoder This sets the encoding for the backend. (default Slash,DoubleQuote,BackSlash,Del,Ctl,InvalidUtf8,Dot)
8557 --putio-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
8558 --qingstor-access-key-id string QingStor Access Key ID
8559 --qingstor-chunk-size SizeSuffix Chunk size to use for uploading. (default 4M)
8560 --qingstor-connection-retries int Number of connection retries. (default 3)
8561 --qingstor-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Ctl,InvalidUtf8)
8562 --qingstor-endpoint string Enter a endpoint URL to connection QingStor API.
8563 --qingstor-env-auth Get QingStor credentials from runtime. Only applies if access_key_id and secret_access_key is blank.
8564 --qingstor-secret-access-key string QingStor Secret Access Key (password)
8565 --qingstor-upload-concurrency int Concurrency for multipart uploads. (default 1)
8566 --qingstor-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200M)
8567 --qingstor-zone string Zone to connect to.
8568 --s3-access-key-id string AWS Access Key ID.
8569 --s3-acl string Canned ACL used when creating buckets and storing or copying objects.
8570 --s3-bucket-acl string Canned ACL used when creating buckets.
8571 --s3-chunk-size SizeSuffix Chunk size to use for uploading. (default 5M)
8572 --s3-copy-cutoff SizeSuffix Cutoff for switching to multipart copy (default 5G)
8573 --s3-disable-checksum Don't store MD5 checksum with object metadata
8574 --s3-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
8575 --s3-endpoint string Endpoint for S3 API.
8576 --s3-env-auth Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
8577 --s3-force-path-style If true use path style access if false use virtual hosted style. (default true)
8578 --s3-leave-parts-on-error If true avoid calling abort upload on a failure, leaving all successfully uploaded parts on S3 for manual recovery.
8579 --s3-list-chunk int Size of listing chunk (response list for each ListObject S3 request). (default 1000)
8580 --s3-location-constraint string Location constraint - must be set to match the Region.
8581 --s3-provider string Choose your S3 provider.
8582 --s3-region string Region to connect to.
8583 --s3-secret-access-key string AWS Secret Access Key (password)
8584 --s3-server-side-encryption string The server-side encryption algorithm used when storing this object in S3.
8585 --s3-session-token string An AWS session token
8586 --s3-sse-kms-key-id string If using KMS ID you must provide the ARN of Key.
8587 --s3-storage-class string The storage class to use when storing new objects in S3.
8588 --s3-upload-concurrency int Concurrency for multipart uploads. (default 4)
8589 --s3-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200M)
8590 --s3-use-accelerate-endpoint If true use the AWS S3 accelerated endpoint.
8591 --s3-v2-auth If true use v2 authentication.
8592 --sftp-ask-password Allow asking for SFTP password when needed.
8593 --sftp-disable-hashcheck Disable the execution of SSH commands to determine if remote file hashing is available.
8594 --sftp-host string SSH host to connect to
8595 --sftp-key-file string Path to PEM-encoded private key file, leave blank or set key-use-agent to use ssh-agent.
8596 --sftp-key-file-pass string The passphrase to decrypt the PEM-encoded private key file.
8597 --sftp-key-use-agent When set forces the usage of the ssh-agent.
8598 --sftp-md5sum-command string The command used to read md5 hashes. Leave blank for autodetect.
8599 --sftp-pass string SSH password, leave blank to use ssh-agent.
8600 --sftp-path-override string Override path used by SSH connection.
8601 --sftp-port string SSH port, leave blank to use default (22)
8602 --sftp-set-modtime Set the modified time on the remote if set. (default true)
8603 --sftp-sha1sum-command string The command used to read sha1 hashes. Leave blank for autodetect.
8604 --sftp-skip-links Set to skip any symlinks and any other non regular files.
8605 --sftp-use-insecure-cipher Enable the use of insecure ciphers and key exchange methods.
8606 --sftp-user string SSH username, leave blank for current username, ncw
8607 --sharefile-chunk-size SizeSuffix Upload chunk size. Must a power of 2 >= 256k. (default 64M)
8608 --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)
8609 --sharefile-endpoint string Endpoint for API calls.
8610 --sharefile-root-folder-id string ID of the root folder
8611 --sharefile-upload-cutoff SizeSuffix Cutoff for switching to multipart upload. (default 128M)
8612 --skip-links Don't warn about skipped symlinks.
8613 --sugarsync-access-key-id string Sugarsync Access Key ID.
8614 --sugarsync-app-id string Sugarsync App ID.
8615 --sugarsync-authorization string Sugarsync authorization
8616 --sugarsync-authorization-expiry string Sugarsync authorization expiry
8617 --sugarsync-deleted-id string Sugarsync deleted folder id
8618 --sugarsync-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Ctl,InvalidUtf8,Dot)
8619 --sugarsync-hard-delete Permanently delete files if true
8620 --sugarsync-private-access-key string Sugarsync Private Access Key
8621 --sugarsync-refresh-token string Sugarsync refresh token
8622 --sugarsync-root-id string Sugarsync root id
8623 --sugarsync-user string Sugarsync user
8624 --swift-application-credential-id string Application Credential ID (OS_APPLICATION_CREDENTIAL_ID)
8625 --swift-application-credential-name string Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME)
8626 --swift-application-credential-secret string Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET)
8627 --swift-auth string Authentication URL for server (OS_AUTH_URL).
8628 --swift-auth-token string Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
8629 --swift-auth-version int AuthVersion - optional - set to (1,2,3) if your auth URL has no version (ST_AUTH_VERSION)
8630 --swift-chunk-size SizeSuffix Above this size files will be chunked into a _segments container. (default 5G)
8631 --swift-domain string User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
8632 --swift-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8)
8633 --swift-endpoint-type string Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE) (default "public")
8634 --swift-env-auth Get swift credentials from environment variables in standard OpenStack form.
8635 --swift-key string API key or password (OS_PASSWORD).
8636 --swift-no-chunk Don't chunk files during streaming upload.
8637 --swift-region string Region name - optional (OS_REGION_NAME)
8638 --swift-storage-policy string The storage policy to use when creating a new container
8639 --swift-storage-url string Storage URL - optional (OS_STORAGE_URL)
8640 --swift-tenant string Tenant name - optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME)
8641 --swift-tenant-domain string Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
8642 --swift-tenant-id string Tenant ID - optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID)
8643 --swift-user string User name to log in (OS_USERNAME).
8644 --swift-user-id string User ID to log in - optional - most swift systems use user and leave this blank (v3 auth) (OS_USER_ID).
8645 --union-remotes string List of space separated remotes.
8646 --webdav-bearer-token string Bearer token instead of user/pass (eg a Macaroon)
8647 --webdav-bearer-token-command string Command to run to get a bearer token
8648 --webdav-pass string Password.
8649 --webdav-url string URL of http host to connect to
8650 --webdav-user string User name
8651 --webdav-vendor string Name of the Webdav site/service/software you are using
8652 --yandex-client-id string Yandex Client Id
8653 --yandex-client-secret string Yandex Client Secret
8654 --yandex-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,InvalidUtf8,Dot)
8655 --yandex-unlink Remove existing public link to file/folder with link command rather than creating.
8656
8657 1Fichier
8658 This is a backend for the 1ficher (https://1fichier.com) cloud storage
8659 service. Note that a Premium subscription is required to use the API.
8660
8661 Paths are specified as remote:path
8662
8663 Paths may be as deep as required, eg remote:directory/subdirectory.
8664
8665 The initial setup for 1Fichier involves getting the API key from the
8666 website which you need to do in your browser.
8667
8668 Here is an example of how to make a remote called remote. First run:
8669
8670 rclone config
8671
8672 This will guide you through an interactive setup process:
8673
8674 No remotes found - make a new one
8675 n) New remote
8676 s) Set configuration password
8677 q) Quit config
8678 n/s/q> n
8679 name> remote
8680 Type of storage to configure.
8681 Enter a string value. Press Enter for the default ("").
8682 Choose a number from below, or type in your own value
8683 [snip]
8684 XX / 1Fichier
8685 \ "fichier"
8686 [snip]
8687 Storage> fichier
8688 ** See help for fichier backend at: https://rclone.org/fichier/ **
8689
8690 Your API Key, get it from https://1fichier.com/console/params.pl
8691 Enter a string value. Press Enter for the default ("").
8692 api_key> example_key
8693
8694 Edit advanced config? (y/n)
8695 y) Yes
8696 n) No
8697 y/n>
8698 Remote config
8699 --------------------
8700 [remote]
8701 type = fichier
8702 api_key = example_key
8703 --------------------
8704 y) Yes this is OK
8705 e) Edit this remote
8706 d) Delete this remote
8707 y/e/d> y
8708
8709 Once configured you can then use rclone like this,
8710
8711 List directories in top level of your 1Fichier account
8712
8713 rclone lsd remote:
8714
8715 List all the files in your 1Fichier account
8716
8717 rclone ls remote:
8718
8719 To copy a local directory to a 1Fichier directory called backup
8720
8721 rclone copy /home/source remote:backup
8722
8723 Modified time and hashes
8724 1Fichier does not support modification times. It supports the
8725 Whirlpool hash algorithm.
8726
8727 Duplicated files
8728 1Fichier can have two files with exactly the same name and path (unlike
8729 a normal file system).
8730
8731 Duplicated files cause problems with the syncing and you will see mes‐
8732 sages in the log about duplicates.
8733
8734 Restricted filename characters
8735 In addition to the default restricted characters set (/overview/#re‐
8736 stricted-characters) the following characters are also replaced:
8737
8738 Character Value Replacement
8739 ────────────────────────────────
8740 \ 0x5C \
8741 < 0x3C <
8742 > 0x3E >
8743 " 0x22 "
8744 $ 0x24 $
8745 ` 0x60 `
8746 ’ 0x27 '
8747
8748 File names can also not start or end with the following characters.
8749 These only get replaced if they are first or last character in the
8750 name:
8751
8752 Character Value Replacement
8753 ────────────────────────────────
8754 SP 0x20 ␠
8755
8756 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
8757 they can’t be used in JSON strings.
8758
8759 Standard Options
8760 Here are the standard options specific to fichier (1Fichier).
8761
8762 –fichier-api-key
8763 Your API Key, get it from https://1fichier.com/console/params.pl
8764
8765 · Config: api_key
8766
8767 · Env Var: RCLONE_FICHIER_API_KEY
8768
8769 · Type: string
8770
8771 · Default: ""
8772
8773 Advanced Options
8774 Here are the advanced options specific to fichier (1Fichier).
8775
8776 –fichier-shared-folder
8777 If you want to download a shared folder, add this parameter
8778
8779 · Config: shared_folder
8780
8781 · Env Var: RCLONE_FICHIER_SHARED_FOLDER
8782
8783 · Type: string
8784
8785 · Default: ""
8786
8787 –fichier-encoding
8788 This sets the encoding for the backend.
8789
8790 See: the encoding section in the overview (/overview/#encoding) for
8791 more info.
8792
8793 · Config: encoding
8794
8795 · Env Var: RCLONE_FICHIER_ENCODING
8796
8797 · Type: MultiEncoder
8798
8799 · Default: Slash,LtGt,DoubleQuote,SingleQuote,BackQuote,Dollar,Back‐
8800 Slash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot
8801
8802 Alias
8803 The alias remote provides a new name for another remote.
8804
8805 Paths may be as deep as required or a local path, eg remote:directo‐
8806 ry/subdirectory or /directory/subdirectory.
8807
8808 During the initial setup with rclone config you will specify the target
8809 remote. The target remote can either be a local path or another re‐
8810 mote.
8811
8812 Subfolders can be used in target remote. Assume a alias remote named
8813 backup with the target mydrive:private/backup. Invoking rclone mkdir
8814 backup:desktop is exactly the same as invoking rclone mkdir my‐
8815 drive:private/backup/desktop.
8816
8817 There will be no special handling of paths containing .. segments.
8818 Invoking rclone mkdir backup:../desktop is exactly the same as invoking
8819 rclone mkdir mydrive:private/backup/../desktop. The empty path is not
8820 allowed as a remote. To alias the current directory use . instead.
8821
8822 Here is an example of how to make a alias called remote for local fold‐
8823 er. First run:
8824
8825 rclone config
8826
8827 This will guide you through an interactive setup process:
8828
8829 No remotes found - make a new one
8830 n) New remote
8831 s) Set configuration password
8832 q) Quit config
8833 n/s/q> n
8834 name> remote
8835 Type of storage to configure.
8836 Choose a number from below, or type in your own value
8837 [snip]
8838 XX / Alias for an existing remote
8839 \ "alias"
8840 [snip]
8841 Storage> alias
8842 Remote or path to alias.
8843 Can be "myremote:path/to/dir", "myremote:bucket", "myremote:" or "/local/path".
8844 remote> /mnt/storage/backup
8845 Remote config
8846 --------------------
8847 [remote]
8848 remote = /mnt/storage/backup
8849 --------------------
8850 y) Yes this is OK
8851 e) Edit this remote
8852 d) Delete this remote
8853 y/e/d> y
8854 Current remotes:
8855
8856 Name Type
8857 ==== ====
8858 remote alias
8859
8860 e) Edit existing remote
8861 n) New remote
8862 d) Delete remote
8863 r) Rename remote
8864 c) Copy remote
8865 s) Set configuration password
8866 q) Quit config
8867 e/n/d/r/c/s/q> q
8868
8869 Once configured you can then use rclone like this,
8870
8871 List directories in top level in /mnt/storage/backup
8872
8873 rclone lsd remote:
8874
8875 List all the files in /mnt/storage/backup
8876
8877 rclone ls remote:
8878
8879 Copy another local directory to the alias directory called source
8880
8881 rclone copy /home/source remote:source
8882
8883 Standard Options
8884 Here are the standard options specific to alias (Alias for an existing
8885 remote).
8886
8887 –alias-remote
8888 Remote or path to alias. Can be “myremote:path/to/dir”, “myre‐
8889 mote:bucket”, “myremote:” or “/local/path”.
8890
8891 · Config: remote
8892
8893 · Env Var: RCLONE_ALIAS_REMOTE
8894
8895 · Type: string
8896
8897 · Default: ""
8898
8899 Amazon Drive
8900 Amazon Drive, formerly known as Amazon Cloud Drive, is a cloud storage
8901 service run by Amazon for consumers.
8902
8903 Status
8904 Important: rclone supports Amazon Drive only if you have your own set
8905 of API keys. Unfortunately the Amazon Drive developer program
8906 (https://developer.amazon.com/amazon-drive) is now closed to new en‐
8907 tries so if you don’t already have your own set of keys you will not be
8908 able to use rclone with Amazon Drive.
8909
8910 For the history on why rclone no longer has a set of Amazon Drive API
8911 keys see the forum (https://forum.rclone.org/t/rclone-has-been-banned-
8912 from-amazon-drive/2314).
8913
8914 If you happen to know anyone who works at Amazon then please ask them
8915 to re-instate rclone into the Amazon Drive developer program - thanks!
8916
8917 Setup
8918 The initial setup for Amazon Drive involves getting a token from Amazon
8919 which you need to do in your browser. rclone config walks you through
8920 it.
8921
8922 The configuration process for Amazon Drive may involve using an oauth
8923 proxy (https://github.com/ncw/oauthproxy). This is used to keep the
8924 Amazon credentials out of the source code. The proxy runs in Google’s
8925 very secure App Engine environment and doesn’t store any credentials
8926 which pass through it.
8927
8928 Since rclone doesn’t currently have its own Amazon Drive credentials so
8929 you will either need to have your own client_id and client_secret with
8930 Amazon Drive, or use a a third party ouath proxy in which case you will
8931 need to enter client_id, client_secret, auth_url and token_url.
8932
8933 Note also if you are not using Amazon’s auth_url and token_url, (ie you
8934 filled in something for those) then if setting up on a remote machine
8935 you can only use the copying the config method of configuration
8936 (https://rclone.org/remote_setup/#configuring-by-copying-the-config-
8937 file) - rclone authorize will not work.
8938
8939 Here is an example of how to make a remote called remote. First run:
8940
8941 rclone config
8942
8943 This will guide you through an interactive setup process:
8944
8945 No remotes found - make a new one
8946 n) New remote
8947 r) Rename remote
8948 c) Copy remote
8949 s) Set configuration password
8950 q) Quit config
8951 n/r/c/s/q> n
8952 name> remote
8953 Type of storage to configure.
8954 Choose a number from below, or type in your own value
8955 [snip]
8956 XX / Amazon Drive
8957 \ "amazon cloud drive"
8958 [snip]
8959 Storage> amazon cloud drive
8960 Amazon Application Client Id - required.
8961 client_id> your client ID goes here
8962 Amazon Application Client Secret - required.
8963 client_secret> your client secret goes here
8964 Auth server URL - leave blank to use Amazon's.
8965 auth_url> Optional auth URL
8966 Token server url - leave blank to use Amazon's.
8967 token_url> Optional token URL
8968 Remote config
8969 Make sure your Redirect URL is set to "http://127.0.0.1:53682/" in your custom config.
8970 Use auto config?
8971 * Say Y if not sure
8972 * Say N if you are working on a remote or headless machine
8973 y) Yes
8974 n) No
8975 y/n> y
8976 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
8977 Log in and authorize rclone for access
8978 Waiting for code...
8979 Got code
8980 --------------------
8981 [remote]
8982 client_id = your client ID goes here
8983 client_secret = your client secret goes here
8984 auth_url = Optional auth URL
8985 token_url = Optional token URL
8986 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxx","token_type":"bearer","refresh_token":"xxxxxxxxxxxxxxxxxx","expiry":"2015-09-06T16:07:39.658438471+01:00"}
8987 --------------------
8988 y) Yes this is OK
8989 e) Edit this remote
8990 d) Delete this remote
8991 y/e/d> y
8992
8993 See the remote setup docs (https://rclone.org/remote_setup/) for how to
8994 set it up on a machine with no Internet browser available.
8995
8996 Note that rclone runs a webserver on your local machine to collect the
8997 token as returned from Amazon. This only runs from the moment it opens
8998 your browser to the moment you get back the verification code. This is
8999 on http://127.0.0.1:53682/ and this it may require you to unblock it
9000 temporarily if you are running a host firewall.
9001
9002 Once configured you can then use rclone like this,
9003
9004 List directories in top level of your Amazon Drive
9005
9006 rclone lsd remote:
9007
9008 List all the files in your Amazon Drive
9009
9010 rclone ls remote:
9011
9012 To copy a local directory to an Amazon Drive directory called backup
9013
9014 rclone copy /home/source remote:backup
9015
9016 Modified time and MD5SUMs
9017 Amazon Drive doesn’t allow modification times to be changed via the API
9018 so these won’t be accurate or used for syncing.
9019
9020 It does store MD5SUMs so for a more accurate sync, you can use the
9021 --checksum flag.
9022
9023 Restricted filename characters
9024 Character Value Replacement
9025 ────────────────────────────────
9026 NUL 0x00 ␀
9027 / 0x2F /
9028
9029 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
9030 they can’t be used in JSON strings.
9031
9032 Deleting files
9033 Any files you delete with rclone will end up in the trash. Amazon
9034 don’t provide an API to permanently delete files, nor to empty the
9035 trash, so you will have to do that with one of Amazon’s apps or via the
9036 Amazon Drive website. As of November 17, 2016, files are automatically
9037 deleted by Amazon from the trash after 30 days.
9038
9039 Using with non .com Amazon accounts
9040 Let’s say you usually use amazon.co.uk. When you authenticate with
9041 rclone it will take you to an amazon.com page to log in. Your ama‐
9042 zon.co.uk email and password should work here just fine.
9043
9044 Standard Options
9045 Here are the standard options specific to amazon cloud drive (Amazon
9046 Drive).
9047
9048 –acd-client-id
9049 Amazon Application Client ID.
9050
9051 · Config: client_id
9052
9053 · Env Var: RCLONE_ACD_CLIENT_ID
9054
9055 · Type: string
9056
9057 · Default: ""
9058
9059 –acd-client-secret
9060 Amazon Application Client Secret.
9061
9062 · Config: client_secret
9063
9064 · Env Var: RCLONE_ACD_CLIENT_SECRET
9065
9066 · Type: string
9067
9068 · Default: ""
9069
9070 Advanced Options
9071 Here are the advanced options specific to amazon cloud drive (Amazon
9072 Drive).
9073
9074 –acd-auth-url
9075 Auth server URL. Leave blank to use Amazon’s.
9076
9077 · Config: auth_url
9078
9079 · Env Var: RCLONE_ACD_AUTH_URL
9080
9081 · Type: string
9082
9083 · Default: ""
9084
9085 –acd-token-url
9086 Token server url. leave blank to use Amazon’s.
9087
9088 · Config: token_url
9089
9090 · Env Var: RCLONE_ACD_TOKEN_URL
9091
9092 · Type: string
9093
9094 · Default: ""
9095
9096 –acd-checkpoint
9097 Checkpoint for internal polling (debug).
9098
9099 · Config: checkpoint
9100
9101 · Env Var: RCLONE_ACD_CHECKPOINT
9102
9103 · Type: string
9104
9105 · Default: ""
9106
9107 –acd-upload-wait-per-gb
9108 Additional time per GB to wait after a failed complete upload to see if
9109 it appears.
9110
9111 Sometimes Amazon Drive gives an error when a file has been fully up‐
9112 loaded but the file appears anyway after a little while. This happens
9113 sometimes for files over 1GB in size and nearly every time for files
9114 bigger than 10GB. This parameter controls the time rclone waits for
9115 the file to appear.
9116
9117 The default value for this parameter is 3 minutes per GB, so by default
9118 it will wait 3 minutes for every GB uploaded to see if the file ap‐
9119 pears.
9120
9121 You can disable this feature by setting it to 0. This may cause con‐
9122 flict errors as rclone retries the failed upload but the file will most
9123 likely appear correctly eventually.
9124
9125 These values were determined empirically by observing lots of uploads
9126 of big files for a range of file sizes.
9127
9128 Upload with the “-v” flag to see more info about what rclone is doing
9129 in this situation.
9130
9131 · Config: upload_wait_per_gb
9132
9133 · Env Var: RCLONE_ACD_UPLOAD_WAIT_PER_GB
9134
9135 · Type: Duration
9136
9137 · Default: 3m0s
9138
9139 –acd-templink-threshold
9140 Files >= this size will be downloaded via their tempLink.
9141
9142 Files this size or more will be downloaded via their “tempLink”. This
9143 is to work around a problem with Amazon Drive which blocks downloads of
9144 files bigger than about 10GB. The default for this is 9GB which
9145 shouldn’t need to be changed.
9146
9147 To download files above this threshold, rclone requests a “tempLink”
9148 which downloads the file through a temporary URL directly from the un‐
9149 derlying S3 storage.
9150
9151 · Config: templink_threshold
9152
9153 · Env Var: RCLONE_ACD_TEMPLINK_THRESHOLD
9154
9155 · Type: SizeSuffix
9156
9157 · Default: 9G
9158
9159 –acd-encoding
9160 This sets the encoding for the backend.
9161
9162 See: the encoding section in the overview (/overview/#encoding) for
9163 more info.
9164
9165 · Config: encoding
9166
9167 · Env Var: RCLONE_ACD_ENCODING
9168
9169 · Type: MultiEncoder
9170
9171 · Default: Slash,InvalidUtf8,Dot
9172
9173 Limitations
9174 Note that Amazon Drive is case insensitive so you can’t have a file
9175 called “Hello.doc” and one called “hello.doc”.
9176
9177 Amazon Drive has rate limiting so you may notice errors in the sync
9178 (429 errors). rclone will automatically retry the sync up to 3 times
9179 by default (see --retries flag) which should hopefully work around this
9180 problem.
9181
9182 Amazon Drive has an internal limit of file sizes that can be uploaded
9183 to the service. This limit is not officially published, but all files
9184 larger than this will fail.
9185
9186 At the time of writing (Jan 2016) is in the area of 50GB per file.
9187 This means that larger files are likely to fail.
9188
9189 Unfortunately there is no way for rclone to see that this failure is
9190 because of file size, so it will retry the operation, as any other
9191 failure. To avoid this problem, use --max-size 50000M option to limit
9192 the maximum size of uploaded files. Note that --max-size does not
9193 split files into segments, it only ignores files over this size.
9194
9195 Amazon S3 Storage Providers
9196 The S3 backend can be used with a number of different providers:
9197
9198 · AWS S3
9199
9200 · Alibaba Cloud (Aliyun) Object Storage System (OSS)
9201
9202 · Ceph
9203
9204 · DigitalOcean Spaces
9205
9206 · Dreamhost
9207
9208 · IBM COS S3
9209
9210 · Minio
9211
9212 · Scaleway
9213
9214 · Wasabi
9215
9216 Paths are specified as remote:bucket (or remote: for the lsd command.)
9217 You may put subdirectories in too, eg remote:bucket/path/to/dir.
9218
9219 Once you have made a remote (see the provider specific section above)
9220 you can use it like this:
9221
9222 See all buckets
9223
9224 rclone lsd remote:
9225
9226 Make a new bucket
9227
9228 rclone mkdir remote:bucket
9229
9230 List the contents of a bucket
9231
9232 rclone ls remote:bucket
9233
9234 Sync /home/local/directory to the remote bucket, deleting any excess
9235 files in the bucket.
9236
9237 rclone sync /home/local/directory remote:bucket
9238
9239 AWS S3
9240 Here is an example of making an s3 configuration. First run
9241
9242 rclone config
9243
9244 This will guide you through an interactive setup process.
9245
9246 No remotes found - make a new one
9247 n) New remote
9248 s) Set configuration password
9249 q) Quit config
9250 n/s/q> n
9251 name> remote
9252 Type of storage to configure.
9253 Choose a number from below, or type in your own value
9254 [snip]
9255 XX / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
9256 \ "s3"
9257 [snip]
9258 Storage> s3
9259 Choose your S3 provider.
9260 Choose a number from below, or type in your own value
9261 1 / Amazon Web Services (AWS) S3
9262 \ "AWS"
9263 2 / Ceph Object Storage
9264 \ "Ceph"
9265 3 / Digital Ocean Spaces
9266 \ "DigitalOcean"
9267 4 / Dreamhost DreamObjects
9268 \ "Dreamhost"
9269 5 / IBM COS S3
9270 \ "IBMCOS"
9271 6 / Minio Object Storage
9272 \ "Minio"
9273 7 / Wasabi Object Storage
9274 \ "Wasabi"
9275 8 / Any other S3 compatible provider
9276 \ "Other"
9277 provider> 1
9278 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.
9279 Choose a number from below, or type in your own value
9280 1 / Enter AWS credentials in the next step
9281 \ "false"
9282 2 / Get AWS credentials from the environment (env vars or IAM)
9283 \ "true"
9284 env_auth> 1
9285 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
9286 access_key_id> XXX
9287 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
9288 secret_access_key> YYY
9289 Region to connect to.
9290 Choose a number from below, or type in your own value
9291 / The default endpoint - a good choice if you are unsure.
9292 1 | US Region, Northern Virginia or Pacific Northwest.
9293 | Leave location constraint empty.
9294 \ "us-east-1"
9295 / US East (Ohio) Region
9296 2 | Needs location constraint us-east-2.
9297 \ "us-east-2"
9298 / US West (Oregon) Region
9299 3 | Needs location constraint us-west-2.
9300 \ "us-west-2"
9301 / US West (Northern California) Region
9302 4 | Needs location constraint us-west-1.
9303 \ "us-west-1"
9304 / Canada (Central) Region
9305 5 | Needs location constraint ca-central-1.
9306 \ "ca-central-1"
9307 / EU (Ireland) Region
9308 6 | Needs location constraint EU or eu-west-1.
9309 \ "eu-west-1"
9310 / EU (London) Region
9311 7 | Needs location constraint eu-west-2.
9312 \ "eu-west-2"
9313 / EU (Frankfurt) Region
9314 8 | Needs location constraint eu-central-1.
9315 \ "eu-central-1"
9316 / Asia Pacific (Singapore) Region
9317 9 | Needs location constraint ap-southeast-1.
9318 \ "ap-southeast-1"
9319 / Asia Pacific (Sydney) Region
9320 10 | Needs location constraint ap-southeast-2.
9321 \ "ap-southeast-2"
9322 / Asia Pacific (Tokyo) Region
9323 11 | Needs location constraint ap-northeast-1.
9324 \ "ap-northeast-1"
9325 / Asia Pacific (Seoul)
9326 12 | Needs location constraint ap-northeast-2.
9327 \ "ap-northeast-2"
9328 / Asia Pacific (Mumbai)
9329 13 | Needs location constraint ap-south-1.
9330 \ "ap-south-1"
9331 / Asia Patific (Hong Kong) Region
9332 14 | Needs location constraint ap-east-1.
9333 \ "ap-east-1"
9334 / South America (Sao Paulo) Region
9335 15 | Needs location constraint sa-east-1.
9336 \ "sa-east-1"
9337 region> 1
9338 Endpoint for S3 API.
9339 Leave blank if using AWS to use the default endpoint for the region.
9340 endpoint>
9341 Location constraint - must be set to match the Region. Used when creating buckets only.
9342 Choose a number from below, or type in your own value
9343 1 / Empty for US Region, Northern Virginia or Pacific Northwest.
9344 \ ""
9345 2 / US East (Ohio) Region.
9346 \ "us-east-2"
9347 3 / US West (Oregon) Region.
9348 \ "us-west-2"
9349 4 / US West (Northern California) Region.
9350 \ "us-west-1"
9351 5 / Canada (Central) Region.
9352 \ "ca-central-1"
9353 6 / EU (Ireland) Region.
9354 \ "eu-west-1"
9355 7 / EU (London) Region.
9356 \ "eu-west-2"
9357 8 / EU Region.
9358 \ "EU"
9359 9 / Asia Pacific (Singapore) Region.
9360 \ "ap-southeast-1"
9361 10 / Asia Pacific (Sydney) Region.
9362 \ "ap-southeast-2"
9363 11 / Asia Pacific (Tokyo) Region.
9364 \ "ap-northeast-1"
9365 12 / Asia Pacific (Seoul)
9366 \ "ap-northeast-2"
9367 13 / Asia Pacific (Mumbai)
9368 \ "ap-south-1"
9369 14 / Asia Pacific (Hong Kong)
9370 \ "ap-east-1"
9371 15 / South America (Sao Paulo) Region.
9372 \ "sa-east-1"
9373 location_constraint> 1
9374 Canned ACL used when creating buckets and/or storing objects in S3.
9375 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
9376 Choose a number from below, or type in your own value
9377 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
9378 \ "private"
9379 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
9380 \ "public-read"
9381 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
9382 3 | Granting this on a bucket is generally not recommended.
9383 \ "public-read-write"
9384 4 / Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ access.
9385 \ "authenticated-read"
9386 / Object owner gets FULL_CONTROL. Bucket owner gets READ access.
9387 5 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
9388 \ "bucket-owner-read"
9389 / Both the object owner and the bucket owner get FULL_CONTROL over the object.
9390 6 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
9391 \ "bucket-owner-full-control"
9392 acl> 1
9393 The server-side encryption algorithm used when storing this object in S3.
9394 Choose a number from below, or type in your own value
9395 1 / None
9396 \ ""
9397 2 / AES256
9398 \ "AES256"
9399 server_side_encryption> 1
9400 The storage class to use when storing objects in S3.
9401 Choose a number from below, or type in your own value
9402 1 / Default
9403 \ ""
9404 2 / Standard storage class
9405 \ "STANDARD"
9406 3 / Reduced redundancy storage class
9407 \ "REDUCED_REDUNDANCY"
9408 4 / Standard Infrequent Access storage class
9409 \ "STANDARD_IA"
9410 5 / One Zone Infrequent Access storage class
9411 \ "ONEZONE_IA"
9412 6 / Glacier storage class
9413 \ "GLACIER"
9414 7 / Glacier Deep Archive storage class
9415 \ "DEEP_ARCHIVE"
9416 8 / Intelligent-Tiering storage class
9417 \ "INTELLIGENT_TIERING"
9418 storage_class> 1
9419 Remote config
9420 --------------------
9421 [remote]
9422 type = s3
9423 provider = AWS
9424 env_auth = false
9425 access_key_id = XXX
9426 secret_access_key = YYY
9427 region = us-east-1
9428 endpoint =
9429 location_constraint =
9430 acl = private
9431 server_side_encryption =
9432 storage_class =
9433 --------------------
9434 y) Yes this is OK
9435 e) Edit this remote
9436 d) Delete this remote
9437 y/e/d>
9438
9439 –fast-list
9440 This remote supports --fast-list which allows you to use fewer transac‐
9441 tions in exchange for more memory. See the rclone docs (/docs/#fast-
9442 list) for more details.
9443
9444 –update and –use-server-modtime
9445 As noted below, the modified time is stored on metadata on the object.
9446 It is used by default for all operations that require checking the time
9447 a file was last updated. It allows rclone to treat the remote more
9448 like a true filesystem, but it is inefficient because it requires an
9449 extra API call to retrieve the metadata.
9450
9451 For many operations, the time the object was last uploaded to the re‐
9452 mote is sufficient to determine if it is “dirty”. By using --update
9453 along with --use-server-modtime, you can avoid the extra API call and
9454 simply upload files whose local modtime is newer than the time it was
9455 last uploaded.
9456
9457 Modified time
9458 The modified time is stored as metadata on the object as
9459 X-Amz-Meta-Mtime as floating point since the epoch accurate to 1 ns.
9460
9461 If the modification time needs to be updated rclone will attempt to
9462 perform a server side copy to update the modification if the object can
9463 be copied in a single part. In the case the object is larger than 5Gb
9464 or is in Glacier or Glacier Deep Archive storage the object will be up‐
9465 loaded rather than copied.
9466
9467 Restricted filename characters
9468 S3 allows any valid UTF-8 string as a key.
9469
9470 Invalid UTF-8 bytes will be replaced (/overview/#invalid-utf8), as they
9471 can’t be used in XML.
9472
9473 The following characters are replaced since these are problematic when
9474 dealing with the REST API:
9475
9476 Character Value Replacement
9477 ────────────────────────────────
9478 NUL 0x00 ␀
9479 / 0x2F /
9480
9481 The encoding will also encode these file names as they don’t seem to
9482 work with the SDK properly:
9483
9484 File name Replacement
9485 ────────────────────────
9486 . .
9487 .. ..
9488
9489 Multipart uploads
9490 rclone supports multipart uploads with S3 which means that it can up‐
9491 load files bigger than 5GB.
9492
9493 Note that files uploaded both with multipart upload and through crypt
9494 remotes do not have MD5 sums.
9495
9496 rclone switches from single part uploads to multipart uploads at the
9497 point specified by --s3-upload-cutoff. This can be a maximum of 5GB
9498 and a minimum of 0 (ie always upload multipart files).
9499
9500 The chunk sizes used in the multipart upload are specified by
9501 --s3-chunk-size and the number of chunks uploaded concurrently is spec‐
9502 ified by --s3-upload-concurrency.
9503
9504 Multipart uploads will use --transfers * --s3-upload-concurrency *
9505 --s3-chunk-size extra memory. Single part uploads to not use extra
9506 memory.
9507
9508 Single part transfers can be faster than multipart transfers or slower
9509 depending on your latency from S3 - the more latency, the more likely
9510 single part transfers will be faster.
9511
9512 Increasing --s3-upload-concurrency will increase throughput (8 would be
9513 a sensible value) and increasing --s3-chunk-size also increases
9514 throughput (16M would be sensible). Increasing either of these will
9515 use more memory. The default values are high enough to gain most of
9516 the possible performance without using too much memory.
9517
9518 Buckets and Regions
9519 With Amazon S3 you can list buckets (rclone lsd) using any region, but
9520 you can only access the content of a bucket from the region it was cre‐
9521 ated in. If you attempt to access a bucket from the wrong region, you
9522 will get an error, incorrect region, the bucket is not in 'XXX' region.
9523
9524 Authentication
9525 There are a number of ways to supply rclone with a set of AWS creden‐
9526 tials, with and without using the environment.
9527
9528 The different authentication methods are tried in this order:
9529
9530 · Directly in the rclone configuration file (env_auth = false in the
9531 config file):
9532
9533 · access_key_id and secret_access_key are required.
9534
9535 · session_token can be optionally set when using AWS STS.
9536
9537 · Runtime configuration (env_auth = true in the config file):
9538
9539 · Export the following environment variables before running rclone:
9540
9541 · Access Key ID: AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY
9542
9543 · Secret Access Key: AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY
9544
9545 · Session Token: AWS_SESSION_TOKEN (optional)
9546
9547 · Or, use a named profile (https://docs.aws.amazon.com/cli/lat‐
9548 est/userguide/cli-multiple-profiles.html):
9549
9550 · Profile files are standard files used by AWS CLI tools
9551
9552 · By default it will use the profile in your home directory (eg
9553 ~/.aws/credentials on unix based systems) file and the “default”
9554 profile, to change set these environment variables:
9555
9556 · AWS_SHARED_CREDENTIALS_FILE to control which file.
9557
9558 · AWS_PROFILE to control which profile to use.
9559
9560 · Or, run rclone in an ECS task with an IAM role (AWS only).
9561
9562 · Or, run rclone on an EC2 instance with an IAM role (AWS only).
9563
9564 · Or, run rclone in an EKS pod with an IAM role that is associated
9565 with a service account (AWS only).
9566
9567 If none of these option actually end up providing rclone with AWS cre‐
9568 dentials then S3 interaction will be non-authenticated (see below).
9569
9570 S3 Permissions
9571 When using the sync subcommand of rclone the following minimum permis‐
9572 sions are required to be available on the bucket being written to:
9573
9574 · ListBucket
9575
9576 · DeleteObject
9577
9578 · GetObject
9579
9580 · PutObject
9581
9582 · PutObjectACL
9583
9584 When using the lsd subcommand, the ListAllMyBuckets permission is re‐
9585 quired.
9586
9587 Example policy:
9588
9589 {
9590 "Version": "2012-10-17",
9591 "Statement": [
9592 {
9593 "Effect": "Allow",
9594 "Principal": {
9595 "AWS": "arn:aws:iam::USER_SID:user/USER_NAME"
9596 },
9597 "Action": [
9598 "s3:ListBucket",
9599 "s3:DeleteObject",
9600 "s3:GetObject",
9601 "s3:PutObject",
9602 "s3:PutObjectAcl"
9603 ],
9604 "Resource": [
9605 "arn:aws:s3:::BUCKET_NAME/*",
9606 "arn:aws:s3:::BUCKET_NAME"
9607 ]
9608 },
9609 {
9610 "Effect": "Allow",
9611 "Action": "s3:ListAllMyBuckets",
9612 "Resource": "arn:aws:s3:::*"
9613 }
9614 ]
9615 }
9616
9617 Notes on above:
9618
9619 1. This is a policy that can be used when creating bucket. It assumes
9620 that USER_NAME has been created.
9621
9622 2. The Resource entry must include both resource ARNs, as one implies
9623 the bucket and the other implies the bucket’s objects.
9624
9625 For reference, here’s an Ansible script
9626 (https://gist.github.com/ebridges/ebfc9042dd7c756cd101cfa807b7ae2b)
9627 that will generate one or more buckets that will work with rclone sync.
9628
9629 Key Management System (KMS)
9630 If you are using server side encryption with KMS then you will find you
9631 can’t transfer small objects. As a work-around you can use the --ig‐
9632 nore-checksum flag.
9633
9634 A proper fix is being worked on in issue #1824
9635 (https://github.com/rclone/rclone/issues/1824).
9636
9637 Glacier and Glacier Deep Archive
9638 You can upload objects using the glacier storage class or transition
9639 them to glacier using a lifecycle policy (http://docs.aws.ama‐
9640 zon.com/AmazonS3/latest/user-guide/create-lifecycle.html). The bucket
9641 can still be synced or copied into normally, but if rclone tries to ac‐
9642 cess data from the glacier storage class you will see an error like be‐
9643 low.
9644
9645 2017/09/11 19:07:43 Failed to sync: failed to open source object: Object in GLACIER, restore first: path/to/file
9646
9647 In this case you need to restore (http://docs.aws.amazon.com/Ama‐
9648 zonS3/latest/user-guide/restore-archived-objects.html) the object(s) in
9649 question before using rclone.
9650
9651 Note that rclone only speaks the S3 API it does not speak the Glacier
9652 Vault API, so rclone cannot directly access Glacier Vaults.
9653
9654 Standard Options
9655 Here are the standard options specific to s3 (Amazon S3 Compliant Stor‐
9656 age Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS,
9657 Minio, etc)).
9658
9659 –s3-provider
9660 Choose your S3 provider.
9661
9662 · Config: provider
9663
9664 · Env Var: RCLONE_S3_PROVIDER
9665
9666 · Type: string
9667
9668 · Default: ""
9669
9670 · Examples:
9671
9672 · “AWS”
9673
9674 · Amazon Web Services (AWS) S3
9675
9676 · “Alibaba”
9677
9678 · Alibaba Cloud Object Storage System (OSS) formerly Aliyun
9679
9680 · “Ceph”
9681
9682 · Ceph Object Storage
9683
9684 · “DigitalOcean”
9685
9686 · Digital Ocean Spaces
9687
9688 · “Dreamhost”
9689
9690 · Dreamhost DreamObjects
9691
9692 · “IBMCOS”
9693
9694 · IBM COS S3
9695
9696 · “Minio”
9697
9698 · Minio Object Storage
9699
9700 · “Netease”
9701
9702 · Netease Object Storage (NOS)
9703
9704 · “Wasabi”
9705
9706 · Wasabi Object Storage
9707
9708 · “Other”
9709
9710 · Any other S3 compatible provider
9711
9712 –s3-env-auth
9713 Get AWS credentials from runtime (environment variables or EC2/ECS meta
9714 data if no env vars). Only applies if access_key_id and secret_ac‐
9715 cess_key is blank.
9716
9717 · Config: env_auth
9718
9719 · Env Var: RCLONE_S3_ENV_AUTH
9720
9721 · Type: bool
9722
9723 · Default: false
9724
9725 · Examples:
9726
9727 · “false”
9728
9729 · Enter AWS credentials in the next step
9730
9731 · “true”
9732
9733 · Get AWS credentials from the environment (env vars or IAM)
9734
9735 –s3-access-key-id
9736 AWS Access Key ID. Leave blank for anonymous access or runtime creden‐
9737 tials.
9738
9739 · Config: access_key_id
9740
9741 · Env Var: RCLONE_S3_ACCESS_KEY_ID
9742
9743 · Type: string
9744
9745 · Default: ""
9746
9747 –s3-secret-access-key
9748 AWS Secret Access Key (password) Leave blank for anonymous access or
9749 runtime credentials.
9750
9751 · Config: secret_access_key
9752
9753 · Env Var: RCLONE_S3_SECRET_ACCESS_KEY
9754
9755 · Type: string
9756
9757 · Default: ""
9758
9759 –s3-region
9760 Region to connect to.
9761
9762 · Config: region
9763
9764 · Env Var: RCLONE_S3_REGION
9765
9766 · Type: string
9767
9768 · Default: ""
9769
9770 · Examples:
9771
9772 · “us-east-1”
9773
9774 · The default endpoint - a good choice if you are unsure.
9775
9776 · US Region, Northern Virginia or Pacific Northwest.
9777
9778 · Leave location constraint empty.
9779
9780 · “us-east-2”
9781
9782 · US East (Ohio) Region
9783
9784 · Needs location constraint us-east-2.
9785
9786 · “us-west-2”
9787
9788 · US West (Oregon) Region
9789
9790 · Needs location constraint us-west-2.
9791
9792 · “us-west-1”
9793
9794 · US West (Northern California) Region
9795
9796 · Needs location constraint us-west-1.
9797
9798 · “ca-central-1”
9799
9800 · Canada (Central) Region
9801
9802 · Needs location constraint ca-central-1.
9803
9804 · “eu-west-1”
9805
9806 · EU (Ireland) Region
9807
9808 · Needs location constraint EU or eu-west-1.
9809
9810 · “eu-west-2”
9811
9812 · EU (London) Region
9813
9814 · Needs location constraint eu-west-2.
9815
9816 · “eu-north-1”
9817
9818 · EU (Stockholm) Region
9819
9820 · Needs location constraint eu-north-1.
9821
9822 · “eu-central-1”
9823
9824 · EU (Frankfurt) Region
9825
9826 · Needs location constraint eu-central-1.
9827
9828 · “ap-southeast-1”
9829
9830 · Asia Pacific (Singapore) Region
9831
9832 · Needs location constraint ap-southeast-1.
9833
9834 · “ap-southeast-2”
9835
9836 · Asia Pacific (Sydney) Region
9837
9838 · Needs location constraint ap-southeast-2.
9839
9840 · “ap-northeast-1”
9841
9842 · Asia Pacific (Tokyo) Region
9843
9844 · Needs location constraint ap-northeast-1.
9845
9846 · “ap-northeast-2”
9847
9848 · Asia Pacific (Seoul)
9849
9850 · Needs location constraint ap-northeast-2.
9851
9852 · “ap-south-1”
9853
9854 · Asia Pacific (Mumbai)
9855
9856 · Needs location constraint ap-south-1.
9857
9858 · “ap-east-1”
9859
9860 · Asia Patific (Hong Kong) Region
9861
9862 · Needs location constraint ap-east-1.
9863
9864 · “sa-east-1”
9865
9866 · South America (Sao Paulo) Region
9867
9868 · Needs location constraint sa-east-1.
9869
9870 –s3-region
9871 Region to connect to. Leave blank if you are using an S3 clone and you
9872 don’t have a region.
9873
9874 · Config: region
9875
9876 · Env Var: RCLONE_S3_REGION
9877
9878 · Type: string
9879
9880 · Default: ""
9881
9882 · Examples:
9883
9884 · ""
9885
9886 · Use this if unsure. Will use v4 signatures and an empty region.
9887
9888 · “other-v2-signature”
9889
9890 · Use this only if v4 signatures don’t work, eg pre Jewel/v10 CEPH.
9891
9892 –s3-endpoint
9893 Endpoint for S3 API. Leave blank if using AWS to use the default end‐
9894 point for the region.
9895
9896 · Config: endpoint
9897
9898 · Env Var: RCLONE_S3_ENDPOINT
9899
9900 · Type: string
9901
9902 · Default: ""
9903
9904 –s3-endpoint
9905 Endpoint for IBM COS S3 API. Specify if using an IBM COS On Premise.
9906
9907 · Config: endpoint
9908
9909 · Env Var: RCLONE_S3_ENDPOINT
9910
9911 · Type: string
9912
9913 · Default: ""
9914
9915 · Examples:
9916
9917 · “s3-api.us-geo.objectstorage.softlayer.net”
9918
9919 · US Cross Region Endpoint
9920
9921 · “s3-api.dal.us-geo.objectstorage.softlayer.net”
9922
9923 · US Cross Region Dallas Endpoint
9924
9925 · “s3-api.wdc-us-geo.objectstorage.softlayer.net”
9926
9927 · US Cross Region Washington DC Endpoint
9928
9929 · “s3-api.sjc-us-geo.objectstorage.softlayer.net”
9930
9931 · US Cross Region San Jose Endpoint
9932
9933 · “s3-api.us-geo.objectstorage.service.networklayer.com”
9934
9935 · US Cross Region Private Endpoint
9936
9937 · “s3-api.dal-us-geo.objectstorage.service.networklayer.com”
9938
9939 · US Cross Region Dallas Private Endpoint
9940
9941 · “s3-api.wdc-us-geo.objectstorage.service.networklayer.com”
9942
9943 · US Cross Region Washington DC Private Endpoint
9944
9945 · “s3-api.sjc-us-geo.objectstorage.service.networklayer.com”
9946
9947 · US Cross Region San Jose Private Endpoint
9948
9949 · “s3.us-east.objectstorage.softlayer.net”
9950
9951 · US Region East Endpoint
9952
9953 · “s3.us-east.objectstorage.service.networklayer.com”
9954
9955 · US Region East Private Endpoint
9956
9957 · “s3.us-south.objectstorage.softlayer.net”
9958
9959 · US Region South Endpoint
9960
9961 · “s3.us-south.objectstorage.service.networklayer.com”
9962
9963 · US Region South Private Endpoint
9964
9965 · “s3.eu-geo.objectstorage.softlayer.net”
9966
9967 · EU Cross Region Endpoint
9968
9969 · “s3.fra-eu-geo.objectstorage.softlayer.net”
9970
9971 · EU Cross Region Frankfurt Endpoint
9972
9973 · “s3.mil-eu-geo.objectstorage.softlayer.net”
9974
9975 · EU Cross Region Milan Endpoint
9976
9977 · “s3.ams-eu-geo.objectstorage.softlayer.net”
9978
9979 · EU Cross Region Amsterdam Endpoint
9980
9981 · “s3.eu-geo.objectstorage.service.networklayer.com”
9982
9983 · EU Cross Region Private Endpoint
9984
9985 · “s3.fra-eu-geo.objectstorage.service.networklayer.com”
9986
9987 · EU Cross Region Frankfurt Private Endpoint
9988
9989 · “s3.mil-eu-geo.objectstorage.service.networklayer.com”
9990
9991 · EU Cross Region Milan Private Endpoint
9992
9993 · “s3.ams-eu-geo.objectstorage.service.networklayer.com”
9994
9995 · EU Cross Region Amsterdam Private Endpoint
9996
9997 · “s3.eu-gb.objectstorage.softlayer.net”
9998
9999 · Great Britain Endpoint
10000
10001 · “s3.eu-gb.objectstorage.service.networklayer.com”
10002
10003 · Great Britain Private Endpoint
10004
10005 · “s3.ap-geo.objectstorage.softlayer.net”
10006
10007 · APAC Cross Regional Endpoint
10008
10009 · “s3.tok-ap-geo.objectstorage.softlayer.net”
10010
10011 · APAC Cross Regional Tokyo Endpoint
10012
10013 · “s3.hkg-ap-geo.objectstorage.softlayer.net”
10014
10015 · APAC Cross Regional HongKong Endpoint
10016
10017 · “s3.seo-ap-geo.objectstorage.softlayer.net”
10018
10019 · APAC Cross Regional Seoul Endpoint
10020
10021 · “s3.ap-geo.objectstorage.service.networklayer.com”
10022
10023 · APAC Cross Regional Private Endpoint
10024
10025 · “s3.tok-ap-geo.objectstorage.service.networklayer.com”
10026
10027 · APAC Cross Regional Tokyo Private Endpoint
10028
10029 · “s3.hkg-ap-geo.objectstorage.service.networklayer.com”
10030
10031 · APAC Cross Regional HongKong Private Endpoint
10032
10033 · “s3.seo-ap-geo.objectstorage.service.networklayer.com”
10034
10035 · APAC Cross Regional Seoul Private Endpoint
10036
10037 · “s3.mel01.objectstorage.softlayer.net”
10038
10039 · Melbourne Single Site Endpoint
10040
10041 · “s3.mel01.objectstorage.service.networklayer.com”
10042
10043 · Melbourne Single Site Private Endpoint
10044
10045 · “s3.tor01.objectstorage.softlayer.net”
10046
10047 · Toronto Single Site Endpoint
10048
10049 · “s3.tor01.objectstorage.service.networklayer.com”
10050
10051 · Toronto Single Site Private Endpoint
10052
10053 –s3-endpoint
10054 Endpoint for OSS API.
10055
10056 · Config: endpoint
10057
10058 · Env Var: RCLONE_S3_ENDPOINT
10059
10060 · Type: string
10061
10062 · Default: ""
10063
10064 · Examples:
10065
10066 · “oss-cn-hangzhou.aliyuncs.com”
10067
10068 · East China 1 (Hangzhou)
10069
10070 · “oss-cn-shanghai.aliyuncs.com”
10071
10072 · East China 2 (Shanghai)
10073
10074 · “oss-cn-qingdao.aliyuncs.com”
10075
10076 · North China 1 (Qingdao)
10077
10078 · “oss-cn-beijing.aliyuncs.com”
10079
10080 · North China 2 (Beijing)
10081
10082 · “oss-cn-zhangjiakou.aliyuncs.com”
10083
10084 · North China 3 (Zhangjiakou)
10085
10086 · “oss-cn-huhehaote.aliyuncs.com”
10087
10088 · North China 5 (Huhehaote)
10089
10090 · “oss-cn-shenzhen.aliyuncs.com”
10091
10092 · South China 1 (Shenzhen)
10093
10094 · “oss-cn-hongkong.aliyuncs.com”
10095
10096 · Hong Kong (Hong Kong)
10097
10098 · “oss-us-west-1.aliyuncs.com”
10099
10100 · US West 1 (Silicon Valley)
10101
10102 · “oss-us-east-1.aliyuncs.com”
10103
10104 · US East 1 (Virginia)
10105
10106 · “oss-ap-southeast-1.aliyuncs.com”
10107
10108 · Southeast Asia Southeast 1 (Singapore)
10109
10110 · “oss-ap-southeast-2.aliyuncs.com”
10111
10112 · Asia Pacific Southeast 2 (Sydney)
10113
10114 · “oss-ap-southeast-3.aliyuncs.com”
10115
10116 · Southeast Asia Southeast 3 (Kuala Lumpur)
10117
10118 · “oss-ap-southeast-5.aliyuncs.com”
10119
10120 · Asia Pacific Southeast 5 (Jakarta)
10121
10122 · “oss-ap-northeast-1.aliyuncs.com”
10123
10124 · Asia Pacific Northeast 1 (Japan)
10125
10126 · “oss-ap-south-1.aliyuncs.com”
10127
10128 · Asia Pacific South 1 (Mumbai)
10129
10130 · “oss-eu-central-1.aliyuncs.com”
10131
10132 · Central Europe 1 (Frankfurt)
10133
10134 · “oss-eu-west-1.aliyuncs.com”
10135
10136 · West Europe (London)
10137
10138 · “oss-me-east-1.aliyuncs.com”
10139
10140 · Middle East 1 (Dubai)
10141
10142 –s3-endpoint
10143 Endpoint for S3 API. Required when using an S3 clone.
10144
10145 · Config: endpoint
10146
10147 · Env Var: RCLONE_S3_ENDPOINT
10148
10149 · Type: string
10150
10151 · Default: ""
10152
10153 · Examples:
10154
10155 · “objects-us-east-1.dream.io”
10156
10157 · Dream Objects endpoint
10158
10159 · “nyc3.digitaloceanspaces.com”
10160
10161 · Digital Ocean Spaces New York 3
10162
10163 · “ams3.digitaloceanspaces.com”
10164
10165 · Digital Ocean Spaces Amsterdam 3
10166
10167 · “sgp1.digitaloceanspaces.com”
10168
10169 · Digital Ocean Spaces Singapore 1
10170
10171 · “s3.wasabisys.com”
10172
10173 · Wasabi US East endpoint
10174
10175 · “s3.us-west-1.wasabisys.com”
10176
10177 · Wasabi US West endpoint
10178
10179 · “s3.eu-central-1.wasabisys.com”
10180
10181 · Wasabi EU Central endpoint
10182
10183 –s3-location-constraint
10184 Location constraint - must be set to match the Region. Used when cre‐
10185 ating buckets only.
10186
10187 · Config: location_constraint
10188
10189 · Env Var: RCLONE_S3_LOCATION_CONSTRAINT
10190
10191 · Type: string
10192
10193 · Default: ""
10194
10195 · Examples:
10196
10197 · ""
10198
10199 · Empty for US Region, Northern Virginia or Pacific Northwest.
10200
10201 · “us-east-2”
10202
10203 · US East (Ohio) Region.
10204
10205 · “us-west-2”
10206
10207 · US West (Oregon) Region.
10208
10209 · “us-west-1”
10210
10211 · US West (Northern California) Region.
10212
10213 · “ca-central-1”
10214
10215 · Canada (Central) Region.
10216
10217 · “eu-west-1”
10218
10219 · EU (Ireland) Region.
10220
10221 · “eu-west-2”
10222
10223 · EU (London) Region.
10224
10225 · “eu-north-1”
10226
10227 · EU (Stockholm) Region.
10228
10229 · “EU”
10230
10231 · EU Region.
10232
10233 · “ap-southeast-1”
10234
10235 · Asia Pacific (Singapore) Region.
10236
10237 · “ap-southeast-2”
10238
10239 · Asia Pacific (Sydney) Region.
10240
10241 · “ap-northeast-1”
10242
10243 · Asia Pacific (Tokyo) Region.
10244
10245 · “ap-northeast-2”
10246
10247 · Asia Pacific (Seoul)
10248
10249 · “ap-south-1”
10250
10251 · Asia Pacific (Mumbai)
10252
10253 · “ap-east-1”
10254
10255 · Asia Pacific (Hong Kong)
10256
10257 · “sa-east-1”
10258
10259 · South America (Sao Paulo) Region.
10260
10261 –s3-location-constraint
10262 Location constraint - must match endpoint when using IBM Cloud Public.
10263 For on-prem COS, do not make a selection from this list, hit enter
10264
10265 · Config: location_constraint
10266
10267 · Env Var: RCLONE_S3_LOCATION_CONSTRAINT
10268
10269 · Type: string
10270
10271 · Default: ""
10272
10273 · Examples:
10274
10275 · “us-standard”
10276
10277 · US Cross Region Standard
10278
10279 · “us-vault”
10280
10281 · US Cross Region Vault
10282
10283 · “us-cold”
10284
10285 · US Cross Region Cold
10286
10287 · “us-flex”
10288
10289 · US Cross Region Flex
10290
10291 · “us-east-standard”
10292
10293 · US East Region Standard
10294
10295 · “us-east-vault”
10296
10297 · US East Region Vault
10298
10299 · “us-east-cold”
10300
10301 · US East Region Cold
10302
10303 · “us-east-flex”
10304
10305 · US East Region Flex
10306
10307 · “us-south-standard”
10308
10309 · US South Region Standard
10310
10311 · “us-south-vault”
10312
10313 · US South Region Vault
10314
10315 · “us-south-cold”
10316
10317 · US South Region Cold
10318
10319 · “us-south-flex”
10320
10321 · US South Region Flex
10322
10323 · “eu-standard”
10324
10325 · EU Cross Region Standard
10326
10327 · “eu-vault”
10328
10329 · EU Cross Region Vault
10330
10331 · “eu-cold”
10332
10333 · EU Cross Region Cold
10334
10335 · “eu-flex”
10336
10337 · EU Cross Region Flex
10338
10339 · “eu-gb-standard”
10340
10341 · Great Britain Standard
10342
10343 · “eu-gb-vault”
10344
10345 · Great Britain Vault
10346
10347 · “eu-gb-cold”
10348
10349 · Great Britain Cold
10350
10351 · “eu-gb-flex”
10352
10353 · Great Britain Flex
10354
10355 · “ap-standard”
10356
10357 · APAC Standard
10358
10359 · “ap-vault”
10360
10361 · APAC Vault
10362
10363 · “ap-cold”
10364
10365 · APAC Cold
10366
10367 · “ap-flex”
10368
10369 · APAC Flex
10370
10371 · “mel01-standard”
10372
10373 · Melbourne Standard
10374
10375 · “mel01-vault”
10376
10377 · Melbourne Vault
10378
10379 · “mel01-cold”
10380
10381 · Melbourne Cold
10382
10383 · “mel01-flex”
10384
10385 · Melbourne Flex
10386
10387 · “tor01-standard”
10388
10389 · Toronto Standard
10390
10391 · “tor01-vault”
10392
10393 · Toronto Vault
10394
10395 · “tor01-cold”
10396
10397 · Toronto Cold
10398
10399 · “tor01-flex”
10400
10401 · Toronto Flex
10402
10403 –s3-location-constraint
10404 Location constraint - must be set to match the Region. Leave blank if
10405 not sure. Used when creating buckets only.
10406
10407 · Config: location_constraint
10408
10409 · Env Var: RCLONE_S3_LOCATION_CONSTRAINT
10410
10411 · Type: string
10412
10413 · Default: ""
10414
10415 –s3-acl
10416 Canned ACL used when creating buckets and storing or copying objects.
10417
10418 This ACL is used for creating objects and if bucket_acl isn’t set, for
10419 creating buckets too.
10420
10421 For more info visit https://docs.aws.amazon.com/AmazonS3/lat‐
10422 est/dev/acl-overview.html#canned-acl
10423
10424 Note that this ACL is applied when server side copying objects as S3
10425 doesn’t copy the ACL from the source but rather writes a fresh one.
10426
10427 · Config: acl
10428
10429 · Env Var: RCLONE_S3_ACL
10430
10431 · Type: string
10432
10433 · Default: ""
10434
10435 · Examples:
10436
10437 · “private”
10438
10439 · Owner gets FULL_CONTROL. No one else has access rights (de‐
10440 fault).
10441
10442 · “public-read”
10443
10444 · Owner gets FULL_CONTROL. The AllUsers group gets READ access.
10445
10446 · “public-read-write”
10447
10448 · Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
10449 access.
10450
10451 · Granting this on a bucket is generally not recommended.
10452
10453 · “authenticated-read”
10454
10455 · Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
10456 access.
10457
10458 · “bucket-owner-read”
10459
10460 · Object owner gets FULL_CONTROL. Bucket owner gets READ access.
10461
10462 · If you specify this canned ACL when creating a bucket, Amazon S3
10463 ignores it.
10464
10465 · “bucket-owner-full-control”
10466
10467 · Both the object owner and the bucket owner get FULL_CONTROL over
10468 the object.
10469
10470 · If you specify this canned ACL when creating a bucket, Amazon S3
10471 ignores it.
10472
10473 · “private”
10474
10475 · Owner gets FULL_CONTROL. No one else has access rights (de‐
10476 fault). This acl is available on IBM Cloud (Infra), IBM Cloud
10477 (Storage), On-Premise COS
10478
10479 · “public-read”
10480
10481 · Owner gets FULL_CONTROL. The AllUsers group gets READ access.
10482 This acl is available on IBM Cloud (Infra), IBM Cloud (Storage),
10483 On-Premise IBM COS
10484
10485 · “public-read-write”
10486
10487 · Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
10488 access. This acl is available on IBM Cloud (Infra), On-Premise
10489 IBM COS
10490
10491 · “authenticated-read”
10492
10493 · Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
10494 access. Not supported on Buckets. This acl is available on IBM
10495 Cloud (Infra) and On-Premise IBM COS
10496
10497 –s3-server-side-encryption
10498 The server-side encryption algorithm used when storing this object in
10499 S3.
10500
10501 · Config: server_side_encryption
10502
10503 · Env Var: RCLONE_S3_SERVER_SIDE_ENCRYPTION
10504
10505 · Type: string
10506
10507 · Default: ""
10508
10509 · Examples:
10510
10511 · ""
10512
10513 · None
10514
10515 · “AES256”
10516
10517 · AES256
10518
10519 · “aws:kms”
10520
10521 · aws:kms
10522
10523 –s3-sse-kms-key-id
10524 If using KMS ID you must provide the ARN of Key.
10525
10526 · Config: sse_kms_key_id
10527
10528 · Env Var: RCLONE_S3_SSE_KMS_KEY_ID
10529
10530 · Type: string
10531
10532 · Default: ""
10533
10534 · Examples:
10535
10536 · ""
10537
10538 · None
10539
10540 · "arn:aws:kms:us-east-1:*"
10541
10542 · arn:aws:kms:*
10543
10544 –s3-storage-class
10545 The storage class to use when storing new objects in S3.
10546
10547 · Config: storage_class
10548
10549 · Env Var: RCLONE_S3_STORAGE_CLASS
10550
10551 · Type: string
10552
10553 · Default: ""
10554
10555 · Examples:
10556
10557 · ""
10558
10559 · Default
10560
10561 · “STANDARD”
10562
10563 · Standard storage class
10564
10565 · “REDUCED_REDUNDANCY”
10566
10567 · Reduced redundancy storage class
10568
10569 · “STANDARD_IA”
10570
10571 · Standard Infrequent Access storage class
10572
10573 · “ONEZONE_IA”
10574
10575 · One Zone Infrequent Access storage class
10576
10577 · “GLACIER”
10578
10579 · Glacier storage class
10580
10581 · “DEEP_ARCHIVE”
10582
10583 · Glacier Deep Archive storage class
10584
10585 · “INTELLIGENT_TIERING”
10586
10587 · Intelligent-Tiering storage class
10588
10589 –s3-storage-class
10590 The storage class to use when storing new objects in OSS.
10591
10592 · Config: storage_class
10593
10594 · Env Var: RCLONE_S3_STORAGE_CLASS
10595
10596 · Type: string
10597
10598 · Default: ""
10599
10600 · Examples:
10601
10602 · ""
10603
10604 · Default
10605
10606 · “STANDARD”
10607
10608 · Standard storage class
10609
10610 · “GLACIER”
10611
10612 · Archive storage mode.
10613
10614 · “STANDARD_IA”
10615
10616 · Infrequent access storage mode.
10617
10618 Advanced Options
10619 Here are the advanced options specific to s3 (Amazon S3 Compliant Stor‐
10620 age Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS,
10621 Minio, etc)).
10622
10623 –s3-bucket-acl
10624 Canned ACL used when creating buckets.
10625
10626 For more info visit https://docs.aws.amazon.com/AmazonS3/lat‐
10627 est/dev/acl-overview.html#canned-acl
10628
10629 Note that this ACL is applied when only when creating buckets. If it
10630 isn’t set then “acl” is used instead.
10631
10632 · Config: bucket_acl
10633
10634 · Env Var: RCLONE_S3_BUCKET_ACL
10635
10636 · Type: string
10637
10638 · Default: ""
10639
10640 · Examples:
10641
10642 · “private”
10643
10644 · Owner gets FULL_CONTROL. No one else has access rights (de‐
10645 fault).
10646
10647 · “public-read”
10648
10649 · Owner gets FULL_CONTROL. The AllUsers group gets READ access.
10650
10651 · “public-read-write”
10652
10653 · Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
10654 access.
10655
10656 · Granting this on a bucket is generally not recommended.
10657
10658 · “authenticated-read”
10659
10660 · Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
10661 access.
10662
10663 –s3-upload-cutoff
10664 Cutoff for switching to chunked upload
10665
10666 Any files larger than this will be uploaded in chunks of chunk_size.
10667 The minimum is 0 and the maximum is 5GB.
10668
10669 · Config: upload_cutoff
10670
10671 · Env Var: RCLONE_S3_UPLOAD_CUTOFF
10672
10673 · Type: SizeSuffix
10674
10675 · Default: 200M
10676
10677 –s3-chunk-size
10678 Chunk size to use for uploading.
10679
10680 When uploading files larger than upload_cutoff or files with unknown
10681 size (eg from “rclone rcat” or uploaded with “rclone mount” or google
10682 photos or google docs) they will be uploaded as multipart uploads using
10683 this chunk size.
10684
10685 Note that “–s3-upload-concurrency” chunks of this size are buffered in
10686 memory per transfer.
10687
10688 If you are transferring large files over high speed links and you have
10689 enough memory, then increasing this will speed up the transfers.
10690
10691 Rclone will automatically increase the chunk size when uploading a
10692 large file of known size to stay below the 10,000 chunks limit.
10693
10694 Files of unknown size are uploaded with the configured chunk_size.
10695 Since the default chunk size is 5MB and there can be at most 10,000
10696 chunks, this means that by default the maximum size of file you can
10697 stream upload is 48GB. If you wish to stream upload larger files then
10698 you will need to increase chunk_size.
10699
10700 · Config: chunk_size
10701
10702 · Env Var: RCLONE_S3_CHUNK_SIZE
10703
10704 · Type: SizeSuffix
10705
10706 · Default: 5M
10707
10708 –s3-copy-cutoff
10709 Cutoff for switching to multipart copy
10710
10711 Any files larger than this that need to be server side copied will be
10712 copied in chunks of this size.
10713
10714 The minimum is 0 and the maximum is 5GB.
10715
10716 · Config: copy_cutoff
10717
10718 · Env Var: RCLONE_S3_COPY_CUTOFF
10719
10720 · Type: SizeSuffix
10721
10722 · Default: 5G
10723
10724 –s3-disable-checksum
10725 Don’t store MD5 checksum with object metadata
10726
10727 · Config: disable_checksum
10728
10729 · Env Var: RCLONE_S3_DISABLE_CHECKSUM
10730
10731 · Type: bool
10732
10733 · Default: false
10734
10735 –s3-session-token
10736 An AWS session token
10737
10738 · Config: session_token
10739
10740 · Env Var: RCLONE_S3_SESSION_TOKEN
10741
10742 · Type: string
10743
10744 · Default: ""
10745
10746 –s3-upload-concurrency
10747 Concurrency for multipart uploads.
10748
10749 This is the number of chunks of the same file that are uploaded concur‐
10750 rently.
10751
10752 If you are uploading small numbers of large file over high speed link
10753 and these uploads do not fully utilize your bandwidth, then increasing
10754 this may help to speed up the transfers.
10755
10756 · Config: upload_concurrency
10757
10758 · Env Var: RCLONE_S3_UPLOAD_CONCURRENCY
10759
10760 · Type: int
10761
10762 · Default: 4
10763
10764 –s3-force-path-style
10765 If true use path style access if false use virtual hosted style.
10766
10767 If this is true (the default) then rclone will use path style access,
10768 if false then rclone will use virtual path style. See the AWS S3 docs
10769 (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#ac‐
10770 cess-bucket-intro) for more info.
10771
10772 Some providers (eg AWS, Aliyun OSS or Netease COS) require this set to
10773 false - rclone will do this automatically based on the provider set‐
10774 ting.
10775
10776 · Config: force_path_style
10777
10778 · Env Var: RCLONE_S3_FORCE_PATH_STYLE
10779
10780 · Type: bool
10781
10782 · Default: true
10783
10784 –s3-v2-auth
10785 If true use v2 authentication.
10786
10787 If this is false (the default) then rclone will use v4 authentication.
10788 If it is set then rclone will use v2 authentication.
10789
10790 Use this only if v4 signatures don’t work, eg pre Jewel/v10 CEPH.
10791
10792 · Config: v2_auth
10793
10794 · Env Var: RCLONE_S3_V2_AUTH
10795
10796 · Type: bool
10797
10798 · Default: false
10799
10800 –s3-use-accelerate-endpoint
10801 If true use the AWS S3 accelerated endpoint.
10802
10803 See: AWS S3 Transfer acceleration (https://docs.aws.amazon.com/Ama‐
10804 zonS3/latest/dev/transfer-acceleration-examples.html)
10805
10806 · Config: use_accelerate_endpoint
10807
10808 · Env Var: RCLONE_S3_USE_ACCELERATE_ENDPOINT
10809
10810 · Type: bool
10811
10812 · Default: false
10813
10814 –s3-leave-parts-on-error
10815 If true avoid calling abort upload on a failure, leaving all success‐
10816 fully uploaded parts on S3 for manual recovery.
10817
10818 It should be set to true for resuming uploads across different ses‐
10819 sions.
10820
10821 WARNING: Storing parts of an incomplete multipart upload counts towards
10822 space usage on S3 and will add additional costs if not cleaned up.
10823
10824 · Config: leave_parts_on_error
10825
10826 · Env Var: RCLONE_S3_LEAVE_PARTS_ON_ERROR
10827
10828 · Type: bool
10829
10830 · Default: false
10831
10832 –s3-list-chunk
10833 Size of listing chunk (response list for each ListObject S3 request).
10834
10835 This option is also known as “MaxKeys”, “max-items”, or “page-size”
10836 from the AWS S3 specification. Most services truncate the response
10837 list to 1000 objects even if requested more than that. In AWS S3 this
10838 is a global maximum and cannot be changed, see AWS S3
10839 (https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html). In
10840 Ceph, this can be increased with the “rgw list buckets max chunk” op‐
10841 tion.
10842
10843 · Config: list_chunk
10844
10845 · Env Var: RCLONE_S3_LIST_CHUNK
10846
10847 · Type: int
10848
10849 · Default: 1000
10850
10851 –s3-encoding
10852 This sets the encoding for the backend.
10853
10854 See: the encoding section in the overview (/overview/#encoding) for
10855 more info.
10856
10857 · Config: encoding
10858
10859 · Env Var: RCLONE_S3_ENCODING
10860
10861 · Type: MultiEncoder
10862
10863 · Default: Slash,InvalidUtf8,Dot
10864
10865 Anonymous access to public buckets
10866 If you want to use rclone to access a public bucket, configure with a
10867 blank access_key_id and secret_access_key. Your config should end up
10868 looking like this:
10869
10870 [anons3]
10871 type = s3
10872 provider = AWS
10873 env_auth = false
10874 access_key_id =
10875 secret_access_key =
10876 region = us-east-1
10877 endpoint =
10878 location_constraint =
10879 acl = private
10880 server_side_encryption =
10881 storage_class =
10882
10883 Then use it as normal with the name of the public bucket, eg
10884
10885 rclone lsd anons3:1000genomes
10886
10887 You will be able to list and copy data but not upload it.
10888
10889 Ceph
10890 Ceph (https://ceph.com/) is an open source unified, distributed storage
10891 system designed for excellent performance, reliability and scalability.
10892 It has an S3 compatible object storage interface.
10893
10894 To use rclone with Ceph, configure as above but leave the region blank
10895 and set the endpoint. You should end up with something like this in
10896 your config:
10897
10898 [ceph]
10899 type = s3
10900 provider = Ceph
10901 env_auth = false
10902 access_key_id = XXX
10903 secret_access_key = YYY
10904 region =
10905 endpoint = https://ceph.endpoint.example.com
10906 location_constraint =
10907 acl =
10908 server_side_encryption =
10909 storage_class =
10910
10911 If you are using an older version of CEPH, eg 10.2.x Jewel, then you
10912 may need to supply the parameter --s3-upload-cutoff 0 or put this in
10913 the config file as upload_cutoff 0 to work around a bug which causes
10914 uploading of small files to fail.
10915
10916 Note also that Ceph sometimes puts / in the passwords it gives users.
10917 If you read the secret access key using the command line tools you will
10918 get a JSON blob with the / escaped as \/. Make sure you only write /
10919 in the secret access key.
10920
10921 Eg the dump from Ceph looks something like this (irrelevant keys re‐
10922 moved).
10923
10924 {
10925 "user_id": "xxx",
10926 "display_name": "xxxx",
10927 "keys": [
10928 {
10929 "user": "xxx",
10930 "access_key": "xxxxxx",
10931 "secret_key": "xxxxxx\/xxxx"
10932 }
10933 ],
10934 }
10935
10936 Because this is a json dump, it is encoding the / as \/, so if you use
10937 the secret key as xxxxxx/xxxx it will work fine.
10938
10939 Dreamhost
10940 Dreamhost DreamObjects (https://www.dreamhost.com/cloud/storage/) is an
10941 object storage system based on CEPH.
10942
10943 To use rclone with Dreamhost, configure as above but leave the region
10944 blank and set the endpoint. You should end up with something like this
10945 in your config:
10946
10947 [dreamobjects]
10948 type = s3
10949 provider = DreamHost
10950 env_auth = false
10951 access_key_id = your_access_key
10952 secret_access_key = your_secret_key
10953 region =
10954 endpoint = objects-us-west-1.dream.io
10955 location_constraint =
10956 acl = private
10957 server_side_encryption =
10958 storage_class =
10959
10960 DigitalOcean Spaces
10961 Spaces (https://www.digitalocean.com/products/object-storage/) is an
10962 S3-interoperable (https://developers.digitalocean.com/documenta‐
10963 tion/spaces/) object storage service from cloud provider DigitalOcean.
10964
10965 To connect to DigitalOcean Spaces you will need an access key and se‐
10966 cret key. These can be retrieved on the “Applications & API
10967 (https://cloud.digitalocean.com/settings/api/tokens)” page of the Digi‐
10968 talOcean control panel. They will be needed when promted by rclone
10969 config for your access_key_id and secret_access_key.
10970
10971 When prompted for a region or location_constraint, press enter to use
10972 the default value. The region must be included in the endpoint setting
10973 (e.g. nyc3.digitaloceanspaces.com). The default values can be used for
10974 other settings.
10975
10976 Going through the whole process of creating a new remote by running
10977 rclone config, each prompt should be answered as shown below:
10978
10979 Storage> s3
10980 env_auth> 1
10981 access_key_id> YOUR_ACCESS_KEY
10982 secret_access_key> YOUR_SECRET_KEY
10983 region>
10984 endpoint> nyc3.digitaloceanspaces.com
10985 location_constraint>
10986 acl>
10987 storage_class>
10988
10989 The resulting configuration file should look like:
10990
10991 [spaces]
10992 type = s3
10993 provider = DigitalOcean
10994 env_auth = false
10995 access_key_id = YOUR_ACCESS_KEY
10996 secret_access_key = YOUR_SECRET_KEY
10997 region =
10998 endpoint = nyc3.digitaloceanspaces.com
10999 location_constraint =
11000 acl =
11001 server_side_encryption =
11002 storage_class =
11003
11004 Once configured, you can create a new Space and begin copying files.
11005 For example:
11006
11007 rclone mkdir spaces:my-new-space
11008 rclone copy /path/to/files spaces:my-new-space
11009
11010 IBM COS (S3)
11011 Information stored with IBM Cloud Object Storage is encrypted and dis‐
11012 persed across multiple geographic locations, and accessed through an
11013 implementation of the S3 API. This service makes use of the distrib‐
11014 uted storage technologies provided by IBM’s Cloud Object Storage System
11015 (formerly Cleversafe). For more information visit:
11016 (http://www.ibm.com/cloud/object-storage)
11017
11018 To configure access to IBM COS S3, follow the steps below:
11019
11020 1. Run rclone config and select n for a new remote.
11021
11022 2018/02/14 14:13:11 NOTICE: Config file "C:\\Users\\a\\.config\\rclone\\rclone.conf" not found - using defaults
11023 No remotes found - make a new one
11024 n) New remote
11025 s) Set configuration password
11026 q) Quit config
11027 n/s/q> n
11028
11029 2. Enter the name for the configuration
11030
11031 name> <YOUR NAME>
11032
11033 3. Select “s3” storage.
11034
11035 Choose a number from below, or type in your own value
11036 1 / Alias for an existing remote
11037 \ "alias"
11038 2 / Amazon Drive
11039 \ "amazon cloud drive"
11040 3 / Amazon S3 Complaint Storage Providers (Dreamhost, Ceph, Minio, IBM COS)
11041 \ "s3"
11042 4 / Backblaze B2
11043 \ "b2"
11044 [snip]
11045 23 / http Connection
11046 \ "http"
11047 Storage> 3
11048
11049 4. Select IBM COS as the S3 Storage Provider.
11050
11051 Choose the S3 provider.
11052 Choose a number from below, or type in your own value
11053 1 / Choose this option to configure Storage to AWS S3
11054 \ "AWS"
11055 2 / Choose this option to configure Storage to Ceph Systems
11056 \ "Ceph"
11057 3 / Choose this option to configure Storage to Dreamhost
11058 \ "Dreamhost"
11059 4 / Choose this option to the configure Storage to IBM COS S3
11060 \ "IBMCOS"
11061 5 / Choose this option to the configure Storage to Minio
11062 \ "Minio"
11063 Provider>4
11064
11065 5. Enter the Access Key and Secret.
11066
11067 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
11068 access_key_id> <>
11069 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
11070 secret_access_key> <>
11071
11072 6. Specify the endpoint for IBM COS. For Public IBM COS, choose from
11073 the option below. For On Premise IBM COS, enter an enpoint address.
11074
11075 Endpoint for IBM COS S3 API.
11076 Specify if using an IBM COS On Premise.
11077 Choose a number from below, or type in your own value
11078 1 / US Cross Region Endpoint
11079 \ "s3-api.us-geo.objectstorage.softlayer.net"
11080 2 / US Cross Region Dallas Endpoint
11081 \ "s3-api.dal.us-geo.objectstorage.softlayer.net"
11082 3 / US Cross Region Washington DC Endpoint
11083 \ "s3-api.wdc-us-geo.objectstorage.softlayer.net"
11084 4 / US Cross Region San Jose Endpoint
11085 \ "s3-api.sjc-us-geo.objectstorage.softlayer.net"
11086 5 / US Cross Region Private Endpoint
11087 \ "s3-api.us-geo.objectstorage.service.networklayer.com"
11088 6 / US Cross Region Dallas Private Endpoint
11089 \ "s3-api.dal-us-geo.objectstorage.service.networklayer.com"
11090 7 / US Cross Region Washington DC Private Endpoint
11091 \ "s3-api.wdc-us-geo.objectstorage.service.networklayer.com"
11092 8 / US Cross Region San Jose Private Endpoint
11093 \ "s3-api.sjc-us-geo.objectstorage.service.networklayer.com"
11094 9 / US Region East Endpoint
11095 \ "s3.us-east.objectstorage.softlayer.net"
11096 10 / US Region East Private Endpoint
11097 \ "s3.us-east.objectstorage.service.networklayer.com"
11098 11 / US Region South Endpoint
11099 [snip]
11100 34 / Toronto Single Site Private Endpoint
11101 \ "s3.tor01.objectstorage.service.networklayer.com"
11102 endpoint>1
11103
11104 7. Specify a IBM COS Location Constraint. The location constraint must
11105 match endpoint when using IBM Cloud Public. For on-prem COS, do not
11106 make a selection from this list, hit enter
11107
11108 1 / US Cross Region Standard
11109 \ "us-standard"
11110 2 / US Cross Region Vault
11111 \ "us-vault"
11112 3 / US Cross Region Cold
11113 \ "us-cold"
11114 4 / US Cross Region Flex
11115 \ "us-flex"
11116 5 / US East Region Standard
11117 \ "us-east-standard"
11118 6 / US East Region Vault
11119 \ "us-east-vault"
11120 7 / US East Region Cold
11121 \ "us-east-cold"
11122 8 / US East Region Flex
11123 \ "us-east-flex"
11124 9 / US South Region Standard
11125 \ "us-south-standard"
11126 10 / US South Region Vault
11127 \ "us-south-vault"
11128 [snip]
11129 32 / Toronto Flex
11130 \ "tor01-flex"
11131 location_constraint>1
11132
11133 9. Specify a canned ACL. IBM Cloud (Strorage) supports “public-read”
11134 and “private”. IBM Cloud(Infra) supports all the canned ACLs.
11135 On-Premise COS supports all the canned ACLs.
11136
11137 Canned ACL used when creating buckets and/or storing objects in S3.
11138 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
11139 Choose a number from below, or type in your own value
11140 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
11141 \ "private"
11142 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
11143 \ "public-read"
11144 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
11145 \ "public-read-write"
11146 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
11147 \ "authenticated-read"
11148 acl> 1
11149
11150 12. Review the displayed configuration and accept to save the “remote”
11151 then quit. The config file should look like this
11152
11153 [xxx]
11154 type = s3
11155 Provider = IBMCOS
11156 access_key_id = xxx
11157 secret_access_key = yyy
11158 endpoint = s3-api.us-geo.objectstorage.softlayer.net
11159 location_constraint = us-standard
11160 acl = private
11161
11162 13. Execute rclone commands
11163
11164 1) Create a bucket.
11165 rclone mkdir IBM-COS-XREGION:newbucket
11166 2) List available buckets.
11167 rclone lsd IBM-COS-XREGION:
11168 -1 2017-11-08 21:16:22 -1 test
11169 -1 2018-02-14 20:16:39 -1 newbucket
11170 3) List contents of a bucket.
11171 rclone ls IBM-COS-XREGION:newbucket
11172 18685952 test.exe
11173 4) Copy a file from local to remote.
11174 rclone copy /Users/file.txt IBM-COS-XREGION:newbucket
11175 5) Copy a file from remote to local.
11176 rclone copy IBM-COS-XREGION:newbucket/file.txt .
11177 6) Delete a file on remote.
11178 rclone delete IBM-COS-XREGION:newbucket/file.txt
11179
11180 Minio
11181 Minio (https://minio.io/) is an object storage server built for cloud
11182 application developers and devops.
11183
11184 It is very easy to install and provides an S3 compatible server which
11185 can be used by rclone.
11186
11187 To use it, install Minio following the instructions here
11188 (https://docs.minio.io/docs/minio-quickstart-guide).
11189
11190 When it configures itself Minio will print something like this
11191
11192 Endpoint: http://192.168.1.106:9000 http://172.23.0.1:9000
11193 AccessKey: USWUXHGYZQYFYFFIT3RE
11194 SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
11195 Region: us-east-1
11196 SQS ARNs: arn:minio:sqs:us-east-1:1:redis arn:minio:sqs:us-east-1:2:redis
11197
11198 Browser Access:
11199 http://192.168.1.106:9000 http://172.23.0.1:9000
11200
11201 Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
11202 $ mc config host add myminio http://192.168.1.106:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
11203
11204 Object API (Amazon S3 compatible):
11205 Go: https://docs.minio.io/docs/golang-client-quickstart-guide
11206 Java: https://docs.minio.io/docs/java-client-quickstart-guide
11207 Python: https://docs.minio.io/docs/python-client-quickstart-guide
11208 JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
11209 .NET: https://docs.minio.io/docs/dotnet-client-quickstart-guide
11210
11211 Drive Capacity: 26 GiB Free, 165 GiB Total
11212
11213 These details need to go into rclone config like this. Note that it is
11214 important to put the region in as stated above.
11215
11216 env_auth> 1
11217 access_key_id> USWUXHGYZQYFYFFIT3RE
11218 secret_access_key> MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
11219 region> us-east-1
11220 endpoint> http://192.168.1.106:9000
11221 location_constraint>
11222 server_side_encryption>
11223
11224 Which makes the config file look like this
11225
11226 [minio]
11227 type = s3
11228 provider = Minio
11229 env_auth = false
11230 access_key_id = USWUXHGYZQYFYFFIT3RE
11231 secret_access_key = MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
11232 region = us-east-1
11233 endpoint = http://192.168.1.106:9000
11234 location_constraint =
11235 server_side_encryption =
11236
11237 So once set up, for example to copy files into a bucket
11238
11239 rclone copy /path/to/files minio:bucket
11240
11241 Scaleway
11242 Scaleway (https://www.scaleway.com/object-storage/) The Object Storage
11243 platform allows you to store anything from backups, logs and web assets
11244 to documents and photos. Files can be dropped from the Scaleway con‐
11245 sole or transferred through our API and CLI or using any S3-compatible
11246 tool.
11247
11248 Scaleway provides an S3 interface which can be configured for use with
11249 rclone like this:
11250
11251 [scaleway]
11252 type = s3
11253 env_auth = false
11254 endpoint = s3.nl-ams.scw.cloud
11255 access_key_id = SCWXXXXXXXXXXXXXX
11256 secret_access_key = 1111111-2222-3333-44444-55555555555555
11257 region = nl-ams
11258 location_constraint =
11259 acl = private
11260 force_path_style = false
11261 server_side_encryption =
11262 storage_class =
11263
11264 Wasabi
11265 Wasabi (https://wasabi.com) is a cloud-based object storage service for
11266 a broad range of applications and use cases. Wasabi is designed for
11267 individuals and organizations that require a high-performance, reli‐
11268 able, and secure data storage infrastructure at minimal cost.
11269
11270 Wasabi provides an S3 interface which can be configured for use with
11271 rclone like this.
11272
11273 No remotes found - make a new one
11274 n) New remote
11275 s) Set configuration password
11276 n/s> n
11277 name> wasabi
11278 Type of storage to configure.
11279 Choose a number from below, or type in your own value
11280 [snip]
11281 XX / Amazon S3 (also Dreamhost, Ceph, Minio)
11282 \ "s3"
11283 [snip]
11284 Storage> s3
11285 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.
11286 Choose a number from below, or type in your own value
11287 1 / Enter AWS credentials in the next step
11288 \ "false"
11289 2 / Get AWS credentials from the environment (env vars or IAM)
11290 \ "true"
11291 env_auth> 1
11292 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
11293 access_key_id> YOURACCESSKEY
11294 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
11295 secret_access_key> YOURSECRETACCESSKEY
11296 Region to connect to.
11297 Choose a number from below, or type in your own value
11298 / The default endpoint - a good choice if you are unsure.
11299 1 | US Region, Northern Virginia or Pacific Northwest.
11300 | Leave location constraint empty.
11301 \ "us-east-1"
11302 [snip]
11303 region> us-east-1
11304 Endpoint for S3 API.
11305 Leave blank if using AWS to use the default endpoint for the region.
11306 Specify if using an S3 clone such as Ceph.
11307 endpoint> s3.wasabisys.com
11308 Location constraint - must be set to match the Region. Used when creating buckets only.
11309 Choose a number from below, or type in your own value
11310 1 / Empty for US Region, Northern Virginia or Pacific Northwest.
11311 \ ""
11312 [snip]
11313 location_constraint>
11314 Canned ACL used when creating buckets and/or storing objects in S3.
11315 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
11316 Choose a number from below, or type in your own value
11317 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
11318 \ "private"
11319 [snip]
11320 acl>
11321 The server-side encryption algorithm used when storing this object in S3.
11322 Choose a number from below, or type in your own value
11323 1 / None
11324 \ ""
11325 2 / AES256
11326 \ "AES256"
11327 server_side_encryption>
11328 The storage class to use when storing objects in S3.
11329 Choose a number from below, or type in your own value
11330 1 / Default
11331 \ ""
11332 2 / Standard storage class
11333 \ "STANDARD"
11334 3 / Reduced redundancy storage class
11335 \ "REDUCED_REDUNDANCY"
11336 4 / Standard Infrequent Access storage class
11337 \ "STANDARD_IA"
11338 storage_class>
11339 Remote config
11340 --------------------
11341 [wasabi]
11342 env_auth = false
11343 access_key_id = YOURACCESSKEY
11344 secret_access_key = YOURSECRETACCESSKEY
11345 region = us-east-1
11346 endpoint = s3.wasabisys.com
11347 location_constraint =
11348 acl =
11349 server_side_encryption =
11350 storage_class =
11351 --------------------
11352 y) Yes this is OK
11353 e) Edit this remote
11354 d) Delete this remote
11355 y/e/d> y
11356
11357 This will leave the config file looking like this.
11358
11359 [wasabi]
11360 type = s3
11361 provider = Wasabi
11362 env_auth = false
11363 access_key_id = YOURACCESSKEY
11364 secret_access_key = YOURSECRETACCESSKEY
11365 region =
11366 endpoint = s3.wasabisys.com
11367 location_constraint =
11368 acl =
11369 server_side_encryption =
11370 storage_class =
11371
11372 Alibaba OSS
11373 Here is an example of making an Alibaba Cloud (Aliyun) OSS
11374 (https://www.alibabacloud.com/product/oss/) configuration. First run:
11375
11376 rclone config
11377
11378 This will guide you through an interactive setup process.
11379
11380 No remotes found - make a new one
11381 n) New remote
11382 s) Set configuration password
11383 q) Quit config
11384 n/s/q> n
11385 name> oss
11386 Type of storage to configure.
11387 Enter a string value. Press Enter for the default ("").
11388 Choose a number from below, or type in your own value
11389 [snip]
11390 4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
11391 \ "s3"
11392 [snip]
11393 Storage> s3
11394 Choose your S3 provider.
11395 Enter a string value. Press Enter for the default ("").
11396 Choose a number from below, or type in your own value
11397 1 / Amazon Web Services (AWS) S3
11398 \ "AWS"
11399 2 / Alibaba Cloud Object Storage System (OSS) formerly Aliyun
11400 \ "Alibaba"
11401 3 / Ceph Object Storage
11402 \ "Ceph"
11403 [snip]
11404 provider> Alibaba
11405 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
11406 Only applies if access_key_id and secret_access_key is blank.
11407 Enter a boolean value (true or false). Press Enter for the default ("false").
11408 Choose a number from below, or type in your own value
11409 1 / Enter AWS credentials in the next step
11410 \ "false"
11411 2 / Get AWS credentials from the environment (env vars or IAM)
11412 \ "true"
11413 env_auth> 1
11414 AWS Access Key ID.
11415 Leave blank for anonymous access or runtime credentials.
11416 Enter a string value. Press Enter for the default ("").
11417 access_key_id> accesskeyid
11418 AWS Secret Access Key (password)
11419 Leave blank for anonymous access or runtime credentials.
11420 Enter a string value. Press Enter for the default ("").
11421 secret_access_key> secretaccesskey
11422 Endpoint for OSS API.
11423 Enter a string value. Press Enter for the default ("").
11424 Choose a number from below, or type in your own value
11425 1 / East China 1 (Hangzhou)
11426 \ "oss-cn-hangzhou.aliyuncs.com"
11427 2 / East China 2 (Shanghai)
11428 \ "oss-cn-shanghai.aliyuncs.com"
11429 3 / North China 1 (Qingdao)
11430 \ "oss-cn-qingdao.aliyuncs.com"
11431 [snip]
11432 endpoint> 1
11433 Canned ACL used when creating buckets and storing or copying objects.
11434
11435 Note that this ACL is applied when server side copying objects as S3
11436 doesn't copy the ACL from the source but rather writes a fresh one.
11437 Enter a string value. Press Enter for the default ("").
11438 Choose a number from below, or type in your own value
11439 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
11440 \ "private"
11441 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
11442 \ "public-read"
11443 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
11444 [snip]
11445 acl> 1
11446 The storage class to use when storing new objects in OSS.
11447 Enter a string value. Press Enter for the default ("").
11448 Choose a number from below, or type in your own value
11449 1 / Default
11450 \ ""
11451 2 / Standard storage class
11452 \ "STANDARD"
11453 3 / Archive storage mode.
11454 \ "GLACIER"
11455 4 / Infrequent access storage mode.
11456 \ "STANDARD_IA"
11457 storage_class> 1
11458 Edit advanced config? (y/n)
11459 y) Yes
11460 n) No
11461 y/n> n
11462 Remote config
11463 --------------------
11464 [oss]
11465 type = s3
11466 provider = Alibaba
11467 env_auth = false
11468 access_key_id = accesskeyid
11469 secret_access_key = secretaccesskey
11470 endpoint = oss-cn-hangzhou.aliyuncs.com
11471 acl = private
11472 storage_class = Standard
11473 --------------------
11474 y) Yes this is OK
11475 e) Edit this remote
11476 d) Delete this remote
11477 y/e/d> y
11478
11479 Netease NOS
11480 For Netease NOS configure as per the configurator rclone config setting
11481 the provider Netease. This will automatically set force_path_style =
11482 false which is necessary for it to run properly.
11483
11484 Backblaze B2
11485 B2 is Backblaze’s cloud storage system (https://www.backblaze.com/b2/).
11486
11487 Paths are specified as remote:bucket (or remote: for the lsd command.)
11488 You may put subdirectories in too, eg remote:bucket/path/to/dir.
11489
11490 Here is an example of making a b2 configuration. First run
11491
11492 rclone config
11493
11494 This will guide you through an interactive setup process. To authenti‐
11495 cate you will either need your Account ID (a short hex number) and Mas‐
11496 ter Application Key (a long hex number) OR an Application Key, which is
11497 the recommended method. See below for further details on generating
11498 and using an Application Key.
11499
11500 No remotes found - make a new one
11501 n) New remote
11502 q) Quit config
11503 n/q> n
11504 name> remote
11505 Type of storage to configure.
11506 Choose a number from below, or type in your own value
11507 [snip]
11508 XX / Backblaze B2
11509 \ "b2"
11510 [snip]
11511 Storage> b2
11512 Account ID or Application Key ID
11513 account> 123456789abc
11514 Application Key
11515 key> 0123456789abcdef0123456789abcdef0123456789
11516 Endpoint for the service - leave blank normally.
11517 endpoint>
11518 Remote config
11519 --------------------
11520 [remote]
11521 account = 123456789abc
11522 key = 0123456789abcdef0123456789abcdef0123456789
11523 endpoint =
11524 --------------------
11525 y) Yes this is OK
11526 e) Edit this remote
11527 d) Delete this remote
11528 y/e/d> y
11529
11530 This remote is called remote and can now be used like this
11531
11532 See all buckets
11533
11534 rclone lsd remote:
11535
11536 Create a new bucket
11537
11538 rclone mkdir remote:bucket
11539
11540 List the contents of a bucket
11541
11542 rclone ls remote:bucket
11543
11544 Sync /home/local/directory to the remote bucket, deleting any excess
11545 files in the bucket.
11546
11547 rclone sync /home/local/directory remote:bucket
11548
11549 Application Keys
11550 B2 supports multiple Application Keys for different access permission
11551 to B2 Buckets (https://www.backblaze.com/b2/docs/applica‐
11552 tion_keys.html).
11553
11554 You can use these with rclone too; you will need to use rclone version
11555 1.43 or later.
11556
11557 Follow Backblaze’s docs to create an Application Key with the required
11558 permission and add the applicationKeyId as the account and the Applica‐
11559 tion Key itself as the key.
11560
11561 Note that you must put the applicationKeyId as the account – you can’t
11562 use the master Account ID. If you try then B2 will return 401 errors.
11563
11564 –fast-list
11565 This remote supports --fast-list which allows you to use fewer transac‐
11566 tions in exchange for more memory. See the rclone docs (/docs/#fast-
11567 list) for more details.
11568
11569 Modified time
11570 The modified time is stored as metadata on the object as X-Bz-In‐
11571 fo-src_last_modified_millis as milliseconds since 1970-01-01 in the
11572 Backblaze standard. Other tools should be able to use this as a modi‐
11573 fied time.
11574
11575 Modified times are used in syncing and are fully supported. Note that
11576 if a modification time needs to be updated on an object then it will
11577 create a new version of the object.
11578
11579 Restricted filename characters
11580 In addition to the default restricted characters set (/overview/#re‐
11581 stricted-characters) the following characters are also replaced:
11582
11583 Character Value Replacement
11584 ────────────────────────────────
11585 \ 0x5C \
11586
11587 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
11588 they can’t be used in JSON strings.
11589
11590 SHA1 checksums
11591 The SHA1 checksums of the files are checked on upload and download and
11592 will be used in the syncing process.
11593
11594 Large files (bigger than the limit in --b2-upload-cutoff) which are up‐
11595 loaded in chunks will store their SHA1 on the object as X-Bz-In‐
11596 fo-large_file_sha1 as recommended by Backblaze.
11597
11598 For a large file to be uploaded with an SHA1 checksum, the source needs
11599 to support SHA1 checksums. The local disk supports SHA1 checksums so
11600 large file transfers from local disk will have an SHA1. See the over‐
11601 view (/overview/#features) for exactly which remotes support SHA1.
11602
11603 Sources which don’t support SHA1, in particular crypt will upload large
11604 files without SHA1 checksums. This may be fixed in the future (see
11605 #1767 (https://github.com/rclone/rclone/issues/1767)).
11606
11607 Files sizes below --b2-upload-cutoff will always have an SHA1 regard‐
11608 less of the source.
11609
11610 Transfers
11611 Backblaze recommends that you do lots of transfers simultaneously for
11612 maximum speed. In tests from my SSD equipped laptop the optimum set‐
11613 ting is about --transfers 32 though higher numbers may be used for a
11614 slight speed improvement. The optimum number for you may vary depend‐
11615 ing on your hardware, how big the files are, how much you want to load
11616 your computer, etc. The default of --transfers 4 is definitely too low
11617 for Backblaze B2 though.
11618
11619 Note that uploading big files (bigger than 200 MB by default) will use
11620 a 96 MB RAM buffer by default. There can be at most --transfers of
11621 these in use at any moment, so this sets the upper limit on the memory
11622 used.
11623
11624 Versions
11625 When rclone uploads a new version of a file it creates a new version of
11626 it (https://www.backblaze.com/b2/docs/file_versions.html). Likewise
11627 when you delete a file, the old version will be marked hidden and still
11628 be available. Conversely, you may opt in to a “hard delete” of files
11629 with the --b2-hard-delete flag which would permanently remove the file
11630 instead of hiding it.
11631
11632 Old versions of files, where available, are visible using the --b2-ver‐
11633 sions flag.
11634
11635 NB Note that --b2-versions does not work with crypt at the moment #1627
11636 (https://github.com/rclone/rclone/issues/1627). Using –backup-dir
11637 (/docs/#backup-dir-dir) with rclone is the recommended way of working
11638 around this.
11639
11640 If you wish to remove all the old versions then you can use the rclone
11641 cleanup remote:bucket command which will delete all the old versions of
11642 files, leaving the current ones intact. You can also supply a path and
11643 only old versions under that path will be deleted, eg rclone cleanup
11644 remote:bucket/path/to/stuff.
11645
11646 Note that cleanup will remove partially uploaded files from the bucket
11647 if they are more than a day old.
11648
11649 When you purge a bucket, the current and the old versions will be
11650 deleted then the bucket will be deleted.
11651
11652 However delete will cause the current versions of the files to become
11653 hidden old versions.
11654
11655 Here is a session showing the listing and retrieval of an old version
11656 followed by a cleanup of the old versions.
11657
11658 Show current version and all the versions with --b2-versions flag.
11659
11660 $ rclone -q ls b2:cleanup-test
11661 9 one.txt
11662
11663 $ rclone -q --b2-versions ls b2:cleanup-test
11664 9 one.txt
11665 8 one-v2016-07-04-141032-000.txt
11666 16 one-v2016-07-04-141003-000.txt
11667 15 one-v2016-07-02-155621-000.txt
11668
11669 Retrieve an old version
11670
11671 $ rclone -q --b2-versions copy b2:cleanup-test/one-v2016-07-04-141003-000.txt /tmp
11672
11673 $ ls -l /tmp/one-v2016-07-04-141003-000.txt
11674 -rw-rw-r-- 1 ncw ncw 16 Jul 2 17:46 /tmp/one-v2016-07-04-141003-000.txt
11675
11676 Clean up all the old versions and show that they’ve gone.
11677
11678 $ rclone -q cleanup b2:cleanup-test
11679
11680 $ rclone -q ls b2:cleanup-test
11681 9 one.txt
11682
11683 $ rclone -q --b2-versions ls b2:cleanup-test
11684 9 one.txt
11685
11686 Data usage
11687 It is useful to know how many requests are sent to the server in dif‐
11688 ferent scenarios.
11689
11690 All copy commands send the following 4 requests:
11691
11692 /b2api/v1/b2_authorize_account
11693 /b2api/v1/b2_create_bucket
11694 /b2api/v1/b2_list_buckets
11695 /b2api/v1/b2_list_file_names
11696
11697 The b2_list_file_names request will be sent once for every 1k files in
11698 the remote path, providing the checksum and modification time of the
11699 listed files. As of version 1.33 issue #818
11700 (https://github.com/rclone/rclone/issues/818) causes extra requests to
11701 be sent when using B2 with Crypt. When a copy operation does not re‐
11702 quire any files to be uploaded, no more requests will be sent.
11703
11704 Uploading files that do not require chunking, will send 2 requests per
11705 file upload:
11706
11707 /b2api/v1/b2_get_upload_url
11708 /b2api/v1/b2_upload_file/
11709
11710 Uploading files requiring chunking, will send 2 requests (one each to
11711 start and finish the upload) and another 2 requests for each chunk:
11712
11713 /b2api/v1/b2_start_large_file
11714 /b2api/v1/b2_get_upload_part_url
11715 /b2api/v1/b2_upload_part/
11716 /b2api/v1/b2_finish_large_file
11717
11718 Versions
11719 Versions can be viewed with the --b2-versions flag. When it is set
11720 rclone will show and act on older versions of files. For example
11721
11722 Listing without --b2-versions
11723
11724 $ rclone -q ls b2:cleanup-test
11725 9 one.txt
11726
11727 And with
11728
11729 $ rclone -q --b2-versions ls b2:cleanup-test
11730 9 one.txt
11731 8 one-v2016-07-04-141032-000.txt
11732 16 one-v2016-07-04-141003-000.txt
11733 15 one-v2016-07-02-155621-000.txt
11734
11735 Showing that the current version is unchanged but older versions can be
11736 seen. These have the UTC date that they were uploaded to the server to
11737 the nearest millisecond appended to them.
11738
11739 Note that when using --b2-versions no file write operations are permit‐
11740 ted, so you can’t upload files or delete them.
11741
11742 B2 and rclone link
11743 Rclone supports generating file share links for private B2 buckets.
11744 They can either be for a file for example:
11745
11746 ./rclone link B2:bucket/path/to/file.txt
11747 https://f002.backblazeb2.com/file/bucket/path/to/file.txt?Authorization=xxxxxxxx
11748
11749 or if run on a directory you will get:
11750
11751 ./rclone link B2:bucket/path
11752 https://f002.backblazeb2.com/file/bucket/path?Authorization=xxxxxxxx
11753
11754 you can then use the authorization token (the part of the url from the
11755 ?Authorization= on) on any file path under that directory. For exam‐
11756 ple:
11757
11758 https://f002.backblazeb2.com/file/bucket/path/to/file1?Authorization=xxxxxxxx
11759 https://f002.backblazeb2.com/file/bucket/path/file2?Authorization=xxxxxxxx
11760 https://f002.backblazeb2.com/file/bucket/path/folder/file3?Authorization=xxxxxxxx
11761
11762 Standard Options
11763 Here are the standard options specific to b2 (Backblaze B2).
11764
11765 –b2-account
11766 Account ID or Application Key ID
11767
11768 · Config: account
11769
11770 · Env Var: RCLONE_B2_ACCOUNT
11771
11772 · Type: string
11773
11774 · Default: ""
11775
11776 –b2-key
11777 Application Key
11778
11779 · Config: key
11780
11781 · Env Var: RCLONE_B2_KEY
11782
11783 · Type: string
11784
11785 · Default: ""
11786
11787 –b2-hard-delete
11788 Permanently delete files on remote removal, otherwise hide files.
11789
11790 · Config: hard_delete
11791
11792 · Env Var: RCLONE_B2_HARD_DELETE
11793
11794 · Type: bool
11795
11796 · Default: false
11797
11798 Advanced Options
11799 Here are the advanced options specific to b2 (Backblaze B2).
11800
11801 –b2-endpoint
11802 Endpoint for the service. Leave blank normally.
11803
11804 · Config: endpoint
11805
11806 · Env Var: RCLONE_B2_ENDPOINT
11807
11808 · Type: string
11809
11810 · Default: ""
11811
11812 –b2-test-mode
11813 A flag string for X-Bz-Test-Mode header for debugging.
11814
11815 This is for debugging purposes only. Setting it to one of the strings
11816 below will cause b2 to return specific errors:
11817
11818 · “fail_some_uploads”
11819
11820 · “expire_some_account_authorization_tokens”
11821
11822 · “force_cap_exceeded”
11823
11824 These will be set in the “X-Bz-Test-Mode” header which is documented in
11825 the b2 integrations checklist (https://www.backblaze.com/b2/docs/inte‐
11826 gration_checklist.html).
11827
11828 · Config: test_mode
11829
11830 · Env Var: RCLONE_B2_TEST_MODE
11831
11832 · Type: string
11833
11834 · Default: ""
11835
11836 –b2-versions
11837 Include old versions in directory listings. Note that when using this
11838 no file write operations are permitted, so you can’t upload files or
11839 delete them.
11840
11841 · Config: versions
11842
11843 · Env Var: RCLONE_B2_VERSIONS
11844
11845 · Type: bool
11846
11847 · Default: false
11848
11849 –b2-upload-cutoff
11850 Cutoff for switching to chunked upload.
11851
11852 Files above this size will be uploaded in chunks of “–b2-chunk-size”.
11853
11854 This value should be set no larger than 4.657GiB (== 5GB).
11855
11856 · Config: upload_cutoff
11857
11858 · Env Var: RCLONE_B2_UPLOAD_CUTOFF
11859
11860 · Type: SizeSuffix
11861
11862 · Default: 200M
11863
11864 –b2-chunk-size
11865 Upload chunk size. Must fit in memory.
11866
11867 When uploading large files, chunk the file into this size. Note that
11868 these chunks are buffered in memory and there might a maximum of
11869 “–transfers” chunks in progress at once. 5,000,000 Bytes is the mini‐
11870 mum size.
11871
11872 · Config: chunk_size
11873
11874 · Env Var: RCLONE_B2_CHUNK_SIZE
11875
11876 · Type: SizeSuffix
11877
11878 · Default: 96M
11879
11880 –b2-disable-checksum
11881 Disable checksums for large (> upload cutoff) files
11882
11883 · Config: disable_checksum
11884
11885 · Env Var: RCLONE_B2_DISABLE_CHECKSUM
11886
11887 · Type: bool
11888
11889 · Default: false
11890
11891 –b2-download-url
11892 Custom endpoint for downloads.
11893
11894 This is usually set to a Cloudflare CDN URL as Backblaze offers free
11895 egress for data downloaded through the Cloudflare network. This is
11896 probably only useful for a public bucket. Leave blank if you want to
11897 use the endpoint provided by Backblaze.
11898
11899 · Config: download_url
11900
11901 · Env Var: RCLONE_B2_DOWNLOAD_URL
11902
11903 · Type: string
11904
11905 · Default: ""
11906
11907 –b2-download-auth-duration
11908 Time before the authorization token will expire in s or suffix
11909 ms|s|m|h|d.
11910
11911 The duration before the download authorization token will expire. The
11912 minimum value is 1 second. The maximum value is one week.
11913
11914 · Config: download_auth_duration
11915
11916 · Env Var: RCLONE_B2_DOWNLOAD_AUTH_DURATION
11917
11918 · Type: Duration
11919
11920 · Default: 1w
11921
11922 –b2-encoding
11923 This sets the encoding for the backend.
11924
11925 See: the encoding section in the overview (/overview/#encoding) for
11926 more info.
11927
11928 · Config: encoding
11929
11930 · Env Var: RCLONE_B2_ENCODING
11931
11932 · Type: MultiEncoder
11933
11934 · Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
11935
11936 Box
11937 Paths are specified as remote:path
11938
11939 Paths may be as deep as required, eg remote:directory/subdirectory.
11940
11941 The initial setup for Box involves getting a token from Box which you
11942 can do either in your browser, or with a config.json downloaded from
11943 Box to use JWT authentication. rclone config walks you through it.
11944
11945 Here is an example of how to make a remote called remote. First run:
11946
11947 rclone config
11948
11949 This will guide you through an interactive setup process:
11950
11951 No remotes found - make a new one
11952 n) New remote
11953 s) Set configuration password
11954 q) Quit config
11955 n/s/q> n
11956 name> remote
11957 Type of storage to configure.
11958 Choose a number from below, or type in your own value
11959 [snip]
11960 XX / Box
11961 \ "box"
11962 [snip]
11963 Storage> box
11964 Box App Client Id - leave blank normally.
11965 client_id>
11966 Box App Client Secret - leave blank normally.
11967 client_secret>
11968 Box App config.json location
11969 Leave blank normally.
11970 Enter a string value. Press Enter for the default ("").
11971 config_json>
11972 'enterprise' or 'user' depending on the type of token being requested.
11973 Enter a string value. Press Enter for the default ("user").
11974 box_sub_type>
11975 Remote config
11976 Use auto config?
11977 * Say Y if not sure
11978 * Say N if you are working on a remote or headless machine
11979 y) Yes
11980 n) No
11981 y/n> y
11982 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
11983 Log in and authorize rclone for access
11984 Waiting for code...
11985 Got code
11986 --------------------
11987 [remote]
11988 client_id =
11989 client_secret =
11990 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"XXX"}
11991 --------------------
11992 y) Yes this is OK
11993 e) Edit this remote
11994 d) Delete this remote
11995 y/e/d> y
11996
11997 See the remote setup docs (https://rclone.org/remote_setup/) for how to
11998 set it up on a machine with no Internet browser available.
11999
12000 Note that rclone runs a webserver on your local machine to collect the
12001 token as returned from Box. This only runs from the moment it opens
12002 your browser to the moment you get back the verification code. This is
12003 on http://127.0.0.1:53682/ and this it may require you to unblock it
12004 temporarily if you are running a host firewall.
12005
12006 Once configured you can then use rclone like this,
12007
12008 List directories in top level of your Box
12009
12010 rclone lsd remote:
12011
12012 List all the files in your Box
12013
12014 rclone ls remote:
12015
12016 To copy a local directory to an Box directory called backup
12017
12018 rclone copy /home/source remote:backup
12019
12020 Using rclone with an Enterprise account with SSO
12021 If you have an “Enterprise” account type with Box with single sign on
12022 (SSO), you need to create a password to use Box with rclone. This can
12023 be done at your Enterprise Box account by going to Settings, “Account”
12024 Tab, and then set the password in the “Authentication” field.
12025
12026 Once you have done this, you can setup your Enterprise Box account us‐
12027 ing the same procedure detailed above in the, using the password you
12028 have just set.
12029
12030 Invalid refresh token
12031 According to the box docs (https://develop‐
12032 er.box.com/v2.0/docs/oauth-20#section-6-using-the-access-and-refresh-
12033 tokens):
12034
12035 Each refresh_token is valid for one use in 60 days.
12036
12037 This means that if you
12038
12039 · Don’t use the box remote for 60 days
12040
12041 · Copy the config file with a box refresh token in and use it in two
12042 places
12043
12044 · Get an error on a token refresh
12045
12046 then rclone will return an error which includes the text Invalid re‐
12047 fresh token.
12048
12049 To fix this you will need to use oauth2 again to update the refresh to‐
12050 ken. You can use the methods in the remote setup docs
12051 (https://rclone.org/remote_setup/), bearing in mind that if you use the
12052 copy the config file method, you should not use that remote on the com‐
12053 puter you did the authentication on.
12054
12055 Here is how to do it.
12056
12057 $ rclone config
12058 Current remotes:
12059
12060 Name Type
12061 ==== ====
12062 remote box
12063
12064 e) Edit existing remote
12065 n) New remote
12066 d) Delete remote
12067 r) Rename remote
12068 c) Copy remote
12069 s) Set configuration password
12070 q) Quit config
12071 e/n/d/r/c/s/q> e
12072 Choose a number from below, or type in an existing value
12073 1 > remote
12074 remote> remote
12075 --------------------
12076 [remote]
12077 type = box
12078 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"2017-07-08T23:40:08.059167677+01:00"}
12079 --------------------
12080 Edit remote
12081 Value "client_id" = ""
12082 Edit? (y/n)>
12083 y) Yes
12084 n) No
12085 y/n> n
12086 Value "client_secret" = ""
12087 Edit? (y/n)>
12088 y) Yes
12089 n) No
12090 y/n> n
12091 Remote config
12092 Already have a token - refresh?
12093 y) Yes
12094 n) No
12095 y/n> y
12096 Use auto config?
12097 * Say Y if not sure
12098 * Say N if you are working on a remote or headless machine
12099 y) Yes
12100 n) No
12101 y/n> y
12102 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
12103 Log in and authorize rclone for access
12104 Waiting for code...
12105 Got code
12106 --------------------
12107 [remote]
12108 type = box
12109 token = {"access_token":"YYY","token_type":"bearer","refresh_token":"YYY","expiry":"2017-07-23T12:22:29.259137901+01:00"}
12110 --------------------
12111 y) Yes this is OK
12112 e) Edit this remote
12113 d) Delete this remote
12114 y/e/d> y
12115
12116 Modified time and hashes
12117 Box allows modification times to be set on objects accurate to 1 sec‐
12118 ond. These will be used to detect whether objects need syncing or not.
12119
12120 Box supports SHA1 type hashes, so you can use the --checksum flag.
12121
12122 Restricted filename characters
12123 In addition to the default restricted characters set (/overview/#re‐
12124 stricted-characters) the following characters are also replaced:
12125
12126 Character Value Replacement
12127 ────────────────────────────────
12128 \ 0x5C \
12129
12130 File names can also not end with the following characters. These only
12131 get replaced if they are last character in the name:
12132
12133 Character Value Replacement
12134 ────────────────────────────────
12135 SP 0x20 ␠
12136
12137 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
12138 they can’t be used in JSON strings.
12139
12140 Transfers
12141 For files above 50MB rclone will use a chunked transfer. Rclone will
12142 upload up to --transfers chunks at the same time (shared among all the
12143 multipart uploads). Chunks are buffered in memory and are normally 8MB
12144 so increasing --transfers will increase memory use.
12145
12146 Deleting files
12147 Depending on the enterprise settings for your user, the item will ei‐
12148 ther be actually deleted from Box or moved to the trash.
12149
12150 Standard Options
12151 Here are the standard options specific to box (Box).
12152
12153 –box-client-id
12154 Box App Client Id. Leave blank normally.
12155
12156 · Config: client_id
12157
12158 · Env Var: RCLONE_BOX_CLIENT_ID
12159
12160 · Type: string
12161
12162 · Default: ""
12163
12164 –box-client-secret
12165 Box App Client Secret Leave blank normally.
12166
12167 · Config: client_secret
12168
12169 · Env Var: RCLONE_BOX_CLIENT_SECRET
12170
12171 · Type: string
12172
12173 · Default: ""
12174
12175 –box-box-config-file
12176 Box App config.json location Leave blank normally.
12177
12178 · Config: box_config_file
12179
12180 · Env Var: RCLONE_BOX_BOX_CONFIG_FILE
12181
12182 · Type: string
12183
12184 · Default: ""
12185
12186 –box-box-sub-type
12187 · Config: box_sub_type
12188
12189 · Env Var: RCLONE_BOX_BOX_SUB_TYPE
12190
12191 · Type: string
12192
12193 · Default: “user”
12194
12195 · Examples:
12196
12197 · “user”
12198
12199 · Rclone should act on behalf of a user
12200
12201 · “enterprise”
12202
12203 · Rclone should act on behalf of a service account
12204
12205 Advanced Options
12206 Here are the advanced options specific to box (Box).
12207
12208 –box-upload-cutoff
12209 Cutoff for switching to multipart upload (>= 50MB).
12210
12211 · Config: upload_cutoff
12212
12213 · Env Var: RCLONE_BOX_UPLOAD_CUTOFF
12214
12215 · Type: SizeSuffix
12216
12217 · Default: 50M
12218
12219 –box-commit-retries
12220 Max number of times to try committing a multipart file.
12221
12222 · Config: commit_retries
12223
12224 · Env Var: RCLONE_BOX_COMMIT_RETRIES
12225
12226 · Type: int
12227
12228 · Default: 100
12229
12230 –box-encoding
12231 This sets the encoding for the backend.
12232
12233 See: the encoding section in the overview (/overview/#encoding) for
12234 more info.
12235
12236 · Config: encoding
12237
12238 · Env Var: RCLONE_BOX_ENCODING
12239
12240 · Type: MultiEncoder
12241
12242 · Default: Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot
12243
12244 Limitations
12245 Note that Box is case insensitive so you can’t have a file called “Hel‐
12246 lo.doc” and one called “hello.doc”.
12247
12248 Box file names can’t have the \ character in. rclone maps this to and
12249 from an identical looking unicode equivalent \.
12250
12251 Box only supports filenames up to 255 characters in length.
12252
12253 Cache (BETA)
12254 The cache remote wraps another existing remote and stores file struc‐
12255 ture and its data for long running tasks like rclone mount.
12256
12257 To get started you just need to have an existing remote which can be
12258 configured with cache.
12259
12260 Here is an example of how to make a remote called test-cache. First
12261 run:
12262
12263 rclone config
12264
12265 This will guide you through an interactive setup process:
12266
12267 No remotes found - make a new one
12268 n) New remote
12269 r) Rename remote
12270 c) Copy remote
12271 s) Set configuration password
12272 q) Quit config
12273 n/r/c/s/q> n
12274 name> test-cache
12275 Type of storage to configure.
12276 Choose a number from below, or type in your own value
12277 [snip]
12278 XX / Cache a remote
12279 \ "cache"
12280 [snip]
12281 Storage> cache
12282 Remote to cache.
12283 Normally should contain a ':' and a path, eg "myremote:path/to/dir",
12284 "myremote:bucket" or maybe "myremote:" (not recommended).
12285 remote> local:/test
12286 Optional: The URL of the Plex server
12287 plex_url> http://127.0.0.1:32400
12288 Optional: The username of the Plex user
12289 plex_username> dummyusername
12290 Optional: The password of the Plex user
12291 y) Yes type in my own password
12292 g) Generate random password
12293 n) No leave this optional password blank
12294 y/g/n> y
12295 Enter the password:
12296 password:
12297 Confirm the password:
12298 password:
12299 The size of a chunk. Lower value good for slow connections but can affect seamless reading.
12300 Default: 5M
12301 Choose a number from below, or type in your own value
12302 1 / 1MB
12303 \ "1m"
12304 2 / 5 MB
12305 \ "5M"
12306 3 / 10 MB
12307 \ "10M"
12308 chunk_size> 2
12309 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.
12310 Accepted units are: "s", "m", "h".
12311 Default: 5m
12312 Choose a number from below, or type in your own value
12313 1 / 1 hour
12314 \ "1h"
12315 2 / 24 hours
12316 \ "24h"
12317 3 / 24 hours
12318 \ "48h"
12319 info_age> 2
12320 The maximum size of stored chunks. When the storage grows beyond this size, the oldest chunks will be deleted.
12321 Default: 10G
12322 Choose a number from below, or type in your own value
12323 1 / 500 MB
12324 \ "500M"
12325 2 / 1 GB
12326 \ "1G"
12327 3 / 10 GB
12328 \ "10G"
12329 chunk_total_size> 3
12330 Remote config
12331 --------------------
12332 [test-cache]
12333 remote = local:/test
12334 plex_url = http://127.0.0.1:32400
12335 plex_username = dummyusername
12336 plex_password = *** ENCRYPTED ***
12337 chunk_size = 5M
12338 info_age = 48h
12339 chunk_total_size = 10G
12340
12341 You can then use it like this,
12342
12343 List directories in top level of your drive
12344
12345 rclone lsd test-cache:
12346
12347 List all the files in your drive
12348
12349 rclone ls test-cache:
12350
12351 To start a cached mount
12352
12353 rclone mount --allow-other test-cache: /var/tmp/test-cache
12354
12355 Write Features
12356 Offline uploading
12357 In an effort to make writing through cache more reliable, the backend
12358 now supports this feature which can be activated by specifying a
12359 cache-tmp-upload-path.
12360
12361 A files goes through these states when using this feature:
12362
12363 1. An upload is started (usually by copying a file on the cache remote)
12364
12365 2. When the copy to the temporary location is complete the file is part
12366 of the cached remote and looks and behaves like any other file
12367 (reading included)
12368
12369 3. After cache-tmp-wait-time passes and the file is next in line,
12370 rclone move is used to move the file to the cloud provider
12371
12372 4. Reading the file still works during the upload but most modifica‐
12373 tions on it will be prohibited
12374
12375 5. Once the move is complete the file is unlocked for modifications as
12376 it becomes as any other regular file
12377
12378 6. If the file is being read through cache when it’s actually deleted
12379 from the temporary path then cache will simply swap the source to
12380 the cloud provider without interrupting the reading (small blip can
12381 happen though)
12382
12383 Files are uploaded in sequence and only one file is uploaded at a time.
12384 Uploads will be stored in a queue and be processed based on the order
12385 they were added. The queue and the temporary storage is persistent
12386 across restarts but can be cleared on startup with the --cache-db-purge
12387 flag.
12388
12389 Write Support
12390 Writes are supported through cache. One caveat is that a mounted cache
12391 remote does not add any retry or fallback mechanism to the upload oper‐
12392 ation. This will depend on the implementation of the wrapped remote.
12393 Consider using Offline uploading for reliable writes.
12394
12395 One special case is covered with cache-writes which will cache the file
12396 data at the same time as the upload when it is enabled making it avail‐
12397 able from the cache store immediately once the upload is finished.
12398
12399 Read Features
12400 Multiple connections
12401 To counter the high latency between a local PC where rclone is running
12402 and cloud providers, the cache remote can split multiple requests to
12403 the cloud provider for smaller file chunks and combines them together
12404 locally where they can be available almost immediately before the read‐
12405 er usually needs them.
12406
12407 This is similar to buffering when media files are played online.
12408 Rclone will stay around the current marker but always try its best to
12409 stay ahead and prepare the data before.
12410
12411 Plex Integration
12412 There is a direct integration with Plex which allows cache to detect
12413 during reading if the file is in playback or not. This helps cache to
12414 adapt how it queries the cloud provider depending on what is needed
12415 for.
12416
12417 Scans will have a minimum amount of workers (1) while in a confirmed
12418 playback cache will deploy the configured number of workers.
12419
12420 This integration opens the doorway to additional performance improve‐
12421 ments which will be explored in the near future.
12422
12423 Note: If Plex options are not configured, cache will function with its
12424 configured options without adapting any of its settings.
12425
12426 How to enable? Run rclone config and add all the Plex options (end‐
12427 point, username and password) in your remote and it will be automati‐
12428 cally enabled.
12429
12430 Affected settings: - cache-workers: Configured value during confirmed
12431 playback or 1 all the other times
12432
12433 Certificate Validation
12434 When the Plex server is configured to only accept secure connections,
12435 it is possible to use .plex.direct URL’s to ensure certificate valida‐
12436 tion succeeds. These URL’s are used by Plex internally to connect to
12437 the Plex server securely.
12438
12439 The format for this URL’s is the following:
12440
12441 https://ip-with-dots-replaced.server-hash.plex.direct:32400/
12442
12443 The ip-with-dots-replaced part can be any IPv4 address, where the dots
12444 have been replaced with dashes, e.g. 127.0.0.1 becomes 127-0-0-1.
12445
12446 To get the server-hash part, the easiest way is to visit
12447
12448 https://plex.tv/api/resources?includeHttps=1&X-Plex-Token=your-plex-to‐
12449 ken
12450
12451 This page will list all the available Plex servers for your account
12452 with at least one .plex.direct link for each. Copy one URL and replace
12453 the IP address with the desired address. This can be used as the
12454 plex_url value.
12455
12456 Known issues
12457 Mount and –dir-cache-time
12458 –dir-cache-time controls the first layer of directory caching which
12459 works at the mount layer. Being an independent caching mechanism from
12460 the cache backend, it will manage its own entries based on the config‐
12461 ured time.
12462
12463 To avoid getting in a scenario where dir cache has obsolete data and
12464 cache would have the correct one, try to set --dir-cache-time to a low‐
12465 er time than --cache-info-age. Default values are already configured
12466 in this way.
12467
12468 Windows support - Experimental
12469 There are a couple of issues with Windows mount functionality that
12470 still require some investigations. It should be considered as experi‐
12471 mental thus far as fixes come in for this OS.
12472
12473 Most of the issues seem to be related to the difference between
12474 filesystems on Linux flavors and Windows as cache is heavily dependant
12475 on them.
12476
12477 Any reports or feedback on how cache behaves on this OS is greatly ap‐
12478 preciated.
12479
12480 · https://github.com/rclone/rclone/issues/1935
12481
12482 · https://github.com/rclone/rclone/issues/1907
12483
12484 · https://github.com/rclone/rclone/issues/1834
12485
12486 Risk of throttling
12487 Future iterations of the cache backend will make use of the pooling
12488 functionality of the cloud provider to synchronize and at the same time
12489 make writing through it more tolerant to failures.
12490
12491 There are a couple of enhancements in track to add these but in the
12492 meantime there is a valid concern that the expiring cache listings can
12493 lead to cloud provider throttles or bans due to repeated queries on it
12494 for very large mounts.
12495
12496 Some recommendations: - don’t use a very small interval for entry in‐
12497 formations (--cache-info-age) - while writes aren’t yet optimised, you
12498 can still write through cache which gives you the advantage of adding
12499 the file in the cache at the same time if configured to do so.
12500
12501 Future enhancements:
12502
12503 · https://github.com/rclone/rclone/issues/1937
12504
12505 · https://github.com/rclone/rclone/issues/1936
12506
12507 cache and crypt
12508 One common scenario is to keep your data encrypted in the cloud
12509 provider using the crypt remote. crypt uses a similar technique to
12510 wrap around an existing remote and handles this translation in a seam‐
12511 less way.
12512
12513 There is an issue with wrapping the remotes in this order: cloud remote
12514 -> crypt -> cache
12515
12516 During testing, I experienced a lot of bans with the remotes in this
12517 order. I suspect it might be related to how crypt opens files on the
12518 cloud provider which makes it think we’re downloading the full file in‐
12519 stead of small chunks. Organizing the remotes in this order yields
12520 better results: cloud remote -> cache -> crypt
12521
12522 absolute remote paths
12523 cache can not differentiate between relative and absolute paths for the
12524 wrapped remote. Any path given in the remote config setting and on the
12525 command line will be passed to the wrapped remote as is, but for stor‐
12526 ing the chunks on disk the path will be made relative by removing any
12527 leading / character.
12528
12529 This behavior is irrelevant for most backend types, but there are back‐
12530 ends where a leading / changes the effective directory, e.g. in the
12531 sftp backend paths starting with a / are relative to the root of the
12532 SSH server and paths without are relative to the user home directory.
12533 As a result sftp:bin and sftp:/bin will share the same cache folder,
12534 even if they represent a different directory on the SSH server.
12535
12536 Cache and Remote Control (–rc)
12537 Cache supports the new --rc mode in rclone and can be remote controlled
12538 through the following end points: By default, the listener is disabled
12539 if you do not add the flag.
12540
12541 rc cache/expire
12542 Purge a remote from the cache backend. Supports either a directory or
12543 a file. It supports both encrypted and unencrypted file names if cache
12544 is wrapped by crypt.
12545
12546 Params: - remote = path to remote (required) - withData = true/false to
12547 delete cached data (chunks) as well (optional, false by default)
12548
12549 Standard Options
12550 Here are the standard options specific to cache (Cache a remote).
12551
12552 –cache-remote
12553 Remote to cache. Normally should contain a `:' and a path, eg “myre‐
12554 mote:path/to/dir”, “myremote:bucket” or maybe “myremote:” (not recom‐
12555 mended).
12556
12557 · Config: remote
12558
12559 · Env Var: RCLONE_CACHE_REMOTE
12560
12561 · Type: string
12562
12563 · Default: ""
12564
12565 –cache-plex-url
12566 The URL of the Plex server
12567
12568 · Config: plex_url
12569
12570 · Env Var: RCLONE_CACHE_PLEX_URL
12571
12572 · Type: string
12573
12574 · Default: ""
12575
12576 –cache-plex-username
12577 The username of the Plex user
12578
12579 · Config: plex_username
12580
12581 · Env Var: RCLONE_CACHE_PLEX_USERNAME
12582
12583 · Type: string
12584
12585 · Default: ""
12586
12587 –cache-plex-password
12588 The password of the Plex user
12589
12590 · Config: plex_password
12591
12592 · Env Var: RCLONE_CACHE_PLEX_PASSWORD
12593
12594 · Type: string
12595
12596 · Default: ""
12597
12598 –cache-chunk-size
12599 The size of a chunk (partial file data).
12600
12601 Use lower numbers for slower connections. If the chunk size is
12602 changed, any downloaded chunks will be invalid and cache-chunk-path
12603 will need to be cleared or unexpected EOF errors will occur.
12604
12605 · Config: chunk_size
12606
12607 · Env Var: RCLONE_CACHE_CHUNK_SIZE
12608
12609 · Type: SizeSuffix
12610
12611 · Default: 5M
12612
12613 · Examples:
12614
12615 · “1m”
12616
12617 · 1MB
12618
12619 · “5M”
12620
12621 · 5 MB
12622
12623 · “10M”
12624
12625 · 10 MB
12626
12627 –cache-info-age
12628 How long to cache file structure information (directory listings, file
12629 size, times etc). If all write operations are done through the cache
12630 then you can safely make this value very large as the cache store will
12631 also be updated in real time.
12632
12633 · Config: info_age
12634
12635 · Env Var: RCLONE_CACHE_INFO_AGE
12636
12637 · Type: Duration
12638
12639 · Default: 6h0m0s
12640
12641 · Examples:
12642
12643 · “1h”
12644
12645 · 1 hour
12646
12647 · “24h”
12648
12649 · 24 hours
12650
12651 · “48h”
12652
12653 · 48 hours
12654
12655 –cache-chunk-total-size
12656 The total size that the chunks can take up on the local disk.
12657
12658 If the cache exceeds this value then it will start to delete the oldest
12659 chunks until it goes under this value.
12660
12661 · Config: chunk_total_size
12662
12663 · Env Var: RCLONE_CACHE_CHUNK_TOTAL_SIZE
12664
12665 · Type: SizeSuffix
12666
12667 · Default: 10G
12668
12669 · Examples:
12670
12671 · “500M”
12672
12673 · 500 MB
12674
12675 · “1G”
12676
12677 · 1 GB
12678
12679 · “10G”
12680
12681 · 10 GB
12682
12683 Advanced Options
12684 Here are the advanced options specific to cache (Cache a remote).
12685
12686 –cache-plex-token
12687 The plex token for authentication - auto set normally
12688
12689 · Config: plex_token
12690
12691 · Env Var: RCLONE_CACHE_PLEX_TOKEN
12692
12693 · Type: string
12694
12695 · Default: ""
12696
12697 –cache-plex-insecure
12698 Skip all certificate verifications when connecting to the Plex server
12699
12700 · Config: plex_insecure
12701
12702 · Env Var: RCLONE_CACHE_PLEX_INSECURE
12703
12704 · Type: string
12705
12706 · Default: ""
12707
12708 –cache-db-path
12709 Directory to store file structure metadata DB. The remote name is used
12710 as the DB file name.
12711
12712 · Config: db_path
12713
12714 · Env Var: RCLONE_CACHE_DB_PATH
12715
12716 · Type: string
12717
12718 · Default: “$HOME/.cache/rclone/cache-backend”
12719
12720 –cache-chunk-path
12721 Directory to cache chunk files.
12722
12723 Path to where partial file data (chunks) are stored locally. The re‐
12724 mote name is appended to the final path.
12725
12726 This config follows the “–cache-db-path”. If you specify a custom lo‐
12727 cation for “–cache-db-path” and don’t specify one for
12728 “–cache-chunk-path” then “–cache-chunk-path” will use the same path as
12729 “–cache-db-path”.
12730
12731 · Config: chunk_path
12732
12733 · Env Var: RCLONE_CACHE_CHUNK_PATH
12734
12735 · Type: string
12736
12737 · Default: “$HOME/.cache/rclone/cache-backend”
12738
12739 –cache-db-purge
12740 Clear all the cached data for this remote on start.
12741
12742 · Config: db_purge
12743
12744 · Env Var: RCLONE_CACHE_DB_PURGE
12745
12746 · Type: bool
12747
12748 · Default: false
12749
12750 –cache-chunk-clean-interval
12751 How often should the cache perform cleanups of the chunk storage. The
12752 default value should be ok for most people. If you find that the cache
12753 goes over “cache-chunk-total-size” too often then try to lower this
12754 value to force it to perform cleanups more often.
12755
12756 · Config: chunk_clean_interval
12757
12758 · Env Var: RCLONE_CACHE_CHUNK_CLEAN_INTERVAL
12759
12760 · Type: Duration
12761
12762 · Default: 1m0s
12763
12764 –cache-read-retries
12765 How many times to retry a read from a cache storage.
12766
12767 Since reading from a cache stream is independent from downloading file
12768 data, readers can get to a point where there’s no more data in the
12769 cache. Most of the times this can indicate a connectivity issue if
12770 cache isn’t able to provide file data anymore.
12771
12772 For really slow connections, increase this to a point where the stream
12773 is able to provide data but your experience will be very stuttering.
12774
12775 · Config: read_retries
12776
12777 · Env Var: RCLONE_CACHE_READ_RETRIES
12778
12779 · Type: int
12780
12781 · Default: 10
12782
12783 –cache-workers
12784 How many workers should run in parallel to download chunks.
12785
12786 Higher values will mean more parallel processing (better CPU needed)
12787 and more concurrent requests on the cloud provider. This impacts sev‐
12788 eral aspects like the cloud provider API limits, more stress on the
12789 hardware that rclone runs on but it also means that streams will be
12790 more fluid and data will be available much more faster to readers.
12791
12792 Note: If the optional Plex integration is enabled then this setting
12793 will adapt to the type of reading performed and the value specified
12794 here will be used as a maximum number of workers to use.
12795
12796 · Config: workers
12797
12798 · Env Var: RCLONE_CACHE_WORKERS
12799
12800 · Type: int
12801
12802 · Default: 4
12803
12804 –cache-chunk-no-memory
12805 Disable the in-memory cache for storing chunks during streaming.
12806
12807 By default, cache will keep file data during streaming in RAM as well
12808 to provide it to readers as fast as possible.
12809
12810 This transient data is evicted as soon as it is read and the number of
12811 chunks stored doesn’t exceed the number of workers. However, depending
12812 on other settings like “cache-chunk-size” and “cache-workers” this
12813 footprint can increase if there are parallel streams too (multiple
12814 files being read at the same time).
12815
12816 If the hardware permits it, use this feature to provide an overall bet‐
12817 ter performance during streaming but it can also be disabled if RAM is
12818 not available on the local machine.
12819
12820 · Config: chunk_no_memory
12821
12822 · Env Var: RCLONE_CACHE_CHUNK_NO_MEMORY
12823
12824 · Type: bool
12825
12826 · Default: false
12827
12828 –cache-rps
12829 Limits the number of requests per second to the source FS (-1 to dis‐
12830 able)
12831
12832 This setting places a hard limit on the number of requests per second
12833 that cache will be doing to the cloud provider remote and try to re‐
12834 spect that value by setting waits between reads.
12835
12836 If you find that you’re getting banned or limited on the cloud provider
12837 through cache and know that a smaller number of requests per second
12838 will allow you to work with it then you can use this setting for that.
12839
12840 A good balance of all the other settings should make this setting use‐
12841 less but it is available to set for more special cases.
12842
12843 NOTE: This will limit the number of requests during streams but other
12844 API calls to the cloud provider like directory listings will still
12845 pass.
12846
12847 · Config: rps
12848
12849 · Env Var: RCLONE_CACHE_RPS
12850
12851 · Type: int
12852
12853 · Default: -1
12854
12855 –cache-writes
12856 Cache file data on writes through the FS
12857
12858 If you need to read files immediately after you upload them through
12859 cache you can enable this flag to have their data stored in the cache
12860 store at the same time during upload.
12861
12862 · Config: writes
12863
12864 · Env Var: RCLONE_CACHE_WRITES
12865
12866 · Type: bool
12867
12868 · Default: false
12869
12870 –cache-tmp-upload-path
12871 Directory to keep temporary files until they are uploaded.
12872
12873 This is the path where cache will use as a temporary storage for new
12874 files that need to be uploaded to the cloud provider.
12875
12876 Specifying a value will enable this feature. Without it, it is com‐
12877 pletely disabled and files will be uploaded directly to the cloud
12878 provider
12879
12880 · Config: tmp_upload_path
12881
12882 · Env Var: RCLONE_CACHE_TMP_UPLOAD_PATH
12883
12884 · Type: string
12885
12886 · Default: ""
12887
12888 –cache-tmp-wait-time
12889 How long should files be stored in local cache before being uploaded
12890
12891 This is the duration that a file must wait in the temporary location
12892 cache-tmp-upload-path before it is selected for upload.
12893
12894 Note that only one file is uploaded at a time and it can take longer to
12895 start the upload if a queue formed for this purpose.
12896
12897 · Config: tmp_wait_time
12898
12899 · Env Var: RCLONE_CACHE_TMP_WAIT_TIME
12900
12901 · Type: Duration
12902
12903 · Default: 15s
12904
12905 –cache-db-wait-time
12906 How long to wait for the DB to be available - 0 is unlimited
12907
12908 Only one process can have the DB open at any one time, so rclone waits
12909 for this duration for the DB to become available before it gives an er‐
12910 ror.
12911
12912 If you set it to 0 then it will wait forever.
12913
12914 · Config: db_wait_time
12915
12916 · Env Var: RCLONE_CACHE_DB_WAIT_TIME
12917
12918 · Type: Duration
12919
12920 · Default: 1s
12921
12922 Chunker (BETA)
12923 The chunker overlay transparently splits large files into smaller
12924 chunks during upload to wrapped remote and transparently assembles them
12925 back when the file is downloaded. This allows to effectively overcome
12926 size limits imposed by storage providers.
12927
12928 To use it, first set up the underlying remote following the configura‐
12929 tion instructions for that remote. You can also use a local pathname
12930 instead of a remote.
12931
12932 First check your chosen remote is working - we’ll call it remote:path
12933 here. Note that anything inside remote:path will be chunked and any‐
12934 thing outside won’t. This means that if you are using a bucket based
12935 remote (eg S3, B2, swift) then you should probably put the bucket in
12936 the remote s3:bucket.
12937
12938 Now configure chunker using rclone config. We will call this one over‐
12939 lay to separate it from the remote itself.
12940
12941 No remotes found - make a new one
12942 n) New remote
12943 s) Set configuration password
12944 q) Quit config
12945 n/s/q> n
12946 name> overlay
12947 Type of storage to configure.
12948 Choose a number from below, or type in your own value
12949 [snip]
12950 XX / Transparently chunk/split large files
12951 \ "chunker"
12952 [snip]
12953 Storage> chunker
12954 Remote to chunk/unchunk.
12955 Normally should contain a ':' and a path, eg "myremote:path/to/dir",
12956 "myremote:bucket" or maybe "myremote:" (not recommended).
12957 Enter a string value. Press Enter for the default ("").
12958 remote> remote:path
12959 Files larger than chunk size will be split in chunks.
12960 Enter a size with suffix k,M,G,T. Press Enter for the default ("2G").
12961 chunk_size> 100M
12962 Choose how chunker handles hash sums. All modes but "none" require metadata.
12963 Enter a string value. Press Enter for the default ("md5").
12964 Choose a number from below, or type in your own value
12965 1 / Pass any hash supported by wrapped remote for non-chunked files, return nothing otherwise
12966 \ "none"
12967 2 / MD5 for composite files
12968 \ "md5"
12969 3 / SHA1 for composite files
12970 \ "sha1"
12971 4 / MD5 for all files
12972 \ "md5all"
12973 5 / SHA1 for all files
12974 \ "sha1all"
12975 6 / Copying a file to chunker will request MD5 from the source falling back to SHA1 if unsupported
12976 \ "md5quick"
12977 7 / Similar to "md5quick" but prefers SHA1 over MD5
12978 \ "sha1quick"
12979 hash_type> md5
12980 Edit advanced config? (y/n)
12981 y) Yes
12982 n) No
12983 y/n> n
12984 Remote config
12985 --------------------
12986 [overlay]
12987 type = chunker
12988 remote = remote:bucket
12989 chunk_size = 100M
12990 hash_type = md5
12991 --------------------
12992 y) Yes this is OK
12993 e) Edit this remote
12994 d) Delete this remote
12995 y/e/d> y
12996
12997 Specifying the remote
12998 In normal use, make sure the remote has a : in. If you specify the re‐
12999 mote without a : then rclone will use a local directory of that name.
13000 So if you use a remote of /path/to/secret/files then rclone will chunk
13001 stuff in that directory. If you use a remote of name then rclone will
13002 put files in a directory called name in the current directory.
13003
13004 Chunking
13005 When rclone starts a file upload, chunker checks the file size. If it
13006 doesn’t exceed the configured chunk size, chunker will just pass the
13007 file to the wrapped remote. If a file is large, chunker will transpar‐
13008 ently cut data in pieces with temporary names and stream them one by
13009 one, on the fly. Each data chunk will contain the specified number of
13010 bytes, except for the last one which may have less data. If file size
13011 is unknown in advance (this is called a streaming upload), chunker will
13012 internally create a temporary copy, record its size and repeat the
13013 above process.
13014
13015 When upload completes, temporary chunk files are finally renamed. This
13016 scheme guarantees that operations can be run in parallel and look from
13017 outside as atomic. A similar method with hidden temporary chunks is
13018 used for other operations (copy/move/rename etc). If an operation
13019 fails, hidden chunks are normally destroyed, and the target composite
13020 file stays intact.
13021
13022 When a composite file download is requested, chunker transparently as‐
13023 sembles it by concatenating data chunks in order. As the split is
13024 trivial one could even manually concatenate data chunks together to ob‐
13025 tain the original content.
13026
13027 When the list rclone command scans a directory on wrapped remote, the
13028 potential chunk files are accounted for, grouped and assembled into
13029 composite directory entries. Any temporary chunks are hidden.
13030
13031 List and other commands can sometimes come across composite files with
13032 missing or invalid chunks, eg. shadowed by like-named directory or an‐
13033 other file. This usually means that wrapped file system has been di‐
13034 rectly tampered with or damaged. If chunker detects a missing chunk it
13035 will by default print warning, skip the whole incomplete group of
13036 chunks but proceed with current command. You can set the --chun‐
13037 ker-fail-hard flag to have commands abort with error message in such
13038 cases.
13039
13040 Chunk names
13041 The default chunk name format is *.rclone_chunk.###, hence by default
13042 chunk names are BIG_FILE_NAME.rclone_chunk.001,
13043 BIG_FILE_NAME.rclone_chunk.002 etc. You can configure another name
13044 format using the name_format configuration file option. The format us‐
13045 es asterisk * as a placeholder for the base file name and one or more
13046 consecutive hash characters # as a placeholder for sequential chunk
13047 number. There must be one and only one asterisk. The number of con‐
13048 secutive hash characters defines the minimum length of a string repre‐
13049 senting a chunk number. If decimal chunk number has less digits than
13050 the number of hashes, it is left-padded by zeros. If the decimal
13051 string is longer, it is left intact. By default numbering starts from
13052 1 but there is another option that allows user to start from 0, eg.
13053 for compatibility with legacy software.
13054
13055 For example, if name format is big_*-##.part and original file name is
13056 data.txt and numbering starts from 0, then the first chunk will be
13057 named big_data.txt-00.part, the 99th chunk will be big_data.txt-98.part
13058 and the 302nd chunk will become big_data.txt-301.part.
13059
13060 Note that list assembles composite directory entries only when chunk
13061 names match the configured format and treats non-conforming file names
13062 as normal non-chunked files.
13063
13064 Metadata
13065 Besides data chunks chunker will by default create metadata object for
13066 a composite file. The object is named after the original file. Chun‐
13067 ker allows user to disable metadata completely (the none format). Note
13068 that metadata is normally not created for files smaller than the con‐
13069 figured chunk size. This may change in future rclone releases.
13070
13071 Simple JSON metadata format
13072 This is the default format. It supports hash sums and chunk validation
13073 for composite files. Meta objects carry the following fields:
13074
13075 · ver - version of format, currently 1
13076
13077 · size - total size of composite file
13078
13079 · nchunks - number of data chunks in file
13080
13081 · md5 - MD5 hashsum of composite file (if present)
13082
13083 · sha1 - SHA1 hashsum (if present)
13084
13085 There is no field for composite file name as it’s simply equal to the
13086 name of meta object on the wrapped remote. Please refer to respective
13087 sections for details on hashsums and modified time handling.
13088
13089 No metadata
13090 You can disable meta objects by setting the meta format option to none.
13091 In this mode chunker will scan directory for all files that follow con‐
13092 figured chunk name format, group them by detecting chunks with the same
13093 base name and show group names as virtual composite files. This method
13094 is more prone to missing chunk errors (especially missing last chunk)
13095 than format with metadata enabled.
13096
13097 Hashsums
13098 Chunker supports hashsums only when a compatible metadata is present.
13099 Hence, if you choose metadata format of none, chunker will report hash‐
13100 sum as UNSUPPORTED.
13101
13102 Please note that by default metadata is stored only for composite
13103 files. If a file is smaller than configured chunk size, chunker will
13104 transparently redirect hash requests to wrapped remote, so support de‐
13105 pends on that. You will see the empty string as a hashsum of requested
13106 type for small files if the wrapped remote doesn’t support it.
13107
13108 Many storage backends support MD5 and SHA1 hash types, so does chunker.
13109 With chunker you can choose one or another but not both. MD5 is set by
13110 default as the most supported type. Since chunker keeps hashes for
13111 composite files and falls back to the wrapped remote hash for non-chun‐
13112 ked ones, we advise you to choose the same hash type as supported by
13113 wrapped remote so that your file listings look coherent.
13114
13115 If your storage backend does not support MD5 or SHA1 but you need con‐
13116 sistent file hashing, configure chunker with md5all or sha1all. These
13117 two modes guarantee given hash for all files. If wrapped remote
13118 doesn’t support it, chunker will then add metadata to all files, even
13119 small. However, this can double the amount of small files in storage
13120 and incur additional service charges. You can even use chunker to
13121 force md5/sha1 support in any other remote at expence of sidecar meta
13122 objects by setting eg. chunk_type=sha1all to force hashsums and
13123 chunk_size=1P to effectively disable chunking.
13124
13125 Normally, when a file is copied to chunker controlled remote, chunker
13126 will ask the file source for compatible file hash and revert to
13127 on-the-fly calculation if none is found. This involves some CPU over‐
13128 head but provides a guarantee that given hashsum is available. Also,
13129 chunker will reject a server-side copy or move operation if source and
13130 destination hashsum types are different resulting in the extra network
13131 bandwidth, too. In some rare cases this may be undesired, so chunker
13132 provides two optional choices: sha1quick and md5quick. If the source
13133 does not support primary hash type and the quick mode is enabled, chun‐
13134 ker will try to fall back to the secondary type. This will save CPU
13135 and bandwidth but can result in empty hashsums at destination. Beware
13136 of consequences: the sync command will revert (sometimes silently) to
13137 time/size comparison if compatible hashsums between source and target
13138 are not found.
13139
13140 Modified time
13141 Chunker stores modification times using the wrapped remote so support
13142 depends on that. For a small non-chunked file the chunker overlay sim‐
13143 ply manipulates modification time of the wrapped remote file. For a
13144 composite file with metadata chunker will get and set modification time
13145 of the metadata object on the wrapped remote. If file is chunked but
13146 metadata format is none then chunker will use modification time of the
13147 first data chunk.
13148
13149 Migrations
13150 The idiomatic way to migrate to a different chunk size, hash type or
13151 chunk naming scheme is to:
13152
13153 · Collect all your chunked files under a directory and have your chun‐
13154 ker remote point to it.
13155
13156 · Create another directory (most probably on the same cloud storage)
13157 and configure a new remote with desired metadata format, hash type,
13158 chunk naming etc.
13159
13160 · Now run rclone sync oldchunks: newchunks: and all your data will be
13161 transparently converted in transfer. This may take some time, yet
13162 chunker will try server-side copy if possible.
13163
13164 · After checking data integrity you may remove configuration section of
13165 the old remote.
13166
13167 If rclone gets killed during a long operation on a big composite file,
13168 hidden temporary chunks may stay in the directory. They will not be
13169 shown by the list command but will eat up your account quota. Please
13170 note that the deletefile command deletes only active chunks of a file.
13171 As a workaround, you can use remote of the wrapped file system to see
13172 them. An easy way to get rid of hidden garbage is to copy littered di‐
13173 rectory somewhere using the chunker remote and purge the original di‐
13174 rectory. The copy command will copy only active chunks while the purge
13175 will remove everything including garbage.
13176
13177 Caveats and Limitations
13178 Chunker requires wrapped remote to support server side move (or copy +
13179 delete) operations, otherwise it will explicitly refuse to start. This
13180 is because it internally renames temporary chunk files to their final
13181 names when an operation completes successfully.
13182
13183 Chunker encodes chunk number in file name, so with default name_format
13184 setting it adds 17 characters. Also chunker adds 7 characters of tem‐
13185 porary suffix during operations. Many file systems limit base file
13186 name without path by 255 characters. Using rclone’s crypt remote as a
13187 base file system limits file name by 143 characters. Thus, maximum
13188 name length is 231 for most files and 119 for chunker-over-crypt. A
13189 user in need can change name format to eg. *.rcc## and save 10 charac‐
13190 ters (provided at most 99 chunks per file).
13191
13192 Note that a move implemented using the copy-and-delete method may incur
13193 double charging with some cloud storage providers.
13194
13195 Chunker will not automatically rename existing chunks when you run
13196 rclone config on a live remote and change the chunk name format. Be‐
13197 ware that in result of this some files which have been treated as
13198 chunks before the change can pop up in directory listings as normal
13199 files and vice versa. The same warning holds for the chunk size. If
13200 you desperately need to change critical chunking setings, you should
13201 run data migration as described above.
13202
13203 If wrapped remote is case insensitive, the chunker overlay will inherit
13204 that property (so you can’t have a file called “Hello.doc” and “hel‐
13205 lo.doc” in the same directory).
13206
13207 Standard Options
13208 Here are the standard options specific to chunker (Transparently
13209 chunk/split large files).
13210
13211 –chunker-remote
13212 Remote to chunk/unchunk. Normally should contain a `:' and a path, eg
13213 “myremote:path/to/dir”, “myremote:bucket” or maybe “myremote:” (not
13214 recommended).
13215
13216 · Config: remote
13217
13218 · Env Var: RCLONE_CHUNKER_REMOTE
13219
13220 · Type: string
13221
13222 · Default: ""
13223
13224 –chunker-chunk-size
13225 Files larger than chunk size will be split in chunks.
13226
13227 · Config: chunk_size
13228
13229 · Env Var: RCLONE_CHUNKER_CHUNK_SIZE
13230
13231 · Type: SizeSuffix
13232
13233 · Default: 2G
13234
13235 –chunker-hash-type
13236 Choose how chunker handles hash sums. All modes but “none” require
13237 metadata.
13238
13239 · Config: hash_type
13240
13241 · Env Var: RCLONE_CHUNKER_HASH_TYPE
13242
13243 · Type: string
13244
13245 · Default: “md5”
13246
13247 · Examples:
13248
13249 · “none”
13250
13251 · Pass any hash supported by wrapped remote for non-chunked files,
13252 return nothing otherwise
13253
13254 · “md5”
13255
13256 · MD5 for composite files
13257
13258 · “sha1”
13259
13260 · SHA1 for composite files
13261
13262 · “md5all”
13263
13264 · MD5 for all files
13265
13266 · “sha1all”
13267
13268 · SHA1 for all files
13269
13270 · “md5quick”
13271
13272 · Copying a file to chunker will request MD5 from the source fall‐
13273 ing back to SHA1 if unsupported
13274
13275 · “sha1quick”
13276
13277 · Similar to “md5quick” but prefers SHA1 over MD5
13278
13279 Advanced Options
13280 Here are the advanced options specific to chunker (Transparently
13281 chunk/split large files).
13282
13283 –chunker-name-format
13284 String format of chunk file names. The two placeholders are: base file
13285 name (*) and chunk number (#...). There must be one and only one as‐
13286 terisk and one or more consecutive hash characters. If chunk number
13287 has less digits than the number of hashes, it is left-padded by zeros.
13288 If there are more digits in the number, they are left as is. Possible
13289 chunk files are ignored if their name does not match given format.
13290
13291 · Config: name_format
13292
13293 · Env Var: RCLONE_CHUNKER_NAME_FORMAT
13294
13295 · Type: string
13296
13297 · Default: "*.rclone_chunk.###"
13298
13299 –chunker-start-from
13300 Minimum valid chunk number. Usually 0 or 1. By default chunk numbers
13301 start from 1.
13302
13303 · Config: start_from
13304
13305 · Env Var: RCLONE_CHUNKER_START_FROM
13306
13307 · Type: int
13308
13309 · Default: 1
13310
13311 –chunker-meta-format
13312 Format of the metadata object or “none”. By default “simplejson”.
13313 Metadata is a small JSON file named after the composite file.
13314
13315 · Config: meta_format
13316
13317 · Env Var: RCLONE_CHUNKER_META_FORMAT
13318
13319 · Type: string
13320
13321 · Default: “simplejson”
13322
13323 · Examples:
13324
13325 · “none”
13326
13327 · Do not use metadata files at all. Requires hash type “none”.
13328
13329 · “simplejson”
13330
13331 · Simple JSON supports hash sums and chunk validation.
13332
13333 · It has the following fields: ver, size, nchunks, md5, sha1.
13334
13335 –chunker-fail-hard
13336 Choose how chunker should handle files with missing or invalid chunks.
13337
13338 · Config: fail_hard
13339
13340 · Env Var: RCLONE_CHUNKER_FAIL_HARD
13341
13342 · Type: bool
13343
13344 · Default: false
13345
13346 · Examples:
13347
13348 · “true”
13349
13350 · Report errors and abort current command.
13351
13352 · “false”
13353
13354 · Warn user, skip incomplete file and proceed.
13355
13356 Citrix ShareFile
13357 Citrix ShareFile (https://sharefile.com) is a secure file sharing and
13358 transfer service aimed as business.
13359
13360 The initial setup for Citrix ShareFile involves getting a token from
13361 Citrix ShareFile which you can in your browser. rclone config walks
13362 you through it.
13363
13364 Here is an example of how to make a remote called remote. First run:
13365
13366 rclone config
13367
13368 This will guide you through an interactive setup process:
13369
13370 No remotes found - make a new one
13371 n) New remote
13372 s) Set configuration password
13373 q) Quit config
13374 n/s/q> n
13375 name> remote
13376 Type of storage to configure.
13377 Enter a string value. Press Enter for the default ("").
13378 Choose a number from below, or type in your own value
13379 XX / Citrix Sharefile
13380 \ "sharefile"
13381 Storage> sharefile
13382 ** See help for sharefile backend at: https://rclone.org/sharefile/ **
13383
13384 ID of the root folder
13385
13386 Leave blank to access "Personal Folders". You can use one of the
13387 standard values here or any folder ID (long hex number ID).
13388 Enter a string value. Press Enter for the default ("").
13389 Choose a number from below, or type in your own value
13390 1 / Access the Personal Folders. (Default)
13391 \ ""
13392 2 / Access the Favorites folder.
13393 \ "favorites"
13394 3 / Access all the shared folders.
13395 \ "allshared"
13396 4 / Access all the individual connectors.
13397 \ "connectors"
13398 5 / Access the home, favorites, and shared folders as well as the connectors.
13399 \ "top"
13400 root_folder_id>
13401 Edit advanced config? (y/n)
13402 y) Yes
13403 n) No
13404 y/n> n
13405 Remote config
13406 Use auto config?
13407 * Say Y if not sure
13408 * Say N if you are working on a remote or headless machine
13409 y) Yes
13410 n) No
13411 y/n> y
13412 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=XXX
13413 Log in and authorize rclone for access
13414 Waiting for code...
13415 Got code
13416 --------------------
13417 [remote]
13418 type = sharefile
13419 endpoint = https://XXX.sharefile.com
13420 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"2019-09-30T19:41:45.878561877+01:00"}
13421 --------------------
13422 y) Yes this is OK
13423 e) Edit this remote
13424 d) Delete this remote
13425 y/e/d> y
13426
13427 See the remote setup docs (https://rclone.org/remote_setup/) for how to
13428 set it up on a machine with no Internet browser available.
13429
13430 Note that rclone runs a webserver on your local machine to collect the
13431 token as returned from Citrix ShareFile. This only runs from the mo‐
13432 ment it opens your browser to the moment you get back the verification
13433 code. This is on http://127.0.0.1:53682/ and this it may require you
13434 to unblock it temporarily if you are running a host firewall.
13435
13436 Once configured you can then use rclone like this,
13437
13438 List directories in top level of your ShareFile
13439
13440 rclone lsd remote:
13441
13442 List all the files in your ShareFile
13443
13444 rclone ls remote:
13445
13446 To copy a local directory to an ShareFile directory called backup
13447
13448 rclone copy /home/source remote:backup
13449
13450 Paths may be as deep as required, eg remote:directory/subdirectory.
13451
13452 Modified time and hashes
13453 ShareFile allows modification times to be set on objects accurate to 1
13454 second. These will be used to detect whether objects need syncing or
13455 not.
13456
13457 ShareFile supports MD5 type hashes, so you can use the --checksum flag.
13458
13459 Transfers
13460 For files above 128MB rclone will use a chunked transfer. Rclone will
13461 upload up to --transfers chunks at the same time (shared among all the
13462 multipart uploads). Chunks are buffered in memory and are normally
13463 64MB so increasing --transfers will increase memory use.
13464
13465 Limitations
13466 Note that ShareFile is case insensitive so you can’t have a file called
13467 “Hello.doc” and one called “hello.doc”.
13468
13469 ShareFile only supports filenames up to 256 characters in length.
13470
13471 Restricted filename characters
13472 In addition to the default restricted characters set (/overview/#re‐
13473 stricted-characters) the following characters are also replaced:
13474
13475 Character Value Replacement
13476 ────────────────────────────────
13477 \ 0x5C \
13478 * 0x2A *
13479 < 0x3C <
13480 > 0x3E >
13481 ? 0x3F ?
13482 : 0x3A :
13483 | 0x7C |
13484 " 0x22 "
13485
13486 File names can also not start or end with the following characters.
13487 These only get replaced if they are first or last character in the
13488 name:
13489
13490 Character Value Replacement
13491 ────────────────────────────────
13492 SP 0x20 ␠
13493 . 0x2E .
13494
13495 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
13496 they can’t be used in JSON strings.
13497
13498 Standard Options
13499 Here are the standard options specific to sharefile (Citrix Sharefile).
13500
13501 –sharefile-root-folder-id
13502 ID of the root folder
13503
13504 Leave blank to access “Personal Folders”. You can use one of the stan‐
13505 dard values here or any folder ID (long hex number ID).
13506
13507 · Config: root_folder_id
13508
13509 · Env Var: RCLONE_SHAREFILE_ROOT_FOLDER_ID
13510
13511 · Type: string
13512
13513 · Default: ""
13514
13515 · Examples:
13516
13517 · ""
13518
13519 · Access the Personal Folders. (Default)
13520
13521 · “favorites”
13522
13523 · Access the Favorites folder.
13524
13525 · “allshared”
13526
13527 · Access all the shared folders.
13528
13529 · “connectors”
13530
13531 · Access all the individual connectors.
13532
13533 · “top”
13534
13535 · Access the home, favorites, and shared folders as well as the
13536 connectors.
13537
13538 Advanced Options
13539 Here are the advanced options specific to sharefile (Citrix Sharefile).
13540
13541 –sharefile-upload-cutoff
13542 Cutoff for switching to multipart upload.
13543
13544 · Config: upload_cutoff
13545
13546 · Env Var: RCLONE_SHAREFILE_UPLOAD_CUTOFF
13547
13548 · Type: SizeSuffix
13549
13550 · Default: 128M
13551
13552 –sharefile-chunk-size
13553 Upload chunk size. Must a power of 2 >= 256k.
13554
13555 Making this larger will improve performance, but note that each chunk
13556 is buffered in memory one per transfer.
13557
13558 Reducing this will reduce memory usage but decrease performance.
13559
13560 · Config: chunk_size
13561
13562 · Env Var: RCLONE_SHAREFILE_CHUNK_SIZE
13563
13564 · Type: SizeSuffix
13565
13566 · Default: 64M
13567
13568 –sharefile-endpoint
13569 Endpoint for API calls.
13570
13571 This is usually auto discovered as part of the oauth process, but can
13572 be set manually to something like: https://XXX.sharefile.com
13573
13574 · Config: endpoint
13575
13576 · Env Var: RCLONE_SHAREFILE_ENDPOINT
13577
13578 · Type: string
13579
13580 · Default: ""
13581
13582 –sharefile-encoding
13583 This sets the encoding for the backend.
13584
13585 See: the encoding section in the overview (/overview/#encoding) for
13586 more info.
13587
13588 · Config: encoding
13589
13590 · Env Var: RCLONE_SHAREFILE_ENCODING
13591
13592 · Type: MultiEncoder
13593
13594 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
13595 Slash,Ctl,LeftSpace,LeftPeriod,RightSpace,RightPeriod,InvalidUtf8,Dot
13596
13597 Crypt
13598 The crypt remote encrypts and decrypts another remote.
13599
13600 To use it first set up the underlying remote following the config in‐
13601 structions for that remote. You can also use a local pathname instead
13602 of a remote which will encrypt and decrypt from that directory which
13603 might be useful for encrypting onto a USB stick for example.
13604
13605 First check your chosen remote is working - we’ll call it remote:path
13606 in these docs. Note that anything inside remote:path will be encrypted
13607 and anything outside won’t. This means that if you are using a bucket
13608 based remote (eg S3, B2, swift) then you should probably put the bucket
13609 in the remote s3:bucket. If you just use s3: then rclone will make en‐
13610 crypted bucket names too (if using file name encryption) which may or
13611 may not be what you want.
13612
13613 Now configure crypt using rclone config. We will call this one secret
13614 to differentiate it from the remote.
13615
13616 No remotes found - make a new one
13617 n) New remote
13618 s) Set configuration password
13619 q) Quit config
13620 n/s/q> n
13621 name> secret
13622 Type of storage to configure.
13623 Choose a number from below, or type in your own value
13624 [snip]
13625 XX / Encrypt/Decrypt a remote
13626 \ "crypt"
13627 [snip]
13628 Storage> crypt
13629 Remote to encrypt/decrypt.
13630 Normally should contain a ':' and a path, eg "myremote:path/to/dir",
13631 "myremote:bucket" or maybe "myremote:" (not recommended).
13632 remote> remote:path
13633 How to encrypt the filenames.
13634 Choose a number from below, or type in your own value
13635 1 / Don't encrypt the file names. Adds a ".bin" extension only.
13636 \ "off"
13637 2 / Encrypt the filenames see the docs for the details.
13638 \ "standard"
13639 3 / Very simple filename obfuscation.
13640 \ "obfuscate"
13641 filename_encryption> 2
13642 Option to either encrypt directory names or leave them intact.
13643 Choose a number from below, or type in your own value
13644 1 / Encrypt directory names.
13645 \ "true"
13646 2 / Don't encrypt directory names, leave them intact.
13647 \ "false"
13648 filename_encryption> 1
13649 Password or pass phrase for encryption.
13650 y) Yes type in my own password
13651 g) Generate random password
13652 y/g> y
13653 Enter the password:
13654 password:
13655 Confirm the password:
13656 password:
13657 Password or pass phrase for salt. Optional but recommended.
13658 Should be different to the previous password.
13659 y) Yes type in my own password
13660 g) Generate random password
13661 n) No leave this optional password blank
13662 y/g/n> g
13663 Password strength in bits.
13664 64 is just about memorable
13665 128 is secure
13666 1024 is the maximum
13667 Bits> 128
13668 Your password is: JAsJvRcgR-_veXNfy_sGmQ
13669 Use this password?
13670 y) Yes
13671 n) No
13672 y/n> y
13673 Remote config
13674 --------------------
13675 [secret]
13676 remote = remote:path
13677 filename_encryption = standard
13678 password = *** ENCRYPTED ***
13679 password2 = *** ENCRYPTED ***
13680 --------------------
13681 y) Yes this is OK
13682 e) Edit this remote
13683 d) Delete this remote
13684 y/e/d> y
13685
13686 Important The password is stored in the config file is lightly obscured
13687 so it isn’t immediately obvious what it is. It is in no way secure un‐
13688 less you use config file encryption.
13689
13690 A long passphrase is recommended, or you can use a random one. Note
13691 that if you reconfigure rclone with the same passwords/passphrases
13692 elsewhere it will be compatible - all the secrets used are derived from
13693 those two passwords/passphrases.
13694
13695 Note that rclone does not encrypt
13696
13697 · file length - this can be calcuated within 16 bytes
13698
13699 · modification time - used for syncing
13700
13701 Specifying the remote
13702 In normal use, make sure the remote has a : in. If you specify the re‐
13703 mote without a : then rclone will use a local directory of that name.
13704 So if you use a remote of /path/to/secret/files then rclone will en‐
13705 crypt stuff to that directory. If you use a remote of name then rclone
13706 will put files in a directory called name in the current directory.
13707
13708 If you specify the remote as remote:path/to/dir then rclone will store
13709 encrypted files in path/to/dir on the remote. If you are using file
13710 name encryption, then when you save files to secret:subdir/subfile this
13711 will store them in the unencrypted path path/to/dir but the subdir/sub‐
13712 path bit will be encrypted.
13713
13714 Note that unless you want encrypted bucket names (which are difficult
13715 to manage because you won’t know what directory they represent in web
13716 interfaces etc), you should probably specify a bucket, eg remote:se‐
13717 cretbucket when using bucket based remotes such as S3, Swift, Hubic,
13718 B2, GCS.
13719
13720 Example
13721 To test I made a little directory of files using “standard” file name
13722 encryption.
13723
13724 plaintext/
13725 ├── file0.txt
13726 ├── file1.txt
13727 └── subdir
13728 ├── file2.txt
13729 ├── file3.txt
13730 └── subsubdir
13731 └── file4.txt
13732
13733 Copy these to the remote and list them back
13734
13735 $ rclone -q copy plaintext secret:
13736 $ rclone -q ls secret:
13737 7 file1.txt
13738 6 file0.txt
13739 8 subdir/file2.txt
13740 10 subdir/subsubdir/file4.txt
13741 9 subdir/file3.txt
13742
13743 Now see what that looked like when encrypted
13744
13745 $ rclone -q ls remote:path
13746 55 hagjclgavj2mbiqm6u6cnjjqcg
13747 54 v05749mltvv1tf4onltun46gls
13748 57 86vhrsv86mpbtd3a0akjuqslj8/dlj7fkq4kdq72emafg7a7s41uo
13749 58 86vhrsv86mpbtd3a0akjuqslj8/7uu829995du6o42n32otfhjqp4/b9pausrfansjth5ob3jkdqd4lc
13750 56 86vhrsv86mpbtd3a0akjuqslj8/8njh1sk437gttmep3p70g81aps
13751
13752 Note that this retains the directory structure which means you can do
13753 this
13754
13755 $ rclone -q ls secret:subdir
13756 8 file2.txt
13757 9 file3.txt
13758 10 subsubdir/file4.txt
13759
13760 If don’t use file name encryption then the remote will look like this -
13761 note the .bin extensions added to prevent the cloud provider attempting
13762 to interpret the data.
13763
13764 $ rclone -q ls remote:path
13765 54 file0.txt.bin
13766 57 subdir/file3.txt.bin
13767 56 subdir/file2.txt.bin
13768 58 subdir/subsubdir/file4.txt.bin
13769 55 file1.txt.bin
13770
13771 File name encryption modes
13772 Here are some of the features of the file name encryption modes
13773
13774 Off
13775
13776 · doesn’t hide file names or directory structure
13777
13778 · allows for longer file names (~246 characters)
13779
13780 · can use sub paths and copy single files
13781
13782 Standard
13783
13784 · file names encrypted
13785
13786 · file names can’t be as long (~143 characters)
13787
13788 · can use sub paths and copy single files
13789
13790 · directory structure visible
13791
13792 · identical files names will have identical uploaded names
13793
13794 · can use shortcuts to shorten the directory recursion
13795
13796 Obfuscation
13797
13798 This is a simple “rotate” of the filename, with each file having a rot
13799 distance based on the filename. We store the distance at the beginning
13800 of the filename. So a file called “hello” may become “53.jgnnq”
13801
13802 This is not a strong encryption of filenames, but it may stop automated
13803 scanning tools from picking up on filename patterns. As such it’s an
13804 intermediate between “off” and “standard”. The advantage is that it
13805 allows for longer path segment names.
13806
13807 There is a possibility with some unicode based filenames that the ob‐
13808 fuscation is weak and may map lower case characters to upper case
13809 equivalents. You can not rely on this for strong protection.
13810
13811 · file names very lightly obfuscated
13812
13813 · file names can be longer than standard encryption
13814
13815 · can use sub paths and copy single files
13816
13817 · directory structure visible
13818
13819 · identical files names will have identical uploaded names
13820
13821 Cloud storage systems have various limits on file name length and total
13822 path length which you are more likely to hit using “Standard” file name
13823 encryption. If you keep your file names to below 156 characters in
13824 length then you should be OK on all providers.
13825
13826 There may be an even more secure file name encryption mode in the fu‐
13827 ture which will address the long file name problem.
13828
13829 Directory name encryption
13830 Crypt offers the option of encrypting dir names or leaving them intact.
13831 There are two options:
13832
13833 True
13834
13835 Encrypts the whole file path including directory names Example:
13836 1/12/123.txt is encrypted to
13837 p0e52nreeaj0a5ea7s64m4j72s/l42g6771hnv3an9cgc8cr2n1ng/qgm4avr35m5loi1th53ato71v0
13838
13839 False
13840
13841 Only encrypts file names, skips directory names Example: 1/12/123.txt
13842 is encrypted to 1/12/qgm4avr35m5loi1th53ato71v0
13843
13844 Modified time and hashes
13845 Crypt stores modification times using the underlying remote so support
13846 depends on that.
13847
13848 Hashes are not stored for crypt. However the data integrity is pro‐
13849 tected by an extremely strong crypto authenticator.
13850
13851 Note that you should use the rclone cryptcheck command to check the in‐
13852 tegrity of a crypted remote instead of rclone check which can’t check
13853 the checksums properly.
13854
13855 Standard Options
13856 Here are the standard options specific to crypt (Encrypt/Decrypt a re‐
13857 mote).
13858
13859 –crypt-remote
13860 Remote to encrypt/decrypt. Normally should contain a `:' and a path,
13861 eg “myremote:path/to/dir”, “myremote:bucket” or maybe “myremote:” (not
13862 recommended).
13863
13864 · Config: remote
13865
13866 · Env Var: RCLONE_CRYPT_REMOTE
13867
13868 · Type: string
13869
13870 · Default: ""
13871
13872 –crypt-filename-encryption
13873 How to encrypt the filenames.
13874
13875 · Config: filename_encryption
13876
13877 · Env Var: RCLONE_CRYPT_FILENAME_ENCRYPTION
13878
13879 · Type: string
13880
13881 · Default: “standard”
13882
13883 · Examples:
13884
13885 · “standard”
13886
13887 · Encrypt the filenames see the docs for the details.
13888
13889 · “obfuscate”
13890
13891 · Very simple filename obfuscation.
13892
13893 · “off”
13894
13895 · Don’t encrypt the file names. Adds a “.bin” extension only.
13896
13897 –crypt-directory-name-encryption
13898 Option to either encrypt directory names or leave them intact.
13899
13900 · Config: directory_name_encryption
13901
13902 · Env Var: RCLONE_CRYPT_DIRECTORY_NAME_ENCRYPTION
13903
13904 · Type: bool
13905
13906 · Default: true
13907
13908 · Examples:
13909
13910 · “true”
13911
13912 · Encrypt directory names.
13913
13914 · “false”
13915
13916 · Don’t encrypt directory names, leave them intact.
13917
13918 –crypt-password
13919 Password or pass phrase for encryption.
13920
13921 · Config: password
13922
13923 · Env Var: RCLONE_CRYPT_PASSWORD
13924
13925 · Type: string
13926
13927 · Default: ""
13928
13929 –crypt-password2
13930 Password or pass phrase for salt. Optional but recommended. Should be
13931 different to the previous password.
13932
13933 · Config: password2
13934
13935 · Env Var: RCLONE_CRYPT_PASSWORD2
13936
13937 · Type: string
13938
13939 · Default: ""
13940
13941 Advanced Options
13942 Here are the advanced options specific to crypt (Encrypt/Decrypt a re‐
13943 mote).
13944
13945 –crypt-show-mapping
13946 For all files listed show how the names encrypt.
13947
13948 If this flag is set then for each file that the remote is asked to
13949 list, it will log (at level INFO) a line stating the decrypted file
13950 name and the encrypted file name.
13951
13952 This is so you can work out which encrypted names are which decrypted
13953 names just in case you need to do something with the encrypted file
13954 names, or for debugging purposes.
13955
13956 · Config: show_mapping
13957
13958 · Env Var: RCLONE_CRYPT_SHOW_MAPPING
13959
13960 · Type: bool
13961
13962 · Default: false
13963
13964 Backing up a crypted remote
13965 If you wish to backup a crypted remote, it it recommended that you use
13966 rclone sync on the encrypted files, and make sure the passwords are the
13967 same in the new encrypted remote.
13968
13969 This will have the following advantages
13970
13971 · rclone sync will check the checksums while copying
13972
13973 · you can use rclone check between the encrypted remotes
13974
13975 · you don’t decrypt and encrypt unnecessarily
13976
13977 For example, let’s say you have your original remote at remote: with
13978 the encrypted version at eremote: with path remote:crypt. You would
13979 then set up the new remote remote2: and then the encrypted version ere‐
13980 mote2: with path remote2:crypt using the same passwords as eremote:.
13981
13982 To sync the two remotes you would do
13983
13984 rclone sync remote:crypt remote2:crypt
13985
13986 And to check the integrity you would do
13987
13988 rclone check remote:crypt remote2:crypt
13989
13990 File formats
13991 File encryption
13992 Files are encrypted 1:1 source file to destination object. The file
13993 has a header and is divided into chunks.
13994
13995 Header
13996 · 8 bytes magic string RCLONE\x00\x00
13997
13998 · 24 bytes Nonce (IV)
13999
14000 The initial nonce is generated from the operating systems crypto strong
14001 random number generator. The nonce is incremented for each chunk read
14002 making sure each nonce is unique for each block written. The chance of
14003 a nonce being re-used is minuscule. If you wrote an exabyte of data
14004 (10¹⁸ bytes) you would have a probability of approximately 2×10⁻³² of
14005 re-using a nonce.
14006
14007 Chunk
14008 Each chunk will contain 64kB of data, except for the last one which may
14009 have less data. The data chunk is in standard NACL secretbox format.
14010 Secretbox uses XSalsa20 and Poly1305 to encrypt and authenticate mes‐
14011 sages.
14012
14013 Each chunk contains:
14014
14015 · 16 Bytes of Poly1305 authenticator
14016
14017 · 1 - 65536 bytes XSalsa20 encrypted data
14018
14019 64k chunk size was chosen as the best performing chunk size (the au‐
14020 thenticator takes too much time below this and the performance drops
14021 off due to cache effects above this). Note that these chunks are
14022 buffered in memory so they can’t be too big.
14023
14024 This uses a 32 byte (256 bit key) key derived from the user password.
14025
14026 Examples
14027 1 byte file will encrypt to
14028
14029 · 32 bytes header
14030
14031 · 17 bytes data chunk
14032
14033 49 bytes total
14034
14035 1MB (1048576 bytes) file will encrypt to
14036
14037 · 32 bytes header
14038
14039 · 16 chunks of 65568 bytes
14040
14041 1049120 bytes total (a 0.05% overhead). This is the overhead for big
14042 files.
14043
14044 Name encryption
14045 File names are encrypted segment by segment - the path is broken up in‐
14046 to / separated strings and these are encrypted individually.
14047
14048 File segments are padded using using PKCS#7 to a multiple of 16 bytes
14049 before encryption.
14050
14051 They are then encrypted with EME using AES with 256 bit key. EME
14052 (ECB-Mix-ECB) is a wide-block encryption mode presented in the 2003 pa‐
14053 per “A Parallelizable Enciphering Mode” by Halevi and Rogaway.
14054
14055 This makes for deterministic encryption which is what we want - the
14056 same filename must encrypt to the same thing otherwise we can’t find it
14057 on the cloud storage system.
14058
14059 This means that
14060
14061 · filenames with the same name will encrypt the same
14062
14063 · filenames which start the same won’t have a common prefix
14064
14065 This uses a 32 byte key (256 bits) and a 16 byte (128 bits) IV both of
14066 which are derived from the user password.
14067
14068 After encryption they are written out using a modified version of stan‐
14069 dard base32 encoding as described in RFC4648. The standard encoding is
14070 modified in two ways:
14071
14072 · it becomes lower case (no-one likes upper case filenames!)
14073
14074 · we strip the padding character =
14075
14076 base32 is used rather than the more efficient base64 so rclone can be
14077 used on case insensitive remotes (eg Windows, Amazon Drive).
14078
14079 Key derivation
14080 Rclone uses scrypt with parameters N=16384, r=8, p=1 with an optional
14081 user supplied salt (password2) to derive the 32+32+16 = 80 bytes of key
14082 material required. If the user doesn’t supply a salt then rclone uses
14083 an internal one.
14084
14085 scrypt makes it impractical to mount a dictionary attack on rclone en‐
14086 crypted data. For full protection against this you should always use a
14087 salt.
14088
14089 Dropbox
14090 Paths are specified as remote:path
14091
14092 Dropbox paths may be as deep as required, eg remote:directory/subdirec‐
14093 tory.
14094
14095 The initial setup for dropbox involves getting a token from Dropbox
14096 which you need to do in your browser. rclone config walks you through
14097 it.
14098
14099 Here is an example of how to make a remote called remote. First run:
14100
14101 rclone config
14102
14103 This will guide you through an interactive setup process:
14104
14105 n) New remote
14106 d) Delete remote
14107 q) Quit config
14108 e/n/d/q> n
14109 name> remote
14110 Type of storage to configure.
14111 Choose a number from below, or type in your own value
14112 [snip]
14113 XX / Dropbox
14114 \ "dropbox"
14115 [snip]
14116 Storage> dropbox
14117 Dropbox App Key - leave blank normally.
14118 app_key>
14119 Dropbox App Secret - leave blank normally.
14120 app_secret>
14121 Remote config
14122 Please visit:
14123 https://www.dropbox.com/1/oauth2/authorize?client_id=XXXXXXXXXXXXXXX&response_type=code
14124 Enter the code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXXXXXXXX
14125 --------------------
14126 [remote]
14127 app_key =
14128 app_secret =
14129 token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
14130 --------------------
14131 y) Yes this is OK
14132 e) Edit this remote
14133 d) Delete this remote
14134 y/e/d> y
14135
14136 You can then use it like this,
14137
14138 List directories in top level of your dropbox
14139
14140 rclone lsd remote:
14141
14142 List all the files in your dropbox
14143
14144 rclone ls remote:
14145
14146 To copy a local directory to a dropbox directory called backup
14147
14148 rclone copy /home/source remote:backup
14149
14150 Dropbox for business
14151 Rclone supports Dropbox for business and Team Folders.
14152
14153 When using Dropbox for business remote: and remote:path/to/file will
14154 refer to your personal folder.
14155
14156 If you wish to see Team Folders you must use a leading / in the path,
14157 so rclone lsd remote:/ will refer to the root and show you all Team
14158 Folders and your User Folder.
14159
14160 You can then use team folders like this remote:/TeamFolder and re‐
14161 mote:/TeamFolder/path/to/file.
14162
14163 A leading / for a Dropbox personal account will do nothing, but it will
14164 take an extra HTTP transaction so it should be avoided.
14165
14166 Modified time and Hashes
14167 Dropbox supports modified times, but the only way to set a modification
14168 time is to re-upload the file.
14169
14170 This means that if you uploaded your data with an older version of
14171 rclone which didn’t support the v2 API and modified times, rclone will
14172 decide to upload all your old data to fix the modification times. If
14173 you don’t want this to happen use --size-only or --checksum flag to
14174 stop it.
14175
14176 Dropbox supports its own hash type (https://www.dropbox.com/develop‐
14177 ers/reference/content-hash) which is checked for all transfers.
14178
14179 Restricted filename characters
14180 Character Value Replacement
14181 ────────────────────────────────
14182 NUL 0x00 ␀
14183 / 0x2F /
14184 DEL 0x7F ␡
14185 \ 0x5C \
14186
14187 File names can also not end with the following characters. These only
14188 get replaced if they are last character in the name:
14189
14190 Character Value Replacement
14191 ────────────────────────────────
14192 SP 0x20 ␠
14193
14194 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
14195 they can’t be used in JSON strings.
14196
14197 Standard Options
14198 Here are the standard options specific to dropbox (Dropbox).
14199
14200 –dropbox-client-id
14201 Dropbox App Client Id Leave blank normally.
14202
14203 · Config: client_id
14204
14205 · Env Var: RCLONE_DROPBOX_CLIENT_ID
14206
14207 · Type: string
14208
14209 · Default: ""
14210
14211 –dropbox-client-secret
14212 Dropbox App Client Secret Leave blank normally.
14213
14214 · Config: client_secret
14215
14216 · Env Var: RCLONE_DROPBOX_CLIENT_SECRET
14217
14218 · Type: string
14219
14220 · Default: ""
14221
14222 Advanced Options
14223 Here are the advanced options specific to dropbox (Dropbox).
14224
14225 –dropbox-chunk-size
14226 Upload chunk size. (< 150M).
14227
14228 Any files larger than this will be uploaded in chunks of this size.
14229
14230 Note that chunks are buffered in memory (one at a time) so rclone can
14231 deal with retries. Setting this larger will increase the speed slight‐
14232 ly (at most 10% for 128MB in tests) at the cost of using more memory.
14233 It can be set smaller if you are tight on memory.
14234
14235 · Config: chunk_size
14236
14237 · Env Var: RCLONE_DROPBOX_CHUNK_SIZE
14238
14239 · Type: SizeSuffix
14240
14241 · Default: 48M
14242
14243 –dropbox-impersonate
14244 Impersonate this user when using a business account.
14245
14246 · Config: impersonate
14247
14248 · Env Var: RCLONE_DROPBOX_IMPERSONATE
14249
14250 · Type: string
14251
14252 · Default: ""
14253
14254 –dropbox-encoding
14255 This sets the encoding for the backend.
14256
14257 See: the encoding section in the overview (/overview/#encoding) for
14258 more info.
14259
14260 · Config: encoding
14261
14262 · Env Var: RCLONE_DROPBOX_ENCODING
14263
14264 · Type: MultiEncoder
14265
14266 · Default: Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot
14267
14268 Limitations
14269 Note that Dropbox is case insensitive so you can’t have a file called
14270 “Hello.doc” and one called “hello.doc”.
14271
14272 There are some file names such as thumbs.db which Dropbox can’t store.
14273 There is a full list of them in the “Ignored Files” section of this
14274 document (https://www.dropbox.com/en/help/145). Rclone will issue an
14275 error message File name disallowed - not uploading if it attempts to
14276 upload one of those file names, but the sync won’t fail.
14277
14278 If you have more than 10,000 files in a directory then rclone purge
14279 dropbox:dir will return the error Failed to purge: There are too many
14280 files involved in this operation. As a work-around do an rclone delete
14281 dropbox:dir followed by an rclone rmdir dropbox:dir.
14282
14283 Get your own Dropbox App ID
14284 When you use rclone with Dropbox in its default configuration you are
14285 using rclone’s App ID. This is shared between all the rclone users.
14286
14287 Here is how to create your own Dropbox App ID for rclone:
14288
14289 1. Log into the Dropbox App console (https://www.dropbox.com/develop‐
14290 ers/apps/create) with your Dropbox Account (It need not to be the
14291 same account as the Dropbox you want to access)
14292
14293 2. Choose an API => Usually this should be Dropbox API
14294
14295 3. Choose the type of access you want to use => Full Dropbox or App
14296 Folder
14297
14298 4. Name your App
14299
14300 5. Click the button Create App
14301
14302 6. Find the App key and App secret Use these values in rclone config to
14303 add a new remote or edit an existing remote.
14304
14305 FTP
14306 FTP is the File Transfer Protocol. FTP support is provided using the
14307 github.com/jlaffaye/ftp (https://godoc.org/github.com/jlaffaye/ftp)
14308 package.
14309
14310 Here is an example of making an FTP configuration. First run
14311
14312 rclone config
14313
14314 This will guide you through an interactive setup process. An FTP re‐
14315 mote only needs a host together with and a username and a password.
14316 With anonymous FTP server, you will need to use anonymous as username
14317 and your email address as the password.
14318
14319 No remotes found - make a new one
14320 n) New remote
14321 r) Rename remote
14322 c) Copy remote
14323 s) Set configuration password
14324 q) Quit config
14325 n/r/c/s/q> n
14326 name> remote
14327 Type of storage to configure.
14328 Enter a string value. Press Enter for the default ("").
14329 Choose a number from below, or type in your own value
14330 [snip]
14331 XX / FTP Connection
14332 \ "ftp"
14333 [snip]
14334 Storage> ftp
14335 ** See help for ftp backend at: https://rclone.org/ftp/ **
14336
14337 FTP host to connect to
14338 Enter a string value. Press Enter for the default ("").
14339 Choose a number from below, or type in your own value
14340 1 / Connect to ftp.example.com
14341 \ "ftp.example.com"
14342 host> ftp.example.com
14343 FTP username, leave blank for current username, ncw
14344 Enter a string value. Press Enter for the default ("").
14345 user>
14346 FTP port, leave blank to use default (21)
14347 Enter a string value. Press Enter for the default ("").
14348 port>
14349 FTP password
14350 y) Yes type in my own password
14351 g) Generate random password
14352 y/g> y
14353 Enter the password:
14354 password:
14355 Confirm the password:
14356 password:
14357 Use FTP over TLS (Implicit)
14358 Enter a boolean value (true or false). Press Enter for the default ("false").
14359 tls>
14360 Remote config
14361 --------------------
14362 [remote]
14363 type = ftp
14364 host = ftp.example.com
14365 pass = *** ENCRYPTED ***
14366 --------------------
14367 y) Yes this is OK
14368 e) Edit this remote
14369 d) Delete this remote
14370 y/e/d> y
14371
14372 This remote is called remote and can now be used like this
14373
14374 See all directories in the home directory
14375
14376 rclone lsd remote:
14377
14378 Make a new directory
14379
14380 rclone mkdir remote:path/to/directory
14381
14382 List the contents of a directory
14383
14384 rclone ls remote:path/to/directory
14385
14386 Sync /home/local/directory to the remote directory, deleting any excess
14387 files in the directory.
14388
14389 rclone sync /home/local/directory remote:directory
14390
14391 Modified time
14392 FTP does not support modified times. Any times you see on the server
14393 will be time of upload.
14394
14395 Checksums
14396 FTP does not support any checksums.
14397
14398 Restricted filename characters
14399 In addition to the default restricted characters set (/overview/#re‐
14400 stricted-characters) the following characters are also replaced:
14401
14402 File names can also not end with the following characters. These only
14403 get replaced if they are last character in the name:
14404
14405 Character Value Replacement
14406 ────────────────────────────────
14407 SP 0x20 ␠
14408
14409 Note that not all FTP servers can have all characters in file names,
14410 for example:
14411
14412 FTP Server Forbidden characters
14413 ──────────────────────────────────
14414 proftpd *
14415 pureftpd \ [ ]
14416
14417 Implicit TLS
14418 FTP supports implicit FTP over TLS servers (FTPS). This has to be en‐
14419 abled in the config for the remote. The default FTPS port is 990 so
14420 the port will likely have to be explictly set in the config for the re‐
14421 mote.
14422
14423 Standard Options
14424 Here are the standard options specific to ftp (FTP Connection).
14425
14426 –ftp-host
14427 FTP host to connect to
14428
14429 · Config: host
14430
14431 · Env Var: RCLONE_FTP_HOST
14432
14433 · Type: string
14434
14435 · Default: ""
14436
14437 · Examples:
14438
14439 · “ftp.example.com”
14440
14441 · Connect to ftp.example.com
14442
14443 –ftp-user
14444 FTP username, leave blank for current username, $USER
14445
14446 · Config: user
14447
14448 · Env Var: RCLONE_FTP_USER
14449
14450 · Type: string
14451
14452 · Default: ""
14453
14454 –ftp-port
14455 FTP port, leave blank to use default (21)
14456
14457 · Config: port
14458
14459 · Env Var: RCLONE_FTP_PORT
14460
14461 · Type: string
14462
14463 · Default: ""
14464
14465 –ftp-pass
14466 FTP password
14467
14468 · Config: pass
14469
14470 · Env Var: RCLONE_FTP_PASS
14471
14472 · Type: string
14473
14474 · Default: ""
14475
14476 –ftp-tls
14477 Use FTP over TLS (Implicit)
14478
14479 · Config: tls
14480
14481 · Env Var: RCLONE_FTP_TLS
14482
14483 · Type: bool
14484
14485 · Default: false
14486
14487 Advanced Options
14488 Here are the advanced options specific to ftp (FTP Connection).
14489
14490 –ftp-concurrency
14491 Maximum number of FTP simultaneous connections, 0 for unlimited
14492
14493 · Config: concurrency
14494
14495 · Env Var: RCLONE_FTP_CONCURRENCY
14496
14497 · Type: int
14498
14499 · Default: 0
14500
14501 –ftp-no-check-certificate
14502 Do not verify the TLS certificate of the server
14503
14504 · Config: no_check_certificate
14505
14506 · Env Var: RCLONE_FTP_NO_CHECK_CERTIFICATE
14507
14508 · Type: bool
14509
14510 · Default: false
14511
14512 –ftp-disable-epsv
14513 Disable using EPSV even if server advertises support
14514
14515 · Config: disable_epsv
14516
14517 · Env Var: RCLONE_FTP_DISABLE_EPSV
14518
14519 · Type: bool
14520
14521 · Default: false
14522
14523 –ftp-encoding
14524 This sets the encoding for the backend.
14525
14526 See: the encoding section in the overview (/overview/#encoding) for
14527 more info.
14528
14529 · Config: encoding
14530
14531 · Env Var: RCLONE_FTP_ENCODING
14532
14533 · Type: MultiEncoder
14534
14535 · Default: Slash,Del,Ctl,RightSpace,Dot
14536
14537 Limitations
14538 Note that since FTP isn’t HTTP based the following flags don’t work
14539 with it: --dump-headers, --dump-bodies, --dump-auth
14540
14541 Note that --timeout isn’t supported (but --contimeout is).
14542
14543 Note that --bind isn’t supported.
14544
14545 FTP could support server side move but doesn’t yet.
14546
14547 Note that the ftp backend does not support the ftp_proxy environment
14548 variable yet.
14549
14550 Note that while implicit FTP over TLS is supported, explicit FTP over
14551 TLS is not.
14552
14553 Google Cloud Storage
14554 Paths are specified as remote:bucket (or remote: for the lsd command.)
14555 You may put subdirectories in too, eg remote:bucket/path/to/dir.
14556
14557 The initial setup for google cloud storage involves getting a token
14558 from Google Cloud Storage which you need to do in your browser. rclone
14559 config walks you through it.
14560
14561 Here is an example of how to make a remote called remote. First run:
14562
14563 rclone config
14564
14565 This will guide you through an interactive setup process:
14566
14567 n) New remote
14568 d) Delete remote
14569 q) Quit config
14570 e/n/d/q> n
14571 name> remote
14572 Type of storage to configure.
14573 Choose a number from below, or type in your own value
14574 [snip]
14575 XX / Google Cloud Storage (this is not Google Drive)
14576 \ "google cloud storage"
14577 [snip]
14578 Storage> google cloud storage
14579 Google Application Client Id - leave blank normally.
14580 client_id>
14581 Google Application Client Secret - leave blank normally.
14582 client_secret>
14583 Project number optional - needed only for list/create/delete buckets - see your developer console.
14584 project_number> 12345678
14585 Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
14586 service_account_file>
14587 Access Control List for new objects.
14588 Choose a number from below, or type in your own value
14589 1 / Object owner gets OWNER access, and all Authenticated Users get READER access.
14590 \ "authenticatedRead"
14591 2 / Object owner gets OWNER access, and project team owners get OWNER access.
14592 \ "bucketOwnerFullControl"
14593 3 / Object owner gets OWNER access, and project team owners get READER access.
14594 \ "bucketOwnerRead"
14595 4 / Object owner gets OWNER access [default if left blank].
14596 \ "private"
14597 5 / Object owner gets OWNER access, and project team members get access according to their roles.
14598 \ "projectPrivate"
14599 6 / Object owner gets OWNER access, and all Users get READER access.
14600 \ "publicRead"
14601 object_acl> 4
14602 Access Control List for new buckets.
14603 Choose a number from below, or type in your own value
14604 1 / Project team owners get OWNER access, and all Authenticated Users get READER access.
14605 \ "authenticatedRead"
14606 2 / Project team owners get OWNER access [default if left blank].
14607 \ "private"
14608 3 / Project team members get access according to their roles.
14609 \ "projectPrivate"
14610 4 / Project team owners get OWNER access, and all Users get READER access.
14611 \ "publicRead"
14612 5 / Project team owners get OWNER access, and all Users get WRITER access.
14613 \ "publicReadWrite"
14614 bucket_acl> 2
14615 Location for the newly created buckets.
14616 Choose a number from below, or type in your own value
14617 1 / Empty for default location (US).
14618 \ ""
14619 2 / Multi-regional location for Asia.
14620 \ "asia"
14621 3 / Multi-regional location for Europe.
14622 \ "eu"
14623 4 / Multi-regional location for United States.
14624 \ "us"
14625 5 / Taiwan.
14626 \ "asia-east1"
14627 6 / Tokyo.
14628 \ "asia-northeast1"
14629 7 / Singapore.
14630 \ "asia-southeast1"
14631 8 / Sydney.
14632 \ "australia-southeast1"
14633 9 / Belgium.
14634 \ "europe-west1"
14635 10 / London.
14636 \ "europe-west2"
14637 11 / Iowa.
14638 \ "us-central1"
14639 12 / South Carolina.
14640 \ "us-east1"
14641 13 / Northern Virginia.
14642 \ "us-east4"
14643 14 / Oregon.
14644 \ "us-west1"
14645 location> 12
14646 The storage class to use when storing objects in Google Cloud Storage.
14647 Choose a number from below, or type in your own value
14648 1 / Default
14649 \ ""
14650 2 / Multi-regional storage class
14651 \ "MULTI_REGIONAL"
14652 3 / Regional storage class
14653 \ "REGIONAL"
14654 4 / Nearline storage class
14655 \ "NEARLINE"
14656 5 / Coldline storage class
14657 \ "COLDLINE"
14658 6 / Durable reduced availability storage class
14659 \ "DURABLE_REDUCED_AVAILABILITY"
14660 storage_class> 5
14661 Remote config
14662 Use auto config?
14663 * Say Y if not sure
14664 * Say N if you are working on a remote or headless machine or Y didn't work
14665 y) Yes
14666 n) No
14667 y/n> y
14668 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
14669 Log in and authorize rclone for access
14670 Waiting for code...
14671 Got code
14672 --------------------
14673 [remote]
14674 type = google cloud storage
14675 client_id =
14676 client_secret =
14677 token = {"AccessToken":"xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"x/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxx","Expiry":"2014-07-17T20:49:14.929208288+01:00","Extra":null}
14678 project_number = 12345678
14679 object_acl = private
14680 bucket_acl = private
14681 --------------------
14682 y) Yes this is OK
14683 e) Edit this remote
14684 d) Delete this remote
14685 y/e/d> y
14686
14687 Note that rclone runs a webserver on your local machine to collect the
14688 token as returned from Google if you use auto config mode. This only
14689 runs from the moment it opens your browser to the moment you get back
14690 the verification code. This is on http://127.0.0.1:53682/ and this it
14691 may require you to unblock it temporarily if you are running a host
14692 firewall, or use manual mode.
14693
14694 This remote is called remote and can now be used like this
14695
14696 See all the buckets in your project
14697
14698 rclone lsd remote:
14699
14700 Make a new bucket
14701
14702 rclone mkdir remote:bucket
14703
14704 List the contents of a bucket
14705
14706 rclone ls remote:bucket
14707
14708 Sync /home/local/directory to the remote bucket, deleting any excess
14709 files in the bucket.
14710
14711 rclone sync /home/local/directory remote:bucket
14712
14713 Service Account support
14714 You can set up rclone with Google Cloud Storage in an unattended mode,
14715 i.e. not tied to a specific end-user Google account. This is useful
14716 when you want to synchronise files onto machines that don’t have ac‐
14717 tively logged-in users, for example build machines.
14718
14719 To get credentials for Google Cloud Platform IAM Service Accounts
14720 (https://cloud.google.com/iam/docs/service-accounts), please head to
14721 the Service Account (https://console.cloud.google.com/permissions/ser‐
14722 viceaccounts) section of the Google Developer Console. Service Ac‐
14723 counts behave just like normal User permissions in Google Cloud Storage
14724 ACLs (https://cloud.google.com/storage/docs/access-control), so you can
14725 limit their access (e.g. make them read only). After creating an ac‐
14726 count, a JSON file containing the Service Account’s credentials will be
14727 downloaded onto your machines. These credentials are what rclone will
14728 use for authentication.
14729
14730 To use a Service Account instead of OAuth2 token flow, enter the path
14731 to your Service Account credentials at the service_account_file prompt
14732 and rclone won’t use the browser based authentication flow. If you’d
14733 rather stuff the contents of the credentials file into the rclone con‐
14734 fig file, you can set service_account_credentials with the actual con‐
14735 tents of the file instead, or set the equivalent environment variable.
14736
14737 Application Default Credentials
14738 If no other source of credentials is provided, rclone will fall back to
14739 Application Default Credentials (https://cloud.google.com/video-intel‐
14740 ligence/docs/common/auth#authenticating_with_application_default_cre‐
14741 dentials) this is useful both when you already have configured authen‐
14742 tication for your developer account, or in production when running on a
14743 google compute host. Note that if running in docker, you may need to
14744 run additional commands on your google compute machine - see this page
14745 (https://cloud.google.com/container-registry/docs/advanced-authentica‐
14746 tion#gcloud_as_a_docker_credential_helper).
14747
14748 Note that in the case application default credentials are used, there
14749 is no need to explicitly configure a project number.
14750
14751 –fast-list
14752 This remote supports --fast-list which allows you to use fewer transac‐
14753 tions in exchange for more memory. See the rclone docs (/docs/#fast-
14754 list) for more details.
14755
14756 Modified time
14757 Google google cloud storage stores md5sums natively and rclone stores
14758 modification times as metadata on the object, under the “mtime” key in
14759 RFC3339 format accurate to 1ns.
14760
14761 Restricted filename characters
14762 Character Value Replacement
14763 ────────────────────────────────
14764 NUL 0x00 ␀
14765 LF 0x0A ␊
14766 CR 0x0D ␍
14767 / 0x2F /
14768
14769 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
14770 they can’t be used in JSON strings.
14771
14772 Standard Options
14773 Here are the standard options specific to google cloud storage (Google
14774 Cloud Storage (this is not Google Drive)).
14775
14776 –gcs-client-id
14777 Google Application Client Id Leave blank normally.
14778
14779 · Config: client_id
14780
14781 · Env Var: RCLONE_GCS_CLIENT_ID
14782
14783 · Type: string
14784
14785 · Default: ""
14786
14787 –gcs-client-secret
14788 Google Application Client Secret Leave blank normally.
14789
14790 · Config: client_secret
14791
14792 · Env Var: RCLONE_GCS_CLIENT_SECRET
14793
14794 · Type: string
14795
14796 · Default: ""
14797
14798 –gcs-project-number
14799 Project number. Optional - needed only for list/create/delete buckets
14800 - see your developer console.
14801
14802 · Config: project_number
14803
14804 · Env Var: RCLONE_GCS_PROJECT_NUMBER
14805
14806 · Type: string
14807
14808 · Default: ""
14809
14810 –gcs-service-account-file
14811 Service Account Credentials JSON file path Leave blank normally. Need‐
14812 ed only if you want use SA instead of interactive login.
14813
14814 · Config: service_account_file
14815
14816 · Env Var: RCLONE_GCS_SERVICE_ACCOUNT_FILE
14817
14818 · Type: string
14819
14820 · Default: ""
14821
14822 –gcs-service-account-credentials
14823 Service Account Credentials JSON blob Leave blank normally. Needed on‐
14824 ly if you want use SA instead of interactive login.
14825
14826 · Config: service_account_credentials
14827
14828 · Env Var: RCLONE_GCS_SERVICE_ACCOUNT_CREDENTIALS
14829
14830 · Type: string
14831
14832 · Default: ""
14833
14834 –gcs-object-acl
14835 Access Control List for new objects.
14836
14837 · Config: object_acl
14838
14839 · Env Var: RCLONE_GCS_OBJECT_ACL
14840
14841 · Type: string
14842
14843 · Default: ""
14844
14845 · Examples:
14846
14847 · “authenticatedRead”
14848
14849 · Object owner gets OWNER access, and all Authenticated Users get
14850 READER access.
14851
14852 · “bucketOwnerFullControl”
14853
14854 · Object owner gets OWNER access, and project team owners get OWNER
14855 access.
14856
14857 · “bucketOwnerRead”
14858
14859 · Object owner gets OWNER access, and project team owners get READ‐
14860 ER access.
14861
14862 · “private”
14863
14864 · Object owner gets OWNER access [default if left blank].
14865
14866 · “projectPrivate”
14867
14868 · Object owner gets OWNER access, and project team members get ac‐
14869 cess according to their roles.
14870
14871 · “publicRead”
14872
14873 · Object owner gets OWNER access, and all Users get READER access.
14874
14875 –gcs-bucket-acl
14876 Access Control List for new buckets.
14877
14878 · Config: bucket_acl
14879
14880 · Env Var: RCLONE_GCS_BUCKET_ACL
14881
14882 · Type: string
14883
14884 · Default: ""
14885
14886 · Examples:
14887
14888 · “authenticatedRead”
14889
14890 · Project team owners get OWNER access, and all Authenticated Users
14891 get READER access.
14892
14893 · “private”
14894
14895 · Project team owners get OWNER access [default if left blank].
14896
14897 · “projectPrivate”
14898
14899 · Project team members get access according to their roles.
14900
14901 · “publicRead”
14902
14903 · Project team owners get OWNER access, and all Users get READER
14904 access.
14905
14906 · “publicReadWrite”
14907
14908 · Project team owners get OWNER access, and all Users get WRITER
14909 access.
14910
14911 –gcs-bucket-policy-only
14912 Access checks should use bucket-level IAM policies.
14913
14914 If you want to upload objects to a bucket with Bucket Policy Only set
14915 then you will need to set this.
14916
14917 When it is set, rclone:
14918
14919 · ignores ACLs set on buckets
14920
14921 · ignores ACLs set on objects
14922
14923 · creates buckets with Bucket Policy Only set
14924
14925 Docs: https://cloud.google.com/storage/docs/bucket-policy-only
14926
14927 · Config: bucket_policy_only
14928
14929 · Env Var: RCLONE_GCS_BUCKET_POLICY_ONLY
14930
14931 · Type: bool
14932
14933 · Default: false
14934
14935 –gcs-location
14936 Location for the newly created buckets.
14937
14938 · Config: location
14939
14940 · Env Var: RCLONE_GCS_LOCATION
14941
14942 · Type: string
14943
14944 · Default: ""
14945
14946 · Examples:
14947
14948 · ""
14949
14950 · Empty for default location (US).
14951
14952 · “asia”
14953
14954 · Multi-regional location for Asia.
14955
14956 · “eu”
14957
14958 · Multi-regional location for Europe.
14959
14960 · “us”
14961
14962 · Multi-regional location for United States.
14963
14964 · “asia-east1”
14965
14966 · Taiwan.
14967
14968 · “asia-east2”
14969
14970 · Hong Kong.
14971
14972 · “asia-northeast1”
14973
14974 · Tokyo.
14975
14976 · “asia-south1”
14977
14978 · Mumbai.
14979
14980 · “asia-southeast1”
14981
14982 · Singapore.
14983
14984 · “australia-southeast1”
14985
14986 · Sydney.
14987
14988 · “europe-north1”
14989
14990 · Finland.
14991
14992 · “europe-west1”
14993
14994 · Belgium.
14995
14996 · “europe-west2”
14997
14998 · London.
14999
15000 · “europe-west3”
15001
15002 · Frankfurt.
15003
15004 · “europe-west4”
15005
15006 · Netherlands.
15007
15008 · “us-central1”
15009
15010 · Iowa.
15011
15012 · “us-east1”
15013
15014 · South Carolina.
15015
15016 · “us-east4”
15017
15018 · Northern Virginia.
15019
15020 · “us-west1”
15021
15022 · Oregon.
15023
15024 · “us-west2”
15025
15026 · California.
15027
15028 –gcs-storage-class
15029 The storage class to use when storing objects in Google Cloud Storage.
15030
15031 · Config: storage_class
15032
15033 · Env Var: RCLONE_GCS_STORAGE_CLASS
15034
15035 · Type: string
15036
15037 · Default: ""
15038
15039 · Examples:
15040
15041 · ""
15042
15043 · Default
15044
15045 · “MULTI_REGIONAL”
15046
15047 · Multi-regional storage class
15048
15049 · “REGIONAL”
15050
15051 · Regional storage class
15052
15053 · “NEARLINE”
15054
15055 · Nearline storage class
15056
15057 · “COLDLINE”
15058
15059 · Coldline storage class
15060
15061 · “DURABLE_REDUCED_AVAILABILITY”
15062
15063 · Durable reduced availability storage class
15064
15065 Advanced Options
15066 Here are the advanced options specific to google cloud storage (Google
15067 Cloud Storage (this is not Google Drive)).
15068
15069 –gcs-encoding
15070 This sets the encoding for the backend.
15071
15072 See: the encoding section in the overview (/overview/#encoding) for
15073 more info.
15074
15075 · Config: encoding
15076
15077 · Env Var: RCLONE_GCS_ENCODING
15078
15079 · Type: MultiEncoder
15080
15081 · Default: Slash,CrLf,InvalidUtf8,Dot
15082
15083 Google Drive
15084 Paths are specified as drive:path
15085
15086 Drive paths may be as deep as required, eg drive:directory/subdirecto‐
15087 ry.
15088
15089 The initial setup for drive involves getting a token from Google drive
15090 which you need to do in your browser. rclone config walks you through
15091 it.
15092
15093 Here is an example of how to make a remote called remote. First run:
15094
15095 rclone config
15096
15097 This will guide you through an interactive setup process:
15098
15099 No remotes found - make a new one
15100 n) New remote
15101 r) Rename remote
15102 c) Copy remote
15103 s) Set configuration password
15104 q) Quit config
15105 n/r/c/s/q> n
15106 name> remote
15107 Type of storage to configure.
15108 Choose a number from below, or type in your own value
15109 [snip]
15110 XX / Google Drive
15111 \ "drive"
15112 [snip]
15113 Storage> drive
15114 Google Application Client Id - leave blank normally.
15115 client_id>
15116 Google Application Client Secret - leave blank normally.
15117 client_secret>
15118 Scope that rclone should use when requesting access from drive.
15119 Choose a number from below, or type in your own value
15120 1 / Full access all files, excluding Application Data Folder.
15121 \ "drive"
15122 2 / Read-only access to file metadata and file contents.
15123 \ "drive.readonly"
15124 / Access to files created by rclone only.
15125 3 | These are visible in the drive website.
15126 | File authorization is revoked when the user deauthorizes the app.
15127 \ "drive.file"
15128 / Allows read and write access to the Application Data folder.
15129 4 | This is not visible in the drive website.
15130 \ "drive.appfolder"
15131 / Allows read-only access to file metadata but
15132 5 | does not allow any access to read or download file content.
15133 \ "drive.metadata.readonly"
15134 scope> 1
15135 ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs).
15136 root_folder_id>
15137 Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
15138 service_account_file>
15139 Remote config
15140 Use auto config?
15141 * Say Y if not sure
15142 * Say N if you are working on a remote or headless machine or Y didn't work
15143 y) Yes
15144 n) No
15145 y/n> y
15146 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
15147 Log in and authorize rclone for access
15148 Waiting for code...
15149 Got code
15150 Configure this as a team drive?
15151 y) Yes
15152 n) No
15153 y/n> n
15154 --------------------
15155 [remote]
15156 client_id =
15157 client_secret =
15158 scope = drive
15159 root_folder_id =
15160 service_account_file =
15161 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2014-03-16T13:57:58.955387075Z"}
15162 --------------------
15163 y) Yes this is OK
15164 e) Edit this remote
15165 d) Delete this remote
15166 y/e/d> y
15167
15168 Note that rclone runs a webserver on your local machine to collect the
15169 token as returned from Google if you use auto config mode. This only
15170 runs from the moment it opens your browser to the moment you get back
15171 the verification code. This is on http://127.0.0.1:53682/ and this it
15172 may require you to unblock it temporarily if you are running a host
15173 firewall, or use manual mode.
15174
15175 You can then use it like this,
15176
15177 List directories in top level of your drive
15178
15179 rclone lsd remote:
15180
15181 List all the files in your drive
15182
15183 rclone ls remote:
15184
15185 To copy a local directory to a drive directory called backup
15186
15187 rclone copy /home/source remote:backup
15188
15189 Scopes
15190 Rclone allows you to select which scope you would like for rclone to
15191 use. This changes what type of token is granted to rclone. The scopes
15192 are defined here. (https://developers.google.com/drive/v3/web/about-
15193 auth).
15194
15195 The scope are
15196
15197 drive
15198 This is the default scope and allows full access to all files, except
15199 for the Application Data Folder (see below).
15200
15201 Choose this one if you aren’t sure.
15202
15203 drive.readonly
15204 This allows read only access to all files. Files may be listed and
15205 downloaded but not uploaded, renamed or deleted.
15206
15207 drive.file
15208 With this scope rclone can read/view/modify only those files and fold‐
15209 ers it creates.
15210
15211 So if you uploaded files to drive via the web interface (or any other
15212 means) they will not be visible to rclone.
15213
15214 This can be useful if you are using rclone to backup data and you want
15215 to be sure confidential data on your drive is not visible to rclone.
15216
15217 Files created with this scope are visible in the web interface.
15218
15219 drive.appfolder
15220 This gives rclone its own private area to store files. Rclone will not
15221 be able to see any other files on your drive and you won’t be able to
15222 see rclone’s files from the web interface either.
15223
15224 drive.metadata.readonly
15225 This allows read only access to file names only. It does not allow
15226 rclone to download or upload data, or rename or delete files or direc‐
15227 tories.
15228
15229 Root folder ID
15230 You can set the root_folder_id for rclone. This is the directory
15231 (identified by its Folder ID) that rclone considers to be the root of
15232 your drive.
15233
15234 Normally you will leave this blank and rclone will determine the cor‐
15235 rect root to use itself.
15236
15237 However you can set this to restrict rclone to a specific folder hier‐
15238 archy or to access data within the “Computers” tab on the drive web in‐
15239 terface (where files from Google’s Backup and Sync desktop program go).
15240
15241 In order to do this you will have to find the Folder ID of the directo‐
15242 ry you wish rclone to display. This will be the last segment of the
15243 URL when you open the relevant folder in the drive web interface.
15244
15245 So if the folder you want rclone to use has a URL which looks like
15246 https://drive.google.com/drive/fold‐
15247 ers/1XyfxxxxxxxxxxxxxxxxxxxxxxxxxKHCh in the browser, then you use
15248 1XyfxxxxxxxxxxxxxxxxxxxxxxxxxKHCh as the root_folder_id in the config.
15249
15250 NB folders under the “Computers” tab seem to be read only (drive gives
15251 a 500 error) when using rclone.
15252
15253 There doesn’t appear to be an API to discover the folder IDs of the
15254 “Computers” tab - please contact us if you know otherwise!
15255
15256 Note also that rclone can’t access any data under the “Backups” tab on
15257 the google drive web interface yet.
15258
15259 Service Account support
15260 You can set up rclone with Google Drive in an unattended mode, i.e. not
15261 tied to a specific end-user Google account. This is useful when you
15262 want to synchronise files onto machines that don’t have actively
15263 logged-in users, for example build machines.
15264
15265 To use a Service Account instead of OAuth2 token flow, enter the path
15266 to your Service Account credentials at the service_account_file prompt
15267 during rclone config and rclone won’t use the browser based authentica‐
15268 tion flow. If you’d rather stuff the contents of the credentials file
15269 into the rclone config file, you can set service_account_credentials
15270 with the actual contents of the file instead, or set the equivalent en‐
15271 vironment variable.
15272
15273 Use case - Google Apps/G-suite account and individual Drive
15274 Let’s say that you are the administrator of a Google Apps (old) or
15275 G-suite account. The goal is to store data on an individual’s Drive
15276 account, who IS a member of the domain. We’ll call the domain exam‐
15277 ple.com, and the user foo@example.com.
15278
15279 There’s a few steps we need to go through to accomplish this:
15280
15281 1. Create a service account for example.com
15282 · To create a service account and obtain its credentials, go to the
15283 Google Developer Console (https://console.developers.google.com).
15284
15285 · You must have a project - create one if you don’t.
15286
15287 · Then go to “IAM & admin” -> “Service Accounts”.
15288
15289 · Use the “Create Credentials” button. Fill in “Service account name”
15290 with something that identifies your client. “Role” can be empty.
15291
15292 · Tick “Furnish a new private key” - select “Key type JSON”.
15293
15294 · Tick “Enable G Suite Domain-wide Delegation”. This option makes “im‐
15295 personation” possible, as documented here: Delegating domain-wide au‐
15296 thority to the service account (https://developers.google.com/identi‐
15297 ty/protocols/OAuth2ServiceAccount#delegatingauthority)
15298
15299 · These credentials are what rclone will use for authentication. If
15300 you ever need to remove access, press the “Delete service account
15301 key” button.
15302
15303 2. Allowing API access to example.com Google Drive
15304 · Go to example.com’s admin console
15305
15306 · Go into “Security” (or use the search bar)
15307
15308 · Select “Show more” and then “Advanced settings”
15309
15310 · Select “Manage API client access” in the “Authentication” section
15311
15312 · In the “Client Name” field enter the service account’s “Client ID” -
15313 this can be found in the Developer Console under “IAM & Admin” ->
15314 “Service Accounts”, then “View Client ID” for the newly created ser‐
15315 vice account. It is a ~21 character numerical string.
15316
15317 · In the next field, “One or More API Scopes”, enter
15318 https://www.googleapis.com/auth/drive to grant access to Google Drive
15319 specifically.
15320
15321 3. Configure rclone, assuming a new install
15322 rclone config
15323
15324 n/s/q> n # New
15325 name>gdrive # Gdrive is an example name
15326 Storage> # Select the number shown for Google Drive
15327 client_id> # Can be left blank
15328 client_secret> # Can be left blank
15329 scope> # Select your scope, 1 for example
15330 root_folder_id> # Can be left blank
15331 service_account_file> /home/foo/myJSONfile.json # This is where the JSON file goes!
15332 y/n> # Auto config, y
15333
15334 4. Verify that it’s working
15335 · rclone -v --drive-impersonate foo@example.com lsf gdrive:backup
15336
15337 · The arguments do:
15338
15339 · -v - verbose logging
15340
15341 · --drive-impersonate foo@example.com - this is what does the magic,
15342 pretending to be user foo.
15343
15344 · lsf - list files in a parsing friendly way
15345
15346 · gdrive:backup - use the remote called gdrive, work in the folder
15347 named backup.
15348
15349 Team drives
15350 If you want to configure the remote to point to a Google Team Drive
15351 then answer y to the question Configure this as a team drive?.
15352
15353 This will fetch the list of Team Drives from google and allow you to
15354 configure which one you want to use. You can also type in a team drive
15355 ID if you prefer.
15356
15357 For example:
15358
15359 Configure this as a team drive?
15360 y) Yes
15361 n) No
15362 y/n> y
15363 Fetching team drive list...
15364 Choose a number from below, or type in your own value
15365 1 / Rclone Test
15366 \ "xxxxxxxxxxxxxxxxxxxx"
15367 2 / Rclone Test 2
15368 \ "yyyyyyyyyyyyyyyyyyyy"
15369 3 / Rclone Test 3
15370 \ "zzzzzzzzzzzzzzzzzzzz"
15371 Enter a Team Drive ID> 1
15372 --------------------
15373 [remote]
15374 client_id =
15375 client_secret =
15376 token = {"AccessToken":"xxxx.x.xxxxx_xxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"1/xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxx","Expiry":"2014-03-16T13:57:58.955387075Z","Extra":null}
15377 team_drive = xxxxxxxxxxxxxxxxxxxx
15378 --------------------
15379 y) Yes this is OK
15380 e) Edit this remote
15381 d) Delete this remote
15382 y/e/d> y
15383
15384 –fast-list
15385 This remote supports --fast-list which allows you to use fewer transac‐
15386 tions in exchange for more memory. See the rclone docs (/docs/#fast-
15387 list) for more details.
15388
15389 It does this by combining multiple list calls into a single API re‐
15390 quest.
15391
15392 This works by combining many '%s' in parents filters into one expres‐
15393 sion. To list the contents of directories a, b and c, the following
15394 requests will be send by the regular List function:
15395
15396 trashed=false and 'a' in parents
15397 trashed=false and 'b' in parents
15398 trashed=false and 'c' in parents
15399
15400 These can now be combined into a single request:
15401
15402 trashed=false and ('a' in parents or 'b' in parents or 'c' in parents)
15403
15404 The implementation of ListR will put up to 50 parents filters into one
15405 request. It will use the --checkers value to specify the number of re‐
15406 quests to run in parallel.
15407
15408 In tests, these batch requests were up to 20x faster than the regular
15409 method. Running the following command against different sized folders
15410 gives:
15411
15412 rclone lsjson -vv -R --checkers=6 gdrive:folder
15413
15414 small folder (220 directories, 700 files):
15415
15416 · without --fast-list: 38s
15417
15418 · with --fast-list: 10s
15419
15420 large folder (10600 directories, 39000 files):
15421
15422 · without --fast-list: 22:05 min
15423
15424 · with --fast-list: 58s
15425
15426 Modified time
15427 Google drive stores modification times accurate to 1 ms.
15428
15429 Restricted filename characters
15430 Only Invalid UTF-8 bytes will be replaced (/overview/#invalid-utf8), as
15431 they can’t be used in JSON strings.
15432
15433 In contrast to other backends, / can also be used in names and . or ..
15434 are valid names.
15435
15436 Revisions
15437 Google drive stores revisions of files. When you upload a change to an
15438 existing file to google drive using rclone it will create a new revi‐
15439 sion of that file.
15440
15441 Revisions follow the standard google policy which at time of writing
15442 was
15443
15444 · They are deleted after 30 days or 100 revisions (whatever comes
15445 first).
15446
15447 · They do not count towards a user storage quota.
15448
15449 Deleting files
15450 By default rclone will send all files to the trash when deleting files.
15451 If deleting them permanently is required then use the
15452 --drive-use-trash=false flag, or set the equivalent environment vari‐
15453 able.
15454
15455 Emptying trash
15456 If you wish to empty your trash you can use the rclone cleanup remote:
15457 command which will permanently delete all your trashed files. This
15458 command does not take any path arguments.
15459
15460 Note that Google Drive takes some time (minutes to days) to empty the
15461 trash even though the command returns within a few seconds. No output
15462 is echoed, so there will be no confirmation even using -v or -vv.
15463
15464 Quota information
15465 To view your current quota you can use the rclone about remote: command
15466 which will display your usage limit (quota), the usage in Google Drive,
15467 the size of all files in the Trash and the space used by other Google
15468 services such as Gmail. This command does not take any path arguments.
15469
15470 Import/Export of google documents
15471 Google documents can be exported from and uploaded to Google Drive.
15472
15473 When rclone downloads a Google doc it chooses a format to download de‐
15474 pending upon the --drive-export-formats setting. By default the export
15475 formats are docx,xlsx,pptx,svg which are a sensible default for an ed‐
15476 itable document.
15477
15478 When choosing a format, rclone runs down the list provided in order and
15479 chooses the first file format the doc can be exported as from the list.
15480 If the file can’t be exported to a format on the formats list, then
15481 rclone will choose a format from the default list.
15482
15483 If you prefer an archive copy then you might use --drive-export-formats
15484 pdf, or if you prefer openoffice/libreoffice formats you might use
15485 --drive-export-formats ods,odt,odp.
15486
15487 Note that rclone adds the extension to the google doc, so if it is
15488 called My Spreadsheet on google docs, it will be exported as My Spread‐
15489 sheet.xlsx or My Spreadsheet.pdf etc.
15490
15491 When importing files into Google Drive, rclone will convert all files
15492 with an extension in --drive-import-formats to their associated docu‐
15493 ment type. rclone will not convert any files by default, since the
15494 conversion is lossy process.
15495
15496 The conversion must result in a file with the same extension when the
15497 --drive-export-formats rules are applied to the uploaded document.
15498
15499 Here are some examples for allowed and prohibited conversions.
15500
15501 export-for‐ import-for‐ Upload Ext Document Ext Allowed
15502 mats mats
15503 ────────────────────────────────────────────────────────────────
15504 odt odt odt odt Yes
15505 odt docx,odt odt odt Yes
15506 docx docx docx Yes
15507 odt odt docx No
15508 odt,docx docx,odt docx odt No
15509 docx,odt docx,odt docx docx Yes
15510 docx,odt docx,odt odt docx No
15511
15512 This limitation can be disabled by specifying --drive-allow-im‐
15513 port-name-change. When using this flag, rclone can convert multiple
15514 files types resulting in the same document type at once, eg with
15515 --drive-import-formats docx,odt,txt, all files having these extension
15516 would result in a document represented as a docx file. This brings the
15517 additional risk of overwriting a document, if multiple files have the
15518 same stem. Many rclone operations will not handle this name change in
15519 any way. They assume an equal name when copying files and might copy
15520 the file again or delete them when the name changes.
15521
15522 Here are the possible export extensions with their corresponding mime
15523 types. Most of these can also be used for importing, but there more
15524 that are not listed here. Some of these additional ones might only be
15525 available when the operating system provides the correct MIME type en‐
15526 tries.
15527
15528 This list can be changed by Google Drive at any time and might not rep‐
15529 resent the currently available conversions.
15530
15531 Extension Mime Type Description
15532 ─────────────────────────────────────────────────────────────────────────────────────
15533 csv text/csv Standard CSV format for
15534 Spreadsheets
15535 docx application/vnd.openxml‐ Microsoft Office Document
15536 formats-officedocu‐
15537 ment.wordprocess‐
15538 ingml.document
15539 epub application/epub+zip E-book format
15540 html text/html An HTML Document
15541 jpg image/jpeg A JPEG Image File
15542 json applica‐ JSON Text Format
15543 tion/vnd.google-apps.script+json
15544 odp application/vnd.oasis.opendocu‐ Openoffice Presentation
15545 ment.presentation
15546 ods application/vnd.oasis.opendocu‐ Openoffice Spreadsheet
15547 ment.spreadsheet
15548 ods application/x-vnd.oasis.opendoc‐ Openoffice Spreadsheet
15549 ument.spreadsheet
15550 odt application/vnd.oasis.opendocu‐ Openoffice Document
15551 ment.text
15552 pdf application/pdf Adobe PDF Format
15553 png image/png PNG Image Format
15554 pptx application/vnd.openxmlfor‐ Microsoft Office Power‐
15555 mats-officedocument.presenta‐ point
15556 tionml.presentation
15557 rtf application/rtf Rich Text Format
15558 svg image/svg+xml Scalable Vector Graphics
15559 Format
15560 tsv text/tab-separated-values Standard TSV format for
15561 spreadsheets
15562 txt text/plain Plain Text
15563 xlsx application/vnd.openxmlfor‐ Microsoft Office Spread‐
15564 mats-officedocument.spread‐ sheet
15565 sheetml.sheet
15566 zip application/zip A ZIP file of HTML, Images
15567 CSS
15568
15569 Google documents can also be exported as link files. These files will
15570 open a browser window for the Google Docs website of that document when
15571 opened. The link file extension has to be specified as a --drive-ex‐
15572 port-formats parameter. They will match all available Google Docu‐
15573 ments.
15574
15575 Extension Description OS Support
15576 ─────────────────────────────────────────────────
15577 desktop freedesktop.org Linux
15578 specified desktop
15579 entry
15580 link.html An HTML Document All
15581 with a redirect
15582 url INI style link file macOS, Windows
15583 webloc macOS specific XML macOS
15584 format
15585
15586 Standard Options
15587 Here are the standard options specific to drive (Google Drive).
15588
15589 –drive-client-id
15590 Google Application Client Id Setting your own is recommended. See
15591 https://rclone.org/drive/#making-your-own-client-id for how to create
15592 your own. If you leave this blank, it will use an internal key which
15593 is low performance.
15594
15595 · Config: client_id
15596
15597 · Env Var: RCLONE_DRIVE_CLIENT_ID
15598
15599 · Type: string
15600
15601 · Default: ""
15602
15603 –drive-client-secret
15604 Google Application Client Secret Setting your own is recommended.
15605
15606 · Config: client_secret
15607
15608 · Env Var: RCLONE_DRIVE_CLIENT_SECRET
15609
15610 · Type: string
15611
15612 · Default: ""
15613
15614 –drive-scope
15615 Scope that rclone should use when requesting access from drive.
15616
15617 · Config: scope
15618
15619 · Env Var: RCLONE_DRIVE_SCOPE
15620
15621 · Type: string
15622
15623 · Default: ""
15624
15625 · Examples:
15626
15627 · “drive”
15628
15629 · Full access all files, excluding Application Data Folder.
15630
15631 · “drive.readonly”
15632
15633 · Read-only access to file metadata and file contents.
15634
15635 · “drive.file”
15636
15637 · Access to files created by rclone only.
15638
15639 · These are visible in the drive website.
15640
15641 · File authorization is revoked when the user deauthorizes the app.
15642
15643 · “drive.appfolder”
15644
15645 · Allows read and write access to the Application Data folder.
15646
15647 · This is not visible in the drive website.
15648
15649 · “drive.metadata.readonly”
15650
15651 · Allows read-only access to file metadata but
15652
15653 · does not allow any access to read or download file content.
15654
15655 –drive-root-folder-id
15656 ID of the root folder Leave blank normally.
15657
15658 Fill in to access “Computers” folders (see docs), or for rclone to use
15659 a non root folder as its starting point.
15660
15661 Note that if this is blank, the first time rclone runs it will fill it
15662 in with the ID of the root folder.
15663
15664 · Config: root_folder_id
15665
15666 · Env Var: RCLONE_DRIVE_ROOT_FOLDER_ID
15667
15668 · Type: string
15669
15670 · Default: ""
15671
15672 –drive-service-account-file
15673 Service Account Credentials JSON file path Leave blank normally. Need‐
15674 ed only if you want use SA instead of interactive login.
15675
15676 · Config: service_account_file
15677
15678 · Env Var: RCLONE_DRIVE_SERVICE_ACCOUNT_FILE
15679
15680 · Type: string
15681
15682 · Default: ""
15683
15684 Advanced Options
15685 Here are the advanced options specific to drive (Google Drive).
15686
15687 –drive-service-account-credentials
15688 Service Account Credentials JSON blob Leave blank normally. Needed on‐
15689 ly if you want use SA instead of interactive login.
15690
15691 · Config: service_account_credentials
15692
15693 · Env Var: RCLONE_DRIVE_SERVICE_ACCOUNT_CREDENTIALS
15694
15695 · Type: string
15696
15697 · Default: ""
15698
15699 –drive-team-drive
15700 ID of the Team Drive
15701
15702 · Config: team_drive
15703
15704 · Env Var: RCLONE_DRIVE_TEAM_DRIVE
15705
15706 · Type: string
15707
15708 · Default: ""
15709
15710 –drive-auth-owner-only
15711 Only consider files owned by the authenticated user.
15712
15713 · Config: auth_owner_only
15714
15715 · Env Var: RCLONE_DRIVE_AUTH_OWNER_ONLY
15716
15717 · Type: bool
15718
15719 · Default: false
15720
15721 –drive-use-trash
15722 Send files to the trash instead of deleting permanently. Defaults to
15723 true, namely sending files to the trash. Use --drive-use-trash=false
15724 to delete files permanently instead.
15725
15726 · Config: use_trash
15727
15728 · Env Var: RCLONE_DRIVE_USE_TRASH
15729
15730 · Type: bool
15731
15732 · Default: true
15733
15734 –drive-skip-gdocs
15735 Skip google documents in all listings. If given, gdocs practically be‐
15736 come invisible to rclone.
15737
15738 · Config: skip_gdocs
15739
15740 · Env Var: RCLONE_DRIVE_SKIP_GDOCS
15741
15742 · Type: bool
15743
15744 · Default: false
15745
15746 –drive-skip-checksum-gphotos
15747 Skip MD5 checksum on Google photos and videos only.
15748
15749 Use this if you get checksum errors when transferring Google photos or
15750 videos.
15751
15752 Setting this flag will cause Google photos and videos to return a blank
15753 MD5 checksum.
15754
15755 Google photos are identifed by being in the “photos” space.
15756
15757 Corrupted checksums are caused by Google modifying the image/video but
15758 not updating the checksum.
15759
15760 · Config: skip_checksum_gphotos
15761
15762 · Env Var: RCLONE_DRIVE_SKIP_CHECKSUM_GPHOTOS
15763
15764 · Type: bool
15765
15766 · Default: false
15767
15768 –drive-shared-with-me
15769 Only show files that are shared with me.
15770
15771 Instructs rclone to operate on your “Shared with me” folder (where
15772 Google Drive lets you access the files and folders others have shared
15773 with you).
15774
15775 This works both with the “list” (lsd, lsl, etc) and the “copy” commands
15776 (copy, sync, etc), and with all other commands too.
15777
15778 · Config: shared_with_me
15779
15780 · Env Var: RCLONE_DRIVE_SHARED_WITH_ME
15781
15782 · Type: bool
15783
15784 · Default: false
15785
15786 –drive-trashed-only
15787 Only show files that are in the trash. This will show trashed files in
15788 their original directory structure.
15789
15790 · Config: trashed_only
15791
15792 · Env Var: RCLONE_DRIVE_TRASHED_ONLY
15793
15794 · Type: bool
15795
15796 · Default: false
15797
15798 –drive-formats
15799 Deprecated: see export_formats
15800
15801 · Config: formats
15802
15803 · Env Var: RCLONE_DRIVE_FORMATS
15804
15805 · Type: string
15806
15807 · Default: ""
15808
15809 –drive-export-formats
15810 Comma separated list of preferred formats for downloading Google docs.
15811
15812 · Config: export_formats
15813
15814 · Env Var: RCLONE_DRIVE_EXPORT_FORMATS
15815
15816 · Type: string
15817
15818 · Default: “docx,xlsx,pptx,svg”
15819
15820 –drive-import-formats
15821 Comma separated list of preferred formats for uploading Google docs.
15822
15823 · Config: import_formats
15824
15825 · Env Var: RCLONE_DRIVE_IMPORT_FORMATS
15826
15827 · Type: string
15828
15829 · Default: ""
15830
15831 –drive-allow-import-name-change
15832 Allow the filetype to change when uploading Google docs (e.g. file.doc
15833 to file.docx). This will confuse sync and reupload every time.
15834
15835 · Config: allow_import_name_change
15836
15837 · Env Var: RCLONE_DRIVE_ALLOW_IMPORT_NAME_CHANGE
15838
15839 · Type: bool
15840
15841 · Default: false
15842
15843 –drive-use-created-date
15844 Use file created date instead of modified date.,
15845
15846 Useful when downloading data and you want the creation date used in
15847 place of the last modified date.
15848
15849 WARNING: This flag may have some unexpected consequences.
15850
15851 When uploading to your drive all files will be overwritten unless they
15852 haven’t been modified since their creation. And the inverse will occur
15853 while downloading. This side effect can be avoided by using the
15854 “–checksum” flag.
15855
15856 This feature was implemented to retain photos capture date as recorded
15857 by google photos. You will first need to check the “Create a Google
15858 Photos folder” option in your google drive settings. You can then copy
15859 or move the photos locally and use the date the image was taken (creat‐
15860 ed) set as the modification date.
15861
15862 · Config: use_created_date
15863
15864 · Env Var: RCLONE_DRIVE_USE_CREATED_DATE
15865
15866 · Type: bool
15867
15868 · Default: false
15869
15870 –drive-use-shared-date
15871 Use date file was shared instead of modified date.
15872
15873 Note that, as with “–drive-use-created-date”, this flag may have unex‐
15874 pected consequences when uploading/downloading files.
15875
15876 If both this flag and “–drive-use-created-date” are set, the created
15877 date is used.
15878
15879 · Config: use_shared_date
15880
15881 · Env Var: RCLONE_DRIVE_USE_SHARED_DATE
15882
15883 · Type: bool
15884
15885 · Default: false
15886
15887 –drive-list-chunk
15888 Size of listing chunk 100-1000. 0 to disable.
15889
15890 · Config: list_chunk
15891
15892 · Env Var: RCLONE_DRIVE_LIST_CHUNK
15893
15894 · Type: int
15895
15896 · Default: 1000
15897
15898 –drive-impersonate
15899 Impersonate this user when using a service account.
15900
15901 · Config: impersonate
15902
15903 · Env Var: RCLONE_DRIVE_IMPERSONATE
15904
15905 · Type: string
15906
15907 · Default: ""
15908
15909 –drive-alternate-export
15910 Use alternate export URLs for google documents export.,
15911
15912 If this option is set this instructs rclone to use an alternate set of
15913 export URLs for drive documents. Users have reported that the official
15914 export URLs can’t export large documents, whereas these unofficial ones
15915 can.
15916
15917 See rclone issue #2243 (https://github.com/rclone/rclone/issues/2243)
15918 for background, this google drive issue (https://issuetrack‐
15919 er.google.com/issues/36761333) and this helpful post (https://www.lab‐
15920 nol.org/internet/direct-links-for-google-drive/28356/).
15921
15922 · Config: alternate_export
15923
15924 · Env Var: RCLONE_DRIVE_ALTERNATE_EXPORT
15925
15926 · Type: bool
15927
15928 · Default: false
15929
15930 –drive-upload-cutoff
15931 Cutoff for switching to chunked upload
15932
15933 · Config: upload_cutoff
15934
15935 · Env Var: RCLONE_DRIVE_UPLOAD_CUTOFF
15936
15937 · Type: SizeSuffix
15938
15939 · Default: 8M
15940
15941 –drive-chunk-size
15942 Upload chunk size. Must a power of 2 >= 256k.
15943
15944 Making this larger will improve performance, but note that each chunk
15945 is buffered in memory one per transfer.
15946
15947 Reducing this will reduce memory usage but decrease performance.
15948
15949 · Config: chunk_size
15950
15951 · Env Var: RCLONE_DRIVE_CHUNK_SIZE
15952
15953 · Type: SizeSuffix
15954
15955 · Default: 8M
15956
15957 –drive-acknowledge-abuse
15958 Set to allow files which return cannotDownloadAbusiveFile to be down‐
15959 loaded.
15960
15961 If downloading a file returns the error “This file has been identified
15962 as malware or spam and cannot be downloaded” with the error code “can‐
15963 notDownloadAbusiveFile” then supply this flag to rclone to indicate you
15964 acknowledge the risks of downloading the file and rclone will download
15965 it anyway.
15966
15967 · Config: acknowledge_abuse
15968
15969 · Env Var: RCLONE_DRIVE_ACKNOWLEDGE_ABUSE
15970
15971 · Type: bool
15972
15973 · Default: false
15974
15975 –drive-keep-revision-forever
15976 Keep new head revision of each file forever.
15977
15978 · Config: keep_revision_forever
15979
15980 · Env Var: RCLONE_DRIVE_KEEP_REVISION_FOREVER
15981
15982 · Type: bool
15983
15984 · Default: false
15985
15986 –drive-size-as-quota
15987 Show sizes as storage quota usage, not actual size.
15988
15989 Show the size of a file as the the storage quota used. This is the
15990 current version plus any older versions that have been set to keep for‐
15991 ever.
15992
15993 WARNING: This flag may have some unexpected consequences.
15994
15995 It is not recommended to set this flag in your config - the recommended
15996 usage is using the flag form –drive-size-as-quota when doing rclone
15997 ls/lsl/lsf/lsjson/etc only.
15998
15999 If you do use this flag for syncing (not recommended) then you will
16000 need to use –ignore size also.
16001
16002 · Config: size_as_quota
16003
16004 · Env Var: RCLONE_DRIVE_SIZE_AS_QUOTA
16005
16006 · Type: bool
16007
16008 · Default: false
16009
16010 –drive-v2-download-min-size
16011 If Object’s are greater, use drive v2 API to download.
16012
16013 · Config: v2_download_min_size
16014
16015 · Env Var: RCLONE_DRIVE_V2_DOWNLOAD_MIN_SIZE
16016
16017 · Type: SizeSuffix
16018
16019 · Default: off
16020
16021 –drive-pacer-min-sleep
16022 Minimum time to sleep between API calls.
16023
16024 · Config: pacer_min_sleep
16025
16026 · Env Var: RCLONE_DRIVE_PACER_MIN_SLEEP
16027
16028 · Type: Duration
16029
16030 · Default: 100ms
16031
16032 –drive-pacer-burst
16033 Number of API calls to allow without sleeping.
16034
16035 · Config: pacer_burst
16036
16037 · Env Var: RCLONE_DRIVE_PACER_BURST
16038
16039 · Type: int
16040
16041 · Default: 100
16042
16043 –drive-server-side-across-configs
16044 Allow server side operations (eg copy) to work across different drive
16045 configs.
16046
16047 This can be useful if you wish to do a server side copy between two
16048 different Google drives. Note that this isn’t enabled by default be‐
16049 cause it isn’t easy to tell if it will work between any two configura‐
16050 tions.
16051
16052 · Config: server_side_across_configs
16053
16054 · Env Var: RCLONE_DRIVE_SERVER_SIDE_ACROSS_CONFIGS
16055
16056 · Type: bool
16057
16058 · Default: false
16059
16060 –drive-disable-http2
16061 Disable drive using http2
16062
16063 There is currently an unsolved issue with the google drive backend and
16064 HTTP/2. HTTP/2 is therefore disabled by default for the drive backend
16065 but can be re-enabled here. When the issue is solved this flag will be
16066 removed.
16067
16068 See: https://github.com/rclone/rclone/issues/3631
16069
16070 · Config: disable_http2
16071
16072 · Env Var: RCLONE_DRIVE_DISABLE_HTTP2
16073
16074 · Type: bool
16075
16076 · Default: true
16077
16078 –drive-stop-on-upload-limit
16079 Make upload limit errors be fatal
16080
16081 At the time of writing it is only possible to upload 750GB of data to
16082 Google Drive a day (this is an undocumented limit). When this limit is
16083 reached Google Drive produces a slightly different error message. When
16084 this flag is set it causes these errors to be fatal. These will stop
16085 the in-progress sync.
16086
16087 Note that this detection is relying on error message strings which
16088 Google don’t document so it may break in the future.
16089
16090 See: https://github.com/rclone/rclone/issues/3857
16091
16092 · Config: stop_on_upload_limit
16093
16094 · Env Var: RCLONE_DRIVE_STOP_ON_UPLOAD_LIMIT
16095
16096 · Type: bool
16097
16098 · Default: false
16099
16100 –drive-encoding
16101 This sets the encoding for the backend.
16102
16103 See: the encoding section in the overview (/overview/#encoding) for
16104 more info.
16105
16106 · Config: encoding
16107
16108 · Env Var: RCLONE_DRIVE_ENCODING
16109
16110 · Type: MultiEncoder
16111
16112 · Default: InvalidUtf8
16113
16114 Limitations
16115 Drive has quite a lot of rate limiting. This causes rclone to be lim‐
16116 ited to transferring about 2 files per second only. Individual files
16117 may be transferred much faster at 100s of MBytes/s but lots of small
16118 files can take a long time.
16119
16120 Server side copies are also subject to a separate rate limit. If you
16121 see User rate limit exceeded errors, wait at least 24 hours and retry.
16122 You can disable server side copies with --disable copy to download and
16123 upload the files if you prefer.
16124
16125 Limitations of Google Docs
16126 Google docs will appear as size -1 in rclone ls and as size 0 in any‐
16127 thing which uses the VFS layer, eg rclone mount, rclone serve.
16128
16129 This is because rclone can’t find out the size of the Google docs with‐
16130 out downloading them.
16131
16132 Google docs will transfer correctly with rclone sync, rclone copy etc
16133 as rclone knows to ignore the size when doing the transfer.
16134
16135 However an unfortunate consequence of this is that you may not be able
16136 to download Google docs using rclone mount. If it doesn’t work you
16137 will get a 0 sized file. If you try again the doc may gain its correct
16138 size and be downloadable. Whther it will work on not depends on the
16139 application accessing the mount and the OS you are running - experiment
16140 to find out if it does work for you!
16141
16142 Duplicated files
16143 Sometimes, for no reason I’ve been able to track down, drive will du‐
16144 plicate a file that rclone uploads. Drive unlike all the other remotes
16145 can have duplicated files.
16146
16147 Duplicated files cause problems with the syncing and you will see mes‐
16148 sages in the log about duplicates.
16149
16150 Use rclone dedupe to fix duplicated files.
16151
16152 Note that this isn’t just a problem with rclone, even Google Photos on
16153 Android duplicates files on drive sometimes.
16154
16155 Rclone appears to be re-copying files it shouldn’t
16156 The most likely cause of this is the duplicated file issue above - run
16157 rclone dedupe and check your logs for duplicate object or directory
16158 messages.
16159
16160 This can also be caused by a delay/caching on google drive’s end when
16161 comparing directory listings. Specifically with team drives used in
16162 combination with –fast-list. Files that were uploaded recently may not
16163 appear on the directory list sent to rclone when using –fast-list.
16164
16165 Waiting a moderate period of time between attempts (estimated to be ap‐
16166 proximately 1 hour) and/or not using –fast-list both seem to be effec‐
16167 tive in preventing the problem.
16168
16169 Making your own client_id
16170 When you use rclone with Google drive in its default configuration you
16171 are using rclone’s client_id. This is shared between all the rclone
16172 users. There is a global rate limit on the number of queries per sec‐
16173 ond that each client_id can do set by Google. rclone already has a
16174 high quota and I will continue to make sure it is high enough by con‐
16175 tacting Google.
16176
16177 It is strongly recommended to use your own client ID as the default
16178 rclone ID is heavily used. If you have multiple services running, it
16179 is recommended to use an API key for each service. The default Google
16180 quota is 10 transactions per second so it is recommended to stay under
16181 that number as if you use more than that, it will cause rclone to rate
16182 limit and make things slower.
16183
16184 Here is how to create your own Google Drive client ID for rclone:
16185
16186 1. Log into the Google API Console (https://console.develop‐
16187 ers.google.com/) with your Google account. It doesn’t matter what
16188 Google account you use. (It need not be the same account as the
16189 Google Drive you want to access)
16190
16191 2. Select a project or create a new project.
16192
16193 3. Under “ENABLE APIS AND SERVICES” search for “Drive”, and enable the
16194 “Google Drive API”.
16195
16196 4. Click “Credentials” in the left-side panel (not “Create creden‐
16197 tials”, which opens the wizard), then “Create credentials”, then
16198 “OAuth client ID”. It will prompt you to set the OAuth consent
16199 screen product name, if you haven’t set one already.
16200
16201 5. Choose an application type of “other”, and click “Create”. (the de‐
16202 fault name is fine)
16203
16204 6. It will show you a client ID and client secret. Use these values in
16205 rclone config to add a new remote or edit an existing remote.
16206
16207 (Thanks to @balazer on github for these instructions.)
16208
16209 Google Photos
16210 The rclone backend for Google Photos (https://www.google.com/pho‐
16211 tos/about/) is a specialized backend for transferring photos and videos
16212 to and from Google Photos.
16213
16214 NB The Google Photos API which rclone uses has quite a few limitations,
16215 so please read the limitations section carefully to make sure it is
16216 suitable for your use.
16217
16218 Configuring Google Photos
16219 The initial setup for google cloud storage involves getting a token
16220 from Google Photos which you need to do in your browser. rclone config
16221 walks you through it.
16222
16223 Here is an example of how to make a remote called remote. First run:
16224
16225 rclone config
16226
16227 This will guide you through an interactive setup process:
16228
16229 No remotes found - make a new one
16230 n) New remote
16231 s) Set configuration password
16232 q) Quit config
16233 n/s/q> n
16234 name> remote
16235 Type of storage to configure.
16236 Enter a string value. Press Enter for the default ("").
16237 Choose a number from below, or type in your own value
16238 [snip]
16239 XX / Google Photos
16240 \ "google photos"
16241 [snip]
16242 Storage> google photos
16243 ** See help for google photos backend at: https://rclone.org/googlephotos/ **
16244
16245 Google Application Client Id
16246 Leave blank normally.
16247 Enter a string value. Press Enter for the default ("").
16248 client_id>
16249 Google Application Client Secret
16250 Leave blank normally.
16251 Enter a string value. Press Enter for the default ("").
16252 client_secret>
16253 Set to make the Google Photos backend read only.
16254
16255 If you choose read only then rclone will only request read only access
16256 to your photos, otherwise rclone will request full access.
16257 Enter a boolean value (true or false). Press Enter for the default ("false").
16258 read_only>
16259 Edit advanced config? (y/n)
16260 y) Yes
16261 n) No
16262 y/n> n
16263 Remote config
16264 Use auto config?
16265 * Say Y if not sure
16266 * Say N if you are working on a remote or headless machine
16267 y) Yes
16268 n) No
16269 y/n> y
16270 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
16271 Log in and authorize rclone for access
16272 Waiting for code...
16273 Got code
16274
16275 *** IMPORTANT: All media items uploaded to Google Photos with rclone
16276 *** are stored in full resolution at original quality. These uploads
16277 *** will count towards storage in your Google Account.
16278
16279 --------------------
16280 [remote]
16281 type = google photos
16282 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2019-06-28T17:38:04.644930156+01:00"}
16283 --------------------
16284 y) Yes this is OK
16285 e) Edit this remote
16286 d) Delete this remote
16287 y/e/d> y
16288
16289 Note that rclone runs a webserver on your local machine to collect the
16290 token as returned from Google if you use auto config mode. This only
16291 runs from the moment it opens your browser to the moment you get back
16292 the verification code. This is on http://127.0.0.1:53682/ and this may
16293 require you to unblock it temporarily if you are running a host fire‐
16294 wall, or use manual mode.
16295
16296 This remote is called remote and can now be used like this
16297
16298 See all the albums in your photos
16299
16300 rclone lsd remote:album
16301
16302 Make a new album
16303
16304 rclone mkdir remote:album/newAlbum
16305
16306 List the contents of an album
16307
16308 rclone ls remote:album/newAlbum
16309
16310 Sync /home/local/images to the Google Photos, removing any excess files
16311 in the album.
16312
16313 rclone sync /home/local/image remote:album/newAlbum
16314
16315 Layout
16316 As Google Photos is not a general purpose cloud storage system the
16317 backend is laid out to help you navigate it.
16318
16319 The directories under media show different ways of categorizing the me‐
16320 dia. Each file will appear multiple times. So if you want to make a
16321 backup of your google photos you might choose to backup remote:me‐
16322 dia/by-month. (NB remote:media/by-day is rather slow at the moment so
16323 avoid for syncing.)
16324
16325 Note that all your photos and videos will appear somewhere under media,
16326 but they may not appear under album unless you’ve put them into albums.
16327
16328 /
16329 - upload
16330 - file1.jpg
16331 - file2.jpg
16332 - ...
16333 - media
16334 - all
16335 - file1.jpg
16336 - file2.jpg
16337 - ...
16338 - by-year
16339 - 2000
16340 - file1.jpg
16341 - ...
16342 - 2001
16343 - file2.jpg
16344 - ...
16345 - ...
16346 - by-month
16347 - 2000
16348 - 2000-01
16349 - file1.jpg
16350 - ...
16351 - 2000-02
16352 - file2.jpg
16353 - ...
16354 - ...
16355 - by-day
16356 - 2000
16357 - 2000-01-01
16358 - file1.jpg
16359 - ...
16360 - 2000-01-02
16361 - file2.jpg
16362 - ...
16363 - ...
16364 - album
16365 - album name
16366 - album name/sub
16367 - shared-album
16368 - album name
16369 - album name/sub
16370
16371 There are two writable parts of the tree, the upload directory and sub
16372 directories of the the album directory.
16373
16374 The upload directory is for uploading files you don’t want to put into
16375 albums. This will be empty to start with and will contain the files
16376 you’ve uploaded for one rclone session only, becoming empty again when
16377 you restart rclone. The use case for this would be if you have a load
16378 of files you just want to once off dump into Google Photos. For re‐
16379 peated syncing, uploading to album will work better.
16380
16381 Directories within the album directory are also writeable and you may
16382 create new directories (albums) under album. If you copy files with a
16383 directory hierarchy in there then rclone will create albums with the /
16384 character in them. For example if you do
16385
16386 rclone copy /path/to/images remote:album/images
16387
16388 and the images directory contains
16389
16390 images
16391 - file1.jpg
16392 dir
16393 file2.jpg
16394 dir2
16395 dir3
16396 file3.jpg
16397
16398 Then rclone will create the following albums with the following files
16399 in
16400
16401 · images
16402
16403 · file1.jpg
16404
16405 · images/dir
16406
16407 · file2.jpg
16408
16409 · images/dir2/dir3
16410
16411 · file3.jpg
16412
16413 This means that you can use the album path pretty much like a normal
16414 filesystem and it is a good target for repeated syncing.
16415
16416 The shared-album directory shows albums shared with you or by you.
16417 This is similar to the Sharing tab in the Google Photos web interface.
16418
16419 Limitations
16420 Only images and videos can be uploaded. If you attempt to upload non
16421 videos or images or formats that Google Photos doesn’t understand,
16422 rclone will upload the file, then Google Photos will give an error when
16423 it is put turned into a media item.
16424
16425 Note that all media items uploaded to Google Photos through the API are
16426 stored in full resolution at “original quality” and will count towards
16427 your storage quota in your Google Account. The API does not offer a
16428 way to upload in “high quality” mode..
16429
16430 Downloading Images
16431 When Images are downloaded this strips EXIF location (according to the
16432 docs and my tests). This is a limitation of the Google Photos API and
16433 is covered by bug #112096115 (https://issuetracker.google.com/is‐
16434 sues/112096115).
16435
16436 The current google API does not allow photos to be downloaded at origi‐
16437 nal resolution. This is very important if you are, for example, relying
16438 on “Google Photos” as a backup of your photos. You will not be able to
16439 use rclone to redownload original images. You could use `google take‐
16440 out' to recover the original photos as a last resort
16441
16442 Downloading Videos
16443 When videos are downloaded they are downloaded in a really compressed
16444 version of the video compared to downloading it via the Google Photos
16445 web interface. This is covered by bug #113672044 (https://issuetrack‐
16446 er.google.com/issues/113672044).
16447
16448 Duplicates
16449 If a file name is duplicated in a directory then rclone will add the
16450 file ID into its name. So two files called file.jpg would then appear
16451 as file {123456}.jpg and file {ABCDEF}.jpg (the actual IDs are a lot
16452 longer alas!).
16453
16454 If you upload the same image (with the same binary data) twice then
16455 Google Photos will deduplicate it. However it will retain the filename
16456 from the first upload which may confuse rclone. For example if you up‐
16457 loaded an image to upload then uploaded the same image to album/my_al‐
16458 bum the filename of the image in album/my_album will be what it was up‐
16459 loaded with initially, not what you uploaded it with to album. In
16460 practise this shouldn’t cause too many problems.
16461
16462 Modified time
16463 The date shown of media in Google Photos is the creation date as deter‐
16464 mined by the EXIF information, or the upload date if that is not known.
16465
16466 This is not changeable by rclone and is not the modification date of
16467 the media on local disk. This means that rclone cannot use the dates
16468 from Google Photos for syncing purposes.
16469
16470 Size
16471 The Google Photos API does not return the size of media. This means
16472 that when syncing to Google Photos, rclone can only do a file existence
16473 check.
16474
16475 It is possible to read the size of the media, but this needs an extra
16476 HTTP HEAD request per media item so is very slow and uses up a lot of
16477 transactions. This can be enabled with the --gphotos-read-size option
16478 or the read_size = true config parameter.
16479
16480 If you want to use the backend with rclone mount you may need to enable
16481 this flag (depending on your OS and application using the photos) oth‐
16482 erwise you may not be able to read media off the mount. You’ll need to
16483 experiment to see if it works for you without the flag.
16484
16485 Albums
16486 Rclone can only upload files to albums it created. This is a limita‐
16487 tion of the Google Photos API (https://developers.google.com/photos/li‐
16488 brary/guides/manage-albums).
16489
16490 Rclone can remove files it uploaded from albums it created only.
16491
16492 Deleting files
16493 Rclone can remove files from albums it created, but note that the
16494 Google Photos API does not allow media to be deleted permanently so
16495 this media will still remain. See bug #109759781 (https://issuetrack‐
16496 er.google.com/issues/109759781).
16497
16498 Rclone cannot delete files anywhere except under album.
16499
16500 Deleting albums
16501 The Google Photos API does not support deleting albums - see bug
16502 #135714733 (https://issuetracker.google.com/issues/135714733).
16503
16504 Standard Options
16505 Here are the standard options specific to google photos (Google Pho‐
16506 tos).
16507
16508 –gphotos-client-id
16509 Google Application Client Id Leave blank normally.
16510
16511 · Config: client_id
16512
16513 · Env Var: RCLONE_GPHOTOS_CLIENT_ID
16514
16515 · Type: string
16516
16517 · Default: ""
16518
16519 –gphotos-client-secret
16520 Google Application Client Secret Leave blank normally.
16521
16522 · Config: client_secret
16523
16524 · Env Var: RCLONE_GPHOTOS_CLIENT_SECRET
16525
16526 · Type: string
16527
16528 · Default: ""
16529
16530 –gphotos-read-only
16531 Set to make the Google Photos backend read only.
16532
16533 If you choose read only then rclone will only request read only access
16534 to your photos, otherwise rclone will request full access.
16535
16536 · Config: read_only
16537
16538 · Env Var: RCLONE_GPHOTOS_READ_ONLY
16539
16540 · Type: bool
16541
16542 · Default: false
16543
16544 Advanced Options
16545 Here are the advanced options specific to google photos (Google Pho‐
16546 tos).
16547
16548 –gphotos-read-size
16549 Set to read the size of media items.
16550
16551 Normally rclone does not read the size of media items since this takes
16552 another transaction. This isn’t necessary for syncing. However rclone
16553 mount needs to know the size of files in advance of reading them, so
16554 setting this flag when using rclone mount is recommended if you want to
16555 read the media.
16556
16557 · Config: read_size
16558
16559 · Env Var: RCLONE_GPHOTOS_READ_SIZE
16560
16561 · Type: bool
16562
16563 · Default: false
16564
16565 HTTP
16566 The HTTP remote is a read only remote for reading files of a webserver.
16567 The webserver should provide file listings which rclone will read and
16568 turn into a remote. This has been tested with common webservers such
16569 as Apache/Nginx/Caddy and will likely work with file listings from most
16570 web servers. (If it doesn’t then please file an issue, or send a pull
16571 request!)
16572
16573 Paths are specified as remote: or remote:path/to/dir.
16574
16575 Here is an example of how to make a remote called remote. First run:
16576
16577 rclone config
16578
16579 This will guide you through an interactive setup process:
16580
16581 No remotes found - make a new one
16582 n) New remote
16583 s) Set configuration password
16584 q) Quit config
16585 n/s/q> n
16586 name> remote
16587 Type of storage to configure.
16588 Choose a number from below, or type in your own value
16589 [snip]
16590 XX / http Connection
16591 \ "http"
16592 [snip]
16593 Storage> http
16594 URL of http host to connect to
16595 Choose a number from below, or type in your own value
16596 1 / Connect to example.com
16597 \ "https://example.com"
16598 url> https://beta.rclone.org
16599 Remote config
16600 --------------------
16601 [remote]
16602 url = https://beta.rclone.org
16603 --------------------
16604 y) Yes this is OK
16605 e) Edit this remote
16606 d) Delete this remote
16607 y/e/d> y
16608 Current remotes:
16609
16610 Name Type
16611 ==== ====
16612 remote http
16613
16614 e) Edit existing remote
16615 n) New remote
16616 d) Delete remote
16617 r) Rename remote
16618 c) Copy remote
16619 s) Set configuration password
16620 q) Quit config
16621 e/n/d/r/c/s/q> q
16622
16623 This remote is called remote and can now be used like this
16624
16625 See all the top level directories
16626
16627 rclone lsd remote:
16628
16629 List the contents of a directory
16630
16631 rclone ls remote:directory
16632
16633 Sync the remote directory to /home/local/directory, deleting any excess
16634 files.
16635
16636 rclone sync remote:directory /home/local/directory
16637
16638 Read only
16639 This remote is read only - you can’t upload files to an HTTP server.
16640
16641 Modified time
16642 Most HTTP servers store time accurate to 1 second.
16643
16644 Checksum
16645 No checksums are stored.
16646
16647 Usage without a config file
16648 Since the http remote only has one config parameter it is easy to use
16649 without a config file:
16650
16651 rclone lsd --http-url https://beta.rclone.org :http:
16652
16653 Standard Options
16654 Here are the standard options specific to http (http Connection).
16655
16656 –http-url
16657 URL of http host to connect to
16658
16659 · Config: url
16660
16661 · Env Var: RCLONE_HTTP_URL
16662
16663 · Type: string
16664
16665 · Default: ""
16666
16667 · Examples:
16668
16669 · “https://example.com”
16670
16671 · Connect to example.com
16672
16673 · “https://user:pass@example.com”
16674
16675 · Connect to example.com using a username and password
16676
16677 Advanced Options
16678 Here are the advanced options specific to http (http Connection).
16679
16680 –http-headers
16681 Set HTTP headers for all transactions
16682
16683 Use this to set additional HTTP headers for all transactions
16684
16685 The input format is comma separated list of key,value pairs. Standard
16686 CSV encoding (https://godoc.org/encoding/csv) may be used.
16687
16688 For example to set a Cookie use `Cookie,name=value', or `“Cook‐
16689 ie”,“name=value”'.
16690
16691 You can set multiple headers, eg `“Cookie”,“name=value”,“Authoriza‐
16692 tion”,“xxx”'.
16693
16694 · Config: headers
16695
16696 · Env Var: RCLONE_HTTP_HEADERS
16697
16698 · Type: CommaSepList
16699
16700 · Default:
16701
16702 –http-no-slash
16703 Set this if the site doesn’t end directories with /
16704
16705 Use this if your target website does not use / on the end of directo‐
16706 ries.
16707
16708 A / on the end of a path is how rclone normally tells the difference
16709 between files and directories. If this flag is set, then rclone will
16710 treat all files with Content-Type: text/html as directories and read
16711 URLs from them rather than downloading them.
16712
16713 Note that this may cause rclone to confuse genuine HTML files with di‐
16714 rectories.
16715
16716 · Config: no_slash
16717
16718 · Env Var: RCLONE_HTTP_NO_SLASH
16719
16720 · Type: bool
16721
16722 · Default: false
16723
16724 –http-no-head
16725 Don’t use HEAD requests to find file sizes in dir listing
16726
16727 If your site is being very slow to load then you can try this option.
16728 Normally rclone does a HEAD request for each potential file in a direc‐
16729 tory listing to:
16730
16731 · find its size
16732
16733 · check it really exists
16734
16735 · check to see if it is a directory
16736
16737 If you set this option, rclone will not do the HEAD request. This will
16738 mean
16739
16740 · directory listings are much quicker
16741
16742 · rclone won’t have the times or sizes of any files
16743
16744 · some files that don’t exist may be in the listing
16745
16746 · Config: no_head
16747
16748 · Env Var: RCLONE_HTTP_NO_HEAD
16749
16750 · Type: bool
16751
16752 · Default: false
16753
16754 Hubic
16755 Paths are specified as remote:path
16756
16757 Paths are specified as remote:container (or remote: for the lsd com‐
16758 mand.) You may put subdirectories in too, eg remote:contain‐
16759 er/path/to/dir.
16760
16761 The initial setup for Hubic involves getting a token from Hubic which
16762 you need to do in your browser. rclone config walks you through it.
16763
16764 Here is an example of how to make a remote called remote. First run:
16765
16766 rclone config
16767
16768 This will guide you through an interactive setup process:
16769
16770 n) New remote
16771 s) Set configuration password
16772 n/s> n
16773 name> remote
16774 Type of storage to configure.
16775 Choose a number from below, or type in your own value
16776 [snip]
16777 XX / Hubic
16778 \ "hubic"
16779 [snip]
16780 Storage> hubic
16781 Hubic Client Id - leave blank normally.
16782 client_id>
16783 Hubic Client Secret - leave blank normally.
16784 client_secret>
16785 Remote config
16786 Use auto config?
16787 * Say Y if not sure
16788 * Say N if you are working on a remote or headless machine
16789 y) Yes
16790 n) No
16791 y/n> y
16792 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
16793 Log in and authorize rclone for access
16794 Waiting for code...
16795 Got code
16796 --------------------
16797 [remote]
16798 client_id =
16799 client_secret =
16800 token = {"access_token":"XXXXXX"}
16801 --------------------
16802 y) Yes this is OK
16803 e) Edit this remote
16804 d) Delete this remote
16805 y/e/d> y
16806
16807 See the remote setup docs (https://rclone.org/remote_setup/) for how to
16808 set it up on a machine with no Internet browser available.
16809
16810 Note that rclone runs a webserver on your local machine to collect the
16811 token as returned from Hubic. This only runs from the moment it opens
16812 your browser to the moment you get back the verification code. This is
16813 on http://127.0.0.1:53682/ and this it may require you to unblock it
16814 temporarily if you are running a host firewall.
16815
16816 Once configured you can then use rclone like this,
16817
16818 List containers in the top level of your Hubic
16819
16820 rclone lsd remote:
16821
16822 List all the files in your Hubic
16823
16824 rclone ls remote:
16825
16826 To copy a local directory to an Hubic directory called backup
16827
16828 rclone copy /home/source remote:backup
16829
16830 If you want the directory to be visible in the official Hubic browser,
16831 you need to copy your files to the default directory
16832
16833 rclone copy /home/source remote:default/backup
16834
16835 –fast-list
16836 This remote supports --fast-list which allows you to use fewer transac‐
16837 tions in exchange for more memory. See the rclone docs (/docs/#fast-
16838 list) for more details.
16839
16840 Modified time
16841 The modified time is stored as metadata on the object as X-Ob‐
16842 ject-Meta-Mtime as floating point since the epoch accurate to 1 ns.
16843
16844 This is a de facto standard (used in the official python-swiftclient
16845 amongst others) for storing the modification time for an object.
16846
16847 Note that Hubic wraps the Swift backend, so most of the properties of
16848 are the same.
16849
16850 Standard Options
16851 Here are the standard options specific to hubic (Hubic).
16852
16853 –hubic-client-id
16854 Hubic Client Id Leave blank normally.
16855
16856 · Config: client_id
16857
16858 · Env Var: RCLONE_HUBIC_CLIENT_ID
16859
16860 · Type: string
16861
16862 · Default: ""
16863
16864 –hubic-client-secret
16865 Hubic Client Secret Leave blank normally.
16866
16867 · Config: client_secret
16868
16869 · Env Var: RCLONE_HUBIC_CLIENT_SECRET
16870
16871 · Type: string
16872
16873 · Default: ""
16874
16875 Advanced Options
16876 Here are the advanced options specific to hubic (Hubic).
16877
16878 –hubic-chunk-size
16879 Above this size files will be chunked into a _segments container.
16880
16881 Above this size files will be chunked into a _segments container. The
16882 default for this is 5GB which is its maximum value.
16883
16884 · Config: chunk_size
16885
16886 · Env Var: RCLONE_HUBIC_CHUNK_SIZE
16887
16888 · Type: SizeSuffix
16889
16890 · Default: 5G
16891
16892 –hubic-no-chunk
16893 Don’t chunk files during streaming upload.
16894
16895 When doing streaming uploads (eg using rcat or mount) setting this flag
16896 will cause the swift backend to not upload chunked files.
16897
16898 This will limit the maximum upload size to 5GB. However non chunked
16899 files are easier to deal with and have an MD5SUM.
16900
16901 Rclone will still chunk files bigger than chunk_size when doing normal
16902 copy operations.
16903
16904 · Config: no_chunk
16905
16906 · Env Var: RCLONE_HUBIC_NO_CHUNK
16907
16908 · Type: bool
16909
16910 · Default: false
16911
16912 –hubic-encoding
16913 This sets the encoding for the backend.
16914
16915 See: the encoding section in the overview (/overview/#encoding) for
16916 more info.
16917
16918 · Config: encoding
16919
16920 · Env Var: RCLONE_HUBIC_ENCODING
16921
16922 · Type: MultiEncoder
16923
16924 · Default: Slash,InvalidUtf8
16925
16926 Limitations
16927 This uses the normal OpenStack Swift mechanism to refresh the Swift API
16928 credentials and ignores the expires field returned by the Hubic API.
16929
16930 The Swift API doesn’t return a correct MD5SUM for segmented files (Dy‐
16931 namic or Static Large Objects) so rclone won’t check or use the MD5SUM
16932 for these.
16933
16934 Jottacloud
16935 Paths are specified as remote:path
16936
16937 Paths may be as deep as required, eg remote:directory/subdirectory.
16938
16939 To configure Jottacloud you will need to generate a personal security
16940 token in the Jottacloud web inteface. You will the option to do in
16941 your account security settings (https://www.jottacloud.com/web/secure).
16942 Note that the web inteface may refer to this token as a JottaCli token.
16943
16944 Here is an example of how to make a remote called remote. First run:
16945
16946 rclone config
16947
16948 This will guide you through an interactive setup process:
16949
16950 No remotes found - make a new one
16951 n) New remote
16952 s) Set configuration password
16953 q) Quit config
16954 n/s/q> n
16955 name> jotta
16956 Type of storage to configure.
16957 Enter a string value. Press Enter for the default ("").
16958 Choose a number from below, or type in your own value
16959 [snip]
16960 XX / JottaCloud
16961 \ "jottacloud"
16962 [snip]
16963 Storage> jottacloud
16964 ** See help for jottacloud backend at: https://rclone.org/jottacloud/ **
16965
16966 Edit advanced config? (y/n)
16967 y) Yes
16968 n) No
16969 y/n> n
16970 Remote config
16971
16972 Generate a personal login token here: https://www.jottacloud.com/web/secure
16973 Login Token> <your token here>
16974
16975 Do you want to use a non standard device/mountpoint e.g. for accessing files uploaded using the official Jottacloud client?
16976
16977 y) Yes
16978 n) No
16979 y/n> y
16980 Please select the device to use. Normally this will be Jotta
16981 Choose a number from below, or type in an existing value
16982 1 > DESKTOP-3H31129
16983 2 > fla1
16984 3 > Jotta
16985 Devices> 3
16986 Please select the mountpoint to user. Normally this will be Archive
16987 Choose a number from below, or type in an existing value
16988 1 > Archive
16989 2 > Shared
16990 3 > Sync
16991 Mountpoints> 1
16992 --------------------
16993 [jotta]
16994 type = jottacloud
16995 user = 0xC4KE@gmail.com
16996 token = {........}
16997 device = Jotta
16998 mountpoint = Archive
16999 configVersion = 1
17000 --------------------
17001 y) Yes this is OK
17002 e) Edit this remote
17003 d) Delete this remote
17004 y/e/d> y
17005
17006 Once configured you can then use rclone like this,
17007
17008 List directories in top level of your Jottacloud
17009
17010 rclone lsd remote:
17011
17012 List all the files in your Jottacloud
17013
17014 rclone ls remote:
17015
17016 To copy a local directory to an Jottacloud directory called backup
17017
17018 rclone copy /home/source remote:backup
17019
17020 Devices and Mountpoints
17021 The official Jottacloud client registers a device for each computer you
17022 install it on and then creates a mountpoint for each folder you select
17023 for Backup. The web interface uses a special device called Jotta for
17024 the Archive, Sync and Shared mountpoints. In most cases you’ll want to
17025 use the Jotta/Archive device/mounpoint however if you want to access
17026 files uploaded by any of the official clients rclone provides the op‐
17027 tion to select other devices and mountpoints during config.
17028
17029 –fast-list
17030 This remote supports --fast-list which allows you to use fewer transac‐
17031 tions in exchange for more memory. See the rclone docs (/docs/#fast-
17032 list) for more details.
17033
17034 Note that the implementation in Jottacloud always uses only a single
17035 API request to get the entire list, so for large folders this could
17036 lead to long wait time before the first results are shown.
17037
17038 Modified time and hashes
17039 Jottacloud allows modification times to be set on objects accurate to 1
17040 second. These will be used to detect whether objects need syncing or
17041 not.
17042
17043 Jottacloud supports MD5 type hashes, so you can use the --checksum
17044 flag.
17045
17046 Note that Jottacloud requires the MD5 hash before upload so if the
17047 source does not have an MD5 checksum then the file will be cached tem‐
17048 porarily on disk (wherever the TMPDIR environment variable points to)
17049 before it is uploaded. Small files will be cached in memory - see the
17050 --jottacloud-md5-memory-limit flag.
17051
17052 Restricted filename characters
17053 In addition to the default restricted characters set (/overview/#re‐
17054 stricted-characters) the following characters are also replaced:
17055
17056 Character Value Replacement
17057 ────────────────────────────────
17058 " 0x22 "
17059 * 0x2A *
17060 : 0x3A :
17061 < 0x3C <
17062
17063 > 0x3E >
17064 ? 0x3F ?
17065 | 0x7C |
17066
17067 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
17068 they can’t be used in XML strings.
17069
17070 Deleting files
17071 By default rclone will send all files to the trash when deleting files.
17072 Due to a lack of API documentation emptying the trash is currently only
17073 possible via the Jottacloud website. If deleting permanently is re‐
17074 quired then use the --jottacloud-hard-delete flag, or set the equiva‐
17075 lent environment variable.
17076
17077 Versions
17078 Jottacloud supports file versioning. When rclone uploads a new version
17079 of a file it creates a new version of it. Currently rclone only sup‐
17080 ports retrieving the current version but older versions can be accessed
17081 via the Jottacloud Website.
17082
17083 Quota information
17084 To view your current quota you can use the rclone about remote: command
17085 which will display your usage limit (unless it is unlimited) and the
17086 current usage.
17087
17088 Device IDs
17089 Jottacloud requires each `device' to be registered. Rclone brings such
17090 a registration to easily access your account but if you want to use
17091 Jottacloud together with rclone on multiple machines you NEED to create
17092 a seperate deviceID/deviceSecrect on each machine. You will asked dur‐
17093 ing setting up the remote. Please be aware that this also means that
17094 copying the rclone config from one machine to another does NOT work
17095 with Jottacloud accounts. You have to create it on each machine.
17096
17097 Advanced Options
17098 Here are the advanced options specific to jottacloud (JottaCloud).
17099
17100 –jottacloud-md5-memory-limit
17101 Files bigger than this will be cached on disk to calculate the MD5 if
17102 required.
17103
17104 · Config: md5_memory_limit
17105
17106 · Env Var: RCLONE_JOTTACLOUD_MD5_MEMORY_LIMIT
17107
17108 · Type: SizeSuffix
17109
17110 · Default: 10M
17111
17112 –jottacloud-hard-delete
17113 Delete files permanently rather than putting them into the trash.
17114
17115 · Config: hard_delete
17116
17117 · Env Var: RCLONE_JOTTACLOUD_HARD_DELETE
17118
17119 · Type: bool
17120
17121 · Default: false
17122
17123 –jottacloud-unlink
17124 Remove existing public link to file/folder with link command rather
17125 than creating. Default is false, meaning link command will create or
17126 retrieve public link.
17127
17128 · Config: unlink
17129
17130 · Env Var: RCLONE_JOTTACLOUD_UNLINK
17131
17132 · Type: bool
17133
17134 · Default: false
17135
17136 –jottacloud-upload-resume-limit
17137 Files bigger than this can be resumed if the upload fail’s.
17138
17139 · Config: upload_resume_limit
17140
17141 · Env Var: RCLONE_JOTTACLOUD_UPLOAD_RESUME_LIMIT
17142
17143 · Type: SizeSuffix
17144
17145 · Default: 10M
17146
17147 –jottacloud-encoding
17148 This sets the encoding for the backend.
17149
17150 See: the encoding section in the overview (/overview/#encoding) for
17151 more info.
17152
17153 · Config: encoding
17154
17155 · Env Var: RCLONE_JOTTACLOUD_ENCODING
17156
17157 · Type: MultiEncoder
17158
17159 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Aster‐
17160 isk,Pipe,Del,Ctl,InvalidUtf8,Dot
17161
17162 Limitations
17163 Note that Jottacloud is case insensitive so you can’t have a file
17164 called “Hello.doc” and one called “hello.doc”.
17165
17166 There are quite a few characters that can’t be in Jottacloud file
17167 names. Rclone will map these names to and from an identical looking
17168 unicode equivalent. For example if a file has a ? in it will be
17169 mapped to ? instead.
17170
17171 Jottacloud only supports filenames up to 255 characters in length.
17172
17173 Troubleshooting
17174 Jottacloud exhibits some inconsistent behaviours regarding deleted
17175 files and folders which may cause Copy, Move and DirMove operations to
17176 previously deleted paths to fail. Emptying the trash should help in
17177 such cases.
17178
17179 Koofr
17180 Paths are specified as remote:path
17181
17182 Paths may be as deep as required, eg remote:directory/subdirectory.
17183
17184 The initial setup for Koofr involves creating an application password
17185 for rclone. You can do that by opening the Koofr web application
17186 (https://app.koofr.net/app/admin/preferences/password), giving the
17187 password a nice name like rclone and clicking on generate.
17188
17189 Here is an example of how to make a remote called koofr. First run:
17190
17191 rclone config
17192
17193 This will guide you through an interactive setup process:
17194
17195 No remotes found - make a new one
17196 n) New remote
17197 s) Set configuration password
17198 q) Quit config
17199 n/s/q> n
17200 name> koofr
17201 Type of storage to configure.
17202 Enter a string value. Press Enter for the default ("").
17203 Choose a number from below, or type in your own value
17204 [snip]
17205 XX / Koofr
17206 \ "koofr"
17207 [snip]
17208 Storage> koofr
17209 ** See help for koofr backend at: https://rclone.org/koofr/ **
17210
17211 Your Koofr user name
17212 Enter a string value. Press Enter for the default ("").
17213 user> USER@NAME
17214 Your Koofr password for rclone (generate one at https://app.koofr.net/app/admin/preferences/password)
17215 y) Yes type in my own password
17216 g) Generate random password
17217 y/g> y
17218 Enter the password:
17219 password:
17220 Confirm the password:
17221 password:
17222 Edit advanced config? (y/n)
17223 y) Yes
17224 n) No
17225 y/n> n
17226 Remote config
17227 --------------------
17228 [koofr]
17229 type = koofr
17230 baseurl = https://app.koofr.net
17231 user = USER@NAME
17232 password = *** ENCRYPTED ***
17233 --------------------
17234 y) Yes this is OK
17235 e) Edit this remote
17236 d) Delete this remote
17237 y/e/d> y
17238
17239 You can choose to edit advanced config in order to enter your own ser‐
17240 vice URL if you use an on-premise or white label Koofr instance, or
17241 choose an alternative mount instead of your primary storage.
17242
17243 Once configured you can then use rclone like this,
17244
17245 List directories in top level of your Koofr
17246
17247 rclone lsd koofr:
17248
17249 List all the files in your Koofr
17250
17251 rclone ls koofr:
17252
17253 To copy a local directory to an Koofr directory called backup
17254
17255 rclone copy /home/source remote:backup
17256
17257 Restricted filename characters
17258 In addition to the default restricted characters set (/overview/#re‐
17259 stricted-characters) the following characters are also replaced:
17260
17261 Character Value Replacement
17262 ────────────────────────────────
17263 \ 0x5C \
17264
17265 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
17266 they can’t be used in XML strings.
17267
17268 Standard Options
17269 Here are the standard options specific to koofr (Koofr).
17270
17271 –koofr-user
17272 Your Koofr user name
17273
17274 · Config: user
17275
17276 · Env Var: RCLONE_KOOFR_USER
17277
17278 · Type: string
17279
17280 · Default: ""
17281
17282 –koofr-password
17283 Your Koofr password for rclone (generate one at
17284 https://app.koofr.net/app/admin/preferences/password)
17285
17286 · Config: password
17287
17288 · Env Var: RCLONE_KOOFR_PASSWORD
17289
17290 · Type: string
17291
17292 · Default: ""
17293
17294 Advanced Options
17295 Here are the advanced options specific to koofr (Koofr).
17296
17297 –koofr-endpoint
17298 The Koofr API endpoint to use
17299
17300 · Config: endpoint
17301
17302 · Env Var: RCLONE_KOOFR_ENDPOINT
17303
17304 · Type: string
17305
17306 · Default: “https://app.koofr.net”
17307
17308 –koofr-mountid
17309 Mount ID of the mount to use. If omitted, the primary mount is used.
17310
17311 · Config: mountid
17312
17313 · Env Var: RCLONE_KOOFR_MOUNTID
17314
17315 · Type: string
17316
17317 · Default: ""
17318
17319 –koofr-setmtime
17320 Does the backend support setting modification time. Set this to false
17321 if you use a mount ID that points to a Dropbox or Amazon Drive backend.
17322
17323 · Config: setmtime
17324
17325 · Env Var: RCLONE_KOOFR_SETMTIME
17326
17327 · Type: bool
17328
17329 · Default: true
17330
17331 –koofr-encoding
17332 This sets the encoding for the backend.
17333
17334 See: the encoding section in the overview (/overview/#encoding) for
17335 more info.
17336
17337 · Config: encoding
17338
17339 · Env Var: RCLONE_KOOFR_ENCODING
17340
17341 · Type: MultiEncoder
17342
17343 · Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
17344
17345 Limitations
17346 Note that Koofr is case insensitive so you can’t have a file called
17347 “Hello.doc” and one called “hello.doc”.
17348
17349 Mail.ru Cloud
17350 Mail.ru Cloud (https://cloud.mail.ru/) is a cloud storage provided by a
17351 Russian internet company Mail.Ru Group (https://mail.ru). The official
17352 desktop client is Disk-O: (https://disk-o.cloud/), available only on
17353 Windows. (Please note that official sites are in Russian)
17354
17355 Features highlights
17356 · Paths may be as deep as required, eg remote:directory/subdirectory
17357
17358 · Files have a last modified time property, directories don’t
17359
17360 · Deleted files are by default moved to the trash
17361
17362 · Files and directories can be shared via public links
17363
17364 · Partial uploads or streaming are not supported, file size must be
17365 known before upload
17366
17367 · Maximum file size is limited to 2G for a free acount, unlimited for
17368 paid accounts
17369
17370 · Storage keeps hash for all files and performs transparent deduplica‐
17371 tion, the hash algorithm is a modified SHA1
17372
17373 · If a particular file is already present in storage, one can quickly
17374 submit file hash instead of long file upload (this optimization is
17375 supported by rclone)
17376
17377 Configuration
17378 Here is an example of making a mailru configuration. First create a
17379 Mail.ru Cloud account and choose a tariff, then run
17380
17381 rclone config
17382
17383 This will guide you through an interactive setup process:
17384
17385 No remotes found - make a new one
17386 n) New remote
17387 s) Set configuration password
17388 q) Quit config
17389 n/s/q> n
17390 name> remote
17391 Type of storage to configure.
17392 Type of storage to configure.
17393 Enter a string value. Press Enter for the default ("").
17394 Choose a number from below, or type in your own value
17395 [snip]
17396 XX / Mail.ru Cloud
17397 \ "mailru"
17398 [snip]
17399 Storage> mailru
17400 User name (usually email)
17401 Enter a string value. Press Enter for the default ("").
17402 user> username@mail.ru
17403 Password
17404 y) Yes type in my own password
17405 g) Generate random password
17406 y/g> y
17407 Enter the password:
17408 password:
17409 Confirm the password:
17410 password:
17411 Skip full upload if there is another file with same data hash.
17412 This feature is called "speedup" or "put by hash". It is especially efficient
17413 in case of generally available files like popular books, video or audio clips
17414 [snip]
17415 Enter a boolean value (true or false). Press Enter for the default ("true").
17416 Choose a number from below, or type in your own value
17417 1 / Enable
17418 \ "true"
17419 2 / Disable
17420 \ "false"
17421 speedup_enable> 1
17422 Edit advanced config? (y/n)
17423 y) Yes
17424 n) No
17425 y/n> n
17426 Remote config
17427 --------------------
17428 [remote]
17429 type = mailru
17430 user = username@mail.ru
17431 pass = *** ENCRYPTED ***
17432 speedup_enable = true
17433 --------------------
17434 y) Yes this is OK
17435 e) Edit this remote
17436 d) Delete this remote
17437 y/e/d> y
17438
17439 Configuration of this backend does not require a local web browser.
17440 You can use the configured backend as shown below:
17441
17442 See top level directories
17443
17444 rclone lsd remote:
17445
17446 Make a new directory
17447
17448 rclone mkdir remote:directory
17449
17450 List the contents of a directory
17451
17452 rclone ls remote:directory
17453
17454 Sync /home/local/directory to the remote path, deleting any excess
17455 files in the path.
17456
17457 rclone sync /home/local/directory remote:directory
17458
17459 Modified time
17460 Files support a modification time attribute with up to 1 second preci‐
17461 sion. Directories do not have a modification time, which is shown as
17462 “Jan 1 1970”.
17463
17464 Hash checksums
17465 Hash sums use a custom Mail.ru algorithm based on SHA1. If file size
17466 is less than or equal to the SHA1 block size (20 bytes), its hash is
17467 simply its data right-padded with zero bytes. Hash sum of a larger
17468 file is computed as a SHA1 sum of the file data bytes concatenated with
17469 a decimal representation of the data length.
17470
17471 Emptying Trash
17472 Removing a file or directory actually moves it to the trash, which is
17473 not visible to rclone but can be seen in a web browser. The trashed
17474 file still occupies part of total quota. If you wish to empty your
17475 trash and free some quota, you can use the rclone cleanup remote: com‐
17476 mand, which will permanently delete all your trashed files. This com‐
17477 mand does not take any path arguments.
17478
17479 Quota information
17480 To view your current quota you can use the rclone about remote: command
17481 which will display your usage limit (quota) and the current usage.
17482
17483 Restricted filename characters
17484 In addition to the default restricted characters set (/overview/#re‐
17485 stricted-characters) the following characters are also replaced:
17486
17487 Character Value Replacement
17488 ────────────────────────────────
17489 " 0x22 "
17490 * 0x2A *
17491 : 0x3A :
17492 < 0x3C <
17493 > 0x3E >
17494 ? 0x3F ?
17495 \ 0x5C \
17496 | 0x7C |
17497
17498 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
17499 they can’t be used in JSON strings.
17500
17501 Limitations
17502 File size limits depend on your account. A single file size is limited
17503 by 2G for a free account and unlimited for paid tariffs. Please refer
17504 to the Mail.ru site for the total uploaded size limits.
17505
17506 Note that Mailru is case insensitive so you can’t have a file called
17507 “Hello.doc” and one called “hello.doc”.
17508
17509 Standard Options
17510 Here are the standard options specific to mailru (Mail.ru Cloud).
17511
17512 –mailru-user
17513 User name (usually email)
17514
17515 · Config: user
17516
17517 · Env Var: RCLONE_MAILRU_USER
17518
17519 · Type: string
17520
17521 · Default: ""
17522
17523 –mailru-pass
17524 Password
17525
17526 · Config: pass
17527
17528 · Env Var: RCLONE_MAILRU_PASS
17529
17530 · Type: string
17531
17532 · Default: ""
17533
17534 –mailru-speedup-enable
17535 Skip full upload if there is another file with same data hash. This
17536 feature is called “speedup” or “put by hash”. It is especially effi‐
17537 cient in case of generally available files like popular books, video or
17538 audio clips, because files are searched by hash in all accounts of all
17539 mailru users. Please note that rclone may need local memory and disk
17540 space to calculate content hash in advance and decide whether full up‐
17541 load is required. Also, if rclone does not know file size in advance
17542 (e.g. in case of streaming or partial uploads), it will not even try
17543 this optimization.
17544
17545 · Config: speedup_enable
17546
17547 · Env Var: RCLONE_MAILRU_SPEEDUP_ENABLE
17548
17549 · Type: bool
17550
17551 · Default: true
17552
17553 · Examples:
17554
17555 · “true”
17556
17557 · Enable
17558
17559 · “false”
17560
17561 · Disable
17562
17563 Advanced Options
17564 Here are the advanced options specific to mailru (Mail.ru Cloud).
17565
17566 –mailru-speedup-file-patterns
17567 Comma separated list of file name patterns eligible for speedup (put by
17568 hash). Patterns are case insensitive and can contain ’*’ or `?' meta
17569 characters.
17570
17571 · Config: speedup_file_patterns
17572
17573 · Env Var: RCLONE_MAILRU_SPEEDUP_FILE_PATTERNS
17574
17575 · Type: string
17576
17577 · Default: “.mkv,.avi,.mp4,.mp3,.zip,.gz,.rar,.pdf”
17578
17579 · Examples:
17580
17581 · ""
17582
17583 · Empty list completely disables speedup (put by hash).
17584
17585 · "*"
17586
17587 · All files will be attempted for speedup.
17588
17589 · “.mkv,.avi,.mp4,.mp3”
17590
17591 · Only common audio/video files will be tried for put by hash.
17592
17593 · “.zip,.gz,.rar,.pdf”
17594
17595 · Only common archives or PDF books will be tried for speedup.
17596
17597 –mailru-speedup-max-disk
17598 This option allows you to disable speedup (put by hash) for large files
17599 (because preliminary hashing can exhaust you RAM or disk space)
17600
17601 · Config: speedup_max_disk
17602
17603 · Env Var: RCLONE_MAILRU_SPEEDUP_MAX_DISK
17604
17605 · Type: SizeSuffix
17606
17607 · Default: 3G
17608
17609 · Examples:
17610
17611 · “0”
17612
17613 · Completely disable speedup (put by hash).
17614
17615 · “1G”
17616
17617 · Files larger than 1Gb will be uploaded directly.
17618
17619 · “3G”
17620
17621 · Choose this option if you have less than 3Gb free on local disk.
17622
17623 –mailru-speedup-max-memory
17624 Files larger than the size given below will always be hashed on disk.
17625
17626 · Config: speedup_max_memory
17627
17628 · Env Var: RCLONE_MAILRU_SPEEDUP_MAX_MEMORY
17629
17630 · Type: SizeSuffix
17631
17632 · Default: 32M
17633
17634 · Examples:
17635
17636 · “0”
17637
17638 · Preliminary hashing will always be done in a temporary disk loca‐
17639 tion.
17640
17641 · “32M”
17642
17643 · Do not dedicate more than 32Mb RAM for preliminary hashing.
17644
17645 · “256M”
17646
17647 · You have at most 256Mb RAM free for hash calculations.
17648
17649 –mailru-check-hash
17650 What should copy do if file checksum is mismatched or invalid
17651
17652 · Config: check_hash
17653
17654 · Env Var: RCLONE_MAILRU_CHECK_HASH
17655
17656 · Type: bool
17657
17658 · Default: true
17659
17660 · Examples:
17661
17662 · “true”
17663
17664 · Fail with error.
17665
17666 · “false”
17667
17668 · Ignore and continue.
17669
17670 –mailru-user-agent
17671 HTTP user agent used internally by client. Defaults to “rclone/VER‐
17672 SION” or “–user-agent” provided on command line.
17673
17674 · Config: user_agent
17675
17676 · Env Var: RCLONE_MAILRU_USER_AGENT
17677
17678 · Type: string
17679
17680 · Default: ""
17681
17682 –mailru-quirks
17683 Comma separated list of internal maintenance flags. This option must
17684 not be used by an ordinary user. It is intended only to facilitate re‐
17685 mote troubleshooting of backend issues. Strict meaning of flags is not
17686 documented and not guaranteed to persist between releases. Quirks will
17687 be removed when the backend grows stable. Supported quirks: atom‐
17688 icmkdir binlist gzip insecure retry400
17689
17690 · Config: quirks
17691
17692 · Env Var: RCLONE_MAILRU_QUIRKS
17693
17694 · Type: string
17695
17696 · Default: ""
17697
17698 –mailru-encoding
17699 This sets the encoding for the backend.
17700
17701 See: the encoding section in the overview (/overview/#encoding) for
17702 more info.
17703
17704 · Config: encoding
17705
17706 · Env Var: RCLONE_MAILRU_ENCODING
17707
17708 · Type: MultiEncoder
17709
17710 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
17711 Slash,Del,Ctl,InvalidUtf8,Dot
17712
17713 Mega
17714 Mega (https://mega.nz/) is a cloud storage and file hosting service
17715 known for its security feature where all files are encrypted locally
17716 before they are uploaded. This prevents anyone (including employees of
17717 Mega) from accessing the files without knowledge of the key used for
17718 encryption.
17719
17720 This is an rclone backend for Mega which supports the file transfer
17721 features of Mega using the same client side encryption.
17722
17723 Paths are specified as remote:path
17724
17725 Paths may be as deep as required, eg remote:directory/subdirectory.
17726
17727 Here is an example of how to make a remote called remote. First run:
17728
17729 rclone config
17730
17731 This will guide you through an interactive setup process:
17732
17733 No remotes found - make a new one
17734 n) New remote
17735 s) Set configuration password
17736 q) Quit config
17737 n/s/q> n
17738 name> remote
17739 Type of storage to configure.
17740 Choose a number from below, or type in your own value
17741 [snip]
17742 XX / Mega
17743 \ "mega"
17744 [snip]
17745 Storage> mega
17746 User name
17747 user> you@example.com
17748 Password.
17749 y) Yes type in my own password
17750 g) Generate random password
17751 n) No leave this optional password blank
17752 y/g/n> y
17753 Enter the password:
17754 password:
17755 Confirm the password:
17756 password:
17757 Remote config
17758 --------------------
17759 [remote]
17760 type = mega
17761 user = you@example.com
17762 pass = *** ENCRYPTED ***
17763 --------------------
17764 y) Yes this is OK
17765 e) Edit this remote
17766 d) Delete this remote
17767 y/e/d> y
17768
17769 NOTE: The encryption keys need to have been already generated after a
17770 regular login via the browser, otherwise attempting to use the creden‐
17771 tials in rclone will fail.
17772
17773 Once configured you can then use rclone like this,
17774
17775 List directories in top level of your Mega
17776
17777 rclone lsd remote:
17778
17779 List all the files in your Mega
17780
17781 rclone ls remote:
17782
17783 To copy a local directory to an Mega directory called backup
17784
17785 rclone copy /home/source remote:backup
17786
17787 Modified time and hashes
17788 Mega does not support modification times or hashes yet.
17789
17790 Restricted filename characters
17791 Character Value Replacement
17792 ────────────────────────────────
17793 NUL 0x00 ␀
17794 / 0x2F /
17795
17796 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
17797 they can’t be used in JSON strings.
17798
17799 Duplicated files
17800 Mega can have two files with exactly the same name and path (unlike a
17801 normal file system).
17802
17803 Duplicated files cause problems with the syncing and you will see mes‐
17804 sages in the log about duplicates.
17805
17806 Use rclone dedupe to fix duplicated files.
17807
17808 Failure to log-in
17809 Mega remotes seem to get blocked (reject logins) under “heavy use”. We
17810 haven’t worked out the exact blocking rules but it seems to be related
17811 to fast paced, sucessive rclone commands.
17812
17813 For example, executing this command 90 times in a row rclone link re‐
17814 mote:file will cause the remote to become “blocked”. This is not an
17815 abnormal situation, for example if you wish to get the public links of
17816 a directory with hundred of files... After more or less a week, the re‐
17817 mote will remote accept rclone logins normally again.
17818
17819 You can mitigate this issue by mounting the remote it with rclone
17820 mount. This will log-in when mounting and a log-out when unmounting
17821 only. You can also run rclone rcd and then use rclone rc to run the
17822 commands over the API to avoid logging in each time.
17823
17824 Rclone does not currently close mega sessions (you can see them in the
17825 web interface), however closing the sessions does not solve the issue.
17826
17827 If you space rclone commands by 3 seconds it will avoid blocking the
17828 remote. We haven’t identified the exact blocking rules, so perhaps one
17829 could execute the command 80 times without waiting and avoid blocking
17830 by waiting 3 seconds, then continuing...
17831
17832 Note that this has been observed by trial and error and might not be
17833 set in stone.
17834
17835 Other tools seem not to produce this blocking effect, as they use a
17836 different working approach (state-based, using sessionIDs instead of
17837 log-in) which isn’t compatible with the current stateless rclone ap‐
17838 proach.
17839
17840 Note that once blocked, the use of other tools (such as megacmd) is not
17841 a sure workaround: following megacmd login times have been observed in
17842 sucession for blocked remote: 7 minutes, 20 min, 30min, 30 min, 30min.
17843 Web access looks unaffected though.
17844
17845 Investigation is continuing in relation to workarounds based on time‐
17846 outs, pacers, retrials and tpslimits - if you discover something rele‐
17847 vant, please post on the forum.
17848
17849 So, if rclone was working nicely and suddenly you are unable to log-in
17850 and you are sure the user and the password are correct, likely you have
17851 got the remote blocked for a while.
17852
17853 Standard Options
17854 Here are the standard options specific to mega (Mega).
17855
17856 –mega-user
17857 User name
17858
17859 · Config: user
17860
17861 · Env Var: RCLONE_MEGA_USER
17862
17863 · Type: string
17864
17865 · Default: ""
17866
17867 –mega-pass
17868 Password.
17869
17870 · Config: pass
17871
17872 · Env Var: RCLONE_MEGA_PASS
17873
17874 · Type: string
17875
17876 · Default: ""
17877
17878 Advanced Options
17879 Here are the advanced options specific to mega (Mega).
17880
17881 –mega-debug
17882 Output more debug from Mega.
17883
17884 If this flag is set (along with -vv) it will print further debugging
17885 information from the mega backend.
17886
17887 · Config: debug
17888
17889 · Env Var: RCLONE_MEGA_DEBUG
17890
17891 · Type: bool
17892
17893 · Default: false
17894
17895 –mega-hard-delete
17896 Delete files permanently rather than putting them into the trash.
17897
17898 Normally the mega backend will put all deletions into the trash rather
17899 than permanently deleting them. If you specify this then rclone will
17900 permanently delete objects instead.
17901
17902 · Config: hard_delete
17903
17904 · Env Var: RCLONE_MEGA_HARD_DELETE
17905
17906 · Type: bool
17907
17908 · Default: false
17909
17910 –mega-encoding
17911 This sets the encoding for the backend.
17912
17913 See: the encoding section in the overview (/overview/#encoding) for
17914 more info.
17915
17916 · Config: encoding
17917
17918 · Env Var: RCLONE_MEGA_ENCODING
17919
17920 · Type: MultiEncoder
17921
17922 · Default: Slash,InvalidUtf8,Dot
17923
17924 Limitations
17925 This backend uses the go-mega go library
17926 (https://github.com/t3rm1n4l/go-mega) which is an opensource go library
17927 implementing the Mega API. There doesn’t appear to be any documenta‐
17928 tion for the mega protocol beyond the mega C++ SDK
17929 (https://github.com/meganz/sdk) source code so there are likely quite a
17930 few errors still remaining in this library.
17931
17932 Mega allows duplicate files which may confuse rclone.
17933
17934 Memory
17935 The memory backend is an in RAM backend. It does not persist its data
17936 - use the local backend for that.
17937
17938 The memory backend behaves like a bucket based remote (eg like s3).
17939 Because it has no parameters you can just use it with the :memory: re‐
17940 mote name.
17941
17942 You can configure it as a remote like this with rclone config too if
17943 you want to:
17944
17945 No remotes found - make a new one
17946 n) New remote
17947 s) Set configuration password
17948 q) Quit config
17949 n/s/q> n
17950 name> remote
17951 Type of storage to configure.
17952 Enter a string value. Press Enter for the default ("").
17953 Choose a number from below, or type in your own value
17954 [snip]
17955 XX / Memory
17956 \ "memory"
17957 [snip]
17958 Storage> memory
17959 ** See help for memory backend at: https://rclone.org/memory/ **
17960
17961 Remote config
17962
17963 --------------------
17964 [remote]
17965 type = memory
17966 --------------------
17967 y) Yes this is OK (default)
17968 e) Edit this remote
17969 d) Delete this remote
17970 y/e/d> y
17971
17972 Because the memory backend isn’t persistent it is most useful for test‐
17973 ing or with an rclone server or rclone mount, eg
17974
17975 rclone mount :memory: /mnt/tmp
17976 rclone serve webdav :memory:
17977 rclone serve sftp :memory:
17978
17979 Modified time and hashes
17980 The memory backend supports MD5 hashes and modification times accurate
17981 to 1 nS.
17982
17983 Restricted filename characters
17984 The memory backend replaces the default restricted characters set
17985 (/overview/#restricted-characters).
17986
17987 Microsoft Azure Blob Storage
17988 Paths are specified as remote:container (or remote: for the lsd com‐
17989 mand.) You may put subdirectories in too, eg remote:contain‐
17990 er/path/to/dir.
17991
17992 Here is an example of making a Microsoft Azure Blob Storage configura‐
17993 tion. For a remote called remote. First run:
17994
17995 rclone config
17996
17997 This will guide you through an interactive setup process:
17998
17999 No remotes found - make a new one
18000 n) New remote
18001 s) Set configuration password
18002 q) Quit config
18003 n/s/q> n
18004 name> remote
18005 Type of storage to configure.
18006 Choose a number from below, or type in your own value
18007 [snip]
18008 XX / Microsoft Azure Blob Storage
18009 \ "azureblob"
18010 [snip]
18011 Storage> azureblob
18012 Storage Account Name
18013 account> account_name
18014 Storage Account Key
18015 key> base64encodedkey==
18016 Endpoint for the service - leave blank normally.
18017 endpoint>
18018 Remote config
18019 --------------------
18020 [remote]
18021 account = account_name
18022 key = base64encodedkey==
18023 endpoint =
18024 --------------------
18025 y) Yes this is OK
18026 e) Edit this remote
18027 d) Delete this remote
18028 y/e/d> y
18029
18030 See all containers
18031
18032 rclone lsd remote:
18033
18034 Make a new container
18035
18036 rclone mkdir remote:container
18037
18038 List the contents of a container
18039
18040 rclone ls remote:container
18041
18042 Sync /home/local/directory to the remote container, deleting any excess
18043 files in the container.
18044
18045 rclone sync /home/local/directory remote:container
18046
18047 –fast-list
18048 This remote supports --fast-list which allows you to use fewer transac‐
18049 tions in exchange for more memory. See the rclone docs (/docs/#fast-
18050 list) for more details.
18051
18052 Modified time
18053 The modified time is stored as metadata on the object with the mtime
18054 key. It is stored using RFC3339 Format time with nanosecond precision.
18055 The metadata is supplied during directory listings so there is no over‐
18056 head to using it.
18057
18058 Restricted filename characters
18059 In addition to the default restricted characters set (/overview/#re‐
18060 stricted-characters) the following characters are also replaced:
18061
18062 Character Value Replacement
18063 ────────────────────────────────
18064 / 0x2F /
18065 \ 0x5C \
18066
18067 File names can also not end with the following characters. These only
18068 get replaced if they are last character in the name:
18069
18070 Character Value Replacement
18071 ────────────────────────────────
18072 . 0x2E .
18073
18074 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
18075 they can’t be used in JSON strings.
18076
18077 Hashes
18078 MD5 hashes are stored with blobs. However blobs that were uploaded in
18079 chunks only have an MD5 if the source remote was capable of MD5 hashes,
18080 eg the local disk.
18081
18082 Authenticating with Azure Blob Storage
18083 Rclone has 3 ways of authenticating with Azure Blob Storage:
18084
18085 Account and Key
18086 This is the most straight forward and least flexible way. Just fill in
18087 the account and key lines and leave the rest blank.
18088
18089 SAS URL
18090 This can be an account level SAS URL or container level SAS URL
18091
18092 To use it leave account, key blank and fill in sas_url.
18093
18094 Account level SAS URL or container level SAS URL can be obtained from
18095 Azure portal or Azure Storage Explorer. To get a container level SAS
18096 URL right click on a container in the Azure Blob explorer in the Azure
18097 portal.
18098
18099 If You use container level SAS URL, rclone operations are permitted on‐
18100 ly on particular container, eg
18101
18102 rclone ls azureblob:container or rclone ls azureblob:
18103
18104 Since container name already exists in SAS URL, you can leave it empty
18105 as well.
18106
18107 However these will not work
18108
18109 rclone lsd azureblob:
18110 rclone ls azureblob:othercontainer
18111
18112 This would be useful for temporarily allowing third parties access to a
18113 single container or putting credentials into an untrusted environment.
18114
18115 Multipart uploads
18116 Rclone supports multipart uploads with Azure Blob storage. Files big‐
18117 ger than 256MB will be uploaded using chunked upload by default.
18118
18119 The files will be uploaded in parallel in 4MB chunks (by default).
18120 Note that these chunks are buffered in memory and there may be up to
18121 --transfers of them being uploaded at once.
18122
18123 Files can’t be split into more than 50,000 chunks so by default, so the
18124 largest file that can be uploaded with 4MB chunk size is 195GB. Above
18125 this rclone will double the chunk size until it creates less than
18126 50,000 chunks. By default this will mean a maximum file size of 3.2TB
18127 can be uploaded. This can be raised to 5TB using --azure‐
18128 blob-chunk-size 100M.
18129
18130 Note that rclone doesn’t commit the block list until the end of the up‐
18131 load which means that there is a limit of 9.5TB of multipart uploads in
18132 progress as Azure won’t allow more than that amount of uncommitted
18133 blocks.
18134
18135 Standard Options
18136 Here are the standard options specific to azureblob (Microsoft Azure
18137 Blob Storage).
18138
18139 –azureblob-account
18140 Storage Account Name (leave blank to use SAS URL or Emulator)
18141
18142 · Config: account
18143
18144 · Env Var: RCLONE_AZUREBLOB_ACCOUNT
18145
18146 · Type: string
18147
18148 · Default: ""
18149
18150 –azureblob-key
18151 Storage Account Key (leave blank to use SAS URL or Emulator)
18152
18153 · Config: key
18154
18155 · Env Var: RCLONE_AZUREBLOB_KEY
18156
18157 · Type: string
18158
18159 · Default: ""
18160
18161 –azureblob-sas-url
18162 SAS URL for container level access only (leave blank if using ac‐
18163 count/key or Emulator)
18164
18165 · Config: sas_url
18166
18167 · Env Var: RCLONE_AZUREBLOB_SAS_URL
18168
18169 · Type: string
18170
18171 · Default: ""
18172
18173 –azureblob-use-emulator
18174 Uses local storage emulator if provided as `true' (leave blank if using
18175 real azure storage endpoint)
18176
18177 · Config: use_emulator
18178
18179 · Env Var: RCLONE_AZUREBLOB_USE_EMULATOR
18180
18181 · Type: bool
18182
18183 · Default: false
18184
18185 Advanced Options
18186 Here are the advanced options specific to azureblob (Microsoft Azure
18187 Blob Storage).
18188
18189 –azureblob-endpoint
18190 Endpoint for the service Leave blank normally.
18191
18192 · Config: endpoint
18193
18194 · Env Var: RCLONE_AZUREBLOB_ENDPOINT
18195
18196 · Type: string
18197
18198 · Default: ""
18199
18200 –azureblob-upload-cutoff
18201 Cutoff for switching to chunked upload (<= 256MB).
18202
18203 · Config: upload_cutoff
18204
18205 · Env Var: RCLONE_AZUREBLOB_UPLOAD_CUTOFF
18206
18207 · Type: SizeSuffix
18208
18209 · Default: 256M
18210
18211 –azureblob-chunk-size
18212 Upload chunk size (<= 100MB).
18213
18214 Note that this is stored in memory and there may be up to “–transfers”
18215 chunks stored at once in memory.
18216
18217 · Config: chunk_size
18218
18219 · Env Var: RCLONE_AZUREBLOB_CHUNK_SIZE
18220
18221 · Type: SizeSuffix
18222
18223 · Default: 4M
18224
18225 –azureblob-list-chunk
18226 Size of blob list.
18227
18228 This sets the number of blobs requested in each listing chunk. Default
18229 is the maximum, 5000. “List blobs” requests are permitted 2 minutes
18230 per megabyte to complete. If an operation is taking longer than 2 min‐
18231 utes per megabyte on average, it will time out ( source
18232 (https://docs.microsoft.com/en-us/rest/api/storageservices/setting-
18233 timeouts-for-blob-service-operations#exceptions-to-default-timeout-in‐
18234 terval) ). This can be used to limit the number of blobs items to re‐
18235 turn, to avoid the time out.
18236
18237 · Config: list_chunk
18238
18239 · Env Var: RCLONE_AZUREBLOB_LIST_CHUNK
18240
18241 · Type: int
18242
18243 · Default: 5000
18244
18245 –azureblob-access-tier
18246 Access tier of blob: hot, cool or archive.
18247
18248 Archived blobs can be restored by setting access tier to hot or cool.
18249 Leave blank if you intend to use default access tier, which is set at
18250 account level
18251
18252 If there is no “access tier” specified, rclone doesn’t apply any tier.
18253 rclone performs “Set Tier” operation on blobs while uploading, if ob‐
18254 jects are not modified, specifying “access tier” to new one will have
18255 no effect. If blobs are in “archive tier” at remote, trying to perform
18256 data transfer operations from remote will not be allowed. User should
18257 first restore by tiering blob to “Hot” or “Cool”.
18258
18259 · Config: access_tier
18260
18261 · Env Var: RCLONE_AZUREBLOB_ACCESS_TIER
18262
18263 · Type: string
18264
18265 · Default: ""
18266
18267 –azureblob-encoding
18268 This sets the encoding for the backend.
18269
18270 See: the encoding section in the overview (/overview/#encoding) for
18271 more info.
18272
18273 · Config: encoding
18274
18275 · Env Var: RCLONE_AZUREBLOB_ENCODING
18276
18277 · Type: MultiEncoder
18278
18279 · Default: Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8
18280
18281 Limitations
18282 MD5 sums are only uploaded with chunked files if the source has an MD5
18283 sum. This will always be the case for a local to azure copy.
18284
18285 Azure Storage Emulator Support
18286 You can test rlcone with storage emulator locally, to do this make sure
18287 azure storage emulator installed locally and set up a new remote with
18288 rclone config follow instructions described in introduction, set
18289 use_emulator config as true, you do not need to provide default account
18290 name or key if using emulator.
18291
18292 Microsoft OneDrive
18293 Paths are specified as remote:path
18294
18295 Paths may be as deep as required, eg remote:directory/subdirectory.
18296
18297 The initial setup for OneDrive involves getting a token from Microsoft
18298 which you need to do in your browser. rclone config walks you through
18299 it.
18300
18301 Here is an example of how to make a remote called remote. First run:
18302
18303 rclone config
18304
18305 This will guide you through an interactive setup process:
18306
18307 e) Edit existing remote
18308 n) New remote
18309 d) Delete remote
18310 r) Rename remote
18311 c) Copy remote
18312 s) Set configuration password
18313 q) Quit config
18314 e/n/d/r/c/s/q> n
18315 name> remote
18316 Type of storage to configure.
18317 Enter a string value. Press Enter for the default ("").
18318 Choose a number from below, or type in your own value
18319 [snip]
18320 XX / Microsoft OneDrive
18321 \ "onedrive"
18322 [snip]
18323 Storage> onedrive
18324 Microsoft App Client Id
18325 Leave blank normally.
18326 Enter a string value. Press Enter for the default ("").
18327 client_id>
18328 Microsoft App Client Secret
18329 Leave blank normally.
18330 Enter a string value. Press Enter for the default ("").
18331 client_secret>
18332 Edit advanced config? (y/n)
18333 y) Yes
18334 n) No
18335 y/n> n
18336 Remote config
18337 Use auto config?
18338 * Say Y if not sure
18339 * Say N if you are working on a remote or headless machine
18340 y) Yes
18341 n) No
18342 y/n> y
18343 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
18344 Log in and authorize rclone for access
18345 Waiting for code...
18346 Got code
18347 Choose a number from below, or type in an existing value
18348 1 / OneDrive Personal or Business
18349 \ "onedrive"
18350 2 / Sharepoint site
18351 \ "sharepoint"
18352 3 / Type in driveID
18353 \ "driveid"
18354 4 / Type in SiteID
18355 \ "siteid"
18356 5 / Search a Sharepoint site
18357 \ "search"
18358 Your choice> 1
18359 Found 1 drives, please select the one you want to use:
18360 0: OneDrive (business) id=b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
18361 Chose drive to use:> 0
18362 Found drive 'root' of type 'business', URL: https://org-my.sharepoint.com/personal/you/Documents
18363 Is that okay?
18364 y) Yes
18365 n) No
18366 y/n> y
18367 --------------------
18368 [remote]
18369 type = onedrive
18370 token = {"access_token":"youraccesstoken","token_type":"Bearer","refresh_token":"yourrefreshtoken","expiry":"2018-08-26T22:39:52.486512262+08:00"}
18371 drive_id = b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
18372 drive_type = business
18373 --------------------
18374 y) Yes this is OK
18375 e) Edit this remote
18376 d) Delete this remote
18377 y/e/d> y
18378
18379 See the remote setup docs (https://rclone.org/remote_setup/) for how to
18380 set it up on a machine with no Internet browser available.
18381
18382 Note that rclone runs a webserver on your local machine to collect the
18383 token as returned from Microsoft. This only runs from the moment it
18384 opens your browser to the moment you get back the verification code.
18385 This is on http://127.0.0.1:53682/ and this it may require you to un‐
18386 block it temporarily if you are running a host firewall.
18387
18388 Once configured you can then use rclone like this,
18389
18390 List directories in top level of your OneDrive
18391
18392 rclone lsd remote:
18393
18394 List all the files in your OneDrive
18395
18396 rclone ls remote:
18397
18398 To copy a local directory to an OneDrive directory called backup
18399
18400 rclone copy /home/source remote:backup
18401
18402 Getting your own Client ID and Key
18403 You can use your own Client ID if the default (client_id left blank)
18404 one doesn’t work for you or you see lots of throttling. The default
18405 Client ID and Key is shared by all rclone users when performing re‐
18406 quests.
18407
18408 If you are having problems with them (E.g., seeing a lot of throt‐
18409 tling), you can get your own Client ID and Key by following the steps
18410 below:
18411
18412 1. Open https://portal.azure.com/#blade/Microsoft_AAD_Regis‐
18413 teredApps/ApplicationsListBlade, then click New registration.
18414
18415 2. Enter a name for your app, choose account type Any Azure AD directo‐
18416 ry - Multitenant, select Web in Redirect URI Enter http://local‐
18417 host:53682/ and click Register. Copy and keep the Application
18418 (client) ID under the app name for later use.
18419
18420 3. Under manage select Certificates & secrets, click New client secret.
18421 Copy and keep that secret for later use.
18422
18423 4. Under manage select API permissions, click Add a permission and se‐
18424 lect Microsoft Graph then select delegated permissions.
18425
18426 5. Search and select the follwing permssions: Files.Read, Files.Read‐
18427 Write, Files.Read.All, Files.ReadWrite.All, offline_access, Us‐
18428 er.Read. Once selected click Add permissions at the bottom.
18429
18430 Now the application is complete. Run rclone config to create or edit a
18431 OneDrive remote. Supply the app ID and password as Client ID and Se‐
18432 cret, respectively. rclone will walk you through the remaining steps.
18433
18434 Modification time and hashes
18435 OneDrive allows modification times to be set on objects accurate to 1
18436 second. These will be used to detect whether objects need syncing or
18437 not.
18438
18439 OneDrive personal supports SHA1 type hashes. OneDrive for business and
18440 Sharepoint Server support QuickXorHash (https://docs.microsoft.com/en-
18441 us/onedrive/developer/code-snippets/quickxorhash).
18442
18443 For all types of OneDrive you can use the --checksum flag.
18444
18445 Restricted filename characters
18446 In addition to the default restricted characters set (/overview/#re‐
18447 stricted-characters) the following characters are also replaced:
18448
18449 Character Value Replacement
18450 ────────────────────────────────
18451 " 0x22 "
18452 * 0x2A *
18453 : 0x3A :
18454 < 0x3C <
18455 > 0x3E >
18456 ? 0x3F ?
18457 \ 0x5C \
18458 | 0x7C |
18459 # 0x23 #
18460 % 0x25 %
18461
18462 File names can also not end with the following characters. These only
18463 get replaced if they are last character in the name:
18464
18465 Character Value Replacement
18466 ────────────────────────────────
18467 SP 0x20 ␠
18468 . 0x2E .
18469
18470 File names can also not begin with the following characters. These on‐
18471 ly get replaced if they are first character in the name:
18472
18473 Character Value Replacement
18474 ────────────────────────────────
18475 SP 0x20 ␠
18476 ~ 0x7E ~
18477
18478 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
18479 they can’t be used in JSON strings.
18480
18481 Deleting files
18482 Any files you delete with rclone will end up in the trash. Microsoft
18483 doesn’t provide an API to permanently delete files, nor to empty the
18484 trash, so you will have to do that with one of Microsoft’s apps or via
18485 the OneDrive website.
18486
18487 Standard Options
18488 Here are the standard options specific to onedrive (Microsoft
18489 OneDrive).
18490
18491 –onedrive-client-id
18492 Microsoft App Client Id Leave blank normally.
18493
18494 · Config: client_id
18495
18496 · Env Var: RCLONE_ONEDRIVE_CLIENT_ID
18497
18498 · Type: string
18499
18500 · Default: ""
18501
18502 –onedrive-client-secret
18503 Microsoft App Client Secret Leave blank normally.
18504
18505 · Config: client_secret
18506
18507 · Env Var: RCLONE_ONEDRIVE_CLIENT_SECRET
18508
18509 · Type: string
18510
18511 · Default: ""
18512
18513 Advanced Options
18514 Here are the advanced options specific to onedrive (Microsoft
18515 OneDrive).
18516
18517 –onedrive-chunk-size
18518 Chunk size to upload files with - must be multiple of 320k (327,680
18519 bytes).
18520
18521 Above this size files will be chunked - must be multiple of 320k
18522 (327,680 bytes). Note that the chunks will be buffered into memory.
18523
18524 · Config: chunk_size
18525
18526 · Env Var: RCLONE_ONEDRIVE_CHUNK_SIZE
18527
18528 · Type: SizeSuffix
18529
18530 · Default: 10M
18531
18532 –onedrive-drive-id
18533 The ID of the drive to use
18534
18535 · Config: drive_id
18536
18537 · Env Var: RCLONE_ONEDRIVE_DRIVE_ID
18538
18539 · Type: string
18540
18541 · Default: ""
18542
18543 –onedrive-drive-type
18544 The type of the drive ( personal | business | documentLibrary )
18545
18546 · Config: drive_type
18547
18548 · Env Var: RCLONE_ONEDRIVE_DRIVE_TYPE
18549
18550 · Type: string
18551
18552 · Default: ""
18553
18554 –onedrive-expose-onenote-files
18555 Set to make OneNote files show up in directory listings.
18556
18557 By default rclone will hide OneNote files in directory listings because
18558 operations like “Open” and “Update” won’t work on them. But this be‐
18559 haviour may also prevent you from deleting them. If you want to delete
18560 OneNote files or otherwise want them to show up in directory listing,
18561 set this option.
18562
18563 · Config: expose_onenote_files
18564
18565 · Env Var: RCLONE_ONEDRIVE_EXPOSE_ONENOTE_FILES
18566
18567 · Type: bool
18568
18569 · Default: false
18570
18571 –onedrive-encoding
18572 This sets the encoding for the backend.
18573
18574 See: the encoding section in the overview (/overview/#encoding) for
18575 more info.
18576
18577 · Config: encoding
18578
18579 · Env Var: RCLONE_ONEDRIVE_ENCODING
18580
18581 · Type: MultiEncoder
18582
18583 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Aster‐
18584 isk,Pipe,Hash,Percent,BackSlash,Del,Ctl,LeftSpace,Left‐
18585 Tilde,RightSpace,RightPeriod,InvalidUtf8,Dot
18586
18587 Limitations
18588 Naming
18589 Note that OneDrive is case insensitive so you can’t have a file called
18590 “Hello.doc” and one called “hello.doc”.
18591
18592 There are quite a few characters that can’t be in OneDrive file names.
18593 These can’t occur on Windows platforms, but on non-Windows platforms
18594 they are common. Rclone will map these names to and from an identical
18595 looking unicode equivalent. For example if a file has a ? in it will
18596 be mapped to ? instead.
18597
18598 File sizes
18599 The largest allowed file sizes are 15GB for OneDrive for Business and
18600 35GB for OneDrive Personal (Updated 4 Jan 2019).
18601
18602 Path length
18603 The entire path, including the file name, must contain fewer than 400
18604 characters for OneDrive, OneDrive for Business and SharePoint Online.
18605 If you are encrypting file and folder names with rclone, you may want
18606 to pay attention to this limitation because the encrypted names are
18607 typically longer than the original ones.
18608
18609 Number of files
18610 OneDrive seems to be OK with at least 50,000 files in a folder, but at
18611 100,000 rclone will get errors listing the directory like couldn’t list
18612 files: UnknownError:. See #2707 (https://github.com/rclone/rclone/is‐
18613 sues/2707) for more info.
18614
18615 An official document about the limitations for different types of
18616 OneDrive can be found here (https://support.office.com/en-us/arti‐
18617 cle/invalid-file-names-and-file-types-in-onedrive-onedrive-for-busi‐
18618 ness-and-sharepoint-64883a5d-228e-48f5-b3d2-eb39e07630fa).
18619
18620 Versioning issue
18621 Every change in OneDrive causes the service to create a new version.
18622 This counts against a users quota. For example changing the modifica‐
18623 tion time of a file creates a second version, so the file is using
18624 twice the space.
18625
18626 The copy is the only rclone command affected by this as we copy the
18627 file and then afterwards set the modification time to match the source
18628 file.
18629
18630 Note: Starting October 2018, users will no longer be able to disable
18631 versioning by default. This is because Microsoft has brought an update
18632 (https://techcommunity.microsoft.com/t5/Microsoft-OneDrive-Blog/New-Up‐
18633 dates-to-OneDrive-and-SharePoint-Team-Site-Versioning/ba-p/204390) to
18634 the mechanism. To change this new default setting, a PowerShell com‐
18635 mand is required to be run by a SharePoint admin. If you are an admin,
18636 you can run these commands in PowerShell to change that setting:
18637
18638 1. Install-Module -Name Microsoft.Online.SharePoint.PowerShell (in case
18639 you haven’t installed this already)
18640
18641 2. Import-Module Microsoft.Online.SharePoint.PowerShell -Disable‐
18642 NameChecking
18643
18644 3. Connect-SPOService -Url https://YOURSITE-admin.sharepoint.com -Cre‐
18645 dential YOU@YOURSITE.COM (replacing YOURSITE, YOU, YOURSITE.COM with
18646 the actual values; this will prompt for your credentials)
18647
18648 4. Set-SPOTenant -EnableMinimumVersionRequirement $False
18649
18650 5. Disconnect-SPOService (to disconnect from the server)
18651
18652 Below are the steps for normal users to disable versioning. If you
18653 don’t see the “No Versioning” option, make sure the above requirements
18654 are met.
18655
18656 User Weropol (https://github.com/Weropol) has found a method to disable
18657 versioning on OneDrive
18658
18659 1. Open the settings menu by clicking on the gear symbol at the top of
18660 the OneDrive Business page.
18661
18662 2. Click Site settings.
18663
18664 3. Once on the Site settings page, navigate to Site Administration >
18665 Site libraries and lists.
18666
18667 4. Click Customize “Documents”.
18668
18669 5. Click General Settings > Versioning Settings.
18670
18671 6. Under Document Version History select the option No versioning.
18672 Note: This will disable the creation of new file versions, but will
18673 not remove any previous versions. Your documents are safe.
18674
18675 7. Apply the changes by clicking OK.
18676
18677 8. Use rclone to upload or modify files. (I also use the –no-up‐
18678 date-modtime flag)
18679
18680 9. Restore the versioning settings after using rclone. (Optional)
18681
18682 Troubleshooting
18683 Unexpected file size/hash differences on Sharepoint
18684 It is a known (https://github.com/OneDrive/onedrive-api-docs/is‐
18685 sues/935#issuecomment-441741631) issue that Sharepoint (not OneDrive or
18686 OneDrive for Business) silently modifies uploaded files, mainly Office
18687 files (.docx, .xlsx, etc.), causing file size and hash checks to fail.
18688 To use rclone with such affected files on Sharepoint, you may disable
18689 these checks with the following command line arguments:
18690
18691 --ignore-checksum --ignore-size
18692
18693 Replacing/deleting existing files on Sharepoint gets “item not found”
18694 It is a known (https://github.com/OneDrive/onedrive-api-docs/is‐
18695 sues/1068) issue that Sharepoint (not OneDrive or OneDrive for Busi‐
18696 ness) may return “item not found” errors when users try to replace or
18697 delete uploaded files; this seems to mainly affect Office files (.docx,
18698 .xlsx, etc.). As a workaround, you may use the --backup-dir <BACK‐
18699 UP_DIR> command line argument so rclone moves the files to be re‐
18700 placed/deleted into a given backup directory (instead of directly re‐
18701 placing/deleting them). For example, to instruct rclone to move the
18702 files into the directory rclone-backup-dir on backend mysharepoint, you
18703 may use:
18704
18705 --backup-dir mysharepoint:rclone-backup-dir
18706
18707 access_denied (AADSTS65005)
18708 Error: access_denied
18709 Code: AADSTS65005
18710 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.
18711
18712 This means that rclone can’t use the OneDrive for Business API with
18713 your account. You can’t do much about it, maybe write an email to your
18714 admins.
18715
18716 However, there are other ways to interact with your OneDrive account.
18717 Have a look at the webdav backend: https://rclone.org/webdav/#share‐
18718 point
18719
18720 invalid_grant (AADSTS50076)
18721 Error: invalid_grant
18722 Code: AADSTS50076
18723 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 '...'.
18724
18725 If you see the error above after enabling multi-factor authentication
18726 for your account, you can fix it by refreshing your OAuth refresh to‐
18727 ken. To do that, run rclone config, and choose to edit your OneDrive
18728 backend. Then, you don’t need to actually make any changes until you
18729 reach this question: Already have a token - refresh?. For this ques‐
18730 tion, answer y and go through the process to refresh your token, just
18731 like the first time the backend is configured. After this, rclone
18732 should work again for this backend.
18733
18734 OpenDrive
18735 Paths are specified as remote:path
18736
18737 Paths may be as deep as required, eg remote:directory/subdirectory.
18738
18739 Here is an example of how to make a remote called remote. First run:
18740
18741 rclone config
18742
18743 This will guide you through an interactive setup process:
18744
18745 n) New remote
18746 d) Delete remote
18747 q) Quit config
18748 e/n/d/q> n
18749 name> remote
18750 Type of storage to configure.
18751 Choose a number from below, or type in your own value
18752 [snip]
18753 XX / OpenDrive
18754 \ "opendrive"
18755 [snip]
18756 Storage> opendrive
18757 Username
18758 username>
18759 Password
18760 y) Yes type in my own password
18761 g) Generate random password
18762 y/g> y
18763 Enter the password:
18764 password:
18765 Confirm the password:
18766 password:
18767 --------------------
18768 [remote]
18769 username =
18770 password = *** ENCRYPTED ***
18771 --------------------
18772 y) Yes this is OK
18773 e) Edit this remote
18774 d) Delete this remote
18775 y/e/d> y
18776
18777 List directories in top level of your OpenDrive
18778
18779 rclone lsd remote:
18780
18781 List all the files in your OpenDrive
18782
18783 rclone ls remote:
18784
18785 To copy a local directory to an OpenDrive directory called backup
18786
18787 rclone copy /home/source remote:backup
18788
18789 Modified time and MD5SUMs
18790 OpenDrive allows modification times to be set on objects accurate to 1
18791 second. These will be used to detect whether objects need syncing or
18792 not.
18793
18794 Restricted filename characters
18795 Character Value Replacement
18796 ────────────────────────────────
18797 NUL 0x00 ␀
18798 / 0x2F /
18799 " 0x22 "
18800 * 0x2A *
18801 : 0x3A :
18802 < 0x3C <
18803 > 0x3E >
18804 ? 0x3F ?
18805 \ 0x5C \
18806 | 0x7C |
18807
18808 File names can also not begin or end with the following characters.
18809 These only get replaced if they are the first or last character in the
18810 name:
18811
18812 Character Value Replacement
18813 ────────────────────────────────
18814 SP 0x20 ␠
18815 HT 0x09 ␉
18816 LF 0x0A ␊
18817 VT 0x0B ␋
18818 CR 0x0D ␍
18819
18820 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
18821 they can’t be used in JSON strings.
18822
18823 Standard Options
18824 Here are the standard options specific to opendrive (OpenDrive).
18825
18826 –opendrive-username
18827 Username
18828
18829 · Config: username
18830
18831 · Env Var: RCLONE_OPENDRIVE_USERNAME
18832
18833 · Type: string
18834
18835 · Default: ""
18836
18837 –opendrive-password
18838 Password.
18839
18840 · Config: password
18841
18842 · Env Var: RCLONE_OPENDRIVE_PASSWORD
18843
18844 · Type: string
18845
18846 · Default: ""
18847
18848 Advanced Options
18849 Here are the advanced options specific to opendrive (OpenDrive).
18850
18851 –opendrive-encoding
18852 This sets the encoding for the backend.
18853
18854 See: the encoding section in the overview (/overview/#encoding) for
18855 more info.
18856
18857 · Config: encoding
18858
18859 · Env Var: RCLONE_OPENDRIVE_ENCODING
18860
18861 · Type: MultiEncoder
18862
18863 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
18864 Slash,LeftSpace,LeftCrLfHtVt,RightSpace,RightCrLfHtVt,InvalidUtf8,Dot
18865
18866 –opendrive-chunk-size
18867 Files will be uploaded in chunks this size.
18868
18869 Note that these chunks are buffered in memory so increasing them will
18870 increase memory use.
18871
18872 · Config: chunk_size
18873
18874 · Env Var: RCLONE_OPENDRIVE_CHUNK_SIZE
18875
18876 · Type: SizeSuffix
18877
18878 · Default: 10M
18879
18880 Limitations
18881 Note that OpenDrive is case insensitive so you can’t have a file called
18882 “Hello.doc” and one called “hello.doc”.
18883
18884 There are quite a few characters that can’t be in OpenDrive file names.
18885 These can’t occur on Windows platforms, but on non-Windows platforms
18886 they are common. Rclone will map these names to and from an identical
18887 looking unicode equivalent. For example if a file has a ? in it will
18888 be mapped to ? instead.
18889
18890 QingStor
18891 Paths are specified as remote:bucket (or remote: for the lsd command.)
18892 You may put subdirectories in too, eg remote:bucket/path/to/dir.
18893
18894 Here is an example of making an QingStor configuration. First run
18895
18896 rclone config
18897
18898 This will guide you through an interactive setup process.
18899
18900 No remotes found - make a new one
18901 n) New remote
18902 r) Rename remote
18903 c) Copy remote
18904 s) Set configuration password
18905 q) Quit config
18906 n/r/c/s/q> n
18907 name> remote
18908 Type of storage to configure.
18909 Choose a number from below, or type in your own value
18910 [snip]
18911 XX / QingStor Object Storage
18912 \ "qingstor"
18913 [snip]
18914 Storage> qingstor
18915 Get QingStor credentials from runtime. Only applies if access_key_id and secret_access_key is blank.
18916 Choose a number from below, or type in your own value
18917 1 / Enter QingStor credentials in the next step
18918 \ "false"
18919 2 / Get QingStor credentials from the environment (env vars or IAM)
18920 \ "true"
18921 env_auth> 1
18922 QingStor Access Key ID - leave blank for anonymous access or runtime credentials.
18923 access_key_id> access_key
18924 QingStor Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
18925 secret_access_key> secret_key
18926 Enter a endpoint URL to connection QingStor API.
18927 Leave blank will use the default value "https://qingstor.com:443"
18928 endpoint>
18929 Zone connect to. Default is "pek3a".
18930 Choose a number from below, or type in your own value
18931 / The Beijing (China) Three Zone
18932 1 | Needs location constraint pek3a.
18933 \ "pek3a"
18934 / The Shanghai (China) First Zone
18935 2 | Needs location constraint sh1a.
18936 \ "sh1a"
18937 zone> 1
18938 Number of connnection retry.
18939 Leave blank will use the default value "3".
18940 connection_retries>
18941 Remote config
18942 --------------------
18943 [remote]
18944 env_auth = false
18945 access_key_id = access_key
18946 secret_access_key = secret_key
18947 endpoint =
18948 zone = pek3a
18949 connection_retries =
18950 --------------------
18951 y) Yes this is OK
18952 e) Edit this remote
18953 d) Delete this remote
18954 y/e/d> y
18955
18956 This remote is called remote and can now be used like this
18957
18958 See all buckets
18959
18960 rclone lsd remote:
18961
18962 Make a new bucket
18963
18964 rclone mkdir remote:bucket
18965
18966 List the contents of a bucket
18967
18968 rclone ls remote:bucket
18969
18970 Sync /home/local/directory to the remote bucket, deleting any excess
18971 files in the bucket.
18972
18973 rclone sync /home/local/directory remote:bucket
18974
18975 –fast-list
18976 This remote supports --fast-list which allows you to use fewer transac‐
18977 tions in exchange for more memory. See the rclone docs (/docs/#fast-
18978 list) for more details.
18979
18980 Multipart uploads
18981 rclone supports multipart uploads with QingStor which means that it can
18982 upload files bigger than 5GB. Note that files uploaded with multipart
18983 upload don’t have an MD5SUM.
18984
18985 Buckets and Zone
18986 With QingStor you can list buckets (rclone lsd) using any zone, but you
18987 can only access the content of a bucket from the zone it was created
18988 in. If you attempt to access a bucket from the wrong zone, you will
18989 get an error, incorrect zone, the bucket is not in 'XXX' zone.
18990
18991 Authentication
18992 There are two ways to supply rclone with a set of QingStor credentials.
18993 In order of precedence:
18994
18995 · Directly in the rclone configuration file (as configured by rclone
18996 config)
18997
18998 · set access_key_id and secret_access_key
18999
19000 · Runtime configuration:
19001
19002 · set env_auth to true in the config file
19003
19004 · Exporting the following environment variables before running rclone
19005
19006 · Access Key ID: QS_ACCESS_KEY_ID or QS_ACCESS_KEY
19007
19008 · Secret Access Key: QS_SECRET_ACCESS_KEY or QS_SECRET_KEY
19009
19010 Restricted filename characters
19011 The control characters 0x00-0x1F and / are replaced as in the default
19012 restricted characters set (/overview/#restricted-characters). Note
19013 that 0x7F is not replaced.
19014
19015 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
19016 they can’t be used in JSON strings.
19017
19018 Standard Options
19019 Here are the standard options specific to qingstor (QingCloud Object
19020 Storage).
19021
19022 –qingstor-env-auth
19023 Get QingStor credentials from runtime. Only applies if access_key_id
19024 and secret_access_key is blank.
19025
19026 · Config: env_auth
19027
19028 · Env Var: RCLONE_QINGSTOR_ENV_AUTH
19029
19030 · Type: bool
19031
19032 · Default: false
19033
19034 · Examples:
19035
19036 · “false”
19037
19038 · Enter QingStor credentials in the next step
19039
19040 · “true”
19041
19042 · Get QingStor credentials from the environment (env vars or IAM)
19043
19044 –qingstor-access-key-id
19045 QingStor Access Key ID Leave blank for anonymous access or runtime cre‐
19046 dentials.
19047
19048 · Config: access_key_id
19049
19050 · Env Var: RCLONE_QINGSTOR_ACCESS_KEY_ID
19051
19052 · Type: string
19053
19054 · Default: ""
19055
19056 –qingstor-secret-access-key
19057 QingStor Secret Access Key (password) Leave blank for anonymous access
19058 or runtime credentials.
19059
19060 · Config: secret_access_key
19061
19062 · Env Var: RCLONE_QINGSTOR_SECRET_ACCESS_KEY
19063
19064 · Type: string
19065
19066 · Default: ""
19067
19068 –qingstor-endpoint
19069 Enter a endpoint URL to connection QingStor API. Leave blank will use
19070 the default value “https://qingstor.com:443”
19071
19072 · Config: endpoint
19073
19074 · Env Var: RCLONE_QINGSTOR_ENDPOINT
19075
19076 · Type: string
19077
19078 · Default: ""
19079
19080 –qingstor-zone
19081 Zone to connect to. Default is “pek3a”.
19082
19083 · Config: zone
19084
19085 · Env Var: RCLONE_QINGSTOR_ZONE
19086
19087 · Type: string
19088
19089 · Default: ""
19090
19091 · Examples:
19092
19093 · “pek3a”
19094
19095 · The Beijing (China) Three Zone
19096
19097 · Needs location constraint pek3a.
19098
19099 · “sh1a”
19100
19101 · The Shanghai (China) First Zone
19102
19103 · Needs location constraint sh1a.
19104
19105 · “gd2a”
19106
19107 · The Guangdong (China) Second Zone
19108
19109 · Needs location constraint gd2a.
19110
19111 Advanced Options
19112 Here are the advanced options specific to qingstor (QingCloud Object
19113 Storage).
19114
19115 –qingstor-connection-retries
19116 Number of connection retries.
19117
19118 · Config: connection_retries
19119
19120 · Env Var: RCLONE_QINGSTOR_CONNECTION_RETRIES
19121
19122 · Type: int
19123
19124 · Default: 3
19125
19126 –qingstor-upload-cutoff
19127 Cutoff for switching to chunked upload
19128
19129 Any files larger than this will be uploaded in chunks of chunk_size.
19130 The minimum is 0 and the maximum is 5GB.
19131
19132 · Config: upload_cutoff
19133
19134 · Env Var: RCLONE_QINGSTOR_UPLOAD_CUTOFF
19135
19136 · Type: SizeSuffix
19137
19138 · Default: 200M
19139
19140 –qingstor-chunk-size
19141 Chunk size to use for uploading.
19142
19143 When uploading files larger than upload_cutoff they will be uploaded as
19144 multipart uploads using this chunk size.
19145
19146 Note that “–qingstor-upload-concurrency” chunks of this size are
19147 buffered in memory per transfer.
19148
19149 If you are transferring large files over high speed links and you have
19150 enough memory, then increasing this will speed up the transfers.
19151
19152 · Config: chunk_size
19153
19154 · Env Var: RCLONE_QINGSTOR_CHUNK_SIZE
19155
19156 · Type: SizeSuffix
19157
19158 · Default: 4M
19159
19160 –qingstor-upload-concurrency
19161 Concurrency for multipart uploads.
19162
19163 This is the number of chunks of the same file that are uploaded concur‐
19164 rently.
19165
19166 NB if you set this to > 1 then the checksums of multpart uploads become
19167 corrupted (the uploads themselves are not corrupted though).
19168
19169 If you are uploading small numbers of large file over high speed link
19170 and these uploads do not fully utilize your bandwidth, then increasing
19171 this may help to speed up the transfers.
19172
19173 · Config: upload_concurrency
19174
19175 · Env Var: RCLONE_QINGSTOR_UPLOAD_CONCURRENCY
19176
19177 · Type: int
19178
19179 · Default: 1
19180
19181 –qingstor-encoding
19182 This sets the encoding for the backend.
19183
19184 See: the encoding section in the overview (/overview/#encoding) for
19185 more info.
19186
19187 · Config: encoding
19188
19189 · Env Var: RCLONE_QINGSTOR_ENCODING
19190
19191 · Type: MultiEncoder
19192
19193 · Default: Slash,Ctl,InvalidUtf8
19194
19195 Swift
19196 Swift refers to Openstack Object Storage (https://docs.open‐
19197 stack.org/swift/latest/). Commercial implementations of that being:
19198
19199 · Rackspace Cloud Files (https://www.rackspace.com/cloud/files/)
19200
19201 · Memset Memstore (https://www.memset.com/cloud/storage/)
19202
19203 · OVH Object Storage (https://www.ovh.co.uk/public-cloud/storage/ob‐
19204 ject-storage/)
19205
19206 · Oracle Cloud Storage (https://cloud.oracle.com/storage-opc)
19207
19208 · IBM Bluemix Cloud ObjectStorage Swift (https://con‐
19209 sole.bluemix.net/docs/infrastructure/objectstorage-swift/index.html)
19210
19211 Paths are specified as remote:container (or remote: for the lsd com‐
19212 mand.) You may put subdirectories in too, eg remote:contain‐
19213 er/path/to/dir.
19214
19215 Here is an example of making a swift configuration. First run
19216
19217 rclone config
19218
19219 This will guide you through an interactive setup process.
19220
19221 No remotes found - make a new one
19222 n) New remote
19223 s) Set configuration password
19224 q) Quit config
19225 n/s/q> n
19226 name> remote
19227 Type of storage to configure.
19228 Choose a number from below, or type in your own value
19229 [snip]
19230 XX / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
19231 \ "swift"
19232 [snip]
19233 Storage> swift
19234 Get swift credentials from environment variables in standard OpenStack form.
19235 Choose a number from below, or type in your own value
19236 1 / Enter swift credentials in the next step
19237 \ "false"
19238 2 / Get swift credentials from environment vars. Leave other fields blank if using this.
19239 \ "true"
19240 env_auth> true
19241 User name to log in (OS_USERNAME).
19242 user>
19243 API key or password (OS_PASSWORD).
19244 key>
19245 Authentication URL for server (OS_AUTH_URL).
19246 Choose a number from below, or type in your own value
19247 1 / Rackspace US
19248 \ "https://auth.api.rackspacecloud.com/v1.0"
19249 2 / Rackspace UK
19250 \ "https://lon.auth.api.rackspacecloud.com/v1.0"
19251 3 / Rackspace v2
19252 \ "https://identity.api.rackspacecloud.com/v2.0"
19253 4 / Memset Memstore UK
19254 \ "https://auth.storage.memset.com/v1.0"
19255 5 / Memset Memstore UK v2
19256 \ "https://auth.storage.memset.com/v2.0"
19257 6 / OVH
19258 \ "https://auth.cloud.ovh.net/v3"
19259 auth>
19260 User ID to log in - optional - most swift systems use user and leave this blank (v3 auth) (OS_USER_ID).
19261 user_id>
19262 User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
19263 domain>
19264 Tenant name - optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME)
19265 tenant>
19266 Tenant ID - optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID)
19267 tenant_id>
19268 Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
19269 tenant_domain>
19270 Region name - optional (OS_REGION_NAME)
19271 region>
19272 Storage URL - optional (OS_STORAGE_URL)
19273 storage_url>
19274 Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
19275 auth_token>
19276 AuthVersion - optional - set to (1,2,3) if your auth URL has no version (ST_AUTH_VERSION)
19277 auth_version>
19278 Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE)
19279 Choose a number from below, or type in your own value
19280 1 / Public (default, choose this if not sure)
19281 \ "public"
19282 2 / Internal (use internal service net)
19283 \ "internal"
19284 3 / Admin
19285 \ "admin"
19286 endpoint_type>
19287 Remote config
19288 --------------------
19289 [test]
19290 env_auth = true
19291 user =
19292 key =
19293 auth =
19294 user_id =
19295 domain =
19296 tenant =
19297 tenant_id =
19298 tenant_domain =
19299 region =
19300 storage_url =
19301 auth_token =
19302 auth_version =
19303 endpoint_type =
19304 --------------------
19305 y) Yes this is OK
19306 e) Edit this remote
19307 d) Delete this remote
19308 y/e/d> y
19309
19310 This remote is called remote and can now be used like this
19311
19312 See all containers
19313
19314 rclone lsd remote:
19315
19316 Make a new container
19317
19318 rclone mkdir remote:container
19319
19320 List the contents of a container
19321
19322 rclone ls remote:container
19323
19324 Sync /home/local/directory to the remote container, deleting any excess
19325 files in the container.
19326
19327 rclone sync /home/local/directory remote:container
19328
19329 Configuration from an OpenStack credentials file
19330 An OpenStack credentials file typically looks something something like
19331 this (without the comments)
19332
19333 export OS_AUTH_URL=https://a.provider.net/v2.0
19334 export OS_TENANT_ID=ffffffffffffffffffffffffffffffff
19335 export OS_TENANT_NAME="1234567890123456"
19336 export OS_USERNAME="123abc567xy"
19337 echo "Please enter your OpenStack Password: "
19338 read -sr OS_PASSWORD_INPUT
19339 export OS_PASSWORD=$OS_PASSWORD_INPUT
19340 export OS_REGION_NAME="SBG1"
19341 if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
19342
19343 The config file needs to look something like this where $OS_USERNAME
19344 represents the value of the OS_USERNAME variable - 123abc567xy in the
19345 example above.
19346
19347 [remote]
19348 type = swift
19349 user = $OS_USERNAME
19350 key = $OS_PASSWORD
19351 auth = $OS_AUTH_URL
19352 tenant = $OS_TENANT_NAME
19353
19354 Note that you may (or may not) need to set region too - try without
19355 first.
19356
19357 Configuration from the environment
19358 If you prefer you can configure rclone to use swift using a standard
19359 set of OpenStack environment variables.
19360
19361 When you run through the config, make sure you choose true for env_auth
19362 and leave everything else blank.
19363
19364 rclone will then set any empty config parameters from the environment
19365 using standard OpenStack environment variables. There is a list of the
19366 variables (https://godoc.org/github.com/ncw/swift#Connection.ApplyEnvi‐
19367 ronment) in the docs for the swift library.
19368
19369 Using an alternate authentication method
19370 If your OpenStack installation uses a non-standard authentication
19371 method that might not be yet supported by rclone or the underlying
19372 swift library, you can authenticate externally (e.g. calling manually
19373 the openstack commands to get a token). Then, you just need to pass
19374 the two configuration variables auth_token and storage_url. If they
19375 are both provided, the other variables are ignored. rclone will not
19376 try to authenticate but instead assume it is already authenticated and
19377 use these two variables to access the OpenStack installation.
19378
19379 Using rclone without a config file
19380 You can use rclone with swift without a config file, if desired, like
19381 this:
19382
19383 source openstack-credentials-file
19384 export RCLONE_CONFIG_MYREMOTE_TYPE=swift
19385 export RCLONE_CONFIG_MYREMOTE_ENV_AUTH=true
19386 rclone lsd myremote:
19387
19388 –fast-list
19389 This remote supports --fast-list which allows you to use fewer transac‐
19390 tions in exchange for more memory. See the rclone docs (/docs/#fast-
19391 list) for more details.
19392
19393 –update and –use-server-modtime
19394 As noted below, the modified time is stored on metadata on the object.
19395 It is used by default for all operations that require checking the time
19396 a file was last updated. It allows rclone to treat the remote more
19397 like a true filesystem, but it is inefficient because it requires an
19398 extra API call to retrieve the metadata.
19399
19400 For many operations, the time the object was last uploaded to the re‐
19401 mote is sufficient to determine if it is “dirty”. By using --update
19402 along with --use-server-modtime, you can avoid the extra API call and
19403 simply upload files whose local modtime is newer than the time it was
19404 last uploaded.
19405
19406 Standard Options
19407 Here are the standard options specific to swift (Openstack Swift
19408 (Rackspace Cloud Files, Memset Memstore, OVH)).
19409
19410 –swift-env-auth
19411 Get swift credentials from environment variables in standard OpenStack
19412 form.
19413
19414 · Config: env_auth
19415
19416 · Env Var: RCLONE_SWIFT_ENV_AUTH
19417
19418 · Type: bool
19419
19420 · Default: false
19421
19422 · Examples:
19423
19424 · “false”
19425
19426 · Enter swift credentials in the next step
19427
19428 · “true”
19429
19430 · Get swift credentials from environment vars. Leave other fields
19431 blank if using this.
19432
19433 –swift-user
19434 User name to log in (OS_USERNAME).
19435
19436 · Config: user
19437
19438 · Env Var: RCLONE_SWIFT_USER
19439
19440 · Type: string
19441
19442 · Default: ""
19443
19444 –swift-key
19445 API key or password (OS_PASSWORD).
19446
19447 · Config: key
19448
19449 · Env Var: RCLONE_SWIFT_KEY
19450
19451 · Type: string
19452
19453 · Default: ""
19454
19455 –swift-auth
19456 Authentication URL for server (OS_AUTH_URL).
19457
19458 · Config: auth
19459
19460 · Env Var: RCLONE_SWIFT_AUTH
19461
19462 · Type: string
19463
19464 · Default: ""
19465
19466 · Examples:
19467
19468 · “https://auth.api.rackspacecloud.com/v1.0”
19469
19470 · Rackspace US
19471
19472 · “https://lon.auth.api.rackspacecloud.com/v1.0”
19473
19474 · Rackspace UK
19475
19476 · “https://identity.api.rackspacecloud.com/v2.0”
19477
19478 · Rackspace v2
19479
19480 · “https://auth.storage.memset.com/v1.0”
19481
19482 · Memset Memstore UK
19483
19484 · “https://auth.storage.memset.com/v2.0”
19485
19486 · Memset Memstore UK v2
19487
19488 · “https://auth.cloud.ovh.net/v3”
19489
19490 · OVH
19491
19492 –swift-user-id
19493 User ID to log in - optional - most swift systems use user and leave
19494 this blank (v3 auth) (OS_USER_ID).
19495
19496 · Config: user_id
19497
19498 · Env Var: RCLONE_SWIFT_USER_ID
19499
19500 · Type: string
19501
19502 · Default: ""
19503
19504 –swift-domain
19505 User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
19506
19507 · Config: domain
19508
19509 · Env Var: RCLONE_SWIFT_DOMAIN
19510
19511 · Type: string
19512
19513 · Default: ""
19514
19515 –swift-tenant
19516 Tenant name - optional for v1 auth, this or tenant_id required other‐
19517 wise (OS_TENANT_NAME or OS_PROJECT_NAME)
19518
19519 · Config: tenant
19520
19521 · Env Var: RCLONE_SWIFT_TENANT
19522
19523 · Type: string
19524
19525 · Default: ""
19526
19527 –swift-tenant-id
19528 Tenant ID - optional for v1 auth, this or tenant required otherwise
19529 (OS_TENANT_ID)
19530
19531 · Config: tenant_id
19532
19533 · Env Var: RCLONE_SWIFT_TENANT_ID
19534
19535 · Type: string
19536
19537 · Default: ""
19538
19539 –swift-tenant-domain
19540 Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
19541
19542 · Config: tenant_domain
19543
19544 · Env Var: RCLONE_SWIFT_TENANT_DOMAIN
19545
19546 · Type: string
19547
19548 · Default: ""
19549
19550 –swift-region
19551 Region name - optional (OS_REGION_NAME)
19552
19553 · Config: region
19554
19555 · Env Var: RCLONE_SWIFT_REGION
19556
19557 · Type: string
19558
19559 · Default: ""
19560
19561 –swift-storage-url
19562 Storage URL - optional (OS_STORAGE_URL)
19563
19564 · Config: storage_url
19565
19566 · Env Var: RCLONE_SWIFT_STORAGE_URL
19567
19568 · Type: string
19569
19570 · Default: ""
19571
19572 –swift-auth-token
19573 Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
19574
19575 · Config: auth_token
19576
19577 · Env Var: RCLONE_SWIFT_AUTH_TOKEN
19578
19579 · Type: string
19580
19581 · Default: ""
19582
19583 –swift-application-credential-id
19584 Application Credential ID (OS_APPLICATION_CREDENTIAL_ID)
19585
19586 · Config: application_credential_id
19587
19588 · Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_ID
19589
19590 · Type: string
19591
19592 · Default: ""
19593
19594 –swift-application-credential-name
19595 Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME)
19596
19597 · Config: application_credential_name
19598
19599 · Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_NAME
19600
19601 · Type: string
19602
19603 · Default: ""
19604
19605 –swift-application-credential-secret
19606 Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET)
19607
19608 · Config: application_credential_secret
19609
19610 · Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_SECRET
19611
19612 · Type: string
19613
19614 · Default: ""
19615
19616 –swift-auth-version
19617 AuthVersion - optional - set to (1,2,3) if your auth URL has no version
19618 (ST_AUTH_VERSION)
19619
19620 · Config: auth_version
19621
19622 · Env Var: RCLONE_SWIFT_AUTH_VERSION
19623
19624 · Type: int
19625
19626 · Default: 0
19627
19628 –swift-endpoint-type
19629 Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE)
19630
19631 · Config: endpoint_type
19632
19633 · Env Var: RCLONE_SWIFT_ENDPOINT_TYPE
19634
19635 · Type: string
19636
19637 · Default: “public”
19638
19639 · Examples:
19640
19641 · “public”
19642
19643 · Public (default, choose this if not sure)
19644
19645 · “internal”
19646
19647 · Internal (use internal service net)
19648
19649 · “admin”
19650
19651 · Admin
19652
19653 –swift-storage-policy
19654 The storage policy to use when creating a new container
19655
19656 This applies the specified storage policy when creating a new contain‐
19657 er. The policy cannot be changed afterwards. The allowed configura‐
19658 tion values and their meaning depend on your Swift storage provider.
19659
19660 · Config: storage_policy
19661
19662 · Env Var: RCLONE_SWIFT_STORAGE_POLICY
19663
19664 · Type: string
19665
19666 · Default: ""
19667
19668 · Examples:
19669
19670 · ""
19671
19672 · Default
19673
19674 · “pcs”
19675
19676 · OVH Public Cloud Storage
19677
19678 · “pca”
19679
19680 · OVH Public Cloud Archive
19681
19682 Advanced Options
19683 Here are the advanced options specific to swift (Openstack Swift
19684 (Rackspace Cloud Files, Memset Memstore, OVH)).
19685
19686 –swift-chunk-size
19687 Above this size files will be chunked into a _segments container.
19688
19689 Above this size files will be chunked into a _segments container. The
19690 default for this is 5GB which is its maximum value.
19691
19692 · Config: chunk_size
19693
19694 · Env Var: RCLONE_SWIFT_CHUNK_SIZE
19695
19696 · Type: SizeSuffix
19697
19698 · Default: 5G
19699
19700 –swift-no-chunk
19701 Don’t chunk files during streaming upload.
19702
19703 When doing streaming uploads (eg using rcat or mount) setting this flag
19704 will cause the swift backend to not upload chunked files.
19705
19706 This will limit the maximum upload size to 5GB. However non chunked
19707 files are easier to deal with and have an MD5SUM.
19708
19709 Rclone will still chunk files bigger than chunk_size when doing normal
19710 copy operations.
19711
19712 · Config: no_chunk
19713
19714 · Env Var: RCLONE_SWIFT_NO_CHUNK
19715
19716 · Type: bool
19717
19718 · Default: false
19719
19720 –swift-encoding
19721 This sets the encoding for the backend.
19722
19723 See: the encoding section in the overview (/overview/#encoding) for
19724 more info.
19725
19726 · Config: encoding
19727
19728 · Env Var: RCLONE_SWIFT_ENCODING
19729
19730 · Type: MultiEncoder
19731
19732 · Default: Slash,InvalidUtf8
19733
19734 Modified time
19735 The modified time is stored as metadata on the object as X-Ob‐
19736 ject-Meta-Mtime as floating point since the epoch accurate to 1 ns.
19737
19738 This is a defacto standard (used in the official python-swiftclient
19739 amongst others) for storing the modification time for an object.
19740
19741 Restricted filename characters
19742 Character Value Replacement
19743 ────────────────────────────────
19744 NUL 0x00 ␀
19745 / 0x2F /
19746
19747 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
19748 they can’t be used in JSON strings.
19749
19750 Limitations
19751 The Swift API doesn’t return a correct MD5SUM for segmented files (Dy‐
19752 namic or Static Large Objects) so rclone won’t check or use the MD5SUM
19753 for these.
19754
19755 Troubleshooting
19756 Rclone gives Failed to create file system for “remote:”: Bad Request
19757 Due to an oddity of the underlying swift library, it gives a “Bad Re‐
19758 quest” error rather than a more sensible error when the authentication
19759 fails for Swift.
19760
19761 So this most likely means your username / password is wrong. You can
19762 investigate further with the --dump-bodies flag.
19763
19764 This may also be caused by specifying the region when you shouldn’t
19765 have (eg OVH).
19766
19767 Rclone gives Failed to create file system: Response didn’t have storage
19768 storage url and auth token
19769 This is most likely caused by forgetting to specify your tenant when
19770 setting up a swift remote.
19771
19772 pCloud
19773 Paths are specified as remote:path
19774
19775 Paths may be as deep as required, eg remote:directory/subdirectory.
19776
19777 The initial setup for pCloud involves getting a token from pCloud which
19778 you need to do in your browser. rclone config walks you through it.
19779
19780 Here is an example of how to make a remote called remote. First run:
19781
19782 rclone config
19783
19784 This will guide you through an interactive setup process:
19785
19786 No remotes found - make a new one
19787 n) New remote
19788 s) Set configuration password
19789 q) Quit config
19790 n/s/q> n
19791 name> remote
19792 Type of storage to configure.
19793 Choose a number from below, or type in your own value
19794 [snip]
19795 XX / Pcloud
19796 \ "pcloud"
19797 [snip]
19798 Storage> pcloud
19799 Pcloud App Client Id - leave blank normally.
19800 client_id>
19801 Pcloud App Client Secret - leave blank normally.
19802 client_secret>
19803 Remote config
19804 Use auto config?
19805 * Say Y if not sure
19806 * Say N if you are working on a remote or headless machine
19807 y) Yes
19808 n) No
19809 y/n> y
19810 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
19811 Log in and authorize rclone for access
19812 Waiting for code...
19813 Got code
19814 --------------------
19815 [remote]
19816 client_id =
19817 client_secret =
19818 token = {"access_token":"XXX","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}
19819 --------------------
19820 y) Yes this is OK
19821 e) Edit this remote
19822 d) Delete this remote
19823 y/e/d> y
19824
19825 See the remote setup docs (https://rclone.org/remote_setup/) for how to
19826 set it up on a machine with no Internet browser available.
19827
19828 Note that rclone runs a webserver on your local machine to collect the
19829 token as returned from pCloud. This only runs from the moment it opens
19830 your browser to the moment you get back the verification code. This is
19831 on http://127.0.0.1:53682/ and this it may require you to unblock it
19832 temporarily if you are running a host firewall.
19833
19834 Once configured you can then use rclone like this,
19835
19836 List directories in top level of your pCloud
19837
19838 rclone lsd remote:
19839
19840 List all the files in your pCloud
19841
19842 rclone ls remote:
19843
19844 To copy a local directory to an pCloud directory called backup
19845
19846 rclone copy /home/source remote:backup
19847
19848 Modified time and hashes
19849 pCloud allows modification times to be set on objects accurate to 1
19850 second. These will be used to detect whether objects need syncing or
19851 not. In order to set a Modification time pCloud requires the object be
19852 re-uploaded.
19853
19854 pCloud supports MD5 and SHA1 type hashes, so you can use the --checksum
19855 flag.
19856
19857 Restricted filename characters
19858 In addition to the default restricted characters set (/overview/#re‐
19859 stricted-characters) the following characters are also replaced:
19860
19861 Character Value Replacement
19862 ────────────────────────────────
19863 \ 0x5C \
19864
19865 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
19866 they can’t be used in JSON strings.
19867
19868 Deleting files
19869 Deleted files will be moved to the trash. Your subscription level will
19870 determine how long items stay in the trash. rclone cleanup can be used
19871 to empty the trash.
19872
19873 Standard Options
19874 Here are the standard options specific to pcloud (Pcloud).
19875
19876 –pcloud-client-id
19877 Pcloud App Client Id Leave blank normally.
19878
19879 · Config: client_id
19880
19881 · Env Var: RCLONE_PCLOUD_CLIENT_ID
19882
19883 · Type: string
19884
19885 · Default: ""
19886
19887 –pcloud-client-secret
19888 Pcloud App Client Secret Leave blank normally.
19889
19890 · Config: client_secret
19891
19892 · Env Var: RCLONE_PCLOUD_CLIENT_SECRET
19893
19894 · Type: string
19895
19896 · Default: ""
19897
19898 Advanced Options
19899 Here are the advanced options specific to pcloud (Pcloud).
19900
19901 –pcloud-encoding
19902 This sets the encoding for the backend.
19903
19904 See: the encoding section in the overview (/overview/#encoding) for
19905 more info.
19906
19907 · Config: encoding
19908
19909 · Env Var: RCLONE_PCLOUD_ENCODING
19910
19911 · Type: MultiEncoder
19912
19913 · Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
19914
19915 premiumize.me
19916 Paths are specified as remote:path
19917
19918 Paths may be as deep as required, eg remote:directory/subdirectory.
19919
19920 The initial setup for premiumize.me (https://premiumize.me/) involves
19921 getting a token from premiumize.me which you need to do in your brows‐
19922 er. rclone config walks you through it.
19923
19924 Here is an example of how to make a remote called remote. First run:
19925
19926 rclone config
19927
19928 This will guide you through an interactive setup process:
19929
19930 No remotes found - make a new one
19931 n) New remote
19932 s) Set configuration password
19933 q) Quit config
19934 n/s/q> n
19935 name> remote
19936 Type of storage to configure.
19937 Enter a string value. Press Enter for the default ("").
19938 Choose a number from below, or type in your own value
19939 [snip]
19940 XX / premiumize.me
19941 \ "premiumizeme"
19942 [snip]
19943 Storage> premiumizeme
19944 ** See help for premiumizeme backend at: https://rclone.org/premiumizeme/ **
19945
19946 Remote config
19947 Use auto config?
19948 * Say Y if not sure
19949 * Say N if you are working on a remote or headless machine
19950 y) Yes
19951 n) No
19952 y/n> y
19953 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
19954 Log in and authorize rclone for access
19955 Waiting for code...
19956 Got code
19957 --------------------
19958 [remote]
19959 type = premiumizeme
19960 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2029-08-07T18:44:15.548915378+01:00"}
19961 --------------------
19962 y) Yes this is OK
19963 e) Edit this remote
19964 d) Delete this remote
19965 y/e/d>
19966
19967 See the remote setup docs (https://rclone.org/remote_setup/) for how to
19968 set it up on a machine with no Internet browser available.
19969
19970 Note that rclone runs a webserver on your local machine to collect the
19971 token as returned from premiumize.me. This only runs from the moment
19972 it opens your browser to the moment you get back the verification code.
19973 This is on http://127.0.0.1:53682/ and this it may require you to un‐
19974 block it temporarily if you are running a host firewall.
19975
19976 Once configured you can then use rclone like this,
19977
19978 List directories in top level of your premiumize.me
19979
19980 rclone lsd remote:
19981
19982 List all the files in your premiumize.me
19983
19984 rclone ls remote:
19985
19986 To copy a local directory to an premiumize.me directory called backup
19987
19988 rclone copy /home/source remote:backup
19989
19990 Modified time and hashes
19991 premiumize.me does not support modification times or hashes, therefore
19992 syncing will default to --size-only checking. Note that using --update
19993 will work.
19994
19995 Restricted filename characters
19996 In addition to the default restricted characters set (/overview/#re‐
19997 stricted-characters) the following characters are also replaced:
19998
19999 Character Value Replacement
20000 ────────────────────────────────
20001 \ 0x5C \
20002 " 0x22 "
20003
20004 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
20005 they can’t be used in JSON strings.
20006
20007 Standard Options
20008 Here are the standard options specific to premiumizeme (premiumize.me).
20009
20010 –premiumizeme-api-key
20011 API Key.
20012
20013 This is not normally used - use oauth instead.
20014
20015 · Config: api_key
20016
20017 · Env Var: RCLONE_PREMIUMIZEME_API_KEY
20018
20019 · Type: string
20020
20021 · Default: ""
20022
20023 Advanced Options
20024 Here are the advanced options specific to premiumizeme (premiumize.me).
20025
20026 –premiumizeme-encoding
20027 This sets the encoding for the backend.
20028
20029 See: the encoding section in the overview (/overview/#encoding) for
20030 more info.
20031
20032 · Config: encoding
20033
20034 · Env Var: RCLONE_PREMIUMIZEME_ENCODING
20035
20036 · Type: MultiEncoder
20037
20038 · Default: Slash,DoubleQuote,BackSlash,Del,Ctl,InvalidUtf8,Dot
20039
20040 Limitations
20041 Note that premiumize.me is case insensitive so you can’t have a file
20042 called “Hello.doc” and one called “hello.doc”.
20043
20044 premiumize.me file names can’t have the \ or " characters in. rclone
20045 maps these to and from an identical looking unicode equivalents \ and
20046 "
20047
20048 premiumize.me only supports filenames up to 255 characters in length.
20049
20050 put.io
20051 Paths are specified as remote:path
20052
20053 put.io paths may be as deep as required, eg remote:directory/subdirec‐
20054 tory.
20055
20056 The initial setup for put.io involves getting a token from put.io which
20057 you need to do in your browser. rclone config walks you through it.
20058
20059 Here is an example of how to make a remote called remote. First run:
20060
20061 rclone config
20062
20063 This will guide you through an interactive setup process:
20064
20065 No remotes found - make a new one
20066 n) New remote
20067 s) Set configuration password
20068 q) Quit config
20069 n/s/q> n
20070 name> putio
20071 Type of storage to configure.
20072 Enter a string value. Press Enter for the default ("").
20073 Choose a number from below, or type in your own value
20074 [snip]
20075 XX / Put.io
20076 \ "putio"
20077 [snip]
20078 Storage> putio
20079 ** See help for putio backend at: https://rclone.org/putio/ **
20080
20081 Remote config
20082 Use auto config?
20083 * Say Y if not sure
20084 * Say N if you are working on a remote or headless machine
20085 y) Yes
20086 n) No
20087 y/n> y
20088 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
20089 Log in and authorize rclone for access
20090 Waiting for code...
20091 Got code
20092 --------------------
20093 [putio]
20094 type = putio
20095 token = {"access_token":"XXXXXXXX","expiry":"0001-01-01T00:00:00Z"}
20096 --------------------
20097 y) Yes this is OK
20098 e) Edit this remote
20099 d) Delete this remote
20100 y/e/d> y
20101 Current remotes:
20102
20103 Name Type
20104 ==== ====
20105 putio putio
20106
20107 e) Edit existing remote
20108 n) New remote
20109 d) Delete remote
20110 r) Rename remote
20111 c) Copy remote
20112 s) Set configuration password
20113 q) Quit config
20114 e/n/d/r/c/s/q> q
20115
20116 Note that rclone runs a webserver on your local machine to collect the
20117 token as returned from Google if you use auto config mode. This only
20118 runs from the moment it opens your browser to the moment you get back
20119 the verification code. This is on http://127.0.0.1:53682/ and this it
20120 may require you to unblock it temporarily if you are running a host
20121 firewall, or use manual mode.
20122
20123 You can then use it like this,
20124
20125 List directories in top level of your put.io
20126
20127 rclone lsd remote:
20128
20129 List all the files in your put.io
20130
20131 rclone ls remote:
20132
20133 To copy a local directory to a put.io directory called backup
20134
20135 rclone copy /home/source remote:backup
20136
20137 Restricted filename characters
20138 In addition to the default restricted characters set (/overview/#re‐
20139 stricted-characters) the following characters are also replaced:
20140
20141 Character Value Replacement
20142 ────────────────────────────────
20143 \ 0x5C \
20144
20145 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
20146 they can’t be used in JSON strings.
20147
20148 Advanced Options
20149 Here are the advanced options specific to putio (Put.io).
20150
20151 –putio-encoding
20152 This sets the encoding for the backend.
20153
20154 See: the encoding section in the overview (/overview/#encoding) for
20155 more info.
20156
20157 · Config: encoding
20158
20159 · Env Var: RCLONE_PUTIO_ENCODING
20160
20161 · Type: MultiEncoder
20162
20163 · Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
20164
20165 SFTP
20166 SFTP is the Secure (or SSH) File Transfer Protocol
20167 (https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol).
20168
20169 The SFTP backend can be used with a number of different providers:
20170
20171 · C14
20172
20173 · rsync.net
20174
20175 SFTP runs over SSH v2 and is installed as standard with most modern SSH
20176 installations.
20177
20178 Paths are specified as remote:path. If the path does not begin with a
20179 / it is relative to the home directory of the user. An empty path re‐
20180 mote: refers to the user’s home directory.
20181
20182 "Note that some SFTP servers will need the leading / - Synology is a
20183 good example of this. rsync.net, on the other hand, requires users to
20184 OMIT the leading /.
20185
20186 Here is an example of making an SFTP configuration. First run
20187
20188 rclone config
20189
20190 This will guide you through an interactive setup process.
20191
20192 No remotes found - make a new one
20193 n) New remote
20194 s) Set configuration password
20195 q) Quit config
20196 n/s/q> n
20197 name> remote
20198 Type of storage to configure.
20199 Choose a number from below, or type in your own value
20200 [snip]
20201 XX / SSH/SFTP Connection
20202 \ "sftp"
20203 [snip]
20204 Storage> sftp
20205 SSH host to connect to
20206 Choose a number from below, or type in your own value
20207 1 / Connect to example.com
20208 \ "example.com"
20209 host> example.com
20210 SSH username, leave blank for current username, ncw
20211 user> sftpuser
20212 SSH port, leave blank to use default (22)
20213 port>
20214 SSH password, leave blank to use ssh-agent.
20215 y) Yes type in my own password
20216 g) Generate random password
20217 n) No leave this optional password blank
20218 y/g/n> n
20219 Path to unencrypted PEM-encoded private key file, leave blank to use ssh-agent.
20220 key_file>
20221 Remote config
20222 --------------------
20223 [remote]
20224 host = example.com
20225 user = sftpuser
20226 port =
20227 pass =
20228 key_file =
20229 --------------------
20230 y) Yes this is OK
20231 e) Edit this remote
20232 d) Delete this remote
20233 y/e/d> y
20234
20235 This remote is called remote and can now be used like this:
20236
20237 See all directories in the home directory
20238
20239 rclone lsd remote:
20240
20241 Make a new directory
20242
20243 rclone mkdir remote:path/to/directory
20244
20245 List the contents of a directory
20246
20247 rclone ls remote:path/to/directory
20248
20249 Sync /home/local/directory to the remote directory, deleting any excess
20250 files in the directory.
20251
20252 rclone sync /home/local/directory remote:directory
20253
20254 SSH Authentication
20255 The SFTP remote supports three authentication methods:
20256
20257 · Password
20258
20259 · Key file
20260
20261 · ssh-agent
20262
20263 Key files should be PEM-encoded private key files. For instance
20264 /home/$USER/.ssh/id_rsa. Only unencrypted OpenSSH or PEM encrypted
20265 files are supported.
20266
20267 If you don’t specify pass or key_file then rclone will attempt to con‐
20268 tact an ssh-agent.
20269
20270 You can also specify key_use_agent to force the usage of an ssh-agent.
20271 In this case key_file can also be specified to force the usage of a
20272 specific key in the ssh-agent.
20273
20274 Using an ssh-agent is the only way to load encrypted OpenSSH keys at
20275 the moment.
20276
20277 If you set the --sftp-ask-password option, rclone will prompt for a
20278 password when needed and no password has been configured.
20279
20280 ssh-agent on macOS
20281 Note that there seem to be various problems with using an ssh-agent on
20282 macOS due to recent changes in the OS. The most effective work-around
20283 seems to be to start an ssh-agent in each session, eg
20284
20285 eval `ssh-agent -s` && ssh-add -A
20286
20287 And then at the end of the session
20288
20289 eval `ssh-agent -k`
20290
20291 These commands can be used in scripts of course.
20292
20293 Modified time
20294 Modified times are stored on the server to 1 second precision.
20295
20296 Modified times are used in syncing and are fully supported.
20297
20298 Some SFTP servers disable setting/modifying the file modification time
20299 after upload (for example, certain configurations of ProFTPd with
20300 mod_sftp). If you are using one of these servers, you can set the op‐
20301 tion set_modtime = false in your RClone backend configuration to dis‐
20302 able this behaviour.
20303
20304 Standard Options
20305 Here are the standard options specific to sftp (SSH/SFTP Connection).
20306
20307 –sftp-host
20308 SSH host to connect to
20309
20310 · Config: host
20311
20312 · Env Var: RCLONE_SFTP_HOST
20313
20314 · Type: string
20315
20316 · Default: ""
20317
20318 · Examples:
20319
20320 · “example.com”
20321
20322 · Connect to example.com
20323
20324 –sftp-user
20325 SSH username, leave blank for current username, ncw
20326
20327 · Config: user
20328
20329 · Env Var: RCLONE_SFTP_USER
20330
20331 · Type: string
20332
20333 · Default: ""
20334
20335 –sftp-port
20336 SSH port, leave blank to use default (22)
20337
20338 · Config: port
20339
20340 · Env Var: RCLONE_SFTP_PORT
20341
20342 · Type: string
20343
20344 · Default: ""
20345
20346 –sftp-pass
20347 SSH password, leave blank to use ssh-agent.
20348
20349 · Config: pass
20350
20351 · Env Var: RCLONE_SFTP_PASS
20352
20353 · Type: string
20354
20355 · Default: ""
20356
20357 –sftp-key-file
20358 Path to PEM-encoded private key file, leave blank or set key-use-agent
20359 to use ssh-agent.
20360
20361 · Config: key_file
20362
20363 · Env Var: RCLONE_SFTP_KEY_FILE
20364
20365 · Type: string
20366
20367 · Default: ""
20368
20369 –sftp-key-file-pass
20370 The passphrase to decrypt the PEM-encoded private key file.
20371
20372 Only PEM encrypted key files (old OpenSSH format) are supported. En‐
20373 crypted keys in the new OpenSSH format can’t be used.
20374
20375 · Config: key_file_pass
20376
20377 · Env Var: RCLONE_SFTP_KEY_FILE_PASS
20378
20379 · Type: string
20380
20381 · Default: ""
20382
20383 –sftp-key-use-agent
20384 When set forces the usage of the ssh-agent.
20385
20386 When key-file is also set, the “.pub” file of the specified key-file is
20387 read and only the associated key is requested from the ssh-agent. This
20388 allows to avoid Too many authentication failures for *username* errors
20389 when the ssh-agent contains many keys.
20390
20391 · Config: key_use_agent
20392
20393 · Env Var: RCLONE_SFTP_KEY_USE_AGENT
20394
20395 · Type: bool
20396
20397 · Default: false
20398
20399 –sftp-use-insecure-cipher
20400 Enable the use of insecure ciphers and key exchange methods.
20401
20402 This enables the use of the the following insecure ciphers and key ex‐
20403 change methods:
20404
20405 · aes128-cbc
20406
20407 · aes192-cbc
20408
20409 · aes256-cbc
20410
20411 · 3des-cbc
20412
20413 · diffie-hellman-group-exchange-sha256
20414
20415 · diffie-hellman-group-exchange-sha1
20416
20417 Those algorithms are insecure and may allow plaintext data to be recov‐
20418 ered by an attacker.
20419
20420 · Config: use_insecure_cipher
20421
20422 · Env Var: RCLONE_SFTP_USE_INSECURE_CIPHER
20423
20424 · Type: bool
20425
20426 · Default: false
20427
20428 · Examples:
20429
20430 · “false”
20431
20432 · Use default Cipher list.
20433
20434 · “true”
20435
20436 · Enables the use of the aes128-cbc cipher and diffie-hell‐
20437 man-group-exchange-sha256, diffie-hellman-group-exchange-sha1 key
20438 exchange.
20439
20440 –sftp-disable-hashcheck
20441 Disable the execution of SSH commands to determine if remote file hash‐
20442 ing is available. Leave blank or set to false to enable hashing (rec‐
20443 ommended), set to true to disable hashing.
20444
20445 · Config: disable_hashcheck
20446
20447 · Env Var: RCLONE_SFTP_DISABLE_HASHCHECK
20448
20449 · Type: bool
20450
20451 · Default: false
20452
20453 Advanced Options
20454 Here are the advanced options specific to sftp (SSH/SFTP Connection).
20455
20456 –sftp-ask-password
20457 Allow asking for SFTP password when needed.
20458
20459 If this is set and no password is supplied then rclone will: - ask for
20460 a password - not contact the ssh agent
20461
20462 · Config: ask_password
20463
20464 · Env Var: RCLONE_SFTP_ASK_PASSWORD
20465
20466 · Type: bool
20467
20468 · Default: false
20469
20470 –sftp-path-override
20471 Override path used by SSH connection.
20472
20473 This allows checksum calculation when SFTP and SSH paths are different.
20474 This issue affects among others Synology NAS boxes.
20475
20476 Shared folders can be found in directories representing volumes
20477
20478 rclone sync /home/local/directory remote:/directory --ssh-path-override /volume2/directory
20479
20480 Home directory can be found in a shared folder called “home”
20481
20482 rclone sync /home/local/directory remote:/home/directory --ssh-path-override /volume1/homes/USER/directory
20483
20484 · Config: path_override
20485
20486 · Env Var: RCLONE_SFTP_PATH_OVERRIDE
20487
20488 · Type: string
20489
20490 · Default: ""
20491
20492 –sftp-set-modtime
20493 Set the modified time on the remote if set.
20494
20495 · Config: set_modtime
20496
20497 · Env Var: RCLONE_SFTP_SET_MODTIME
20498
20499 · Type: bool
20500
20501 · Default: true
20502
20503 –sftp-md5sum-command
20504 The command used to read md5 hashes. Leave blank for autodetect.
20505
20506 · Config: md5sum_command
20507
20508 · Env Var: RCLONE_SFTP_MD5SUM_COMMAND
20509
20510 · Type: string
20511
20512 · Default: ""
20513
20514 –sftp-sha1sum-command
20515 The command used to read sha1 hashes. Leave blank for autodetect.
20516
20517 · Config: sha1sum_command
20518
20519 · Env Var: RCLONE_SFTP_SHA1SUM_COMMAND
20520
20521 · Type: string
20522
20523 · Default: ""
20524
20525 –sftp-skip-links
20526 Set to skip any symlinks and any other non regular files.
20527
20528 · Config: skip_links
20529
20530 · Env Var: RCLONE_SFTP_SKIP_LINKS
20531
20532 · Type: bool
20533
20534 · Default: false
20535
20536 Limitations
20537 SFTP supports checksums if the same login has shell access and md5sum
20538 or sha1sum as well as echo are in the remote’s PATH. This remote
20539 checksumming (file hashing) is recommended and enabled by default.
20540 Disabling the checksumming may be required if you are connecting to
20541 SFTP servers which are not under your control, and to which the execu‐
20542 tion of remote commands is prohibited. Set the configuration option
20543 disable_hashcheck to true to disable checksumming.
20544
20545 SFTP also supports about if the same login has shell access and df are
20546 in the remote’s PATH. about will return the total space, free space,
20547 and used space on the remote for the disk of the specified path on the
20548 remote or, if not set, the disk of the root on the remote. about will
20549 fail if it does not have shell access or if df is not in the remote’s
20550 PATH.
20551
20552 Note that some SFTP servers (eg Synology) the paths are different for
20553 SSH and SFTP so the hashes can’t be calculated properly. For them us‐
20554 ing disable_hashcheck is a good idea.
20555
20556 The only ssh agent supported under Windows is Putty’s pageant.
20557
20558 The Go SSH library disables the use of the aes128-cbc cipher by de‐
20559 fault, due to security concerns. This can be re-enabled on a per-con‐
20560 nection basis by setting the use_insecure_cipher setting in the config‐
20561 uration file to true. Further details on the insecurity of this cipher
20562 can be found [in this paper] (http://www.isg.rhul.ac.uk/~kp/SandPfi‐
20563 nal.pdf).
20564
20565 SFTP isn’t supported under plan9 until this issue
20566 (https://github.com/pkg/sftp/issues/156) is fixed.
20567
20568 Note that since SFTP isn’t HTTP based the following flags don’t work
20569 with it: --dump-headers, --dump-bodies, --dump-auth
20570
20571 Note that --timeout isn’t supported (but --contimeout is).
20572
20573 C14
20574 C14 is supported through the SFTP backend.
20575
20576 See C14’s documentation (https://www.online.net/en/storage/c14-cold-
20577 storage)
20578
20579 rsync.net
20580 rsync.net is supported through the SFTP backend.
20581
20582 See rsync.net’s documentation of rclone examples
20583 (https://www.rsync.net/products/rclone.html).
20584
20585 SugarSync
20586 SugarSync (https://sugarsync.com) is a cloud service that enables ac‐
20587 tive synchronization of files across computers and other devices for
20588 file backup, access, syncing, and sharing.
20589
20590 The initial setup for SugarSync involves getting a token from SugarSync
20591 which you can do with rclone. rclone config walks you through it.
20592
20593 Here is an example of how to make a remote called remote. First run:
20594
20595 rclone config
20596
20597 This will guide you through an interactive setup process:
20598
20599 No remotes found - make a new one
20600 n) New remote
20601 s) Set configuration password
20602 q) Quit config
20603 n/s/q> n
20604 name> remote
20605 Type of storage to configure.
20606 Enter a string value. Press Enter for the default ("").
20607 Choose a number from below, or type in your own value
20608 [snip]
20609 XX / Sugarsync
20610 \ "sugarsync"
20611 [snip]
20612 Storage> sugarsync
20613 ** See help for sugarsync backend at: https://rclone.org/sugarsync/ **
20614
20615 Sugarsync App ID.
20616 Leave blank to use rclone's.
20617 Enter a string value. Press Enter for the default ("").
20618 app_id>
20619 Sugarsync Access Key ID.
20620 Leave blank to use rclone's.
20621 Enter a string value. Press Enter for the default ("").
20622 access_key_id>
20623 Sugarsync Private Access Key
20624 Leave blank to use rclone's.
20625 Enter a string value. Press Enter for the default ("").
20626 private_access_key>
20627 Permanently delete files if true
20628 otherwise put them in the deleted files.
20629 Enter a boolean value (true or false). Press Enter for the default ("false").
20630 hard_delete>
20631 Edit advanced config? (y/n)
20632 y) Yes
20633 n) No (default)
20634 y/n> n
20635 Remote config
20636 Username (email address)> nick@craig-wood.com
20637 Your Sugarsync password is only required during setup and will not be stored.
20638 password:
20639 --------------------
20640 [remote]
20641 type = sugarsync
20642 refresh_token = https://api.sugarsync.com/app-authorization/XXXXXXXXXXXXXXXXXX
20643 --------------------
20644 y) Yes this is OK (default)
20645 e) Edit this remote
20646 d) Delete this remote
20647 y/e/d> y
20648
20649 Note that the config asks for your email and password but doesn’t store
20650 them, it only uses them to get the initial token.
20651
20652 Once configured you can then use rclone like this,
20653
20654 List directories (sync folders) in top level of your SugarSync
20655
20656 rclone lsd remote:
20657
20658 List all the files in your SugarSync folder “Test”
20659
20660 rclone ls remote:Test
20661
20662 To copy a local directory to an SugarSync folder called backup
20663
20664 rclone copy /home/source remote:backup
20665
20666 Paths are specified as remote:path
20667
20668 Paths may be as deep as required, eg remote:directory/subdirectory.
20669
20670 NB you can’t create files in the top level folder you have to create a
20671 folder, which rclone will create as a “Sync Folder” with SugarSync.
20672
20673 Modified time and hashes
20674 SugarSync does not support modification times or hashes, therefore
20675 syncing will default to --size-only checking. Note that using --update
20676 will work as rclone can read the time files were uploaded.
20677
20678 Restricted filename characters
20679 SugarSync replaces the default restricted characters set (/over‐
20680 view/#restricted-characters) except for DEL.
20681
20682 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
20683 they can’t be used in XML strings.
20684
20685 Deleting files
20686 Deleted files will be moved to the “Deleted items” folder by default.
20687
20688 However you can supply the flag --sugarsync-hard-delete or set the con‐
20689 fig parameter hard_delete = true if you would like files to be deleted
20690 straight away.
20691
20692 Standard Options
20693 Here are the standard options specific to sugarsync (Sugarsync).
20694
20695 –sugarsync-app-id
20696 Sugarsync App ID.
20697
20698 Leave blank to use rclone’s.
20699
20700 · Config: app_id
20701
20702 · Env Var: RCLONE_SUGARSYNC_APP_ID
20703
20704 · Type: string
20705
20706 · Default: ""
20707
20708 –sugarsync-access-key-id
20709 Sugarsync Access Key ID.
20710
20711 Leave blank to use rclone’s.
20712
20713 · Config: access_key_id
20714
20715 · Env Var: RCLONE_SUGARSYNC_ACCESS_KEY_ID
20716
20717 · Type: string
20718
20719 · Default: ""
20720
20721 –sugarsync-private-access-key
20722 Sugarsync Private Access Key
20723
20724 Leave blank to use rclone’s.
20725
20726 · Config: private_access_key
20727
20728 · Env Var: RCLONE_SUGARSYNC_PRIVATE_ACCESS_KEY
20729
20730 · Type: string
20731
20732 · Default: ""
20733
20734 –sugarsync-hard-delete
20735 Permanently delete files if true otherwise put them in the deleted
20736 files.
20737
20738 · Config: hard_delete
20739
20740 · Env Var: RCLONE_SUGARSYNC_HARD_DELETE
20741
20742 · Type: bool
20743
20744 · Default: false
20745
20746 Advanced Options
20747 Here are the advanced options specific to sugarsync (Sugarsync).
20748
20749 –sugarsync-refresh-token
20750 Sugarsync refresh token
20751
20752 Leave blank normally, will be auto configured by rclone.
20753
20754 · Config: refresh_token
20755
20756 · Env Var: RCLONE_SUGARSYNC_REFRESH_TOKEN
20757
20758 · Type: string
20759
20760 · Default: ""
20761
20762 –sugarsync-authorization
20763 Sugarsync authorization
20764
20765 Leave blank normally, will be auto configured by rclone.
20766
20767 · Config: authorization
20768
20769 · Env Var: RCLONE_SUGARSYNC_AUTHORIZATION
20770
20771 · Type: string
20772
20773 · Default: ""
20774
20775 –sugarsync-authorization-expiry
20776 Sugarsync authorization expiry
20777
20778 Leave blank normally, will be auto configured by rclone.
20779
20780 · Config: authorization_expiry
20781
20782 · Env Var: RCLONE_SUGARSYNC_AUTHORIZATION_EXPIRY
20783
20784 · Type: string
20785
20786 · Default: ""
20787
20788 –sugarsync-user
20789 Sugarsync user
20790
20791 Leave blank normally, will be auto configured by rclone.
20792
20793 · Config: user
20794
20795 · Env Var: RCLONE_SUGARSYNC_USER
20796
20797 · Type: string
20798
20799 · Default: ""
20800
20801 –sugarsync-root-id
20802 Sugarsync root id
20803
20804 Leave blank normally, will be auto configured by rclone.
20805
20806 · Config: root_id
20807
20808 · Env Var: RCLONE_SUGARSYNC_ROOT_ID
20809
20810 · Type: string
20811
20812 · Default: ""
20813
20814 –sugarsync-deleted-id
20815 Sugarsync deleted folder id
20816
20817 Leave blank normally, will be auto configured by rclone.
20818
20819 · Config: deleted_id
20820
20821 · Env Var: RCLONE_SUGARSYNC_DELETED_ID
20822
20823 · Type: string
20824
20825 · Default: ""
20826
20827 –sugarsync-encoding
20828 This sets the encoding for the backend.
20829
20830 See: the encoding section in the overview (/overview/#encoding) for
20831 more info.
20832
20833 · Config: encoding
20834
20835 · Env Var: RCLONE_SUGARSYNC_ENCODING
20836
20837 · Type: MultiEncoder
20838
20839 · Default: Slash,Ctl,InvalidUtf8,Dot
20840
20841 Union
20842 The union remote provides a unification similar to UnionFS using other
20843 remotes.
20844
20845 Paths may be as deep as required or a local path, eg remote:directo‐
20846 ry/subdirectory or /directory/subdirectory.
20847
20848 During the initial setup with rclone config you will specify the target
20849 remotes as a space separated list. The target remotes can either be a
20850 local paths or other remotes.
20851
20852 The order of the remotes is important as it defines which remotes take
20853 precedence over others if there are files with the same name in the
20854 same logical path. The last remote is the topmost remote and replaces
20855 files with the same name from previous remotes.
20856
20857 Only the last remote is used to write to and delete from, all other re‐
20858 motes are read-only.
20859
20860 Subfolders can be used in target remote. Assume a union remote named
20861 backup with the remotes mydrive:private/backup mydrive2:/backup. In‐
20862 voking rclone mkdir backup:desktop is exactly the same as invoking
20863 rclone mkdir mydrive2:/backup/desktop.
20864
20865 There will be no special handling of paths containing .. segments.
20866 Invoking rclone mkdir backup:../desktop is exactly the same as invoking
20867 rclone mkdir mydrive2:/backup/../desktop.
20868
20869 Here is an example of how to make a union called remote for local fold‐
20870 ers. First run:
20871
20872 rclone config
20873
20874 This will guide you through an interactive setup process:
20875
20876 No remotes found - make a new one
20877 n) New remote
20878 s) Set configuration password
20879 q) Quit config
20880 n/s/q> n
20881 name> remote
20882 Type of storage to configure.
20883 Choose a number from below, or type in your own value
20884 [snip]
20885 XX / Union merges the contents of several remotes
20886 \ "union"
20887 [snip]
20888 Storage> union
20889 List of space separated remotes.
20890 Can be 'remotea:test/dir remoteb:', '"remotea:test/space dir" remoteb:', etc.
20891 The last remote is used to write to.
20892 Enter a string value. Press Enter for the default ("").
20893 remotes>
20894 Remote config
20895 --------------------
20896 [remote]
20897 type = union
20898 remotes = C:\dir1 C:\dir2 C:\dir3
20899 --------------------
20900 y) Yes this is OK
20901 e) Edit this remote
20902 d) Delete this remote
20903 y/e/d> y
20904 Current remotes:
20905
20906 Name Type
20907 ==== ====
20908 remote union
20909
20910 e) Edit existing remote
20911 n) New remote
20912 d) Delete remote
20913 r) Rename remote
20914 c) Copy remote
20915 s) Set configuration password
20916 q) Quit config
20917 e/n/d/r/c/s/q> q
20918
20919 Once configured you can then use rclone like this,
20920
20921 List directories in top level in C:\dir1, C:\dir2 and C:\dir3
20922
20923 rclone lsd remote:
20924
20925 List all the files in C:\dir1, C:\dir2 and C:\dir3
20926
20927 rclone ls remote:
20928
20929 Copy another local directory to the union directory called source,
20930 which will be placed into C:\dir3
20931
20932 rclone copy C:\source remote:source
20933
20934 Standard Options
20935 Here are the standard options specific to union (Union merges the con‐
20936 tents of several remotes).
20937
20938 –union-remotes
20939 List of space separated remotes. Can be `remotea:test/dir remoteb:',
20940 `“remotea:test/space dir” remoteb:', etc. The last remote is used to
20941 write to.
20942
20943 · Config: remotes
20944
20945 · Env Var: RCLONE_UNION_REMOTES
20946
20947 · Type: string
20948
20949 · Default: ""
20950
20951 WebDAV
20952 Paths are specified as remote:path
20953
20954 Paths may be as deep as required, eg remote:directory/subdirectory.
20955
20956 To configure the WebDAV remote you will need to have a URL for it, and
20957 a username and password. If you know what kind of system you are con‐
20958 necting to then rclone can enable extra features.
20959
20960 Here is an example of how to make a remote called remote. First run:
20961
20962 rclone config
20963
20964 This will guide you through an interactive setup process:
20965
20966 No remotes found - make a new one
20967 n) New remote
20968 s) Set configuration password
20969 q) Quit config
20970 n/s/q> n
20971 name> remote
20972 Type of storage to configure.
20973 Choose a number from below, or type in your own value
20974 [snip]
20975 XX / Webdav
20976 \ "webdav"
20977 [snip]
20978 Storage> webdav
20979 URL of http host to connect to
20980 Choose a number from below, or type in your own value
20981 1 / Connect to example.com
20982 \ "https://example.com"
20983 url> https://example.com/remote.php/webdav/
20984 Name of the Webdav site/service/software you are using
20985 Choose a number from below, or type in your own value
20986 1 / Nextcloud
20987 \ "nextcloud"
20988 2 / Owncloud
20989 \ "owncloud"
20990 3 / Sharepoint
20991 \ "sharepoint"
20992 4 / Other site/service or software
20993 \ "other"
20994 vendor> 1
20995 User name
20996 user> user
20997 Password.
20998 y) Yes type in my own password
20999 g) Generate random password
21000 n) No leave this optional password blank
21001 y/g/n> y
21002 Enter the password:
21003 password:
21004 Confirm the password:
21005 password:
21006 Bearer token instead of user/pass (eg a Macaroon)
21007 bearer_token>
21008 Remote config
21009 --------------------
21010 [remote]
21011 type = webdav
21012 url = https://example.com/remote.php/webdav/
21013 vendor = nextcloud
21014 user = user
21015 pass = *** ENCRYPTED ***
21016 bearer_token =
21017 --------------------
21018 y) Yes this is OK
21019 e) Edit this remote
21020 d) Delete this remote
21021 y/e/d> y
21022
21023 Once configured you can then use rclone like this,
21024
21025 List directories in top level of your WebDAV
21026
21027 rclone lsd remote:
21028
21029 List all the files in your WebDAV
21030
21031 rclone ls remote:
21032
21033 To copy a local directory to an WebDAV directory called backup
21034
21035 rclone copy /home/source remote:backup
21036
21037 Modified time and hashes
21038 Plain WebDAV does not support modified times. However when used with
21039 Owncloud or Nextcloud rclone will support modified times.
21040
21041 Likewise plain WebDAV does not support hashes, however when used with
21042 Owncloud or Nextcloud rclone will support SHA1 and MD5 hashes. Depend‐
21043 ing on the exact version of Owncloud or Nextcloud hashes may appear on
21044 all objects, or only on objects which had a hash uploaded with them.
21045
21046 Standard Options
21047 Here are the standard options specific to webdav (Webdav).
21048
21049 –webdav-url
21050 URL of http host to connect to
21051
21052 · Config: url
21053
21054 · Env Var: RCLONE_WEBDAV_URL
21055
21056 · Type: string
21057
21058 · Default: ""
21059
21060 · Examples:
21061
21062 · “https://example.com”
21063
21064 · Connect to example.com
21065
21066 –webdav-vendor
21067 Name of the Webdav site/service/software you are using
21068
21069 · Config: vendor
21070
21071 · Env Var: RCLONE_WEBDAV_VENDOR
21072
21073 · Type: string
21074
21075 · Default: ""
21076
21077 · Examples:
21078
21079 · “nextcloud”
21080
21081 · Nextcloud
21082
21083 · “owncloud”
21084
21085 · Owncloud
21086
21087 · “sharepoint”
21088
21089 · Sharepoint
21090
21091 · “other”
21092
21093 · Other site/service or software
21094
21095 –webdav-user
21096 User name
21097
21098 · Config: user
21099
21100 · Env Var: RCLONE_WEBDAV_USER
21101
21102 · Type: string
21103
21104 · Default: ""
21105
21106 –webdav-pass
21107 Password.
21108
21109 · Config: pass
21110
21111 · Env Var: RCLONE_WEBDAV_PASS
21112
21113 · Type: string
21114
21115 · Default: ""
21116
21117 –webdav-bearer-token
21118 Bearer token instead of user/pass (eg a Macaroon)
21119
21120 · Config: bearer_token
21121
21122 · Env Var: RCLONE_WEBDAV_BEARER_TOKEN
21123
21124 · Type: string
21125
21126 · Default: ""
21127
21128 Advanced Options
21129 Here are the advanced options specific to webdav (Webdav).
21130
21131 –webdav-bearer-token-command
21132 Command to run to get a bearer token
21133
21134 · Config: bearer_token_command
21135
21136 · Env Var: RCLONE_WEBDAV_BEARER_TOKEN_COMMAND
21137
21138 · Type: string
21139
21140 · Default: ""
21141
21142 Provider notes
21143 See below for notes on specific providers.
21144
21145 Owncloud
21146 Click on the settings cog in the bottom right of the page and this will
21147 show the WebDAV URL that rclone needs in the config step. It will look
21148 something like https://example.com/remote.php/webdav/.
21149
21150 Owncloud supports modified times using the X-OC-Mtime header.
21151
21152 Nextcloud
21153 This is configured in an identical way to Owncloud. Note that
21154 Nextcloud does not support streaming of files (rcat) whereas Owncloud
21155 does. This may be fixed (https://github.com/nextcloud/nextcloud-
21156 snap/issues/365) in the future.
21157
21158 Sharepoint
21159 Rclone can be used with Sharepoint provided by OneDrive for Business or
21160 Office365 Education Accounts. This feature is only needed for a few of
21161 these Accounts, mostly Office365 Education ones. These accounts are
21162 sometimes not verified by the domain owner github#1975
21163 (https://github.com/rclone/rclone/issues/1975)
21164
21165 This means that these accounts can’t be added using the official API
21166 (other Accounts should work with the “onedrive” option). However, it
21167 is possible to access them using webdav.
21168
21169 To use a sharepoint remote with rclone, add it like this: First, you
21170 need to get your remote’s URL:
21171
21172 · Go here (https://onedrive.live.com/about/en-us/signin/) to open your
21173 OneDrive or to sign in
21174
21175 · Now take a look at your address bar, the URL should look like this:
21176 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/_lay‐
21177 outs/15/onedrive.aspx
21178
21179 You’ll only need this URL upto the email address. After that, you’ll
21180 most likely want to add “/Documents”. That subdirectory contains the
21181 actual data stored on your OneDrive.
21182
21183 Add the remote to rclone like this: Configure the url as
21184 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
21185 and use your normal account email and password for user and pass. If
21186 you have 2FA enabled, you have to generate an app password. Set the
21187 vendor to sharepoint.
21188
21189 Your config file should look like this:
21190
21191 [sharepoint]
21192 type = webdav
21193 url = https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
21194 vendor = other
21195 user = YourEmailAddress
21196 pass = encryptedpassword
21197
21198 Required Flags for SharePoint
21199 As SharePoint does some special things with uploaded documents, you
21200 won’t be able to use the documents size or the documents hash to com‐
21201 pare if a file has been changed since the upload / which file is newer.
21202
21203 For Rclone calls copying files (especially Office files such as .docx,
21204 .xlsx, etc.) from/to SharePoint (like copy, sync, etc.), you should ap‐
21205 pend these flags to ensure Rclone uses the “Last Modified” datetime
21206 property to compare your documents:
21207
21208 --ignore-size --ignore-checksum --update
21209
21210 dCache
21211 dCache is a storage system that supports many protocols and authentica‐
21212 tion/authorisation schemes. For WebDAV clients, it allows users to au‐
21213 thenticate with username and password (BASIC), X.509, Kerberos, and
21214 various bearer tokens, including Macaroons (https://www.dcache.org/man‐
21215 uals/workshop-2017-05-29-Umea/000-Final/anupam_macaroons_v02.pdf) and
21216 OpenID-Connect (https://en.wikipedia.org/wiki/OpenID_Connect) access
21217 tokens.
21218
21219 Configure as normal using the other type. Don’t enter a username or
21220 password, instead enter your Macaroon as the bearer_token.
21221
21222 The config will end up looking something like this.
21223
21224 [dcache]
21225 type = webdav
21226 url = https://dcache...
21227 vendor = other
21228 user =
21229 pass =
21230 bearer_token = your-macaroon
21231
21232 There is a script (https://github.com/sara-nl/GridScripts/blob/mas‐
21233 ter/get-macaroon) that obtains a Macaroon from a dCache WebDAV end‐
21234 point, and creates an rclone config file.
21235
21236 Macaroons may also be obtained from the dCacheView web-brows‐
21237 er/JavaScript client that comes with dCache.
21238
21239 OpenID-Connect
21240 dCache also supports authenticating with OpenID-Connect access tokens.
21241 OpenID-Connect is a protocol (based on OAuth 2.0) that allows services
21242 to identify users who have authenticated with some central service.
21243
21244 Support for OpenID-Connect in rclone is currently achieved using anoth‐
21245 er software package called oidc-agent (https://github.com/indigo-
21246 dc/oidc-agent). This is a command-line tool that facilitates obtaining
21247 an access token. Once installed and configured, an access token is ob‐
21248 tained by running the oidc-token command. The following example shows
21249 a (shortened) access token obtained from the XDC OIDC Provider.
21250
21251 paul@celebrimbor:~$ oidc-token XDC
21252 eyJraWQ[...]QFXDt0
21253 paul@celebrimbor:~$
21254
21255 Note Before the oidc-token command will work, the refresh token must be
21256 loaded into the oidc agent. This is done with the oidc-add command
21257 (e.g., oidc-add XDC). This is typically done once per login session.
21258 Full details on this and how to register oidc-agent with your OIDC
21259 Provider are provided in the oidc-agent documentation (https://indigo-
21260 dc.gitbooks.io/oidc-agent/).
21261
21262 The rclone bearer_token_command configuration option is used to fetch
21263 the access token from oidc-agent.
21264
21265 Configure as a normal WebDAV endpoint, using the `other' vendor, leav‐
21266 ing the username and password empty. When prompted, choose to edit the
21267 advanced config and enter the command to get a bearer token (e.g.,
21268 oidc-agent XDC).
21269
21270 The following example config shows a WebDAV endpoint that uses
21271 oidc-agent to supply an access token from the XDC OIDC Provider.
21272
21273 [dcache]
21274 type = webdav
21275 url = https://dcache.example.org/
21276 vendor = other
21277 bearer_token_command = oidc-token XDC
21278
21279 Yandex Disk
21280 Yandex Disk (https://disk.yandex.com) is a cloud storage solution cre‐
21281 ated by Yandex (https://yandex.com).
21282
21283 Here is an example of making a yandex configuration. First run
21284
21285 rclone config
21286
21287 This will guide you through an interactive setup process:
21288
21289 No remotes found - make a new one
21290 n) New remote
21291 s) Set configuration password
21292 n/s> n
21293 name> remote
21294 Type of storage to configure.
21295 Choose a number from below, or type in your own value
21296 [snip]
21297 XX / Yandex Disk
21298 \ "yandex"
21299 [snip]
21300 Storage> yandex
21301 Yandex Client Id - leave blank normally.
21302 client_id>
21303 Yandex Client Secret - leave blank normally.
21304 client_secret>
21305 Remote config
21306 Use auto config?
21307 * Say Y if not sure
21308 * Say N if you are working on a remote or headless machine
21309 y) Yes
21310 n) No
21311 y/n> y
21312 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
21313 Log in and authorize rclone for access
21314 Waiting for code...
21315 Got code
21316 --------------------
21317 [remote]
21318 client_id =
21319 client_secret =
21320 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"bearer","expiry":"2016-12-29T12:27:11.362788025Z"}
21321 --------------------
21322 y) Yes this is OK
21323 e) Edit this remote
21324 d) Delete this remote
21325 y/e/d> y
21326
21327 See the remote setup docs (https://rclone.org/remote_setup/) for how to
21328 set it up on a machine with no Internet browser available.
21329
21330 Note that rclone runs a webserver on your local machine to collect the
21331 token as returned from Yandex Disk. This only runs from the moment it
21332 opens your browser to the moment you get back the verification code.
21333 This is on http://127.0.0.1:53682/ and this it may require you to un‐
21334 block it temporarily if you are running a host firewall.
21335
21336 Once configured you can then use rclone like this,
21337
21338 See top level directories
21339
21340 rclone lsd remote:
21341
21342 Make a new directory
21343
21344 rclone mkdir remote:directory
21345
21346 List the contents of a directory
21347
21348 rclone ls remote:directory
21349
21350 Sync /home/local/directory to the remote path, deleting any excess
21351 files in the path.
21352
21353 rclone sync /home/local/directory remote:directory
21354
21355 Yandex paths may be as deep as required, eg remote:directory/subdirec‐
21356 tory.
21357
21358 Modified time
21359 Modified times are supported and are stored accurate to 1 ns in custom
21360 metadata called rclone_modified in RFC3339 with nanoseconds format.
21361
21362 MD5 checksums
21363 MD5 checksums are natively supported by Yandex Disk.
21364
21365 Emptying Trash
21366 If you wish to empty your trash you can use the rclone cleanup remote:
21367 command which will permanently delete all your trashed files. This
21368 command does not take any path arguments.
21369
21370 Quota information
21371 To view your current quota you can use the rclone about remote: command
21372 which will display your usage limit (quota) and the current usage.
21373
21374 Restricted filename characters
21375 The default restricted characters set (/overview/#restricted-charac‐
21376 ters) are replaced.
21377
21378 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
21379 they can’t be used in JSON strings.
21380
21381 Limitations
21382 When uploading very large files (bigger than about 5GB) you will need
21383 to increase the --timeout parameter. This is because Yandex pauses
21384 (perhaps to calculate the MD5SUM for the entire file) before returning
21385 confirmation that the file has been uploaded. The default handling of
21386 timeouts in rclone is to assume a 5 minute pause is an error and close
21387 the connection - you’ll see net/http: timeout awaiting response headers
21388 errors in the logs if this is happening. Setting the timeout to twice
21389 the max size of file in GB should be enough, so if you want to upload a
21390 30GB file set a timeout of 2 * 30 = 60m, that is --timeout 60m.
21391
21392 Standard Options
21393 Here are the standard options specific to yandex (Yandex Disk).
21394
21395 –yandex-client-id
21396 Yandex Client Id Leave blank normally.
21397
21398 · Config: client_id
21399
21400 · Env Var: RCLONE_YANDEX_CLIENT_ID
21401
21402 · Type: string
21403
21404 · Default: ""
21405
21406 –yandex-client-secret
21407 Yandex Client Secret Leave blank normally.
21408
21409 · Config: client_secret
21410
21411 · Env Var: RCLONE_YANDEX_CLIENT_SECRET
21412
21413 · Type: string
21414
21415 · Default: ""
21416
21417 Advanced Options
21418 Here are the advanced options specific to yandex (Yandex Disk).
21419
21420 –yandex-unlink
21421 Remove existing public link to file/folder with link command rather
21422 than creating. Default is false, meaning link command will create or
21423 retrieve public link.
21424
21425 · Config: unlink
21426
21427 · Env Var: RCLONE_YANDEX_UNLINK
21428
21429 · Type: bool
21430
21431 · Default: false
21432
21433 –yandex-encoding
21434 This sets the encoding for the backend.
21435
21436 See: the encoding section in the overview (/overview/#encoding) for
21437 more info.
21438
21439 · Config: encoding
21440
21441 · Env Var: RCLONE_YANDEX_ENCODING
21442
21443 · Type: MultiEncoder
21444
21445 · Default: Slash,Del,Ctl,InvalidUtf8,Dot
21446
21447 Local Filesystem
21448 Local paths are specified as normal filesystem paths, eg /path/to/wher‐
21449 ever, so
21450
21451 rclone sync /home/source /tmp/destination
21452
21453 Will sync /home/source to /tmp/destination
21454
21455 These can be configured into the config file for consistencies sake,
21456 but it is probably easier not to.
21457
21458 Modified time
21459 Rclone reads and writes the modified time using an accuracy determined
21460 by the OS. Typically this is 1ns on Linux, 10 ns on Windows and 1 Sec‐
21461 ond on OS X.
21462
21463 Filenames
21464 Filenames should be encoded in UTF-8 on disk. This is the normal case
21465 for Windows and OS X.
21466
21467 There is a bit more uncertainty in the Linux world, but new distribu‐
21468 tions will have UTF-8 encoded files names. If you are using an old
21469 Linux filesystem with non UTF-8 file names (eg latin1) then you can use
21470 the convmv tool to convert the filesystem to UTF-8. This tool is
21471 available in most distributions’ package managers.
21472
21473 If an invalid (non-UTF8) filename is read, the invalid characters will
21474 be replaced with a quoted representation of the invalid bytes. The
21475 name gro\xdf will be transferred as gro‛DF. rclone will emit a debug
21476 message in this case (use -v to see), eg
21477
21478 Local file system at .: Replacing invalid UTF-8 characters in "gro\xdf"
21479
21480 Restricted characters
21481 On non Windows platforms the following characters are replaced when
21482 handling file names.
21483
21484 Character Value Replacement
21485 ────────────────────────────────
21486 NUL 0x00 ␀
21487 / 0x2F /
21488
21489 When running on Windows the following characters are replaced. This
21490 list is based on the Windows file naming conventions (https://docs.mi‐
21491 crosoft.com/de-de/windows/desktop/FileIO/naming-a-file#naming-conven‐
21492 tions).
21493
21494 Character Value Replacement
21495 ────────────────────────────────
21496 NUL 0x00 ␀
21497 SOH 0x01 ␁
21498 STX 0x02 ␂
21499 ETX 0x03 ␃
21500 EOT 0x04 ␄
21501 ENQ 0x05 ␅
21502 ACK 0x06 ␆
21503 BEL 0x07 ␇
21504 BS 0x08 ␈
21505 HT 0x09 ␉
21506 LF 0x0A ␊
21507 VT 0x0B ␋
21508 FF 0x0C ␌
21509 CR 0x0D ␍
21510 SO 0x0E ␎
21511 SI 0x0F ␏
21512 DLE 0x10 ␐
21513 DC1 0x11 ␑
21514 DC2 0x12 ␒
21515 DC3 0x13 ␓
21516 DC4 0x14 ␔
21517 NAK 0x15 ␕
21518 SYN 0x16 ␖
21519 ETB 0x17 ␗
21520 CAN 0x18 ␘
21521 EM 0x19 ␙
21522 SUB 0x1A ␚
21523 ESC 0x1B ␛
21524 FS 0x1C ␜
21525 GS 0x1D ␝
21526
21527 RS 0x1E ␞
21528 US 0x1F ␟
21529 / 0x2F /
21530 " 0x22 "
21531 * 0x2A *
21532 : 0x3A :
21533 < 0x3C <
21534 > 0x3E >
21535 ? 0x3F ?
21536 \ 0x5C \
21537 | 0x7C |
21538
21539 File names on Windows can also not end with the following characters.
21540 These only get replaced if they are last character in the name:
21541
21542 Character Value Replacement
21543 ────────────────────────────────
21544 SP 0x20 ␠
21545 . 0x2E .
21546
21547 Invalid UTF-8 bytes will also be replaced (/overview/#invalid-utf8), as
21548 they can’t be converted to UTF-16.
21549
21550 Long paths on Windows
21551 Rclone handles long paths automatically, by converting all paths to
21552 long UNC paths (https://msdn.microsoft.com/en-us/library/windows/desk‐
21553 top/aa365247(v=vs.85).aspx#maxpath) which allows paths up to 32,767
21554 characters.
21555
21556 This is why you will see that your paths, for instance c:\files is con‐
21557 verted to the UNC path \\?\c:\files in the output, and \\server\share
21558 is converted to \\?\UNC\server\share.
21559
21560 However, in rare cases this may cause problems with buggy file system
21561 drivers like EncFS (https://github.com/rclone/rclone/issues/261). To
21562 disable UNC conversion globally, add this to your .rclone.conf file:
21563
21564 [local]
21565 nounc = true
21566
21567 If you want to selectively disable UNC, you can add it to a separate
21568 entry like this:
21569
21570 [nounc]
21571 type = local
21572 nounc = true
21573
21574 And use rclone like this:
21575
21576 rclone copy c:\src nounc:z:\dst
21577
21578 This will use UNC paths on c:\src but not on z:\dst. Of course this
21579 will cause problems if the absolute path length of a file exceeds 258
21580 characters on z, so only use this option if you have to.
21581
21582 Symlinks / Junction points
21583 Normally rclone will ignore symlinks or junction points (which behave
21584 like symlinks under Windows).
21585
21586 If you supply --copy-links or -L then rclone will follow the symlink
21587 and copy the pointed to file or directory. Note that this flag is in‐
21588 compatible with -links / -l.
21589
21590 This flag applies to all commands.
21591
21592 For example, supposing you have a directory structure like this
21593
21594 $ tree /tmp/a
21595 /tmp/a
21596 ├── b -> ../b
21597 ├── expected -> ../expected
21598 ├── one
21599 └── two
21600 └── three
21601
21602 Then you can see the difference with and without the flag like this
21603
21604 $ rclone ls /tmp/a
21605 6 one
21606 6 two/three
21607
21608 and
21609
21610 $ rclone -L ls /tmp/a
21611 4174 expected
21612 6 one
21613 6 two/three
21614 6 b/two
21615 6 b/one
21616
21617 –links, -l
21618 Normally rclone will ignore symlinks or junction points (which behave
21619 like symlinks under Windows).
21620
21621 If you supply this flag then rclone will copy symbolic links from the
21622 local storage, and store them as text files, with a `.rclonelink' suf‐
21623 fix in the remote storage.
21624
21625 The text file will contain the target of the symbolic link (see exam‐
21626 ple).
21627
21628 This flag applies to all commands.
21629
21630 For example, supposing you have a directory structure like this
21631
21632 $ tree /tmp/a
21633 /tmp/a
21634 ├── file1 -> ./file4
21635 └── file2 -> /home/user/file3
21636
21637 Copying the entire directory with `-l'
21638
21639 $ rclone copyto -l /tmp/a/file1 remote:/tmp/a/
21640
21641 The remote files are created with a `.rclonelink' suffix
21642
21643 $ rclone ls remote:/tmp/a
21644 5 file1.rclonelink
21645 14 file2.rclonelink
21646
21647 The remote files will contain the target of the symbolic links
21648
21649 $ rclone cat remote:/tmp/a/file1.rclonelink
21650 ./file4
21651
21652 $ rclone cat remote:/tmp/a/file2.rclonelink
21653 /home/user/file3
21654
21655 Copying them back with `-l'
21656
21657 $ rclone copyto -l remote:/tmp/a/ /tmp/b/
21658
21659 $ tree /tmp/b
21660 /tmp/b
21661 ├── file1 -> ./file4
21662 └── file2 -> /home/user/file3
21663
21664 However, if copied back without `-l'
21665
21666 $ rclone copyto remote:/tmp/a/ /tmp/b/
21667
21668 $ tree /tmp/b
21669 /tmp/b
21670 ├── file1.rclonelink
21671 └── file2.rclonelink
21672
21673 Note that this flag is incompatible with -copy-links / -L.
21674
21675 Restricting filesystems with –one-file-system
21676 Normally rclone will recurse through filesystems as mounted.
21677
21678 However if you set --one-file-system or -x this tells rclone to stay in
21679 the filesystem specified by the root and not to recurse into different
21680 file systems.
21681
21682 For example if you have a directory hierarchy like this
21683
21684 root
21685 ├── disk1 - disk1 mounted on the root
21686 │ └── file3 - stored on disk1
21687 ├── disk2 - disk2 mounted on the root
21688 │ └── file4 - stored on disk12
21689 ├── file1 - stored on the root disk
21690 └── file2 - stored on the root disk
21691
21692 Using rclone --one-file-system copy root remote: will only copy file1
21693 and file2. Eg
21694
21695 $ rclone -q --one-file-system ls root
21696 0 file1
21697 0 file2
21698
21699 $ rclone -q ls root
21700 0 disk1/file3
21701 0 disk2/file4
21702 0 file1
21703 0 file2
21704
21705 NB Rclone (like most unix tools such as du, rsync and tar) treats a
21706 bind mount to the same device as being on the same filesystem.
21707
21708 NB This flag is only available on Unix based systems. On systems where
21709 it isn’t supported (eg Windows) it will be ignored.
21710
21711 Standard Options
21712 Here are the standard options specific to local (Local Disk).
21713
21714 –local-nounc
21715 Disable UNC (long path names) conversion on Windows
21716
21717 · Config: nounc
21718
21719 · Env Var: RCLONE_LOCAL_NOUNC
21720
21721 · Type: string
21722
21723 · Default: ""
21724
21725 · Examples:
21726
21727 · “true”
21728
21729 · Disables long file names
21730
21731 Advanced Options
21732 Here are the advanced options specific to local (Local Disk).
21733
21734 –copy-links / -L
21735 Follow symlinks and copy the pointed to item.
21736
21737 · Config: copy_links
21738
21739 · Env Var: RCLONE_LOCAL_COPY_LINKS
21740
21741 · Type: bool
21742
21743 · Default: false
21744
21745 –links / -l
21746 Translate symlinks to/from regular files with a `.rclonelink' extension
21747
21748 · Config: links
21749
21750 · Env Var: RCLONE_LOCAL_LINKS
21751
21752 · Type: bool
21753
21754 · Default: false
21755
21756 –skip-links
21757 Don’t warn about skipped symlinks. This flag disables warning messages
21758 on skipped symlinks or junction points, as you explicitly acknowledge
21759 that they should be skipped.
21760
21761 · Config: skip_links
21762
21763 · Env Var: RCLONE_LOCAL_SKIP_LINKS
21764
21765 · Type: bool
21766
21767 · Default: false
21768
21769 –local-no-unicode-normalization
21770 Don’t apply unicode normalization to paths and filenames (Deprecated)
21771
21772 This flag is deprecated now. Rclone no longer normalizes unicode file
21773 names, but it compares them with unicode normalization in the sync rou‐
21774 tine instead.
21775
21776 · Config: no_unicode_normalization
21777
21778 · Env Var: RCLONE_LOCAL_NO_UNICODE_NORMALIZATION
21779
21780 · Type: bool
21781
21782 · Default: false
21783
21784 –local-no-check-updated
21785 Don’t check to see if the files change during upload
21786
21787 Normally rclone checks the size and modification time of files as they
21788 are being uploaded and aborts with a message which starts “can’t copy -
21789 source file is being updated” if the file changes during upload.
21790
21791 However on some file systems this modification time check may fail (eg
21792 Glusterfs #2206 (https://github.com/rclone/rclone/issues/2206)) so this
21793 check can be disabled with this flag.
21794
21795 · Config: no_check_updated
21796
21797 · Env Var: RCLONE_LOCAL_NO_CHECK_UPDATED
21798
21799 · Type: bool
21800
21801 · Default: false
21802
21803 –one-file-system / -x
21804 Don’t cross filesystem boundaries (unix/macOS only).
21805
21806 · Config: one_file_system
21807
21808 · Env Var: RCLONE_LOCAL_ONE_FILE_SYSTEM
21809
21810 · Type: bool
21811
21812 · Default: false
21813
21814 –local-case-sensitive
21815 Force the filesystem to report itself as case sensitive.
21816
21817 Normally the local backend declares itself as case insensitive on Win‐
21818 dows/macOS and case sensitive for everything else. Use this flag to
21819 override the default choice.
21820
21821 · Config: case_sensitive
21822
21823 · Env Var: RCLONE_LOCAL_CASE_SENSITIVE
21824
21825 · Type: bool
21826
21827 · Default: false
21828
21829 –local-case-insensitive
21830 Force the filesystem to report itself as case insensitive
21831
21832 Normally the local backend declares itself as case insensitive on Win‐
21833 dows/macOS and case sensitive for everything else. Use this flag to
21834 override the default choice.
21835
21836 · Config: case_insensitive
21837
21838 · Env Var: RCLONE_LOCAL_CASE_INSENSITIVE
21839
21840 · Type: bool
21841
21842 · Default: false
21843
21844 –local-encoding
21845 This sets the encoding for the backend.
21846
21847 See: the encoding section in the overview (/overview/#encoding) for
21848 more info.
21849
21850 · Config: encoding
21851
21852 · Env Var: RCLONE_LOCAL_ENCODING
21853
21854 · Type: MultiEncoder
21855
21856 · Default: Slash,Dot
21857
21859 v1.51.0 - 2020-02-01
21860 · New backends
21861
21862 · Memory (/memory) (Nick Craig-Wood)
21863
21864 · Sugarsync (/sugarsync) (Nick Craig-Wood)
21865
21866 · New Features
21867
21868 · Adjust all backends to have --backend-encoding parameter (Nick
21869 Craig-Wood)
21870
21871 · this enables the encoding for special characters to be adjusted
21872 or disabled
21873
21874 · Add --max-duration flag to control the maximum duration of a trans‐
21875 fer session (boosh)
21876
21877 · Add --expect-continue-timeout flag, default 1s (Nick Craig-Wood)
21878
21879 · Add --no-check-dest flag for copying without testing the destina‐
21880 tion (Nick Craig-Wood)
21881
21882 · Implement --order-by flag to order transfers (Nick Craig-Wood)
21883
21884 · accounting
21885
21886 · Don’t show entries in both transferring and checking (Nick
21887 Craig-Wood)
21888
21889 · Add option to delete stats (Aleksandar Jankovic)
21890
21891 · build
21892
21893 · Compress the test builds with gzip (Nick Craig-Wood)
21894
21895 · Implement a framework for starting test servers during tests
21896 (Nick Craig-Wood)
21897
21898 · cmd: Always print elapsed time to tenth place seconds in progress
21899 (Gary Kim)
21900
21901 · config
21902
21903 · Add --password-command to allow dynamic config password (Damon
21904 Permezel)
21905
21906 · Give config questions default values (Nick Craig-Wood)
21907
21908 · Check a remote exists when creating a new one (Nick Craig-Wood)
21909
21910 · copyurl: Add --stdout flag to write to stdout (Nick Craig-Wood)
21911
21912 · dedupe: Implement keep smallest too (Nick Craig-Wood)
21913
21914 · hashsum: Add flag --base64 flag (landall)
21915
21916 · lsf: Speed up on s3/swift/etc by not reading mimetype by default
21917 (Nick Craig-Wood)
21918
21919 · lsjson: Add --no-mimetype flag (Nick Craig-Wood)
21920
21921 · rc: Add methods to turn on blocking and mutex profiling (Nick
21922 Craig-Wood)
21923
21924 · rcd
21925
21926 · Adding group parameter to stats (Chaitanya)
21927
21928 · Move webgui apart; option to disable browser (Xiaoxing Ye)
21929
21930 · serve sftp: Add support for public key with auth proxy (Paul Tins‐
21931 ley)
21932
21933 · stats: Show deletes in stats and hide zero stats (anuar45)
21934
21935 · Bug Fixes
21936
21937 · accounting
21938
21939 · Fix error counter counting multiple times (Ankur Gupta)
21940
21941 · Fix error count shown as checks (Cnly)
21942
21943 · Clear finished transfer in stats-reset (Maciej Zimnoch)
21944
21945 · Added StatsInfo locking in statsGroups sum function (Michał
21946 Matczuk)
21947
21948 · asyncreader: Fix EOF error (buengese)
21949
21950 · check: Fix --one-way recursing more directories than it needs to
21951 (Nick Craig-Wood)
21952
21953 · chunkedreader: Disable hash calculation for first segment (Nick
21954 Craig-Wood)
21955
21956 · config
21957
21958 · Do not open browser on headless on drive/gcs/google photos (Xi‐
21959 aoxing Ye)
21960
21961 · SetValueAndSave ignore error if config section does not exist yet
21962 (buengese)
21963
21964 · cmd: Fix completion with an encrypted config (Danil Semelenov)
21965
21966 · dbhashsum: Stop it returning UNSUPPORTED on dropbox (Nick
21967 Craig-Wood)
21968
21969 · dedupe: Add missing modes to help string (Nick Craig-Wood)
21970
21971 · operations
21972
21973 · Fix dedupe continuing on errors like insufficientFilePermisson
21974 (SezalAgrawal)
21975
21976 · Clear accounting before low level retry (Maciej Zimnoch)
21977
21978 · Write debug message when hashes could not be checked (Ole Schütt)
21979
21980 · Move interface assertion to tests to remove pflag dependency
21981 (Nick Craig-Wood)
21982
21983 · Make NewOverrideObjectInfo public and factor uses (Nick
21984 Craig-Wood)
21985
21986 · proxy: Replace use of bcrypt with sha256 (Nick Craig-Wood)
21987
21988 · vendor
21989
21990 · Update bazil.org/fuse to fix FreeBSD 12.1 (Nick Craig-Wood)
21991
21992 · Update github.com/t3rm1n4l/go-mega to fix mega “illegal base64
21993 data at input byte 22” (Nick Craig-Wood)
21994
21995 · Update termbox-go to fix ncdu command on FreeBSD (Kuang-che Wu)
21996
21997 · Update t3rm1n4l/go-mega - fixes mega: couldn’t login: crypto/aes:
21998 invalid key size 0 (Nick Craig-Wood)
21999
22000 · Mount
22001
22002 · Enable async reads for a 20% speedup (Nick Craig-Wood)
22003
22004 · Replace use of WriteAt with Write for cache mode >= writes and
22005 O_APPEND (Brett Dutro)
22006
22007 · Make sure we call unmount when exiting (Nick Craig-Wood)
22008
22009 · Don’t build on go1.10 as bazil/fuse no longer supports it (Nick
22010 Craig-Wood)
22011
22012 · When setting dates discard out of range dates (Nick Craig-Wood)
22013
22014 · VFS
22015
22016 · Add a newly created file straight into the directory (Nick
22017 Craig-Wood)
22018
22019 · Only calculate one hash for reads for a speedup (Nick Craig-Wood)
22020
22021 · Make ReadAt for non cached files work better with non-sequential
22022 reads (Nick Craig-Wood)
22023
22024 · Fix edge cases when reading ModTime from file (Nick Craig-Wood)
22025
22026 · Make sure existing files opened for write show correct size (Nick
22027 Craig-Wood)
22028
22029 · Don’t cache the path in RW file objects to fix renaming (Nick
22030 Craig-Wood)
22031
22032 · Fix rename of open files when using the VFS cache (Nick Craig-Wood)
22033
22034 · When renaming files in the cache, rename the cache item in memory
22035 too (Nick Craig-Wood)
22036
22037 · Fix open file renaming on drive when using --vfs-cache-mode writes
22038 (Nick Craig-Wood)
22039
22040 · Fix incorrect modtime for mv into mount with --vfs-cache-modes
22041 writes (Nick Craig-Wood)
22042
22043 · On rename, rename in cache too if the file exists (Anagh Kumar
22044 Baranwal)
22045
22046 · Local
22047
22048 · Make source file being updated errors be NoLowLevelRetry errors
22049 (Nick Craig-Wood)
22050
22051 · Fix update of hidden files on Windows (Nick Craig-Wood)
22052
22053 · Cache
22054
22055 · Follow move of upstream library github.com/coreos/bbolt
22056 github.com/etcd-io/bbolt (Nick Craig-Wood)
22057
22058 · Fix fatal error: concurrent map writes (Nick Craig-Wood)
22059
22060 · Crypt
22061
22062 · Reorder the filename encryption options (Thomas Eales)
22063
22064 · Correctly handle trailing dot (buengese)
22065
22066 · Chunker
22067
22068 · Reduce length of temporary suffix (Ivan Andreev)
22069
22070 · Drive
22071
22072 · Add --drive-stop-on-upload-limit flag to stop syncs when upload
22073 limit reached (Nick Craig-Wood)
22074
22075 · Add --drive-use-shared-date to use date file was shared instead of
22076 modified date (Garry McNulty)
22077
22078 · Make sure invalid auth for teamdrives always reports an error (Nick
22079 Craig-Wood)
22080
22081 · Fix --fast-list when using appDataFolder (Nick Craig-Wood)
22082
22083 · Use multipart resumable uploads for streaming and uploads in mount
22084 (Nick Craig-Wood)
22085
22086 · Log an ERROR if an incomplete search is returned (Nick Craig-Wood)
22087
22088 · Hide dangerous config from the configurator (Nick Craig-Wood)
22089
22090 · Dropbox
22091
22092 · Treat insufficient_space errors as non retriable errors (Nick
22093 Craig-Wood)
22094
22095 · Jottacloud
22096
22097 · Use new auth method used by official client (buengese)
22098
22099 · Add URL to generate Login Token to config wizard (Nick Craig-Wood)
22100
22101 · Add support whitelabel versions (buengese)
22102
22103 · Koofr
22104
22105 · Use rclone HTTP client. (jaKa)
22106
22107 · Onedrive
22108
22109 · Add Sites.Read.All permission (Benjamin Richter)
22110
22111 · Add support “Retry-After” header (Motonori IWAMURO)
22112
22113 · Opendrive
22114
22115 · Implement --opendrive-chunk-size (Nick Craig-Wood)
22116
22117 · S3
22118
22119 · Re-implement multipart upload to fix memory issues (Nick
22120 Craig-Wood)
22121
22122 · Add --s3-copy-cutoff for size to switch to multipart copy (Nick
22123 Craig-Wood)
22124
22125 · Add new region Asia Patific (Hong Kong) (Outvi V)
22126
22127 · Reduce memory usage streaming files by reducing max stream upload
22128 size (Nick Craig-Wood)
22129
22130 · Add --s3-list-chunk option for bucket listing (Thomas Kriechbaumer)
22131
22132 · Force path style bucket access to off for AWS deprecation (Nick
22133 Craig-Wood)
22134
22135 · Use AWS web identity role provider if available (Tennix)
22136
22137 · Fix ExpiryWindow value (Aleksandar Jankovic)
22138
22139 · Fix DisableChecksum condition (Aleksandar Janković)
22140
22141 · Fix URL decoding of NextMarker (Nick Craig-Wood)
22142
22143 · SFTP
22144
22145 · Add --sftp-skip-links to skip symlinks and non regular files (Nick
22146 Craig-Wood)
22147
22148 · Retry Creation of Connection (Sebastian Brandt)
22149
22150 · Fix “failed to parse private key file: ssh: not an encrypted key”
22151 error (Nick Craig-Wood)
22152
22153 · Open files for update write only to fix AWS SFTP interop (Nick
22154 Craig-Wood)
22155
22156 · Swift
22157
22158 · Reserve segments of dynamic large object when delete objects in
22159 container what was enabled versioning. (Nguyễn Hữu Luân)
22160
22161 · Fix parsing of X-Object-Manifest (Nick Craig-Wood)
22162
22163 · Update OVH API endpoint (unbelauscht)
22164
22165 · WebDAV
22166
22167 · Make nextcloud only upload SHA1 checksums (Nick Craig-Wood)
22168
22169 · Fix case of “Bearer” in Authorization: header to agree with RFC
22170 (Nick Craig-Wood)
22171
22172 · Add Referer header to fix problems with WAFs (Nick Craig-Wood)
22173
22174 v1.50.2 - 2019-11-19
22175 · Bug Fixes
22176
22177 · accounting: Fix memory leak on retries operations (Nick Craig-Wood)
22178
22179 · Drive
22180
22181 · Fix listing of the root directory with drive.files scope (Nick
22182 Craig-Wood)
22183
22184 · Fix –drive-root-folder-id with team/shared drives (Nick Craig-Wood)
22185
22186 v1.50.1 - 2019-11-02
22187 · Bug Fixes
22188
22189 · hash: Fix accidentally changed hash names for DropboxHash and
22190 CRC-32 (Nick Craig-Wood)
22191
22192 · fshttp: Fix error reporting on tpslimit token bucket errors (Nick
22193 Craig-Wood)
22194
22195 · fshttp: Don’t print token bucket errors on context cancelled (Nick
22196 Craig-Wood)
22197
22198 · Local
22199
22200 · Fix listings of . on Windows (Nick Craig-Wood)
22201
22202 · Onedrive
22203
22204 · Fix DirMove/Move after Onedrive change (Xiaoxing Ye)
22205
22206 v1.50.0 - 2019-10-26
22207 · New backends
22208
22209 · Citrix Sharefile (/sharefile) (Nick Craig-Wood)
22210
22211 · Chunker (/chunker) - an overlay backend to split files into smaller
22212 parts (Ivan Andreev)
22213
22214 · Mail.ru Cloud (/mailru) (Ivan Andreev)
22215
22216 · New Features
22217
22218 · encodings (Fabian Möller & Nick Craig-Wood)
22219
22220 · All backends now use file name encoding to ensure any file name
22221 can be written to any backend.
22222
22223 · See the restricted file name docs (/overview/#restricted-file‐
22224 names) for more info and the local backend docs (/local/#file‐
22225 names).
22226
22227 · Some file names may look different in rclone if you are using any
22228 control characters in names or unicode FULLWIDTH symbols
22229 (https://en.wikipedia.org/wiki/Halfwidth_and_Full‐
22230 width_Forms_(Unicode_block)).
22231
22232 · build
22233
22234 · Update to use go1.13 for the build (Nick Craig-Wood)
22235
22236 · Drop support for go1.9 (Nick Craig-Wood)
22237
22238 · Build rclone with GitHub actions (Nick Craig-Wood)
22239
22240 · Convert python scripts to python3 (Nick Craig-Wood)
22241
22242 · Swap Azure/go-ansiterm for mattn/go-colorable (Nick Craig-Wood)
22243
22244 · Dockerfile fixes (Matei David)
22245
22246 · Add plugin support (https://github.com/rclone/rclone/blob/mas‐
22247 ter/CONTRIBUTING.md#writing-a-plugin) for backends and commands
22248 (Richard Patel)
22249
22250 · config
22251
22252 · Use alternating Red/Green in config to make more obvious (Nick
22253 Craig-Wood)
22254
22255 · contrib
22256
22257 · Add sample DLNA server Docker Compose manifest. (pataquets)
22258
22259 · Add sample WebDAV server Docker Compose manifest. (pataquets)
22260
22261 · copyurl
22262
22263 · Add --auto-filename flag for using file name from URL in destina‐
22264 tion path (Denis)
22265
22266 · serve dlna:
22267
22268 · Many compatability improvements (Dan Walters)
22269
22270 · Support for external srt subtitles (Dan Walters)
22271
22272 · rc
22273
22274 · Added command core/quit (Saksham Khanna)
22275
22276 · Bug Fixes
22277
22278 · sync
22279
22280 · Make --update/-u not transfer files that haven’t changed (Nick
22281 Craig-Wood)
22282
22283 · Free objects after they come out of the transfer pipe to save
22284 memory (Nick Craig-Wood)
22285
22286 · Fix --files-from without --no-traverse doing a recursive scan
22287 (Nick Craig-Wood)
22288
22289 · operations
22290
22291 · Fix accounting for server side copies (Nick Craig-Wood)
22292
22293 · Display `All duplicates removed' only if dedupe successful (Sezal
22294 Agrawal)
22295
22296 · Display `Deleted X extra copies' only if dedupe successful (Sezal
22297 Agrawal)
22298
22299 · accounting
22300
22301 · Only allow up to 100 completed transfers in the accounting list
22302 to save memory (Nick Craig-Wood)
22303
22304 · Cull the old time ranges when possible to save memory (Nick
22305 Craig-Wood)
22306
22307 · Fix panic due to server-side copy fallback (Ivan Andreev)
22308
22309 · Fix memory leak noticeable for transfers of large numbers of ob‐
22310 jects (Nick Craig-Wood)
22311
22312 · Fix total duration calculation (Nick Craig-Wood)
22313
22314 · cmd
22315
22316 · Fix environment variables not setting command line flags (Nick
22317 Craig-Wood)
22318
22319 · Make autocomplete compatible with bash’s posix mode for macOS
22320 (Danil Semelenov)
22321
22322 · Make --progress work in git bash on Windows (Nick Craig-Wood)
22323
22324 · Fix `compopt: command not found' on autocomplete on macOS (Danil
22325 Semelenov)
22326
22327 · config
22328
22329 · Fix setting of non top level flags from environment variables
22330 (Nick Craig-Wood)
22331
22332 · Check config names more carefully and report errors (Nick
22333 Craig-Wood)
22334
22335 · Remove error: can’t use --size-only and --ignore-size together.
22336 (Nick Craig-Wood)
22337
22338 · filter: Prevent mixing options when --files-from is in use (Michele
22339 Caci)
22340
22341 · serve sftp: Fix crash on unsupported operations (eg Readlink) (Nick
22342 Craig-Wood)
22343
22344 · Mount
22345
22346 · Allow files of unkown size to be read properly (Nick Craig-Wood)
22347
22348 · Skip tests on <= 2 CPUs to avoid lockup (Nick Craig-Wood)
22349
22350 · Fix panic on File.Open (Nick Craig-Wood)
22351
22352 · Fix “mount_fusefs: -o timeout=: option not supported” on FreeBSD
22353 (Nick Craig-Wood)
22354
22355 · Don’t pass huge filenames (>4k) to FUSE as it can’t cope (Nick
22356 Craig-Wood)
22357
22358 · VFS
22359
22360 · Add flag --vfs-case-insensitive for windows/macOS mounts (Ivan An‐
22361 dreev)
22362
22363 · Make objects of unknown size readable through the VFS (Nick
22364 Craig-Wood)
22365
22366 · Move writeback of dirty data out of close() method into its own
22367 method (FlushWrites) and remove close() call from Flush() (Brett
22368 Dutro)
22369
22370 · Stop empty dirs disappearing when renamed on bucket based remotes
22371 (Nick Craig-Wood)
22372
22373 · Stop change notify polling clearing so much of the directory cache
22374 (Nick Craig-Wood)
22375
22376 · Azure Blob
22377
22378 · Disable logging to the Windows event log (Nick Craig-Wood)
22379
22380 · B2
22381
22382 · Remove unverified: prefix on sha1 to improve interop (eg with Cy‐
22383 berDuck) (Nick Craig-Wood)
22384
22385 · Box
22386
22387 · Add options to get access token via JWT auth (David)
22388
22389 · Drive
22390
22391 · Disable HTTP/2 by default to work around INTERNAL_ERROR problems
22392 (Nick Craig-Wood)
22393
22394 · Make sure that drive root ID is always canonical (Nick Craig-Wood)
22395
22396 · Fix --drive-shared-with-me from the root with lsand --fast-list
22397 (Nick Craig-Wood)
22398
22399 · Fix ChangeNotify polling for shared drives (Nick Craig-Wood)
22400
22401 · Fix change notify polling when using appDataFolder (Nick
22402 Craig-Wood)
22403
22404 · Dropbox
22405
22406 · Make disallowed filenames errors not retry (Nick Craig-Wood)
22407
22408 · Fix nil pointer exception on restricted files (Nick Craig-Wood)
22409
22410 · Fichier
22411
22412 · Fix accessing files > 2GB on 32 bit systems (Nick Craig-Wood)
22413
22414 · FTP
22415
22416 · Allow disabling EPSV mode (Jon Fautley)
22417
22418 · HTTP
22419
22420 · HEAD directory entries in parallel to speedup (Nick Craig-Wood)
22421
22422 · Add --http-no-head to stop rclone doing HEAD in listings (Nick
22423 Craig-Wood)
22424
22425 · Putio
22426
22427 · Add ability to resume uploads (Cenk Alti)
22428
22429 · S3
22430
22431 · Fix signature v2_auth headers (Anthony Rusdi)
22432
22433 · Fix encoding for control characters (Nick Craig-Wood)
22434
22435 · Only ask for URL encoded directory listings if we need them on Ceph
22436 (Nick Craig-Wood)
22437
22438 · Add option for multipart failiure behaviour (Aleksandar Jankovic)
22439
22440 · Support for multipart copy (庄天翼)
22441
22442 · Fix nil pointer reference if no metadata returned for object (Nick
22443 Craig-Wood)
22444
22445 · SFTP
22446
22447 · Fix --sftp-ask-password trying to contact the ssh agent (Nick
22448 Craig-Wood)
22449
22450 · Fix hashes of files with backslashes (Nick Craig-Wood)
22451
22452 · Include more ciphers with --sftp-use-insecure-cipher (Carlos Fer‐
22453 reyra)
22454
22455 · WebDAV
22456
22457 · Parse and return Sharepoint error response (Henning Surmeier)
22458
22459 v1.49.5 - 2019-10-05
22460 · Bug Fixes
22461
22462 · Revert back to go1.12.x for the v1.49.x builds as go1.13.x was
22463 causing issues (Nick Craig-Wood)
22464
22465 · Fix rpm packages by using master builds of nfpm (Nick Craig-Wood)
22466
22467 · Fix macOS build after brew changes (Nick Craig-Wood)
22468
22469 v1.49.4 - 2019-09-29
22470 · Bug Fixes
22471
22472 · cmd/rcd: Address ZipSlip vulnerability (Richard Patel)
22473
22474 · accounting: Fix file handle leak on errors (Nick Craig-Wood)
22475
22476 · oauthutil: Fix security problem when running with two users on the
22477 same machine (Nick Craig-Wood)
22478
22479 · FTP
22480
22481 · Fix listing of an empty root returning: error dir not found (Nick
22482 Craig-Wood)
22483
22484 · S3
22485
22486 · Fix SetModTime on GLACIER/ARCHIVE objects and implement set/get
22487 tier (Nick Craig-Wood)
22488
22489 v1.49.3 - 2019-09-15
22490 · Bug Fixes
22491
22492 · accounting
22493
22494 · Fix total duration calculation (Aleksandar Jankovic)
22495
22496 · Fix “file already closed” on transfer retries (Nick Craig-Wood)
22497
22498 v1.49.2 - 2019-09-08
22499 · New Features
22500
22501 · build: Add Docker workflow support (Alfonso Montero)
22502
22503 · Bug Fixes
22504
22505 · accounting: Fix locking in Transfer to avoid deadlock with
22506 --progress (Nick Craig-Wood)
22507
22508 · docs: Fix template argument for mktemp in install.sh (Cnly)
22509
22510 · operations: Fix -u/--update with google photos / files of unknown
22511 size (Nick Craig-Wood)
22512
22513 · rc: Fix docs for config/create /update /password (Nick Craig-Wood)
22514
22515 · Google Cloud Storage
22516
22517 · Fix need for elevated permissions on SetModTime (Nick Craig-Wood)
22518
22519 v1.49.1 - 2019-08-28
22520 · Bug Fixes
22521
22522 · config: Fix generated passwords being stored as empty password
22523 (Nick Craig-Wood)
22524
22525 · rcd: Added missing parameter for web-gui info logs. (Chaitanya)
22526
22527 · Googlephotos
22528
22529 · Fix crash on error response (Nick Craig-Wood)
22530
22531 · Onedrive
22532
22533 · Fix crash on error response (Nick Craig-Wood)
22534
22535 v1.49.0 - 2019-08-26
22536 · New backends
22537
22538 · 1fichier (https://rclone.org/fichier/) (Laura Hausmann)
22539
22540 · Google Photos (/googlephotos) (Nick Craig-Wood)
22541
22542 · Putio (https://rclone.org/putio/) (Cenk Alti)
22543
22544 · premiumize.me (https://rclone.org/premiumizeme/) (Nick Craig-Wood)
22545
22546 · New Features
22547
22548 · Experimental web GUI (https://rclone.org/gui/) (Chaitanya Bankan‐
22549 hal)
22550
22551 · Implement --compare-dest & --copy-dest (yparitcher)
22552
22553 · Implement --suffix without --backup-dir for backup to current dir
22554 (yparitcher)
22555
22556 · config reconnect to re-login (re-run the oauth login) for the back‐
22557 end. (Nick Craig-Wood)
22558
22559 · config userinfo to discover which user you are logged in as. (Nick
22560 Craig-Wood)
22561
22562 · config disconnect to disconnect you (log out) from the backend.
22563 (Nick Craig-Wood)
22564
22565 · Add --use-json-log for JSON logging (justinalin)
22566
22567 · Add context propagation to rclone (Aleksandar Jankovic)
22568
22569 · Reworking internal statistics interfaces so they work with rc jobs
22570 (Aleksandar Jankovic)
22571
22572 · Add Higher units for ETA (AbelThar)
22573
22574 · Update rclone logos to new design (Andreas Chlupka)
22575
22576 · hash: Add CRC-32 support (Cenk Alti)
22577
22578 · help showbackend: Fixed advanced option category when there are no
22579 standard options (buengese)
22580
22581 · ncdu: Display/Copy to Clipboard Current Path (Gary Kim)
22582
22583 · operations:
22584
22585 · Run hashing operations in parallel (Nick Craig-Wood)
22586
22587 · Don’t calculate checksums when using --ignore-checksum (Nick
22588 Craig-Wood)
22589
22590 · Check transfer hashes when using --size-only mode (Nick
22591 Craig-Wood)
22592
22593 · Disable multi thread copy for local to local copies (Nick
22594 Craig-Wood)
22595
22596 · Debug successful hashes as well as failures (Nick Craig-Wood)
22597
22598 · rc
22599
22600 · Add ability to stop async jobs (Aleksandar Jankovic)
22601
22602 · Return current settings if core/bwlimit called without parameters
22603 (Nick Craig-Wood)
22604
22605 · Rclone-WebUI integration with rclone (Chaitanya Bankanhal)
22606
22607 · Added command line parameter to control the cross origin resource
22608 sharing (CORS) in the rcd. (Security Improvement) (Chaitanya
22609 Bankanhal)
22610
22611 · Add anchor tags to the docs so links are consistent (Nick
22612 Craig-Wood)
22613
22614 · Remove _async key from input parameters after parsing so later
22615 operations won’t get confused (buengese)
22616
22617 · Add call to clear stats (Aleksandar Jankovic)
22618
22619 · rcd
22620
22621 · Auto-login for web-gui (Chaitanya Bankanhal)
22622
22623 · Implement --baseurl for rcd and web-gui (Chaitanya Bankanhal)
22624
22625 · serve dlna
22626
22627 · Only select interfaces which can multicast for SSDP (Nick
22628 Craig-Wood)
22629
22630 · Add more builtin mime types to cover standard audio/video (Nick
22631 Craig-Wood)
22632
22633 · Fix missing mime types on Android causing missing videos (Nick
22634 Craig-Wood)
22635
22636 · serve ftp
22637
22638 · Refactor to bring into line with other serve commands (Nick
22639 Craig-Wood)
22640
22641 · Implement --auth-proxy (Nick Craig-Wood)
22642
22643 · serve http: Implement --baseurl (Nick Craig-Wood)
22644
22645 · serve restic: Implement --baseurl (Nick Craig-Wood)
22646
22647 · serve sftp
22648
22649 · Implement auth proxy (Nick Craig-Wood)
22650
22651 · Fix detection of whether server is authorized (Nick Craig-Wood)
22652
22653 · serve webdav
22654
22655 · Implement --baseurl (Nick Craig-Wood)
22656
22657 · Support --auth-proxy (Nick Craig-Wood)
22658
22659 · Bug Fixes
22660
22661 · Make “bad record MAC” a retriable error (Nick Craig-Wood)
22662
22663 · copyurl: Fix copying files that return HTTP errors (Nick
22664 Craig-Wood)
22665
22666 · march: Fix checking sub-directories when using --no-traverse
22667 (buengese)
22668
22669 · rc
22670
22671 · Fix unmarshalable http.AuthFn in options and put in test for mar‐
22672 shalability (Nick Craig-Wood)
22673
22674 · Move job expire flags to rc to fix initalization problem (Nick
22675 Craig-Wood)
22676
22677 · Fix --loopback with rc/list and others (Nick Craig-Wood)
22678
22679 · rcat: Fix slowdown on systems with multiple hashes (Nick
22680 Craig-Wood)
22681
22682 · rcd: Fix permissions problems on cache directory with web gui down‐
22683 load (Nick Craig-Wood)
22684
22685 · Mount
22686
22687 · Default --deamon-timout to 15 minutes on macOS and FreeBSD (Nick
22688 Craig-Wood)
22689
22690 · Update docs to show mounting from root OK for bucket based (Nick
22691 Craig-Wood)
22692
22693 · Remove nonseekable flag from write files (Nick Craig-Wood)
22694
22695 · VFS
22696
22697 · Make write without cache more efficient (Nick Craig-Wood)
22698
22699 · Fix --vfs-cache-mode minimal and writes ignoring cached files (Nick
22700 Craig-Wood)
22701
22702 · Local
22703
22704 · Add --local-case-sensitive and --local-case-insensitive (Nick
22705 Craig-Wood)
22706
22707 · Avoid polluting page cache when uploading local files to remote
22708 backends (Michał Matczuk)
22709
22710 · Don’t calculate any hashes by default (Nick Craig-Wood)
22711
22712 · Fadvise run syscall on a dedicated go routine (Michał Matczuk)
22713
22714 · Azure Blob
22715
22716 · Azure Storage Emulator support (Sandeep)
22717
22718 · Updated config help details to remove connection string references
22719 (Sandeep)
22720
22721 · Make all operations work from the root (Nick Craig-Wood)
22722
22723 · B2
22724
22725 · Implement link sharing (yparitcher)
22726
22727 · Enable server side copy to copy between buckets (Nick Craig-Wood)
22728
22729 · Make all operations work from the root (Nick Craig-Wood)
22730
22731 · Drive
22732
22733 · Fix server side copy of big files (Nick Craig-Wood)
22734
22735 · Update API for teamdrive use (Nick Craig-Wood)
22736
22737 · Add error for purge with --drive-trashed-only (ginvine)
22738
22739 · Fichier
22740
22741 · Make FolderID int and adjust related code (buengese)
22742
22743 · Google Cloud Storage
22744
22745 · Reduce oauth scope requested as suggested by Google (Nick
22746 Craig-Wood)
22747
22748 · Make all operations work from the root (Nick Craig-Wood)
22749
22750 · HTTP
22751
22752 · Add --http-headers flag for setting arbitrary headers (Nick
22753 Craig-Wood)
22754
22755 · Jottacloud
22756
22757 · Use new api for retrieving internal username (buengese)
22758
22759 · Refactor configuration and minor cleanup (buengese)
22760
22761 · Koofr
22762
22763 · Support setting modification times on Koofr backend. (jaKa)
22764
22765 · Opendrive
22766
22767 · Refactor to use existing lib/rest facilities for uploads (Nick
22768 Craig-Wood)
22769
22770 · Qingstor
22771
22772 · Upgrade to v3 SDK and fix listing loop (Nick Craig-Wood)
22773
22774 · Make all operations work from the root (Nick Craig-Wood)
22775
22776 · S3
22777
22778 · Add INTELLIGENT_TIERING storage class (Matti Niemenmaa)
22779
22780 · Make all operations work from the root (Nick Craig-Wood)
22781
22782 · SFTP
22783
22784 · Add missing interface check and fix About (Nick Craig-Wood)
22785
22786 · Completely ignore all modtime checks if SetModTime=false (Jon Faut‐
22787 ley)
22788
22789 · Support md5/sha1 with rsync.net (Nick Craig-Wood)
22790
22791 · Save the md5/sha1 command in use to the config file for efficiency
22792 (Nick Craig-Wood)
22793
22794 · Opt-in support for diffie-hellman-group-exchange-sha256
22795 diffie-hellman-group-exchange-sha1 (Yi FU)
22796
22797 · Swift
22798
22799 · Use FixRangeOption to fix 0 length files via the VFS (Nick
22800 Craig-Wood)
22801
22802 · Fix upload when using no_chunk to return the correct size (Nick
22803 Craig-Wood)
22804
22805 · Make all operations work from the root (Nick Craig-Wood)
22806
22807 · Fix segments leak during failed large file uploads. (nguyenhuulu‐
22808 an434)
22809
22810 · WebDAV
22811
22812 · Add --webdav-bearer-token-command (Nick Craig-Wood)
22813
22814 · Refresh token when it expires with --webdav-bearer-token-command
22815 (Nick Craig-Wood)
22816
22817 · Add docs for using bearer_token_command with oidc-agent (Paul Mil‐
22818 lar)
22819
22820 v1.48.0 - 2019-06-15
22821 · New commands
22822
22823 · serve sftp: Serve an rclone remote over SFTP (Nick Craig-Wood)
22824
22825 · New Features
22826
22827 · Multi threaded downloads to local storage (Nick Craig-Wood)
22828
22829 · controlled with --multi-thread-cutoff and --multi-thread-streams
22830
22831 · Use rclone.conf from rclone executable directory to enable portable
22832 use (albertony)
22833
22834 · Allow sync of a file and a directory with the same name (forgems)
22835
22836 · this is common on bucket based remotes, eg s3, gcs
22837
22838 · Add --ignore-case-sync for forced case insensitivity (garry415)
22839
22840 · Implement --stats-one-line-date and --stats-one-line-date-format
22841 (Peter Berbec)
22842
22843 · Log an ERROR for all commands which exit with non-zero status (Nick
22844 Craig-Wood)
22845
22846 · Use go-homedir to read the home directory more reliably (Nick
22847 Craig-Wood)
22848
22849 · Enable creating encrypted config through external script invocation
22850 (Wojciech Smigielski)
22851
22852 · build: Drop support for go1.8 (Nick Craig-Wood)
22853
22854 · config: Make config create/update encrypt passwords where necessary
22855 (Nick Craig-Wood)
22856
22857 · copyurl: Honor --no-check-certificate (Stefan Breunig)
22858
22859 · install: Linux skip man pages if no mandb (didil)
22860
22861 · lsf: Support showing the Tier of the object (Nick Craig-Wood)
22862
22863 · lsjson
22864
22865 · Added EncryptedPath to output (calisro)
22866
22867 · Support showing the Tier of the object (Nick Craig-Wood)
22868
22869 · Add IsBucket field for bucket based remote listing of the root
22870 (Nick Craig-Wood)
22871
22872 · rc
22873
22874 · Add --loopback flag to run commands directly without a server
22875 (Nick Craig-Wood)
22876
22877 · Add operations/fsinfo: Return information about the remote (Nick
22878 Craig-Wood)
22879
22880 · Skip auth for OPTIONS request (Nick Craig-Wood)
22881
22882 · cmd/providers: Add DefaultStr, ValueStr and Type fields (Nick
22883 Craig-Wood)
22884
22885 · jobs: Make job expiry timeouts configurable (Aleksandar Jankovic)
22886
22887 · serve dlna reworked and improved (Dan Walters)
22888
22889 · serve ftp: add --ftp-public-ip flag to specify public IP (calistri)
22890
22891 · serve restic: Add support for --private-repos in serve restic (Flo‐
22892 rian Apolloner)
22893
22894 · serve webdav: Combine serve webdav and serve http (Gary Kim)
22895
22896 · size: Ignore negative sizes when calculating total (Garry McNulty)
22897
22898 · Bug Fixes
22899
22900 · Make move and copy individual files obey --backup-dir (Nick
22901 Craig-Wood)
22902
22903 · If --ignore-checksum is in effect, don’t calculate checksum (Nick
22904 Craig-Wood)
22905
22906 · moveto: Fix case-insensitive same remote move (Gary Kim)
22907
22908 · rc: Fix serving bucket based objects with --rc-serve (Nick
22909 Craig-Wood)
22910
22911 · serve webdav: Fix serveDir not being updated with changes from web‐
22912 dav (Gary Kim)
22913
22914 · Mount
22915
22916 · Fix poll interval documentation (Animosity022)
22917
22918 · VFS
22919
22920 · Make WriteAt for non cached files work with non-sequential writes
22921 (Nick Craig-Wood)
22922
22923 · Local
22924
22925 · Only calculate the required hashes for big speedup (Nick
22926 Craig-Wood)
22927
22928 · Log errors when listing instead of returning an error (Nick
22929 Craig-Wood)
22930
22931 · Fix preallocate warning on Linux with ZFS (Nick Craig-Wood)
22932
22933 · Crypt
22934
22935 · Make rclone dedupe work through crypt (Nick Craig-Wood)
22936
22937 · Fix wrapping of ChangeNotify to decrypt directories properly (Nick
22938 Craig-Wood)
22939
22940 · Support PublicLink (rclone link) of underlying backend (Nick
22941 Craig-Wood)
22942
22943 · Implement Optional methods SetTier, GetTier (Nick Craig-Wood)
22944
22945 · B2
22946
22947 · Implement server side copy (Nick Craig-Wood)
22948
22949 · Implement SetModTime (Nick Craig-Wood)
22950
22951 · Drive
22952
22953 · Fix move and copy from TeamDrive to GDrive (Fionera)
22954
22955 · Add notes that cleanup works in the background on drive (Nick
22956 Craig-Wood)
22957
22958 · Add --drive-server-side-across-configs to default back to old serv‐
22959 er side copy semantics by default (Nick Craig-Wood)
22960
22961 · Add --drive-size-as-quota to show storage quota usage for file size
22962 (Garry McNulty)
22963
22964 · FTP
22965
22966 · Add FTP List timeout (Jeff Quinn)
22967
22968 · Add FTP over TLS support (Gary Kim)
22969
22970 · Add --ftp-no-check-certificate option for FTPS (Gary Kim)
22971
22972 · Google Cloud Storage
22973
22974 · Fix upload errors when uploading pre 1970 files (Nick Craig-Wood)
22975
22976 · Jottacloud
22977
22978 · Add support for selecting device and mountpoint. (buengese)
22979
22980 · Mega
22981
22982 · Add cleanup support (Gary Kim)
22983
22984 · Onedrive
22985
22986 · More accurately check if root is found (Cnly)
22987
22988 · S3
22989
22990 · Suppport S3 Accelerated endpoints with --s3-use-accelerate-endpoint
22991 (Nick Craig-Wood)
22992
22993 · Add config info for Wasabi’s EU Central endpoint (Robert Marko)
22994
22995 · Make SetModTime work for GLACIER while syncing (Philip Harvey)
22996
22997 · SFTP
22998
22999 · Add About support (Gary Kim)
23000
23001 · Fix about parsing of df results so it can cope with -ve results
23002 (Nick Craig-Wood)
23003
23004 · Send custom client version and debug server version (Nick
23005 Craig-Wood)
23006
23007 · WebDAV
23008
23009 · Retry on 423 Locked errors (Nick Craig-Wood)
23010
23011 v1.47.0 - 2019-04-13
23012 · New backends
23013
23014 · Backend for Koofr cloud storage service. (jaKa)
23015
23016 · New Features
23017
23018 · Resume downloads if the reader fails in copy (Nick Craig-Wood)
23019
23020 · this means rclone will restart transfers if the source has an er‐
23021 ror
23022
23023 · this is most useful for downloads or cloud to cloud copies
23024
23025 · Use --fast-list for listing operations where it won’t use more mem‐
23026 ory (Nick Craig-Wood)
23027
23028 · this should speed up the following operations on remotes which
23029 support ListR
23030
23031 · dedupe, serve restic lsf, ls, lsl, lsjson, lsd, md5sum, sha1sum,
23032 hashsum, size, delete, cat, settier
23033
23034 · use --disable ListR to get old behaviour if required
23035
23036 · Make --files-from traverse the destination unless --no-traverse is
23037 set (Nick Craig-Wood)
23038
23039 · this fixes --files-from with Google drive and excessive API use
23040 in general.
23041
23042 · Make server side copy account bytes and obey --max-transfer (Nick
23043 Craig-Wood)
23044
23045 · Add --create-empty-src-dirs flag and default to not creating empty
23046 dirs (ishuah)
23047
23048 · Add client side TLS/SSL flags --ca-cert/--client-cert/--client-key
23049 (Nick Craig-Wood)
23050
23051 · Implement --suffix-keep-extension for use with --suffix (Nick
23052 Craig-Wood)
23053
23054 · build:
23055
23056 · Switch to semvar compliant version tags to be go modules compli‐
23057 ant (Nick Craig-Wood)
23058
23059 · Update to use go1.12.x for the build (Nick Craig-Wood)
23060
23061 · serve dlna: Add connection manager service description to improve
23062 compatibility (Dan Walters)
23063
23064 · lsf: Add `e' format to show encrypted names and `o' for original
23065 IDs (Nick Craig-Wood)
23066
23067 · lsjson: Added --files-only and --dirs-only flags (calistri)
23068
23069 · rc: Implement operations/publiclink the equivalent of rclone link
23070 (Nick Craig-Wood)
23071
23072 · Bug Fixes
23073
23074 · accounting: Fix total ETA when --stats-unit bits is in effect (Nick
23075 Craig-Wood)
23076
23077 · Bash TAB completion
23078
23079 · Use private custom func to fix clash between rclone and kubectl
23080 (Nick Craig-Wood)
23081
23082 · Fix for remotes with underscores in their names (Six)
23083
23084 · Fix completion of remotes (Florian Gamböck)
23085
23086 · Fix autocompletion of remote paths with spaces (Danil Semelenov)
23087
23088 · serve dlna: Fix root XML service descriptor (Dan Walters)
23089
23090 · ncdu: Fix display corruption with Chinese characters (Nick
23091 Craig-Wood)
23092
23093 · Add SIGTERM to signals which run the exit handlers on unix (Nick
23094 Craig-Wood)
23095
23096 · rc: Reload filter when the options are set via the rc (Nick
23097 Craig-Wood)
23098
23099 · VFS / Mount
23100
23101 · Fix FreeBSD: Ignore Truncate if called with no readers and already
23102 the correct size (Nick Craig-Wood)
23103
23104 · Read directory and check for a file before mkdir (Nick Craig-Wood)
23105
23106 · Shorten the locking window for vfs/refresh (Nick Craig-Wood)
23107
23108 · Azure Blob
23109
23110 · Enable MD5 checksums when uploading files bigger than the “Cutoff”
23111 (Dr.Rx)
23112
23113 · Fix SAS URL support (Nick Craig-Wood)
23114
23115 · B2
23116
23117 · Allow manual configuration of backblaze downloadUrl (Vince)
23118
23119 · Ignore already_hidden error on remove (Nick Craig-Wood)
23120
23121 · Ignore malformed src_last_modified_millis (Nick Craig-Wood)
23122
23123 · Drive
23124
23125 · Add --skip-checksum-gphotos to ignore incorrect checksums on Google
23126 Photos (Nick Craig-Wood)
23127
23128 · Allow server side move/copy between different remotes. (Fionera)
23129
23130 · Add docs on team drives and --fast-list eventual consistency (Nes‐
23131 tar47)
23132
23133 · Fix imports of text files (Nick Craig-Wood)
23134
23135 · Fix range requests on 0 length files (Nick Craig-Wood)
23136
23137 · Fix creation of duplicates with server side copy (Nick Craig-Wood)
23138
23139 · Dropbox
23140
23141 · Retry blank errors to fix long listings (Nick Craig-Wood)
23142
23143 · FTP
23144
23145 · Add --ftp-concurrency to limit maximum number of connections (Nick
23146 Craig-Wood)
23147
23148 · Google Cloud Storage
23149
23150 · Fall back to default application credentials (marcintustin)
23151
23152 · Allow bucket policy only buckets (Nick Craig-Wood)
23153
23154 · HTTP
23155
23156 · Add --http-no-slash for websites with directories with no slashes
23157 (Nick Craig-Wood)
23158
23159 · Remove duplicates from listings (Nick Craig-Wood)
23160
23161 · Fix socket leak on 404 errors (Nick Craig-Wood)
23162
23163 · Jottacloud
23164
23165 · Fix token refresh (Sebastian Bünger)
23166
23167 · Add device registration (Oliver Heyme)
23168
23169 · Onedrive
23170
23171 · Implement graceful cancel of multipart uploads if rclone is inter‐
23172 rupted (Cnly)
23173
23174 · Always add trailing colon to path when addressing items, (Cnly)
23175
23176 · Return errors instead of panic for invalid uploads (Fabian Möller)
23177
23178 · S3
23179
23180 · Add support for “Glacier Deep Archive” storage class (Manu)
23181
23182 · Update Dreamhost endpoint (Nick Craig-Wood)
23183
23184 · Note incompatibility with CEPH Jewel (Nick Craig-Wood)
23185
23186 · SFTP
23187
23188 · Allow custom ssh client config (Alexandru Bumbacea)
23189
23190 · Swift
23191
23192 · Obey Retry-After to enable OVH restore from cold storage (Nick
23193 Craig-Wood)
23194
23195 · Work around token expiry on CEPH (Nick Craig-Wood)
23196
23197 · WebDAV
23198
23199 · Allow IsCollection property to be integer or boolean (Nick
23200 Craig-Wood)
23201
23202 · Fix race when creating directories (Nick Craig-Wood)
23203
23204 · Fix About/df when reading the available/total returns 0 (Nick
23205 Craig-Wood)
23206
23207 v1.46 - 2019-02-09
23208 · New backends
23209
23210 · Support Alibaba Cloud (Aliyun) OSS via the s3 backend (Nick
23211 Craig-Wood)
23212
23213 · New commands
23214
23215 · serve dlna: serves a remove via DLNA for the local network (ni‐
23216 colov)
23217
23218 · New Features
23219
23220 · copy, move: Restore deprecated --no-traverse flag (Nick Craig-Wood)
23221
23222 · This is useful for when transferring a small number of files into
23223 a large destination
23224
23225 · genautocomplete: Add remote path completion for bash completion
23226 (Christopher Peterson & Danil Semelenov)
23227
23228 · Buffer memory handling reworked to return memory to the OS better
23229 (Nick Craig-Wood)
23230
23231 · Buffer recycling library to replace sync.Pool
23232
23233 · Optionally use memory mapped memory for better memory shrinking
23234
23235 · Enable with --use-mmap if having memory problems - not default
23236 yet
23237
23238 · Parallelise reading of files specified by --files-from (Nick
23239 Craig-Wood)
23240
23241 · check: Add stats showing total files matched. (Dario Guzik)
23242
23243 · Allow rename/delete open files under Windows (Nick Craig-Wood)
23244
23245 · lsjson: Use exactly the correct number of decimal places in the
23246 seconds (Nick Craig-Wood)
23247
23248 · Add cookie support with cmdline switch --use-cookies for all HTTP
23249 based remotes (qip)
23250
23251 · Warn if --checksum is set but there are no hashes available (Nick
23252 Craig-Wood)
23253
23254 · Rework rate limiting (pacer) to be more accurate and allow bursting
23255 (Nick Craig-Wood)
23256
23257 · Improve error reporting for too many/few arguments in commands
23258 (Nick Craig-Wood)
23259
23260 · listremotes: Remove -l short flag as it conflicts with the new
23261 global flag (weetmuts)
23262
23263 · Make http serving with auth generate INFO messages on auth fail
23264 (Nick Craig-Wood)
23265
23266 · Bug Fixes
23267
23268 · Fix layout of stats (Nick Craig-Wood)
23269
23270 · Fix --progress crash under Windows Jenkins (Nick Craig-Wood)
23271
23272 · Fix transfer of google/onedrive docs by calling Rcat in Copy when
23273 size is -1 (Cnly)
23274
23275 · copyurl: Fix checking of --dry-run (Denis Skovpen)
23276
23277 · Mount
23278
23279 · Check that mountpoint and local directory to mount don’t overlap
23280 (Nick Craig-Wood)
23281
23282 · Fix mount size under 32 bit Windows (Nick Craig-Wood)
23283
23284 · VFS
23285
23286 · Implement renaming of directories for backends without DirMove
23287 (Nick Craig-Wood)
23288
23289 · now all backends except b2 support renaming directories
23290
23291 · Implement --vfs-cache-max-size to limit the total size of the cache
23292 (Nick Craig-Wood)
23293
23294 · Add --dir-perms and --file-perms flags to set default permissions
23295 (Nick Craig-Wood)
23296
23297 · Fix deadlock on concurrent operations on a directory (Nick
23298 Craig-Wood)
23299
23300 · Fix deadlock between RWFileHandle.close and File.Remove (Nick
23301 Craig-Wood)
23302
23303 · Fix renaming/deleting open files with cache mode “writes” under
23304 Windows (Nick Craig-Wood)
23305
23306 · Fix panic on rename with --dry-run set (Nick Craig-Wood)
23307
23308 · Fix vfs/refresh with recurse=true needing the --fast-list flag
23309
23310 · Local
23311
23312 · Add support for -l/--links (symbolic link translation) (yair@uni‐
23313 corn)
23314
23315 · this works by showing links as link.rclonelink - see local back‐
23316 end docs for more info
23317
23318 · this errors if used with -L/--copy-links
23319
23320 · Fix renaming/deleting open files on Windows (Nick Craig-Wood)
23321
23322 · Crypt
23323
23324 · Check for maximum length before decrypting filename to fix panic
23325 (Garry McNulty)
23326
23327 · Azure Blob
23328
23329 · Allow building azureblob backend on *BSD (themylogin)
23330
23331 · Use the rclone HTTP client to support --dump headers, --tpslimit
23332 etc (Nick Craig-Wood)
23333
23334 · Use the s3 pacer for 0 delay in non error conditions (Nick
23335 Craig-Wood)
23336
23337 · Ignore directory markers (Nick Craig-Wood)
23338
23339 · Stop Mkdir attempting to create existing containers (Nick
23340 Craig-Wood)
23341
23342 · B2
23343
23344 · cleanup: will remove unfinished large files >24hrs old (Garry Mc‐
23345 Nulty)
23346
23347 · For a bucket limited application key check the bucket name (Nick
23348 Craig-Wood)
23349
23350 · before this, rclone would use the authorised bucket regardless of
23351 what you put on the command line
23352
23353 · Added --b2-disable-checksum flag (Wojciech Smigielski)
23354
23355 · this enables large files to be uploaded without a SHA-1 hash for
23356 speed reasons
23357
23358 · Drive
23359
23360 · Set default pacer to 100ms for 10 tps (Nick Craig-Wood)
23361
23362 · This fits the Google defaults much better and reduces the 403 er‐
23363 rors massively
23364
23365 · Add --drive-pacer-min-sleep and --drive-pacer-burst to control
23366 the pacer
23367
23368 · Improve ChangeNotify support for items with multiple parents (Fabi‐
23369 an Möller)
23370
23371 · Fix ListR for items with multiple parents - this fixes oddities
23372 with vfs/refresh (Fabian Möller)
23373
23374 · Fix using --drive-impersonate and appfolders (Nick Craig-Wood)
23375
23376 · Fix google docs in rclone mount for some (not all) applications
23377 (Nick Craig-Wood)
23378
23379 · Dropbox
23380
23381 · Retry-After support for Dropbox backend (Mathieu Carbou)
23382
23383 · FTP
23384
23385 · Wait for 60 seconds for a connection to Close then declare it dead
23386 (Nick Craig-Wood)
23387
23388 · helps with indefinite hangs on some FTP servers
23389
23390 · Google Cloud Storage
23391
23392 · Update google cloud storage endpoints (weetmuts)
23393
23394 · HTTP
23395
23396 · Add an example with username and password which is supported but
23397 wasn’t documented (Nick Craig-Wood)
23398
23399 · Fix backend with --files-from and non-existent files (Nick
23400 Craig-Wood)
23401
23402 · Hubic
23403
23404 · Make error message more informative if authentication fails (Nick
23405 Craig-Wood)
23406
23407 · Jottacloud
23408
23409 · Resume and deduplication support (Oliver Heyme)
23410
23411 · Use token auth for all API requests Don’t store password anymore
23412 (Sebastian Bünger)
23413
23414 · Add support for 2-factor authentification (Sebastian Bünger)
23415
23416 · Mega
23417
23418 · Implement v2 account login which fixes logins for newer Mega ac‐
23419 counts (Nick Craig-Wood)
23420
23421 · Return error if an unknown length file is attempted to be uploaded
23422 (Nick Craig-Wood)
23423
23424 · Add new error codes for better error reporting (Nick Craig-Wood)
23425
23426 · Onedrive
23427
23428 · Fix broken support for “shared with me” folders (Alex Chen)
23429
23430 · Fix root ID not normalised (Cnly)
23431
23432 · Return err instead of panic on unknown-sized uploads (Cnly)
23433
23434 · Qingstor
23435
23436 · Fix go routine leak on multipart upload errors (Nick Craig-Wood)
23437
23438 · Add upload chunk size/concurrency/cutoff control (Nick Craig-Wood)
23439
23440 · Default --qingstor-upload-concurrency to 1 to work around bug (Nick
23441 Craig-Wood)
23442
23443 · S3
23444
23445 · Implement --s3-upload-cutoff for single part uploads below this
23446 (Nick Craig-Wood)
23447
23448 · Change --s3-upload-concurrency default to 4 to increase perfomance
23449 (Nick Craig-Wood)
23450
23451 · Add --s3-bucket-acl to control bucket ACL (Nick Craig-Wood)
23452
23453 · Auto detect region for buckets on operation failure (Nick
23454 Craig-Wood)
23455
23456 · Add GLACIER storage class (William Cocker)
23457
23458 · Add Scaleway to s3 documentation (Rémy Léone)
23459
23460 · Add AWS endpoint eu-north-1 (weetmuts)
23461
23462 · SFTP
23463
23464 · Add support for PEM encrypted private keys (Fabian Möller)
23465
23466 · Add option to force the usage of an ssh-agent (Fabian Möller)
23467
23468 · Perform environment variable expansion on key-file (Fabian Möller)
23469
23470 · Fix rmdir on Windows based servers (eg CrushFTP) (Nick Craig-Wood)
23471
23472 · Fix rmdir deleting directory contents on some SFTP servers (Nick
23473 Craig-Wood)
23474
23475 · Fix error on dangling symlinks (Nick Craig-Wood)
23476
23477 · Swift
23478
23479 · Add --swift-no-chunk to disable segmented uploads in rcat/mount
23480 (Nick Craig-Wood)
23481
23482 · Introduce application credential auth support (kayrus)
23483
23484 · Fix memory usage by slimming Object (Nick Craig-Wood)
23485
23486 · Fix extra requests on upload (Nick Craig-Wood)
23487
23488 · Fix reauth on big files (Nick Craig-Wood)
23489
23490 · Union
23491
23492 · Fix poll-interval not working (Nick Craig-Wood)
23493
23494 · WebDAV
23495
23496 · Support About which means rclone mount will show the correct disk
23497 size (Nick Craig-Wood)
23498
23499 · Support MD5 and SHA1 hashes with Owncloud and Nextcloud (Nick
23500 Craig-Wood)
23501
23502 · Fail soft on time parsing errors (Nick Craig-Wood)
23503
23504 · Fix infinite loop on failed directory creation (Nick Craig-Wood)
23505
23506 · Fix identification of directories for Bitrix Site Manager (Nick
23507 Craig-Wood)
23508
23509 · Fix upload of 0 length files on some servers (Nick Craig-Wood)
23510
23511 · Fix if MKCOL fails with 423 Locked assume the directory exists
23512 (Nick Craig-Wood)
23513
23514 v1.45 - 2018-11-24
23515 · New backends
23516
23517 · The Yandex backend was re-written - see below for details (Sebas‐
23518 tian Bünger)
23519
23520 · New commands
23521
23522 · rcd: New command just to serve the remote control API (Nick
23523 Craig-Wood)
23524
23525 · New Features
23526
23527 · The remote control API (rc) was greatly expanded to allow full con‐
23528 trol over rclone (Nick Craig-Wood)
23529
23530 · sensitive operations require authorization or the --rc-no-auth
23531 flag
23532
23533 · config/* operations to configure rclone
23534
23535 · options/* for reading/setting command line flags
23536
23537 · operations/* for all low level operations, eg copy file, list di‐
23538 rectory
23539
23540 · sync/* for sync, copy and move
23541
23542 · --rc-files flag to serve files on the rc http server
23543
23544 · this is for building web native GUIs for rclone
23545
23546 · Optionally serving objects on the rc http server
23547
23548 · Ensure rclone fails to start up if the --rc port is in use al‐
23549 ready
23550
23551 · See the rc docs (https://rclone.org/rc/) for more info
23552
23553 · sync/copy/move
23554
23555 · Make --files-from only read the objects specified and don’t scan
23556 directories (Nick Craig-Wood)
23557
23558 · This is a huge speed improvement for destinations with lots of
23559 files
23560
23561 · filter: Add --ignore-case flag (Nick Craig-Wood)
23562
23563 · ncdu: Add remove function (`d' key) (Henning Surmeier)
23564
23565 · rc command
23566
23567 · Add --json flag for structured JSON input (Nick Craig-Wood)
23568
23569 · Add --user and --pass flags and interpret --rc-user, --rc-pass,
23570 --rc-addr (Nick Craig-Wood)
23571
23572 · build
23573
23574 · Require go1.8 or later for compilation (Nick Craig-Wood)
23575
23576 · Enable softfloat on MIPS arch (Scott Edlund)
23577
23578 · Integration test framework revamped with a better report and bet‐
23579 ter retries (Nick Craig-Wood)
23580
23581 · Bug Fixes
23582
23583 · cmd: Make --progress update the stats correctly at the end (Nick
23584 Craig-Wood)
23585
23586 · config: Create config directory on save if it is missing (Nick
23587 Craig-Wood)
23588
23589 · dedupe: Check for existing filename before renaming a dupe file
23590 (ssaqua)
23591
23592 · move: Don’t create directories with --dry-run (Nick Craig-Wood)
23593
23594 · operations: Fix Purge and Rmdirs when dir is not the root (Nick
23595 Craig-Wood)
23596
23597 · serve http/webdav/restic: Ensure rclone exits if the port is in use
23598 (Nick Craig-Wood)
23599
23600 · Mount
23601
23602 · Make --volname work for Windows and macOS (Nick Craig-Wood)
23603
23604 · Azure Blob
23605
23606 · Avoid context deadline exceeded error by setting a large TryTimeout
23607 value (brused27)
23608
23609 · Fix erroneous Rmdir error “directory not empty” (Nick Craig-Wood)
23610
23611 · Wait for up to 60s to create a just deleted container (Nick
23612 Craig-Wood)
23613
23614 · Dropbox
23615
23616 · Add dropbox impersonate support (Jake Coggiano)
23617
23618 · Jottacloud
23619
23620 · Fix bug in --fast-list handing of empty folders (albertony)
23621
23622 · Opendrive
23623
23624 · Fix transfer of files with + and & in (Nick Craig-Wood)
23625
23626 · Fix retries of upload chunks (Nick Craig-Wood)
23627
23628 · S3
23629
23630 · Set ACL for server side copies to that provided by the user (Nick
23631 Craig-Wood)
23632
23633 · Fix role_arn, credential_source, ... (Erik Swanson)
23634
23635 · Add config info for Wasabi’s US-West endpoint (Henry Ptasinski)
23636
23637 · SFTP
23638
23639 · Ensure file hash checking is really disabled (Jon Fautley)
23640
23641 · Swift
23642
23643 · Add pacer for retries to make swift more reliable (Nick Craig-Wood)
23644
23645 · WebDAV
23646
23647 · Add Content-Type to PUT requests (Nick Craig-Wood)
23648
23649 · Fix config parsing so --webdav-user and --webdav-pass flags work
23650 (Nick Craig-Wood)
23651
23652 · Add RFC3339 date format (Ralf Hemberger)
23653
23654 · Yandex
23655
23656 · The yandex backend was re-written (Sebastian Bünger)
23657
23658 · This implements low level retries (Sebastian Bünger)
23659
23660 · Copy, Move, DirMove, PublicLink and About optional interfaces
23661 (Sebastian Bünger)
23662
23663 · Improved general error handling (Sebastian Bünger)
23664
23665 · Removed ListR for now due to inconsistent behaviour (Sebastian
23666 Bünger)
23667
23668 v1.44 - 2018-10-15
23669 · New commands
23670
23671 · serve ftp: Add ftp server (Antoine GIRARD)
23672
23673 · settier: perform storage tier changes on supported remotes
23674 (sandeepkru)
23675
23676 · New Features
23677
23678 · Reworked command line help
23679
23680 · Make default help less verbose (Nick Craig-Wood)
23681
23682 · Split flags up into global and backend flags (Nick Craig-Wood)
23683
23684 · Implement specialised help for flags and backends (Nick
23685 Craig-Wood)
23686
23687 · Show URL of backend help page when starting config (Nick
23688 Craig-Wood)
23689
23690 · stats: Long names now split in center (Joanna Marek)
23691
23692 · Add --log-format flag for more control over log output (dcpu)
23693
23694 · rc: Add support for OPTIONS and basic CORS (frenos)
23695
23696 · stats: show FatalErrors and NoRetryErrors in stats (Cédric Connes)
23697
23698 · Bug Fixes
23699
23700 · Fix -P not ending with a new line (Nick Craig-Wood)
23701
23702 · config: don’t create default config dir when user supplies --config
23703 (albertony)
23704
23705 · Don’t print non-ASCII characters with --progress on windows (Nick
23706 Craig-Wood)
23707
23708 · Correct logs for excluded items (ssaqua)
23709
23710 · Mount
23711
23712 · Remove EXPERIMENTAL tags (Nick Craig-Wood)
23713
23714 · VFS
23715
23716 · Fix race condition detected by serve ftp tests (Nick Craig-Wood)
23717
23718 · Add vfs/poll-interval rc command (Fabian Möller)
23719
23720 · Enable rename for nearly all remotes using server side Move or Copy
23721 (Nick Craig-Wood)
23722
23723 · Reduce directory cache cleared by poll-interval (Fabian Möller)
23724
23725 · Remove EXPERIMENTAL tags (Nick Craig-Wood)
23726
23727 · Local
23728
23729 · Skip bad symlinks in dir listing with -L enabled (Cédric Connes)
23730
23731 · Preallocate files on Windows to reduce fragmentation (Nick
23732 Craig-Wood)
23733
23734 · Preallocate files on linux with fallocate(2) (Nick Craig-Wood)
23735
23736 · Cache
23737
23738 · Add cache/fetch rc function (Fabian Möller)
23739
23740 · Fix worker scale down (Fabian Möller)
23741
23742 · Improve performance by not sending info requests for cached chunks
23743 (dcpu)
23744
23745 · Fix error return value of cache/fetch rc method (Fabian Möller)
23746
23747 · Documentation fix for cache-chunk-total-size (Anagh Kumar Baranwal)
23748
23749 · Preserve leading / in wrapped remote path (Fabian Möller)
23750
23751 · Add plex_insecure option to skip certificate validation (Fabian
23752 Möller)
23753
23754 · Remove entries that no longer exist in the source (dcpu)
23755
23756 · Crypt
23757
23758 · Preserve leading / in wrapped remote path (Fabian Möller)
23759
23760 · Alias
23761
23762 · Fix handling of Windows network paths (Nick Craig-Wood)
23763
23764 · Azure Blob
23765
23766 · Add --azureblob-list-chunk parameter (Santiago Rodríguez)
23767
23768 · Implemented settier command support on azureblob remote. (sandeep‐
23769 kru)
23770
23771 · Work around SDK bug which causes errors for chunk-sized files (Nick
23772 Craig-Wood)
23773
23774 · Box
23775
23776 · Implement link sharing. (Sebastian Bünger)
23777
23778 · Drive
23779
23780 · Add --drive-import-formats - google docs can now be imported (Fabi‐
23781 an Möller)
23782
23783 · Rewrite mime type and extension handling (Fabian Möller)
23784
23785 · Add document links (Fabian Möller)
23786
23787 · Add support for multipart document extensions (Fabian Möller)
23788
23789 · Add support for apps-script to json export (Fabian Möller)
23790
23791 · Fix escaped chars in documents during list (Fabian Möller)
23792
23793 · Add --drive-v2-download-min-size a workaround for slow downloads
23794 (Fabian Möller)
23795
23796 · Improve directory notifications in ChangeNotify (Fabian Möller)
23797
23798 · When listing team drives in config, continue on failure (Nick
23799 Craig-Wood)
23800
23801 · FTP
23802
23803 · Add a small pause after failed upload before deleting file (Nick
23804 Craig-Wood)
23805
23806 · Google Cloud Storage
23807
23808 · Fix service_account_file being ignored (Fabian Möller)
23809
23810 · Jottacloud
23811
23812 · Minor improvement in quota info (omit if unlimited) (albertony)
23813
23814 · Add --fast-list support (albertony)
23815
23816 · Add permanent delete support: --jottacloud-hard-delete (albertony)
23817
23818 · Add link sharing support (albertony)
23819
23820 · Fix handling of reserved characters. (Sebastian Bünger)
23821
23822 · Fix socket leak on Object.Remove (Nick Craig-Wood)
23823
23824 · Onedrive
23825
23826 · Rework to support Microsoft Graph (Cnly)
23827
23828 · NB this will require re-authenticating the remote
23829
23830 · Removed upload cutoff and always do session uploads (Oliver Heyme)
23831
23832 · Use single-part upload for empty files (Cnly)
23833
23834 · Fix new fields not saved when editing old config (Alex Chen)
23835
23836 · Fix sometimes special chars in filenames not replaced (Alex Chen)
23837
23838 · Ignore OneNote files by default (Alex Chen)
23839
23840 · Add link sharing support (jackyzy823)
23841
23842 · S3
23843
23844 · Use custom pacer, to retry operations when reasonable (Craig
23845 Miskell)
23846
23847 · Use configured server-side-encryption and storace class options
23848 when calling CopyObject() (Paul Kohout)
23849
23850 · Make --s3-v2-auth flag (Nick Craig-Wood)
23851
23852 · Fix v2 auth on files with spaces (Nick Craig-Wood)
23853
23854 · Union
23855
23856 · Implement union backend which reads from multiple backends (Felix
23857 Brucker)
23858
23859 · Implement optional interfaces (Move, DirMove, Copy etc) (Nick
23860 Craig-Wood)
23861
23862 · Fix ChangeNotify to support multiple remotes (Fabian Möller)
23863
23864 · Fix --backup-dir on union backend (Nick Craig-Wood)
23865
23866 · WebDAV
23867
23868 · Add another time format (Nick Craig-Wood)
23869
23870 · Add a small pause after failed upload before deleting file (Nick
23871 Craig-Wood)
23872
23873 · Add workaround for missing mtime (buergi)
23874
23875 · Sharepoint: Renew cookies after 12hrs (Henning Surmeier)
23876
23877 · Yandex
23878
23879 · Remove redundant nil checks (teresy)
23880
23881 v1.43.1 - 2018-09-07
23882 Point release to fix hubic and azureblob backends.
23883
23884 · Bug Fixes
23885
23886 · ncdu: Return error instead of log.Fatal in Show (Fabian Möller)
23887
23888 · cmd: Fix crash with --progress and --stats 0 (Nick Craig-Wood)
23889
23890 · docs: Tidy website display (Anagh Kumar Baranwal)
23891
23892 · Azure Blob:
23893
23894 · Fix multi-part uploads. (sandeepkru)
23895
23896 · Hubic
23897
23898 · Fix uploads (Nick Craig-Wood)
23899
23900 · Retry auth fetching if it fails to make hubic more reliable (Nick
23901 Craig-Wood)
23902
23903 v1.43 - 2018-09-01
23904 · New backends
23905
23906 · Jottacloud (Sebastian Bünger)
23907
23908 · New commands
23909
23910 · copyurl: copies a URL to a remote (Denis)
23911
23912 · New Features
23913
23914 · Reworked config for backends (Nick Craig-Wood)
23915
23916 · All backend config can now be supplied by command line, env var
23917 or config file
23918
23919 · Advanced section in the config wizard for the optional items
23920
23921 · A large step towards rclone backends being usable in other go
23922 software
23923
23924 · Allow on the fly remotes with :backend: syntax
23925
23926 · Stats revamp
23927
23928 · Add --progress/-P flag to show interactive progress (Nick
23929 Craig-Wood)
23930
23931 · Show the total progress of the sync in the stats (Nick
23932 Craig-Wood)
23933
23934 · Add --stats-one-line flag for single line stats (Nick Craig-Wood)
23935
23936 · Added weekday schedule into --bwlimit (Mateusz)
23937
23938 · lsjson: Add option to show the original object IDs (Fabian Möller)
23939
23940 · serve webdav: Make Content-Type without reading the file and add
23941 --etag-hash (Nick Craig-Wood)
23942
23943 · build
23944
23945 · Build macOS with native compiler (Nick Craig-Wood)
23946
23947 · Update to use go1.11 for the build (Nick Craig-Wood)
23948
23949 · rc
23950
23951 · Added core/stats to return the stats (reddi1)
23952
23953 · version --check: Prints the current release and beta versions (Nick
23954 Craig-Wood)
23955
23956 · Bug Fixes
23957
23958 · accounting
23959
23960 · Fix time to completion estimates (Nick Craig-Wood)
23961
23962 · Fix moving average speed for file stats (Nick Craig-Wood)
23963
23964 · config: Fix error reading password from piped input (Nick
23965 Craig-Wood)
23966
23967 · move: Fix --delete-empty-src-dirs flag to delete all empty dirs on
23968 move (ishuah)
23969
23970 · Mount
23971
23972 · Implement --daemon-timeout flag for OSXFUSE (Nick Craig-Wood)
23973
23974 · Fix mount --daemon not working with encrypted config (Alex Chen)
23975
23976 · Clip the number of blocks to 2^32-1 on macOS - fixes borg backup
23977 (Nick Craig-Wood)
23978
23979 · VFS
23980
23981 · Enable vfs-read-chunk-size by default (Fabian Möller)
23982
23983 · Add the vfs/refresh rc command (Fabian Möller)
23984
23985 · Add non recursive mode to vfs/refresh rc command (Fabian Möller)
23986
23987 · Try to seek buffer on read only files (Fabian Möller)
23988
23989 · Local
23990
23991 · Fix crash when deprecated --local-no-unicode-normalization is sup‐
23992 plied (Nick Craig-Wood)
23993
23994 · Fix mkdir error when trying to copy files to the root of a drive on
23995 windows (Nick Craig-Wood)
23996
23997 · Cache
23998
23999 · Fix nil pointer deref when using lsjson on cached directory (Nick
24000 Craig-Wood)
24001
24002 · Fix nil pointer deref for occasional crash on playback (Nick
24003 Craig-Wood)
24004
24005 · Crypt
24006
24007 · Fix accounting when checking hashes on upload (Nick Craig-Wood)
24008
24009 · Amazon Cloud Drive
24010
24011 · Make very clear in the docs that rclone has no ACD keys (Nick
24012 Craig-Wood)
24013
24014 · Azure Blob
24015
24016 · Add connection string and SAS URL auth (Nick Craig-Wood)
24017
24018 · List the container to see if it exists (Nick Craig-Wood)
24019
24020 · Port new Azure Blob Storage SDK (sandeepkru)
24021
24022 · Added blob tier, tier between Hot, Cool and Archive. (sandeepkru)
24023
24024 · Remove leading / from paths (Nick Craig-Wood)
24025
24026 · B2
24027
24028 · Support Application Keys (Nick Craig-Wood)
24029
24030 · Remove leading / from paths (Nick Craig-Wood)
24031
24032 · Box
24033
24034 · Fix upload of > 2GB files on 32 bit platforms (Nick Craig-Wood)
24035
24036 · Make --box-commit-retries flag defaulting to 100 to fix large up‐
24037 loads (Nick Craig-Wood)
24038
24039 · Drive
24040
24041 · Add --drive-keep-revision-forever flag (lewapm)
24042
24043 · Handle gdocs when filtering file names in list (Fabian Möller)
24044
24045 · Support using --fast-list for large speedups (Fabian Möller)
24046
24047 · FTP
24048
24049 · Fix Put mkParentDir failed: 521 for BunnyCDN (Nick Craig-Wood)
24050
24051 · Google Cloud Storage
24052
24053 · Fix index out of range error with --fast-list (Nick Craig-Wood)
24054
24055 · Jottacloud
24056
24057 · Fix MD5 error check (Oliver Heyme)
24058
24059 · Handle empty time values (Martin Polden)
24060
24061 · Calculate missing MD5s (Oliver Heyme)
24062
24063 · Docs, fixes and tests for MD5 calculation (Nick Craig-Wood)
24064
24065 · Add optional MimeTyper interface. (Sebastian Bünger)
24066
24067 · Implement optional About interface (for df support). (Sebastian
24068 Bünger)
24069
24070 · Mega
24071
24072 · Wait for events instead of arbitrary sleeping (Nick Craig-Wood)
24073
24074 · Add --mega-hard-delete flag (Nick Craig-Wood)
24075
24076 · Fix failed logins with upper case chars in email (Nick Craig-Wood)
24077
24078 · Onedrive
24079
24080 · Shared folder support (Yoni Jah)
24081
24082 · Implement DirMove (Cnly)
24083
24084 · Fix rmdir sometimes deleting directories with contents (Nick
24085 Craig-Wood)
24086
24087 · Pcloud
24088
24089 · Delete half uploaded files on upload error (Nick Craig-Wood)
24090
24091 · Qingstor
24092
24093 · Remove leading / from paths (Nick Craig-Wood)
24094
24095 · S3
24096
24097 · Fix index out of range error with --fast-list (Nick Craig-Wood)
24098
24099 · Add --s3-force-path-style (Nick Craig-Wood)
24100
24101 · Add support for KMS Key ID (bsteiss)
24102
24103 · Remove leading / from paths (Nick Craig-Wood)
24104
24105 · Swift
24106
24107 · Add storage_policy (Ruben Vandamme)
24108
24109 · Make it so just storage_url or auth_token can be overidden (Nick
24110 Craig-Wood)
24111
24112 · Fix server side copy bug for unusal file names (Nick Craig-Wood)
24113
24114 · Remove leading / from paths (Nick Craig-Wood)
24115
24116 · WebDAV
24117
24118 · Ensure we call MKCOL with a URL with a trailing / for QNAP interop
24119 (Nick Craig-Wood)
24120
24121 · If root ends with / then don’t check if it is a file (Nick
24122 Craig-Wood)
24123
24124 · Don’t accept redirects when reading metadata (Nick Craig-Wood)
24125
24126 · Add bearer token (Macaroon) support for dCache (Nick Craig-Wood)
24127
24128 · Document dCache and Macaroons (Onno Zweers)
24129
24130 · Sharepoint recursion with different depth (Henning)
24131
24132 · Attempt to remove failed uploads (Nick Craig-Wood)
24133
24134 · Yandex
24135
24136 · Fix listing/deleting files in the root (Nick Craig-Wood)
24137
24138 v1.42 - 2018-06-16
24139 · New backends
24140
24141 · OpenDrive (Oliver Heyme, Jakub Karlicek, ncw)
24142
24143 · New commands
24144
24145 · deletefile command (Filip Bartodziej)
24146
24147 · New Features
24148
24149 · copy, move: Copy single files directly, don’t use --files-from
24150 work-around
24151
24152 · this makes them much more efficient
24153
24154 · Implement --max-transfer flag to quit transferring at a limit
24155
24156 · make exit code 8 for --max-transfer exceeded
24157
24158 · copy: copy empty source directories to destination (Ishuah Kariuki)
24159
24160 · check: Add --one-way flag (Kasper Byrdal Nielsen)
24161
24162 · Add siginfo handler for macOS for ctrl-T stats (kubatasiemski)
24163
24164 · rc
24165
24166 · add core/gc to run a garbage collection on demand
24167
24168 · enable go profiling by default on the --rc port
24169
24170 · return error from remote on failure
24171
24172 · lsf
24173
24174 · Add --absolute flag to add a leading / onto path names
24175
24176 · Add --csv flag for compliant CSV output
24177
24178 · Add `m' format specifier to show the MimeType
24179
24180 · Implement `i' format for showing object ID
24181
24182 · lsjson
24183
24184 · Add MimeType to the output
24185
24186 · Add ID field to output to show Object ID
24187
24188 · Add --retries-sleep flag (Benjamin Joseph Dag)
24189
24190 · Oauth tidy up web page and error handling (Henning Surmeier)
24191
24192 · Bug Fixes
24193
24194 · Password prompt output with --log-file fixed for unix (Filip Bar‐
24195 todziej)
24196
24197 · Calculate ModifyWindow each time on the fly to fix various problems
24198 (Stefan Breunig)
24199
24200 · Mount
24201
24202 · Only print “File.rename error” if there actually is an error (Ste‐
24203 fan Breunig)
24204
24205 · Delay rename if file has open writers instead of failing outright
24206 (Stefan Breunig)
24207
24208 · Ensure atexit gets run on interrupt
24209
24210 · macOS enhancements
24211
24212 · Make --noappledouble --noapplexattr
24213
24214 · Add --volname flag and remove special chars from it
24215
24216 · Make Get/List/Set/Remove xattr return ENOSYS for efficiency
24217
24218 · Make --daemon work for macOS without CGO
24219
24220 · VFS
24221
24222 · Add --vfs-read-chunk-size and --vfs-read-chunk-size-limit (Fabian
24223 Möller)
24224
24225 · Fix ChangeNotify for new or changed folders (Fabian Möller)
24226
24227 · Local
24228
24229 · Fix symlink/junction point directory handling under Windows
24230
24231 · NB you will need to add -L to your command line to copy files
24232 with reparse points
24233
24234 · Cache
24235
24236 · Add non cached dirs on notifications (Remus Bunduc)
24237
24238 · Allow root to be expired from rc (Remus Bunduc)
24239
24240 · Clean remaining empty folders from temp upload path (Remus Bunduc)
24241
24242 · Cache lists using batch writes (Remus Bunduc)
24243
24244 · Use secure websockets for HTTPS Plex addresses (John Clayton)
24245
24246 · Reconnect plex websocket on failures (Remus Bunduc)
24247
24248 · Fix panic when running without plex configs (Remus Bunduc)
24249
24250 · Fix root folder caching (Remus Bunduc)
24251
24252 · Crypt
24253
24254 · Check the crypted hash of files when uploading for extra data secu‐
24255 rity
24256
24257 · Dropbox
24258
24259 · Make Dropbox for business folders accessible using an initial / in
24260 the path
24261
24262 · Google Cloud Storage
24263
24264 · Low level retry all operations if necessary
24265
24266 · Google Drive
24267
24268 · Add --drive-acknowledge-abuse to download flagged files
24269
24270 · Add --drive-alternate-export to fix large doc export
24271
24272 · Don’t attempt to choose Team Drives when using rclone config create
24273
24274 · Fix change list polling with team drives
24275
24276 · Fix ChangeNotify for folders (Fabian Möller)
24277
24278 · Fix about (and df on a mount) for team drives
24279
24280 · Onedrive
24281
24282 · Errorhandler for onedrive for business requests (Henning Surmeier)
24283
24284 · S3
24285
24286 · Adjust upload concurrency with --s3-upload-concurrency (themylogin)
24287
24288 · Fix --s3-chunk-size which was always using the minimum
24289
24290 · SFTP
24291
24292 · Add --ssh-path-override flag (Piotr Oleszczyk)
24293
24294 · Fix slow downloads for long latency connections
24295
24296 · Webdav
24297
24298 · Add workarounds for biz.mail.ru
24299
24300 · Ignore Reason-Phrase in status line to fix 4shared (Rodrigo)
24301
24302 · Better error message generation
24303
24304 v1.41 - 2018-04-28
24305 · New backends
24306
24307 · Mega support added
24308
24309 · Webdav now supports SharePoint cookie authentication (hensur)
24310
24311 · New commands
24312
24313 · link: create public link to files and folders (Stefan Breunig)
24314
24315 · about: gets quota info from a remote (a-roussos, ncw)
24316
24317 · hashsum: a generic tool for any hash to produce md5sum like output
24318
24319 · New Features
24320
24321 · lsd: Add -R flag and fix and update docs for all ls commands
24322
24323 · ncdu: added a “refresh” key - CTRL-L (Keith Goldfarb)
24324
24325 · serve restic: Add append-only mode (Steve Kriss)
24326
24327 · serve restic: Disallow overwriting files in append-only mode
24328 (Alexander Neumann)
24329
24330 · serve restic: Print actual listener address (Matt Holt)
24331
24332 · size: Add –json flag (Matthew Holt)
24333
24334 · sync: implement –ignore-errors (Mateusz Pabian)
24335
24336 · dedupe: Add dedupe largest functionality (Richard Yang)
24337
24338 · fs: Extend SizeSuffix to include TB and PB for rclone about
24339
24340 · fs: add –dump goroutines and –dump openfiles for debugging
24341
24342 · rc: implement core/memstats to print internal memory usage info
24343
24344 · rc: new call rc/pid (Michael P. Dubner)
24345
24346 · Compile
24347
24348 · Drop support for go1.6
24349
24350 · Release
24351
24352 · Fix make tarball (Chih-Hsuan Yen)
24353
24354 · Bug Fixes
24355
24356 · filter: fix –min-age and –max-age together check
24357
24358 · fs: limit MaxIdleConns and MaxIdleConnsPerHost in transport
24359
24360 · lsd,lsf: make sure all times we output are in local time
24361
24362 · rc: fix setting bwlimit to unlimited
24363
24364 · rc: take note of the –rc-addr flag too as per the docs
24365
24366 · Mount
24367
24368 · Use About to return the correct disk total/used/free (eg in df)
24369
24370 · Set --attr-timeout default to 1s - fixes:
24371
24372 · rclone using too much memory
24373
24374 · rclone not serving files to samba
24375
24376 · excessive time listing directories
24377
24378 · Fix df -i (upstream fix)
24379
24380 · VFS
24381
24382 · Filter files . and .. from directory listing
24383
24384 · Only make the VFS cache if –vfs-cache-mode > Off
24385
24386 · Local
24387
24388 · Add –local-no-check-updated to disable updated file checks
24389
24390 · Retry remove on Windows sharing violation error
24391
24392 · Cache
24393
24394 · Flush the memory cache after close
24395
24396 · Purge file data on notification
24397
24398 · Always forget parent dir for notifications
24399
24400 · Integrate with Plex websocket
24401
24402 · Add rc cache/stats (seuffert)
24403
24404 · Add info log on notification
24405
24406 · Box
24407
24408 · Fix failure reading large directories - parse file/directory size
24409 as float
24410
24411 · Dropbox
24412
24413 · Fix crypt+obfuscate on dropbox
24414
24415 · Fix repeatedly uploading the same files
24416
24417 · FTP
24418
24419 · Work around strange response from box FTP server
24420
24421 · More workarounds for FTP servers to fix mkParentDir error
24422
24423 · Fix no error on listing non-existent directory
24424
24425 · Google Cloud Storage
24426
24427 · Add service_account_credentials (Matt Holt)
24428
24429 · Detect bucket presence by listing it - minimises permissions needed
24430
24431 · Ignore zero length directory markers
24432
24433 · Google Drive
24434
24435 · Add service_account_credentials (Matt Holt)
24436
24437 · Fix directory move leaving a hardlinked directory behind
24438
24439 · Return proper google errors when Opening files
24440
24441 · When initialized with a filepath, optional features used incorrect
24442 root path (Stefan Breunig)
24443
24444 · HTTP
24445
24446 · Fix sync for servers which don’t return Content-Length in HEAD
24447
24448 · Onedrive
24449
24450 · Add QuickXorHash support for OneDrive for business
24451
24452 · Fix socket leak in multipart session upload
24453
24454 · S3
24455
24456 · Look in S3 named profile files for credentials
24457
24458 · Add --s3-disable-checksum to disable checksum uploading (Chris Re‐
24459 dekop)
24460
24461 · Hierarchical configuration support (Giri Badanahatti)
24462
24463 · Add in config for all the supported S3 providers
24464
24465 · Add One Zone Infrequent Access storage class (Craig Rachel)
24466
24467 · Add –use-server-modtime support (Peter Baumgartner)
24468
24469 · Add –s3-chunk-size option to control multipart uploads
24470
24471 · Ignore zero length directory markers
24472
24473 · SFTP
24474
24475 · Update docs to match code, fix typos and clarify disable_hashcheck
24476 prompt (Michael G. Noll)
24477
24478 · Update docs with Synology quirks
24479
24480 · Fail soft with a debug on hash failure
24481
24482 · Swift
24483
24484 · Add –use-server-modtime support (Peter Baumgartner)
24485
24486 · Webdav
24487
24488 · Support SharePoint cookie authentication (hensur)
24489
24490 · Strip leading and trailing / off root
24491
24492 v1.40 - 2018-03-19
24493 · New backends
24494
24495 · Alias backend to create aliases for existing remote names (Fabian
24496 Möller)
24497
24498 · New commands
24499
24500 · lsf: list for parsing purposes (Jakub Tasiemski)
24501
24502 · by default this is a simple non recursive list of files and di‐
24503 rectories
24504
24505 · it can be configured to add more info in an easy to parse way
24506
24507 · serve restic: for serving a remote as a Restic REST endpoint
24508
24509 · This enables restic to use any backends that rclone can access
24510
24511 · Thanks Alexander Neumann for help, patches and review
24512
24513 · rc: enable the remote control of a running rclone
24514
24515 · The running rclone must be started with –rc and related flags.
24516
24517 · Currently there is support for bwlimit, and flushing for mount
24518 and cache.
24519
24520 · New Features
24521
24522 · --max-delete flag to add a delete threshold (Bjørn Erik Pedersen)
24523
24524 · All backends now support RangeOption for ranged Open
24525
24526 · cat: Use RangeOption for limited fetches to make more efficient
24527
24528 · cryptcheck: make reading of nonce more efficient with RangeOption
24529
24530 · serve http/webdav/restic
24531
24532 · support SSL/TLS
24533
24534 · add --user --pass and --htpasswd for authentication
24535
24536 · copy/move: detect file size change during copy/move and abort
24537 transfer (ishuah)
24538
24539 · cryptdecode: added option to return encrypted file names. (ishuah)
24540
24541 · lsjson: add --encrypted to show encrypted name (Jakub Tasiemski)
24542
24543 · Add --stats-file-name-length to specify the printed file name
24544 length for stats (Will Gunn)
24545
24546 · Compile
24547
24548 · Code base was shuffled and factored
24549
24550 · backends moved into a backend directory
24551
24552 · large packages split up
24553
24554 · See the CONTRIBUTING.md doc for info as to what lives where now
24555
24556 · Update to using go1.10 as the default go version
24557
24558 · Implement daily full integration tests (https://pub.rclone.org/in‐
24559 tegration-tests/)
24560
24561 · Release
24562
24563 · Include a source tarball and sign it and the binaries
24564
24565 · Sign the git tags as part of the release process
24566
24567 · Add .deb and .rpm packages as part of the build
24568
24569 · Make a beta release for all branches on the main repo (but not pull
24570 requests)
24571
24572 · Bug Fixes
24573
24574 · config: fixes errors on non existing config by loading config file
24575 only on first access
24576
24577 · config: retry saving the config after failure (Mateusz)
24578
24579 · sync: when using --backup-dir don’t delete files if we can’t set
24580 their modtime
24581
24582 · this fixes odd behaviour with Dropbox and --backup-dir
24583
24584 · fshttp: fix idle timeouts for HTTP connections
24585
24586 · serve http: fix serving files with : in - fixes
24587
24588 · Fix --exclude-if-present to ignore directories which it doesn’t
24589 have permission for (Iakov Davydov)
24590
24591 · Make accounting work properly with crypt and b2
24592
24593 · remove --no-traverse flag because it is obsolete
24594
24595 · Mount
24596
24597 · Add --attr-timeout flag to control attribute caching in kernel
24598
24599 · this now defaults to 0 which is correct but less efficient
24600
24601 · see the mount docs (/commands/rclone_mount/#attribute-caching)
24602 for more info
24603
24604 · Add --daemon flag to allow mount to run in the background (ishuah)
24605
24606 · Fix: Return ENOSYS rather than EIO on attempted link
24607
24608 · This fixes FileZilla accessing an rclone mount served over sftp.
24609
24610 · Fix setting modtime twice
24611
24612 · Mount tests now run on CI for Linux (mount & cmount)/Mac/Windows
24613
24614 · Many bugs fixed in the VFS layer - see below
24615
24616 · VFS
24617
24618 · Many fixes for --vfs-cache-mode writes and above
24619
24620 · Update cached copy if we know it has changed (fixes stale data)
24621
24622 · Clean path names before using them in the cache
24623
24624 · Disable cache cleaner if --vfs-cache-poll-interval=0
24625
24626 · Fill and clean the cache immediately on startup
24627
24628 · Fix Windows opening every file when it stats the file
24629
24630 · Fix applying modtime for an open Write Handle
24631
24632 · Fix creation of files when truncating
24633
24634 · Write 0 bytes when flushing unwritten handles to avoid race condi‐
24635 tions in FUSE
24636
24637 · Downgrade “poll-interval is not supported” message to Info
24638
24639 · Make OpenFile and friends return EINVAL if O_RDONLY and O_TRUNC
24640
24641 · Local
24642
24643 · Downgrade “invalid cross-device link: trying copy” to debug
24644
24645 · Make DirMove return fs.ErrorCantDirMove to allow fallback to Copy
24646 for cross device
24647
24648 · Fix race conditions updating the hashes
24649
24650 · Cache
24651
24652 · Add support for polling - cache will update when remote changes on
24653 supported backends
24654
24655 · Reduce log level for Plex api
24656
24657 · Fix dir cache issue
24658
24659 · Implement --cache-db-wait-time flag
24660
24661 · Improve efficiency with RangeOption and RangeSeek
24662
24663 · Fix dirmove with temp fs enabled
24664
24665 · Notify vfs when using temp fs
24666
24667 · Offline uploading
24668
24669 · Remote control support for path flushing
24670
24671 · Amazon cloud drive
24672
24673 · Rclone no longer has any working keys - disable integration tests
24674
24675 · Implement DirChangeNotify to notify cache/vfs/mount of changes
24676
24677 · Azureblob
24678
24679 · Don’t check for bucket/container presense if listing was OK
24680
24681 · this makes rclone do one less request per invocation
24682
24683 · Improve accounting for chunked uploads
24684
24685 · Backblaze B2
24686
24687 · Don’t check for bucket/container presense if listing was OK
24688
24689 · this makes rclone do one less request per invocation
24690
24691 · Box
24692
24693 · Improve accounting for chunked uploads
24694
24695 · Dropbox
24696
24697 · Fix custom oauth client parameters
24698
24699 · Google Cloud Storage
24700
24701 · Don’t check for bucket/container presense if listing was OK
24702
24703 · this makes rclone do one less request per invocation
24704
24705 · Google Drive
24706
24707 · Migrate to api v3 (Fabian Möller)
24708
24709 · Add scope configuration and root folder selection
24710
24711 · Add --drive-impersonate for service accounts
24712
24713 · thanks to everyone who tested, explored and contributed docs
24714
24715 · Add --drive-use-created-date to use created date as modified date
24716 (nbuchanan)
24717
24718 · Request the export formats only when required
24719
24720 · This makes rclone quicker when there are no google docs
24721
24722 · Fix finding paths with latin1 chars (a workaround for a drive bug)
24723
24724 · Fix copying of a single Google doc file
24725
24726 · Fix --drive-auth-owner-only to look in all directories
24727
24728 · HTTP
24729
24730 · Fix handling of directories with & in
24731
24732 · Onedrive
24733
24734 · Removed upload cutoff and always do session uploads
24735
24736 · this stops the creation of multiple versions on business onedrive
24737
24738 · Overwrite object size value with real size when reading file.
24739 (Victor)
24740
24741 · this fixes oddities when onedrive misreports the size of images
24742
24743 · Pcloud
24744
24745 · Remove unused chunked upload flag and code
24746
24747 · Qingstor
24748
24749 · Don’t check for bucket/container presense if listing was OK
24750
24751 · this makes rclone do one less request per invocation
24752
24753 · S3
24754
24755 · Support hashes for multipart files (Chris Redekop)
24756
24757 · Initial support for IBM COS (S3) (Giri Badanahatti)
24758
24759 · Update docs to discourage use of v2 auth with CEPH and others
24760
24761 · Don’t check for bucket/container presense if listing was OK
24762
24763 · this makes rclone do one less request per invocation
24764
24765 · Fix server side copy and set modtime on files with + in
24766
24767 · SFTP
24768
24769 · Add option to disable remote hash check command execution (Jon
24770 Fautley)
24771
24772 · Add --sftp-ask-password flag to prompt for password when needed
24773 (Leo R. Lundgren)
24774
24775 · Add set_modtime configuration option
24776
24777 · Fix following of symlinks
24778
24779 · Fix reading config file outside of Fs setup
24780
24781 · Fix reading $USER in username fallback not $HOME
24782
24783 · Fix running under crontab - Use correct OS way of reading username
24784
24785 · Swift
24786
24787 · Fix refresh of authentication token
24788
24789 · in v1.39 a bug was introduced which ignored new tokens - this
24790 fixes it
24791
24792 · Fix extra HEAD transaction when uploading a new file
24793
24794 · Don’t check for bucket/container presense if listing was OK
24795
24796 · this makes rclone do one less request per invocation
24797
24798 · Webdav
24799
24800 · Add new time formats to support mydrive.ch and others
24801
24802 v1.39 - 2017-12-23
24803 · New backends
24804
24805 · WebDAV
24806
24807 · tested with nextcloud, owncloud, put.io and others!
24808
24809 · Pcloud
24810
24811 · cache - wraps a cache around other backends (Remus Bunduc)
24812
24813 · useful in combination with mount
24814
24815 · NB this feature is in beta so use with care
24816
24817 · New commands
24818
24819 · serve command with subcommands:
24820
24821 · serve webdav: this implements a webdav server for any rclone re‐
24822 mote.
24823
24824 · serve http: command to serve a remote over HTTP
24825
24826 · config: add sub commands for full config file management
24827
24828 · create/delete/dump/edit/file/password/providers/show/update
24829
24830 · touch: to create or update the timestamp of a file (Jakub Tasiems‐
24831 ki)
24832
24833 · New Features
24834
24835 · curl install for rclone (Filip Bartodziej)
24836
24837 · –stats now shows percentage, size, rate and ETA in condensed form
24838 (Ishuah Kariuki)
24839
24840 · –exclude-if-present to exclude a directory if a file is present
24841 (Iakov Davydov)
24842
24843 · rmdirs: add –leave-root flag (lewpam)
24844
24845 · move: add –delete-empty-src-dirs flag to remove dirs after move
24846 (Ishuah Kariuki)
24847
24848 · Add –dump flag, introduce –dump requests, responses and remove
24849 –dump-auth, –dump-filters
24850
24851 · Obscure X-Auth-Token: from headers when dumping too
24852
24853 · Document and implement exit codes for different failure modes
24854 (Ishuah Kariuki)
24855
24856 · Compile
24857
24858 · Bug Fixes
24859
24860 · Retry lots more different types of errors to make multipart trans‐
24861 fers more reliable
24862
24863 · Save the config before asking for a token, fixes disappearing oauth
24864 config
24865
24866 · Warn the user if –include and –exclude are used together (Ernest
24867 Borowski)
24868
24869 · Fix duplicate files (eg on Google drive) causing spurious copies
24870
24871 · Allow trailing and leading whitespace for passwords (Jason Rose)
24872
24873 · ncdu: fix crashes on empty directories
24874
24875 · rcat: fix goroutine leak
24876
24877 · moveto/copyto: Fix to allow copying to the same name
24878
24879 · Mount
24880
24881 · –vfs-cache mode to make writes into mounts more reliable.
24882
24883 · this requires caching files on the disk (see –cache-dir)
24884
24885 · As this is a new feature, use with care
24886
24887 · Use sdnotify to signal systemd the mount is ready (Fabian Möller)
24888
24889 · Check if directory is not empty before mounting (Ernest Borowski)
24890
24891 · Local
24892
24893 · Add error message for cross file system moves
24894
24895 · Fix equality check for times
24896
24897 · Dropbox
24898
24899 · Rework multipart upload
24900
24901 · buffer the chunks when uploading large files so they can be re‐
24902 tried
24903
24904 · change default chunk size to 48MB now we are buffering them in
24905 memory
24906
24907 · retry every error after the first chunk is done successfully
24908
24909 · Fix error when renaming directories
24910
24911 · Swift
24912
24913 · Fix crash on bad authentication
24914
24915 · Google Drive
24916
24917 · Add service account support (Tim Cooijmans)
24918
24919 · S3
24920
24921 · Make it work properly with Digital Ocean Spaces (Andrew
24922 Starr-Bochicchio)
24923
24924 · Fix crash if a bad listing is received
24925
24926 · Add support for ECS task IAM roles (David Minor)
24927
24928 · Backblaze B2
24929
24930 · Fix multipart upload retries
24931
24932 · Fix –hard-delete to make it work 100% of the time
24933
24934 · Swift
24935
24936 · Allow authentication with storage URL and auth key (Giovanni Pizzi)
24937
24938 · Add new fields for swift configuration to support IBM Bluemix Swift
24939 (Pierre Carlson)
24940
24941 · Add OS_TENANT_ID and OS_USER_ID to config
24942
24943 · Allow configs with user id instead of user name
24944
24945 · Check if swift segments container exists before creating (John
24946 Leach)
24947
24948 · Fix memory leak in swift transfers (upstream fix)
24949
24950 · SFTP
24951
24952 · Add option to enable the use of aes128-cbc cipher (Jon Fautley)
24953
24954 · Amazon cloud drive
24955
24956 · Fix download of large files failing with “Only one auth mechanism
24957 allowed”
24958
24959 · crypt
24960
24961 · Option to encrypt directory names or leave them intact
24962
24963 · Implement DirChangeNotify (Fabian Möller)
24964
24965 · onedrive
24966
24967 · Add option to choose resourceURL during setup of OneDrive Business
24968 account if more than one is available for user
24969
24970 v1.38 - 2017-09-30
24971 · New backends
24972
24973 · Azure Blob Storage (thanks Andrei Dragomir)
24974
24975 · Box
24976
24977 · Onedrive for Business (thanks Oliver Heyme)
24978
24979 · QingStor from QingCloud (thanks wuyu)
24980
24981 · New commands
24982
24983 · rcat - read from standard input and stream upload
24984
24985 · tree - shows a nicely formatted recursive listing
24986
24987 · cryptdecode - decode crypted file names (thanks ishuah)
24988
24989 · config show - print the config file
24990
24991 · config file - print the config file location
24992
24993 · New Features
24994
24995 · Empty directories are deleted on sync
24996
24997 · dedupe - implement merging of duplicate directories
24998
24999 · check and cryptcheck made more consistent and use less memory
25000
25001 · cleanup for remaining remotes (thanks ishuah)
25002
25003 · --immutable for ensuring that files don’t change (thanks Jacob Mc‐
25004 Namee)
25005
25006 · --user-agent option (thanks Alex McGrath Kraak)
25007
25008 · --disable flag to disable optional features
25009
25010 · --bind flag for choosing the local addr on outgoing connections
25011
25012 · Support for zsh auto-completion (thanks bpicode)
25013
25014 · Stop normalizing file names but do a normalized compare in sync
25015
25016 · Compile
25017
25018 · Update to using go1.9 as the default go version
25019
25020 · Remove snapd build due to maintenance problems
25021
25022 · Bug Fixes
25023
25024 · Improve retriable error detection which makes multipart uploads
25025 better
25026
25027 · Make check obey --ignore-size
25028
25029 · Fix bwlimit toggle in conjunction with schedules (thanks cbruegg)
25030
25031 · config ensures newly written config is on the same mount
25032
25033 · Local
25034
25035 · Revert to copy when moving file across file system boundaries
25036
25037 · --skip-links to suppress symlink warnings (thanks Zhiming Wang)
25038
25039 · Mount
25040
25041 · Re-use rcat internals to support uploads from all remotes
25042
25043 · Dropbox
25044
25045 · Fix “entry doesn’t belong in directory” error
25046
25047 · Stop using deprecated API methods
25048
25049 · Swift
25050
25051 · Fix server side copy to empty container with --fast-list
25052
25053 · Google Drive
25054
25055 · Change the default for --drive-use-trash to true
25056
25057 · S3
25058
25059 · Set session token when using STS (thanks Girish Ramakrishnan)
25060
25061 · Glacier docs and error messages (thanks Jan Varho)
25062
25063 · Read 1000 (not 1024) items in dir listings to fix Wasabi
25064
25065 · Backblaze B2
25066
25067 · Fix SHA1 mismatch when downloading files with no SHA1
25068
25069 · Calculate missing hashes on the fly instead of spooling
25070
25071 · --b2-hard-delete to permanently delete (not hide) files (thanks
25072 John Papandriopoulos)
25073
25074 · Hubic
25075
25076 · Fix creating containers - no longer have to use the default con‐
25077 tainer
25078
25079 · Swift
25080
25081 · Optionally configure from a standard set of OpenStack environment
25082 vars
25083
25084 · Add endpoint_type config
25085
25086 · Google Cloud Storage
25087
25088 · Fix bucket creation to work with limited permission users
25089
25090 · SFTP
25091
25092 · Implement connection pooling for multiple ssh connections
25093
25094 · Limit new connections per second
25095
25096 · Add support for MD5 and SHA1 hashes where available (thanks Chris‐
25097 tian Brüggemann)
25098
25099 · HTTP
25100
25101 · Fix URL encoding issues
25102
25103 · Fix directories with : in
25104
25105 · Fix panic with URL encoded content
25106
25107 v1.37 - 2017-07-22
25108 · New backends
25109
25110 · FTP - thanks to Antonio Messina
25111
25112 · HTTP - thanks to Vasiliy Tolstov
25113
25114 · New commands
25115
25116 · rclone ncdu - for exploring a remote with a text based user inter‐
25117 face.
25118
25119 · rclone lsjson - for listing with a machine readable output
25120
25121 · rclone dbhashsum - to show Dropbox style hashes of files (local or
25122 Dropbox)
25123
25124 · New Features
25125
25126 · Implement –fast-list flag
25127
25128 · This allows remotes to list recursively if they can
25129
25130 · This uses less transactions (important if you pay for them)
25131
25132 · This may or may not be quicker
25133
25134 · This will use more memory as it has to hold the listing in memory
25135
25136 · –old-sync-method deprecated - the remaining uses are covered by
25137 –fast-list
25138
25139 · This involved a major re-write of all the listing code
25140
25141 · Add –tpslimit and –tpslimit-burst to limit transactions per second
25142
25143 · this is useful in conjuction with rclone mount to limit external
25144 apps
25145
25146 · Add –stats-log-level so can see –stats without -v
25147
25148 · Print password prompts to stderr - Hraban Luyat
25149
25150 · Warn about duplicate files when syncing
25151
25152 · Oauth improvements
25153
25154 · allow auth_url and token_url to be set in the config file
25155
25156 · Print redirection URI if using own credentials.
25157
25158 · Don’t Mkdir at the start of sync to save transactions
25159
25160 · Compile
25161
25162 · Update build to go1.8.3
25163
25164 · Require go1.6 for building rclone
25165
25166 · Compile 386 builds with “GO386=387” for maximum compatibility
25167
25168 · Bug Fixes
25169
25170 · Fix menu selection when no remotes
25171
25172 · Config saving reworked to not kill the file if disk gets full
25173
25174 · Don’t delete remote if name does not change while renaming
25175
25176 · moveto, copyto: report transfers and checks as per move and copy
25177
25178 · Local
25179
25180 · Add –local-no-unicode-normalization flag - Bob Potter
25181
25182 · Mount
25183
25184 · Now supported on Windows using cgofuse and WinFsp - thanks to Bill
25185 Zissimopoulos for much help
25186
25187 · Compare checksums on upload/download via FUSE
25188
25189 · Unmount when program ends with SIGINT (Ctrl+C) or SIGTERM - Jérôme
25190 Vizcaino
25191
25192 · On read only open of file, make open pending until first read
25193
25194 · Make –read-only reject modify operations
25195
25196 · Implement ModTime via FUSE for remotes that support it
25197
25198 · Allow modTime to be changed even before all writers are closed
25199
25200 · Fix panic on renames
25201
25202 · Fix hang on errored upload
25203
25204 · Crypt
25205
25206 · Report the name:root as specified by the user
25207
25208 · Add an “obfuscate” option for filename encryption - Stephen Harris
25209
25210 · Amazon Drive
25211
25212 · Fix initialization order for token renewer
25213
25214 · Remove revoked credentials, allow oauth proxy config and update
25215 docs
25216
25217 · B2
25218
25219 · Reduce minimum chunk size to 5MB
25220
25221 · Drive
25222
25223 · Add team drive support
25224
25225 · Reduce bandwidth by adding fields for partial responses - Martin
25226 Kristensen
25227
25228 · Implement –drive-shared-with-me flag to view shared with me files -
25229 Danny Tsai
25230
25231 · Add –drive-trashed-only to read only the files in the trash
25232
25233 · Remove obsolete –drive-full-list
25234
25235 · Add missing seek to start on retries of chunked uploads
25236
25237 · Fix stats accounting for upload
25238
25239 · Convert / in names to a unicode equivalent (/)
25240
25241 · Poll for Google Drive changes when mounted
25242
25243 · OneDrive
25244
25245 · Fix the uploading of files with spaces
25246
25247 · Fix initialization order for token renewer
25248
25249 · Display speeds accurately when uploading - Yoni Jah
25250
25251 · Swap to using http://localhost:53682/ as redirect URL - Michael
25252 Ledin
25253
25254 · Retry on token expired error, reset upload body on retry - Yoni Jah
25255
25256 · Google Cloud Storage
25257
25258 · Add ability to specify location and storage class via config and
25259 command line - thanks gdm85
25260
25261 · Create container if necessary on server side copy
25262
25263 · Increase directory listing chunk to 1000 to increase performance
25264
25265 · Obtain a refresh token for GCS - Steven Lu
25266
25267 · Yandex
25268
25269 · Fix the name reported in log messages (was empty)
25270
25271 · Correct error return for listing empty directory
25272
25273 · Dropbox
25274
25275 · Rewritten to use the v2 API
25276
25277 · Now supports ModTime
25278
25279 · Can only set by uploading the file again
25280
25281 · If you uploaded with an old rclone, rclone may upload every‐
25282 thing again
25283
25284 · Use --size-only or --checksum to avoid this
25285
25286 · Now supports the Dropbox content hashing scheme
25287
25288 · Now supports low level retries
25289
25290 · S3
25291
25292 · Work around eventual consistency in bucket creation
25293
25294 · Create container if necessary on server side copy
25295
25296 · Add us-east-2 (Ohio) and eu-west-2 (London) S3 regions - Zahiar
25297 Ahmed
25298
25299 · Swift, Hubic
25300
25301 · Fix zero length directory markers showing in the subdirectory list‐
25302 ing
25303
25304 · this caused lots of duplicate transfers
25305
25306 · Fix paged directory listings
25307
25308 · this caused duplicate directory errors
25309
25310 · Create container if necessary on server side copy
25311
25312 · Increase directory listing chunk to 1000 to increase performance
25313
25314 · Make sensible error if the user forgets the container
25315
25316 · SFTP
25317
25318 · Add support for using ssh key files
25319
25320 · Fix under Windows
25321
25322 · Fix ssh agent on Windows
25323
25324 · Adapt to latest version of library - Igor Kharin
25325
25326 v1.36 - 2017-03-18
25327 · New Features
25328
25329 · SFTP remote (Jack Schmidt)
25330
25331 · Re-implement sync routine to work a directory at a time reducing
25332 memory usage
25333
25334 · Logging revamped to be more inline with rsync - now much quieter *
25335 -v only shows transfers * -vv is for full debug * –syslog to log to
25336 syslog on capable platforms
25337
25338 · Implement –backup-dir and –suffix
25339
25340 · Implement –track-renames (initial implementation by Bjørn Erik Ped‐
25341 ersen)
25342
25343 · Add time-based bandwidth limits (Lukas Loesche)
25344
25345 · rclone cryptcheck: checks integrity of crypt remotes
25346
25347 · Allow all config file variables and options to be set from environ‐
25348 ment variables
25349
25350 · Add –buffer-size parameter to control buffer size for copy
25351
25352 · Make –delete-after the default
25353
25354 · Add –ignore-checksum flag (fixed by Hisham Zarka)
25355
25356 · rclone check: Add –download flag to check all the data, not just
25357 hashes
25358
25359 · rclone cat: add –head, –tail, –offset, –count and –discard
25360
25361 · rclone config: when choosing from a list, allow the value to be en‐
25362 tered too
25363
25364 · rclone config: allow rename and copy of remotes
25365
25366 · rclone obscure: for generating encrypted passwords for rclone’s
25367 config (T.C. Ferguson)
25368
25369 · Comply with XDG Base Directory specification (Dario Giovannetti)
25370
25371 · this moves the default location of the config file in a backwards
25372 compatible way
25373
25374 · Release changes
25375
25376 · Ubuntu snap support (Dedsec1)
25377
25378 · Compile with go 1.8
25379
25380 · MIPS/Linux big and little endian support
25381
25382 · Bug Fixes
25383
25384 · Fix copyto copying things to the wrong place if the destination dir
25385 didn’t exist
25386
25387 · Fix parsing of remotes in moveto and copyto
25388
25389 · Fix –delete-before deleting files on copy
25390
25391 · Fix –files-from with an empty file copying everything
25392
25393 · Fix sync: don’t update mod times if –dry-run set
25394
25395 · Fix MimeType propagation
25396
25397 · Fix filters to add ** rules to directory rules
25398
25399 · Local
25400
25401 · Implement -L, –copy-links flag to allow rclone to follow symlinks
25402
25403 · Open files in write only mode so rclone can write to an rclone
25404 mount
25405
25406 · Fix unnormalised unicode causing problems reading directories
25407
25408 · Fix interaction between -x flag and –max-depth
25409
25410 · Mount
25411
25412 · Implement proper directory handling (mkdir, rmdir, renaming)
25413
25414 · Make include and exclude filters apply to mount
25415
25416 · Implement read and write async buffers - control with –buffer-size
25417
25418 · Fix fsync on for directories
25419
25420 · Fix retry on network failure when reading off crypt
25421
25422 · Crypt
25423
25424 · Add –crypt-show-mapping to show encrypted file mapping
25425
25426 · Fix crypt writer getting stuck in a loop
25427
25428 · IMPORTANT this bug had the potential to cause data corruption
25429 when
25430
25431 · reading data from a network based remote and
25432
25433 · writing to a crypt on Google Drive
25434
25435 · Use the cryptcheck command to validate your data if you are con‐
25436 cerned
25437
25438 · If syncing two crypt remotes, sync the unencrypted remote
25439
25440 · Amazon Drive
25441
25442 · Fix panics on Move (rename)
25443
25444 · Fix panic on token expiry
25445
25446 · B2
25447
25448 · Fix inconsistent listings and rclone check
25449
25450 · Fix uploading empty files with go1.8
25451
25452 · Constrain memory usage when doing multipart uploads
25453
25454 · Fix upload url not being refreshed properly
25455
25456 · Drive
25457
25458 · Fix Rmdir on directories with trashed files
25459
25460 · Fix “Ignoring unknown object” when downloading
25461
25462 · Add –drive-list-chunk
25463
25464 · Add –drive-skip-gdocs (Károly Oláh)
25465
25466 · OneDrive
25467
25468 · Implement Move
25469
25470 · Fix Copy
25471
25472 · Fix overwrite detection in Copy
25473
25474 · Fix waitForJob to parse errors correctly
25475
25476 · Use token renewer to stop auth errors on long uploads
25477
25478 · Fix uploading empty files with go1.8
25479
25480 · Google Cloud Storage
25481
25482 · Fix depth 1 directory listings
25483
25484 · Yandex
25485
25486 · Fix single level directory listing
25487
25488 · Dropbox
25489
25490 · Normalise the case for single level directory listings
25491
25492 · Fix depth 1 listing
25493
25494 · S3
25495
25496 · Added ca-central-1 region (Jon Yergatian)
25497
25498 v1.35 - 2017-01-02
25499 · New Features
25500
25501 · moveto and copyto commands for choosing a destination name on
25502 copy/move
25503
25504 · rmdirs command to recursively delete empty directories
25505
25506 · Allow repeated –include/–exclude/–filter options
25507
25508 · Only show transfer stats on commands which transfer stuff
25509
25510 · show stats on any command using the --stats flag
25511
25512 · Allow overlapping directories in move when server side dir move is
25513 supported
25514
25515 · Add –stats-unit option - thanks Scott McGillivray
25516
25517 · Bug Fixes
25518
25519 · Fix the config file being overwritten when two rclones are running
25520
25521 · Make rclone lsd obey the filters properly
25522
25523 · Fix compilation on mips
25524
25525 · Fix not transferring files that don’t differ in size
25526
25527 · Fix panic on nil retry/fatal error
25528
25529 · Mount
25530
25531 · Retry reads on error - should help with reliability a lot
25532
25533 · Report the modification times for directories from the remote
25534
25535 · Add bandwidth accounting and limiting (fixes –bwlimit)
25536
25537 · If –stats provided will show stats and which files are transferring
25538
25539 · Support R/W files if truncate is set.
25540
25541 · Implement statfs interface so df works
25542
25543 · Note that write is now supported on Amazon Drive
25544
25545 · Report number of blocks in a file - thanks Stefan Breunig
25546
25547 · Crypt
25548
25549 · Prevent the user pointing crypt at itself
25550
25551 · Fix failed to authenticate decrypted block errors
25552
25553 · these will now return the underlying unexpected EOF instead
25554
25555 · Amazon Drive
25556
25557 · Add support for server side move and directory move - thanks Stefan
25558 Breunig
25559
25560 · Fix nil pointer deref on size attribute
25561
25562 · B2
25563
25564 · Use new prefix and delimiter parameters in directory listings
25565
25566 · This makes –max-depth 1 dir listings as used in mount much faster
25567
25568 · Reauth the account while doing uploads too - should help with token
25569 expiry
25570
25571 · Drive
25572
25573 · Make DirMove more efficient and complain about moving the root
25574
25575 · Create destination directory on Move()
25576
25577 v1.34 - 2016-11-06
25578 · New Features
25579
25580 · Stop single file and --files-from operations iterating through the
25581 source bucket.
25582
25583 · Stop removing failed upload to cloud storage remotes
25584
25585 · Make ContentType be preserved for cloud to cloud copies
25586
25587 · Add support to toggle bandwidth limits via SIGUSR2 - thanks Marco
25588 Paganini
25589
25590 · rclone check shows count of hashes that couldn’t be checked
25591
25592 · rclone listremotes command
25593
25594 · Support linux/arm64 build - thanks Fredrik Fornwall
25595
25596 · Remove Authorization: lines from --dump-headers output
25597
25598 · Bug Fixes
25599
25600 · Ignore files with control characters in the names
25601
25602 · Fix rclone move command
25603
25604 · Delete src files which already existed in dst
25605
25606 · Fix deletion of src file when dst file older
25607
25608 · Fix rclone check on crypted file systems
25609
25610 · Make failed uploads not count as “Transferred”
25611
25612 · Make sure high level retries show with -q
25613
25614 · Use a vendor directory with godep for repeatable builds
25615
25616 · rclone mount - FUSE
25617
25618 · Implement FUSE mount options
25619
25620 · --no-modtime, --debug-fuse, --read-only, --allow-non-empty, --al‐
25621 low-root, --allow-other
25622
25623 · --default-permissions, --write-back-cache, --max-read-ahead,
25624 --umask, --uid, --gid
25625
25626 · Add --dir-cache-time to control caching of directory entries
25627
25628 · Implement seek for files opened for read (useful for video players)
25629
25630 · with -no-seek flag to disable
25631
25632 · Fix crash on 32 bit ARM (alignment of 64 bit counter)
25633
25634 · ...and many more internal fixes and improvements!
25635
25636 · Crypt
25637
25638 · Don’t show encrypted password in configurator to stop confusion
25639
25640 · Amazon Drive
25641
25642 · New wait for upload option --acd-upload-wait-per-gb
25643
25644 · upload timeouts scale by file size and can be disabled
25645
25646 · Add 502 Bad Gateway to list of errors we retry
25647
25648 · Fix overwriting a file with a zero length file
25649
25650 · Fix ACD file size warning limit - thanks Felix Bünemann
25651
25652 · Local
25653
25654 · Unix: implement -x/--one-file-system to stay on a single file sys‐
25655 tem
25656
25657 · thanks Durval Menezes and Luiz Carlos Rumbelsperger Viana
25658
25659 · Windows: ignore the symlink bit on files
25660
25661 · Windows: Ignore directory based junction points
25662
25663 · B2
25664
25665 · Make sure each upload has at least one upload slot - fixes strange
25666 upload stats
25667
25668 · Fix uploads when using crypt
25669
25670 · Fix download of large files (sha1 mismatch)
25671
25672 · Return error when we try to create a bucket which someone else owns
25673
25674 · Update B2 docs with Data usage, and Crypt section - thanks Tomasz
25675 Mazur
25676
25677 · S3
25678
25679 · Command line and config file support for
25680
25681 · Setting/overriding ACL - thanks Radek Senfeld
25682
25683 · Setting storage class - thanks Asko Tamm
25684
25685 · Drive
25686
25687 · Make exponential backoff work exactly as per Google specification
25688
25689 · add .epub, .odp and .tsv as export formats.
25690
25691 · Swift
25692
25693 · Don’t read metadata for directory marker objects
25694
25695 v1.33 - 2016-08-24
25696 · New Features
25697
25698 · Implement encryption
25699
25700 · data encrypted in NACL secretbox format
25701
25702 · with optional file name encryption
25703
25704 · New commands
25705
25706 · rclone mount - implements FUSE mounting of remotes (EXPERIMENTAL)
25707
25708 · works on Linux, FreeBSD and OS X (need testers for the last 2!)
25709
25710 · rclone cat - outputs remote file or files to the terminal
25711
25712 · rclone genautocomplete - command to make a bash completion script
25713 for rclone
25714
25715 · Editing a remote using rclone config now goes through the wizard
25716
25717 · Compile with go 1.7 - this fixes rclone on macOS Sierra and on 386
25718 processors
25719
25720 · Use cobra for sub commands and docs generation
25721
25722 · drive
25723
25724 · Document how to make your own client_id
25725
25726 · s3
25727
25728 · User-configurable Amazon S3 ACL (thanks Radek Šenfeld)
25729
25730 · b2
25731
25732 · Fix stats accounting for upload - no more jumping to 100% done
25733
25734 · On cleanup delete hide marker if it is the current file
25735
25736 · New B2 API endpoint (thanks Per Cederberg)
25737
25738 · Set maximum backoff to 5 Minutes
25739
25740 · onedrive
25741
25742 · Fix URL escaping in file names - eg uploading files with + in them.
25743
25744 · amazon cloud drive
25745
25746 · Fix token expiry during large uploads
25747
25748 · Work around 408 REQUEST_TIMEOUT and 504 GATEWAY_TIMEOUT errors
25749
25750 · local
25751
25752 · Fix filenames with invalid UTF-8 not being uploaded
25753
25754 · Fix problem with some UTF-8 characters on OS X
25755
25756 v1.32 - 2016-07-13
25757 · Backblaze B2
25758
25759 · Fix upload of files large files not in root
25760
25761 v1.31 - 2016-07-13
25762 · New Features
25763
25764 · Reduce memory on sync by about 50%
25765
25766 · Implement –no-traverse flag to stop copy traversing the destination
25767 remote.
25768
25769 · This can be used to reduce memory usage down to the smallest pos‐
25770 sible.
25771
25772 · Useful to copy a small number of files into a large destination
25773 folder.
25774
25775 · Implement cleanup command for emptying trash / removing old ver‐
25776 sions of files
25777
25778 · Currently B2 only
25779
25780 · Single file handling improved
25781
25782 · Now copied with –files-from
25783
25784 · Automatically sets –no-traverse when copying a single file
25785
25786 · Info on using installing with ansible - thanks Stefan Weichinger
25787
25788 · Implement –no-update-modtime flag to stop rclone fixing the remote
25789 modified times.
25790
25791 · Bug Fixes
25792
25793 · Fix move command - stop it running for overlapping Fses - this was
25794 causing data loss.
25795
25796 · Local
25797
25798 · Fix incomplete hashes - this was causing problems for B2.
25799
25800 · Amazon Drive
25801
25802 · Rename Amazon Cloud Drive to Amazon Drive - no changes to config
25803 file needed.
25804
25805 · Swift
25806
25807 · Add support for non-default project domain - thanks Antonio Messi‐
25808 na.
25809
25810 · S3
25811
25812 · Add instructions on how to use rclone with minio.
25813
25814 · Add ap-northeast-2 (Seoul) and ap-south-1 (Mumbai) regions.
25815
25816 · Skip setting the modified time for objects > 5GB as it isn’t possi‐
25817 ble.
25818
25819 · Backblaze B2
25820
25821 · Add –b2-versions flag so old versions can be listed and retreived.
25822
25823 · Treat 403 errors (eg cap exceeded) as fatal.
25824
25825 · Implement cleanup command for deleting old file versions.
25826
25827 · Make error handling compliant with B2 integrations notes.
25828
25829 · Fix handling of token expiry.
25830
25831 · Implement –b2-test-mode to set X-Bz-Test-Mode header.
25832
25833 · Set cutoff for chunked upload to 200MB as per B2 guidelines.
25834
25835 · Make upload multi-threaded.
25836
25837 · Dropbox
25838
25839 · Don’t retry 461 errors.
25840
25841 v1.30 - 2016-06-18
25842 · New Features
25843
25844 · Directory listing code reworked for more features and better error
25845 reporting (thanks to Klaus Post for help). This enables
25846
25847 · Directory include filtering for efficiency
25848
25849 · –max-depth parameter
25850
25851 · Better error reporting
25852
25853 · More to come
25854
25855 · Retry more errors
25856
25857 · Add –ignore-size flag - for uploading images to onedrive
25858
25859 · Log -v output to stdout by default
25860
25861 · Display the transfer stats in more human readable form
25862
25863 · Make 0 size files specifiable with --max-size 0b
25864
25865 · Add b suffix so we can specify bytes in –bwlimit, –min-size etc
25866
25867 · Use “password:” instead of “password>” prompt - thanks Klaus Post
25868 and Leigh Klotz
25869
25870 · Bug Fixes
25871
25872 · Fix retry doing one too many retries
25873
25874 · Local
25875
25876 · Fix problems with OS X and UTF-8 characters
25877
25878 · Amazon Drive
25879
25880 · Check a file exists before uploading to help with 408 Conflict er‐
25881 rors
25882
25883 · Reauth on 401 errors - this has been causing a lot of problems
25884
25885 · Work around spurious 403 errors
25886
25887 · Restart directory listings on error
25888
25889 · Google Drive
25890
25891 · Check a file exists before uploading to help with duplicates
25892
25893 · Fix retry of multipart uploads
25894
25895 · Backblaze B2
25896
25897 · Implement large file uploading
25898
25899 · S3
25900
25901 · Add AES256 server-side encryption for - thanks Justin R. Wilson
25902
25903 · Google Cloud Storage
25904
25905 · Make sure we don’t use conflicting content types on upload
25906
25907 · Add service account support - thanks Michal Witkowski
25908
25909 · Swift
25910
25911 · Add auth version parameter
25912
25913 · Add domain option for openstack (v3 auth) - thanks Fabian Ruff
25914
25915 v1.29 - 2016-04-18
25916 · New Features
25917
25918 · Implement -I, --ignore-times for unconditional upload
25919
25920 · Improve dedupecommand
25921
25922 · Now removes identical copies without asking
25923
25924 · Now obeys --dry-run
25925
25926 · Implement --dedupe-mode for non interactive running
25927
25928 · --dedupe-mode interactive - interactive the default.
25929
25930 · --dedupe-mode skip - removes identical files then skips any‐
25931 thing left.
25932
25933 · --dedupe-mode first - removes identical files then keeps the
25934 first one.
25935
25936 · --dedupe-mode newest - removes identical files then keeps the
25937 newest one.
25938
25939 · --dedupe-mode oldest - removes identical files then keeps the
25940 oldest one.
25941
25942 · --dedupe-mode rename - removes identical files then renames the
25943 rest to be different.
25944
25945 · Bug fixes
25946
25947 · Make rclone check obey the --size-only flag.
25948
25949 · Use “application/octet-stream” if discovered mime type is invalid.
25950
25951 · Fix missing “quit” option when there are no remotes.
25952
25953 · Google Drive
25954
25955 · Increase default chunk size to 8 MB - increases upload speed of big
25956 files
25957
25958 · Speed up directory listings and make more reliable
25959
25960 · Add missing retries for Move and DirMove - increases reliability
25961
25962 · Preserve mime type on file update
25963
25964 · Backblaze B2
25965
25966 · Enable mod time syncing
25967
25968 · This means that B2 will now check modification times
25969
25970 · It will upload new files to update the modification times
25971
25972 · (there isn’t an API to just set the mod time.)
25973
25974 · If you want the old behaviour use --size-only.
25975
25976 · Update API to new version
25977
25978 · Fix parsing of mod time when not in metadata
25979
25980 · Swift/Hubic
25981
25982 · Don’t return an MD5SUM for static large objects
25983
25984 · S3
25985
25986 · Fix uploading files bigger than 50GB
25987
25988 v1.28 - 2016-03-01
25989 · New Features
25990
25991 · Configuration file encryption - thanks Klaus Post
25992
25993 · Improve rclone config adding more help and making it easier to un‐
25994 derstand
25995
25996 · Implement -u/--update so creation times can be used on all remotes
25997
25998 · Implement --low-level-retries flag
25999
26000 · Optionally disable gzip compression on downloads with --no-gzip-en‐
26001 coding
26002
26003 · Bug fixes
26004
26005 · Don’t make directories if --dry-run set
26006
26007 · Fix and document the move command
26008
26009 · Fix redirecting stderr on unix-like OSes when using --log-file
26010
26011 · Fix delete command to wait until all finished - fixes missing
26012 deletes.
26013
26014 · Backblaze B2
26015
26016 · Use one upload URL per go routine fixes more than one upload using
26017 auth token
26018
26019 · Add pacing, retries and reauthentication - fixes token expiry prob‐
26020 lems
26021
26022 · Upload without using a temporary file from local (and remotes which
26023 support SHA1)
26024
26025 · Fix reading metadata for all files when it shouldn’t have been
26026
26027 · Drive
26028
26029 · Fix listing drive documents at root
26030
26031 · Disable copy and move for Google docs
26032
26033 · Swift
26034
26035 · Fix uploading of chunked files with non ASCII characters
26036
26037 · Allow setting of storage_url in the config - thanks Xavier Lucas
26038
26039 · S3
26040
26041 · Allow IAM role and credentials from environment variables - thanks
26042 Brian Stengaard
26043
26044 · Allow low privilege users to use S3 (check if directory exists dur‐
26045 ing Mkdir) - thanks Jakub Gedeon
26046
26047 · Amazon Drive
26048
26049 · Retry on more things to make directory listings more reliable
26050
26051 v1.27 - 2016-01-31
26052 · New Features
26053
26054 · Easier headless configuration with rclone authorize
26055
26056 · Add support for multiple hash types - we now check SHA1 as well as
26057 MD5 hashes.
26058
26059 · delete command which does obey the filters (unlike purge)
26060
26061 · dedupe command to deduplicate a remote. Useful with Google Drive.
26062
26063 · Add --ignore-existing flag to skip all files that exist on destina‐
26064 tion.
26065
26066 · Add --delete-before, --delete-during, --delete-after flags.
26067
26068 · Add --memprofile flag to debug memory use.
26069
26070 · Warn the user about files with same name but different case
26071
26072 · Make --include rules add their implict exclude * at the end of the
26073 filter list
26074
26075 · Deprecate compiling with go1.3
26076
26077 · Amazon Drive
26078
26079 · Fix download of files > 10 GB
26080
26081 · Fix directory traversal (“Next token is expired”) for large direc‐
26082 tory listings
26083
26084 · Remove 409 conflict from error codes we will retry - stops very
26085 long pauses
26086
26087 · Backblaze B2
26088
26089 · SHA1 hashes now checked by rclone core
26090
26091 · Drive
26092
26093 · Add --drive-auth-owner-only to only consider files owned by the us‐
26094 er - thanks Björn Harrtell
26095
26096 · Export Google documents
26097
26098 · Dropbox
26099
26100 · Make file exclusion error controllable with -q
26101
26102 · Swift
26103
26104 · Fix upload from unprivileged user.
26105
26106 · S3
26107
26108 · Fix updating of mod times of files with + in.
26109
26110 · Local
26111
26112 · Add local file system option to disable UNC on Windows.
26113
26114 v1.26 - 2016-01-02
26115 · New Features
26116
26117 · Yandex storage backend - thank you Dmitry Burdeev (“dibu”)
26118
26119 · Implement Backblaze B2 storage backend
26120
26121 · Add –min-age and –max-age flags - thank you Adriano Aurélio
26122 Meirelles
26123
26124 · Make ls/lsl/md5sum/size/check obey includes and excludes
26125
26126 · Fixes
26127
26128 · Fix crash in http logging
26129
26130 · Upload releases to github too
26131
26132 · Swift
26133
26134 · Fix sync for chunked files
26135
26136 · OneDrive
26137
26138 · Re-enable server side copy
26139
26140 · Don’t mask HTTP error codes with JSON decode error
26141
26142 · S3
26143
26144 · Fix corrupting Content-Type on mod time update (thanks Joseph
26145 Spurrier)
26146
26147 v1.25 - 2015-11-14
26148 · New features
26149
26150 · Implement Hubic storage system
26151
26152 · Fixes
26153
26154 · Fix deletion of some excluded files without –delete-excluded
26155
26156 · This could have deleted files unexpectedly on sync
26157
26158 · Always check first with --dry-run!
26159
26160 · Swift
26161
26162 · Stop SetModTime losing metadata (eg X-Object-Manifest)
26163
26164 · This could have caused data loss for files > 5GB in size
26165
26166 · Use ContentType from Object to avoid lookups in listings
26167
26168 · OneDrive
26169
26170 · disable server side copy as it seems to be broken at Microsoft
26171
26172 v1.24 - 2015-11-07
26173 · New features
26174
26175 · Add support for Microsoft OneDrive
26176
26177 · Add --no-check-certificate option to disable server certificate
26178 verification
26179
26180 · Add async readahead buffer for faster transfer of big files
26181
26182 · Fixes
26183
26184 · Allow spaces in remotes and check remote names for validity at cre‐
26185 ation time
26186
26187 · Allow `&' and disallow `:' in Windows filenames.
26188
26189 · Swift
26190
26191 · Ignore directory marker objects where appropriate - allows working
26192 with Hubic
26193
26194 · Don’t delete the container if fs wasn’t at root
26195
26196 · S3
26197
26198 · Don’t delete the bucket if fs wasn’t at root
26199
26200 · Google Cloud Storage
26201
26202 · Don’t delete the bucket if fs wasn’t at root
26203
26204 v1.23 - 2015-10-03
26205 · New features
26206
26207 · Implement rclone size for measuring remotes
26208
26209 · Fixes
26210
26211 · Fix headless config for drive and gcs
26212
26213 · Tell the user they should try again if the webserver method failed
26214
26215 · Improve output of --dump-headers
26216
26217 · S3
26218
26219 · Allow anonymous access to public buckets
26220
26221 · Swift
26222
26223 · Stop chunked operations logging “Failed to read info: Object Not
26224 Found”
26225
26226 · Use Content-Length on uploads for extra reliability
26227
26228 v1.22 - 2015-09-28
26229 · Implement rsync like include and exclude flags
26230
26231 · swift
26232
26233 · Support files > 5GB - thanks Sergey Tolmachev
26234
26235 v1.21 - 2015-09-22
26236 · New features
26237
26238 · Display individual transfer progress
26239
26240 · Make lsl output times in localtime
26241
26242 · Fixes
26243
26244 · Fix allowing user to override credentials again in Drive, GCS and
26245 ACD
26246
26247 · Amazon Drive
26248
26249 · Implement compliant pacing scheme
26250
26251 · Google Drive
26252
26253 · Make directory reads concurrent for increased speed.
26254
26255 v1.20 - 2015-09-15
26256 · New features
26257
26258 · Amazon Drive support
26259
26260 · Oauth support redone - fix many bugs and improve usability
26261
26262 · Use “golang.org/x/oauth2” as oauth libary of choice
26263
26264 · Improve oauth usability for smoother initial signup
26265
26266 · drive, googlecloudstorage: optionally use auto config for the
26267 oauth token
26268
26269 · Implement –dump-headers and –dump-bodies debug flags
26270
26271 · Show multiple matched commands if abbreviation too short
26272
26273 · Implement server side move where possible
26274
26275 · local
26276
26277 · Always use UNC paths internally on Windows - fixes a lot of bugs
26278
26279 · dropbox
26280
26281 · force use of our custom transport which makes timeouts work
26282
26283 · Thanks to Klaus Post for lots of help with this release
26284
26285 v1.19 - 2015-08-28
26286 · New features
26287
26288 · Server side copies for s3/swift/drive/dropbox/gcs
26289
26290 · Move command - uses server side copies if it can
26291
26292 · Implement –retries flag - tries 3 times by default
26293
26294 · Build for plan9/amd64 and solaris/amd64 too
26295
26296 · Fixes
26297
26298 · Make a current version download with a fixed URL for scripting
26299
26300 · Ignore rmdir in limited fs rather than throwing error
26301
26302 · dropbox
26303
26304 · Increase chunk size to improve upload speeds massively
26305
26306 · Issue an error message when trying to upload bad file name
26307
26308 v1.18 - 2015-08-17
26309 · drive
26310
26311 · Add --drive-use-trash flag so rclone trashes instead of deletes
26312
26313 · Add “Forbidden to download” message for files with no downloadURL
26314
26315 · dropbox
26316
26317 · Remove datastore
26318
26319 · This was deprecated and it caused a lot of problems
26320
26321 · Modification times and MD5SUMs no longer stored
26322
26323 · Fix uploading files > 2GB
26324
26325 · s3
26326
26327 · use official AWS SDK from github.com/aws/aws-sdk-go
26328
26329 · NB will most likely require you to delete and recreate remote
26330
26331 · enable multipart upload which enables files > 5GB
26332
26333 · tested with Ceph / RadosGW / S3 emulation
26334
26335 · many thanks to Sam Liston and Brian Haymore at the Utah Center for
26336 High Performance Computing (https://www.chpc.utah.edu/) for a Ceph
26337 test account
26338
26339 · misc
26340
26341 · Show errors when reading the config file
26342
26343 · Do not print stats in quiet mode - thanks Leonid Shalupov
26344
26345 · Add FAQ
26346
26347 · Fix created directories not obeying umask
26348
26349 · Linux installation instructions - thanks Shimon Doodkin
26350
26351 v1.17 - 2015-06-14
26352 · dropbox: fix case insensitivity issues - thanks Leonid Shalupov
26353
26354 v1.16 - 2015-06-09
26355 · Fix uploading big files which was causing timeouts or panics
26356
26357 · Don’t check md5sum after download with –size-only
26358
26359 v1.15 - 2015-06-06
26360 · Add –checksum flag to only discard transfers by MD5SUM - thanks Alex
26361 Couper
26362
26363 · Implement –size-only flag to sync on size not checksum & modtime
26364
26365 · Expand docs and remove duplicated information
26366
26367 · Document rclone’s limitations with directories
26368
26369 · dropbox: update docs about case insensitivity
26370
26371 v1.14 - 2015-05-21
26372 · local: fix encoding of non utf-8 file names - fixes a duplicate file
26373 problem
26374
26375 · drive: docs about rate limiting
26376
26377 · google cloud storage: Fix compile after API change in
26378 “google.golang.org/api/storage/v1”
26379
26380 v1.13 - 2015-05-10
26381 · Revise documentation (especially sync)
26382
26383 · Implement –timeout and –conntimeout
26384
26385 · s3: ignore etags from multipart uploads which aren’t md5sums
26386
26387 v1.12 - 2015-03-15
26388 · drive: Use chunked upload for files above a certain size
26389
26390 · drive: add –drive-chunk-size and –drive-upload-cutoff parameters
26391
26392 · drive: switch to insert from update when a failed copy deletes the
26393 upload
26394
26395 · core: Log duplicate files if they are detected
26396
26397 v1.11 - 2015-03-04
26398 · swift: add region parameter
26399
26400 · drive: fix crash on failed to update remote mtime
26401
26402 · In remote paths, change native directory separators to /
26403
26404 · Add synchronization to ls/lsl/lsd output to stop corruptions
26405
26406 · Ensure all stats/log messages to go stderr
26407
26408 · Add –log-file flag to log everything (including panics) to file
26409
26410 · Make it possible to disable stats printing with –stats=0
26411
26412 · Implement –bwlimit to limit data transfer bandwidth
26413
26414 v1.10 - 2015-02-12
26415 · s3: list an unlimited number of items
26416
26417 · Fix getting stuck in the configurator
26418
26419 v1.09 - 2015-02-07
26420 · windows: Stop drive letters (eg C:) getting mixed up with remotes (eg
26421 drive:)
26422
26423 · local: Fix directory separators on Windows
26424
26425 · drive: fix rate limit exceeded errors
26426
26427 v1.08 - 2015-02-04
26428 · drive: fix subdirectory listing to not list entire drive
26429
26430 · drive: Fix SetModTime
26431
26432 · dropbox: adapt code to recent library changes
26433
26434 v1.07 - 2014-12-23
26435 · google cloud storage: fix memory leak
26436
26437 v1.06 - 2014-12-12
26438 · Fix “Couldn’t find home directory” on OSX
26439
26440 · swift: Add tenant parameter
26441
26442 · Use new location of Google API packages
26443
26444 v1.05 - 2014-08-09
26445 · Improved tests and consequently lots of minor fixes
26446
26447 · core: Fix race detected by go race detector
26448
26449 · core: Fixes after running errcheck
26450
26451 · drive: reset root directory on Rmdir and Purge
26452
26453 · fs: Document that Purger returns error on empty directory, test and
26454 fix
26455
26456 · google cloud storage: fix ListDir on subdirectory
26457
26458 · google cloud storage: re-read metadata in SetModTime
26459
26460 · s3: make reading metadata more reliable to work around eventual con‐
26461 sistency problems
26462
26463 · s3: strip trailing / from ListDir()
26464
26465 · swift: return directories without / in ListDir
26466
26467 v1.04 - 2014-07-21
26468 · google cloud storage: Fix crash on Update
26469
26470 v1.03 - 2014-07-20
26471 · swift, s3, dropbox: fix updated files being marked as corrupted
26472
26473 · Make compile with go 1.1 again
26474
26475 v1.02 - 2014-07-19
26476 · Implement Dropbox remote
26477
26478 · Implement Google Cloud Storage remote
26479
26480 · Verify Md5sums and Sizes after copies
26481
26482 · Remove times from “ls” command - lists sizes only
26483
26484 · Add add “lsl” - lists times and sizes
26485
26486 · Add “md5sum” command
26487
26488 v1.01 - 2014-07-04
26489 · drive: fix transfer of big files using up lots of memory
26490
26491 v1.00 - 2014-07-03
26492 · drive: fix whole second dates
26493
26494 v0.99 - 2014-06-26
26495 · Fix –dry-run not working
26496
26497 · Make compatible with go 1.1
26498
26499 v0.98 - 2014-05-30
26500 · s3: Treat missing Content-Length as 0 for some ceph installations
26501
26502 · rclonetest: add file with a space in
26503
26504 v0.97 - 2014-05-05
26505 · Implement copying of single files
26506
26507 · s3 & swift: support paths inside containers/buckets
26508
26509 v0.96 - 2014-04-24
26510 · drive: Fix multiple files of same name being created
26511
26512 · drive: Use o.Update and fs.Put to optimise transfers
26513
26514 · Add version number, -V and –version
26515
26516 v0.95 - 2014-03-28
26517 · rclone.org: website, docs and graphics
26518
26519 · drive: fix path parsing
26520
26521 v0.94 - 2014-03-27
26522 · Change remote format one last time
26523
26524 · GNU style flags
26525
26526 v0.93 - 2014-03-16
26527 · drive: store token in config file
26528
26529 · cross compile other versions
26530
26531 · set strict permissions on config file
26532
26533 v0.92 - 2014-03-15
26534 · Config fixes and –config option
26535
26536 v0.91 - 2014-03-15
26537 · Make config file
26538
26539 v0.90 - 2013-06-27
26540 · Project named rclone
26541
26542 v0.00 - 2012-11-18
26543 · Project started
26544
26546 Limitations
26547 Directory timestamps aren’t preserved
26548 Rclone doesn’t currently preserve the timestamps of directories. This
26549 is because rclone only really considers objects when syncing.
26550
26551 Rclone struggles with millions of files in a directory
26552 Currently rclone loads each directory entirely into memory before using
26553 it. Since each Rclone object takes 0.5k-1k of memory this can take a
26554 very long time and use an extremely large amount of memory.
26555
26556 Millions of files in a directory tend caused by software writing cloud
26557 storage (eg S3 buckets).
26558
26559 Bucket based remotes and folders
26560 Bucket based remotes (eg S3/GCS/Swift/B2) do not have a concept of di‐
26561 rectories. Rclone therefore cannot create directories in them which
26562 means that empty directories on a bucket based remote will tend to dis‐
26563 appear.
26564
26565 Some software creates empty keys ending in / as directory markers.
26566 Rclone doesn’t do this as it potentially creates more objects and costs
26567 more. It may do in future (probably with a flag).
26568
26569 Bugs
26570 Bugs are stored in rclone’s GitHub project:
26571
26572 · Reported bugs (https://github.com/rclone/rclone/is‐
26573 sues?q=is%3Aopen+is%3Aissue+label%3Abug)
26574
26575 · Known issues (https://github.com/rclone/rclone/is‐
26576 sues?q=is%3Aopen+is%3Aissue+milestone%3A%22Known+Problem%22)
26577
26578 Frequently Asked Questions
26579 Do all cloud storage systems support all rclone commands
26580 Yes they do. All the rclone commands (eg sync, copy etc) will work on
26581 all the remote storage systems.
26582
26583 Can I copy the config from one machine to another
26584 Sure! Rclone stores all of its config in a single file. If you want to
26585 find this file, run rclone config file which will tell you where it is.
26586
26587 See the remote setup docs (https://rclone.org/remote_setup/) for more
26588 info.
26589
26590 How do I configure rclone on a remote / headless box with no browser?
26591 This has now been documented in its own remote setup page
26592 (https://rclone.org/remote_setup/).
26593
26594 Can rclone sync directly from drive to s3
26595 Rclone can sync between two remote cloud storage systems just fine.
26596
26597 Note that it effectively downloads the file and uploads it again, so
26598 the node running rclone would need to have lots of bandwidth.
26599
26600 The syncs would be incremental (on a file by file basis).
26601
26602 Eg
26603
26604 rclone sync drive:Folder s3:bucket
26605
26606 Using rclone from multiple locations at the same time
26607 You can use rclone from multiple places at the same time if you choose
26608 different subdirectory for the output, eg
26609
26610 Server A> rclone sync /tmp/whatever remote:ServerA
26611 Server B> rclone sync /tmp/whatever remote:ServerB
26612
26613 If you sync to the same directory then you should use rclone copy oth‐
26614 erwise the two rclones may delete each others files, eg
26615
26616 Server A> rclone copy /tmp/whatever remote:Backup
26617 Server B> rclone copy /tmp/whatever remote:Backup
26618
26619 The file names you upload from Server A and Server B should be differ‐
26620 ent in this case, otherwise some file systems (eg Drive) may make du‐
26621 plicates.
26622
26623 Why doesn’t rclone support partial transfers / binary diffs like rsync?
26624 Rclone stores each file you transfer as a native object on the remote
26625 cloud storage system. This means that you can see the files you upload
26626 as expected using alternative access methods (eg using the Google Drive
26627 web interface). There is a 1:1 mapping between files on your hard disk
26628 and objects created in the cloud storage system.
26629
26630 Cloud storage systems (at least none I’ve come across yet) don’t sup‐
26631 port partially uploading an object. You can’t take an existing object,
26632 and change some bytes in the middle of it.
26633
26634 It would be possible to make a sync system which stored binary diffs
26635 instead of whole objects like rclone does, but that would break the 1:1
26636 mapping of files on your hard disk to objects in the remote cloud stor‐
26637 age system.
26638
26639 All the cloud storage systems support partial downloads of content, so
26640 it would be possible to make partial downloads work. However to make
26641 this work efficiently this would require storing a significant amount
26642 of metadata, which breaks the desired 1:1 mapping of files to objects.
26643
26644 Can rclone do bi-directional sync?
26645 No, not at present. rclone only does uni-directional sync from A -> B.
26646 It may do in the future though since it has all the primitives - it
26647 just requires writing the algorithm to do it.
26648
26649 Can I use rclone with an HTTP proxy?
26650 Yes. rclone will follow the standard environment variables for prox‐
26651 ies, similar to cURL and other programs.
26652
26653 In general the variables are called http_proxy (for services reached
26654 over http) and https_proxy (for services reached over https). Most
26655 public services will be using https, but you may wish to set both.
26656
26657 The content of the variable is protocol://server:port. The protocol
26658 value is the one used to talk to the proxy server, itself, and is com‐
26659 monly either http or socks5.
26660
26661 Slightly annoyingly, there is no standard for the name; some applica‐
26662 tions may use http_proxy but another one HTTP_PROXY. The Go libraries
26663 used by rclone will try both variations, but you may wish to set all
26664 possibilities. So, on Linux, you may end up with code similar to
26665
26666 export http_proxy=http://proxyserver:12345
26667 export https_proxy=$http_proxy
26668 export HTTP_PROXY=$http_proxy
26669 export HTTPS_PROXY=$http_proxy
26670
26671 The NO_PROXY allows you to disable the proxy for specific hosts. Hosts
26672 must be comma separated, and can contain domains or parts. For in‐
26673 stance “foo.com” also matches “bar.foo.com”.
26674
26675 e.g.
26676
26677 export no_proxy=localhost,127.0.0.0/8,my.host.name
26678 export NO_PROXY=$no_proxy
26679
26680 Note that the ftp backend does not support ftp_proxy yet.
26681
26682 Rclone gives x509: failed to load system roots and no roots provided error
26683 This means that rclone can’t file the SSL root certificates. Likely
26684 you are running rclone on a NAS with a cut-down Linux OS, or possibly
26685 on Solaris.
26686
26687 Rclone (via the Go runtime) tries to load the root certificates from
26688 these places on Linux.
26689
26690 "/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
26691 "/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL
26692 "/etc/ssl/ca-bundle.pem", // OpenSUSE
26693 "/etc/pki/tls/cacert.pem", // OpenELEC
26694
26695 So doing something like this should fix the problem. It also sets the
26696 time which is important for SSL to work properly.
26697
26698 mkdir -p /etc/ssl/certs/
26699 curl -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
26700 ntpclient -s -h pool.ntp.org
26701
26702 The two environment variables SSL_CERT_FILE and SSL_CERT_DIR, mentioned
26703 in the x509 package (https://godoc.org/crypto/x509), provide an addi‐
26704 tional way to provide the SSL root certificates.
26705
26706 Note that you may need to add the --insecure option to the curl command
26707 line if it doesn’t work without.
26708
26709 curl --insecure -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
26710
26711 Rclone gives Failed to load config file: function not implemented error
26712 Likely this means that you are running rclone on Linux version not sup‐
26713 ported by the go runtime, ie earlier than version 2.6.23.
26714
26715 See the system requirements section in the go install docs
26716 (https://golang.org/doc/install) for full details.
26717
26718 All my uploaded docx/xlsx/pptx files appear as archive/zip
26719 This is caused by uploading these files from a Windows computer which
26720 hasn’t got the Microsoft Office suite installed. The easiest way to
26721 fix is to install the Word viewer and the Microsoft Office Compatibili‐
26722 ty Pack for Word, Excel, and PowerPoint 2007 and later versions’ file
26723 formats
26724
26725 tcp lookup some.domain.com no such host
26726 This happens when rclone cannot resolve a domain. Please check that
26727 your DNS setup is generally working, e.g.
26728
26729 # both should print a long list of possible IP addresses
26730 dig www.googleapis.com # resolve using your default DNS
26731 dig www.googleapis.com @8.8.8.8 # resolve with Google's DNS server
26732
26733 If you are using systemd-resolved (default on Arch Linux), ensure it is
26734 at version 233 or higher. Previous releases contain a bug which causes
26735 not all domains to be resolved properly.
26736
26737 Additionally with the GODEBUG=netdns= environment variable the Go re‐
26738 solver decision can be influenced. This also allows to resolve certain
26739 issues with DNS resolution. See the name resolution section in the go
26740 docs (https://golang.org/pkg/net/#hdr-Name_Resolution).
26741
26742 The total size reported in the stats for a sync is wrong and keeps changing
26743 It is likely you have more than 10,000 files that need to be synced.
26744 By default rclone only gets 10,000 files ahead in a sync so as not to
26745 use up too much memory. You can change this default with the
26746 –max-backlog (/docs/#max-backlog-n) flag.
26747
26748 Rclone is using too much memory or appears to have a memory leak
26749 Rclone is written in Go which uses a garbage collector. The default
26750 settings for the garbage collector mean that it runs when the heap size
26751 has doubled.
26752
26753 However it is possible to tune the garbage collector to use less memory
26754 by setting GOGC (https://dave.cheney.net/tag/gogc) to a lower value,
26755 say export GOGC=20. This will make the garbage collector work harder,
26756 reducing memory size at the expense of CPU usage.
26757
26758 The most common cause of rclone using lots of memory is a single direc‐
26759 tory with thousands or millions of files in. Rclone has to load this
26760 entirely into memory as rclone objects. Each rclone object takes
26761 0.5k-1k of memory.
26762
26763 License
26764 This is free software under the terms of MIT the license (check the
26765 COPYING file included with the source code).
26766
26767 Copyright (C) 2019 by Nick Craig-Wood https://www.craig-wood.com/nick/
26768
26769 Permission is hereby granted, free of charge, to any person obtaining a copy
26770 of this software and associated documentation files (the "Software"), to deal
26771 in the Software without restriction, including without limitation the rights
26772 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
26773 copies of the Software, and to permit persons to whom the Software is
26774 furnished to do so, subject to the following conditions:
26775
26776 The above copyright notice and this permission notice shall be included in
26777 all copies or substantial portions of the Software.
26778
26779 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26780 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26781 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26782 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26783 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26784 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26785 THE SOFTWARE.
26786
26787 Authors
26788 · Nick Craig-Wood <nick@craig-wood.com>
26789
26790 Contributors
26791 · Alex Couper <amcouper@gmail.com>
26792
26793 · Leonid Shalupov <leonid@shalupov.com> <shalupov@diverse.org.ru>
26794
26795 · Shimon Doodkin <helpmepro1@gmail.com>
26796
26797 · Colin Nicholson <colin@colinn.com>
26798
26799 · Klaus Post <klauspost@gmail.com>
26800
26801 · Sergey Tolmachev <tolsi.ru@gmail.com>
26802
26803 · Adriano Aurélio Meirelles <adriano@atinge.com>
26804
26805 · C. Bess <cbess@users.noreply.github.com>
26806
26807 · Dmitry Burdeev <dibu28@gmail.com>
26808
26809 · Joseph Spurrier <github@josephspurrier.com>
26810
26811 · Björn Harrtell <bjorn@wololo.org>
26812
26813 · Xavier Lucas <xavier.lucas@corp.ovh.com>
26814
26815 · Werner Beroux <werner@beroux.com>
26816
26817 · Brian Stengaard <brian@stengaard.eu>
26818
26819 · Jakub Gedeon <jgedeon@sofi.com>
26820
26821 · Jim Tittsler <jwt@onjapan.net>
26822
26823 · Michal Witkowski <michal@improbable.io>
26824
26825 · Fabian Ruff <fabian.ruff@sap.com>
26826
26827 · Leigh Klotz <klotz@quixey.com>
26828
26829 · Romain Lapray <lapray.romain@gmail.com>
26830
26831 · Justin R. Wilson <jrw972@gmail.com>
26832
26833 · Antonio Messina <antonio.s.messina@gmail.com>
26834
26835 · Stefan G. Weichinger <office@oops.co.at>
26836
26837 · Per Cederberg <cederberg@gmail.com>
26838
26839 · Radek Šenfeld <rush@logic.cz>
26840
26841 · Fredrik Fornwall <fredrik@fornwall.net>
26842
26843 · Asko Tamm <asko@deekit.net>
26844
26845 · xor-zz <xor@gstocco.com>
26846
26847 · Tomasz Mazur <tmazur90@gmail.com>
26848
26849 · Marco Paganini <paganini@paganini.net>
26850
26851 · Felix Bünemann <buenemann@louis.info>
26852
26853 · Durval Menezes <jmrclone@durval.com>
26854
26855 · Luiz Carlos Rumbelsperger Viana <maxd13_luiz_carlos@hotmail.com>
26856
26857 · Stefan Breunig <stefan-github@yrden.de>
26858
26859 · Alishan Ladhani <ali-l@users.noreply.github.com>
26860
26861 · 0xJAKE <0xJAKE@users.noreply.github.com>
26862
26863 · Thibault Molleman <thibaultmol@users.noreply.github.com>
26864
26865 · Scott McGillivray <scott.mcgillivray@gmail.com>
26866
26867 · Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
26868
26869 · Lukas Loesche <lukas@mesosphere.io>
26870
26871 · emyarod <allllaboutyou@gmail.com>
26872
26873 · T.C. Ferguson <tcf909@gmail.com>
26874
26875 · Brandur <brandur@mutelight.org>
26876
26877 · Dario Giovannetti <dev@dariogiovannetti.net>
26878
26879 · Károly Oláh <okaresz@aol.com>
26880
26881 · Jon Yergatian <jon@macfanatic.ca>
26882
26883 · Jack Schmidt <github@mowsey.org>
26884
26885 · Dedsec1 <Dedsec1@users.noreply.github.com>
26886
26887 · Hisham Zarka <hzarka@gmail.com>
26888
26889 · Jérôme Vizcaino <jerome.vizcaino@gmail.com>
26890
26891 · Mike Tesch <mjt6129@rit.edu>
26892
26893 · Marvin Watson <marvwatson@users.noreply.github.com>
26894
26895 · Danny Tsai <danny8376@gmail.com>
26896
26897 · Yoni Jah <yonjah+git@gmail.com> <yonjah+github@gmail.com>
26898
26899 · Stephen Harris <github@spuddy.org> <sweharris@users.nore‐
26900 ply.github.com>
26901
26902 · Ihor Dvoretskyi <ihor.dvoretskyi@gmail.com>
26903
26904 · Jon Craton <jncraton@gmail.com>
26905
26906 · Hraban Luyat <hraban@0brg.net>
26907
26908 · Michael Ledin <mledin89@gmail.com>
26909
26910 · Martin Kristensen <me@azgul.com>
26911
26912 · Too Much IO <toomuchio@users.noreply.github.com>
26913
26914 · Anisse Astier <anisse@astier.eu>
26915
26916 · Zahiar Ahmed <zahiar@live.com>
26917
26918 · Igor Kharin <igorkharin@gmail.com>
26919
26920 · Bill Zissimopoulos <billziss@navimatics.com>
26921
26922 · Bob Potter <bobby.potter@gmail.com>
26923
26924 · Steven Lu <tacticalazn@gmail.com>
26925
26926 · Sjur Fredriksen <sjurtf@ifi.uio.no>
26927
26928 · Ruwbin <hubus12345@gmail.com>
26929
26930 · Fabian Möller <fabianm88@gmail.com> <f.moeller@nynex.de>
26931
26932 · Edward Q. Bridges <github@eqbridges.com>
26933
26934 · Vasiliy Tolstov <v.tolstov@selfip.ru>
26935
26936 · Harshavardhana <harsha@minio.io>
26937
26938 · sainaen <sainaen@gmail.com>
26939
26940 · gdm85 <gdm85@users.noreply.github.com>
26941
26942 · Yaroslav Halchenko <debian@onerussian.com>
26943
26944 · John Papandriopoulos <jpap@users.noreply.github.com>
26945
26946 · Zhiming Wang <zmwangx@gmail.com>
26947
26948 · Andy Pilate <cubox@cubox.me>
26949
26950 · Oliver Heyme <olihey@googlemail.com> <olihey@users.nore‐
26951 ply.github.com> <de8olihe@lego.com>
26952
26953 · wuyu <wuyu@yunify.com>
26954
26955 · Andrei Dragomir <adragomi@adobe.com>
26956
26957 · Christian Brüggemann <mail@cbruegg.com>
26958
26959 · Alex McGrath Kraak <amkdude@gmail.com>
26960
26961 · bpicode <bjoern.pirnay@googlemail.com>
26962
26963 · Daniel Jagszent <daniel@jagszent.de>
26964
26965 · Josiah White <thegenius2009@gmail.com>
26966
26967 · Ishuah Kariuki <kariuki@ishuah.com> <ishuah91@gmail.com>
26968
26969 · Jan Varho <jan@varho.org>
26970
26971 · Girish Ramakrishnan <girish@cloudron.io>
26972
26973 · LingMan <LingMan@users.noreply.github.com>
26974
26975 · Jacob McNamee <jacobmcnamee@gmail.com>
26976
26977 · jersou <jertux@gmail.com>
26978
26979 · thierry <thierry@substantiel.fr>
26980
26981 · Simon Leinen <simon.leinen@gmail.com> <ubuntu@s3-test.novalocal>
26982
26983 · Dan Dascalescu <ddascalescu+github@gmail.com>
26984
26985 · Jason Rose <jason@jro.io>
26986
26987 · Andrew Starr-Bochicchio <a.starr.b@gmail.com>
26988
26989 · John Leach <john@johnleach.co.uk>
26990
26991 · Corban Raun <craun@instructure.com>
26992
26993 · Pierre Carlson <mpcarl@us.ibm.com>
26994
26995 · Ernest Borowski <er.borowski@gmail.com>
26996
26997 · Remus Bunduc <remus.bunduc@gmail.com>
26998
26999 · Iakov Davydov <iakov.davydov@unil.ch> <dav05.gith@myths.ru>
27000
27001 · Jakub Tasiemski <tasiemski@gmail.com>
27002
27003 · David Minor <dminor@saymedia.com>
27004
27005 · Tim Cooijmans <cooijmans.tim@gmail.com>
27006
27007 · Laurence <liuxy6@gmail.com>
27008
27009 · Giovanni Pizzi <gio.piz@gmail.com>
27010
27011 · Filip Bartodziej <filipbartodziej@gmail.com>
27012
27013 · Jon Fautley <jon@dead.li>
27014
27015 · lewapm <32110057+lewapm@users.noreply.github.com>
27016
27017 · Yassine Imounachen <yassine256@gmail.com>
27018
27019 · Chris Redekop <chris-redekop@users.noreply.github.com> <chris.re‐
27020 dekop@gmail.com>
27021
27022 · Jon Fautley <jon@adenoid.appstal.co.uk>
27023
27024 · Will Gunn <WillGunn@users.noreply.github.com>
27025
27026 · Lucas Bremgartner <lucas@bremis.ch>
27027
27028 · Jody Frankowski <jody.frankowski@gmail.com>
27029
27030 · Andreas Roussos <arouss1980@gmail.com>
27031
27032 · nbuchanan <nbuchanan@utah.gov>
27033
27034 · Durval Menezes <rclone@durval.com>
27035
27036 · Victor <vb-github@viblo.se>
27037
27038 · Mateusz <pabian.mateusz@gmail.com>
27039
27040 · Daniel Loader <spicypixel@gmail.com>
27041
27042 · David0rk <davidork@gmail.com>
27043
27044 · Alexander Neumann <alexander@bumpern.de>
27045
27046 · Giri Badanahatti <gbadanahatti@us.ibm.com@Giris-MacBook-Pro.local>
27047
27048 · Leo R. Lundgren <leo@finalresort.org>
27049
27050 · wolfv <wolfv6@users.noreply.github.com>
27051
27052 · Dave Pedu <dave@davepedu.com>
27053
27054 · Stefan Lindblom <lindblom@spotify.com>
27055
27056 · seuffert <oliver@seuffert.biz>
27057
27058 · gbadanahatti <37121690+gbadanahatti@users.noreply.github.com>
27059
27060 · Keith Goldfarb <barkofdelight@gmail.com>
27061
27062 · Steve Kriss <steve@heptio.com>
27063
27064 · Chih-Hsuan Yen <yan12125@gmail.com>
27065
27066 · Alexander Neumann <fd0@users.noreply.github.com>
27067
27068 · Matt Holt <mholt@users.noreply.github.com>
27069
27070 · Eri Bastos <bastos.eri@gmail.com>
27071
27072 · Michael P. Dubner <pywebmail@list.ru>
27073
27074 · Antoine GIRARD <sapk@users.noreply.github.com>
27075
27076 · Mateusz Piotrowski <mpp302@gmail.com>
27077
27078 · Animosity022 <animosity22@users.noreply.github.com> <earl.tex‐
27079 ter@gmail.com>
27080
27081 · Peter Baumgartner <pete@lincolnloop.com>
27082
27083 · Craig Rachel <craig@craigrachel.com>
27084
27085 · Michael G. Noll <miguno@users.noreply.github.com>
27086
27087 · hensur <me@hensur.de>
27088
27089 · Oliver Heyme <de8olihe@lego.com>
27090
27091 · Richard Yang <richard@yenforyang.com>
27092
27093 · Piotr Oleszczyk <piotr.oleszczyk@gmail.com>
27094
27095 · Rodrigo <rodarima@gmail.com>
27096
27097 · NoLooseEnds <NoLooseEnds@users.noreply.github.com>
27098
27099 · Jakub Karlicek <jakub@karlicek.me>
27100
27101 · John Clayton <john@codemonkeylabs.com>
27102
27103 · Kasper Byrdal Nielsen <byrdal76@gmail.com>
27104
27105 · Benjamin Joseph Dag <bjdag1234@users.noreply.github.com>
27106
27107 · themylogin <themylogin@gmail.com>
27108
27109 · Onno Zweers <onno.zweers@surfsara.nl>
27110
27111 · Jasper Lievisse Adriaanse <jasper@humppa.nl>
27112
27113 · sandeepkru <sandeep.ummadi@gmail.com> <sandeepkru@users.nore‐
27114 ply.github.com>
27115
27116 · HerrH <atomtigerzoo@users.noreply.github.com>
27117
27118 · Andrew <4030760+sparkyman215@users.noreply.github.com>
27119
27120 · dan smith <XX1011@gmail.com>
27121
27122 · Oleg Kovalov <iamolegkovalov@gmail.com>
27123
27124 · Ruben Vandamme <github-com-00ff86@vandamme.email>
27125
27126 · Cnly <minecnly@gmail.com>
27127
27128 · Andres Alvarez <1671935+kir4h@users.noreply.github.com>
27129
27130 · reddi1 <xreddi@gmail.com>
27131
27132 · Matt Tucker <matthewtckr@gmail.com>
27133
27134 · Sebastian Bünger <buengese@gmail.com>
27135
27136 · Martin Polden <mpolden@mpolden.no>
27137
27138 · Alex Chen <Cnly@users.noreply.github.com>
27139
27140 · Denis <deniskovpen@gmail.com>
27141
27142 · bsteiss <35940619+bsteiss@users.noreply.github.com>
27143
27144 · Cédric Connes <cedric.connes@gmail.com>
27145
27146 · Dr. Tobias Quathamer <toddy15@users.noreply.github.com>
27147
27148 · dcpu <42736967+dcpu@users.noreply.github.com>
27149
27150 · Sheldon Rupp <me@shel.io>
27151
27152 · albertony <12441419+albertony@users.noreply.github.com>
27153
27154 · cron410 <cron410@gmail.com>
27155
27156 · Anagh Kumar Baranwal <anaghk.dos@gmail.com> <6824881+darthShad‐
27157 ow@users.noreply.github.com>
27158
27159 · Felix Brucker <felix@felixbrucker.com>
27160
27161 · Santiago Rodríguez <scollazo@users.noreply.github.com>
27162
27163 · Craig Miskell <craig.miskell@fluxfederation.com>
27164
27165 · Antoine GIRARD <sapk@sapk.fr>
27166
27167 · Joanna Marek <joanna.marek@u2i.com>
27168
27169 · frenos <frenos@users.noreply.github.com>
27170
27171 · ssaqua <ssaqua@users.noreply.github.com>
27172
27173 · xnaas <me@xnaas.info>
27174
27175 · Frantisek Fuka <fuka@fuxoft.cz>
27176
27177 · Paul Kohout <pauljkohout@yahoo.com>
27178
27179 · dcpu <43330287+dcpu@users.noreply.github.com>
27180
27181 · jackyzy823 <jackyzy823@gmail.com>
27182
27183 · David Haguenauer <ml@kurokatta.org>
27184
27185 · teresy <hi.teresy@gmail.com>
27186
27187 · buergi <patbuergi@gmx.de>
27188
27189 · Florian Gamboeck <mail@floga.de>
27190
27191 · Ralf Hemberger <10364191+rhemberger@users.noreply.github.com>
27192
27193 · Scott Edlund <sedlund@users.noreply.github.com>
27194
27195 · Erik Swanson <erik@retailnext.net>
27196
27197 · Jake Coggiano <jake@stripe.com>
27198
27199 · brused27 <brused27@noemailaddress>
27200
27201 · Peter Kaminski <kaminski@istori.com>
27202
27203 · Henry Ptasinski <henry@logout.com>
27204
27205 · Alexander <kharkovalexander@gmail.com>
27206
27207 · Garry McNulty <garrmcnu@gmail.com>
27208
27209 · Mathieu Carbou <mathieu.carbou@gmail.com>
27210
27211 · Mark Otway <mark@otway.com>
27212
27213 · William Cocker <37018962+WilliamCocker@users.noreply.github.com>
27214
27215 · François Leurent <131.js@cloudyks.org>
27216
27217 · Arkadius Stefanski <arkste@gmail.com>
27218
27219 · Jay <dev@jaygoel.com>
27220
27221 · andrea rota <a@xelera.eu>
27222
27223 · nicolov <nicolov@users.noreply.github.com>
27224
27225 · Dario Guzik <dario@guzik.com.ar>
27226
27227 · qip <qip@users.noreply.github.com>
27228
27229 · yair@unicorn <yair@unicorn>
27230
27231 · Matt Robinson <brimstone@the.narro.ws>
27232
27233 · kayrus <kay.diam@gmail.com>
27234
27235 · Rémy Léone <remy.leone@gmail.com>
27236
27237 · Wojciech Smigielski <wojciech.hieronim.smigielski@gmail.com>
27238
27239 · weetmuts <oehrstroem@gmail.com>
27240
27241 · Jonathan <vanillajonathan@users.noreply.github.com>
27242
27243 · James Carpenter <orbsmiv@users.noreply.github.com>
27244
27245 · Vince <vince0villamora@gmail.com>
27246
27247 · Nestar47 <47841759+Nestar47@users.noreply.github.com>
27248
27249 · Six <brbsix@gmail.com>
27250
27251 · Alexandru Bumbacea <alexandru.bumbacea@booking.com>
27252
27253 · calisro <robert.calistri@gmail.com>
27254
27255 · Dr.Rx <david.rey@nventive.com>
27256
27257 · marcintustin <marcintustin@users.noreply.github.com>
27258
27259 · jaKa Močnik <jaka@koofr.net>
27260
27261 · Fionera <fionera@fionera.de>
27262
27263 · Dan Walters <dan@walters.io>
27264
27265 · Danil Semelenov <sgtpep@users.noreply.github.com>
27266
27267 · xopez <28950736+xopez@users.noreply.github.com>
27268
27269 · Ben Boeckel <mathstuf@gmail.com>
27270
27271 · Manu <manu@snapdragon.cc>
27272
27273 · Kyle E. Mitchell <kyle@kemitchell.com>
27274
27275 · Gary Kim <gary@garykim.dev>
27276
27277 · Jon <jonathn@github.com>
27278
27279 · Jeff Quinn <jeffrey.quinn@bluevoyant.com>
27280
27281 · Peter Berbec <peter@berbec.com>
27282
27283 · didil <1284255+didil@users.noreply.github.com>
27284
27285 · id01 <gaviniboom@gmail.com>
27286
27287 · Robert Marko <robimarko@gmail.com>
27288
27289 · Philip Harvey <32467456+pharveybattelle@users.noreply.github.com>
27290
27291 · JorisE <JorisE@users.noreply.github.com>
27292
27293 · garry415 <garry.415@gmail.com>
27294
27295 · forgems <forgems@gmail.com>
27296
27297 · Florian Apolloner <florian@apolloner.eu>
27298
27299 · Aleksandar Janković <office@ajankovic.com> <ajankovic@users.nore‐
27300 ply.github.com>
27301
27302 · Maran <maran@protonmail.com>
27303
27304 · nguyenhuuluan434 <nguyenhuuluan434@gmail.com>
27305
27306 · Laura Hausmann <zotan@zotan.pw> <laura@hausmann.dev>
27307
27308 · yparitcher <y@paritcher.com>
27309
27310 · AbelThar <abela.tharen@gmail.com>
27311
27312 · Matti Niemenmaa <matti.niemenmaa+git@iki.fi>
27313
27314 · Russell Davis <russelldavis@users.noreply.github.com>
27315
27316 · Yi FU <yi.fu@tink.se>
27317
27318 · Paul Millar <paul.millar@desy.de>
27319
27320 · justinalin <justinalin@qnap.com>
27321
27322 · EliEron <subanimehd@gmail.com>
27323
27324 · justina777 <chiahuei.lin@gmail.com>
27325
27326 · Chaitanya Bankanhal <bchaitanya15@gmail.com>
27327
27328 · Michał Matczuk <michal@scylladb.com>
27329
27330 · Macavirus <macavirus@zoho.com>
27331
27332 · Abhinav Sharma <abhi18av@users.noreply.github.com>
27333
27334 · ginvine <34869051+ginvine@users.noreply.github.com>
27335
27336 · Patrick Wang <mail6543210@yahoo.com.tw>
27337
27338 · Cenk Alti <cenkalti@gmail.com>
27339
27340 · Andreas Chlupka <andy@chlupka.com>
27341
27342 · Alfonso Montero <amontero@tinet.org>
27343
27344 · Ivan Andreev <ivandeex@gmail.com>
27345
27346 · David Baumgold <david@davidbaumgold.com>
27347
27348 · Lars Lehtonen <lars.lehtonen@gmail.com>
27349
27350 · Matei David <matei.david@gmail.com>
27351
27352 · David <david.bramwell@endemolshine.com>
27353
27354 · Anthony Rusdi <33247310+antrusd@users.noreply.github.com>
27355
27356 · Richard Patel <me@terorie.dev>
27357
27358 · 庄天翼 <zty0826@gmail.com>
27359
27360 · SwitchJS <dev@switchjs.com>
27361
27362 · Raphael <PowershellNinja@users.noreply.github.com>
27363
27364 · Sezal Agrawal <sezalagrawal@gmail.com>
27365
27366 · Tyler <TylerNakamura@users.noreply.github.com>
27367
27368 · Brett Dutro <brett.dutro@gmail.com>
27369
27370 · Vighnesh SK <booterror99@gmail.com>
27371
27372 · Arijit Biswas <dibbyo456@gmail.com>
27373
27374 · Michele Caci <michele.caci@gmail.com>
27375
27376 · AlexandrBoltris <ua2fgb@gmail.com>
27377
27378 · Bryce Larson <blarson@saltstack.com>
27379
27380 · Carlos Ferreyra <crypticmind@gmail.com>
27381
27382 · Saksham Khanna <sakshamkhanna@outlook.com>
27383
27384 · dausruddin <5763466+dausruddin@users.noreply.github.com>
27385
27386 · zero-24 <zero-24@users.noreply.github.com>
27387
27388 · Xiaoxing Ye <ye@xiaoxing.us>
27389
27390 · Barry Muldrey <barry@muldrey.net>
27391
27392 · Sebastian Brandt <sebastian.brandt@friday.de>
27393
27394 · Marco Molteni <marco.molteni@mailbox.org>
27395
27396 · Ankur Gupta <ankur0493@gmail.com>
27397
27398 · Maciej Zimnoch <maciej@scylladb.com>
27399
27400 · anuar45 <serdaliyev.anuar@gmail.com>
27401
27402 · Fernando <ferferga@users.noreply.github.com>
27403
27404 · David Cole <david.cole@sohonet.com>
27405
27406 · Wei He <git@weispot.com>
27407
27408 · Outvi V <19144373+outloudvi@users.noreply.github.com>
27409
27410 · Thomas Kriechbaumer <thomas@kriechbaumer.name>
27411
27412 · Tennix <tennix@users.noreply.github.com>
27413
27414 · Ole Schütt <ole@schuett.name>
27415
27416 · Kuang-che Wu <kcwu@csie.org>
27417
27418 · Thomas Eales <wingsuit@users.noreply.github.com>
27419
27420 · Paul Tinsley <paul.tinsley@vitalsource.com>
27421
27422 · Felix Hungenberg <git@shiftgeist.com>
27423
27424 · Benjamin Richter <github@dev.telepath.de>
27425
27426 · landall <cst_zf@qq.com>
27427
27428 · thestigma <thestigma@gmail.com>
27429
27430 · jtagcat <38327267+jtagcat@users.noreply.github.com>
27431
27432 · Damon Permezel <permezel@me.com>
27433
27434 · boosh <boosh@users.noreply.github.com>
27435
27436 · unbelauscht <58393353+unbelauscht@users.noreply.github.com>
27437
27438 · Motonori IWAMURO <vmi@nifty.com>
27439
27440 · Benjapol Worakan <benwrk@live.com>
27441
27443 Forum
27444 Forum for questions and general discussion:
27445
27446 · https://forum.rclone.org
27447
27448 Gitub project
27449 The project website is at:
27450
27451 · https://github.com/rclone/rclone
27452
27453 There you can file bug reports or contribute pull requests.
27454
27455 Twitter
27456 You can also follow me on twitter for rclone announcements:
27457
27458 · [@njcw](https://twitter.com/njcw)
27459
27460 Email
27461 Or if all else fails or you want to ask something private or confiden‐
27462 tial email Nick Craig-Wood (mailto:nick@craig-wood.com). Please don’t
27463 email me requests for help - those are better directed to the forum -
27464 thanks!
27465
27467 Nick Craig-Wood.
27468
27469
27470
27471User Manual Feb 01, 2020 rclone(1)