1rclone(1) rclone(1)
2
3
4
6 • About rclone
7
8 • What can rclone do for you?
9
10 • What features does rclone have?
11
12 • What providers does rclone support?
13
14 • Download (https://rclone.org/downloads/)
15
16 • Install (https://rclone.org/install/)
17
18 • Donate. (https://rclone.org/donate/)
19
20 About rclone
21 Rclone is a command line program to manage files on cloud storage. It
22 is a feature rich alternative to cloud vendors' web storage interfaces.
23 Over 40 cloud storage products support rclone including S3 object
24 stores, business & consumer file storage services, as well as standard
25 transfer protocols.
26
27 Rclone has powerful cloud equivalents to the unix commands rsync, cp,
28 mv, mount, ls, ncdu, tree, rm, and cat. Rclone's familiar syntax in‐
29 cludes shell pipeline support, and --dry-run protection. It is used at
30 the command line, in scripts or via its API (/rc).
31
32 Users call rclone "The Swiss army knife of cloud storage", and "Tech‐
33 nology indistinguishable from magic".
34
35 Rclone really looks after your data. It preserves timestamps and veri‐
36 fies checksums at all times. Transfers over limited bandwidth; inter‐
37 mittent connections, or subject to quota can be restarted, from the
38 last good file transferred. You can check (https://rclone.org/com‐
39 mands/rclone_check/) the integrity of your files. Where possible,
40 rclone employs server-side transfers to minimise local bandwidth use
41 and transfers from one provider to another without using local disk.
42
43 Virtual backends wrap local and cloud file systems to apply encryption
44 (https://rclone.org/crypt/), caching (https://rclone.org/cache/), com‐
45 pression (https://rclone.org/compress/) chunking
46 (https://rclone.org/chunker/) and joining (https://rclone.org/union/).
47
48 Rclone mounts (https://rclone.org/commands/rclone_mount/) any local,
49 cloud or virtual filesystem as a disk on Windows, macOS, linux and
50 FreeBSD, and also serves these over SFTP (https://rclone.org/com‐
51 mands/rclone_serve_sftp/), HTTP (https://rclone.org/com‐
52 mands/rclone_serve_http/), WebDAV (https://rclone.org/com‐
53 mands/rclone_serve_webdav/), FTP (https://rclone.org/com‐
54 mands/rclone_serve_ftp/) and DLNA (https://rclone.org/com‐
55 mands/rclone_serve_dlna/).
56
57 Rclone is mature, open source software originally inspired by rsync and
58 written in Go (https://golang.org). The friendly support community are
59 familiar with varied use cases. Official Ubuntu, Debian, Fedora, Brew
60 and Chocolatey repos. include rclone. For the latest version down‐
61 loading from rclone.org (https://rclone.org/downloads/) is recommended.
62
63 Rclone is widely used on Linux, Windows and Mac. Third party develop‐
64 ers create innovative backup, restore, GUI and business process solu‐
65 tions using the rclone command line or API.
66
67 Rclone does the heavy lifting of communicating with cloud storage.
68
69 What can rclone do for you?
70 Rclone helps you:
71
72 • Backup (and encrypt) files to cloud storage
73
74 • Restore (and decrypt) files from cloud storage
75
76 • Mirror cloud data to other cloud services or locally
77
78 • Migrate data to cloud, or between cloud storage vendors
79
80 • Mount multiple, encrypted, cached or diverse cloud storage as a disk
81
82 • Analyse and account for data held on cloud storage using lsf
83 (https://rclone.org/commands/rclone_lsf/), ljson
84 (https://rclone.org/commands/rclone_lsjson/), size
85 (https://rclone.org/commands/rclone_size/), ncdu
86 (https://rclone.org/commands/rclone_ncdu/)
87
88 • Union (https://rclone.org/union/) file systems together to present
89 multiple local and/or cloud file systems as one
90
91 Features
92 • Transfers
93
94 • MD5, SHA1 hashes are checked at all times for file integrity
95
96 • Timestamps are preserved on files
97
98 • Operations can be restarted at any time
99
100 • Can be to and from network, e.g. two different cloud providers
101
102 • Can use multi-threaded downloads to local disk
103
104 • Copy (https://rclone.org/commands/rclone_copy/) new or changed files
105 to cloud storage
106
107 • Sync (https://rclone.org/commands/rclone_sync/) (one way) to make a
108 directory identical
109
110 • Move (https://rclone.org/commands/rclone_move/) files to cloud stor‐
111 age deleting the local after verification
112
113 • Check (https://rclone.org/commands/rclone_check/) hashes and for
114 missing/extra files
115
116 • Mount (https://rclone.org/commands/rclone_mount/) your cloud storage
117 as a network disk
118
119 • Serve (https://rclone.org/commands/rclone_serve/) local or remote
120 files over HTTP (https://rclone.org/commands/rclone_serve_http/)/Web‐
121 Dav (https://rclone.org/commands/rclone_serve_webdav/)/FTP
122 (https://rclone.org/commands/rclone_serve_ftp/)/SFTP
123 (https://rclone.org/commands/rclone_serve_sftp/)/dlna
124 (https://rclone.org/commands/rclone_serve_dlna/)
125
126 • Experimental Web based GUI (https://rclone.org/gui/)
127
128 Supported providers
129 (There are many others, built on standard protocols such as WebDAV or
130 S3, that work out of the box.)
131
132 • 1Fichier
133
134 • Alibaba Cloud (Aliyun) Object Storage System (OSS)
135
136 • Amazon Drive
137
138 • Amazon S3
139
140 • Backblaze B2
141
142 • Box
143
144 • Ceph
145
146 • Citrix ShareFile
147
148 • C14
149
150 • DigitalOcean Spaces
151
152 • Dreamhost
153
154 • Dropbox
155
156 • Enterprise File Fabric
157
158 • FTP
159
160 • Google Cloud Storage
161
162 • Google Drive
163
164 • Google Photos
165
166 • HDFS
167
168 • HTTP
169
170 • Hubic
171
172 • Jottacloud
173
174 • IBM COS S3
175
176 • Koofr
177
178 • Mail.ru Cloud
179
180 • Memset Memstore
181
182 • Mega
183
184 • Memory
185
186 • Microsoft Azure Blob Storage
187
188 • Microsoft OneDrive
189
190 • Minio
191
192 • Nextcloud
193
194 • OVH
195
196 • OpenDrive
197
198 • OpenStack Swift
199
200 • Oracle Cloud Storage
201
202 • ownCloud
203
204 • pCloud
205
206 • premiumize.me
207
208 • put.io
209
210 • QingStor
211
212 • Rackspace Cloud Files
213
214 • rsync.net
215
216 • Scaleway
217
218 • Seafile
219
220 • SFTP
221
222 • StackPath
223
224 • SugarSync
225
226 • Tardigrade
227
228 • Tencent Cloud Object Storage (COS)
229
230 • Wasabi
231
232 • WebDAV
233
234 • Yandex Disk
235
236 • Zoho WorkDrive
237
238 • The local filesystem
239
240 Links
241
242 • Home page (https://rclone.org/)
243
244 • GitHub project page for source and bug tracker
245 (https://github.com/rclone/rclone)
246
247 • Rclone Forum (https://forum.rclone.org)
248
249 • Downloads (https://rclone.org/downloads/)
250
252 Rclone is a Go program and comes as a single binary file.
253
254 Quickstart
255 • Download (https://rclone.org/downloads/) the relevant binary.
256
257 • Extract the rclone or rclone.exe binary from the archive
258
259 • Run rclone config to setup. See rclone config docs
260 (https://rclone.org/docs/) for more details.
261
262 See below for some expanded Linux / macOS instructions.
263
264 See the Usage section (https://rclone.org/docs/#usage) of the docs for
265 how to use rclone, or run rclone -h.
266
267 Already installed rclone can be easily updated to the latest version
268 using the rclone selfupdate (https://rclone.org/commands/rclone_selfup‐
269 date/) command.
270
271 Script installation
272 To install rclone on Linux/macOS/BSD systems, run:
273
274 curl https://rclone.org/install.sh | sudo bash
275
276 For beta installation, run:
277
278 curl https://rclone.org/install.sh | sudo bash -s beta
279
280 Note that this script checks the version of rclone installed first and
281 won't re-download if not needed.
282
283 Linux installation from precompiled binary
284 Fetch and unpack
285
286 curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
287 unzip rclone-current-linux-amd64.zip
288 cd rclone-*-linux-amd64
289
290 Copy binary file
291
292 sudo cp rclone /usr/bin/
293 sudo chown root:root /usr/bin/rclone
294 sudo chmod 755 /usr/bin/rclone
295
296 Install manpage
297
298 sudo mkdir -p /usr/local/share/man/man1
299 sudo cp rclone.1 /usr/local/share/man/man1/
300 sudo mandb
301
302 Run rclone config to setup. See rclone config docs
303 (https://rclone.org/docs/) for more details.
304
305 rclone config
306
307 macOS installation with brew
308 brew install rclone
309
310 macOS installation from precompiled binary, using curl
311 To avoid problems with macOS gatekeeper enforcing the binary to be
312 signed and notarized it is enough to download with curl.
313
314 Download the latest version of rclone.
315
316 cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
317
318 Unzip the download and cd to the extracted folder.
319
320 unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
321
322 Move rclone to your $PATH. You will be prompted for your password.
323
324 sudo mkdir -p /usr/local/bin
325 sudo mv rclone /usr/local/bin/
326
327 (the mkdir command is safe to run, even if the directory already ex‐
328 ists).
329
330 Remove the leftover files.
331
332 cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
333
334 Run rclone config to setup. See rclone config docs
335 (https://rclone.org/docs/) for more details.
336
337 rclone config
338
339 macOS installation from precompiled binary, using a web browser
340 When downloading a binary with a web browser, the browser will set the
341 macOS gatekeeper quarantine attribute. Starting from Catalina, when
342 attempting to run rclone, a pop-up will appear saying:
343
344 “rclone” cannot be opened because the developer cannot be verified.
345 macOS cannot verify that this app is free from malware.
346
347 The simplest fix is to run
348
349 xattr -d com.apple.quarantine rclone
350
351 Install with docker
352 The rclone maintains a docker image for rclone (https://hub.dock‐
353 er.com/r/rclone/rclone). These images are autobuilt by docker hub from
354 the rclone source based on a minimal Alpine linux image.
355
356 The :latest tag will always point to the latest stable release. You
357 can use the :beta tag to get the latest build from master. You can al‐
358 so use version tags, e.g. :1.49.1, :1.49 or :1.
359
360 $ docker pull rclone/rclone:latest
361 latest: Pulling from rclone/rclone
362 Digest: sha256:0e0ced72671989bb837fea8e88578b3fc48371aa45d209663683e24cfdaa0e11
363 ...
364 $ docker run --rm rclone/rclone:latest version
365 rclone v1.49.1
366 - os/arch: linux/amd64
367 - go version: go1.12.9
368
369 There are a few command line options to consider when starting an
370 rclone Docker container from the rclone image.
371
372 • You need to mount the host rclone config dir at /config/rclone into
373 the Docker container. Due to the fact that rclone updates tokens in‐
374 side its config file, and that the update process involves a file re‐
375 name, you need to mount the whole host rclone config dir, not just
376 the single host rclone config file.
377
378 • You need to mount a host data dir at /data into the Docker container.
379
380 • By default, the rclone binary inside a Docker container runs with
381 UID=0 (root). As a result, all files created in a run will have
382 UID=0. If your config and data files reside on the host with a
383 non-root UID:GID, you need to pass these on the container start com‐
384 mand line.
385
386 • If you want to access the RC interface (either via the API or the Web
387 UI), it is required to set the --rc-addr to :5572 in order to connect
388 to it from outside the container. An explanation about why this is
389 necessary is present here (https://web.ar‐
390 chive.org/web/20200808071950/https://pythonspeed.com/articles/docker-
391 connection-refused/).
392
393 • NOTE: Users running this container with the docker network set to
394 host should probably set it to listen to localhost only, with
395 127.0.0.1:5572 as the value for --rc-addr
396
397 • It is possible to use rclone mount inside a userspace Docker contain‐
398 er, and expose the resulting fuse mount to the host. The exact dock‐
399 er run options to do that might vary slightly between hosts. See,
400 e.g. the discussion in this thread (https://github.com/moby/moby/is‐
401 sues/9448).
402
403 You also need to mount the host /etc/passwd and /etc/group for fuse
404 to work inside the container.
405
406 Here are some commands tested on an Ubuntu 18.04.3 host:
407
408 # config on host at ~/.config/rclone/rclone.conf
409 # data on host at ~/data
410
411 # make sure the config is ok by listing the remotes
412 docker run --rm \
413 --volume ~/.config/rclone:/config/rclone \
414 --volume ~/data:/data:shared \
415 --user $(id -u):$(id -g) \
416 rclone/rclone \
417 listremotes
418
419 # perform mount inside Docker container, expose result to host
420 mkdir -p ~/data/mount
421 docker run --rm \
422 --volume ~/.config/rclone:/config/rclone \
423 --volume ~/data:/data:shared \
424 --user $(id -u):$(id -g) \
425 --volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
426 --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
427 rclone/rclone \
428 mount dropbox:Photos /data/mount &
429 ls ~/data/mount
430 kill %1
431
432 Install from source
433 Make sure you have at least Go (https://golang.org/) go1.13 installed.
434 Download go (https://golang.org/dl/) if necessary. The latest release
435 is recommended. Then
436
437 git clone https://github.com/rclone/rclone.git
438 cd rclone
439 go build
440 ./rclone version
441
442 This will leave you a checked out version of rclone you can modify and
443 send pull requests with. If you use make instead of go build then the
444 rclone build will have the correct version information in it.
445
446 You can also build the latest stable rclone with:
447
448 go get github.com/rclone/rclone
449
450 or the latest version (equivalent to the beta) with
451
452 go get github.com/rclone/rclone@master
453
454 These will build the binary in $(go env GOPATH)/bin (~/go/bin/rclone by
455 default) after downloading the source to the go module cache. Note -
456 do not use the -u flag here. This causes go to try to update the de‐
457 pendencies that rclone uses and sometimes these don't work with the
458 current version of rclone.
459
460 Installation with Ansible
461 This can be done with Stefan Weichinger's ansible role
462 (https://github.com/stefangweichinger/ansible-rclone).
463
464 Instructions
465
466 1. git clone https://github.com/stefangweichinger/ansible-rclone.git
467 into your local roles-directory
468
469 2. add the role to the hosts you want rclone installed to:
470
471 - hosts: rclone-hosts
472 roles:
473 - rclone
474
475 Configure
476 First, you'll need to configure rclone. As the object storage systems
477 have quite complicated authentication these are kept in a config file.
478 (See the --config entry for how to find the config file and choose its
479 location.)
480
481 The easiest way to make the config is to run rclone with the config op‐
482 tion:
483
484 rclone config
485
486 See the following for detailed instructions for
487
488 • 1Fichier (https://rclone.org/fichier/)
489
490 • Alias (https://rclone.org/alias/)
491
492 • Amazon Drive (https://rclone.org/amazonclouddrive/)
493
494 • Amazon S3 (https://rclone.org/s3/)
495
496 • Backblaze B2 (https://rclone.org/b2/)
497
498 • Box (https://rclone.org/box/)
499
500 • Cache (https://rclone.org/cache/)
501
502 • Chunker (https://rclone.org/chunker/) - transparently splits large
503 files for other remotes
504
505 • Citrix ShareFile (https://rclone.org/sharefile/)
506
507 • Compress (https://rclone.org/compress/)
508
509 • Crypt (https://rclone.org/crypt/) - to encrypt other remotes
510
511 • DigitalOcean Spaces (https://rclone.org/s3/#digitalocean-spaces)
512
513 • Dropbox (https://rclone.org/dropbox/)
514
515 • Enterprise File Fabric (https://rclone.org/filefabric/)
516
517 • FTP (https://rclone.org/ftp/)
518
519 • Google Cloud Storage (https://rclone.org/googlecloudstorage/)
520
521 • Google Drive (https://rclone.org/drive/)
522
523 • Google Photos (https://rclone.org/googlephotos/)
524
525 • HDFS (https://rclone.org/hdfs/)
526
527 • HTTP (https://rclone.org/http/)
528
529 • Hubic (https://rclone.org/hubic/)
530
531 • Jottacloud / GetSky.no (https://rclone.org/jottacloud/)
532
533 • Koofr (https://rclone.org/koofr/)
534
535 • Mail.ru Cloud (https://rclone.org/mailru/)
536
537 • Mega (https://rclone.org/mega/)
538
539 • Memory (https://rclone.org/memory/)
540
541 • Microsoft Azure Blob Storage (https://rclone.org/azureblob/)
542
543 • Microsoft OneDrive (https://rclone.org/onedrive/)
544
545 • OpenStack Swift / Rackspace Cloudfiles / Memset Memstore
546 (https://rclone.org/swift/)
547
548 • OpenDrive (https://rclone.org/opendrive/)
549
550 • Pcloud (https://rclone.org/pcloud/)
551
552 • premiumize.me (https://rclone.org/premiumizeme/)
553
554 • put.io (https://rclone.org/putio/)
555
556 • QingStor (https://rclone.org/qingstor/)
557
558 • Seafile (https://rclone.org/seafile/)
559
560 • SFTP (https://rclone.org/sftp/)
561
562 • SugarSync (https://rclone.org/sugarsync/)
563
564 • Tardigrade (https://rclone.org/tardigrade/)
565
566 • Union (https://rclone.org/union/)
567
568 • WebDAV (https://rclone.org/webdav/)
569
570 • Yandex Disk (https://rclone.org/yandex/)
571
572 • Zoho WorkDrive (https://rclone.org/zoho/)
573
574 • The local filesystem (https://rclone.org/local/)
575
576 Usage
577 Rclone syncs a directory tree from one storage system to another.
578
579 Its syntax is like this
580
581 Syntax: [options] subcommand <parameters> <parameters...>
582
583 Source and destination paths are specified by the name you gave the
584 storage system in the config file then the sub path, e.g. "drive:my‐
585 folder" to look at "myfolder" in Google drive.
586
587 You can define as many storage paths as you like in the config file.
588
589 Please use the -i / --interactive flag while learning rclone to avoid
590 accidental data loss.
591
592 Subcommands
593 rclone uses a system of subcommands. For example
594
595 rclone ls remote:path # lists a remote
596 rclone copy /local/path remote:path # copies /local/path to the remote
597 rclone sync -i /local/path remote:path # syncs /local/path to the remote
598
600 Enter an interactive configuration session.
601
602 Synopsis
603 Enter an interactive configuration session where you can setup new re‐
604 motes and manage existing ones. You may also set or remove a password
605 to protect your configuration.
606
607 rclone config [flags]
608
609 Options
610 -h, --help help for config
611
612 See the global flags page (https://rclone.org/flags/) for global op‐
613 tions not listed here.
614
615 SEE ALSO
616 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
617 commands, flags and backends.
618
619 • rclone config create (https://rclone.org/commands/rclone_config_cre‐
620 ate/) - Create a new remote with name, type and options.
621
622 • rclone config delete (https://rclone.org/commands/rclone_con‐
623 fig_delete/) - Delete an existing remote name.
624
625 • rclone config disconnect (https://rclone.org/commands/rclone_con‐
626 fig_disconnect/) - Disconnects user from remote
627
628 • rclone config dump (https://rclone.org/commands/rclone_config_dump/)
629 - Dump the config file as JSON.
630
631 • rclone config edit (https://rclone.org/commands/rclone_config_edit/)
632 - Enter an interactive configuration session.
633
634 • rclone config file (https://rclone.org/commands/rclone_config_file/)
635 - Show path of configuration file in use.
636
637 • rclone config password (https://rclone.org/commands/rclone_con‐
638 fig_password/) - Update password in an existing remote.
639
640 • rclone config providers (https://rclone.org/commands/rclone_con‐
641 fig_providers/) - List in JSON format all the providers and options.
642
643 • rclone config reconnect (https://rclone.org/commands/rclone_con‐
644 fig_reconnect/) - Re-authenticates user with remote.
645
646 • rclone config show (https://rclone.org/commands/rclone_config_show/)
647 - Print (decrypted) config file, or the config for a single remote.
648
649 • rclone config update (https://rclone.org/commands/rclone_config_up‐
650 date/) - Update options in an existing remote.
651
652 • rclone config userinfo (https://rclone.org/commands/rclone_con‐
653 fig_userinfo/) - Prints info about logged in user of remote.
654
656 Copy files from source to dest, skipping already copied.
657
658 Synopsis
659 Copy the source to the destination. Doesn't transfer unchanged files,
660 testing by size and modification time or MD5SUM. Doesn't delete files
661 from the destination.
662
663 Note that it is always the contents of the directory that is synced,
664 not the directory so when source:path is a directory, it's the contents
665 of source:path that are copied, not the directory name and contents.
666
667 If dest:path doesn't exist, it is created and the source:path contents
668 go there.
669
670 For example
671
672 rclone copy source:sourcepath dest:destpath
673
674 Let's say there are two files in sourcepath
675
676 sourcepath/one.txt
677 sourcepath/two.txt
678
679 This copies them to
680
681 destpath/one.txt
682 destpath/two.txt
683
684 Not to
685
686 destpath/sourcepath/one.txt
687 destpath/sourcepath/two.txt
688
689 If you are familiar with rsync, rclone always works as if you had writ‐
690 ten a trailing / - meaning "copy the contents of this directory". This
691 applies to all commands and whether you are talking about the source or
692 destination.
693
694 See the --no-traverse (https://rclone.org/docs/#no-traverse) option for
695 controlling whether rclone lists the destination directory or not.
696 Supplying this option when copying a small number of files into a large
697 destination can speed transfers up greatly.
698
699 For example, if you have many files in /path/to/src but only a few of
700 them change every day, you can copy all the files which have changed
701 recently very efficiently like this:
702
703 rclone copy --max-age 24h --no-traverse /path/to/src remote:
704
705 Note: Use the -P/--progress flag to view real-time transfer statistics.
706
707 Note: Use the --dry-run or the --interactive/-i flag to test without
708 copying anything.
709
710 rclone copy source:path dest:path [flags]
711
712 Options
713 --create-empty-src-dirs Create empty source dirs on destination after copy
714 -h, --help help for copy
715
716 See the global flags page (https://rclone.org/flags/) for global op‐
717 tions not listed here.
718
719 SEE ALSO
720 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
721 commands, flags and backends.
722
724 Make source and dest identical, modifying destination only.
725
726 Synopsis
727 Sync the source to the destination, changing the destination only.
728 Doesn't transfer unchanged files, testing by size and modification time
729 or MD5SUM. Destination is updated to match source, including deleting
730 files if necessary (except duplicate objects, see below).
731
732 Important: Since this can cause data loss, test first with the
733 --dry-run or the --interactive/-i flag.
734
735 rclone sync -i SOURCE remote:DESTINATION
736
737 Note that files in the destination won't be deleted if there were any
738 errors at any point. Duplicate objects (files with the same name, on
739 those providers that support it) are also not yet handled.
740
741 It is always the contents of the directory that is synced, not the di‐
742 rectory so when source:path is a directory, it's the contents of
743 source:path that are copied, not the directory name and contents. See
744 extended explanation in the copy command above if unsure.
745
746 If dest:path doesn't exist, it is created and the source:path contents
747 go there.
748
749 Note: Use the -P/--progress flag to view real-time transfer statistics
750
751 Note: Use the rclone dedupe command to deal with "Duplicate object/di‐
752 rectory found in source/destination - ignoring" errors. See this forum
753 post (https://forum.rclone.org/t/sync-not-clearing-duplicates/14372)
754 for more info.
755
756 rclone sync source:path dest:path [flags]
757
758 Options
759 --create-empty-src-dirs Create empty source dirs on destination after sync
760 -h, --help help for sync
761
762 See the global flags page (https://rclone.org/flags/) for global op‐
763 tions not listed here.
764
765 SEE ALSO
766 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
767 commands, flags and backends.
768
770 Move files from source to dest.
771
772 Synopsis
773 Moves the contents of the source directory to the destination directo‐
774 ry. Rclone will error if the source and destination overlap and the
775 remote does not support a server-side directory move operation.
776
777 If no filters are in use and if possible this will server-side move
778 source:path into dest:path. After this source:path will no longer ex‐
779 ist.
780
781 Otherwise for each file in source:path selected by the filters (if any)
782 this will move it into dest:path. If possible a server-side move will
783 be used, otherwise it will copy it (server-side if possible) into
784 dest:path then delete the original (if no errors on copy) in
785 source:path.
786
787 If you want to delete empty source directories after move, use the
788 --delete-empty-src-dirs flag.
789
790 See the --no-traverse (https://rclone.org/docs/#no-traverse) option for
791 controlling whether rclone lists the destination directory or not.
792 Supplying this option when moving a small number of files into a large
793 destination can speed transfers up greatly.
794
795 Important: Since this can cause data loss, test first with the
796 --dry-run or the --interactive/-i flag.
797
798 Note: Use the -P/--progress flag to view real-time transfer statistics.
799
800 rclone move source:path dest:path [flags]
801
802 Options
803 --create-empty-src-dirs Create empty source dirs on destination after move
804 --delete-empty-src-dirs Delete empty source dirs after move
805 -h, --help help for move
806
807 See the global flags page (https://rclone.org/flags/) for global op‐
808 tions not listed here.
809
810 SEE ALSO
811 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
812 commands, flags and backends.
813
815 Remove the files in path.
816
817 Synopsis
818 Remove the files in path. Unlike purge it obeys include/exclude fil‐
819 ters so can be used to selectively delete files.
820
821 rclone delete only deletes files but leaves the directory structure
822 alone. If you want to delete a directory and all of its contents use
823 the purge command.
824
825 If you supply the --rmdirs flag, it will remove all empty directories
826 along with it. You can also use the separate command rmdir or rmdirs
827 to delete empty directories only.
828
829 For example, to delete all files bigger than 100MBytes, you may first
830 want to check what would be deleted (use either):
831
832 rclone --min-size 100M lsl remote:path
833 rclone --dry-run --min-size 100M delete remote:path
834
835 Then proceed with the actual delete:
836
837 rclone --min-size 100M delete remote:path
838
839 That reads "delete everything with a minimum size of 100 MB", hence
840 delete all files bigger than 100MBytes.
841
842 Important: Since this can cause data loss, test first with the
843 --dry-run or the --interactive/-i flag.
844
845 rclone delete remote:path [flags]
846
847 Options
848 -h, --help help for delete
849 --rmdirs rmdirs removes empty directories but leaves root intact
850
851 See the global flags page (https://rclone.org/flags/) for global op‐
852 tions not listed here.
853
854 SEE ALSO
855 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
856 commands, flags and backends.
857
859 Remove the path and all of its contents.
860
861 Synopsis
862 Remove the path and all of its contents. Note that this does not obey
863 include/exclude filters - everything will be removed. Use the delete
864 command if you want to selectively delete files. To delete empty di‐
865 rectories only, use command rmdir or rmdirs.
866
867 Important: Since this can cause data loss, test first with the
868 --dry-run or the --interactive/-i flag.
869
870 rclone purge remote:path [flags]
871
872 Options
873 -h, --help help for purge
874
875 See the global flags page (https://rclone.org/flags/) for global op‐
876 tions not listed here.
877
878 SEE ALSO
879 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
880 commands, flags and backends.
881
883 Make the path if it doesn't already exist.
884
885 rclone mkdir remote:path [flags]
886
887 Options
888 -h, --help help for mkdir
889
890 See the global flags page (https://rclone.org/flags/) for global op‐
891 tions not listed here.
892
893 SEE ALSO
894 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
895 commands, flags and backends.
896
898 Remove the empty directory at path.
899
900 Synopsis
901 This removes empty directory given by path. Will not remove the path
902 if it has any objects in it, not even empty subdirectories. Use com‐
903 mand rmdirs (or delete with option --rmdirs) to do that.
904
905 To delete a path and any objects in it, use purge command.
906
907 rclone rmdir remote:path [flags]
908
909 Options
910 -h, --help help for rmdir
911
912 See the global flags page (https://rclone.org/flags/) for global op‐
913 tions not listed here.
914
915 SEE ALSO
916 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
917 commands, flags and backends.
918
920 Checks the files in the source and destination match.
921
922 Synopsis
923 Checks the files in the source and destination match. It compares
924 sizes and hashes (MD5 or SHA1) and logs a report of files which don't
925 match. It doesn't alter the source or destination.
926
927 If you supply the --size-only flag, it will only compare the sizes not
928 the hashes as well. Use this for a quick check.
929
930 If you supply the --download flag, it will download the data from both
931 remotes and check them against each other on the fly. This can be use‐
932 ful for remotes that don't support hashes or if you really want to
933 check all the data.
934
935 If you supply the --one-way flag, it will only check that files in the
936 source match the files in the destination, not the other way around.
937 This means that extra files in the destination that are not in the
938 source will not be detected.
939
940 The --differ, --missing-on-dst, --missing-on-src, --match and --error
941 flags write paths, one per line, to the file name (or stdout if it is
942 -) supplied. What they write is described in the help below. For ex‐
943 ample --differ will write all paths which are present on both the
944 source and destination but different.
945
946 The --combined flag will write a file (or stdout) which contains all
947 file paths with a symbol and then a space and then the path to tell you
948 what happened to it. These are reminiscent of diff files.
949
950 • = path means path was found in source and destination and was identi‐
951 cal
952
953 • - path means path was missing on the source, so only in the destina‐
954 tion
955
956 • + path means path was missing on the destination, so only in the
957 source
958
959 • * path means path was present in source and destination but differ‐
960 ent.
961
962 • ! path means there was an error reading or hashing the source or
963 dest.
964
965 rclone check source:path dest:path [flags]
966
967 Options
968 --combined string Make a combined report of changes to this file
969 --differ string Report all non-matching files to this file
970 --download Check by downloading rather than with hash.
971 --error string Report all files with errors (hashing or reading) to this file
972 -h, --help help for check
973 --match string Report all matching files to this file
974 --missing-on-dst string Report all files missing from the destination to this file
975 --missing-on-src string Report all files missing from the source to this file
976 --one-way Check one way only, source files must exist on remote
977
978 See the global flags page (https://rclone.org/flags/) for global op‐
979 tions not listed here.
980
981 SEE ALSO
982 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
983 commands, flags and backends.
984
986 List the objects in the path with size and path.
987
988 Synopsis
989 Lists the objects in the source path to standard output in a human
990 readable format with size and path. Recurses by default.
991
992 Eg
993
994 $ rclone ls swift:bucket
995 60295 bevajer5jef
996 90613 canole
997 94467 diwogej7
998 37600 fubuwic
999
1000 Any of the filtering options can be applied to this command.
1001
1002 There are several related list commands
1003
1004 • ls to list size and path of objects only
1005
1006 • lsl to list modification time, size and path of objects only
1007
1008 • lsd to list directories only
1009
1010 • lsf to list objects and directories in easy to parse format
1011
1012 • lsjson to list objects and directories in JSON format
1013
1014 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1015 human and machine readable. lsjson is designed to be machine readable.
1016
1017 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1018 recursion.
1019
1020 The other list commands lsd,lsf,lsjson do not recurse by default - use
1021 -R to make them recurse.
1022
1023 Listing a non existent directory will produce an error except for re‐
1024 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1025 bucket based remotes).
1026
1027 rclone ls remote:path [flags]
1028
1029 Options
1030 -h, --help help for ls
1031
1032 See the global flags page (https://rclone.org/flags/) for global op‐
1033 tions not listed here.
1034
1035 SEE ALSO
1036 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1037 commands, flags and backends.
1038
1040 List all directories/containers/buckets in the path.
1041
1042 Synopsis
1043 Lists the directories in the source path to standard output. Does not
1044 recurse by default. Use the -R flag to recurse.
1045
1046 This command lists the total size of the directory (if known, -1 if
1047 not), the modification time (if known, the current time if not), the
1048 number of objects in the directory (if known, -1 if not) and the name
1049 of the directory, Eg
1050
1051 $ rclone lsd swift:
1052 494000 2018-04-26 08:43:20 10000 10000files
1053 65 2018-04-26 08:43:20 1 1File
1054
1055 Or
1056
1057 $ rclone lsd drive:test
1058 -1 2016-10-17 17:41:53 -1 1000files
1059 -1 2017-01-03 14:40:54 -1 2500files
1060 -1 2017-07-08 14:39:28 -1 4000files
1061
1062 If you just want the directory names use "rclone lsf --dirs-only".
1063
1064 Any of the filtering options can be applied to this command.
1065
1066 There are several related list commands
1067
1068 • ls to list size and path of objects only
1069
1070 • lsl to list modification time, size and path of objects only
1071
1072 • lsd to list directories only
1073
1074 • lsf to list objects and directories in easy to parse format
1075
1076 • lsjson to list objects and directories in JSON format
1077
1078 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1079 human and machine readable. lsjson is designed to be machine readable.
1080
1081 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1082 recursion.
1083
1084 The other list commands lsd,lsf,lsjson do not recurse by default - use
1085 -R to make them recurse.
1086
1087 Listing a non existent directory will produce an error except for re‐
1088 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1089 bucket based remotes).
1090
1091 rclone lsd remote:path [flags]
1092
1093 Options
1094 -h, --help help for lsd
1095 -R, --recursive Recurse into the listing.
1096
1097 See the global flags page (https://rclone.org/flags/) for global op‐
1098 tions not listed here.
1099
1100 SEE ALSO
1101 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1102 commands, flags and backends.
1103
1105 List the objects in path with modification time, size and path.
1106
1107 Synopsis
1108 Lists the objects in the source path to standard output in a human
1109 readable format with modification time, size and path. Recurses by de‐
1110 fault.
1111
1112 Eg
1113
1114 $ rclone lsl swift:bucket
1115 60295 2016-06-25 18:55:41.062626927 bevajer5jef
1116 90613 2016-06-25 18:55:43.302607074 canole
1117 94467 2016-06-25 18:55:43.046609333 diwogej7
1118 37600 2016-06-25 18:55:40.814629136 fubuwic
1119
1120 Any of the filtering options can be applied to this command.
1121
1122 There are several related list commands
1123
1124 • ls to list size and path of objects only
1125
1126 • lsl to list modification time, size and path of objects only
1127
1128 • lsd to list directories only
1129
1130 • lsf to list objects and directories in easy to parse format
1131
1132 • lsjson to list objects and directories in JSON format
1133
1134 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1135 human and machine readable. lsjson is designed to be machine readable.
1136
1137 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1138 recursion.
1139
1140 The other list commands lsd,lsf,lsjson do not recurse by default - use
1141 -R to make them recurse.
1142
1143 Listing a non existent directory will produce an error except for re‐
1144 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1145 bucket based remotes).
1146
1147 rclone lsl remote:path [flags]
1148
1149 Options
1150 -h, --help help for lsl
1151
1152 See the global flags page (https://rclone.org/flags/) for global op‐
1153 tions not listed here.
1154
1155 SEE ALSO
1156 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1157 commands, flags and backends.
1158
1160 Produces an md5sum file for all the objects in the path.
1161
1162 Synopsis
1163 Produces an md5sum file for all the objects in the path. This is in
1164 the same format as the standard md5sum tool produces.
1165
1166 By default, the hash is requested from the remote. If MD5 is not sup‐
1167 ported by the remote, no hash will be returned. With the download
1168 flag, the file will be downloaded from the remote and hashed locally
1169 enabling MD5 for any remote.
1170
1171 rclone md5sum remote:path [flags]
1172
1173 Options
1174 --base64 Output base64 encoded hashsum
1175 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
1176 -h, --help help for md5sum
1177 --output-file string Output hashsums to a file rather than the terminal
1178
1179 See the global flags page (https://rclone.org/flags/) for global op‐
1180 tions not listed here.
1181
1182 SEE ALSO
1183 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1184 commands, flags and backends.
1185
1187 Produces an sha1sum file for all the objects in the path.
1188
1189 Synopsis
1190 Produces an sha1sum file for all the objects in the path. This is in
1191 the same format as the standard sha1sum tool produces.
1192
1193 By default, the hash is requested from the remote. If SHA-1 is not
1194 supported by the remote, no hash will be returned. With the download
1195 flag, the file will be downloaded from the remote and hashed locally
1196 enabling SHA-1 for any remote.
1197
1198 rclone sha1sum remote:path [flags]
1199
1200 Options
1201 --base64 Output base64 encoded hashsum
1202 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
1203 -h, --help help for sha1sum
1204 --output-file string Output hashsums to a file rather than the terminal
1205
1206 See the global flags page (https://rclone.org/flags/) for global op‐
1207 tions not listed here.
1208
1209 SEE ALSO
1210 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1211 commands, flags and backends.
1212
1214 Prints the total size and number of objects in remote:path.
1215
1216 rclone size remote:path [flags]
1217
1218 Options
1219 -h, --help help for size
1220 --json format output as JSON
1221
1222 See the global flags page (https://rclone.org/flags/) for global op‐
1223 tions not listed here.
1224
1225 SEE ALSO
1226 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1227 commands, flags and backends.
1228
1230 Show the version number.
1231
1232 Synopsis
1233 Show the rclone version number, the go version, the build target OS and
1234 architecture, build tags and the type of executable (static or dynam‐
1235 ic).
1236
1237 For example:
1238
1239 $ rclone version
1240 rclone v1.54
1241 - os/type: linux
1242 - os/arch: amd64
1243 - go/version: go1.16
1244 - go/linking: static
1245 - go/tags: none
1246
1247 Note: before rclone version 1.55 the os/type and os/arch lines were
1248 merged, and the "go/version" line was tagged as "go version".
1249
1250 If you supply the --check flag, then it will do an online check to com‐
1251 pare your version with the latest release and the latest beta.
1252
1253 $ rclone version --check
1254 yours: 1.42.0.6
1255 latest: 1.42 (released 2018-06-16)
1256 beta: 1.42.0.5 (released 2018-06-17)
1257
1258 Or
1259
1260 $ rclone version --check
1261 yours: 1.41
1262 latest: 1.42 (released 2018-06-16)
1263 upgrade: https://downloads.rclone.org/v1.42
1264 beta: 1.42.0.5 (released 2018-06-17)
1265 upgrade: https://beta.rclone.org/v1.42-005-g56e1e820
1266
1267 rclone version [flags]
1268
1269 Options
1270 --check Check for new version.
1271 -h, --help help for version
1272
1273 See the global flags page (https://rclone.org/flags/) for global op‐
1274 tions not listed here.
1275
1276 SEE ALSO
1277 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1278 commands, flags and backends.
1279
1281 Clean up the remote if possible.
1282
1283 Synopsis
1284 Clean up the remote if possible. Empty the trash or delete old file
1285 versions. Not supported by all remotes.
1286
1287 rclone cleanup remote:path [flags]
1288
1289 Options
1290 -h, --help help for cleanup
1291
1292 See the global flags page (https://rclone.org/flags/) for global op‐
1293 tions not listed here.
1294
1295 SEE ALSO
1296 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1297 commands, flags and backends.
1298
1300 Interactively find duplicate filenames and delete/rename them.
1301
1302 Synopsis
1303 By default dedupe interactively finds files with duplicate names and
1304 offers to delete all but one or rename them to be different. This is
1305 known as deduping by name.
1306
1307 Deduping by name is only useful with a small group of backends (e.g.
1308 Google Drive, Opendrive) that can have duplicate file names. It can be
1309 run on wrapping backends (e.g. crypt) if they wrap a backend which
1310 supports duplicate file names.
1311
1312 However if --by-hash is passed in then dedupe will find files with du‐
1313 plicate hashes instead which will work on any backend which supports at
1314 least one hash. This can be used to find files with duplicate content.
1315 This is known as deduping by hash.
1316
1317 If deduping by name, first rclone will merge directories with the same
1318 name. It will do this iteratively until all the identically named di‐
1319 rectories have been merged.
1320
1321 Next, if deduping by name, for every group of duplicate file names /
1322 hashes, it will delete all but one identical files it finds without
1323 confirmation. This means that for most duplicated files the dedupe
1324 command will not be interactive.
1325
1326 dedupe considers files to be identical if they have the same file path
1327 and the same hash. If the backend does not support hashes (e.g. crypt
1328 wrapping Google Drive) then they will never be found to be identical.
1329 If you use the --size-only flag then files will be considered identical
1330 if they have the same size (any hash will be ignored). This can be
1331 useful on crypt backends which do not support hashes.
1332
1333 Next rclone will resolve the remaining duplicates. Exactly which ac‐
1334 tion is taken depends on the dedupe mode. By default rclone will in‐
1335 teractively query the user for each one.
1336
1337 Important: Since this can cause data loss, test first with the
1338 --dry-run or the --interactive/-i flag.
1339
1340 Here is an example run.
1341
1342 Before - with duplicates
1343
1344 $ rclone lsl drive:dupes
1345 6048320 2016-03-05 16:23:16.798000000 one.txt
1346 6048320 2016-03-05 16:23:11.775000000 one.txt
1347 564374 2016-03-05 16:23:06.731000000 one.txt
1348 6048320 2016-03-05 16:18:26.092000000 one.txt
1349 6048320 2016-03-05 16:22:46.185000000 two.txt
1350 1744073 2016-03-05 16:22:38.104000000 two.txt
1351 564374 2016-03-05 16:22:52.118000000 two.txt
1352
1353 Now the dedupe session
1354
1355 $ rclone dedupe drive:dupes
1356 2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode.
1357 one.txt: Found 4 files with duplicate names
1358 one.txt: Deleting 2/3 identical duplicates (MD5 "1eedaa9fe86fd4b8632e2ac549403b36")
1359 one.txt: 2 duplicates remain
1360 1: 6048320 bytes, 2016-03-05 16:23:16.798000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
1361 2: 564374 bytes, 2016-03-05 16:23:06.731000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
1362 s) Skip and do nothing
1363 k) Keep just one (choose which in next step)
1364 r) Rename all to be different (by changing file.jpg to file-1.jpg)
1365 s/k/r> k
1366 Enter the number of the file to keep> 1
1367 one.txt: Deleted 1 extra copies
1368 two.txt: Found 3 files with duplicate names
1369 two.txt: 3 duplicates remain
1370 1: 564374 bytes, 2016-03-05 16:22:52.118000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
1371 2: 6048320 bytes, 2016-03-05 16:22:46.185000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
1372 3: 1744073 bytes, 2016-03-05 16:22:38.104000000, MD5 851957f7fb6f0bc4ce76be966d336802
1373 s) Skip and do nothing
1374 k) Keep just one (choose which in next step)
1375 r) Rename all to be different (by changing file.jpg to file-1.jpg)
1376 s/k/r> r
1377 two-1.txt: renamed from: two.txt
1378 two-2.txt: renamed from: two.txt
1379 two-3.txt: renamed from: two.txt
1380
1381 The result being
1382
1383 $ rclone lsl drive:dupes
1384 6048320 2016-03-05 16:23:16.798000000 one.txt
1385 564374 2016-03-05 16:22:52.118000000 two-1.txt
1386 6048320 2016-03-05 16:22:46.185000000 two-2.txt
1387 1744073 2016-03-05 16:22:38.104000000 two-3.txt
1388
1389 Dedupe can be run non interactively using the --dedupe-mode flag or by
1390 using an extra parameter with the same value
1391
1392 • --dedupe-mode interactive - interactive as above.
1393
1394 • --dedupe-mode skip - removes identical files then skips anything
1395 left.
1396
1397 • --dedupe-mode first - removes identical files then keeps the first
1398 one.
1399
1400 • --dedupe-mode newest - removes identical files then keeps the newest
1401 one.
1402
1403 • --dedupe-mode oldest - removes identical files then keeps the oldest
1404 one.
1405
1406 • --dedupe-mode largest - removes identical files then keeps the
1407 largest one.
1408
1409 • --dedupe-mode smallest - removes identical files then keeps the
1410 smallest one.
1411
1412 • --dedupe-mode rename - removes identical files then renames the rest
1413 to be different.
1414
1415 • --dedupe-mode list - lists duplicate dirs and files only and changes
1416 nothing.
1417
1418 For example to rename all the identically named photos in your Google
1419 Photos directory, do
1420
1421 rclone dedupe --dedupe-mode rename "drive:Google Photos"
1422
1423 Or
1424
1425 rclone dedupe rename "drive:Google Photos"
1426
1427 rclone dedupe [mode] remote:path [flags]
1428
1429 Options
1430 --by-hash Find indentical hashes rather than names
1431 --dedupe-mode string Dedupe mode interactive|skip|first|newest|oldest|largest|smallest|rename. (default "interactive")
1432 -h, --help help for dedupe
1433
1434 See the global flags page (https://rclone.org/flags/) for global op‐
1435 tions not listed here.
1436
1437 SEE ALSO
1438 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1439 commands, flags and backends.
1440
1442 Get quota information from the remote.
1443
1444 Synopsis
1445 rclone about prints quota information about a remote to standard out‐
1446 put. The output is typically used, free, quota and trash contents.
1447
1448 E.g. Typical output from rclone about remote: is:
1449
1450 Total: 17G
1451 Used: 7.444G
1452 Free: 1.315G
1453 Trashed: 100.000M
1454 Other: 8.241G
1455
1456 Where the fields are:
1457
1458 • Total: total size available.
1459
1460 • Used: total size used
1461
1462 • Free: total space available to this user.
1463
1464 • Trashed: total space used by trash
1465
1466 • Other: total amount in other storage (e.g. Gmail, Google Photos)
1467
1468 • Objects: total number of objects in the storage
1469
1470 Not all backends print all fields. Information is not included if it
1471 is not provided by a backend. Where the value is unlimited it is omit‐
1472 ted.
1473
1474 Applying a --full flag to the command prints the bytes in full, e.g.
1475
1476 Total: 18253611008
1477 Used: 7993453766
1478 Free: 1411001220
1479 Trashed: 104857602
1480 Other: 8849156022
1481
1482 A --json flag generates conveniently computer readable output, e.g.
1483
1484 {
1485 "total": 18253611008,
1486 "used": 7993453766,
1487 "trashed": 104857602,
1488 "other": 8849156022,
1489 "free": 1411001220
1490 }
1491
1492 Not all backends support the rclone about command.
1493
1494 See List of backends that do not support about
1495 (https://rclone.org/overview/#optional-features)
1496
1497 rclone about remote: [flags]
1498
1499 Options
1500 --full Full numbers instead of SI units
1501 -h, --help help for about
1502 --json Format output as JSON
1503
1504 See the global flags page (https://rclone.org/flags/) for global op‐
1505 tions not listed here.
1506
1507 SEE ALSO
1508 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1509 commands, flags and backends.
1510
1512 Remote authorization.
1513
1514 Synopsis
1515 Remote authorization. Used to authorize a remote or headless rclone
1516 from a machine with a browser - use as instructed by rclone config.
1517
1518 Use the --auth-no-open-browser to prevent rclone to open auth link in
1519 default browser automatically.
1520
1521 rclone authorize [flags]
1522
1523 Options
1524 --auth-no-open-browser Do not automatically open auth link in default browser
1525 -h, --help help for authorize
1526
1527 See the global flags page (https://rclone.org/flags/) for global op‐
1528 tions not listed here.
1529
1530 SEE ALSO
1531 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1532 commands, flags and backends.
1533
1535 Run a backend specific command.
1536
1537 Synopsis
1538 This runs a backend specific command. The commands themselves (except
1539 for "help" and "features") are defined by the backends and you should
1540 see the backend docs for definitions.
1541
1542 You can discover what commands a backend implements by using
1543
1544 rclone backend help remote:
1545 rclone backend help <backendname>
1546
1547 You can also discover information about the backend using (see opera‐
1548 tions/fsinfo (https://rclone.org/rc/#operations/fsinfo) in the remote
1549 control docs for more info).
1550
1551 rclone backend features remote:
1552
1553 Pass options to the backend command with -o. This should be key=value
1554 or key, e.g.:
1555
1556 rclone backend stats remote:path stats -o format=json -o long
1557
1558 Pass arguments to the backend by placing them on the end of the line
1559
1560 rclone backend cleanup remote:path file1 file2 file3
1561
1562 Note to run these commands on a running backend then see backend/com‐
1563 mand (https://rclone.org/rc/#backend/command) in the rc docs.
1564
1565 rclone backend <command> remote:path [opts] <args> [flags]
1566
1567 Options
1568 -h, --help help for backend
1569 --json Always output in JSON format.
1570 -o, --option stringArray Option in the form name=value or name.
1571
1572 See the global flags page (https://rclone.org/flags/) for global op‐
1573 tions not listed here.
1574
1575 SEE ALSO
1576 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1577 commands, flags and backends.
1578
1580 Concatenates any files and sends them to stdout.
1581
1582 Synopsis
1583 rclone cat sends any files to standard output.
1584
1585 You can use it like this to output a single file
1586
1587 rclone cat remote:path/to/file
1588
1589 Or like this to output any file in dir or its subdirectories.
1590
1591 rclone cat remote:path/to/dir
1592
1593 Or like this to output any .txt files in dir or its subdirectories.
1594
1595 rclone --include "*.txt" cat remote:path/to/dir
1596
1597 Use the --head flag to print characters only at the start, --tail for
1598 the end and --offset and --count to print a section in the middle.
1599 Note that if offset is negative it will count from the end, so --offset
1600 -1 --count 1 is equivalent to --tail 1.
1601
1602 rclone cat remote:path [flags]
1603
1604 Options
1605 --count int Only print N characters. (default -1)
1606 --discard Discard the output instead of printing.
1607 --head int Only print the first N characters.
1608 -h, --help help for cat
1609 --offset int Start printing at offset N (or from end if -ve).
1610 --tail int Only print the last N characters.
1611
1612 See the global flags page (https://rclone.org/flags/) for global op‐
1613 tions not listed here.
1614
1615 SEE ALSO
1616 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1617 commands, flags and backends.
1618
1620 Create a new remote with name, type and options.
1621
1622 Synopsis
1623 Create a new remote of name with type and options. The options should
1624 be passed in pairs of key value.
1625
1626 For example to make a swift remote of name myremote using auto config
1627 you would do:
1628
1629 rclone config create myremote swift env_auth true
1630
1631 Note that if the config process would normally ask a question the de‐
1632 fault is taken. Each time that happens rclone will print a message
1633 saying how to affect the value taken.
1634
1635 If any of the parameters passed is a password field, then rclone will
1636 automatically obscure them if they aren't already obscured before
1637 putting them in the config file.
1638
1639 NB If the password parameter is 22 characters or longer and consists
1640 only of base64 characters then rclone can get confused about whether
1641 the password is already obscured or not and put unobscured passwords
1642 into the config file. If you want to be 100% certain that the pass‐
1643 words get obscured then use the "--obscure" flag, or if you are 100%
1644 certain you are already passing obscured passwords then use "--no-ob‐
1645 scure". You can also set obscured passwords using the "rclone config
1646 password" command.
1647
1648 So for example if you wanted to configure a Google Drive remote but us‐
1649 ing remote authorization you would do this:
1650
1651 rclone config create mydrive drive config_is_local false
1652
1653 rclone config create `name` `type` [`key` `value`]* [flags]
1654
1655 Options
1656 -h, --help help for create
1657 --no-obscure Force any passwords not to be obscured.
1658 --obscure Force any passwords to be obscured.
1659
1660 See the global flags page (https://rclone.org/flags/) for global op‐
1661 tions not listed here.
1662
1663 SEE ALSO
1664 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1665 interactive configuration session.
1666
1668 Delete an existing remote name.
1669
1670 rclone config delete `name` [flags]
1671
1672 Options
1673 -h, --help help for delete
1674
1675 See the global flags page (https://rclone.org/flags/) for global op‐
1676 tions not listed here.
1677
1678 SEE ALSO
1679 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1680 interactive configuration session.
1681
1683 Disconnects user from remote
1684
1685 Synopsis
1686 This disconnects the remote: passed in to the cloud storage system.
1687
1688 This normally means revoking the oauth token.
1689
1690 To reconnect use "rclone config reconnect".
1691
1692 rclone config disconnect remote: [flags]
1693
1694 Options
1695 -h, --help help for disconnect
1696
1697 See the global flags page (https://rclone.org/flags/) for global op‐
1698 tions not listed here.
1699
1700 SEE ALSO
1701 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1702 interactive configuration session.
1703
1705 Dump the config file as JSON.
1706
1707 rclone config dump [flags]
1708
1709 Options
1710 -h, --help help for dump
1711
1712 See the global flags page (https://rclone.org/flags/) for global op‐
1713 tions not listed here.
1714
1715 SEE ALSO
1716 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1717 interactive configuration session.
1718
1720 Enter an interactive configuration session.
1721
1722 Synopsis
1723 Enter an interactive configuration session where you can setup new re‐
1724 motes and manage existing ones. You may also set or remove a password
1725 to protect your configuration.
1726
1727 rclone config edit [flags]
1728
1729 Options
1730 -h, --help help for edit
1731
1732 See the global flags page (https://rclone.org/flags/) for global op‐
1733 tions not listed here.
1734
1735 SEE ALSO
1736 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1737 interactive configuration session.
1738
1740 Show path of configuration file in use.
1741
1742 rclone config file [flags]
1743
1744 Options
1745 -h, --help help for file
1746
1747 See the global flags page (https://rclone.org/flags/) for global op‐
1748 tions not listed here.
1749
1750 SEE ALSO
1751 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1752 interactive configuration session.
1753
1755 Update password in an existing remote.
1756
1757 Synopsis
1758 Update an existing remote's password. The password should be passed in
1759 pairs of key value.
1760
1761 For example to set password of a remote of name myremote you would do:
1762
1763 rclone config password myremote fieldname mypassword
1764
1765 This command is obsolete now that "config update" and "config create"
1766 both support obscuring passwords directly.
1767
1768 rclone config password `name` [`key` `value`]+ [flags]
1769
1770 Options
1771 -h, --help help for password
1772
1773 See the global flags page (https://rclone.org/flags/) for global op‐
1774 tions not listed here.
1775
1776 SEE ALSO
1777 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1778 interactive configuration session.
1779
1781 List in JSON format all the providers and options.
1782
1783 rclone config providers [flags]
1784
1785 Options
1786 -h, --help help for providers
1787
1788 See the global flags page (https://rclone.org/flags/) for global op‐
1789 tions not listed here.
1790
1791 SEE ALSO
1792 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1793 interactive configuration session.
1794
1796 Re-authenticates user with remote.
1797
1798 Synopsis
1799 This reconnects remote: passed in to the cloud storage system.
1800
1801 To disconnect the remote use "rclone config disconnect".
1802
1803 This normally means going through the interactive oauth flow again.
1804
1805 rclone config reconnect remote: [flags]
1806
1807 Options
1808 -h, --help help for reconnect
1809
1810 See the global flags page (https://rclone.org/flags/) for global op‐
1811 tions not listed here.
1812
1813 SEE ALSO
1814 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1815 interactive configuration session.
1816
1818 Print (decrypted) config file, or the config for a single remote.
1819
1820 rclone config show [<remote>] [flags]
1821
1822 Options
1823 -h, --help help for show
1824
1825 See the global flags page (https://rclone.org/flags/) for global op‐
1826 tions not listed here.
1827
1828 SEE ALSO
1829 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1830 interactive configuration session.
1831
1833 Update options in an existing remote.
1834
1835 Synopsis
1836 Update an existing remote's options. The options should be passed in
1837 in pairs of key value.
1838
1839 For example to update the env_auth field of a remote of name myremote
1840 you would do:
1841
1842 rclone config update myremote swift env_auth true
1843
1844 If any of the parameters passed is a password field, then rclone will
1845 automatically obscure them if they aren't already obscured before
1846 putting them in the config file.
1847
1848 NB If the password parameter is 22 characters or longer and consists
1849 only of base64 characters then rclone can get confused about whether
1850 the password is already obscured or not and put unobscured passwords
1851 into the config file. If you want to be 100% certain that the pass‐
1852 words get obscured then use the "--obscure" flag, or if you are 100%
1853 certain you are already passing obscured passwords then use "--no-ob‐
1854 scure". You can also set obscured passwords using the "rclone config
1855 password" command.
1856
1857 If the remote uses OAuth the token will be updated, if you don't re‐
1858 quire this add an extra parameter thus:
1859
1860 rclone config update myremote swift env_auth true config_refresh_token false
1861
1862 rclone config update `name` [`key` `value`]+ [flags]
1863
1864 Options
1865 -h, --help help for update
1866 --no-obscure Force any passwords not to be obscured.
1867 --obscure Force any passwords to be obscured.
1868
1869 See the global flags page (https://rclone.org/flags/) for global op‐
1870 tions not listed here.
1871
1872 SEE ALSO
1873 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1874 interactive configuration session.
1875
1877 Prints info about logged in user of remote.
1878
1879 Synopsis
1880 This prints the details of the person logged in to the cloud storage
1881 system.
1882
1883 rclone config userinfo remote: [flags]
1884
1885 Options
1886 -h, --help help for userinfo
1887 --json Format output as JSON
1888
1889 See the global flags page (https://rclone.org/flags/) for global op‐
1890 tions not listed here.
1891
1892 SEE ALSO
1893 • rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1894 interactive configuration session.
1895
1897 Copy files from source to dest, skipping already copied.
1898
1899 Synopsis
1900 If source:path is a file or directory then it copies it to a file or
1901 directory named dest:path.
1902
1903 This can be used to upload single files to other than their current
1904 name. If the source is a directory then it acts exactly like the copy
1905 command.
1906
1907 So
1908
1909 rclone copyto src dst
1910
1911 where src and dst are rclone paths, either remote:path or /path/to/lo‐
1912 cal or C:.
1913
1914 This will:
1915
1916 if src is file
1917 copy it to dst, overwriting an existing file if it exists
1918 if src is directory
1919 copy it to dst, overwriting existing files if they exist
1920 see copy command for full details
1921
1922 This doesn't transfer unchanged files, testing by size and modification
1923 time or MD5SUM. It doesn't delete files from the destination.
1924
1925 Note: Use the -P/--progress flag to view real-time transfer statistics
1926
1927 rclone copyto source:path dest:path [flags]
1928
1929 Options
1930 -h, --help help for copyto
1931
1932 See the global flags page (https://rclone.org/flags/) for global op‐
1933 tions not listed here.
1934
1935 SEE ALSO
1936 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1937 commands, flags and backends.
1938
1940 Copy url content to dest.
1941
1942 Synopsis
1943 Download a URL's content and copy it to the destination without saving
1944 it in temporary storage.
1945
1946 Setting --auto-filename will cause the file name to be retrieved from
1947 the from URL (after any redirections) and used in the destination path.
1948 With --print-filename in addition, the resuling file name will be
1949 printed.
1950
1951 Setting --no-clobber will prevent overwriting file on the destination
1952 if there is one with the same name.
1953
1954 Setting --stdout or making the output file name - will cause the output
1955 to be written to standard output.
1956
1957 rclone copyurl https://example.com dest:path [flags]
1958
1959 Options
1960 -a, --auto-filename Get the file name from the URL and use it for destination file path
1961 -h, --help help for copyurl
1962 --no-clobber Prevent overwriting file with same name
1963 -p, --print-filename Print the resulting name from --auto-filename
1964 --stdout Write the output to stdout rather than a file
1965
1966 See the global flags page (https://rclone.org/flags/) for global op‐
1967 tions not listed here.
1968
1969 SEE ALSO
1970 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1971 commands, flags and backends.
1972
1974 Cryptcheck checks the integrity of a crypted remote.
1975
1976 Synopsis
1977 rclone cryptcheck checks a remote against a crypted remote. This is
1978 the equivalent of running rclone check, but able to check the checksums
1979 of the crypted remote.
1980
1981 For it to work the underlying remote of the cryptedremote must support
1982 some kind of checksum.
1983
1984 It works by reading the nonce from each file on the cryptedremote: and
1985 using that to encrypt each file on the remote:. It then checks the
1986 checksum of the underlying file on the cryptedremote: against the
1987 checksum of the file it has just encrypted.
1988
1989 Use it like this
1990
1991 rclone cryptcheck /path/to/files encryptedremote:path
1992
1993 You can use it like this also, but that will involve downloading all
1994 the files in remote:path.
1995
1996 rclone cryptcheck remote:path encryptedremote:path
1997
1998 After it has run it will log the status of the encryptedremote:.
1999
2000 If you supply the --one-way flag, it will only check that files in the
2001 source match the files in the destination, not the other way around.
2002 This means that extra files in the destination that are not in the
2003 source will not be detected.
2004
2005 The --differ, --missing-on-dst, --missing-on-src, --match and --error
2006 flags write paths, one per line, to the file name (or stdout if it is
2007 -) supplied. What they write is described in the help below. For ex‐
2008 ample --differ will write all paths which are present on both the
2009 source and destination but different.
2010
2011 The --combined flag will write a file (or stdout) which contains all
2012 file paths with a symbol and then a space and then the path to tell you
2013 what happened to it. These are reminiscent of diff files.
2014
2015 • = path means path was found in source and destination and was identi‐
2016 cal
2017
2018 • - path means path was missing on the source, so only in the destina‐
2019 tion
2020
2021 • + path means path was missing on the destination, so only in the
2022 source
2023
2024 • * path means path was present in source and destination but differ‐
2025 ent.
2026
2027 • ! path means there was an error reading or hashing the source or
2028 dest.
2029
2030 rclone cryptcheck remote:path cryptedremote:path [flags]
2031
2032 Options
2033 --combined string Make a combined report of changes to this file
2034 --differ string Report all non-matching files to this file
2035 --error string Report all files with errors (hashing or reading) to this file
2036 -h, --help help for cryptcheck
2037 --match string Report all matching files to this file
2038 --missing-on-dst string Report all files missing from the destination to this file
2039 --missing-on-src string Report all files missing from the source to this file
2040 --one-way Check one way only, source files must exist on remote
2041
2042 See the global flags page (https://rclone.org/flags/) for global op‐
2043 tions not listed here.
2044
2045 SEE ALSO
2046 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2047 commands, flags and backends.
2048
2050 Cryptdecode returns unencrypted file names.
2051
2052 Synopsis
2053 rclone cryptdecode returns unencrypted file names when provided with a
2054 list of encrypted file names. List limit is 10 items.
2055
2056 If you supply the --reverse flag, it will return encrypted file names.
2057
2058 use it like this
2059
2060 rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
2061
2062 rclone cryptdecode --reverse encryptedremote: filename1 filename2
2063
2064 Another way to accomplish this is by using the rclone backend encode
2065 (or decode)command. See the documentation on the crypt overlay for
2066 more info.
2067
2068 rclone cryptdecode encryptedremote: encryptedfilename [flags]
2069
2070 Options
2071 -h, --help help for cryptdecode
2072 --reverse Reverse cryptdecode, encrypts filenames
2073
2074 See the global flags page (https://rclone.org/flags/) for global op‐
2075 tions not listed here.
2076
2077 SEE ALSO
2078 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2079 commands, flags and backends.
2080
2082 Remove a single file from remote.
2083
2084 Synopsis
2085 Remove a single file from remote. Unlike delete it cannot be used to
2086 remove a directory and it doesn't obey include/exclude filters - if the
2087 specified file exists, it will always be removed.
2088
2089 rclone deletefile remote:path [flags]
2090
2091 Options
2092 -h, --help help for deletefile
2093
2094 See the global flags page (https://rclone.org/flags/) for global op‐
2095 tions not listed here.
2096
2097 SEE ALSO
2098 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2099 commands, flags and backends.
2100
2102 Output completion script for a given shell.
2103
2104 Synopsis
2105 Generates a shell completion script for rclone. Run with --help to
2106 list the supported shells.
2107
2108 Options
2109 -h, --help help for genautocomplete
2110
2111 See the global flags page (https://rclone.org/flags/) for global op‐
2112 tions not listed here.
2113
2114 SEE ALSO
2115 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2116 commands, flags and backends.
2117
2118 • rclone genautocomplete bash (https://rclone.org/commands/rclone_ge‐
2119 nautocomplete_bash/) - Output bash completion script for rclone.
2120
2121 • rclone genautocomplete fish (https://rclone.org/commands/rclone_ge‐
2122 nautocomplete_fish/) - Output fish completion script for rclone.
2123
2124 • rclone genautocomplete zsh (https://rclone.org/commands/rclone_genau‐
2125 tocomplete_zsh/) - Output zsh completion script for rclone.
2126
2128 Output bash completion script for rclone.
2129
2130 Synopsis
2131 Generates a bash shell autocompletion script for rclone.
2132
2133 This writes to /etc/bash_completion.d/rclone by default so will proba‐
2134 bly need to be run with sudo or as root, e.g.
2135
2136 sudo rclone genautocomplete bash
2137
2138 Logout and login again to use the autocompletion scripts, or source
2139 them directly
2140
2141 . /etc/bash_completion
2142
2143 If you supply a command line argument the script will be written there.
2144
2145 If output_file is "-", then the output will be written to stdout.
2146
2147 rclone genautocomplete bash [output_file] [flags]
2148
2149 Options
2150 -h, --help help for bash
2151
2152 See the global flags page (https://rclone.org/flags/) for global op‐
2153 tions not listed here.
2154
2155 SEE ALSO
2156 • rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2157 complete/) - Output completion script for a given shell.
2158
2160 Output fish completion script for rclone.
2161
2162 Synopsis
2163 Generates a fish autocompletion script for rclone.
2164
2165 This writes to /etc/fish/completions/rclone.fish by default so will
2166 probably need to be run with sudo or as root, e.g.
2167
2168 sudo rclone genautocomplete fish
2169
2170 Logout and login again to use the autocompletion scripts, or source
2171 them directly
2172
2173 . /etc/fish/completions/rclone.fish
2174
2175 If you supply a command line argument the script will be written there.
2176
2177 If output_file is "-", then the output will be written to stdout.
2178
2179 rclone genautocomplete fish [output_file] [flags]
2180
2181 Options
2182 -h, --help help for fish
2183
2184 See the global flags page (https://rclone.org/flags/) for global op‐
2185 tions not listed here.
2186
2187 SEE ALSO
2188 • rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2189 complete/) - Output completion script for a given shell.
2190
2192 Output zsh completion script for rclone.
2193
2194 Synopsis
2195 Generates a zsh autocompletion script for rclone.
2196
2197 This writes to /usr/share/zsh/vendor-completions/_rclone by default so
2198 will probably need to be run with sudo or as root, e.g.
2199
2200 sudo rclone genautocomplete zsh
2201
2202 Logout and login again to use the autocompletion scripts, or source
2203 them directly
2204
2205 autoload -U compinit && compinit
2206
2207 If you supply a command line argument the script will be written there.
2208
2209 If output_file is "-", then the output will be written to stdout.
2210
2211 rclone genautocomplete zsh [output_file] [flags]
2212
2213 Options
2214 -h, --help help for zsh
2215
2216 See the global flags page (https://rclone.org/flags/) for global op‐
2217 tions not listed here.
2218
2219 SEE ALSO
2220 • rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2221 complete/) - Output completion script for a given shell.
2222
2224 Output markdown docs for rclone to the directory supplied.
2225
2226 Synopsis
2227 This produces markdown docs for the rclone commands to the directory
2228 supplied. These are in a format suitable for hugo to render into the
2229 rclone.org website.
2230
2231 rclone gendocs output_directory [flags]
2232
2233 Options
2234 -h, --help help for gendocs
2235
2236 See the global flags page (https://rclone.org/flags/) for global op‐
2237 tions not listed here.
2238
2239 SEE ALSO
2240 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2241 commands, flags and backends.
2242
2244 Produces a hashsum file for all the objects in the path.
2245
2246 Synopsis
2247 Produces a hash file for all the objects in the path using the hash
2248 named. The output is in the same format as the standard md5sum/sha1sum
2249 tool.
2250
2251 By default, the hash is requested from the remote. If the hash is not
2252 supported by the remote, no hash will be returned. With the download
2253 flag, the file will be downloaded from the remote and hashed locally
2254 enabling any hash for any remote.
2255
2256 Run without a hash to see the list of all supported hashes, e.g.
2257
2258 $ rclone hashsum
2259 Supported hashes are:
2260 * MD5
2261 * SHA-1
2262 * DropboxHash
2263 * QuickXorHash
2264
2265 Then
2266
2267 $ rclone hashsum MD5 remote:path
2268
2269 rclone hashsum <hash> remote:path [flags]
2270
2271 Options
2272 --base64 Output base64 encoded hashsum
2273 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
2274 -h, --help help for hashsum
2275 --output-file string Output hashsums to a file rather than the terminal
2276
2277 See the global flags page (https://rclone.org/flags/) for global op‐
2278 tions not listed here.
2279
2280 SEE ALSO
2281 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2282 commands, flags and backends.
2283
2285 Generate public link to file/folder.
2286
2287 Synopsis
2288 rclone link will create, retrieve or remove a public link to the given
2289 file or folder.
2290
2291 rclone link remote:path/to/file
2292 rclone link remote:path/to/folder/
2293 rclone link --unlink remote:path/to/folder/
2294 rclone link --expire 1d remote:path/to/file
2295
2296 If you supply the --expire flag, it will set the expiration time other‐
2297 wise it will use the default (100 years). Note not all backends sup‐
2298 port the --expire flag - if the backend doesn't support it then the
2299 link returned won't expire.
2300
2301 Use the --unlink flag to remove existing public links to the file or
2302 folder. Note not all backends support "--unlink" flag - those that
2303 don't will just ignore it.
2304
2305 If successful, the last line of the output will contain the link. Ex‐
2306 act capabilities depend on the remote, but the link will always by de‐
2307 fault be created with the least constraints – e.g. no expiry, no pass‐
2308 word protection, accessible without account.
2309
2310 rclone link remote:path [flags]
2311
2312 Options
2313 --expire Duration The amount of time that the link will be valid (default 100y)
2314 -h, --help help for link
2315 --unlink Remove existing public link to file/folder
2316
2317 See the global flags page (https://rclone.org/flags/) for global op‐
2318 tions not listed here.
2319
2320 SEE ALSO
2321 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2322 commands, flags and backends.
2323
2325 List all the remotes in the config file.
2326
2327 Synopsis
2328 rclone listremotes lists all the available remotes from the config
2329 file.
2330
2331 When uses with the -l flag it lists the types too.
2332
2333 rclone listremotes [flags]
2334
2335 Options
2336 -h, --help help for listremotes
2337 --long Show the type as well as names.
2338
2339 See the global flags page (https://rclone.org/flags/) for global op‐
2340 tions not listed here.
2341
2342 SEE ALSO
2343 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2344 commands, flags and backends.
2345
2347 List directories and objects in remote:path formatted for parsing.
2348
2349 Synopsis
2350 List the contents of the source path (directories and objects) to stan‐
2351 dard output in a form which is easy to parse by scripts. By default
2352 this will just be the names of the objects and directories, one per
2353 line. The directories will have a / suffix.
2354
2355 Eg
2356
2357 $ rclone lsf swift:bucket
2358 bevajer5jef
2359 canole
2360 diwogej7
2361 ferejej3gux/
2362 fubuwic
2363
2364 Use the --format option to control what gets listed. By default this
2365 is just the path, but you can use these parameters to control the out‐
2366 put:
2367
2368 p - path
2369 s - size
2370 t - modification time
2371 h - hash
2372 i - ID of object
2373 o - Original ID of underlying object
2374 m - MimeType of object if known
2375 e - encrypted name
2376 T - tier of storage if known, e.g. "Hot" or "Cool"
2377
2378 So if you wanted the path, size and modification time, you would use
2379 --format "pst", or maybe --format "tsp" to put the path last.
2380
2381 Eg
2382
2383 $ rclone lsf --format "tsp" swift:bucket
2384 2016-06-25 18:55:41;60295;bevajer5jef
2385 2016-06-25 18:55:43;90613;canole
2386 2016-06-25 18:55:43;94467;diwogej7
2387 2018-04-26 08:50:45;0;ferejej3gux/
2388 2016-06-25 18:55:40;37600;fubuwic
2389
2390 If you specify "h" in the format you will get the MD5 hash by default,
2391 use the "--hash" flag to change which hash you want. Note that this
2392 can be returned as an empty string if it isn't available on the object
2393 (and for directories), "ERROR" if there was an error reading it from
2394 the object and "UNSUPPORTED" if that object does not support that hash
2395 type.
2396
2397 For example to emulate the md5sum command you can use
2398
2399 rclone lsf -R --hash MD5 --format hp --separator " " --files-only .
2400
2401 Eg
2402
2403 $ rclone lsf -R --hash MD5 --format hp --separator " " --files-only swift:bucket
2404 7908e352297f0f530b84a756f188baa3 bevajer5jef
2405 cd65ac234e6fea5925974a51cdd865cc canole
2406 03b5341b4f234b9d984d03ad076bae91 diwogej7
2407 8fd37c3810dd660778137ac3a66cc06d fubuwic
2408 99713e14a4c4ff553acaf1930fad985b gixacuh7ku
2409
2410 (Though "rclone md5sum ." is an easier way of typing this.)
2411
2412 By default the separator is ";" this can be changed with the --separa‐
2413 tor flag. Note that separators aren't escaped in the path so putting
2414 it last is a good strategy.
2415
2416 Eg
2417
2418 $ rclone lsf --separator "," --format "tshp" swift:bucket
2419 2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
2420 2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole
2421 2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7
2422 2018-04-26 08:52:53,0,,ferejej3gux/
2423 2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic
2424
2425 You can output in CSV standard format. This will escape things in " if
2426 they contain ,
2427
2428 Eg
2429
2430 $ rclone lsf --csv --files-only --format ps remote:path
2431 test.log,22355
2432 test.sh,449
2433 "this file contains a comma, in the file name.txt",6
2434
2435 Note that the --absolute parameter is useful for making lists of files
2436 to pass to an rclone copy with the --files-from-raw flag.
2437
2438 For example to find all the files modified within one day and copy
2439 those only (without traversing the whole directory structure):
2440
2441 rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
2442 rclone copy --files-from-raw new_files /path/to/local remote:path
2443
2444 Any of the filtering options can be applied to this command.
2445
2446 There are several related list commands
2447
2448 • ls to list size and path of objects only
2449
2450 • lsl to list modification time, size and path of objects only
2451
2452 • lsd to list directories only
2453
2454 • lsf to list objects and directories in easy to parse format
2455
2456 • lsjson to list objects and directories in JSON format
2457
2458 ls,lsl,lsd are designed to be human readable. lsf is designed to be
2459 human and machine readable. lsjson is designed to be machine readable.
2460
2461 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
2462 recursion.
2463
2464 The other list commands lsd,lsf,lsjson do not recurse by default - use
2465 -R to make them recurse.
2466
2467 Listing a non existent directory will produce an error except for re‐
2468 motes which can't have empty directories (e.g. s3, swift, or gcs - the
2469 bucket based remotes).
2470
2471 rclone lsf remote:path [flags]
2472
2473 Options
2474 --absolute Put a leading / in front of path names.
2475 --csv Output in CSV format.
2476 -d, --dir-slash Append a slash to directory names. (default true)
2477 --dirs-only Only list directories.
2478 --files-only Only list files.
2479 -F, --format string Output format - see help for details (default "p")
2480 --hash h Use this hash when h is used in the format MD5|SHA-1|DropboxHash (default "MD5")
2481 -h, --help help for lsf
2482 -R, --recursive Recurse into the listing.
2483 -s, --separator string Separator for the items in the format. (default ";")
2484
2485 See the global flags page (https://rclone.org/flags/) for global op‐
2486 tions not listed here.
2487
2488 SEE ALSO
2489 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2490 commands, flags and backends.
2491
2493 List directories and objects in the path in JSON format.
2494
2495 Synopsis
2496 List directories and objects in the path in JSON format.
2497
2498 The output is an array of Items, where each Item looks like this
2499
2500 { "Hashes" : { "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f",
2501 "MD5" : "b1946ac92492d2347c6235b4d2611184", "DropboxHash" :
2502 "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc" },
2503 "ID": "y2djkhiujf83u33", "OrigID": "UYOJVTUW00Q1RzTDA", "IsBucket" :
2504 false, "IsDir" : false, "MimeType" : "application/octet-stream", "Mod‐
2505 Time" : "2017-05-31T16:15:57.034468261+01:00", "Name" : "file.txt",
2506 "Encrypted" : "v0qpsdq8anpci8n929v3uu9338", "EncryptedPath" :
2507 "kja9098349023498/v0qpsdq8anpci8n929v3uu9338", "Path" :
2508 "full/path/goes/here/file.txt", "Size" : 6, "Tier" : "hot", }
2509
2510 If --hash is not specified the Hashes property won't be emitted. The
2511 types of hash can be specified with the --hash-type parameter (which
2512 may be repeated). If --hash-type is set then it implies --hash.
2513
2514 If --no-modtime is specified then ModTime will be blank. This can
2515 speed things up on remotes where reading the ModTime takes an extra re‐
2516 quest (e.g. s3, swift).
2517
2518 If --no-mimetype is specified then MimeType will be blank. This can
2519 speed things up on remotes where reading the MimeType takes an extra
2520 request (e.g. s3, swift).
2521
2522 If --encrypted is not specified the Encrypted won't be emitted.
2523
2524 If --dirs-only is not specified files in addition to directories are
2525 returned
2526
2527 If --files-only is not specified directories in addition to the files
2528 will be returned.
2529
2530 The Path field will only show folders below the remote path being list‐
2531 ed. If "remote:path" contains the file "subfolder/file.txt", the Path
2532 for "file.txt" will be "subfolder/file.txt", not "remote:path/subfold‐
2533 er/file.txt". When used without --recursive the Path will always be
2534 the same as Name.
2535
2536 If the directory is a bucket in a bucket based backend, then "IsBucket"
2537 will be set to true. This key won't be present unless it is "true".
2538
2539 The time is in RFC3339 format with up to nanosecond precision. The
2540 number of decimal digits in the seconds will depend on the precision
2541 that the remote can hold the times, so if times are accurate to the
2542 nearest millisecond (e.g. Google Drive) then 3 digits will always be
2543 shown ("2017-05-31T16:15:57.034+01:00") whereas if the times are accu‐
2544 rate to the nearest second (Dropbox, Box, WebDav, etc.) no digits will
2545 be shown ("2017-05-31T16:15:57+01:00").
2546
2547 The whole output can be processed as a JSON blob, or alternatively it
2548 can be processed line by line as each item is written one to a line.
2549
2550 Any of the filtering options can be applied to this command.
2551
2552 There are several related list commands
2553
2554 • ls to list size and path of objects only
2555
2556 • lsl to list modification time, size and path of objects only
2557
2558 • lsd to list directories only
2559
2560 • lsf to list objects and directories in easy to parse format
2561
2562 • lsjson to list objects and directories in JSON format
2563
2564 ls,lsl,lsd are designed to be human readable. lsf is designed to be
2565 human and machine readable. lsjson is designed to be machine readable.
2566
2567 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
2568 recursion.
2569
2570 The other list commands lsd,lsf,lsjson do not recurse by default - use
2571 -R to make them recurse.
2572
2573 Listing a non existent directory will produce an error except for re‐
2574 motes which can't have empty directories (e.g. s3, swift, or gcs - the
2575 bucket based remotes).
2576
2577 rclone lsjson remote:path [flags]
2578
2579 Options
2580 --dirs-only Show only directories in the listing.
2581 -M, --encrypted Show the encrypted names.
2582 --files-only Show only files in the listing.
2583 --hash Include hashes in the output (may take longer).
2584 --hash-type stringArray Show only this hash type (may be repeated).
2585 -h, --help help for lsjson
2586 --no-mimetype Don't read the mime type (can speed things up).
2587 --no-modtime Don't read the modification time (can speed things up).
2588 --original Show the ID of the underlying Object.
2589 -R, --recursive Recurse into the listing.
2590
2591 See the global flags page (https://rclone.org/flags/) for global op‐
2592 tions not listed here.
2593
2594 SEE ALSO
2595 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2596 commands, flags and backends.
2597
2599 Mount the remote as file system on a mountpoint.
2600
2601 Synopsis
2602 rclone mount allows Linux, FreeBSD, macOS and Windows to mount any of
2603 Rclone's cloud storage systems as a file system with FUSE.
2604
2605 First set up your remote using rclone config. Check it works with
2606 rclone ls etc.
2607
2608 On Linux and OSX, you can either run mount in foreground mode or back‐
2609 ground (daemon) mode. Mount runs in foreground mode by default, use
2610 the --daemon flag to specify background mode. You can only run mount
2611 in foreground mode on Windows.
2612
2613 On Linux/macOS/FreeBSD start the mount like this, where /path/to/lo‐
2614 cal/mount is an empty existing directory:
2615
2616 rclone mount remote:path/to/files /path/to/local/mount
2617
2618 On Windows you can start a mount in different ways. See below for de‐
2619 tails. The following examples will mount to an automatically assigned
2620 drive, to specific drive letter X:, to path C:\path\parent\mount (where
2621 parent directory or drive must exist, and mount must not exist, and is
2622 not supported when mounting as a network drive), and the last example
2623 will mount as network share \\cloud\remote and map it to an automati‐
2624 cally assigned drive:
2625
2626 rclone mount remote:path/to/files *
2627 rclone mount remote:path/to/files X:
2628 rclone mount remote:path/to/files C:\path\parent\mount
2629 rclone mount remote:path/to/files \\cloud\remote
2630
2631 When the program ends while in foreground mode, either via Ctrl+C or
2632 receiving a SIGINT or SIGTERM signal, the mount should be automatically
2633 stopped.
2634
2635 When running in background mode the user will have to stop the mount
2636 manually:
2637
2638 # Linux
2639 fusermount -u /path/to/local/mount
2640 # OS X
2641 umount /path/to/local/mount
2642
2643 The umount operation can fail, for example when the mountpoint is busy.
2644 When that happens, it is the user's responsibility to stop the mount
2645 manually.
2646
2647 The size of the mounted file system will be set according to informa‐
2648 tion retrieved from the remote, the same as returned by the rclone
2649 about (https://rclone.org/commands/rclone_about/) command. Remotes
2650 with unlimited storage may report the used size only, then an addition‐
2651 al 1PB of free space is assumed. If the remote does not support
2652 (https://rclone.org/overview/#optional-features) the about feature at
2653 all, then 1PB is set as both the total and the free size.
2654
2655 Note: As of rclone 1.52.2, rclone mount now requires Go version 1.13 or
2656 newer on some platforms depending on the underlying FUSE library in
2657 use.
2658
2659 Installing on Windows
2660 To run rclone mount on Windows, you will need to download and install
2661 WinFsp (http://www.secfs.net/winfsp/).
2662
2663 WinFsp (https://github.com/billziss-gh/winfsp) is an open source Win‐
2664 dows File System Proxy which makes it easy to write user space file
2665 systems for Windows. It provides a FUSE emulation layer which rclone
2666 uses combination with cgofuse (https://github.com/billziss-gh/cgofuse).
2667 Both of these packages are by Bill Zissimopoulos who was very helpful
2668 during the implementation of rclone mount for Windows.
2669
2670 Mounting modes on windows
2671 Unlike other operating systems, Microsoft Windows provides a different
2672 filesystem type for network and fixed drives. It optimises access on
2673 the assumption fixed disk drives are fast and reliable, while network
2674 drives have relatively high latency and less reliability. Some set‐
2675 tings can also be differentiated between the two types, for example
2676 that Windows Explorer should just display icons and not create preview
2677 thumbnails for image and video files on network drives.
2678
2679 In most cases, rclone will mount the remote as a normal, fixed disk
2680 drive by default. However, you can also choose to mount it as a remote
2681 network drive, often described as a network share. If you mount an
2682 rclone remote using the default, fixed drive mode and experience unex‐
2683 pected program errors, freezes or other issues, consider mounting as a
2684 network drive instead.
2685
2686 When mounting as a fixed disk drive you can either mount to an unused
2687 drive letter, or to a path representing a non-existent subdirectory of
2688 an existing parent directory or drive. Using the special value * will
2689 tell rclone to automatically assign the next available drive letter,
2690 starting with Z: and moving backward. Examples:
2691
2692 rclone mount remote:path/to/files *
2693 rclone mount remote:path/to/files X:
2694 rclone mount remote:path/to/files C:\path\parent\mount
2695 rclone mount remote:path/to/files X:
2696
2697 Option --volname can be used to set a custom volume name for the mount‐
2698 ed file system. The default is to use the remote name and path.
2699
2700 To mount as network drive, you can add option --network-mode to your
2701 mount command. Mounting to a directory path is not supported in this
2702 mode, it is a limitation Windows imposes on junctions, so the remote
2703 must always be mounted to a drive letter.
2704
2705 rclone mount remote:path/to/files X: --network-mode
2706
2707 A volume name specified with --volname will be used to create the net‐
2708 work share path. A complete UNC path, such as \\cloud\remote, option‐
2709 ally with path \\cloud\remote\madeup\path, will be used as is. Any
2710 other string will be used as the share part, after a default prefix
2711 \\server\. If no volume name is specified then \\server\share will be
2712 used. You must make sure the volume name is unique when you are mount‐
2713 ing more than one drive, or else the mount command will fail. The
2714 share name will treated as the volume label for the mapped drive, shown
2715 in Windows Explorer etc, while the complete \\server\share will be re‐
2716 ported as the remote UNC path by net use etc, just like a normal net‐
2717 work drive mapping.
2718
2719 If you specify a full network share UNC path with --volname, this will
2720 implicitely set the --network-mode option, so the following two exam‐
2721 ples have same result:
2722
2723 rclone mount remote:path/to/files X: --network-mode
2724 rclone mount remote:path/to/files X: --volname \\server\share
2725
2726 You may also specify the network share UNC path as the mountpoint it‐
2727 self. Then rclone will automatically assign a drive letter, same as
2728 with * and use that as mountpoint, and instead use the UNC path speci‐
2729 fied as the volume name, as if it were specified with the --volname op‐
2730 tion. This will also implicitely set the --network-mode option. This
2731 means the following two examples have same result:
2732
2733 rclone mount remote:path/to/files \\cloud\remote
2734 rclone mount remote:path/to/files * --volname \\cloud\remote
2735
2736 There is yet another way to enable network mode, and to set the share
2737 path, and that is to pass the "native" libfuse/WinFsp option directly:
2738 --fuse-flag --VolumePrefix=\server\share. Note that the path must be
2739 with just a single backslash prefix in this case.
2740
2741 Note: In previous versions of rclone this was the only supported meth‐
2742 od.
2743
2744 Read more about drive mapping (https://en.wikipedia.org/wiki/Drive_map‐
2745 ping)
2746
2747 See also Limitations section below.
2748
2749 Windows filesystem permissions
2750 The FUSE emulation layer on Windows must convert between the
2751 POSIX-based permission model used in FUSE, and the permission model
2752 used in Windows, based on access-control lists (ACL).
2753
2754 The mounted filesystem will normally get three entries in its ac‐
2755 cess-control list (ACL), representing permissions for the POSIX permis‐
2756 sion scopes: Owner, group and others. By default, the owner and group
2757 will be taken from the current user, and the built-in group "Everyone"
2758 will be used to represent others. The user/group can be customized
2759 with FUSE options "UserName" and "GroupName", e.g. -o UserName=user123
2760 -o GroupName="Authenticated Users".
2761
2762 The permissions on each entry will be set according to options
2763 --dir-perms and --file-perms, which takes a value in traditional numer‐
2764 ic notation (https://en.wikipedia.org/wiki/File-system_permissions#Nu‐
2765 meric_notation), where the default corresponds to --file-perms 0666
2766 --dir-perms 0777.
2767
2768 Note that the mapping of permissions is not always trivial, and the re‐
2769 sult you see in Windows Explorer may not be exactly like you expected.
2770 For example, when setting a value that includes write access, this will
2771 be mapped to individual permissions "write attributes", "write data"
2772 and "append data", but not "write extended attributes". Windows will
2773 then show this as basic permission "Special" instead of "Write", be‐
2774 cause "Write" includes the "write extended attributes" permission.
2775
2776 If you set POSIX permissions for only allowing access to the owner, us‐
2777 ing --file-perms 0600 --dir-perms 0700, the user group and the built-in
2778 "Everyone" group will still be given some special permissions, such as
2779 "read attributes" and "read permissions", in Windows. This is done for
2780 compatibility reasons, e.g. to allow users without additional permis‐
2781 sions to be able to read basic metadata about files like in UNIX. One
2782 case that may arise is that other programs (incorrectly) interprets
2783 this as the file being accessible by everyone. For example an SSH
2784 client may warn about "unprotected private key file".
2785
2786 WinFsp 2021 (version 1.9) introduces a new FUSE option "FileSecurity",
2787 that allows the complete specification of file security descriptors us‐
2788 ing SDDL (https://docs.microsoft.com/en-us/windows/win32/secauthz/secu‐
2789 rity-descriptor-string-format). With this you can work around issues
2790 such as the mentioned "unprotected private key file" by specifying -o
2791 FileSecurity="D:P(A;;FA;;;OW)", for file all access (FA) to the owner
2792 (OW).
2793
2794 Windows caveats
2795 Note that drives created as Administrator are not visible by other ac‐
2796 counts (including the account that was elevated as Administrator). So
2797 if you start a Windows drive from an Administrative Command Prompt and
2798 then try to access the same drive from Explorer (which does not run as
2799 Administrator), you will not be able to see the new drive.
2800
2801 The easiest way around this is to start the drive from a normal command
2802 prompt. It is also possible to start a drive from the SYSTEM account
2803 (using the WinFsp.Launcher infrastructure (https://github.com/billziss-
2804 gh/winfsp/wiki/WinFsp-Service-Architecture)) which creates drives ac‐
2805 cessible for everyone on the system or alternatively using the nssm
2806 service manager (https://nssm.cc/usage).
2807
2808 Limitations
2809 Without the use of --vfs-cache-mode this can only write files sequen‐
2810 tially, it can only seek when reading. This means that many applica‐
2811 tions won't work with their files on an rclone mount without
2812 --vfs-cache-mode writes or --vfs-cache-mode full. See the VFS File
2813 Caching section for more info.
2814
2815 The bucket based remotes (e.g. Swift, S3, Google Compute Storage, B2,
2816 Hubic) do not support the concept of empty directories, so empty direc‐
2817 tories will have a tendency to disappear once they fall out of the di‐
2818 rectory cache.
2819
2820 Only supported on Linux, FreeBSD, OS X and Windows at the moment.
2821
2822 rclone mount vs rclone sync/copy
2823 File systems expect things to be 100% reliable, whereas cloud storage
2824 systems are a long way from 100% reliable. The rclone sync/copy com‐
2825 mands cope with this with lots of retries. However rclone mount can't
2826 use retries in the same way without making local copies of the uploads.
2827 Look at the VFS File Caching for solutions to make mount more reliable.
2828
2829 Attribute caching
2830 You can use the flag --attr-timeout to set the time the kernel caches
2831 the attributes (size, modification time, etc.) for directory entries.
2832
2833 The default is 1s which caches files just long enough to avoid too many
2834 callbacks to rclone from the kernel.
2835
2836 In theory 0s should be the correct value for filesystems which can
2837 change outside the control of the kernel. However this causes quite a
2838 few problems such as rclone using too much memory
2839 (https://github.com/rclone/rclone/issues/2157), rclone not serving
2840 files to samba (https://forum.rclone.org/t/rclone-1-39-vs-1-40-mount-
2841 issue/5112) and excessive time listing directories
2842 (https://github.com/rclone/rclone/issues/2095#issuecomment-371141147).
2843
2844 The kernel can cache the info about a file for the time given by --at‐
2845 tr-timeout. You may see corruption if the remote file changes length
2846 during this window. It will show up as either a truncated file or a
2847 file with garbage on the end. With --attr-timeout 1s this is very un‐
2848 likely but not impossible. The higher you set --attr-timeout the more
2849 likely it is. The default setting of "1s" is the lowest setting which
2850 mitigates the problems above.
2851
2852 If you set it higher (10s or 1m say) then the kernel will call back to
2853 rclone less often making it more efficient, however there is more
2854 chance of the corruption issue above.
2855
2856 If files don't change on the remote outside of the control of rclone
2857 then there is no chance of corruption.
2858
2859 This is the same as setting the attr_timeout option in mount.fuse.
2860
2861 Filters
2862 Note that all the rclone filters can be used to select a subset of the
2863 files to be visible in the mount.
2864
2865 systemd
2866 When running rclone mount as a systemd service, it is possible to use
2867 Type=notify. In this case the service will enter the started state af‐
2868 ter the mountpoint has been successfully set up. Units having the
2869 rclone mount service specified as a requirement will see all files and
2870 folders immediately in this mode.
2871
2872 chunked reading
2873 --vfs-read-chunk-size will enable reading the source objects in parts.
2874 This can reduce the used download quota for some remotes by requesting
2875 only chunks from the remote that are actually read at the cost of an
2876 increased number of requests.
2877
2878 When --vfs-read-chunk-size-limit is also specified and greater than
2879 --vfs-read-chunk-size, the chunk size for each open file will get dou‐
2880 bled for each chunk read, until the specified value is reached. A val‐
2881 ue of -1 will disable the limit and the chunk size will grow indefi‐
2882 nitely.
2883
2884 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
2885 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
2886 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
2887 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
2888 1200M-1700M and so on.
2889
2890 VFS - Virtual File System
2891 This command uses the VFS layer. This adapts the cloud storage objects
2892 that rclone uses into something which looks much more like a disk fil‐
2893 ing system.
2894
2895 Cloud storage objects have lots of properties which aren't like disk
2896 files - you can't extend them or write to the middle of them, so the
2897 VFS layer has to deal with that. Because there is no one right way of
2898 doing this there are various options explained below.
2899
2900 The VFS layer also implements a directory cache - this caches info
2901 about files and directories (but not the data) in memory.
2902
2903 VFS Directory Cache
2904 Using the --dir-cache-time flag, you can control how long a directory
2905 should be considered up to date and not refreshed from the backend.
2906 Changes made through the mount will appear immediately or invalidate
2907 the cache.
2908
2909 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
2910 --poll-interval duration Time to wait between polling for changes.
2911
2912 However, changes made directly on the cloud storage by the web inter‐
2913 face or a different copy of rclone will only be picked up once the di‐
2914 rectory cache expires if the backend configured does not support
2915 polling for changes. If the backend supports polling, changes will be
2916 picked up within the polling interval.
2917
2918 You can send a SIGHUP signal to rclone for it to flush all directory
2919 caches, regardless of how old they are. Assuming only one rclone in‐
2920 stance is running, you can reset the cache like this:
2921
2922 kill -SIGHUP $(pidof rclone)
2923
2924 If you configure rclone with a remote control (/rc) then you can use
2925 rclone rc to flush the whole directory cache:
2926
2927 rclone rc vfs/forget
2928
2929 Or individual files or directories:
2930
2931 rclone rc vfs/forget file=path/to/file dir=path/to/dir
2932
2933 VFS File Buffering
2934 The --buffer-size flag determines the amount of memory, that will be
2935 used to buffer data in advance.
2936
2937 Each open file will try to keep the specified amount of data in memory
2938 at all times. The buffered data is bound to one open file and won't be
2939 shared.
2940
2941 This flag is a upper limit for the used memory per open file. The buf‐
2942 fer will only use memory for data that is downloaded but not not yet
2943 read. If the buffer is empty, only a small amount of memory will be
2944 used.
2945
2946 The maximum memory used by rclone for buffering can be up to --buf‐
2947 fer-size * open files.
2948
2949 VFS File Caching
2950 These flags control the VFS file caching options. File caching is nec‐
2951 essary to make the VFS layer appear compatible with a normal file sys‐
2952 tem. It can be disabled at the cost of some compatibility.
2953
2954 For example you'll need to enable VFS caching if you want to read and
2955 write simultaneously to a file. See below for more details.
2956
2957 Note that the VFS cache is separate from the cache backend and you may
2958 find that you need one or the other or both.
2959
2960 --cache-dir string Directory rclone will use for caching.
2961 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
2962 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
2963 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
2964 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
2965 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
2966
2967 If run with -vv rclone will print the location of the file cache. The
2968 files are stored in the user cache file area which is OS dependent but
2969 can be controlled with --cache-dir or setting the appropriate environ‐
2970 ment variable.
2971
2972 The cache has 4 different modes selected by --vfs-cache-mode. The
2973 higher the cache mode the more compatible rclone becomes at the cost of
2974 using disk space.
2975
2976 Note that files are written back to the remote only when they are
2977 closed and if they haven't been accessed for --vfs-write-back second.
2978 If rclone is quit or dies with files that haven't been uploaded, these
2979 will be uploaded next time rclone is run with the same flags.
2980
2981 If using --vfs-cache-max-size note that the cache may exceed this size
2982 for two reasons. Firstly because it is only checked every
2983 --vfs-cache-poll-interval. Secondly because open files cannot be
2984 evicted from the cache.
2985
2986 You should not run two copies of rclone using the same VFS cache with
2987 the same or overlapping remotes if using --vfs-cache-mode > off. This
2988 can potentially cause data corruption if you do. You can work around
2989 this by giving each rclone its own cache hierarchy with --cache-dir.
2990 You don't need to worry about this if the remotes in use don't overlap.
2991
2992 --vfs-cache-mode off
2993 In this mode (the default) the cache will read directly from the remote
2994 and write directly to the remote without caching anything on disk.
2995
2996 This will mean some operations are not possible
2997
2998 • Files can't be opened for both read AND write
2999
3000 • Files opened for write can't be seeked
3001
3002 • Existing files opened for write must have O_TRUNC set
3003
3004 • Files open for read with O_TRUNC will be opened write only
3005
3006 • Files open for write only will behave as if O_TRUNC was supplied
3007
3008 • Open modes O_APPEND, O_TRUNC are ignored
3009
3010 • If an upload fails it can't be retried
3011
3012 --vfs-cache-mode minimal
3013 This is very similar to "off" except that files opened for read AND
3014 write will be buffered to disk. This means that files opened for write
3015 will be a lot more compatible, but uses the minimal disk space.
3016
3017 These operations are not possible
3018
3019 • Files opened for write only can't be seeked
3020
3021 • Existing files opened for write must have O_TRUNC set
3022
3023 • Files opened for write only will ignore O_APPEND, O_TRUNC
3024
3025 • If an upload fails it can't be retried
3026
3027 --vfs-cache-mode writes
3028 In this mode files opened for read only are still read directly from
3029 the remote, write only and read/write files are buffered to disk first.
3030
3031 This mode should support all normal file system operations.
3032
3033 If an upload fails it will be retried at exponentially increasing in‐
3034 tervals up to 1 minute.
3035
3036 --vfs-cache-mode full
3037 In this mode all reads and writes are buffered to and from disk. When
3038 data is read from the remote this is buffered to disk as well.
3039
3040 In this mode the files in the cache will be sparse files and rclone
3041 will keep track of which bits of the files it has downloaded.
3042
3043 So if an application only reads the starts of each file, then rclone
3044 will only buffer the start of the file. These files will appear to be
3045 their full size in the cache, but they will be sparse files with only
3046 the data that has been downloaded present in them.
3047
3048 This mode should support all normal file system operations and is oth‐
3049 erwise identical to --vfs-cache-mode writes.
3050
3051 When reading a file rclone will read --buffer-size plus
3052 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
3053 whereas the --vfs-read-ahead is buffered on disk.
3054
3055 When using this mode it is recommended that --buffer-size is not set
3056 too big and --vfs-read-ahead is set large if required.
3057
3058 IMPORTANT not all file systems support sparse files. In particular
3059 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
3060 ry is on a filesystem which doesn't support sparse files and it will
3061 log an ERROR message if one is detected.
3062
3063 VFS Performance
3064 These flags may be used to enable/disable features of the VFS for per‐
3065 formance or other reasons.
3066
3067 In particular S3 and Swift benefit hugely from the --no-modtime flag
3068 (or use --use-server-modtime for a slightly different effect) as each
3069 read of the modification time takes a transaction.
3070
3071 --no-checksum Don't compare checksums on up/download.
3072 --no-modtime Don't read/write the modification time (can speed things up).
3073 --no-seek Don't allow seeking in files.
3074 --read-only Mount read-only.
3075
3076 When rclone reads files from a remote it reads them in chunks. This
3077 means that rather than requesting the whole file rclone reads the chunk
3078 specified. This is advantageous because some cloud providers account
3079 for reads being all the data requested, not all the data delivered.
3080
3081 Rclone will keep doubling the chunk size requested starting at
3082 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
3083 less it is set to "off" in which case there will be no limit.
3084
3085 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3086 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
3087
3088 Sometimes rclone is delivered reads or writes out of order. Rather
3089 than seeking rclone will wait a short time for the in sequence read or
3090 write to come in. These flags only come into effect when not using an
3091 on disk cache file.
3092
3093 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
3094 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
3095
3096 When using VFS write caching (--vfs-cache-mode with value writes or
3097 full), the global flag --transfers can be set to adjust the number of
3098 parallel uploads of modified files from cache (the related global flag
3099 --checkers have no effect on mount).
3100
3101 --transfers int Number of file transfers to run in parallel. (default 4)
3102
3103 VFS Case Sensitivity
3104 Linux file systems are case-sensitive: two files can differ only by
3105 case, and the exact case must be used when opening a file.
3106
3107 File systems in modern Windows are case-insensitive but case-preserv‐
3108 ing: although existing files can be opened using any case, the exact
3109 case used to create the file is preserved and available for programs to
3110 query. It is not allowed for two files in the same directory to differ
3111 only by case.
3112
3113 Usually file systems on macOS are case-insensitive. It is possible to
3114 make macOS file systems case-sensitive but that is not the default
3115
3116 The --vfs-case-insensitive mount flag controls how rclone handles these
3117 two cases. If its value is "false", rclone passes file names to the
3118 mounted file system as-is. If the flag is "true" (or appears without a
3119 value on command line), rclone may perform a "fixup" as explained be‐
3120 low.
3121
3122 The user may specify a file name to open/delete/rename/etc with a case
3123 different than what is stored on mounted file system. If an argument
3124 refers to an existing file with exactly the same name, then the case of
3125 the existing file on the disk will be used. However, if a file name
3126 with exactly the same name is not found but a name differing only by
3127 case exists, rclone will transparently fixup the name. This fixup hap‐
3128 pens only when an existing file is requested. Case sensitivity of file
3129 names created anew by rclone is controlled by an underlying mounted
3130 file system.
3131
3132 Note that case sensitivity of the operating system running rclone (the
3133 target) may differ from case sensitivity of a file system mounted by
3134 rclone (the source). The flag controls whether "fixup" is performed to
3135 satisfy the target.
3136
3137 If the flag is not provided on the command line, then its default value
3138 depends on the operating system where rclone runs: "true" on Windows
3139 and macOS, "false" otherwise. If the flag is provided without a value,
3140 then it is "true".
3141
3142 Alternate report of used bytes
3143 Some backends, most notably S3, do not report the amount of bytes used.
3144 If you need this information to be available when running df on the
3145 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
3146 flag set, instead of relying on the backend to report this information,
3147 rclone will scan the whole remote similar to rclone size and compute
3148 the total used space itself.
3149
3150 WARNING. Contrary to rclone size, this flag ignores filters so that the
3151 result is accurate. However, this is very inefficient and may cost
3152 lots of API calls resulting in extra charges. Use it as a last resort
3153 and only with caching.
3154
3155 rclone mount remote:path /path/to/mountpoint [flags]
3156
3157 Options
3158 --allow-non-empty Allow mounting over a non-empty directory. Not supported on Windows.
3159 --allow-other Allow access to other users. Not supported on Windows.
3160 --allow-root Allow access to root user. Not supported on Windows.
3161 --async-read Use asynchronous reads. Not supported on Windows. (default true)
3162 --attr-timeout duration Time for which file/directory attributes are cached. (default 1s)
3163 --daemon Run mount as a daemon (background mode). Not supported on Windows.
3164 --daemon-timeout duration Time limit for rclone to respond to kernel. Not supported on Windows.
3165 --debug-fuse Debug the FUSE internals - needs -v.
3166 --default-permissions Makes kernel enforce access control based on the file mode. Not supported on Windows.
3167 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3168 --dir-perms FileMode Directory permissions (default 0777)
3169 --file-perms FileMode File permissions (default 0666)
3170 --fuse-flag stringArray Flags or arguments to be passed direct to libfuse/WinFsp. Repeat if required.
3171 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
3172 -h, --help help for mount
3173 --max-read-ahead SizeSuffix The number of bytes that can be prefetched for sequential reads. Not supported on Windows. (default 128k)
3174 --network-mode Mount as remote network drive, instead of fixed disk drive. Supported on Windows only
3175 --no-checksum Don't compare checksums on up/download.
3176 --no-modtime Don't read/write the modification time (can speed things up).
3177 --no-seek Don't allow seeking in files.
3178 --noappledouble Ignore Apple Double (._) and .DS_Store files. Supported on OSX only. (default true)
3179 --noapplexattr Ignore all "com.apple.*" extended attributes. Supported on OSX only.
3180 -o, --option stringArray Option for libfuse/WinFsp. Repeat if required.
3181 --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)
3182 --read-only Mount read-only.
3183 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
3184 --umask int Override the permission bits set by the filesystem. Not supported on Windows.
3185 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3186 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3187 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3188 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3189 --vfs-case-insensitive If a file name not found, find a case insensitive match.
3190 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
3191 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3192 --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)
3193 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
3194 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size.
3195 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
3196 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
3197 --volname string Set the volume name. Supported on Windows and OSX only.
3198 --write-back-cache Makes kernel buffer writes before sending them to rclone. Without this, writethrough caching is used. Not supported on Windows.
3199
3200 See the global flags page (https://rclone.org/flags/) for global op‐
3201 tions not listed here.
3202
3203 SEE ALSO
3204 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3205 commands, flags and backends.
3206
3208 Move file or directory from source to dest.
3209
3210 Synopsis
3211 If source:path is a file or directory then it moves it to a file or di‐
3212 rectory named dest:path.
3213
3214 This can be used to rename files or upload single files to other than
3215 their existing name. If the source is a directory then it acts exactly
3216 like the move command.
3217
3218 So
3219
3220 rclone moveto src dst
3221
3222 where src and dst are rclone paths, either remote:path or /path/to/lo‐
3223 cal or C:.
3224
3225 This will:
3226
3227 if src is file
3228 move it to dst, overwriting an existing file if it exists
3229 if src is directory
3230 move it to dst, overwriting existing files if they exist
3231 see move command for full details
3232
3233 This doesn't transfer unchanged files, testing by size and modification
3234 time or MD5SUM. src will be deleted on successful transfer.
3235
3236 Important: Since this can cause data loss, test first with the
3237 --dry-run or the --interactive/-i flag.
3238
3239 Note: Use the -P/--progress flag to view real-time transfer statistics.
3240
3241 rclone moveto source:path dest:path [flags]
3242
3243 Options
3244 -h, --help help for moveto
3245
3246 See the global flags page (https://rclone.org/flags/) for global op‐
3247 tions not listed here.
3248
3249 SEE ALSO
3250 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3251 commands, flags and backends.
3252
3254 Explore a remote with a text based user interface.
3255
3256 Synopsis
3257 This displays a text based user interface allowing the navigation of a
3258 remote. It is most useful for answering the question - "What is using
3259 all my disk space?".
3260
3261 To make the user interface it first scans the entire remote given and
3262 builds an in memory representation. rclone ncdu can be used during
3263 this scanning phase and you will see it building up the directory
3264 structure as it goes along.
3265
3266 Here are the keys - press '?' to toggle the help on and off
3267
3268 ↑,↓ or k,j to Move
3269 →,l to enter
3270 ←,h to return
3271 c toggle counts
3272 g toggle graph
3273 a toggle average size in directory
3274 n,s,C,A sort by name,size,count,average size
3275 d delete file/directory
3276 y copy current path to clipboard
3277 Y display current path
3278 ^L refresh screen
3279 ? to toggle help on and off
3280 q/ESC/c-C to quit
3281
3282 This an homage to the ncdu tool (https://dev.yorhel.nl/ncdu) but for
3283 rclone remotes. It is missing lots of features at the moment but is
3284 useful as it stands.
3285
3286 Note that it might take some time to delete big files/folders. The UI
3287 won't respond in the meantime since the deletion is done synchronously.
3288
3289 rclone ncdu remote:path [flags]
3290
3291 Options
3292 -h, --help help for ncdu
3293
3294 See the global flags page (https://rclone.org/flags/) for global op‐
3295 tions not listed here.
3296
3297 SEE ALSO
3298 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3299 commands, flags and backends.
3300
3302 Obscure password for use in the rclone config file.
3303
3304 Synopsis
3305 In the rclone config file, human readable passwords are obscured. Ob‐
3306 scuring them is done by encrypting them and writing them out in base64.
3307 This is not a secure way of encrypting these passwords as rclone can
3308 decrypt them - it is to prevent "eyedropping" - namely someone seeing a
3309 password in the rclone config file by accident.
3310
3311 Many equally important things (like access tokens) are not obscured in
3312 the config file. However it is very hard to shoulder surf a 64 charac‐
3313 ter hex token.
3314
3315 This command can also accept a password through STDIN instead of an ar‐
3316 gument by passing a hyphen as an argument. This will use the first
3317 line of STDIN as the password not including the trailing newline.
3318
3319 echo "secretpassword" | rclone obscure -
3320
3321 If there is no data on STDIN to read, rclone obscure will default to
3322 obfuscating the hyphen itself.
3323
3324 If you want to encrypt the config file then please use config file en‐
3325 cryption - see rclone config (https://rclone.org/commands/rclone_con‐
3326 fig/) for more info.
3327
3328 rclone obscure password [flags]
3329
3330 Options
3331 -h, --help help for obscure
3332
3333 See the global flags page (https://rclone.org/flags/) for global op‐
3334 tions not listed here.
3335
3336 SEE ALSO
3337 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3338 commands, flags and backends.
3339
3341 Run a command against a running rclone.
3342
3343 Synopsis
3344 This runs a command against a running rclone. Use the --url flag to
3345 specify an non default URL to connect on. This can be either a ":port"
3346 which is taken to mean "http://localhost:port" or a "host:port" which
3347 is taken to mean "http://host:port"
3348
3349 A username and password can be passed in with --user and --pass.
3350
3351 Note that --rc-addr, --rc-user, --rc-pass will be read also for --url,
3352 --user, --pass.
3353
3354 Arguments should be passed in as parameter=value.
3355
3356 The result will be returned as a JSON object by default.
3357
3358 The --json parameter can be used to pass in a JSON blob as an input in‐
3359 stead of key=value arguments. This is the only way of passing in more
3360 complicated values.
3361
3362 The -o/--opt option can be used to set a key "opt" with key, value op‐
3363 tions in the form "-o key=value" or "-o key". It can be repeated as
3364 many times as required. This is useful for rc commands which take the
3365 "opt" parameter which by convention is a dictionary of strings.
3366
3367 -o key=value -o key2
3368
3369 Will place this in the "opt" value
3370
3371 {"key":"value", "key2","")
3372
3373 The -a/--arg option can be used to set strings in the "arg" value. It
3374 can be repeated as many times as required. This is useful for rc com‐
3375 mands which take the "arg" parameter which by convention is a list of
3376 strings.
3377
3378 -a value -a value2
3379
3380 Will place this in the "arg" value
3381
3382 ["value", "value2"]
3383
3384 Use --loopback to connect to the rclone instance running "rclone rc".
3385 This is very useful for testing commands without having to run an
3386 rclone rc server, e.g.:
3387
3388 rclone rc --loopback operations/about fs=/
3389
3390 Use "rclone rc" to see a list of all possible commands.
3391
3392 rclone rc commands parameter [flags]
3393
3394 Options
3395 -a, --arg stringArray Argument placed in the "arg" array.
3396 -h, --help help for rc
3397 --json string Input JSON - use instead of key=value args.
3398 --loopback If set connect to this rclone instance not via HTTP.
3399 --no-output If set, don't output the JSON result.
3400 -o, --opt stringArray Option in the form name=value or name placed in the "opt" array.
3401 --pass string Password to use to connect to rclone remote control.
3402 --url string URL to connect to rclone remote control. (default "http://localhost:5572/")
3403 --user string Username to use to rclone remote control.
3404
3405 See the global flags page (https://rclone.org/flags/) for global op‐
3406 tions not listed here.
3407
3408 SEE ALSO
3409 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3410 commands, flags and backends.
3411
3413 Copies standard input to file on remote.
3414
3415 Synopsis
3416 rclone rcat reads from standard input (stdin) and copies it to a single
3417 remote file.
3418
3419 echo "hello world" | rclone rcat remote:path/to/file
3420 ffmpeg - | rclone rcat remote:path/to/file
3421
3422 If the remote file already exists, it will be overwritten.
3423
3424 rcat will try to upload small files in a single request, which is usu‐
3425 ally more efficient than the streaming/chunked upload endpoints, which
3426 use multiple requests. Exact behaviour depends on the remote. What is
3427 considered a small file may be set through --streaming-upload-cutoff.
3428 Uploading only starts after the cutoff is reached or if the file ends
3429 before that. The data must fit into RAM. The cutoff needs to be small
3430 enough to adhere the limits of your remote, please see there. General‐
3431 ly speaking, setting this cutoff too high will decrease your perfor‐
3432 mance.
3433
3434 Note that the upload can also not be retried because the data is not
3435 kept around until the upload succeeds. If you need to transfer a lot
3436 of data, you're better off caching locally and then rclone move it to
3437 the destination.
3438
3439 rclone rcat remote:path [flags]
3440
3441 Options
3442 -h, --help help for rcat
3443
3444 See the global flags page (https://rclone.org/flags/) for global op‐
3445 tions not listed here.
3446
3447 SEE ALSO
3448 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3449 commands, flags and backends.
3450
3452 Run rclone listening to remote control commands only.
3453
3454 Synopsis
3455 This runs rclone so that it only listens to remote control commands.
3456
3457 This is useful if you are controlling rclone via the rc API.
3458
3459 If you pass in a path to a directory, rclone will serve that directory
3460 for GET requests on the URL passed in. It will also open the URL in
3461 the browser when rclone is run.
3462
3463 See the rc documentation (https://rclone.org/rc/) for more info on the
3464 rc flags.
3465
3466 rclone rcd <path to files to serve>* [flags]
3467
3468 Options
3469 -h, --help help for rcd
3470
3471 See the global flags page (https://rclone.org/flags/) for global op‐
3472 tions not listed here.
3473
3474 SEE ALSO
3475 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3476 commands, flags and backends.
3477
3479 Remove empty directories under the path.
3480
3481 Synopsis
3482 This recursively removes any empty directories (including directories
3483 that only contain empty directories), that it finds under the path.
3484 The root path itself will also be removed if it is empty, unless you
3485 supply the --leave-root flag.
3486
3487 Use command rmdir to delete just the empty directory given by path, not
3488 recurse.
3489
3490 This is useful for tidying up remotes that rclone has left a lot of
3491 empty directories in. For example the delete command will delete files
3492 but leave the directory structure (unless used with option --rmdirs).
3493
3494 To delete a path and any objects in it, use purge command.
3495
3496 rclone rmdirs remote:path [flags]
3497
3498 Options
3499 -h, --help help for rmdirs
3500 --leave-root Do not remove root directory if empty
3501
3502 See the global flags page (https://rclone.org/flags/) for global op‐
3503 tions not listed here.
3504
3505 SEE ALSO
3506 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3507 commands, flags and backends.
3508
3510 Update the rclone binary.
3511
3512 Synopsis
3513 This command downloads the latest release of rclone and replaces the
3514 currently running binary. The download is verified with a hashsum and
3515 cryptographically signed signature.
3516
3517 If used without flags (or with implied --stable flag), this command
3518 will install the latest stable release. However, some issues may be
3519 fixed (or features added) only in the latest beta release. In such
3520 cases you should run the command with the --beta flag, i.e. rclone
3521 selfupdate --beta. You can check in advance what version would be in‐
3522 stalled by adding the --check flag, then repeat the command without it
3523 when you are satisfied.
3524
3525 Sometimes the rclone team may recommend you a concrete beta or stable
3526 rclone release to troubleshoot your issue or add a bleeding edge fea‐
3527 ture. The --version VER flag, if given, will update to the concrete
3528 version instead of the latest one. If you omit micro version from VER
3529 (for example 1.53), the latest matching micro version will be used.
3530
3531 Upon successful update rclone will print a message that contains a pre‐
3532 vious version number. You will need it if you later decide to revert
3533 your update for some reason. Then you'll have to note the previous
3534 version and run the following command: rclone selfupdate [--beta] OLD‐
3535 VER. If the old version contains only dots and digits (for example
3536 v1.54.0) then it's a stable release so you won't need the --beta flag.
3537 Beta releases have an additional information similar to v1.54.0-be‐
3538 ta.5111.06f1c0c61. (if you are a developer and use a locally built
3539 rclone, the version number will end with -DEV, you will have to rebuild
3540 it as it obviously can't be distributed).
3541
3542 If you previously installed rclone via a package manager, the package
3543 may include local documentation or configure services. You may wish to
3544 update with the flag --package deb or --package rpm (whichever is cor‐
3545 rect for your OS) to update these too. This command with the default
3546 --package zip will update only the rclone executable so the local manu‐
3547 al may become inaccurate after it.
3548
3549 The rclone mount command (https://rclone.org/commands/rclone_mount/)
3550 may or may not support extended FUSE options depending on the build and
3551 OS. selfupdate will refuse to update if the capability would be dis‐
3552 carded.
3553
3554 Note: Windows forbids deletion of a currently running executable so
3555 this command will rename the old executable to 'rclone.old.exe' upon
3556 success.
3557
3558 Please note that this command was not available before rclone version
3559 1.55. If it fails for you with the message unknown command "selfup‐
3560 date" then you will need to update manually following the install in‐
3561 structions located at https://rclone.org/install/
3562
3563 rclone selfupdate [flags]
3564
3565 Options
3566 --beta Install beta release.
3567 --check Check for latest release, do not download.
3568 -h, --help help for selfupdate
3569 --output string Save the downloaded binary at a given path (default: replace running binary)
3570 --package string Package format: zip|deb|rpm (default: zip)
3571 --stable Install stable release (this is the default)
3572 --version string Install the given rclone version (default: latest)
3573
3574 See the global flags page (https://rclone.org/flags/) for global op‐
3575 tions not listed here.
3576
3577 SEE ALSO
3578 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3579 commands, flags and backends.
3580
3582 Serve a remote over a protocol.
3583
3584 Synopsis
3585 rclone serve is used to serve a remote over a given protocol. This
3586 command requires the use of a subcommand to specify the protocol, e.g.
3587
3588 rclone serve http remote:
3589
3590 Each subcommand has its own options which you can see in their help.
3591
3592 rclone serve <protocol> [opts] <remote> [flags]
3593
3594 Options
3595 -h, --help help for serve
3596
3597 See the global flags page (https://rclone.org/flags/) for global op‐
3598 tions not listed here.
3599
3600 SEE ALSO
3601 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3602 commands, flags and backends.
3603
3604 • rclone serve dlna (https://rclone.org/commands/rclone_serve_dlna/) -
3605 Serve remote:path over DLNA
3606
3607 • rclone serve ftp (https://rclone.org/commands/rclone_serve_ftp/) -
3608 Serve remote:path over FTP.
3609
3610 • rclone serve http (https://rclone.org/commands/rclone_serve_http/) -
3611 Serve the remote over HTTP.
3612
3613 • rclone serve restic (https://rclone.org/com‐
3614 mands/rclone_serve_restic/) - Serve the remote for restic's REST API.
3615
3616 • rclone serve sftp (https://rclone.org/commands/rclone_serve_sftp/) -
3617 Serve the remote over SFTP.
3618
3619 • rclone serve webdav (https://rclone.org/commands/rclone_serve_web‐
3620 dav/) - Serve remote:path over webdav.
3621
3623 Serve remote:path over DLNA
3624
3625 Synopsis
3626 rclone serve dlna is a DLNA media server for media stored in an rclone
3627 remote. Many devices, such as the Xbox and PlayStation, can automati‐
3628 cally discover this server in the LAN and play audio/video from it.
3629 VLC is also supported. Service discovery uses UDP multicast packets
3630 (SSDP) and will thus only work on LANs.
3631
3632 Rclone will list all files present in the remote, without filtering
3633 based on media formats or file extensions. Additionally, there is no
3634 media transcoding support. This means that some players might show
3635 files that they are not able to play back correctly.
3636
3637 Server options
3638 Use --addr to specify which IP address and port the server should lis‐
3639 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
3640
3641 Use --name to choose the friendly server name, which is by default
3642 "rclone (hostname)".
3643
3644 Use --log-trace in conjunction with -vv to enable additional debug log‐
3645 ging of all UPNP traffic.
3646
3647 VFS - Virtual File System
3648 This command uses the VFS layer. This adapts the cloud storage objects
3649 that rclone uses into something which looks much more like a disk fil‐
3650 ing system.
3651
3652 Cloud storage objects have lots of properties which aren't like disk
3653 files - you can't extend them or write to the middle of them, so the
3654 VFS layer has to deal with that. Because there is no one right way of
3655 doing this there are various options explained below.
3656
3657 The VFS layer also implements a directory cache - this caches info
3658 about files and directories (but not the data) in memory.
3659
3660 VFS Directory Cache
3661 Using the --dir-cache-time flag, you can control how long a directory
3662 should be considered up to date and not refreshed from the backend.
3663 Changes made through the mount will appear immediately or invalidate
3664 the cache.
3665
3666 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3667 --poll-interval duration Time to wait between polling for changes.
3668
3669 However, changes made directly on the cloud storage by the web inter‐
3670 face or a different copy of rclone will only be picked up once the di‐
3671 rectory cache expires if the backend configured does not support
3672 polling for changes. If the backend supports polling, changes will be
3673 picked up within the polling interval.
3674
3675 You can send a SIGHUP signal to rclone for it to flush all directory
3676 caches, regardless of how old they are. Assuming only one rclone in‐
3677 stance is running, you can reset the cache like this:
3678
3679 kill -SIGHUP $(pidof rclone)
3680
3681 If you configure rclone with a remote control (/rc) then you can use
3682 rclone rc to flush the whole directory cache:
3683
3684 rclone rc vfs/forget
3685
3686 Or individual files or directories:
3687
3688 rclone rc vfs/forget file=path/to/file dir=path/to/dir
3689
3690 VFS File Buffering
3691 The --buffer-size flag determines the amount of memory, that will be
3692 used to buffer data in advance.
3693
3694 Each open file will try to keep the specified amount of data in memory
3695 at all times. The buffered data is bound to one open file and won't be
3696 shared.
3697
3698 This flag is a upper limit for the used memory per open file. The buf‐
3699 fer will only use memory for data that is downloaded but not not yet
3700 read. If the buffer is empty, only a small amount of memory will be
3701 used.
3702
3703 The maximum memory used by rclone for buffering can be up to --buf‐
3704 fer-size * open files.
3705
3706 VFS File Caching
3707 These flags control the VFS file caching options. File caching is nec‐
3708 essary to make the VFS layer appear compatible with a normal file sys‐
3709 tem. It can be disabled at the cost of some compatibility.
3710
3711 For example you'll need to enable VFS caching if you want to read and
3712 write simultaneously to a file. See below for more details.
3713
3714 Note that the VFS cache is separate from the cache backend and you may
3715 find that you need one or the other or both.
3716
3717 --cache-dir string Directory rclone will use for caching.
3718 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3719 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3720 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3721 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3722 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
3723
3724 If run with -vv rclone will print the location of the file cache. The
3725 files are stored in the user cache file area which is OS dependent but
3726 can be controlled with --cache-dir or setting the appropriate environ‐
3727 ment variable.
3728
3729 The cache has 4 different modes selected by --vfs-cache-mode. The
3730 higher the cache mode the more compatible rclone becomes at the cost of
3731 using disk space.
3732
3733 Note that files are written back to the remote only when they are
3734 closed and if they haven't been accessed for --vfs-write-back second.
3735 If rclone is quit or dies with files that haven't been uploaded, these
3736 will be uploaded next time rclone is run with the same flags.
3737
3738 If using --vfs-cache-max-size note that the cache may exceed this size
3739 for two reasons. Firstly because it is only checked every
3740 --vfs-cache-poll-interval. Secondly because open files cannot be
3741 evicted from the cache.
3742
3743 You should not run two copies of rclone using the same VFS cache with
3744 the same or overlapping remotes if using --vfs-cache-mode > off. This
3745 can potentially cause data corruption if you do. You can work around
3746 this by giving each rclone its own cache hierarchy with --cache-dir.
3747 You don't need to worry about this if the remotes in use don't overlap.
3748
3749 --vfs-cache-mode off
3750 In this mode (the default) the cache will read directly from the remote
3751 and write directly to the remote without caching anything on disk.
3752
3753 This will mean some operations are not possible
3754
3755 • Files can't be opened for both read AND write
3756
3757 • Files opened for write can't be seeked
3758
3759 • Existing files opened for write must have O_TRUNC set
3760
3761 • Files open for read with O_TRUNC will be opened write only
3762
3763 • Files open for write only will behave as if O_TRUNC was supplied
3764
3765 • Open modes O_APPEND, O_TRUNC are ignored
3766
3767 • If an upload fails it can't be retried
3768
3769 --vfs-cache-mode minimal
3770 This is very similar to "off" except that files opened for read AND
3771 write will be buffered to disk. This means that files opened for write
3772 will be a lot more compatible, but uses the minimal disk space.
3773
3774 These operations are not possible
3775
3776 • Files opened for write only can't be seeked
3777
3778 • Existing files opened for write must have O_TRUNC set
3779
3780 • Files opened for write only will ignore O_APPEND, O_TRUNC
3781
3782 • If an upload fails it can't be retried
3783
3784 --vfs-cache-mode writes
3785 In this mode files opened for read only are still read directly from
3786 the remote, write only and read/write files are buffered to disk first.
3787
3788 This mode should support all normal file system operations.
3789
3790 If an upload fails it will be retried at exponentially increasing in‐
3791 tervals up to 1 minute.
3792
3793 --vfs-cache-mode full
3794 In this mode all reads and writes are buffered to and from disk. When
3795 data is read from the remote this is buffered to disk as well.
3796
3797 In this mode the files in the cache will be sparse files and rclone
3798 will keep track of which bits of the files it has downloaded.
3799
3800 So if an application only reads the starts of each file, then rclone
3801 will only buffer the start of the file. These files will appear to be
3802 their full size in the cache, but they will be sparse files with only
3803 the data that has been downloaded present in them.
3804
3805 This mode should support all normal file system operations and is oth‐
3806 erwise identical to --vfs-cache-mode writes.
3807
3808 When reading a file rclone will read --buffer-size plus
3809 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
3810 whereas the --vfs-read-ahead is buffered on disk.
3811
3812 When using this mode it is recommended that --buffer-size is not set
3813 too big and --vfs-read-ahead is set large if required.
3814
3815 IMPORTANT not all file systems support sparse files. In particular
3816 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
3817 ry is on a filesystem which doesn't support sparse files and it will
3818 log an ERROR message if one is detected.
3819
3820 VFS Performance
3821 These flags may be used to enable/disable features of the VFS for per‐
3822 formance or other reasons.
3823
3824 In particular S3 and Swift benefit hugely from the --no-modtime flag
3825 (or use --use-server-modtime for a slightly different effect) as each
3826 read of the modification time takes a transaction.
3827
3828 --no-checksum Don't compare checksums on up/download.
3829 --no-modtime Don't read/write the modification time (can speed things up).
3830 --no-seek Don't allow seeking in files.
3831 --read-only Mount read-only.
3832
3833 When rclone reads files from a remote it reads them in chunks. This
3834 means that rather than requesting the whole file rclone reads the chunk
3835 specified. This is advantageous because some cloud providers account
3836 for reads being all the data requested, not all the data delivered.
3837
3838 Rclone will keep doubling the chunk size requested starting at
3839 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
3840 less it is set to "off" in which case there will be no limit.
3841
3842 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3843 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
3844
3845 Sometimes rclone is delivered reads or writes out of order. Rather
3846 than seeking rclone will wait a short time for the in sequence read or
3847 write to come in. These flags only come into effect when not using an
3848 on disk cache file.
3849
3850 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
3851 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
3852
3853 When using VFS write caching (--vfs-cache-mode with value writes or
3854 full), the global flag --transfers can be set to adjust the number of
3855 parallel uploads of modified files from cache (the related global flag
3856 --checkers have no effect on mount).
3857
3858 --transfers int Number of file transfers to run in parallel. (default 4)
3859
3860 VFS Case Sensitivity
3861 Linux file systems are case-sensitive: two files can differ only by
3862 case, and the exact case must be used when opening a file.
3863
3864 File systems in modern Windows are case-insensitive but case-preserv‐
3865 ing: although existing files can be opened using any case, the exact
3866 case used to create the file is preserved and available for programs to
3867 query. It is not allowed for two files in the same directory to differ
3868 only by case.
3869
3870 Usually file systems on macOS are case-insensitive. It is possible to
3871 make macOS file systems case-sensitive but that is not the default
3872
3873 The --vfs-case-insensitive mount flag controls how rclone handles these
3874 two cases. If its value is "false", rclone passes file names to the
3875 mounted file system as-is. If the flag is "true" (or appears without a
3876 value on command line), rclone may perform a "fixup" as explained be‐
3877 low.
3878
3879 The user may specify a file name to open/delete/rename/etc with a case
3880 different than what is stored on mounted file system. If an argument
3881 refers to an existing file with exactly the same name, then the case of
3882 the existing file on the disk will be used. However, if a file name
3883 with exactly the same name is not found but a name differing only by
3884 case exists, rclone will transparently fixup the name. This fixup hap‐
3885 pens only when an existing file is requested. Case sensitivity of file
3886 names created anew by rclone is controlled by an underlying mounted
3887 file system.
3888
3889 Note that case sensitivity of the operating system running rclone (the
3890 target) may differ from case sensitivity of a file system mounted by
3891 rclone (the source). The flag controls whether "fixup" is performed to
3892 satisfy the target.
3893
3894 If the flag is not provided on the command line, then its default value
3895 depends on the operating system where rclone runs: "true" on Windows
3896 and macOS, "false" otherwise. If the flag is provided without a value,
3897 then it is "true".
3898
3899 Alternate report of used bytes
3900 Some backends, most notably S3, do not report the amount of bytes used.
3901 If you need this information to be available when running df on the
3902 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
3903 flag set, instead of relying on the backend to report this information,
3904 rclone will scan the whole remote similar to rclone size and compute
3905 the total used space itself.
3906
3907 WARNING. Contrary to rclone size, this flag ignores filters so that the
3908 result is accurate. However, this is very inefficient and may cost
3909 lots of API calls resulting in extra charges. Use it as a last resort
3910 and only with caching.
3911
3912 rclone serve dlna remote:path [flags]
3913
3914 Options
3915 --addr string ip:port or :port to bind the DLNA http server to. (default ":7879")
3916 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3917 --dir-perms FileMode Directory permissions (default 0777)
3918 --file-perms FileMode File permissions (default 0666)
3919 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
3920 -h, --help help for dlna
3921 --log-trace enable trace logging of SOAP traffic
3922 --name string name of DLNA server
3923 --no-checksum Don't compare checksums on up/download.
3924 --no-modtime Don't read/write the modification time (can speed things up).
3925 --no-seek Don't allow seeking in files.
3926 --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)
3927 --read-only Mount read-only.
3928 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
3929 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
3930 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3931 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3932 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3933 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3934 --vfs-case-insensitive If a file name not found, find a case insensitive match.
3935 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
3936 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3937 --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)
3938 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
3939 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size.
3940 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
3941 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
3942
3943 See the global flags page (https://rclone.org/flags/) for global op‐
3944 tions not listed here.
3945
3946 SEE ALSO
3947 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
3948 remote over a protocol.
3949
3951 Serve remote:path over FTP.
3952
3953 Synopsis
3954 rclone serve ftp implements a basic ftp server to serve the remote over
3955 FTP protocol. This can be viewed with a ftp client or you can make a
3956 remote of type ftp to read and write it.
3957
3958 Server options
3959 Use --addr to specify which IP address and port the server should lis‐
3960 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
3961 By default it only listens on localhost. You can use port :0 to let
3962 the OS choose an available port.
3963
3964 If you set --addr to listen on a public or LAN accessible IP address
3965 then using Authentication is advised - see the next section for info.
3966
3967 Authentication
3968 By default this will serve files without needing a login.
3969
3970 You can set a single username and password with the --user and --pass
3971 flags.
3972
3973 VFS - Virtual File System
3974 This command uses the VFS layer. This adapts the cloud storage objects
3975 that rclone uses into something which looks much more like a disk fil‐
3976 ing system.
3977
3978 Cloud storage objects have lots of properties which aren't like disk
3979 files - you can't extend them or write to the middle of them, so the
3980 VFS layer has to deal with that. Because there is no one right way of
3981 doing this there are various options explained below.
3982
3983 The VFS layer also implements a directory cache - this caches info
3984 about files and directories (but not the data) in memory.
3985
3986 VFS Directory Cache
3987 Using the --dir-cache-time flag, you can control how long a directory
3988 should be considered up to date and not refreshed from the backend.
3989 Changes made through the mount will appear immediately or invalidate
3990 the cache.
3991
3992 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3993 --poll-interval duration Time to wait between polling for changes.
3994
3995 However, changes made directly on the cloud storage by the web inter‐
3996 face or a different copy of rclone will only be picked up once the di‐
3997 rectory cache expires if the backend configured does not support
3998 polling for changes. If the backend supports polling, changes will be
3999 picked up within the polling interval.
4000
4001 You can send a SIGHUP signal to rclone for it to flush all directory
4002 caches, regardless of how old they are. Assuming only one rclone in‐
4003 stance is running, you can reset the cache like this:
4004
4005 kill -SIGHUP $(pidof rclone)
4006
4007 If you configure rclone with a remote control (/rc) then you can use
4008 rclone rc to flush the whole directory cache:
4009
4010 rclone rc vfs/forget
4011
4012 Or individual files or directories:
4013
4014 rclone rc vfs/forget file=path/to/file dir=path/to/dir
4015
4016 VFS File Buffering
4017 The --buffer-size flag determines the amount of memory, that will be
4018 used to buffer data in advance.
4019
4020 Each open file will try to keep the specified amount of data in memory
4021 at all times. The buffered data is bound to one open file and won't be
4022 shared.
4023
4024 This flag is a upper limit for the used memory per open file. The buf‐
4025 fer will only use memory for data that is downloaded but not not yet
4026 read. If the buffer is empty, only a small amount of memory will be
4027 used.
4028
4029 The maximum memory used by rclone for buffering can be up to --buf‐
4030 fer-size * open files.
4031
4032 VFS File Caching
4033 These flags control the VFS file caching options. File caching is nec‐
4034 essary to make the VFS layer appear compatible with a normal file sys‐
4035 tem. It can be disabled at the cost of some compatibility.
4036
4037 For example you'll need to enable VFS caching if you want to read and
4038 write simultaneously to a file. See below for more details.
4039
4040 Note that the VFS cache is separate from the cache backend and you may
4041 find that you need one or the other or both.
4042
4043 --cache-dir string Directory rclone will use for caching.
4044 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4045 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4046 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4047 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4048 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
4049
4050 If run with -vv rclone will print the location of the file cache. The
4051 files are stored in the user cache file area which is OS dependent but
4052 can be controlled with --cache-dir or setting the appropriate environ‐
4053 ment variable.
4054
4055 The cache has 4 different modes selected by --vfs-cache-mode. The
4056 higher the cache mode the more compatible rclone becomes at the cost of
4057 using disk space.
4058
4059 Note that files are written back to the remote only when they are
4060 closed and if they haven't been accessed for --vfs-write-back second.
4061 If rclone is quit or dies with files that haven't been uploaded, these
4062 will be uploaded next time rclone is run with the same flags.
4063
4064 If using --vfs-cache-max-size note that the cache may exceed this size
4065 for two reasons. Firstly because it is only checked every
4066 --vfs-cache-poll-interval. Secondly because open files cannot be
4067 evicted from the cache.
4068
4069 You should not run two copies of rclone using the same VFS cache with
4070 the same or overlapping remotes if using --vfs-cache-mode > off. This
4071 can potentially cause data corruption if you do. You can work around
4072 this by giving each rclone its own cache hierarchy with --cache-dir.
4073 You don't need to worry about this if the remotes in use don't overlap.
4074
4075 --vfs-cache-mode off
4076 In this mode (the default) the cache will read directly from the remote
4077 and write directly to the remote without caching anything on disk.
4078
4079 This will mean some operations are not possible
4080
4081 • Files can't be opened for both read AND write
4082
4083 • Files opened for write can't be seeked
4084
4085 • Existing files opened for write must have O_TRUNC set
4086
4087 • Files open for read with O_TRUNC will be opened write only
4088
4089 • Files open for write only will behave as if O_TRUNC was supplied
4090
4091 • Open modes O_APPEND, O_TRUNC are ignored
4092
4093 • If an upload fails it can't be retried
4094
4095 --vfs-cache-mode minimal
4096 This is very similar to "off" except that files opened for read AND
4097 write will be buffered to disk. This means that files opened for write
4098 will be a lot more compatible, but uses the minimal disk space.
4099
4100 These operations are not possible
4101
4102 • Files opened for write only can't be seeked
4103
4104 • Existing files opened for write must have O_TRUNC set
4105
4106 • Files opened for write only will ignore O_APPEND, O_TRUNC
4107
4108 • If an upload fails it can't be retried
4109
4110 --vfs-cache-mode writes
4111 In this mode files opened for read only are still read directly from
4112 the remote, write only and read/write files are buffered to disk first.
4113
4114 This mode should support all normal file system operations.
4115
4116 If an upload fails it will be retried at exponentially increasing in‐
4117 tervals up to 1 minute.
4118
4119 --vfs-cache-mode full
4120 In this mode all reads and writes are buffered to and from disk. When
4121 data is read from the remote this is buffered to disk as well.
4122
4123 In this mode the files in the cache will be sparse files and rclone
4124 will keep track of which bits of the files it has downloaded.
4125
4126 So if an application only reads the starts of each file, then rclone
4127 will only buffer the start of the file. These files will appear to be
4128 their full size in the cache, but they will be sparse files with only
4129 the data that has been downloaded present in them.
4130
4131 This mode should support all normal file system operations and is oth‐
4132 erwise identical to --vfs-cache-mode writes.
4133
4134 When reading a file rclone will read --buffer-size plus
4135 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
4136 whereas the --vfs-read-ahead is buffered on disk.
4137
4138 When using this mode it is recommended that --buffer-size is not set
4139 too big and --vfs-read-ahead is set large if required.
4140
4141 IMPORTANT not all file systems support sparse files. In particular
4142 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
4143 ry is on a filesystem which doesn't support sparse files and it will
4144 log an ERROR message if one is detected.
4145
4146 VFS Performance
4147 These flags may be used to enable/disable features of the VFS for per‐
4148 formance or other reasons.
4149
4150 In particular S3 and Swift benefit hugely from the --no-modtime flag
4151 (or use --use-server-modtime for a slightly different effect) as each
4152 read of the modification time takes a transaction.
4153
4154 --no-checksum Don't compare checksums on up/download.
4155 --no-modtime Don't read/write the modification time (can speed things up).
4156 --no-seek Don't allow seeking in files.
4157 --read-only Mount read-only.
4158
4159 When rclone reads files from a remote it reads them in chunks. This
4160 means that rather than requesting the whole file rclone reads the chunk
4161 specified. This is advantageous because some cloud providers account
4162 for reads being all the data requested, not all the data delivered.
4163
4164 Rclone will keep doubling the chunk size requested starting at
4165 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
4166 less it is set to "off" in which case there will be no limit.
4167
4168 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4169 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
4170
4171 Sometimes rclone is delivered reads or writes out of order. Rather
4172 than seeking rclone will wait a short time for the in sequence read or
4173 write to come in. These flags only come into effect when not using an
4174 on disk cache file.
4175
4176 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
4177 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
4178
4179 When using VFS write caching (--vfs-cache-mode with value writes or
4180 full), the global flag --transfers can be set to adjust the number of
4181 parallel uploads of modified files from cache (the related global flag
4182 --checkers have no effect on mount).
4183
4184 --transfers int Number of file transfers to run in parallel. (default 4)
4185
4186 VFS Case Sensitivity
4187 Linux file systems are case-sensitive: two files can differ only by
4188 case, and the exact case must be used when opening a file.
4189
4190 File systems in modern Windows are case-insensitive but case-preserv‐
4191 ing: although existing files can be opened using any case, the exact
4192 case used to create the file is preserved and available for programs to
4193 query. It is not allowed for two files in the same directory to differ
4194 only by case.
4195
4196 Usually file systems on macOS are case-insensitive. It is possible to
4197 make macOS file systems case-sensitive but that is not the default
4198
4199 The --vfs-case-insensitive mount flag controls how rclone handles these
4200 two cases. If its value is "false", rclone passes file names to the
4201 mounted file system as-is. If the flag is "true" (or appears without a
4202 value on command line), rclone may perform a "fixup" as explained be‐
4203 low.
4204
4205 The user may specify a file name to open/delete/rename/etc with a case
4206 different than what is stored on mounted file system. If an argument
4207 refers to an existing file with exactly the same name, then the case of
4208 the existing file on the disk will be used. However, if a file name
4209 with exactly the same name is not found but a name differing only by
4210 case exists, rclone will transparently fixup the name. This fixup hap‐
4211 pens only when an existing file is requested. Case sensitivity of file
4212 names created anew by rclone is controlled by an underlying mounted
4213 file system.
4214
4215 Note that case sensitivity of the operating system running rclone (the
4216 target) may differ from case sensitivity of a file system mounted by
4217 rclone (the source). The flag controls whether "fixup" is performed to
4218 satisfy the target.
4219
4220 If the flag is not provided on the command line, then its default value
4221 depends on the operating system where rclone runs: "true" on Windows
4222 and macOS, "false" otherwise. If the flag is provided without a value,
4223 then it is "true".
4224
4225 Alternate report of used bytes
4226 Some backends, most notably S3, do not report the amount of bytes used.
4227 If you need this information to be available when running df on the
4228 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
4229 flag set, instead of relying on the backend to report this information,
4230 rclone will scan the whole remote similar to rclone size and compute
4231 the total used space itself.
4232
4233 WARNING. Contrary to rclone size, this flag ignores filters so that the
4234 result is accurate. However, this is very inefficient and may cost
4235 lots of API calls resulting in extra charges. Use it as a last resort
4236 and only with caching.
4237
4238 Auth Proxy
4239 If you supply the parameter --auth-proxy /path/to/program then rclone
4240 will use that program to generate backends on the fly which then are
4241 used to authenticate incoming requests. This uses a simple JSON based
4242 protocol with input on STDIN and output on STDOUT.
4243
4244 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
4245 er, if --auth-proxy is set the authorized keys option will be ignored.
4246
4247 There is an example program bin/test_proxy.py
4248 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
4249 rclone source code.
4250
4251 The program's job is to take a user and pass on the input and turn
4252 those into the config for a backend on STDOUT in JSON format. This
4253 config will have any default parameters for the backend added, but it
4254 won't use configuration from environment variables or command line op‐
4255 tions - it is the job of the proxy program to make a complete config.
4256
4257 This config generated must have this extra parameter - _root - root to
4258 use for the backend
4259
4260 And it may have this parameter - _obscure - comma separated strings for
4261 parameters to obscure
4262
4263 If password authentication was used by the client, input to the proxy
4264 process (on STDIN) would look similar to this:
4265
4266 {
4267 "user": "me",
4268 "pass": "mypassword"
4269 }
4270
4271 If public-key authentication was used by the client, input to the proxy
4272 process (on STDIN) would look similar to this:
4273
4274 {
4275 "user": "me",
4276 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
4277 }
4278
4279 And as an example return this on STDOUT
4280
4281 {
4282 "type": "sftp",
4283 "_root": "",
4284 "_obscure": "pass",
4285 "user": "me",
4286 "pass": "mypassword",
4287 "host": "sftp.example.com"
4288 }
4289
4290 This would mean that an SFTP backend would be created on the fly for
4291 the user and pass/public_key returned in the output to the host given.
4292 Note that since _obscure is set to pass, rclone will obscure the pass
4293 parameter before creating the backend (which is required for sftp back‐
4294 ends).
4295
4296 The program can manipulate the supplied user in any way, for example to
4297 make proxy to many different sftp backends, you could make the user be
4298 user@example.com and then set the host to example.com in the output and
4299 the user to user. For security you'd probably want to restrict the
4300 host to a limited list.
4301
4302 Note that an internal cache is keyed on user so only use that for con‐
4303 figuration, don't use pass or public_key. This also means that if a
4304 user's password or public-key is changed the cache will need to expire
4305 (which takes 5 mins) before it takes effect.
4306
4307 This can be used to build general purpose proxies to any kind of back‐
4308 end that rclone supports.
4309
4310 rclone serve ftp remote:path [flags]
4311
4312 Options
4313 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:2121")
4314 --auth-proxy string A program to use to create the backend from the auth.
4315 --cert string TLS PEM key (concatenation of certificate and CA certificate)
4316 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
4317 --dir-perms FileMode Directory permissions (default 0777)
4318 --file-perms FileMode File permissions (default 0666)
4319 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
4320 -h, --help help for ftp
4321 --key string TLS PEM Private key
4322 --no-checksum Don't compare checksums on up/download.
4323 --no-modtime Don't read/write the modification time (can speed things up).
4324 --no-seek Don't allow seeking in files.
4325 --pass string Password for authentication. (empty value allow every password)
4326 --passive-port string Passive port range to use. (default "30000-32000")
4327 --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)
4328 --public-ip string Public IP address to advertise for passive connections.
4329 --read-only Mount read-only.
4330 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
4331 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
4332 --user string User name for authentication. (default "anonymous")
4333 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4334 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4335 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4336 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4337 --vfs-case-insensitive If a file name not found, find a case insensitive match.
4338 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
4339 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4340 --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)
4341 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
4342 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size.
4343 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
4344 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
4345
4346 See the global flags page (https://rclone.org/flags/) for global op‐
4347 tions not listed here.
4348
4349 SEE ALSO
4350 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
4351 remote over a protocol.
4352
4354 Serve the remote over HTTP.
4355
4356 Synopsis
4357 rclone serve http implements a basic web server to serve the remote
4358 over HTTP. This can be viewed in a web browser or you can make a re‐
4359 mote of type http read from it.
4360
4361 You can use the filter flags (e.g. --include, --exclude) to control
4362 what is served.
4363
4364 The server will log errors. Use -v to see access logs.
4365
4366 --bwlimit will be respected for file transfers. Use --stats to control
4367 the stats printing.
4368
4369 Server options
4370 Use --addr to specify which IP address and port the server should lis‐
4371 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
4372 By default it only listens on localhost. You can use port :0 to let
4373 the OS choose an available port.
4374
4375 If you set --addr to listen on a public or LAN accessible IP address
4376 then using Authentication is advised - see the next section for info.
4377
4378 --server-read-timeout and --server-write-timeout can be used to control
4379 the timeouts on the server. Note that this is the total time for a
4380 transfer.
4381
4382 --max-header-bytes controls the maximum number of bytes the server will
4383 accept in the HTTP header.
4384
4385 --baseurl controls the URL prefix that rclone serves from. By default
4386 rclone will serve from the root. If you used --baseurl "/rclone" then
4387 rclone would serve from a URL starting with "/rclone/". This is useful
4388 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
4389 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
4390 "/rclone" and --baseurl "/rclone/" are all treated identically.
4391
4392 --template allows a user to specify a custom markup template for http
4393 and webdav serve functions. The server exports the following markup to
4394 be used within the template to server pages:
4395
4396 Parameter Description
4397 ──────────────────────────────────────────────────────────────────────────
4398 .Name The full path of a file/directory.
4399 .Title Directory listing of .Name
4400
4401 .Sort The current sort used. This is
4402 changeable via ?sort= parameter
4403 Sort Options:
4404 namedirfirst,name,size,time (de‐
4405 fault namedirfirst)
4406 .Order The current ordering used. This is
4407 changeable via ?order= parameter
4408 Order Options: asc,desc (default
4409 asc)
4410 .Query Currently unused.
4411 .Breadcrumb Allows for creating a relative nav‐
4412 igation
4413 -- .Link The relative to the root link of
4414 the Text.
4415 -- .Text The Name of the directory.
4416 .Entries Information about a specific
4417 file/directory.
4418 -- .URL The 'url' of an entry.
4419 -- .Leaf Currently same as 'URL' but intend‐
4420 ed to be 'just' the name.
4421 -- .IsDir Boolean for if an entry is a direc‐
4422 tory or not.
4423 -- .Size Size in Bytes of the entry.
4424 -- .ModTime The UTC timestamp of an entry.
4425
4426 Authentication
4427 By default this will serve files without needing a login.
4428
4429 You can either use an htpasswd file which can take lots of users, or
4430 set a single username and password with the --user and --pass flags.
4431
4432 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
4433 in standard apache format and supports MD5, SHA1 and BCrypt for basic
4434 authentication. Bcrypt is recommended.
4435
4436 To create an htpasswd file:
4437
4438 touch htpasswd
4439 htpasswd -B htpasswd user
4440 htpasswd -B htpasswd anotherUser
4441
4442 The password file can be updated while rclone is running.
4443
4444 Use --realm to set the authentication realm.
4445
4446 SSL/TLS
4447 By default this will serve over http. If you want you can serve over
4448 https. You will need to supply the --cert and --key flags. If you
4449 wish to do client side certificate validation then you will need to
4450 supply --client-ca also.
4451
4452 --cert should be either a PEM encoded certificate or a concatenation of
4453 that with the CA certificate. --key should be the PEM encoded private
4454 key and --client-ca should be the PEM encoded client certificate au‐
4455 thority certificate.
4456
4457 VFS - Virtual File System
4458 This command uses the VFS layer. This adapts the cloud storage objects
4459 that rclone uses into something which looks much more like a disk fil‐
4460 ing system.
4461
4462 Cloud storage objects have lots of properties which aren't like disk
4463 files - you can't extend them or write to the middle of them, so the
4464 VFS layer has to deal with that. Because there is no one right way of
4465 doing this there are various options explained below.
4466
4467 The VFS layer also implements a directory cache - this caches info
4468 about files and directories (but not the data) in memory.
4469
4470 VFS Directory Cache
4471 Using the --dir-cache-time flag, you can control how long a directory
4472 should be considered up to date and not refreshed from the backend.
4473 Changes made through the mount will appear immediately or invalidate
4474 the cache.
4475
4476 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
4477 --poll-interval duration Time to wait between polling for changes.
4478
4479 However, changes made directly on the cloud storage by the web inter‐
4480 face or a different copy of rclone will only be picked up once the di‐
4481 rectory cache expires if the backend configured does not support
4482 polling for changes. If the backend supports polling, changes will be
4483 picked up within the polling interval.
4484
4485 You can send a SIGHUP signal to rclone for it to flush all directory
4486 caches, regardless of how old they are. Assuming only one rclone in‐
4487 stance is running, you can reset the cache like this:
4488
4489 kill -SIGHUP $(pidof rclone)
4490
4491 If you configure rclone with a remote control (/rc) then you can use
4492 rclone rc to flush the whole directory cache:
4493
4494 rclone rc vfs/forget
4495
4496 Or individual files or directories:
4497
4498 rclone rc vfs/forget file=path/to/file dir=path/to/dir
4499
4500 VFS File Buffering
4501 The --buffer-size flag determines the amount of memory, that will be
4502 used to buffer data in advance.
4503
4504 Each open file will try to keep the specified amount of data in memory
4505 at all times. The buffered data is bound to one open file and won't be
4506 shared.
4507
4508 This flag is a upper limit for the used memory per open file. The buf‐
4509 fer will only use memory for data that is downloaded but not not yet
4510 read. If the buffer is empty, only a small amount of memory will be
4511 used.
4512
4513 The maximum memory used by rclone for buffering can be up to --buf‐
4514 fer-size * open files.
4515
4516 VFS File Caching
4517 These flags control the VFS file caching options. File caching is nec‐
4518 essary to make the VFS layer appear compatible with a normal file sys‐
4519 tem. It can be disabled at the cost of some compatibility.
4520
4521 For example you'll need to enable VFS caching if you want to read and
4522 write simultaneously to a file. See below for more details.
4523
4524 Note that the VFS cache is separate from the cache backend and you may
4525 find that you need one or the other or both.
4526
4527 --cache-dir string Directory rclone will use for caching.
4528 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4529 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4530 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4531 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4532 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
4533
4534 If run with -vv rclone will print the location of the file cache. The
4535 files are stored in the user cache file area which is OS dependent but
4536 can be controlled with --cache-dir or setting the appropriate environ‐
4537 ment variable.
4538
4539 The cache has 4 different modes selected by --vfs-cache-mode. The
4540 higher the cache mode the more compatible rclone becomes at the cost of
4541 using disk space.
4542
4543 Note that files are written back to the remote only when they are
4544 closed and if they haven't been accessed for --vfs-write-back second.
4545 If rclone is quit or dies with files that haven't been uploaded, these
4546 will be uploaded next time rclone is run with the same flags.
4547
4548 If using --vfs-cache-max-size note that the cache may exceed this size
4549 for two reasons. Firstly because it is only checked every
4550 --vfs-cache-poll-interval. Secondly because open files cannot be
4551 evicted from the cache.
4552
4553 You should not run two copies of rclone using the same VFS cache with
4554 the same or overlapping remotes if using --vfs-cache-mode > off. This
4555 can potentially cause data corruption if you do. You can work around
4556 this by giving each rclone its own cache hierarchy with --cache-dir.
4557 You don't need to worry about this if the remotes in use don't overlap.
4558
4559 --vfs-cache-mode off
4560 In this mode (the default) the cache will read directly from the remote
4561 and write directly to the remote without caching anything on disk.
4562
4563 This will mean some operations are not possible
4564
4565 • Files can't be opened for both read AND write
4566
4567 • Files opened for write can't be seeked
4568
4569 • Existing files opened for write must have O_TRUNC set
4570
4571 • Files open for read with O_TRUNC will be opened write only
4572
4573 • Files open for write only will behave as if O_TRUNC was supplied
4574
4575 • Open modes O_APPEND, O_TRUNC are ignored
4576
4577 • If an upload fails it can't be retried
4578
4579 --vfs-cache-mode minimal
4580 This is very similar to "off" except that files opened for read AND
4581 write will be buffered to disk. This means that files opened for write
4582 will be a lot more compatible, but uses the minimal disk space.
4583
4584 These operations are not possible
4585
4586 • Files opened for write only can't be seeked
4587
4588 • Existing files opened for write must have O_TRUNC set
4589
4590 • Files opened for write only will ignore O_APPEND, O_TRUNC
4591
4592 • If an upload fails it can't be retried
4593
4594 --vfs-cache-mode writes
4595 In this mode files opened for read only are still read directly from
4596 the remote, write only and read/write files are buffered to disk first.
4597
4598 This mode should support all normal file system operations.
4599
4600 If an upload fails it will be retried at exponentially increasing in‐
4601 tervals up to 1 minute.
4602
4603 --vfs-cache-mode full
4604 In this mode all reads and writes are buffered to and from disk. When
4605 data is read from the remote this is buffered to disk as well.
4606
4607 In this mode the files in the cache will be sparse files and rclone
4608 will keep track of which bits of the files it has downloaded.
4609
4610 So if an application only reads the starts of each file, then rclone
4611 will only buffer the start of the file. These files will appear to be
4612 their full size in the cache, but they will be sparse files with only
4613 the data that has been downloaded present in them.
4614
4615 This mode should support all normal file system operations and is oth‐
4616 erwise identical to --vfs-cache-mode writes.
4617
4618 When reading a file rclone will read --buffer-size plus
4619 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
4620 whereas the --vfs-read-ahead is buffered on disk.
4621
4622 When using this mode it is recommended that --buffer-size is not set
4623 too big and --vfs-read-ahead is set large if required.
4624
4625 IMPORTANT not all file systems support sparse files. In particular
4626 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
4627 ry is on a filesystem which doesn't support sparse files and it will
4628 log an ERROR message if one is detected.
4629
4630 VFS Performance
4631 These flags may be used to enable/disable features of the VFS for per‐
4632 formance or other reasons.
4633
4634 In particular S3 and Swift benefit hugely from the --no-modtime flag
4635 (or use --use-server-modtime for a slightly different effect) as each
4636 read of the modification time takes a transaction.
4637
4638 --no-checksum Don't compare checksums on up/download.
4639 --no-modtime Don't read/write the modification time (can speed things up).
4640 --no-seek Don't allow seeking in files.
4641 --read-only Mount read-only.
4642
4643 When rclone reads files from a remote it reads them in chunks. This
4644 means that rather than requesting the whole file rclone reads the chunk
4645 specified. This is advantageous because some cloud providers account
4646 for reads being all the data requested, not all the data delivered.
4647
4648 Rclone will keep doubling the chunk size requested starting at
4649 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
4650 less it is set to "off" in which case there will be no limit.
4651
4652 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4653 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
4654
4655 Sometimes rclone is delivered reads or writes out of order. Rather
4656 than seeking rclone will wait a short time for the in sequence read or
4657 write to come in. These flags only come into effect when not using an
4658 on disk cache file.
4659
4660 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
4661 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
4662
4663 When using VFS write caching (--vfs-cache-mode with value writes or
4664 full), the global flag --transfers can be set to adjust the number of
4665 parallel uploads of modified files from cache (the related global flag
4666 --checkers have no effect on mount).
4667
4668 --transfers int Number of file transfers to run in parallel. (default 4)
4669
4670 VFS Case Sensitivity
4671 Linux file systems are case-sensitive: two files can differ only by
4672 case, and the exact case must be used when opening a file.
4673
4674 File systems in modern Windows are case-insensitive but case-preserv‐
4675 ing: although existing files can be opened using any case, the exact
4676 case used to create the file is preserved and available for programs to
4677 query. It is not allowed for two files in the same directory to differ
4678 only by case.
4679
4680 Usually file systems on macOS are case-insensitive. It is possible to
4681 make macOS file systems case-sensitive but that is not the default
4682
4683 The --vfs-case-insensitive mount flag controls how rclone handles these
4684 two cases. If its value is "false", rclone passes file names to the
4685 mounted file system as-is. If the flag is "true" (or appears without a
4686 value on command line), rclone may perform a "fixup" as explained be‐
4687 low.
4688
4689 The user may specify a file name to open/delete/rename/etc with a case
4690 different than what is stored on mounted file system. If an argument
4691 refers to an existing file with exactly the same name, then the case of
4692 the existing file on the disk will be used. However, if a file name
4693 with exactly the same name is not found but a name differing only by
4694 case exists, rclone will transparently fixup the name. This fixup hap‐
4695 pens only when an existing file is requested. Case sensitivity of file
4696 names created anew by rclone is controlled by an underlying mounted
4697 file system.
4698
4699 Note that case sensitivity of the operating system running rclone (the
4700 target) may differ from case sensitivity of a file system mounted by
4701 rclone (the source). The flag controls whether "fixup" is performed to
4702 satisfy the target.
4703
4704 If the flag is not provided on the command line, then its default value
4705 depends on the operating system where rclone runs: "true" on Windows
4706 and macOS, "false" otherwise. If the flag is provided without a value,
4707 then it is "true".
4708
4709 Alternate report of used bytes
4710 Some backends, most notably S3, do not report the amount of bytes used.
4711 If you need this information to be available when running df on the
4712 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
4713 flag set, instead of relying on the backend to report this information,
4714 rclone will scan the whole remote similar to rclone size and compute
4715 the total used space itself.
4716
4717 WARNING. Contrary to rclone size, this flag ignores filters so that the
4718 result is accurate. However, this is very inefficient and may cost
4719 lots of API calls resulting in extra charges. Use it as a last resort
4720 and only with caching.
4721
4722 rclone serve http remote:path [flags]
4723
4724 Options
4725 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
4726 --baseurl string Prefix for URLs - leave blank for root.
4727 --cert string SSL PEM key (concatenation of certificate and CA certificate)
4728 --client-ca string Client certificate authority to verify clients with
4729 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
4730 --dir-perms FileMode Directory permissions (default 0777)
4731 --file-perms FileMode File permissions (default 0666)
4732 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
4733 -h, --help help for http
4734 --htpasswd string htpasswd file - if not provided no authentication is done
4735 --key string SSL PEM Private key
4736 --max-header-bytes int Maximum size of request header (default 4096)
4737 --no-checksum Don't compare checksums on up/download.
4738 --no-modtime Don't read/write the modification time (can speed things up).
4739 --no-seek Don't allow seeking in files.
4740 --pass string Password for authentication.
4741 --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)
4742 --read-only Mount read-only.
4743 --realm string realm for authentication (default "rclone")
4744 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
4745 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
4746 --template string User Specified Template.
4747 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
4748 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
4749 --user string User name for authentication.
4750 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4751 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4752 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4753 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4754 --vfs-case-insensitive If a file name not found, find a case insensitive match.
4755 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
4756 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4757 --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)
4758 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
4759 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size.
4760 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
4761 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
4762
4763 See the global flags page (https://rclone.org/flags/) for global op‐
4764 tions not listed here.
4765
4766 SEE ALSO
4767 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
4768 remote over a protocol.
4769
4771 Serve the remote for restic's REST API.
4772
4773 Synopsis
4774 rclone serve restic implements restic's REST backend API over HTTP.
4775 This allows restic to use rclone as a data storage mechanism for cloud
4776 providers that restic does not support directly.
4777
4778 Restic (https://restic.net/) is a command line program for doing back‐
4779 ups.
4780
4781 The server will log errors. Use -v to see access logs.
4782
4783 --bwlimit will be respected for file transfers. Use --stats to control
4784 the stats printing.
4785
4786 Setting up rclone for use by restic
4787 First set up a remote for your chosen cloud provider
4788 (https://rclone.org/docs/#configure).
4789
4790 Once you have set up the remote, check it is working with, for example
4791 "rclone lsd remote:". You may have called the remote something other
4792 than "remote:" - just substitute whatever you called it in the follow‐
4793 ing instructions.
4794
4795 Now start the rclone restic server
4796
4797 rclone serve restic -v remote:backup
4798
4799 Where you can replace "backup" in the above by whatever path in the re‐
4800 mote you wish to use.
4801
4802 By default this will serve on "localhost:8080" you can change this with
4803 use of the "--addr" flag.
4804
4805 You might wish to start this server on boot.
4806
4807 Adding --cache-objects=false will cause rclone to stop caching objects
4808 returned from the List call. Caching is normally desirable as it
4809 speeds up downloading objects, saves transactions and uses very little
4810 memory.
4811
4812 Setting up restic to use rclone
4813 Now you can follow the restic instructions (http://restic.readthedo‐
4814 cs.io/en/latest/030_preparing_a_new_repo.html#rest-server) on setting
4815 up restic.
4816
4817 Note that you will need restic 0.8.2 or later to interoperate with
4818 rclone.
4819
4820 For the example above you will want to use "http://localhost:8080/" as
4821 the URL for the REST server.
4822
4823 For example:
4824
4825 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/
4826 $ export RESTIC_PASSWORD=yourpassword
4827 $ restic init
4828 created restic backend 8b1a4b56ae at rest:http://localhost:8080/
4829
4830 Please note that knowledge of your password is required to access
4831 the repository. Losing your password means that your data is
4832 irrecoverably lost.
4833 $ restic backup /path/to/files/to/backup
4834 scan [/path/to/files/to/backup]
4835 scanned 189 directories, 312 files in 0:00
4836 [0:00] 100.00% 38.128 MiB / 38.128 MiB 501 / 501 items 0 errors ETA 0:00
4837 duration: 0:00
4838 snapshot 45c8fdd8 saved
4839
4840 Multiple repositories
4841 Note that you can use the endpoint to host multiple repositories. Do
4842 this by adding a directory name or path after the URL. Note that these
4843 must end with /. Eg
4844
4845 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user1repo/
4846 # backup user1 stuff
4847 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/
4848 # backup user2 stuff
4849
4850 Private repositories
4851 The "--private-repos" flag can be used to limit users to repositories
4852 starting with a path of /<username>/.
4853
4854 Server options
4855 Use --addr to specify which IP address and port the server should lis‐
4856 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
4857 By default it only listens on localhost. You can use port :0 to let
4858 the OS choose an available port.
4859
4860 If you set --addr to listen on a public or LAN accessible IP address
4861 then using Authentication is advised - see the next section for info.
4862
4863 --server-read-timeout and --server-write-timeout can be used to control
4864 the timeouts on the server. Note that this is the total time for a
4865 transfer.
4866
4867 --max-header-bytes controls the maximum number of bytes the server will
4868 accept in the HTTP header.
4869
4870 --baseurl controls the URL prefix that rclone serves from. By default
4871 rclone will serve from the root. If you used --baseurl "/rclone" then
4872 rclone would serve from a URL starting with "/rclone/". This is useful
4873 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
4874 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
4875 "/rclone" and --baseurl "/rclone/" are all treated identically.
4876
4877 --template allows a user to specify a custom markup template for http
4878 and webdav serve functions. The server exports the following markup to
4879 be used within the template to server pages:
4880
4881 Parameter Description
4882 ──────────────────────────────────────────────────────────────────────────
4883 .Name The full path of a file/directory.
4884 .Title Directory listing of .Name
4885 .Sort The current sort used. This is
4886 changeable via ?sort= parameter
4887 Sort Options:
4888 namedirfirst,name,size,time (de‐
4889 fault namedirfirst)
4890 .Order The current ordering used. This is
4891 changeable via ?order= parameter
4892 Order Options: asc,desc (default
4893 asc)
4894 .Query Currently unused.
4895 .Breadcrumb Allows for creating a relative nav‐
4896 igation
4897 -- .Link The relative to the root link of
4898 the Text.
4899 -- .Text The Name of the directory.
4900 .Entries Information about a specific
4901 file/directory.
4902 -- .URL The 'url' of an entry.
4903 -- .Leaf Currently same as 'URL' but intend‐
4904 ed to be 'just' the name.
4905 -- .IsDir Boolean for if an entry is a direc‐
4906 tory or not.
4907 -- .Size Size in Bytes of the entry.
4908 -- .ModTime The UTC timestamp of an entry.
4909
4910 Authentication
4911 By default this will serve files without needing a login.
4912
4913 You can either use an htpasswd file which can take lots of users, or
4914 set a single username and password with the --user and --pass flags.
4915
4916 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
4917 in standard apache format and supports MD5, SHA1 and BCrypt for basic
4918 authentication. Bcrypt is recommended.
4919
4920 To create an htpasswd file:
4921
4922 touch htpasswd
4923 htpasswd -B htpasswd user
4924 htpasswd -B htpasswd anotherUser
4925
4926 The password file can be updated while rclone is running.
4927
4928 Use --realm to set the authentication realm.
4929
4930 SSL/TLS
4931 By default this will serve over http. If you want you can serve over
4932 https. You will need to supply the --cert and --key flags. If you
4933 wish to do client side certificate validation then you will need to
4934 supply --client-ca also.
4935
4936 --cert should be either a PEM encoded certificate or a concatenation of
4937 that with the CA certificate. --key should be the PEM encoded private
4938 key and --client-ca should be the PEM encoded client certificate au‐
4939 thority certificate.
4940
4941 rclone serve restic remote:path [flags]
4942
4943 Options
4944 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
4945 --append-only disallow deletion of repository data
4946 --baseurl string Prefix for URLs - leave blank for root.
4947 --cache-objects cache listed objects (default true)
4948 --cert string SSL PEM key (concatenation of certificate and CA certificate)
4949 --client-ca string Client certificate authority to verify clients with
4950 -h, --help help for restic
4951 --htpasswd string htpasswd file - if not provided no authentication is done
4952 --key string SSL PEM Private key
4953 --max-header-bytes int Maximum size of request header (default 4096)
4954 --pass string Password for authentication.
4955 --private-repos users can only access their private repo
4956 --realm string realm for authentication (default "rclone")
4957 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
4958 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
4959 --stdio run an HTTP2 server on stdin/stdout
4960 --template string User Specified Template.
4961 --user string User name for authentication.
4962
4963 See the global flags page (https://rclone.org/flags/) for global op‐
4964 tions not listed here.
4965
4966 SEE ALSO
4967 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
4968 remote over a protocol.
4969
4971 Serve the remote over SFTP.
4972
4973 Synopsis
4974 rclone serve sftp implements an SFTP server to serve the remote over
4975 SFTP. This can be used with an SFTP client or you can make a remote of
4976 type sftp to use with it.
4977
4978 You can use the filter flags (e.g. --include, --exclude) to control
4979 what is served.
4980
4981 The server will log errors. Use -v to see access logs.
4982
4983 --bwlimit will be respected for file transfers. Use --stats to control
4984 the stats printing.
4985
4986 You must provide some means of authentication, either with --us‐
4987 er/--pass, an authorized keys file (specify location with --autho‐
4988 rized-keys - the default is the same as ssh), an --auth-proxy, or set
4989 the --no-auth flag for no authentication when logging in.
4990
4991 Note that this also implements a small number of shell commands so that
4992 it can provide md5sum/sha1sum/df information for the rclone sftp back‐
4993 end. This means that is can support SHA1SUMs, MD5SUMs and the about
4994 command when paired with the rclone sftp backend.
4995
4996 If you don't supply a --key then rclone will generate one and cache it
4997 for later use.
4998
4999 By default the server binds to localhost:2022 - if you want it to be
5000 reachable externally then supply "--addr :2022" for example.
5001
5002 Note that the default of "--vfs-cache-mode off" is fine for the rclone
5003 sftp backend, but it may not be with other SFTP clients.
5004
5005 VFS - Virtual File System
5006 This command uses the VFS layer. This adapts the cloud storage objects
5007 that rclone uses into something which looks much more like a disk fil‐
5008 ing system.
5009
5010 Cloud storage objects have lots of properties which aren't like disk
5011 files - you can't extend them or write to the middle of them, so the
5012 VFS layer has to deal with that. Because there is no one right way of
5013 doing this there are various options explained below.
5014
5015 The VFS layer also implements a directory cache - this caches info
5016 about files and directories (but not the data) in memory.
5017
5018 VFS Directory Cache
5019 Using the --dir-cache-time flag, you can control how long a directory
5020 should be considered up to date and not refreshed from the backend.
5021 Changes made through the mount will appear immediately or invalidate
5022 the cache.
5023
5024 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
5025 --poll-interval duration Time to wait between polling for changes.
5026
5027 However, changes made directly on the cloud storage by the web inter‐
5028 face or a different copy of rclone will only be picked up once the di‐
5029 rectory cache expires if the backend configured does not support
5030 polling for changes. If the backend supports polling, changes will be
5031 picked up within the polling interval.
5032
5033 You can send a SIGHUP signal to rclone for it to flush all directory
5034 caches, regardless of how old they are. Assuming only one rclone in‐
5035 stance is running, you can reset the cache like this:
5036
5037 kill -SIGHUP $(pidof rclone)
5038
5039 If you configure rclone with a remote control (/rc) then you can use
5040 rclone rc to flush the whole directory cache:
5041
5042 rclone rc vfs/forget
5043
5044 Or individual files or directories:
5045
5046 rclone rc vfs/forget file=path/to/file dir=path/to/dir
5047
5048 VFS File Buffering
5049 The --buffer-size flag determines the amount of memory, that will be
5050 used to buffer data in advance.
5051
5052 Each open file will try to keep the specified amount of data in memory
5053 at all times. The buffered data is bound to one open file and won't be
5054 shared.
5055
5056 This flag is a upper limit for the used memory per open file. The buf‐
5057 fer will only use memory for data that is downloaded but not not yet
5058 read. If the buffer is empty, only a small amount of memory will be
5059 used.
5060
5061 The maximum memory used by rclone for buffering can be up to --buf‐
5062 fer-size * open files.
5063
5064 VFS File Caching
5065 These flags control the VFS file caching options. File caching is nec‐
5066 essary to make the VFS layer appear compatible with a normal file sys‐
5067 tem. It can be disabled at the cost of some compatibility.
5068
5069 For example you'll need to enable VFS caching if you want to read and
5070 write simultaneously to a file. See below for more details.
5071
5072 Note that the VFS cache is separate from the cache backend and you may
5073 find that you need one or the other or both.
5074
5075 --cache-dir string Directory rclone will use for caching.
5076 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5077 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
5078 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
5079 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
5080 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
5081
5082 If run with -vv rclone will print the location of the file cache. The
5083 files are stored in the user cache file area which is OS dependent but
5084 can be controlled with --cache-dir or setting the appropriate environ‐
5085 ment variable.
5086
5087 The cache has 4 different modes selected by --vfs-cache-mode. The
5088 higher the cache mode the more compatible rclone becomes at the cost of
5089 using disk space.
5090
5091 Note that files are written back to the remote only when they are
5092 closed and if they haven't been accessed for --vfs-write-back second.
5093 If rclone is quit or dies with files that haven't been uploaded, these
5094 will be uploaded next time rclone is run with the same flags.
5095
5096 If using --vfs-cache-max-size note that the cache may exceed this size
5097 for two reasons. Firstly because it is only checked every
5098 --vfs-cache-poll-interval. Secondly because open files cannot be
5099 evicted from the cache.
5100
5101 You should not run two copies of rclone using the same VFS cache with
5102 the same or overlapping remotes if using --vfs-cache-mode > off. This
5103 can potentially cause data corruption if you do. You can work around
5104 this by giving each rclone its own cache hierarchy with --cache-dir.
5105 You don't need to worry about this if the remotes in use don't overlap.
5106
5107 --vfs-cache-mode off
5108 In this mode (the default) the cache will read directly from the remote
5109 and write directly to the remote without caching anything on disk.
5110
5111 This will mean some operations are not possible
5112
5113 • Files can't be opened for both read AND write
5114
5115 • Files opened for write can't be seeked
5116
5117 • Existing files opened for write must have O_TRUNC set
5118
5119 • Files open for read with O_TRUNC will be opened write only
5120
5121 • Files open for write only will behave as if O_TRUNC was supplied
5122
5123 • Open modes O_APPEND, O_TRUNC are ignored
5124
5125 • If an upload fails it can't be retried
5126
5127 --vfs-cache-mode minimal
5128 This is very similar to "off" except that files opened for read AND
5129 write will be buffered to disk. This means that files opened for write
5130 will be a lot more compatible, but uses the minimal disk space.
5131
5132 These operations are not possible
5133
5134 • Files opened for write only can't be seeked
5135
5136 • Existing files opened for write must have O_TRUNC set
5137
5138 • Files opened for write only will ignore O_APPEND, O_TRUNC
5139
5140 • If an upload fails it can't be retried
5141
5142 --vfs-cache-mode writes
5143 In this mode files opened for read only are still read directly from
5144 the remote, write only and read/write files are buffered to disk first.
5145
5146 This mode should support all normal file system operations.
5147
5148 If an upload fails it will be retried at exponentially increasing in‐
5149 tervals up to 1 minute.
5150
5151 --vfs-cache-mode full
5152 In this mode all reads and writes are buffered to and from disk. When
5153 data is read from the remote this is buffered to disk as well.
5154
5155 In this mode the files in the cache will be sparse files and rclone
5156 will keep track of which bits of the files it has downloaded.
5157
5158 So if an application only reads the starts of each file, then rclone
5159 will only buffer the start of the file. These files will appear to be
5160 their full size in the cache, but they will be sparse files with only
5161 the data that has been downloaded present in them.
5162
5163 This mode should support all normal file system operations and is oth‐
5164 erwise identical to --vfs-cache-mode writes.
5165
5166 When reading a file rclone will read --buffer-size plus
5167 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
5168 whereas the --vfs-read-ahead is buffered on disk.
5169
5170 When using this mode it is recommended that --buffer-size is not set
5171 too big and --vfs-read-ahead is set large if required.
5172
5173 IMPORTANT not all file systems support sparse files. In particular
5174 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
5175 ry is on a filesystem which doesn't support sparse files and it will
5176 log an ERROR message if one is detected.
5177
5178 VFS Performance
5179 These flags may be used to enable/disable features of the VFS for per‐
5180 formance or other reasons.
5181
5182 In particular S3 and Swift benefit hugely from the --no-modtime flag
5183 (or use --use-server-modtime for a slightly different effect) as each
5184 read of the modification time takes a transaction.
5185
5186 --no-checksum Don't compare checksums on up/download.
5187 --no-modtime Don't read/write the modification time (can speed things up).
5188 --no-seek Don't allow seeking in files.
5189 --read-only Mount read-only.
5190
5191 When rclone reads files from a remote it reads them in chunks. This
5192 means that rather than requesting the whole file rclone reads the chunk
5193 specified. This is advantageous because some cloud providers account
5194 for reads being all the data requested, not all the data delivered.
5195
5196 Rclone will keep doubling the chunk size requested starting at
5197 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
5198 less it is set to "off" in which case there will be no limit.
5199
5200 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
5201 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
5202
5203 Sometimes rclone is delivered reads or writes out of order. Rather
5204 than seeking rclone will wait a short time for the in sequence read or
5205 write to come in. These flags only come into effect when not using an
5206 on disk cache file.
5207
5208 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
5209 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
5210
5211 When using VFS write caching (--vfs-cache-mode with value writes or
5212 full), the global flag --transfers can be set to adjust the number of
5213 parallel uploads of modified files from cache (the related global flag
5214 --checkers have no effect on mount).
5215
5216 --transfers int Number of file transfers to run in parallel. (default 4)
5217
5218 VFS Case Sensitivity
5219 Linux file systems are case-sensitive: two files can differ only by
5220 case, and the exact case must be used when opening a file.
5221
5222 File systems in modern Windows are case-insensitive but case-preserv‐
5223 ing: although existing files can be opened using any case, the exact
5224 case used to create the file is preserved and available for programs to
5225 query. It is not allowed for two files in the same directory to differ
5226 only by case.
5227
5228 Usually file systems on macOS are case-insensitive. It is possible to
5229 make macOS file systems case-sensitive but that is not the default
5230
5231 The --vfs-case-insensitive mount flag controls how rclone handles these
5232 two cases. If its value is "false", rclone passes file names to the
5233 mounted file system as-is. If the flag is "true" (or appears without a
5234 value on command line), rclone may perform a "fixup" as explained be‐
5235 low.
5236
5237 The user may specify a file name to open/delete/rename/etc with a case
5238 different than what is stored on mounted file system. If an argument
5239 refers to an existing file with exactly the same name, then the case of
5240 the existing file on the disk will be used. However, if a file name
5241 with exactly the same name is not found but a name differing only by
5242 case exists, rclone will transparently fixup the name. This fixup hap‐
5243 pens only when an existing file is requested. Case sensitivity of file
5244 names created anew by rclone is controlled by an underlying mounted
5245 file system.
5246
5247 Note that case sensitivity of the operating system running rclone (the
5248 target) may differ from case sensitivity of a file system mounted by
5249 rclone (the source). The flag controls whether "fixup" is performed to
5250 satisfy the target.
5251
5252 If the flag is not provided on the command line, then its default value
5253 depends on the operating system where rclone runs: "true" on Windows
5254 and macOS, "false" otherwise. If the flag is provided without a value,
5255 then it is "true".
5256
5257 Alternate report of used bytes
5258 Some backends, most notably S3, do not report the amount of bytes used.
5259 If you need this information to be available when running df on the
5260 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
5261 flag set, instead of relying on the backend to report this information,
5262 rclone will scan the whole remote similar to rclone size and compute
5263 the total used space itself.
5264
5265 WARNING. Contrary to rclone size, this flag ignores filters so that the
5266 result is accurate. However, this is very inefficient and may cost
5267 lots of API calls resulting in extra charges. Use it as a last resort
5268 and only with caching.
5269
5270 Auth Proxy
5271 If you supply the parameter --auth-proxy /path/to/program then rclone
5272 will use that program to generate backends on the fly which then are
5273 used to authenticate incoming requests. This uses a simple JSON based
5274 protocol with input on STDIN and output on STDOUT.
5275
5276 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
5277 er, if --auth-proxy is set the authorized keys option will be ignored.
5278
5279 There is an example program bin/test_proxy.py
5280 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
5281 rclone source code.
5282
5283 The program's job is to take a user and pass on the input and turn
5284 those into the config for a backend on STDOUT in JSON format. This
5285 config will have any default parameters for the backend added, but it
5286 won't use configuration from environment variables or command line op‐
5287 tions - it is the job of the proxy program to make a complete config.
5288
5289 This config generated must have this extra parameter - _root - root to
5290 use for the backend
5291
5292 And it may have this parameter - _obscure - comma separated strings for
5293 parameters to obscure
5294
5295 If password authentication was used by the client, input to the proxy
5296 process (on STDIN) would look similar to this:
5297
5298 {
5299 "user": "me",
5300 "pass": "mypassword"
5301 }
5302
5303 If public-key authentication was used by the client, input to the proxy
5304 process (on STDIN) would look similar to this:
5305
5306 {
5307 "user": "me",
5308 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
5309 }
5310
5311 And as an example return this on STDOUT
5312
5313 {
5314 "type": "sftp",
5315 "_root": "",
5316 "_obscure": "pass",
5317 "user": "me",
5318 "pass": "mypassword",
5319 "host": "sftp.example.com"
5320 }
5321
5322 This would mean that an SFTP backend would be created on the fly for
5323 the user and pass/public_key returned in the output to the host given.
5324 Note that since _obscure is set to pass, rclone will obscure the pass
5325 parameter before creating the backend (which is required for sftp back‐
5326 ends).
5327
5328 The program can manipulate the supplied user in any way, for example to
5329 make proxy to many different sftp backends, you could make the user be
5330 user@example.com and then set the host to example.com in the output and
5331 the user to user. For security you'd probably want to restrict the
5332 host to a limited list.
5333
5334 Note that an internal cache is keyed on user so only use that for con‐
5335 figuration, don't use pass or public_key. This also means that if a
5336 user's password or public-key is changed the cache will need to expire
5337 (which takes 5 mins) before it takes effect.
5338
5339 This can be used to build general purpose proxies to any kind of back‐
5340 end that rclone supports.
5341
5342 rclone serve sftp remote:path [flags]
5343
5344 Options
5345 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:2022")
5346 --auth-proxy string A program to use to create the backend from the auth.
5347 --authorized-keys string Authorized keys file (default "~/.ssh/authorized_keys")
5348 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
5349 --dir-perms FileMode Directory permissions (default 0777)
5350 --file-perms FileMode File permissions (default 0666)
5351 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
5352 -h, --help help for sftp
5353 --key stringArray SSH private host key file (Can be multi-valued, leave blank to auto generate)
5354 --no-auth Allow connections with no authentication if set.
5355 --no-checksum Don't compare checksums on up/download.
5356 --no-modtime Don't read/write the modification time (can speed things up).
5357 --no-seek Don't allow seeking in files.
5358 --pass string Password for authentication.
5359 --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)
5360 --read-only Mount read-only.
5361 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
5362 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
5363 --user string User name for authentication.
5364 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
5365 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
5366 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5367 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
5368 --vfs-case-insensitive If a file name not found, find a case insensitive match.
5369 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
5370 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
5371 --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)
5372 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
5373 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size.
5374 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
5375 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
5376
5377 See the global flags page (https://rclone.org/flags/) for global op‐
5378 tions not listed here.
5379
5380 SEE ALSO
5381 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
5382 remote over a protocol.
5383
5385 Serve remote:path over webdav.
5386
5387 Synopsis
5388 rclone serve webdav implements a basic webdav server to serve the re‐
5389 mote over HTTP via the webdav protocol. This can be viewed with a web‐
5390 dav client, through a web browser, or you can make a remote of type
5391 webdav to read and write it.
5392
5393 Webdav options
5394 --etag-hash
5395 This controls the ETag header. Without this flag the ETag will be
5396 based on the ModTime and Size of the object.
5397
5398 If this flag is set to "auto" then rclone will choose the first sup‐
5399 ported hash on the backend or you can use a named hash such as "MD5" or
5400 "SHA-1".
5401
5402 Use "rclone hashsum" to see the full list.
5403
5404 Server options
5405 Use --addr to specify which IP address and port the server should lis‐
5406 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
5407 By default it only listens on localhost. You can use port :0 to let
5408 the OS choose an available port.
5409
5410 If you set --addr to listen on a public or LAN accessible IP address
5411 then using Authentication is advised - see the next section for info.
5412
5413 --server-read-timeout and --server-write-timeout can be used to control
5414 the timeouts on the server. Note that this is the total time for a
5415 transfer.
5416
5417 --max-header-bytes controls the maximum number of bytes the server will
5418 accept in the HTTP header.
5419
5420 --baseurl controls the URL prefix that rclone serves from. By default
5421 rclone will serve from the root. If you used --baseurl "/rclone" then
5422 rclone would serve from a URL starting with "/rclone/". This is useful
5423 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
5424 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
5425 "/rclone" and --baseurl "/rclone/" are all treated identically.
5426
5427 --template allows a user to specify a custom markup template for http
5428 and webdav serve functions. The server exports the following markup to
5429 be used within the template to server pages:
5430
5431 Parameter Description
5432 ──────────────────────────────────────────────────────────────────────────
5433 .Name The full path of a file/directory.
5434 .Title Directory listing of .Name
5435 .Sort The current sort used. This is
5436 changeable via ?sort= parameter
5437 Sort Options:
5438 namedirfirst,name,size,time (de‐
5439 fault namedirfirst)
5440 .Order The current ordering used. This is
5441 changeable via ?order= parameter
5442 Order Options: asc,desc (default
5443 asc)
5444 .Query Currently unused.
5445 .Breadcrumb Allows for creating a relative nav‐
5446 igation
5447 -- .Link The relative to the root link of
5448 the Text.
5449 -- .Text The Name of the directory.
5450 .Entries Information about a specific
5451 file/directory.
5452 -- .URL The 'url' of an entry.
5453 -- .Leaf Currently same as 'URL' but intend‐
5454 ed to be 'just' the name.
5455 -- .IsDir Boolean for if an entry is a direc‐
5456 tory or not.
5457 -- .Size Size in Bytes of the entry.
5458 -- .ModTime The UTC timestamp of an entry.
5459
5460 Authentication
5461 By default this will serve files without needing a login.
5462
5463 You can either use an htpasswd file which can take lots of users, or
5464 set a single username and password with the --user and --pass flags.
5465
5466 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
5467 in standard apache format and supports MD5, SHA1 and BCrypt for basic
5468 authentication. Bcrypt is recommended.
5469
5470 To create an htpasswd file:
5471
5472 touch htpasswd
5473 htpasswd -B htpasswd user
5474 htpasswd -B htpasswd anotherUser
5475
5476 The password file can be updated while rclone is running.
5477
5478 Use --realm to set the authentication realm.
5479
5480 SSL/TLS
5481 By default this will serve over http. If you want you can serve over
5482 https. You will need to supply the --cert and --key flags. If you
5483 wish to do client side certificate validation then you will need to
5484 supply --client-ca also.
5485
5486 --cert should be either a PEM encoded certificate or a concatenation of
5487 that with the CA certificate. --key should be the PEM encoded private
5488 key and --client-ca should be the PEM encoded client certificate au‐
5489 thority certificate.
5490
5491 VFS - Virtual File System
5492 This command uses the VFS layer. This adapts the cloud storage objects
5493 that rclone uses into something which looks much more like a disk fil‐
5494 ing system.
5495
5496 Cloud storage objects have lots of properties which aren't like disk
5497 files - you can't extend them or write to the middle of them, so the
5498 VFS layer has to deal with that. Because there is no one right way of
5499 doing this there are various options explained below.
5500
5501 The VFS layer also implements a directory cache - this caches info
5502 about files and directories (but not the data) in memory.
5503
5504 VFS Directory Cache
5505 Using the --dir-cache-time flag, you can control how long a directory
5506 should be considered up to date and not refreshed from the backend.
5507 Changes made through the mount will appear immediately or invalidate
5508 the cache.
5509
5510 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
5511 --poll-interval duration Time to wait between polling for changes.
5512
5513 However, changes made directly on the cloud storage by the web inter‐
5514 face or a different copy of rclone will only be picked up once the di‐
5515 rectory cache expires if the backend configured does not support
5516 polling for changes. If the backend supports polling, changes will be
5517 picked up within the polling interval.
5518
5519 You can send a SIGHUP signal to rclone for it to flush all directory
5520 caches, regardless of how old they are. Assuming only one rclone in‐
5521 stance is running, you can reset the cache like this:
5522
5523 kill -SIGHUP $(pidof rclone)
5524
5525 If you configure rclone with a remote control (/rc) then you can use
5526 rclone rc to flush the whole directory cache:
5527
5528 rclone rc vfs/forget
5529
5530 Or individual files or directories:
5531
5532 rclone rc vfs/forget file=path/to/file dir=path/to/dir
5533
5534 VFS File Buffering
5535 The --buffer-size flag determines the amount of memory, that will be
5536 used to buffer data in advance.
5537
5538 Each open file will try to keep the specified amount of data in memory
5539 at all times. The buffered data is bound to one open file and won't be
5540 shared.
5541
5542 This flag is a upper limit for the used memory per open file. The buf‐
5543 fer will only use memory for data that is downloaded but not not yet
5544 read. If the buffer is empty, only a small amount of memory will be
5545 used.
5546
5547 The maximum memory used by rclone for buffering can be up to --buf‐
5548 fer-size * open files.
5549
5550 VFS File Caching
5551 These flags control the VFS file caching options. File caching is nec‐
5552 essary to make the VFS layer appear compatible with a normal file sys‐
5553 tem. It can be disabled at the cost of some compatibility.
5554
5555 For example you'll need to enable VFS caching if you want to read and
5556 write simultaneously to a file. See below for more details.
5557
5558 Note that the VFS cache is separate from the cache backend and you may
5559 find that you need one or the other or both.
5560
5561 --cache-dir string Directory rclone will use for caching.
5562 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5563 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
5564 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
5565 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
5566 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
5567
5568 If run with -vv rclone will print the location of the file cache. The
5569 files are stored in the user cache file area which is OS dependent but
5570 can be controlled with --cache-dir or setting the appropriate environ‐
5571 ment variable.
5572
5573 The cache has 4 different modes selected by --vfs-cache-mode. The
5574 higher the cache mode the more compatible rclone becomes at the cost of
5575 using disk space.
5576
5577 Note that files are written back to the remote only when they are
5578 closed and if they haven't been accessed for --vfs-write-back second.
5579 If rclone is quit or dies with files that haven't been uploaded, these
5580 will be uploaded next time rclone is run with the same flags.
5581
5582 If using --vfs-cache-max-size note that the cache may exceed this size
5583 for two reasons. Firstly because it is only checked every
5584 --vfs-cache-poll-interval. Secondly because open files cannot be
5585 evicted from the cache.
5586
5587 You should not run two copies of rclone using the same VFS cache with
5588 the same or overlapping remotes if using --vfs-cache-mode > off. This
5589 can potentially cause data corruption if you do. You can work around
5590 this by giving each rclone its own cache hierarchy with --cache-dir.
5591 You don't need to worry about this if the remotes in use don't overlap.
5592
5593 --vfs-cache-mode off
5594 In this mode (the default) the cache will read directly from the remote
5595 and write directly to the remote without caching anything on disk.
5596
5597 This will mean some operations are not possible
5598
5599 • Files can't be opened for both read AND write
5600
5601 • Files opened for write can't be seeked
5602
5603 • Existing files opened for write must have O_TRUNC set
5604
5605 • Files open for read with O_TRUNC will be opened write only
5606
5607 • Files open for write only will behave as if O_TRUNC was supplied
5608
5609 • Open modes O_APPEND, O_TRUNC are ignored
5610
5611 • If an upload fails it can't be retried
5612
5613 --vfs-cache-mode minimal
5614 This is very similar to "off" except that files opened for read AND
5615 write will be buffered to disk. This means that files opened for write
5616 will be a lot more compatible, but uses the minimal disk space.
5617
5618 These operations are not possible
5619
5620 • Files opened for write only can't be seeked
5621
5622 • Existing files opened for write must have O_TRUNC set
5623
5624 • Files opened for write only will ignore O_APPEND, O_TRUNC
5625
5626 • If an upload fails it can't be retried
5627
5628 --vfs-cache-mode writes
5629 In this mode files opened for read only are still read directly from
5630 the remote, write only and read/write files are buffered to disk first.
5631
5632 This mode should support all normal file system operations.
5633
5634 If an upload fails it will be retried at exponentially increasing in‐
5635 tervals up to 1 minute.
5636
5637 --vfs-cache-mode full
5638 In this mode all reads and writes are buffered to and from disk. When
5639 data is read from the remote this is buffered to disk as well.
5640
5641 In this mode the files in the cache will be sparse files and rclone
5642 will keep track of which bits of the files it has downloaded.
5643
5644 So if an application only reads the starts of each file, then rclone
5645 will only buffer the start of the file. These files will appear to be
5646 their full size in the cache, but they will be sparse files with only
5647 the data that has been downloaded present in them.
5648
5649 This mode should support all normal file system operations and is oth‐
5650 erwise identical to --vfs-cache-mode writes.
5651
5652 When reading a file rclone will read --buffer-size plus
5653 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
5654 whereas the --vfs-read-ahead is buffered on disk.
5655
5656 When using this mode it is recommended that --buffer-size is not set
5657 too big and --vfs-read-ahead is set large if required.
5658
5659 IMPORTANT not all file systems support sparse files. In particular
5660 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
5661 ry is on a filesystem which doesn't support sparse files and it will
5662 log an ERROR message if one is detected.
5663
5664 VFS Performance
5665 These flags may be used to enable/disable features of the VFS for per‐
5666 formance or other reasons.
5667
5668 In particular S3 and Swift benefit hugely from the --no-modtime flag
5669 (or use --use-server-modtime for a slightly different effect) as each
5670 read of the modification time takes a transaction.
5671
5672 --no-checksum Don't compare checksums on up/download.
5673 --no-modtime Don't read/write the modification time (can speed things up).
5674 --no-seek Don't allow seeking in files.
5675 --read-only Mount read-only.
5676
5677 When rclone reads files from a remote it reads them in chunks. This
5678 means that rather than requesting the whole file rclone reads the chunk
5679 specified. This is advantageous because some cloud providers account
5680 for reads being all the data requested, not all the data delivered.
5681
5682 Rclone will keep doubling the chunk size requested starting at
5683 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
5684 less it is set to "off" in which case there will be no limit.
5685
5686 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
5687 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
5688
5689 Sometimes rclone is delivered reads or writes out of order. Rather
5690 than seeking rclone will wait a short time for the in sequence read or
5691 write to come in. These flags only come into effect when not using an
5692 on disk cache file.
5693
5694 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
5695 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
5696
5697 When using VFS write caching (--vfs-cache-mode with value writes or
5698 full), the global flag --transfers can be set to adjust the number of
5699 parallel uploads of modified files from cache (the related global flag
5700 --checkers have no effect on mount).
5701
5702 --transfers int Number of file transfers to run in parallel. (default 4)
5703
5704 VFS Case Sensitivity
5705 Linux file systems are case-sensitive: two files can differ only by
5706 case, and the exact case must be used when opening a file.
5707
5708 File systems in modern Windows are case-insensitive but case-preserv‐
5709 ing: although existing files can be opened using any case, the exact
5710 case used to create the file is preserved and available for programs to
5711 query. It is not allowed for two files in the same directory to differ
5712 only by case.
5713
5714 Usually file systems on macOS are case-insensitive. It is possible to
5715 make macOS file systems case-sensitive but that is not the default
5716
5717 The --vfs-case-insensitive mount flag controls how rclone handles these
5718 two cases. If its value is "false", rclone passes file names to the
5719 mounted file system as-is. If the flag is "true" (or appears without a
5720 value on command line), rclone may perform a "fixup" as explained be‐
5721 low.
5722
5723 The user may specify a file name to open/delete/rename/etc with a case
5724 different than what is stored on mounted file system. If an argument
5725 refers to an existing file with exactly the same name, then the case of
5726 the existing file on the disk will be used. However, if a file name
5727 with exactly the same name is not found but a name differing only by
5728 case exists, rclone will transparently fixup the name. This fixup hap‐
5729 pens only when an existing file is requested. Case sensitivity of file
5730 names created anew by rclone is controlled by an underlying mounted
5731 file system.
5732
5733 Note that case sensitivity of the operating system running rclone (the
5734 target) may differ from case sensitivity of a file system mounted by
5735 rclone (the source). The flag controls whether "fixup" is performed to
5736 satisfy the target.
5737
5738 If the flag is not provided on the command line, then its default value
5739 depends on the operating system where rclone runs: "true" on Windows
5740 and macOS, "false" otherwise. If the flag is provided without a value,
5741 then it is "true".
5742
5743 Alternate report of used bytes
5744 Some backends, most notably S3, do not report the amount of bytes used.
5745 If you need this information to be available when running df on the
5746 filesystem, then pass the flag --vfs-used-is-size to rclone. With this
5747 flag set, instead of relying on the backend to report this information,
5748 rclone will scan the whole remote similar to rclone size and compute
5749 the total used space itself.
5750
5751 WARNING. Contrary to rclone size, this flag ignores filters so that the
5752 result is accurate. However, this is very inefficient and may cost
5753 lots of API calls resulting in extra charges. Use it as a last resort
5754 and only with caching.
5755
5756 Auth Proxy
5757 If you supply the parameter --auth-proxy /path/to/program then rclone
5758 will use that program to generate backends on the fly which then are
5759 used to authenticate incoming requests. This uses a simple JSON based
5760 protocol with input on STDIN and output on STDOUT.
5761
5762 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
5763 er, if --auth-proxy is set the authorized keys option will be ignored.
5764
5765 There is an example program bin/test_proxy.py
5766 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
5767 rclone source code.
5768
5769 The program's job is to take a user and pass on the input and turn
5770 those into the config for a backend on STDOUT in JSON format. This
5771 config will have any default parameters for the backend added, but it
5772 won't use configuration from environment variables or command line op‐
5773 tions - it is the job of the proxy program to make a complete config.
5774
5775 This config generated must have this extra parameter - _root - root to
5776 use for the backend
5777
5778 And it may have this parameter - _obscure - comma separated strings for
5779 parameters to obscure
5780
5781 If password authentication was used by the client, input to the proxy
5782 process (on STDIN) would look similar to this:
5783
5784 {
5785 "user": "me",
5786 "pass": "mypassword"
5787 }
5788
5789 If public-key authentication was used by the client, input to the proxy
5790 process (on STDIN) would look similar to this:
5791
5792 {
5793 "user": "me",
5794 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
5795 }
5796
5797 And as an example return this on STDOUT
5798
5799 {
5800 "type": "sftp",
5801 "_root": "",
5802 "_obscure": "pass",
5803 "user": "me",
5804 "pass": "mypassword",
5805 "host": "sftp.example.com"
5806 }
5807
5808 This would mean that an SFTP backend would be created on the fly for
5809 the user and pass/public_key returned in the output to the host given.
5810 Note that since _obscure is set to pass, rclone will obscure the pass
5811 parameter before creating the backend (which is required for sftp back‐
5812 ends).
5813
5814 The program can manipulate the supplied user in any way, for example to
5815 make proxy to many different sftp backends, you could make the user be
5816 user@example.com and then set the host to example.com in the output and
5817 the user to user. For security you'd probably want to restrict the
5818 host to a limited list.
5819
5820 Note that an internal cache is keyed on user so only use that for con‐
5821 figuration, don't use pass or public_key. This also means that if a
5822 user's password or public-key is changed the cache will need to expire
5823 (which takes 5 mins) before it takes effect.
5824
5825 This can be used to build general purpose proxies to any kind of back‐
5826 end that rclone supports.
5827
5828 rclone serve webdav remote:path [flags]
5829
5830 Options
5831 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
5832 --auth-proxy string A program to use to create the backend from the auth.
5833 --baseurl string Prefix for URLs - leave blank for root.
5834 --cert string SSL PEM key (concatenation of certificate and CA certificate)
5835 --client-ca string Client certificate authority to verify clients with
5836 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
5837 --dir-perms FileMode Directory permissions (default 0777)
5838 --disable-dir-list Disable HTML directory list on GET request for a directory
5839 --etag-hash string Which hash to use for the ETag, or auto or blank for off
5840 --file-perms FileMode File permissions (default 0666)
5841 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
5842 -h, --help help for webdav
5843 --htpasswd string htpasswd file - if not provided no authentication is done
5844 --key string SSL PEM Private key
5845 --max-header-bytes int Maximum size of request header (default 4096)
5846 --no-checksum Don't compare checksums on up/download.
5847 --no-modtime Don't read/write the modification time (can speed things up).
5848 --no-seek Don't allow seeking in files.
5849 --pass string Password for authentication.
5850 --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)
5851 --read-only Mount read-only.
5852 --realm string realm for authentication (default "rclone")
5853 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
5854 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
5855 --template string User Specified Template.
5856 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
5857 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
5858 --user string User name for authentication.
5859 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
5860 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
5861 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5862 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
5863 --vfs-case-insensitive If a file name not found, find a case insensitive match.
5864 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
5865 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
5866 --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)
5867 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
5868 --vfs-used-is-size rclone size Use the rclone size algorithm for Used size.
5869 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
5870 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
5871
5872 See the global flags page (https://rclone.org/flags/) for global op‐
5873 tions not listed here.
5874
5875 SEE ALSO
5876 • rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
5877 remote over a protocol.
5878
5880 Changes storage class/tier of objects in remote.
5881
5882 Synopsis
5883 rclone settier changes storage tier or class at remote if supported.
5884 Few cloud storage services provides different storage classes on ob‐
5885 jects, for example AWS S3 and Glacier, Azure Blob storage - Hot, Cool
5886 and Archive, Google Cloud Storage, Regional Storage, Nearline, Coldline
5887 etc.
5888
5889 Note that, certain tier changes make objects not available to access
5890 immediately. For example tiering to archive in azure blob storage
5891 makes objects in frozen state, user can restore by setting tier to
5892 Hot/Cool, similarly S3 to Glacier makes object inaccessible.true
5893
5894 You can use it to tier single object
5895
5896 rclone settier Cool remote:path/file
5897
5898 Or use rclone filters to set tier on only specific files
5899
5900 rclone --include "*.txt" settier Hot remote:path/dir
5901
5902 Or just provide remote directory and all files in directory will be
5903 tiered
5904
5905 rclone settier tier remote:path/dir
5906
5907 rclone settier tier remote:path [flags]
5908
5909 Options
5910 -h, --help help for settier
5911
5912 See the global flags page (https://rclone.org/flags/) for global op‐
5913 tions not listed here.
5914
5915 SEE ALSO
5916 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
5917 commands, flags and backends.
5918
5920 Run a test command
5921
5922 Synopsis
5923 Rclone test is used to run test commands.
5924
5925 Select which test comand you want with the subcommand, eg
5926
5927 rclone test memory remote:
5928
5929 Each subcommand has its own options which you can see in their help.
5930
5931 NB Be careful running these commands, they may do strange things so
5932 reading their documentation first is recommended.
5933
5934 Options
5935 -h, --help help for test
5936
5937 See the global flags page (https://rclone.org/flags/) for global op‐
5938 tions not listed here.
5939
5940 SEE ALSO
5941 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
5942 commands, flags and backends.
5943
5944 • rclone test histogram (https://rclone.org/commands/rclone_test_his‐
5945 togram/) - Makes a histogram of file name characters.
5946
5947 • rclone test info (https://rclone.org/commands/rclone_test_info/) -
5948 Discovers file name or other limitations for paths.
5949
5950 • rclone test makefiles (https://rclone.org/commands/rclone_test_make‐
5951 files/) - Make a random file hierarchy in
5952
5953 • rclone test memory (https://rclone.org/commands/rclone_test_memory/)
5954 - Load all the objects at remote:path into memory and report memory
5955 stats.
5956
5958 Makes a histogram of file name characters.
5959
5960 Synopsis
5961 This command outputs JSON which shows the histogram of characters used
5962 in filenames in the remote:path specified.
5963
5964 The data doesn't contain any identifying information but is useful for
5965 the rclone developers when developing filename compression.
5966
5967 rclone test histogram [remote:path] [flags]
5968
5969 Options
5970 -h, --help help for histogram
5971
5972 See the global flags page (https://rclone.org/flags/) for global op‐
5973 tions not listed here.
5974
5975 SEE ALSO
5976 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
5977 command
5978
5980 Discovers file name or other limitations for paths.
5981
5982 Synopsis
5983 rclone info discovers what filenames and upload methods are possible to
5984 write to the paths passed in and how long they can be. It can take
5985 some time. It will write test files into the remote:path passed in.
5986 It outputs a bit of go code for each one.
5987
5988 NB this can create undeletable files and other hazards - use with care
5989
5990 rclone test info [remote:path]+ [flags]
5991
5992 Options
5993 --all Run all tests.
5994 --check-control Check control characters.
5995 --check-length Check max filename length.
5996 --check-normalization Check UTF-8 Normalization.
5997 --check-streaming Check uploads with indeterminate file size.
5998 -h, --help help for info
5999 --upload-wait duration Wait after writing a file.
6000 --write-json string Write results to file.
6001
6002 See the global flags page (https://rclone.org/flags/) for global op‐
6003 tions not listed here.
6004
6005 SEE ALSO
6006 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
6007 command
6008
6010 Make a random file hierarchy in
6011
6012 rclone test makefiles <dir> [flags]
6013
6014 Options
6015 --files int Number of files to create (default 1000)
6016 --files-per-directory int Average number of files per directory (default 10)
6017 -h, --help help for makefiles
6018 --max-file-size SizeSuffix Maximum size of files to create (default 100)
6019 --max-name-length int Maximum size of file names (default 12)
6020 --min-file-size SizeSuffix Minimum size of file to create
6021 --min-name-length int Minimum size of file names (default 4)
6022
6023 See the global flags page (https://rclone.org/flags/) for global op‐
6024 tions not listed here.
6025
6026 SEE ALSO
6027 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
6028 command
6029
6031 Load all the objects at remote:path into memory and report memory
6032 stats.
6033
6034 rclone test memory remote:path [flags]
6035
6036 Options
6037 -h, --help help for memory
6038
6039 See the global flags page (https://rclone.org/flags/) for global op‐
6040 tions not listed here.
6041
6042 SEE ALSO
6043 • rclone test (https://rclone.org/commands/rclone_test/) - Run a test
6044 command
6045
6047 Create new file or change file modification time.
6048
6049 Synopsis
6050 Set the modification time on object(s) as specified by remote:path to
6051 have the current time.
6052
6053 If remote:path does not exist then a zero sized object will be created
6054 unless the --no-create flag is provided.
6055
6056 If --timestamp is used then it will set the modification time to that
6057 time instead of the current time. Times may be specified as one of:
6058
6059 • 'YYMMDD' - e.g. 17.10.30
6060
6061 • 'YYYY-MM-DDTHH:MM:SS' - e.g. 2006-01-02T15:04:05
6062
6063 • 'YYYY-MM-DDTHH:MM:SS.SSS' - e.g. 2006-01-02T15:04:05.123456789
6064
6065 Note that --timestamp is in UTC if you want local time then add the
6066 --localtime flag.
6067
6068 rclone touch remote:path [flags]
6069
6070 Options
6071 -h, --help help for touch
6072 --localtime Use localtime for timestamp, not UTC.
6073 -C, --no-create Do not create the file if it does not exist.
6074 -t, --timestamp string Use specified time instead of the current time of day.
6075
6076 See the global flags page (https://rclone.org/flags/) for global op‐
6077 tions not listed here.
6078
6079 SEE ALSO
6080 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
6081 commands, flags and backends.
6082
6084 List the contents of the remote in a tree like fashion.
6085
6086 Synopsis
6087 rclone tree lists the contents of a remote in a similar way to the unix
6088 tree command.
6089
6090 For example
6091
6092 $ rclone tree remote:path
6093 /
6094 ├── file1
6095 ├── file2
6096 ├── file3
6097 └── subdir
6098 ├── file4
6099 └── file5
6100
6101 1 directories, 5 files
6102
6103 You can use any of the filtering options with the tree command (e.g.
6104 --include and --exclude). You can also use --fast-list.
6105
6106 The tree command has many options for controlling the listing which are
6107 compatible with the tree command. Note that not all of them have short
6108 options as they conflict with rclone's short options.
6109
6110 rclone tree remote:path [flags]
6111
6112 Options
6113 -a, --all All files are listed (list . files too).
6114 -C, --color Turn colorization on always.
6115 -d, --dirs-only List directories only.
6116 --dirsfirst List directories before files (-U disables).
6117 --full-path Print the full path prefix for each file.
6118 -h, --help help for tree
6119 --human Print the size in a more human readable way.
6120 --level int Descend only level directories deep.
6121 -D, --modtime Print the date of last modification.
6122 --noindent Don't print indentation lines.
6123 --noreport Turn off file/directory count at end of tree listing.
6124 -o, --output string Output to file instead of stdout.
6125 -p, --protections Print the protections for each file.
6126 -Q, --quote Quote filenames with double quotes.
6127 -s, --size Print the size in bytes of each file.
6128 --sort string Select sort: name,version,size,mtime,ctime.
6129 --sort-ctime Sort files by last status change time.
6130 -t, --sort-modtime Sort files by last modification time.
6131 -r, --sort-reverse Reverse the order of the sort.
6132 -U, --unsorted Leave files unsorted.
6133 --version Sort files alphanumerically by version.
6134
6135 See the global flags page (https://rclone.org/flags/) for global op‐
6136 tions not listed here.
6137
6138 SEE ALSO
6139 • rclone (https://rclone.org/commands/rclone/) - Show help for rclone
6140 commands, flags and backends.
6141
6142 Copying single files
6143 rclone normally syncs or copies directories. However, if the source
6144 remote points to a file, rclone will just copy that file. The destina‐
6145 tion remote must point to a directory - rclone will give the error
6146 Failed to create file system for "remote:file": is a file not a direc‐
6147 tory if it isn't.
6148
6149 For example, suppose you have a remote with a file in called test.jpg,
6150 then you could copy just that file like this
6151
6152 rclone copy remote:test.jpg /tmp/download
6153
6154 The file test.jpg will be placed inside /tmp/download.
6155
6156 This is equivalent to specifying
6157
6158 rclone copy --files-from /tmp/files remote: /tmp/download
6159
6160 Where /tmp/files contains the single line
6161
6162 test.jpg
6163
6164 It is recommended to use copy when copying individual files, not sync.
6165 They have pretty much the same effect but copy will use a lot less mem‐
6166 ory.
6167
6168 Syntax of remote paths
6169 The syntax of the paths passed to the rclone command are as follows.
6170
6171 /path/to/dir
6172 This refers to the local file system.
6173
6174 On Windows \ may be used instead of / in local paths only, non local
6175 paths must use /. See local filesystem (https://rclone.org/local/#win‐
6176 dows-paths) documentation for more about Windows-specific paths.
6177
6178 These paths needn't start with a leading / - if they don't then they
6179 will be relative to the current directory.
6180
6181 remote:path/to/dir
6182 This refers to a directory path/to/dir on remote: as defined in the
6183 config file (configured with rclone config).
6184
6185 remote:/path/to/dir
6186 On most backends this is refers to the same directory as re‐
6187 mote:path/to/dir and that format should be preferred. On a very small
6188 number of remotes (FTP, SFTP, Dropbox for business) this will refer to
6189 a different directory. On these, paths without a leading / will refer
6190 to your "home" directory and paths with a leading / will refer to the
6191 root.
6192
6193 :backend:path/to/dir
6194 This is an advanced form for creating remotes on the fly. backend
6195 should be the name or prefix of a backend (the type in the config file)
6196 and all the configuration for the backend should be provided on the
6197 command line (or in environment variables).
6198
6199 Here are some examples:
6200
6201 rclone lsd --http-url https://pub.rclone.org :http:
6202
6203 To list all the directories in the root of https://pub.rclone.org/.
6204
6205 rclone lsf --http-url https://example.com :http:path/to/dir
6206
6207 To list files and directories in https://example.com/path/to/dir/
6208
6209 rclone copy --http-url https://example.com :http:path/to/dir /tmp/dir
6210
6211 To copy files and directories in https://example.com/path/to/dir to
6212 /tmp/dir.
6213
6214 rclone copy --sftp-host example.com :sftp:path/to/dir /tmp/dir
6215
6216 To copy files and directories from example.com in the relative directo‐
6217 ry path/to/dir to /tmp/dir using sftp.
6218
6219 Connection strings
6220 The above examples can also be written using a connection string syn‐
6221 tax, so instead of providing the arguments as command line parameters
6222 --http-url https://pub.rclone.org they are provided as part of the re‐
6223 mote specification as a kind of connection string.
6224
6225 rclone lsd ":http,url='https://pub.rclone.org':"
6226 rclone lsf ":http,url='https://example.com':path/to/dir"
6227 rclone copy ":http,url='https://example.com':path/to/dir" /tmp/dir
6228 rclone copy :sftp,host=example.com:path/to/dir /tmp/dir
6229
6230 These can apply to modify existing remotes as well as create new re‐
6231 motes with the on the fly syntax. This example is equivalent to adding
6232 the --drive-shared-with-me parameter to the remote gdrive:.
6233
6234 rclone lsf "gdrive,shared_with_me:path/to/dir"
6235
6236 The major advantage to using the connection string style syntax is that
6237 it only applies the the remote, not to all the remotes of that type of
6238 the command line. A common confusion is this attempt to copy a file
6239 shared on google drive to the normal drive which does not work because
6240 the --drive-shared-with-me flag applies to both the source and the des‐
6241 tination.
6242
6243 rclone copy --drive-shared-with-me gdrive:shared-file.txt gdrive:
6244
6245 However using the connection string syntax, this does work.
6246
6247 rclone copy "gdrive,shared_with_me:shared-file.txt" gdrive:
6248
6249 The connection strings have the following syntax
6250
6251 remote,parameter=value,parameter2=value2:path/to/dir
6252 :backend,parameter=value,parameter2=value2:path/to/dir
6253
6254 If the parameter has a : or , then it must be placed in quotes " or ',
6255 so
6256
6257 remote,parameter="colon:value",parameter2="comma,value":path/to/dir
6258 :backend,parameter='colon:value',parameter2='comma,value':path/to/dir
6259
6260 If a quoted value needs to include that quote, then it should be dou‐
6261 bled, so
6262
6263 remote,parameter="with""quote",parameter2='with''quote':path/to/dir
6264
6265 This will make parameter be with"quote and parameter2 be with'quote.
6266
6267 If you leave off the =parameter then rclone will substitute =true which
6268 works very well with flags. For example to use s3 configured in the
6269 environment you could use:
6270
6271 rclone lsd :s3,env_auth:
6272
6273 Which is equivalent to
6274
6275 rclone lsd :s3,env_auth=true:
6276
6277 Note that on the command line you might need to surround these connec‐
6278 tion strings with " or ' to stop the shell interpreting any special
6279 characters within them.
6280
6281 If you are a shell master then you'll know which strings are OK and
6282 which aren't, but if you aren't sure then enclose them in " and use '
6283 as the inside quote. This syntax works on all OSes.
6284
6285 rclone copy ":http,url='https://example.com':path/to/dir" /tmp/dir
6286
6287 On Linux/macOS some characters are still interpreted inside " strings
6288 in the shell (notably \ and $ and ") so if your strings contain those
6289 you can swap the roles of " and ' thus. (This syntax does not work on
6290 Windows.)
6291
6292 rclone copy ':http,url="https://example.com":path/to/dir' /tmp/dir
6293
6294 Connection strings, config and logging
6295 If you supply extra configuration to a backend by command line flag,
6296 environment variable or connection string then rclone will add a suffix
6297 based on the hash of the config to the name of the remote, eg
6298
6299 rclone -vv lsf --s3-chunk-size 20M s3:
6300
6301 Has the log message
6302
6303 DEBUG : s3: detected overridden config - adding "{Srj1p}" suffix to name
6304
6305 This is so rclone can tell the modified remote apart from the unmodi‐
6306 fied remote when caching the backends.
6307
6308 This should only be noticeable in the logs.
6309
6310 This means that on the fly backends such as
6311
6312 rclone -vv lsf :s3,env_auth:
6313
6314 Will get their own names
6315
6316 DEBUG : :s3: detected overridden config - adding "{YTu53}" suffix to name
6317
6318 Valid remote names
6319 • Remote names may only contain 0-9, A-Z ,a-z ,_ , - and space.
6320
6321 • Remote names may not start with -.
6322
6323 Quoting and the shell
6324 When you are typing commands to your computer you are using something
6325 called the command line shell. This interprets various characters in
6326 an OS specific way.
6327
6328 Here are some gotchas which may help users unfamiliar with the shell
6329 rules
6330
6331 Linux / OSX
6332 If your names have spaces or shell metacharacters (e.g. *, ?, $, ', ",
6333 etc.) then you must quote them. Use single quotes ' by default.
6334
6335 rclone copy 'Important files?' remote:backup
6336
6337 If you want to send a ' you will need to use ", e.g.
6338
6339 rclone copy "O'Reilly Reviews" remote:backup
6340
6341 The rules for quoting metacharacters are complicated and if you want
6342 the full details you'll have to consult the manual page for your shell.
6343
6344 Windows
6345 If your names have spaces in you need to put them in ", e.g.
6346
6347 rclone copy "E:\folder name\folder name\folder name" remote:backup
6348
6349 If you are using the root directory on its own then don't quote it (see
6350 #464 (https://github.com/rclone/rclone/issues/464) for why), e.g.
6351
6352 rclone copy E:\ remote:backup
6353
6354 Copying files or directories with : in the names
6355 rclone uses : to mark a remote name. This is, however, a valid file‐
6356 name component in non-Windows OSes. The remote name parser will only
6357 search for a : up to the first / so if you need to act on a file or di‐
6358 rectory like this then use the full path starting with a /, or use ./
6359 as a current directory prefix.
6360
6361 So to sync a directory called sync:me to a remote called remote: use
6362
6363 rclone sync -i ./sync:me remote:path
6364
6365 or
6366
6367 rclone sync -i /full/path/to/sync:me remote:path
6368
6369 Server Side Copy
6370 Most remotes (but not all - see the overview (https://rclone.org/over‐
6371 view/#optional-features)) support server-side copy.
6372
6373 This means if you want to copy one folder to another then rclone won't
6374 download all the files and re-upload them; it will instruct the server
6375 to copy them in place.
6376
6377 Eg
6378
6379 rclone copy s3:oldbucket s3:newbucket
6380
6381 Will copy the contents of oldbucket to newbucket without downloading
6382 and re-uploading.
6383
6384 Remotes which don't support server-side copy will download and re-up‐
6385 load in this case.
6386
6387 Server side copies are used with sync and copy and will be identified
6388 in the log when using the -v flag. The move command may also use them
6389 if remote doesn't support server-side move directly. This is done by
6390 issuing a server-side copy then a delete which is much quicker than a
6391 download and re-upload.
6392
6393 Server side copies will only be attempted if the remote names are the
6394 same.
6395
6396 This can be used when scripting to make aged backups efficiently, e.g.
6397
6398 rclone sync -i remote:current-backup remote:previous-backup
6399 rclone sync -i /path/to/files remote:current-backup
6400
6401 Options
6402 Rclone has a number of options to control its behaviour.
6403
6404 Options that take parameters can have the values passed in two ways,
6405 --option=value or --option value. However boolean (true/false) options
6406 behave slightly differently to the other options in that --boolean sets
6407 the option to true and the absence of the flag sets it to false. It is
6408 also possible to specify --boolean=false or --boolean=true. Note that
6409 --boolean false is not valid - this is parsed as --boolean and the
6410 false is parsed as an extra command line argument for rclone.
6411
6412 Options which use TIME use the go time parser. A duration string is a
6413 possibly signed sequence of decimal numbers, each with optional frac‐
6414 tion and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid
6415 time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
6416
6417 Options which use SIZE use kByte by default. However, a suffix of b
6418 for bytes, k for kBytes, M for MBytes, G for GBytes, T for TBytes and P
6419 for PBytes may be used. These are the binary units, e.g. 1, 2**10,
6420 2**20, 2**30 respectively.
6421
6422 --backup-dir=DIR
6423 When using sync, copy or move any files which would have been overwrit‐
6424 ten or deleted are moved in their original hierarchy into this directo‐
6425 ry.
6426
6427 If --suffix is set, then the moved files will have the suffix added to
6428 them. If there is a file with the same path (after the suffix has been
6429 added) in DIR, then it will be overwritten.
6430
6431 The remote in use must support server-side move or copy and you must
6432 use the same remote as the destination of the sync. The backup direc‐
6433 tory must not overlap the destination directory.
6434
6435 For example
6436
6437 rclone sync -i /path/to/local remote:current --backup-dir remote:old
6438
6439 will sync /path/to/local to remote:current, but for any files which
6440 would have been updated or deleted will be stored in remote:old.
6441
6442 If running rclone from a script you might want to use today's date as
6443 the directory name passed to --backup-dir to store the old files, or
6444 you might want to pass --suffix with today's date.
6445
6446 See --compare-dest and --copy-dest.
6447
6448 --bind string
6449 Local address to bind to for outgoing connections. This can be an IPv4
6450 address (1.2.3.4), an IPv6 address (1234::789A) or host name. If the
6451 host name doesn't resolve or resolves to more than one IP address it
6452 will give an error.
6453
6454 --bwlimit=BANDWIDTH_SPEC
6455 This option controls the bandwidth limit. For example
6456
6457 --bwlimit 10M
6458
6459 would mean limit the upload and download bandwidth to 10 MByte/s. NB
6460 this is bytes per second not bits per second. To use a single limit,
6461 specify the desired bandwidth in kBytes/s, or use a suffix b|k|M|G.
6462 The default is 0 which means to not limit bandwidth.
6463
6464 The upload and download bandwidth can be specified seperately, as
6465 --bwlimit UP:DOWN, so
6466
6467 --bwlimit 10M:100k
6468
6469 would mean limit the upload bandwidth to 10 MByte/s and the download
6470 bandwidth to 100 kByte/s. Either limit can be "off" meaning no limit,
6471 so to just limit the upload bandwidth you would use
6472
6473 --bwlimit 10M:off
6474
6475 this would limit the upload bandwidth to 10MByte/s but the download
6476 bandwidth would be unlimited.
6477
6478 When specified as above the bandwidth limits last for the duration of
6479 run of the rclone binary.
6480
6481 It is also possible to specify a "timetable" of limits, which will
6482 cause certain limits to be applied at certain times. To specify a
6483 timetable, format your entries as WEEKDAY-HH:MM,BANDWIDTH WEEK‐
6484 DAY-HH:MM,BANDWIDTH... where: WEEKDAY is optional element.
6485
6486 • BANDWIDTH can be a single number, e.g.100k or a pair of numbers for
6487 upload:download, e.g.10M:1M.
6488
6489 • WEEKDAY can be written as the whole word or only using the first 3
6490 characters. It is optional.
6491
6492 • HH:MM is an hour from 00:00 to 23:59.
6493
6494 An example of a typical timetable to avoid link saturation during day‐
6495 time working hours could be:
6496
6497 --bwlimit "08:00,512k 12:00,10M 13:00,512k 18:00,30M 23:00,off"
6498
6499 In this example, the transfer bandwidth will be set to 512kBytes/sec at
6500 8am every day. At noon, it will rise to 10MByte/s, and drop back to
6501 512kBytes/sec at 1pm. At 6pm, the bandwidth limit will be set to
6502 30MByte/s, and at 11pm it will be completely disabled (full speed).
6503 Anything between 11pm and 8am will remain unlimited.
6504
6505 An example of timetable with WEEKDAY could be:
6506
6507 --bwlimit "Mon-00:00,512 Fri-23:59,10M Sat-10:00,1M Sun-20:00,off"
6508
6509 It means that, the transfer bandwidth will be set to 512kBytes/sec on
6510 Monday. It will rise to 10MByte/s before the end of Friday. At 10:00
6511 on Saturday it will be set to 1MByte/s. From 20:00 on Sunday it will
6512 be unlimited.
6513
6514 Timeslots without WEEKDAY are extended to the whole week. So this ex‐
6515 ample:
6516
6517 --bwlimit "Mon-00:00,512 12:00,1M Sun-20:00,off"
6518
6519 Is equivalent to this:
6520
6521 --bwlimit "Mon-00:00,512Mon-12:00,1M Tue-12:00,1M Wed-12:00,1M
6522 Thu-12:00,1M Fri-12:00,1M Sat-12:00,1M Sun-12:00,1M Sun-20:00,off"
6523
6524 Bandwidth limit apply to the data transfer for all backends. For most
6525 backends the directory listing bandwidth is also included (exceptions
6526 being the non HTTP backends, ftp, sftp and tardigrade).
6527
6528 Note that the units are Bytes/s, not Bits/s. Typically connections are
6529 measured in Bits/s - to convert divide by 8. For example, let's say
6530 you have a 10 Mbit/s connection and you wish rclone to use half of it -
6531 5 Mbit/s. This is 5/8 = 0.625MByte/s so you would use a --bwlimit
6532 0.625M parameter for rclone.
6533
6534 On Unix systems (Linux, macOS, ...) the bandwidth limiter can be tog‐
6535 gled by sending a SIGUSR2 signal to rclone. This allows to remove the
6536 limitations of a long running rclone transfer and to restore it back to
6537 the value specified with --bwlimit quickly when needed. Assuming there
6538 is only one rclone instance running, you can toggle the limiter like
6539 this:
6540
6541 kill -SIGUSR2 $(pidof rclone)
6542
6543 If you configure rclone with a remote control (/rc) then you can use
6544 change the bwlimit dynamically:
6545
6546 rclone rc core/bwlimit rate=1M
6547
6548 --bwlimit-file=BANDWIDTH_SPEC
6549 This option controls per file bandwidth limit. For the options see the
6550 --bwlimit flag.
6551
6552 For example use this to allow no transfers to be faster than 1MByte/s
6553
6554 --bwlimit-file 1M
6555
6556 This can be used in conjunction with --bwlimit.
6557
6558 Note that if a schedule is provided the file will use the schedule in
6559 effect at the start of the transfer.
6560
6561 --buffer-size=SIZE
6562 Use this sized buffer to speed up file transfers. Each --transfer will
6563 use this much memory for buffering.
6564
6565 When using mount or cmount each open file descriptor will use this much
6566 memory for buffering. See the mount (https://rclone.org/com‐
6567 mands/rclone_mount/#file-buffering) documentation for more details.
6568
6569 Set to 0 to disable the buffering for the minimum memory usage.
6570
6571 Note that the memory allocation of the buffers is influenced by the
6572 --use-mmap flag.
6573
6574 --check-first
6575 If this flag is set then in a sync, copy or move, rclone will do all
6576 the checks to see whether files need to be transferred before doing any
6577 of the transfers. Normally rclone would start running transfers as
6578 soon as possible.
6579
6580 This flag can be useful on IO limited systems where transfers interfere
6581 with checking.
6582
6583 It can also be useful to ensure perfect ordering when using --order-by.
6584
6585 Using this flag can use more memory as it effectively sets --max-back‐
6586 log to infinite. This means that all the info on the objects to trans‐
6587 fer is held in memory before the transfers start.
6588
6589 --checkers=N
6590 The number of checkers to run in parallel. Checkers do the equality
6591 checking of files during a sync. For some storage systems (e.g. S3,
6592 Swift, Dropbox) this can take a significant amount of time so they are
6593 run in parallel.
6594
6595 The default is to run 8 checkers in parallel.
6596
6597 -c, --checksum
6598 Normally rclone will look at modification time and size of files to see
6599 if they are equal. If you set this flag then rclone will check the
6600 file hash and size to determine if files are equal.
6601
6602 This is useful when the remote doesn't support setting modified time
6603 and a more accurate sync is desired than just checking the file size.
6604
6605 This is very useful when transferring between remotes which store the
6606 same hash type on the object, e.g. Drive and Swift. For details of
6607 which remotes support which hash type see the table in the overview
6608 section (https://rclone.org/overview/).
6609
6610 Eg rclone --checksum sync s3:/bucket swift:/bucket would run much
6611 quicker than without the --checksum flag.
6612
6613 When using this flag, rclone won't update mtimes of remote files if
6614 they are incorrect as it would normally.
6615
6616 --compare-dest=DIR
6617 When using sync, copy or move DIR is checked in addition to the desti‐
6618 nation for files. If a file identical to the source is found that file
6619 is NOT copied from source. This is useful to copy just files that have
6620 changed since the last backup.
6621
6622 You must use the same remote as the destination of the sync. The com‐
6623 pare directory must not overlap the destination directory.
6624
6625 See --copy-dest and --backup-dir.
6626
6627 --config=CONFIG_FILE
6628 Specify the location of the rclone configuration file.
6629
6630 Normally the config file is in your home directory as a file called
6631 .config/rclone/rclone.conf (or .rclone.conf if created with an older
6632 version). If $XDG_CONFIG_HOME is set it will be at $XDG_CON‐
6633 FIG_HOME/rclone/rclone.conf.
6634
6635 If there is a file rclone.conf in the same directory as the rclone exe‐
6636 cutable it will be preferred. This file must be created manually for
6637 Rclone to use it, it will never be created automatically.
6638
6639 If you run rclone config file you will see where the default location
6640 is for you.
6641
6642 Use this flag to override the config location, e.g. rclone --con‐
6643 fig=".myconfig" config.
6644
6645 If the location is set to empty string "" or the special value /not‐
6646 found, or the os null device represented by value NUL on Windows and
6647 /dev/null on Unix systems, then rclone will keep the config file in
6648 memory only.
6649
6650 The file format is basic INI (https://en.wikipedia.org/wi‐
6651 ki/INI_file#Format): Sections of text, led by a [section] header and
6652 followed by key=value entries on separate lines. In rclone each remote
6653 is represented by its own section, where the section name defines the
6654 name of the remote. Options are specified as the key=value entries,
6655 where the key is the option name without the --backend- prefix, in low‐
6656 ercase and with _ instead of -. E.g. option --mega-hard-delete corre‐
6657 sponds to key hard_delete. Only backend options can be specified. A
6658 special, and required, key type identifies the storage system
6659 (https://rclone.org/overview/), where the value is the internal lower‐
6660 case name as returned by command rclone help backends. Comments are
6661 indicated by ; or # at the beginning of a line.
6662
6663 Example:
6664
6665 [megaremote]
6666 type = mega
6667 user = you@example.com
6668 pass = PDPcQVVjVtzFY-GTdDFozqBhTdsPg3qH
6669
6670 Note that passwords are in obscured (https://rclone.org/com‐
6671 mands/rclone_obscure/) form. Also, many storage systems uses to‐
6672 ken-based authentication instead of passwords, and this requires addi‐
6673 tional steps. It is easier, and safer, to use the interactive command
6674 rclone config instead of manually editing the configuration file.
6675
6676 The configuration file will typically contain login information, and
6677 should therefore have restricted permissions so that only the current
6678 user can read it. Rclone tries to ensure this when it writes the file.
6679 You may also choose to encrypt the file.
6680
6681 When token-based authentication are used, the configuration file must
6682 be writable, because rclone needs to update the tokens inside it.
6683
6684 --contimeout=TIME
6685 Set the connection timeout. This should be in go time format which
6686 looks like 5s for 5 seconds, 10m for 10 minutes, or 3h30m.
6687
6688 The connection timeout is the amount of time rclone will wait for a
6689 connection to go through to a remote object storage system. It is 1m
6690 by default.
6691
6692 --copy-dest=DIR
6693 When using sync, copy or move DIR is checked in addition to the desti‐
6694 nation for files. If a file identical to the source is found that file
6695 is server-side copied from DIR to the destination. This is useful for
6696 incremental backup.
6697
6698 The remote in use must support server-side copy and you must use the
6699 same remote as the destination of the sync. The compare directory must
6700 not overlap the destination directory.
6701
6702 See --compare-dest and --backup-dir.
6703
6704 --dedupe-mode MODE
6705 Mode to run dedupe command in. One of interactive, skip, first, new‐
6706 est, oldest, rename. The default is interactive. See the dedupe com‐
6707 mand for more information as to what these options mean.
6708
6709 --disable FEATURE,FEATURE,...
6710 This disables a comma separated list of optional features. For example
6711 to disable server-side move and server-side copy use:
6712
6713 --disable move,copy
6714
6715 The features can be put in any case.
6716
6717 To see a list of which features can be disabled use:
6718
6719 --disable help
6720
6721 See the overview features (https://rclone.org/overview/#features) and
6722 optional features (https://rclone.org/overview/#optional-features) to
6723 get an idea of which feature does what.
6724
6725 This flag can be useful for debugging and in exceptional circumstances
6726 (e.g. Google Drive limiting the total volume of Server Side Copies to
6727 100GB/day).
6728
6729 --dscp VALUE
6730 Specify a DSCP value or name to use in connections. This could help
6731 QoS system to identify traffic class. BE, EF, DF, LE, CSx and AFxx are
6732 allowed.
6733
6734 See the description of differentiated services
6735 (https://en.wikipedia.org/wiki/Differentiated_services) to get an idea
6736 of this field. Setting this to 1 (LE) to identify the flow to SCAV‐
6737 ENGER class can avoid occupying too much bandwidth in a network with
6738 DiffServ support (RFC 8622 (https://tools.ietf.org/html/rfc8622)).
6739
6740 For example, if you configured QoS on router to handle LE properly.
6741 Running:
6742
6743 rclone copy --dscp LE from:/from to:/to
6744
6745 would make the priority lower than usual internet flows.
6746
6747 -n, --dry-run
6748 Do a trial run with no permanent changes. Use this to see what rclone
6749 would do without actually doing it. Useful when setting up the sync
6750 command which deletes files in the destination.
6751
6752 --expect-continue-timeout=TIME
6753 This specifies the amount of time to wait for a server's first response
6754 headers after fully writing the request headers if the request has an
6755 "Expect: 100-continue" header. Not all backends support using this.
6756
6757 Zero means no timeout and causes the body to be sent immediately, with‐
6758 out waiting for the server to approve. This time does not include the
6759 time to send the request header.
6760
6761 The default is 1s. Set to 0 to disable.
6762
6763 --error-on-no-transfer
6764 By default, rclone will exit with return code 0 if there were no er‐
6765 rors.
6766
6767 This option allows rclone to return exit code 9 if no files were trans‐
6768 ferred between the source and destination. This allows using rclone in
6769 scripts, and triggering follow-on actions if data was copied, or skip‐
6770 ping if not.
6771
6772 NB: Enabling this option turns a usually non-fatal error into a poten‐
6773 tially fatal one - please check and adjust your scripts accordingly!
6774
6775 --fs-cache-expire-duration=TIME
6776 When using rclone via the API rclone caches created remotes for 5 min‐
6777 utes by default in the "fs cache". This means that if you do repeated
6778 actions on the same remote then rclone won't have to build it again
6779 from scratch, which makes it more efficient.
6780
6781 This flag sets the time that the remotes are cached for. If you set it
6782 to 0 (or negative) then rclone won't cache the remotes at all.
6783
6784 Note that if you use some flags, eg --backup-dir and if this is set to
6785 0 rclone may build two remotes (one for the source or destination and
6786 one for the --backup-dir where it may have only built one before.
6787
6788 --fs-cache-expire-interval=TIME
6789 This controls how often rclone checks for cached remotes to expire.
6790 See the --fs-cache-expire-duration documentation above for more info.
6791 The default is 60s, set to 0 to disable expiry.
6792
6793 --header
6794 Add an HTTP header for all transactions. The flag can be repeated to
6795 add multiple headers.
6796
6797 If you want to add headers only for uploads use --header-upload and if
6798 you want to add headers only for downloads use --header-download.
6799
6800 This flag is supported for all HTTP based backends even those not sup‐
6801 ported by --header-upload and --header-download so may be used as a
6802 workaround for those with care.
6803
6804 rclone ls remote:test --header "X-Rclone: Foo" --header "X-LetMeIn: Yes"
6805
6806 --header-download
6807 Add an HTTP header for all download transactions. The flag can be re‐
6808 peated to add multiple headers.
6809
6810 rclone sync -i s3:test/src ~/dst --header-download "X-Amz-Meta-Test: Foo" --header-download "X-Amz-Meta-Test2: Bar"
6811
6812 See the GitHub issue here (https://github.com/rclone/rclone/issues/59)
6813 for currently supported backends.
6814
6815 --header-upload
6816 Add an HTTP header for all upload transactions. The flag can be re‐
6817 peated to add multiple headers.
6818
6819 rclone sync -i ~/src s3:test/dst --header-upload "Content-Disposition: attachment; filename='cool.html'" --header-upload "X-Amz-Meta-Test: FooBar"
6820
6821 See the GitHub issue here (https://github.com/rclone/rclone/issues/59)
6822 for currently supported backends.
6823
6824 --ignore-case-sync
6825 Using this option will cause rclone to ignore the case of the files
6826 when synchronizing so files will not be copied/synced when the existing
6827 filenames are the same, even if the casing is different.
6828
6829 --ignore-checksum
6830 Normally rclone will check that the checksums of transferred files
6831 match, and give an error "corrupted on transfer" if they don't.
6832
6833 You can use this option to skip that check. You should only use it if
6834 you have had the "corrupted on transfer" error message and you are sure
6835 you might want to transfer potentially corrupted data.
6836
6837 --ignore-existing
6838 Using this option will make rclone unconditionally skip all files that
6839 exist on the destination, no matter the content of these files.
6840
6841 While this isn't a generally recommended option, it can be useful in
6842 cases where your files change due to encryption. However, it cannot
6843 correct partial transfers in case a transfer was interrupted.
6844
6845 --ignore-size
6846 Normally rclone will look at modification time and size of files to see
6847 if they are equal. If you set this flag then rclone will check only
6848 the modification time. If --checksum is set then it only checks the
6849 checksum.
6850
6851 It will also cause rclone to skip verifying the sizes are the same af‐
6852 ter transfer.
6853
6854 This can be useful for transferring files to and from OneDrive which
6855 occasionally misreports the size of image files (see #399
6856 (https://github.com/rclone/rclone/issues/399) for more info).
6857
6858 -I, --ignore-times
6859 Using this option will cause rclone to unconditionally upload all files
6860 regardless of the state of files on the destination.
6861
6862 Normally rclone would skip any files that have the same modification
6863 time and are the same size (or have the same checksum if using --check‐
6864 sum).
6865
6866 --immutable
6867 Treat source and destination files as immutable and disallow modifica‐
6868 tion.
6869
6870 With this option set, files will be created and deleted as requested,
6871 but existing files will never be updated. If an existing file does not
6872 match between the source and destination, rclone will give the error
6873 Source and destination exist but do not match: immutable file modified.
6874
6875 Note that only commands which transfer files (e.g. sync, copy, move)
6876 are affected by this behavior, and only modification is disallowed.
6877 Files may still be deleted explicitly (e.g. delete, purge) or implic‐
6878 itly (e.g. sync, move). Use copy --immutable if it is desired to
6879 avoid deletion as well as modification.
6880
6881 This can be useful as an additional layer of protection for immutable
6882 or append-only data sets (notably backup archives), where modification
6883 implies corruption and should not be propagated.
6884
6885 -i / --interactive
6886 This flag can be used to tell rclone that you wish a manual confirma‐
6887 tion before destructive operations.
6888
6889 It is recommended that you use this flag while learning rclone espe‐
6890 cially with rclone sync.
6891
6892 For example
6893
6894 $ rclone delete -i /tmp/dir
6895 rclone: delete "important-file.txt"?
6896 y) Yes, this is OK (default)
6897 n) No, skip this
6898 s) Skip all delete operations with no more questions
6899 !) Do all delete operations with no more questions
6900 q) Exit rclone now.
6901 y/n/s/!/q> n
6902
6903 The options mean
6904
6905 • y: Yes, this operation should go ahead. You can also press Return
6906 for this to happen. You'll be asked every time unless you choose s
6907 or !.
6908
6909 • n: No, do not do this operation. You'll be asked every time unless
6910 you choose s or !.
6911
6912 • s: Skip all the following operations of this type with no more ques‐
6913 tions. This takes effect until rclone exits. If there are any dif‐
6914 ferent kind of operations you'll be prompted for them.
6915
6916 • !: Do all the following operations with no more questions. Useful if
6917 you've decided that you don't mind rclone doing that kind of opera‐
6918 tion. This takes effect until rclone exits . If there are any dif‐
6919 ferent kind of operations you'll be prompted for them.
6920
6921 • q: Quit rclone now, just in case!
6922
6923 --leave-root
6924 During rmdirs it will not remove root directory, even if it's empty.
6925
6926 --log-file=FILE
6927 Log all of rclone's output to FILE. This is not active by default.
6928 This can be useful for tracking down problems with syncs in combination
6929 with the -v flag. See the Logging section for more info.
6930
6931 If FILE exists then rclone will append to it.
6932
6933 Note that if you are using the logrotate program to manage rclone's
6934 logs, then you should use the copytruncate option as rclone doesn't
6935 have a signal to rotate logs.
6936
6937 --log-format LIST
6938 Comma separated list of log format options. date, time, microseconds,
6939 longfile, shortfile, UTC. The default is "date,time".
6940
6941 --log-level LEVEL
6942 This sets the log level for rclone. The default log level is NOTICE.
6943
6944 DEBUG is equivalent to -vv. It outputs lots of debug info - useful for
6945 bug reports and really finding out what rclone is doing.
6946
6947 INFO is equivalent to -v. It outputs information about each transfer
6948 and prints stats once a minute by default.
6949
6950 NOTICE is the default log level if no logging flags are supplied. It
6951 outputs very little when things are working normally. It outputs warn‐
6952 ings and significant events.
6953
6954 ERROR is equivalent to -q. It only outputs error messages.
6955
6956 --use-json-log
6957 This switches the log format to JSON for rclone. The fields of json
6958 log are level, msg, source, time.
6959
6960 --low-level-retries NUMBER
6961 This controls the number of low level retries rclone does.
6962
6963 A low level retry is used to retry a failing operation - typically one
6964 HTTP request. This might be uploading a chunk of a big file for exam‐
6965 ple. You will see low level retries in the log with the -v flag.
6966
6967 This shouldn't need to be changed from the default in normal opera‐
6968 tions. However, if you get a lot of low level retries you may wish to
6969 reduce the value so rclone moves on to a high level retry (see the
6970 --retries flag) quicker.
6971
6972 Disable low level retries with --low-level-retries 1.
6973
6974 --max-backlog=N
6975 This is the maximum allowable backlog of files in a sync/copy/move
6976 queued for being checked or transferred.
6977
6978 This can be set arbitrarily large. It will only use memory when the
6979 queue is in use. Note that it will use in the order of N kB of memory
6980 when the backlog is in use.
6981
6982 Setting this large allows rclone to calculate how many files are pend‐
6983 ing more accurately, give a more accurate estimated finish time and
6984 make --order-by work more accurately.
6985
6986 Setting this small will make rclone more synchronous to the listings of
6987 the remote which may be desirable.
6988
6989 Setting this to a negative number will make the backlog as large as
6990 possible.
6991
6992 --max-delete=N
6993 This tells rclone not to delete more than N files. If that limit is
6994 exceeded then a fatal error will be generated and rclone will stop the
6995 operation in progress.
6996
6997 --max-depth=N
6998 This modifies the recursion depth for all the commands except purge.
6999
7000 So if you do rclone --max-depth 1 ls remote:path you will see only the
7001 files in the top level directory. Using --max-depth 2 means you will
7002 see all the files in first two directory levels and so on.
7003
7004 For historical reasons the lsd command defaults to using a --max-depth
7005 of 1 - you can override this with the command line flag.
7006
7007 You can use this command to disable recursion (with --max-depth 1).
7008
7009 Note that if you use this with sync and --delete-excluded the files not
7010 recursed through are considered excluded and will be deleted on the
7011 destination. Test first with --dry-run if you are not sure what will
7012 happen.
7013
7014 --max-duration=TIME
7015 Rclone will stop scheduling new transfers when it has run for the dura‐
7016 tion specified.
7017
7018 Defaults to off.
7019
7020 When the limit is reached any existing transfers will complete.
7021
7022 Rclone won't exit with an error if the transfer limit is reached.
7023
7024 --max-transfer=SIZE
7025 Rclone will stop transferring when it has reached the size specified.
7026 Defaults to off.
7027
7028 When the limit is reached all transfers will stop immediately.
7029
7030 Rclone will exit with exit code 8 if the transfer limit is reached.
7031
7032 --cutoff-mode=hard|soft|cautious
7033 This modifies the behavior of --max-transfer Defaults to --cut‐
7034 off-mode=hard.
7035
7036 Specifying --cutoff-mode=hard will stop transferring immediately when
7037 Rclone reaches the limit.
7038
7039 Specifying --cutoff-mode=soft will stop starting new transfers when
7040 Rclone reaches the limit.
7041
7042 Specifying --cutoff-mode=cautious will try to prevent Rclone from
7043 reaching the limit.
7044
7045 --modify-window=TIME
7046 When checking whether a file has been modified, this is the maximum al‐
7047 lowed time difference that a file can have and still be considered
7048 equivalent.
7049
7050 The default is 1ns unless this is overridden by a remote. For example
7051 OS X only stores modification times to the nearest second so if you are
7052 reading and writing to an OS X filing system this will be 1s by de‐
7053 fault.
7054
7055 This command line flag allows you to override that computed default.
7056
7057 --multi-thread-cutoff=SIZE
7058 When downloading files to the local backend above this size, rclone
7059 will use multiple threads to download the file (default 250M).
7060
7061 Rclone preallocates the file (using fallocate(FALLOC_FL_KEEP_SIZE) on
7062 unix or NTSetInformationFile on Windows both of which takes no time)
7063 then each thread writes directly into the file at the correct place.
7064 This means that rclone won't create fragmented or sparse files and
7065 there won't be any assembly time at the end of the transfer.
7066
7067 The number of threads used to download is controlled by --mul‐
7068 ti-thread-streams.
7069
7070 Use -vv if you wish to see info about the threads.
7071
7072 This will work with the sync/copy/move commands and friends copy‐
7073 to/moveto. Multi thread downloads will be used with rclone mount and
7074 rclone serve if --vfs-cache-mode is set to writes or above.
7075
7076 NB that this only works for a local destination but will work with any
7077 source.
7078
7079 NB that multi thread copies are disabled for local to local copies as
7080 they are faster without unless --multi-thread-streams is set explicit‐
7081 ly.
7082
7083 NB on Windows using multi-thread downloads will cause the resulting
7084 files to be sparse (https://en.wikipedia.org/wiki/Sparse_file). Use
7085 --local-no-sparse to disable sparse files (which may cause long delays
7086 at the start of downloads) or disable multi-thread downloads with
7087 --multi-thread-streams 0
7088
7089 --multi-thread-streams=N
7090 When using multi thread downloads (see above --multi-thread-cutoff)
7091 this sets the maximum number of streams to use. Set to 0 to disable
7092 multi thread downloads (Default 4).
7093
7094 Exactly how many streams rclone uses for the download depends on the
7095 size of the file. To calculate the number of download streams Rclone
7096 divides the size of the file by the --multi-thread-cutoff and rounds
7097 up, up to the maximum set with --multi-thread-streams.
7098
7099 So if --multi-thread-cutoff 250MB and --multi-thread-streams 4 are in
7100 effect (the defaults):
7101
7102 • 0MB..250MB files will be downloaded with 1 stream
7103
7104 • 250MB..500MB files will be downloaded with 2 streams
7105
7106 • 500MB..750MB files will be downloaded with 3 streams
7107
7108 • 750MB+ files will be downloaded with 4 streams
7109
7110 --no-check-dest
7111 The --no-check-dest can be used with move or copy and it causes rclone
7112 not to check the destination at all when copying files.
7113
7114 This means that:
7115
7116 • the destination is not listed minimising the API calls
7117
7118 • files are always transferred
7119
7120 • this can cause duplicates on remotes which allow it (e.g. Google
7121 Drive)
7122
7123 • --retries 1 is recommended otherwise you'll transfer everything again
7124 on a retry
7125
7126 This flag is useful to minimise the transactions if you know that none
7127 of the files are on the destination.
7128
7129 This is a specialized flag which should be ignored by most users!
7130
7131 --no-gzip-encoding
7132 Don't set Accept-Encoding: gzip. This means that rclone won't ask the
7133 server for compressed files automatically. Useful if you've set the
7134 server to return files with Content-Encoding: gzip but you uploaded
7135 compressed files.
7136
7137 There is no need to set this in normal operation, and doing so will de‐
7138 crease the network transfer efficiency of rclone.
7139
7140 --no-traverse
7141 The --no-traverse flag controls whether the destination file system is
7142 traversed when using the copy or move commands. --no-traverse is not
7143 compatible with sync and will be ignored if you supply it with sync.
7144
7145 If you are only copying a small number of files (or are filtering most
7146 of the files) and/or have a large number of files on the destination
7147 then --no-traverse will stop rclone listing the destination and save
7148 time.
7149
7150 However, if you are copying a large number of files, especially if you
7151 are doing a copy where lots of the files under consideration haven't
7152 changed and won't need copying then you shouldn't use --no-traverse.
7153
7154 See rclone copy (https://rclone.org/commands/rclone_copy/) for an exam‐
7155 ple of how to use it.
7156
7157 --no-unicode-normalization
7158 Don't normalize unicode characters in filenames during the sync rou‐
7159 tine.
7160
7161 Sometimes, an operating system will store filenames containing unicode
7162 parts in their decomposed form (particularly macOS). Some cloud stor‐
7163 age systems will then recompose the unicode, resulting in duplicate
7164 files if the data is ever copied back to a local filesystem.
7165
7166 Using this flag will disable that functionality, treating each unicode
7167 character as unique. For example, by default é and é will be normal‐
7168 ized into the same character. With --no-unicode-normalization they
7169 will be treated as unique characters.
7170
7171 --no-update-modtime
7172 When using this flag, rclone won't update modification times of remote
7173 files if they are incorrect as it would normally.
7174
7175 This can be used if the remote is being synced with another tool also
7176 (e.g. the Google Drive client).
7177
7178 --order-by string
7179 The --order-by flag controls the order in which files in the backlog
7180 are processed in rclone sync, rclone copy and rclone move.
7181
7182 The order by string is constructed like this. The first part describes
7183 what aspect is being measured:
7184
7185 • size - order by the size of the files
7186
7187 • name - order by the full path of the files
7188
7189 • modtime - order by the modification date of the files
7190
7191 This can have a modifier appended with a comma:
7192
7193 • ascending or asc - order so that the smallest (or oldest) is pro‐
7194 cessed first
7195
7196 • descending or desc - order so that the largest (or newest) is pro‐
7197 cessed first
7198
7199 • mixed - order so that the smallest is processed first for some
7200 threads and the largest for others
7201
7202 If the modifier is mixed then it can have an optional percentage (which
7203 defaults to 50), e.g. size,mixed,25 which means that 25% of the
7204 threads should be taking the smallest items and 75% the largest. The
7205 threads which take the smallest first will always take the smallest
7206 first and likewise the largest first threads. The mixed mode can be
7207 useful to minimise the transfer time when you are transferring a mix‐
7208 ture of large and small files - the large files are guaranteed upload
7209 threads and bandwidth and the small files will be processed continuous‐
7210 ly.
7211
7212 If no modifier is supplied then the order is ascending.
7213
7214 For example
7215
7216 • --order-by size,desc - send the largest files first
7217
7218 • --order-by modtime,ascending - send the oldest files first
7219
7220 • --order-by name - send the files with alphabetically by path first
7221
7222 If the --order-by flag is not supplied or it is supplied with an empty
7223 string then the default ordering will be used which is as scanned.
7224 With --checkers 1 this is mostly alphabetical, however with the default
7225 --checkers 8 it is somewhat random.
7226
7227 Limitations
7228 The --order-by flag does not do a separate pass over the data. This
7229 means that it may transfer some files out of the order specified if
7230
7231 • there are no files in the backlog or the source has not been fully
7232 scanned yet
7233
7234 • there are more than --max-backlog files in the backlog
7235
7236 Rclone will do its best to transfer the best file it has so in practice
7237 this should not cause a problem. Think of --order-by as being more of
7238 a best efforts flag rather than a perfect ordering.
7239
7240 If you want perfect ordering then you will need to specify
7241 --check-first which will find all the files which need transferring
7242 first before transferring any.
7243
7244 --password-command SpaceSepList
7245 This flag supplies a program which should supply the config password
7246 when run. This is an alternative to rclone prompting for the password
7247 or setting the RCLONE_CONFIG_PASS variable.
7248
7249 The argument to this should be a command with a space separated list of
7250 arguments. If one of the arguments has a space in then enclose it in
7251 ", if you want a literal " in an argument then enclose the argument in
7252 " and double the ". See CSV encoding (https://godoc.org/encoding/csv)
7253 for more info.
7254
7255 Eg
7256
7257 --password-command echo hello
7258 --password-command echo "hello with space"
7259 --password-command echo "hello with ""quotes"" and space"
7260
7261 See the Configuration Encryption for more info.
7262
7263 See a Windows PowerShell example on the Wiki
7264 (https://github.com/rclone/rclone/wiki/Windows-Powershell-use-rclone-
7265 password-command-for-Config-file-password).
7266
7267 -P, --progress
7268 This flag makes rclone update the stats in a static block in the termi‐
7269 nal providing a realtime overview of the transfer.
7270
7271 Any log messages will scroll above the static block. Log messages will
7272 push the static block down to the bottom of the terminal where it will
7273 stay.
7274
7275 Normally this is updated every 500mS but this period can be overridden
7276 with the --stats flag.
7277
7278 This can be used with the --stats-one-line flag for a simpler display.
7279
7280 Note: On Windows until this bug (https://github.com/Azure/go-an‐
7281 siterm/issues/26) is fixed all non-ASCII characters will be replaced
7282 with . when --progress is in use.
7283
7284 --progress-terminal-title
7285 This flag, when used with -P/--progress, will print the string ETA: %s
7286 to the terminal title.
7287
7288 -q, --quiet
7289 This flag will limit rclone's output to error messages only.
7290
7291 --refresh-times
7292 The --refresh-times flag can be used to update modification times of
7293 existing files when they are out of sync on backends which don't sup‐
7294 port hashes.
7295
7296 This is useful if you uploaded files with the incorrect timestamps and
7297 you now wish to correct them.
7298
7299 This flag is only useful for destinations which don't support hashes
7300 (e.g. crypt).
7301
7302 This can be used any of the sync commands sync, copy or move.
7303
7304 To use this flag you will need to be doing a modification time sync (so
7305 not using --size-only or --checksum). The flag will have no effect
7306 when using --size-only or --checksum.
7307
7308 If this flag is used when rclone comes to upload a file it will check
7309 to see if there is an existing file on the destination. If this file
7310 matches the source with size (and checksum if available) but has a dif‐
7311 fering timestamp then instead of re-uploading it, rclone will update
7312 the timestamp on the destination file. If the checksum does not match
7313 rclone will upload the new file. If the checksum is absent (e.g. on a
7314 crypt backend) then rclone will update the timestamp.
7315
7316 Note that some remotes can't set the modification time without re-up‐
7317 loading the file so this flag is less useful on them.
7318
7319 Normally if you are doing a modification time sync rclone will update
7320 modification times without --refresh-times provided that the remote
7321 supports checksums and the checksums match on the file. However if the
7322 checksums are absent then rclone will upload the file rather than set‐
7323 ting the timestamp as this is the safe behaviour.
7324
7325 --retries int
7326 Retry the entire sync if it fails this many times it fails (default 3).
7327
7328 Some remotes can be unreliable and a few retries help pick up the files
7329 which didn't get transferred because of errors.
7330
7331 Disable retries with --retries 1.
7332
7333 --retries-sleep=TIME
7334 This sets the interval between each retry specified by --retries
7335
7336 The default is 0. Use 0 to disable.
7337
7338 --size-only
7339 Normally rclone will look at modification time and size of files to see
7340 if they are equal. If you set this flag then rclone will check only
7341 the size.
7342
7343 This can be useful transferring files from Dropbox which have been mod‐
7344 ified by the desktop sync client which doesn't set checksums of modifi‐
7345 cation times in the same way as rclone.
7346
7347 --stats=TIME
7348 Commands which transfer data (sync, copy, copyto, move, moveto) will
7349 print data transfer stats at regular intervals to show their progress.
7350
7351 This sets the interval.
7352
7353 The default is 1m. Use 0 to disable.
7354
7355 If you set the stats interval then all commands can show stats. This
7356 can be useful when running other commands, check or mount for example.
7357
7358 Stats are logged at INFO level by default which means they won't show
7359 at default log level NOTICE. Use --stats-log-level NOTICE or -v to
7360 make them show. See the Logging section for more info on log levels.
7361
7362 Note that on macOS you can send a SIGINFO (which is normally ctrl-T in
7363 the terminal) to make the stats print immediately.
7364
7365 --stats-file-name-length integer
7366 By default, the --stats output will truncate file names and paths
7367 longer than 40 characters. This is equivalent to providing
7368 --stats-file-name-length 40. Use --stats-file-name-length 0 to disable
7369 any truncation of file names printed by stats.
7370
7371 --stats-log-level string
7372 Log level to show --stats output at. This can be DEBUG, INFO, NOTICE,
7373 or ERROR. The default is INFO. This means at the default level of
7374 logging which is NOTICE the stats won't show - if you want them to then
7375 use --stats-log-level NOTICE. See the Logging section for more info on
7376 log levels.
7377
7378 --stats-one-line
7379 When this is specified, rclone condenses the stats into a single line
7380 showing the most important stats only.
7381
7382 --stats-one-line-date
7383 When this is specified, rclone enables the single-line stats and
7384 prepends the display with a date string. The default is 2006/01/02
7385 15:04:05 -
7386
7387 --stats-one-line-date-format
7388 When this is specified, rclone enables the single-line stats and
7389 prepends the display with a user-supplied date string. The date string
7390 MUST be enclosed in quotes. Follow golang specs
7391 (https://golang.org/pkg/time/#Time.Format) for date formatting syntax.
7392
7393 --stats-unit=bits|bytes
7394 By default, data transfer rates will be printed in bytes/second.
7395
7396 This option allows the data rate to be printed in bits/second.
7397
7398 Data transfer volume will still be reported in bytes.
7399
7400 The rate is reported as a binary unit, not SI unit. So 1 Mbit/s equals
7401 1,048,576 bits/s and not 1,000,000 bits/s.
7402
7403 The default is bytes.
7404
7405 --suffix=SUFFIX
7406 When using sync, copy or move any files which would have been overwrit‐
7407 ten or deleted will have the suffix added to them. If there is a file
7408 with the same path (after the suffix has been added), then it will be
7409 overwritten.
7410
7411 The remote in use must support server-side move or copy and you must
7412 use the same remote as the destination of the sync.
7413
7414 This is for use with files to add the suffix in the current directory
7415 or with --backup-dir. See --backup-dir for more info.
7416
7417 For example
7418
7419 rclone copy -i /path/to/local/file remote:current --suffix .bak
7420
7421 will copy /path/to/local to remote:current, but for any files which
7422 would have been updated or deleted have .bak added.
7423
7424 If using rclone sync with --suffix and without --backup-dir then it is
7425 recommended to put a filter rule in excluding the suffix otherwise the
7426 sync will delete the backup files.
7427
7428 rclone sync -i /path/to/local/file remote:current --suffix .bak --exclude "*.bak"
7429
7430 --suffix-keep-extension
7431 When using --suffix, setting this causes rclone put the SUFFIX before
7432 the extension of the files that it backs up rather than after.
7433
7434 So let's say we had --suffix -2019-01-01, without the flag file.txt
7435 would be backed up to file.txt-2019-01-01 and with the flag it would be
7436 backed up to file-2019-01-01.txt. This can be helpful to make sure the
7437 suffixed files can still be opened.
7438
7439 --syslog
7440 On capable OSes (not Windows or Plan9) send all log output to syslog.
7441
7442 This can be useful for running rclone in a script or rclone mount.
7443
7444 --syslog-facility string
7445 If using --syslog this sets the syslog facility (e.g. KERN, USER).
7446 See man syslog for a list of possible facilities. The default facility
7447 is DAEMON.
7448
7449 --tpslimit float
7450 Limit transactions per second to this number. Default is 0 which is
7451 used to mean unlimited transactions per second.
7452
7453 A transaction is roughly defined as an API call; its exact meaning will
7454 depend on the backend. For HTTP based backends it is an HTTP
7455 PUT/GET/POST/etc and its response. For FTP/SFTP it is a round trip
7456 transaction over TCP.
7457
7458 For example to limit rclone to 10 transactions per second use --tpslim‐
7459 it 10, or to 1 transaction every 2 seconds use --tpslimit 0.5.
7460
7461 Use this when the number of transactions per second from rclone is
7462 causing a problem with the cloud storage provider (e.g. getting you
7463 banned or rate limited).
7464
7465 This can be very useful for rclone mount to control the behaviour of
7466 applications using it.
7467
7468 This limit applies to all HTTP based backends and to the FTP and SFTP
7469 backends. It does not apply to the local backend or the Tardigrade
7470 backend.
7471
7472 See also --tpslimit-burst.
7473
7474 --tpslimit-burst int
7475 Max burst of transactions for --tpslimit (default 1).
7476
7477 Normally --tpslimit will do exactly the number of transaction per sec‐
7478 ond specified. However if you supply --tps-burst then rclone can save
7479 up some transactions from when it was idle giving a burst of up to the
7480 parameter supplied.
7481
7482 For example if you provide --tpslimit-burst 10 then if rclone has been
7483 idle for more than 10*--tpslimit then it can do 10 transactions very
7484 quickly before they are limited again.
7485
7486 This may be used to increase performance of --tpslimit without changing
7487 the long term average number of transactions per second.
7488
7489 --track-renames
7490 By default, rclone doesn't keep track of renamed files, so if you re‐
7491 name a file locally then sync it to a remote, rclone will delete the
7492 old file on the remote and upload a new copy.
7493
7494 If you use this flag, and the remote supports server-side copy or serv‐
7495 er-side move, and the source and destination have a compatible hash,
7496 then this will track renames during sync operations and perform renam‐
7497 ing server-side.
7498
7499 Files will be matched by size and hash - if both match then a rename
7500 will be considered.
7501
7502 If the destination does not support server-side copy or move, rclone
7503 will fall back to the default behaviour and log an error level message
7504 to the console.
7505
7506 Encrypted destinations are not currently supported by --track-renames
7507 if --track-renames-strategy includes hash.
7508
7509 Note that --track-renames is incompatible with --no-traverse and that
7510 it uses extra memory to keep track of all the rename candidates.
7511
7512 Note also that --track-renames is incompatible with --delete-before and
7513 will select --delete-after instead of --delete-during.
7514
7515 --track-renames-strategy (hash,modtime,leaf,size)
7516 This option changes the matching criteria for --track-renames.
7517
7518 The matching is controlled by a comma separated selection of these to‐
7519 kens:
7520
7521 • modtime - the modification time of the file - not supported on all
7522 backends
7523
7524 • hash - the hash of the file contents - not supported on all backends
7525
7526 • leaf - the name of the file not including its directory name
7527
7528 • size - the size of the file (this is always enabled)
7529
7530 So using --track-renames-strategy modtime,leaf would match files based
7531 on modification time, the leaf of the file name and the size only.
7532
7533 Using --track-renames-strategy modtime or leaf can enable --track-re‐
7534 names support for encrypted destinations.
7535
7536 If nothing is specified, the default option is matching by hashes.
7537
7538 Note that the hash strategy is not supported with encrypted destina‐
7539 tions.
7540
7541 --delete-(before,during,after)
7542 This option allows you to specify when files on your destination are
7543 deleted when you sync folders.
7544
7545 Specifying the value --delete-before will delete all files present on
7546 the destination, but not on the source before starting the transfer of
7547 any new or updated files. This uses two passes through the file sys‐
7548 tems, one for the deletions and one for the copies.
7549
7550 Specifying --delete-during will delete files while checking and upload‐
7551 ing files. This is the fastest option and uses the least memory.
7552
7553 Specifying --delete-after (the default value) will delay deletion of
7554 files until all new/updated files have been successfully transferred.
7555 The files to be deleted are collected in the copy pass then deleted af‐
7556 ter the copy pass has completed successfully. The files to be deleted
7557 are held in memory so this mode may use more memory. This is the
7558 safest mode as it will only delete files if there have been no errors
7559 subsequent to that. If there have been errors before the deletions
7560 start then you will get the message not deleting files as there were IO
7561 errors.
7562
7563 --fast-list
7564 When doing anything which involves a directory listing (e.g. sync,
7565 copy, ls - in fact nearly every command), rclone normally lists a di‐
7566 rectory and processes it before using more directory lists to process
7567 any subdirectories. This can be parallelised and works very quickly
7568 using the least amount of memory.
7569
7570 However, some remotes have a way of listing all files beneath a direc‐
7571 tory in one (or a small number) of transactions. These tend to be the
7572 bucket based remotes (e.g. S3, B2, GCS, Swift, Hubic).
7573
7574 If you use the --fast-list flag then rclone will use this method for
7575 listing directories. This will have the following consequences for the
7576 listing:
7577
7578 • It will use fewer transactions (important if you pay for them)
7579
7580 • It will use more memory. Rclone has to load the whole listing into
7581 memory.
7582
7583 • It may be faster because it uses fewer transactions
7584
7585 • It may be slower because it can't be parallelized
7586
7587 rclone should always give identical results with and without
7588 --fast-list.
7589
7590 If you pay for transactions and can fit your entire sync listing into
7591 memory then --fast-list is recommended. If you have a very big sync to
7592 do then don't use --fast-list otherwise you will run out of memory.
7593
7594 If you use --fast-list on a remote which doesn't support it, then
7595 rclone will just ignore it.
7596
7597 --timeout=TIME
7598 This sets the IO idle timeout. If a transfer has started but then be‐
7599 comes idle for this long it is considered broken and disconnected.
7600
7601 The default is 5m. Set to 0 to disable.
7602
7603 --transfers=N
7604 The number of file transfers to run in parallel. It can sometimes be
7605 useful to set this to a smaller number if the remote is giving a lot of
7606 timeouts or bigger if you have lots of bandwidth and a fast remote.
7607
7608 The default is to run 4 file transfers in parallel.
7609
7610 -u, --update
7611 This forces rclone to skip any files which exist on the destination and
7612 have a modified time that is newer than the source file.
7613
7614 This can be useful when transferring to a remote which doesn't support
7615 mod times directly (or when using --use-server-modtime to avoid extra
7616 API calls) as it is more accurate than a --size-only check and faster
7617 than using --checksum.
7618
7619 If an existing destination file has a modification time equal (within
7620 the computed modify window precision) to the source file's, it will be
7621 updated if the sizes are different. If --checksum is set then rclone
7622 will update the destination if the checksums differ too.
7623
7624 If an existing destination file is older than the source file then it
7625 will be updated if the size or checksum differs from the source file.
7626
7627 On remotes which don't support mod time directly (or when using
7628 --use-server-modtime) the time checked will be the uploaded time. This
7629 means that if uploading to one of these remotes, rclone will skip any
7630 files which exist on the destination and have an uploaded time that is
7631 newer than the modification time of the source file.
7632
7633 --use-mmap
7634 If this flag is set then rclone will use anonymous memory allocated by
7635 mmap on Unix based platforms and VirtualAlloc on Windows for its trans‐
7636 fer buffers (size controlled by --buffer-size). Memory allocated like
7637 this does not go on the Go heap and can be returned to the OS immedi‐
7638 ately when it is finished with.
7639
7640 If this flag is not set then rclone will allocate and free the buffers
7641 using the Go memory allocator which may use more memory as memory pages
7642 are returned less aggressively to the OS.
7643
7644 It is possible this does not work well on all platforms so it is dis‐
7645 abled by default; in the future it may be enabled by default.
7646
7647 --use-server-modtime
7648 Some object-store backends (e.g, Swift, S3) do not preserve file modi‐
7649 fication times (modtime). On these backends, rclone stores the origi‐
7650 nal modtime as additional metadata on the object. By default it will
7651 make an API call to retrieve the metadata when the modtime is needed by
7652 an operation.
7653
7654 Use this flag to disable the extra API call and rely instead on the
7655 server's modified time. In cases such as a local to remote sync using
7656 --update, knowing the local file is newer than the time it was last up‐
7657 loaded to the remote is sufficient. In those cases, this flag can
7658 speed up the process and reduce the number of API calls necessary.
7659
7660 Using this flag on a sync operation without also using --update would
7661 cause all files modified at any time other than the last upload time to
7662 be uploaded again, which is probably not what you want.
7663
7664 -v, -vv, --verbose
7665 With -v rclone will tell you about each file that is transferred and a
7666 small number of significant events.
7667
7668 With -vv rclone will become very verbose telling you about every file
7669 it considers and transfers. Please send bug reports with a log with
7670 this setting.
7671
7672 -V, --version
7673 Prints the version number
7674
7675 SSL/TLS options
7676 The outgoing SSL/TLS connections rclone makes can be controlled with
7677 these options. For example this can be very useful with the HTTP or
7678 WebDAV backends. Rclone HTTP servers have their own set of configura‐
7679 tion for SSL/TLS which you can find in their documentation.
7680
7681 --ca-cert string
7682 This loads the PEM encoded certificate authority certificate and uses
7683 it to verify the certificates of the servers rclone connects to.
7684
7685 If you have generated certificates signed with a local CA then you will
7686 need this flag to connect to servers using those certificates.
7687
7688 --client-cert string
7689 This loads the PEM encoded client side certificate.
7690
7691 This is used for mutual TLS authentication
7692 (https://en.wikipedia.org/wiki/Mutual_authentication).
7693
7694 The --client-key flag is required too when using this.
7695
7696 --client-key string
7697 This loads the PEM encoded client side private key used for mutual TLS
7698 authentication. Used in conjunction with --client-cert.
7699
7700 --no-check-certificate=true/false
7701 --no-check-certificate controls whether a client verifies the server's
7702 certificate chain and host name. If --no-check-certificate is true,
7703 TLS accepts any certificate presented by the server and any host name
7704 in that certificate. In this mode, TLS is susceptible to
7705 man-in-the-middle attacks.
7706
7707 This option defaults to false.
7708
7709 This should be used only for testing.
7710
7711 Configuration Encryption
7712 Your configuration file contains information for logging in to your
7713 cloud services. This means that you should keep your rclone.conf file
7714 in a secure location.
7715
7716 If you are in an environment where that isn't possible, you can add a
7717 password to your configuration. This means that you will have to sup‐
7718 ply the password every time you start rclone.
7719
7720 To add a password to your rclone configuration, execute rclone config.
7721
7722 >rclone config
7723 Current remotes:
7724
7725 e) Edit existing remote
7726 n) New remote
7727 d) Delete remote
7728 s) Set configuration password
7729 q) Quit config
7730 e/n/d/s/q>
7731
7732 Go into s, Set configuration password:
7733
7734 e/n/d/s/q> s
7735 Your configuration is not encrypted.
7736 If you add a password, you will protect your login information to cloud services.
7737 a) Add Password
7738 q) Quit to main menu
7739 a/q> a
7740 Enter NEW configuration password:
7741 password:
7742 Confirm NEW password:
7743 password:
7744 Password set
7745 Your configuration is encrypted.
7746 c) Change Password
7747 u) Unencrypt configuration
7748 q) Quit to main menu
7749 c/u/q>
7750
7751 Your configuration is now encrypted, and every time you start rclone
7752 you will have to supply the password. See below for details. In the
7753 same menu, you can change the password or completely remove encryption
7754 from your configuration.
7755
7756 There is no way to recover the configuration if you lose your password.
7757
7758 rclone uses nacl secretbox (https://godoc.org/golang.org/x/crypto/na‐
7759 cl/secretbox) which in turn uses XSalsa20 and Poly1305 to encrypt and
7760 authenticate your configuration with secret-key cryptography. The
7761 password is SHA-256 hashed, which produces the key for secretbox. The
7762 hashed password is not stored.
7763
7764 While this provides very good security, we do not recommend storing
7765 your encrypted rclone configuration in public if it contains sensitive
7766 information, maybe except if you use a very strong password.
7767
7768 If it is safe in your environment, you can set the RCLONE_CONFIG_PASS
7769 environment variable to contain your password, in which case it will be
7770 used for decrypting the configuration.
7771
7772 You can set this for a session from a script. For unix like systems
7773 save this to a file called set-rclone-password:
7774
7775 #!/bin/echo Source this file don't run it
7776
7777 read -s RCLONE_CONFIG_PASS
7778 export RCLONE_CONFIG_PASS
7779
7780 Then source the file when you want to use it. From the shell you would
7781 do source set-rclone-password. It will then ask you for the password
7782 and set it in the environment variable.
7783
7784 An alternate means of supplying the password is to provide a script
7785 which will retrieve the password and print on standard output. This
7786 script should have a fully specified path name and not rely on any en‐
7787 vironment variables. The script is supplied either via --password-com‐
7788 mand="..." command line argument or via the RCLONE_PASSWORD_COMMAND en‐
7789 vironment variable.
7790
7791 One useful example of this is using the passwordstore application to
7792 retrieve the password:
7793
7794 export RCLONE_PASSWORD_COMMAND="pass rclone/config"
7795
7796 If the passwordstore password manager holds the password for the rclone
7797 configuration, using the script method means the password is primarily
7798 protected by the passwordstore system, and is never embedded in the
7799 clear in scripts, nor available for examination using the standard com‐
7800 mands available. It is quite possible with long running rclone ses‐
7801 sions for copies of passwords to be innocently captured in log files or
7802 terminal scroll buffers, etc. Using the script method of supplying the
7803 password enhances the security of the config password considerably.
7804
7805 If you are running rclone inside a script, unless you are using the
7806 --password-command method, you might want to disable password prompts.
7807 To do that, pass the parameter --ask-password=false to rclone. This
7808 will make rclone fail instead of asking for a password if RCLONE_CON‐
7809 FIG_PASS doesn't contain a valid password, and --password-command has
7810 not been supplied.
7811
7812 Some rclone commands, such as genautocomplete, do not require configu‐
7813 ration. Nevertheless, rclone will read any configuration file found
7814 according to the rules described above (https://rclone.org/docs/#con‐
7815 fig-config-file). If an encrypted configuration file is found, this
7816 means you will be prompted for password (unless using --password-com‐
7817 mand). To avoid this, you can bypass the loading of the configuration
7818 file by overriding the location with an empty string "" or the special
7819 value /notfound, or the os null device represented by value NUL on Win‐
7820 dows and /dev/null on Unix systems (before rclone version 1.55 only
7821 this null device alternative was supported). E.g. rclone --config=""
7822 genautocomplete bash.
7823
7824 Developer options
7825 These options are useful when developing or debugging rclone. There
7826 are also some more remote specific options which aren't documented here
7827 which are used for testing. These start with remote name e.g.
7828 --drive-test-option - see the docs for the remote in question.
7829
7830 --cpuprofile=FILE
7831 Write CPU profile to file. This can be analysed with go tool pprof.
7832
7833 --dump flag,flag,flag
7834 The --dump flag takes a comma separated list of flags to dump info
7835 about.
7836
7837 Note that some headers including Accept-Encoding as shown may not be
7838 correct in the request and the response may not show Content-Encoding
7839 if the go standard libraries auto gzip encoding was in effect. In this
7840 case the body of the request will be gunzipped before showing it.
7841
7842 The available flags are:
7843
7844 --dump headers
7845 Dump HTTP headers with Authorization: lines removed. May still contain
7846 sensitive info. Can be very verbose. Useful for debugging only.
7847
7848 Use --dump auth if you do want the Authorization: headers.
7849
7850 --dump bodies
7851 Dump HTTP headers and bodies - may contain sensitive info. Can be very
7852 verbose. Useful for debugging only.
7853
7854 Note that the bodies are buffered in memory so don't use this for enor‐
7855 mous files.
7856
7857 --dump requests
7858 Like --dump bodies but dumps the request bodies and the response head‐
7859 ers. Useful for debugging download problems.
7860
7861 --dump responses
7862 Like --dump bodies but dumps the response bodies and the request head‐
7863 ers. Useful for debugging upload problems.
7864
7865 --dump auth
7866 Dump HTTP headers - will contain sensitive info such as Authorization:
7867 headers - use --dump headers to dump without Authorization: headers.
7868 Can be very verbose. Useful for debugging only.
7869
7870 --dump filters
7871 Dump the filters to the output. Useful to see exactly what include and
7872 exclude options are filtering on.
7873
7874 --dump goroutines
7875 This dumps a list of the running go-routines at the end of the command
7876 to standard output.
7877
7878 --dump openfiles
7879 This dumps a list of the open files at the end of the command. It uses
7880 the lsof command to do that so you'll need that installed to use it.
7881
7882 --memprofile=FILE
7883 Write memory profile to file. This can be analysed with go tool pprof.
7884
7885 Filtering
7886 For the filtering options
7887
7888 • --delete-excluded
7889
7890 • --filter
7891
7892 • --filter-from
7893
7894 • --exclude
7895
7896 • --exclude-from
7897
7898 • --include
7899
7900 • --include-from
7901
7902 • --files-from
7903
7904 • --files-from-raw
7905
7906 • --min-size
7907
7908 • --max-size
7909
7910 • --min-age
7911
7912 • --max-age
7913
7914 • --dump filters
7915
7916 See the filtering section (https://rclone.org/filtering/).
7917
7918 Remote control
7919 For the remote control options and for instructions on how to remote
7920 control rclone
7921
7922 • --rc
7923
7924 • and anything starting with --rc-
7925
7926 See the remote control section (https://rclone.org/rc/).
7927
7928 Logging
7929 rclone has 4 levels of logging, ERROR, NOTICE, INFO and DEBUG.
7930
7931 By default, rclone logs to standard error. This means you can redirect
7932 standard error and still see the normal output of rclone commands (e.g.
7933 rclone ls).
7934
7935 By default, rclone will produce Error and Notice level messages.
7936
7937 If you use the -q flag, rclone will only produce Error messages.
7938
7939 If you use the -v flag, rclone will produce Error, Notice and Info mes‐
7940 sages.
7941
7942 If you use the -vv flag, rclone will produce Error, Notice, Info and
7943 Debug messages.
7944
7945 You can also control the log levels with the --log-level flag.
7946
7947 If you use the --log-file=FILE option, rclone will redirect Error, Info
7948 and Debug messages along with standard error to FILE.
7949
7950 If you use the --syslog flag then rclone will log to syslog and the
7951 --syslog-facility control which facility it uses.
7952
7953 Rclone prefixes all log messages with their level in capitals, e.g.
7954 INFO which makes it easy to grep the log file for different kinds of
7955 information.
7956
7957 Exit Code
7958 If any errors occur during the command execution, rclone will exit with
7959 a non-zero exit code. This allows scripts to detect when rclone opera‐
7960 tions have failed.
7961
7962 During the startup phase, rclone will exit immediately if an error is
7963 detected in the configuration. There will always be a log message im‐
7964 mediately before exiting.
7965
7966 When rclone is running it will accumulate errors as it goes along, and
7967 only exit with a non-zero exit code if (after retries) there were still
7968 failed transfers. For every error counted there will be a high priori‐
7969 ty log message (visible with -q) showing the message and which file
7970 caused the problem. A high priority message is also shown when start‐
7971 ing a retry so the user can see that any previous error messages may
7972 not be valid after the retry. If rclone has done a retry it will log a
7973 high priority message if the retry was successful.
7974
7975 List of exit codes
7976 • 0 - success
7977
7978 • 1 - Syntax or usage error
7979
7980 • 2 - Error not otherwise categorised
7981
7982 • 3 - Directory not found
7983
7984 • 4 - File not found
7985
7986 • 5 - Temporary error (one that more retries might fix) (Retry errors)
7987
7988 • 6 - Less serious errors (like 461 errors from dropbox) (NoRetry er‐
7989 rors)
7990
7991 • 7 - Fatal error (one that more retries won't fix, like account sus‐
7992 pended) (Fatal errors)
7993
7994 • 8 - Transfer exceeded - limit set by --max-transfer reached
7995
7996 • 9 - Operation successful, but no files transferred
7997
7998 Environment Variables
7999 Rclone can be configured entirely using environment variables. These
8000 can be used to set defaults for options or config file entries.
8001
8002 Options
8003 Every option in rclone can have its default set by environment vari‐
8004 able.
8005
8006 To find the name of the environment variable, first, take the long op‐
8007 tion name, strip the leading --, change - to _, make upper case and
8008 prepend RCLONE_.
8009
8010 For example, to always set --stats 5s, set the environment variable
8011 RCLONE_STATS=5s. If you set stats on the command line this will over‐
8012 ride the environment variable setting.
8013
8014 Or to always use the trash in drive --drive-use-trash, set
8015 RCLONE_DRIVE_USE_TRASH=true.
8016
8017 The same parser is used for the options and the environment variables
8018 so they take exactly the same form.
8019
8020 Config file
8021 You can set defaults for values in the config file on an individual re‐
8022 mote basis. The names of the config items are documented in the page
8023 for each backend.
8024
8025 To find the name of the environment variable, you need to set, take
8026 RCLONE_CONFIG_ + name of remote + _ + name of config file option and
8027 make it all uppercase.
8028
8029 For example, to configure an S3 remote named mys3: without a config
8030 file (using unix ways of setting environment variables):
8031
8032 $ export RCLONE_CONFIG_MYS3_TYPE=s3
8033 $ export RCLONE_CONFIG_MYS3_ACCESS_KEY_ID=XXX
8034 $ export RCLONE_CONFIG_MYS3_SECRET_ACCESS_KEY=XXX
8035 $ rclone lsd MYS3:
8036 -1 2016-09-21 12:54:21 -1 my-bucket
8037 $ rclone listremotes | grep mys3
8038 mys3:
8039
8040 Note that if you want to create a remote using environment variables
8041 you must create the ..._TYPE variable as above.
8042
8043 Note also that now rclone has connection strings, it is probably easier
8044 to use those instead which makes the above example
8045
8046 rclone lsd :s3,access_key_id=XXX,secret_access_key=XXX:
8047
8048 Precedence
8049 The various different methods of backend configuration are read in this
8050 order and the first one with a value is used.
8051
8052 • Flag values as supplied on the command line, e.g. --drive-use-trash.
8053
8054 • Remote specific environment vars, e.g. RCLONE_CONFIG_MYRE‐
8055 MOTE_USE_TRASH (see above).
8056
8057 • Backend specific environment vars, e.g. RCLONE_DRIVE_USE_TRASH.
8058
8059 • Config file, e.g. use_trash = false.
8060
8061 • Default values, e.g. true - these can't be changed.
8062
8063 So if both --drive-use-trash is supplied on the config line and an en‐
8064 vironment variable RCLONE_DRIVE_USE_TRASH is set, the command line flag
8065 will take preference.
8066
8067 For non backend configuration the order is as follows:
8068
8069 • Flag values as supplied on the command line, e.g. --stats 5s.
8070
8071 • Environment vars, e.g. RCLONE_STATS=5s.
8072
8073 • Default values, e.g. 1m - these can't be changed.
8074
8075 Other environment variables
8076 • RCLONE_CONFIG_PASS set to contain your config file password (see Con‐
8077 figuration Encryption section)
8078
8079 • HTTP_PROXY, HTTPS_PROXY and NO_PROXY (or the lowercase versions
8080 thereof).
8081
8082 • HTTPS_PROXY takes precedence over HTTP_PROXY for https requests.
8083
8084 • The environment values may be either a complete URL or a
8085 "host[:port]" for, in which case the "http" scheme is assumed.
8086
8087 • RCLONE_CONFIG_DIR - rclone sets this variable for use in config files
8088 and sub processes to point to the directory holding the config file.
8089
8091 Some of the configurations (those involving oauth2) require an Internet
8092 connected web browser.
8093
8094 If you are trying to set rclone up on a remote or headless box with no
8095 browser available on it (e.g. a NAS or a server in a datacenter) then
8096 you will need to use an alternative means of configuration. There are
8097 two ways of doing it, described below.
8098
8099 Configuring using rclone authorize
8100 On the headless box run rclone config but answer N to the Use auto con‐
8101 fig? question.
8102
8103 ...
8104 Remote config
8105 Use auto config?
8106 * Say Y if not sure
8107 * Say N if you are working on a remote or headless machine
8108 y) Yes (default)
8109 n) No
8110 y/n> n
8111 For this to work, you will need rclone available on a machine that has
8112 a web browser available.
8113
8114 For more help and alternate methods see: https://rclone.org/remote_setup/
8115
8116 Execute the following on the machine with the web browser (same rclone
8117 version recommended):
8118
8119 rclone authorize "amazon cloud drive"
8120
8121 Then paste the result below:
8122 result>
8123
8124 Then on your main desktop machine
8125
8126 rclone authorize "amazon cloud drive"
8127 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
8128 Log in and authorize rclone for access
8129 Waiting for code...
8130 Got code
8131 Paste the following into your remote machine --->
8132 SECRET_TOKEN
8133 <---End paste
8134
8135 Then back to the headless box, paste in the code
8136
8137 result> SECRET_TOKEN
8138 --------------------
8139 [acd12]
8140 client_id =
8141 client_secret =
8142 token = SECRET_TOKEN
8143 --------------------
8144 y) Yes this is OK
8145 e) Edit this remote
8146 d) Delete this remote
8147 y/e/d>
8148
8149 Configuring by copying the config file
8150 Rclone stores all of its config in a single configuration file. This
8151 can easily be copied to configure a remote rclone.
8152
8153 So first configure rclone on your desktop machine with
8154
8155 rclone config
8156
8157 to set up the config file.
8158
8159 Find the config file by running rclone config file, for example
8160
8161 $ rclone config file
8162 Configuration file is stored at:
8163 /home/user/.rclone.conf
8164
8165 Now transfer it to the remote box (scp, cut paste, ftp, sftp, etc.) and
8166 place it in the correct place (use rclone config file on the remote box
8167 to find out where).
8168
8170 Filter flags determine which files rclone sync, move, ls, lsl, md5sum,
8171 sha1sum, size, delete, check and similar commands apply to.
8172
8173 They are specified in terms of path/file name patterns; path/file
8174 lists; file age and size, or presence of a file in a directory. Bucket
8175 based remotes without the concept of directory apply filters to object
8176 key, age and size in an analogous way.
8177
8178 Rclone purge does not obey filters.
8179
8180 To test filters without risk of damage to data, apply them to rclone
8181 ls, or with the --dry-run and -vv flags.
8182
8183 Rclone filter patterns can only be used in filter command line options,
8184 not in the specification of a remote.
8185
8186 E.g. rclone copy "remote:dir*.jpg" /path/to/dir does not have a filter
8187 effect. rclone copy remote:dir /path/to/dir --include "*.jpg" does.
8188
8189 Important Avoid mixing any two of --include..., --exclude... or --fil‐
8190 ter... flags in an rclone command. The results may not be what you ex‐
8191 pect. Instead use a --filter... flag.
8192
8193 Patterns for matching path/file names
8194 Pattern syntax
8195 Rclone matching rules follow a glob style:
8196
8197 `*` matches any sequence of non-separator (`/`) characters
8198 `**` matches any sequence of characters including `/` separators
8199 `?` matches any single non-separator (`/`) character
8200 `[` [ `!` ] { character-range } `]`
8201 character class (must be non-empty)
8202 `{` pattern-list `}`
8203 pattern alternatives
8204 c matches character c (c != `*`, `**`, `?`, `\`, `[`, `{`, `}`)
8205 `\` c matches character c
8206
8207 character-range:
8208
8209 c matches character c (c != `\\`, `-`, `]`)
8210 `\` c matches character c
8211 lo `-` hi matches character c for lo <= c <= hi
8212
8213 pattern-list:
8214
8215 pattern { `,` pattern }
8216 comma-separated (without spaces) patterns
8217
8218 character classes (see Go regular expression reference
8219 (https://golang.org/pkg/regexp/syntax/)) include:
8220
8221 Named character classes (e.g. [\d], [^\d], [\D], [^\D])
8222 Perl character classes (e.g. \s, \S, \w, \W)
8223 ASCII character classes (e.g. [[:alnum:]], [[:alpha:]], [[:punct:]], [[:xdigit:]])
8224
8225 If the filter pattern starts with a / then it only matches at the top
8226 level of the directory tree, relative to the root of the remote (not
8227 necessarily the root of the drive). If it does not start with / then
8228 it is matched starting at the end of the path/file name but it only
8229 matches a complete path element - it must match from a / separator or
8230 the beginning of the path/file.
8231
8232 file.jpg - matches "file.jpg"
8233 - matches "directory/file.jpg"
8234 - doesn't match "afile.jpg"
8235 - doesn't match "directory/afile.jpg"
8236 /file.jpg - matches "file.jpg" in the root directory of the remote
8237 - doesn't match "afile.jpg"
8238 - doesn't match "directory/file.jpg"
8239
8240 The top level of the remote may not be the top level of the drive.
8241
8242 E.g. for a Microsoft Windows local directory structure
8243
8244 F:
8245 ├── bkp
8246 ├── data
8247 │ ├── excl
8248 │ │ ├── 123.jpg
8249 │ │ └── 456.jpg
8250 │ ├── incl
8251 │ │ └── document.pdf
8252
8253 To copy the contents of folder data into folder bkp excluding the con‐
8254 tents of subfolder exclthe following command treats F:\data and F:\bkp
8255 as top level for filtering.
8256
8257 rclone copy F:\data\ F:\bkp\ --exclude=/excl/**
8258
8259 Important Use / in path/file name patterns and not \ even if running on
8260 Microsoft Windows.
8261
8262 Simple patterns are case sensitive unless the --ignore-case flag is
8263 used.
8264
8265 Without --ignore-case (default)
8266
8267 potato - matches "potato"
8268 - doesn't match "POTATO"
8269
8270 With --ignore-case
8271
8272 potato - matches "potato"
8273 - matches "POTATO"
8274
8275 How filter rules are applied to files
8276 Rclone path/file name filters are made up of one or more of the follow‐
8277 ing flags:
8278
8279 • --include
8280
8281 • --include-from
8282
8283 • --exclude
8284
8285 • --exclude-from
8286
8287 • --filter
8288
8289 • --filter-from
8290
8291 There can be more than one instance of individual flags.
8292
8293 Rclone internally uses a combined list of all the include and exclude
8294 rules. The order in which rules are processed can influence the result
8295 of the filter.
8296
8297 All flags of the same type are processed together in the order above,
8298 regardless of what order the different types of flags are included on
8299 the command line.
8300
8301 Multiple instances of the same flag are processed from left to right
8302 according to their position in the command line.
8303
8304 To mix up the order of processing includes and excludes use --filter...
8305 flags.
8306
8307 Within --include-from, --exclude-from and --filter-from flags rules are
8308 processed from top to bottom of the referenced file.
8309
8310 If there is an --include or --include-from flag specified, rclone im‐
8311 plies a - ** rule which it adds to the bottom of the internal rule
8312 list. Specifying a + rule with a --filter... flag does not imply that
8313 rule.
8314
8315 Each path/file name passed through rclone is matched against the com‐
8316 bined filter list. At first match to a rule the path/file name is in‐
8317 cluded or excluded and no further filter rules are processed for that
8318 path/file.
8319
8320 If rclone does not find a match, after testing against all rules (in‐
8321 cluding the implied rule if appropriate), the path/file name is includ‐
8322 ed.
8323
8324 Any path/file included at that stage is processed by the rclone com‐
8325 mand.
8326
8327 --files-from and --files-from-raw flags over-ride and cannot be com‐
8328 bined with other filter options.
8329
8330 To see the internal combined rule list, in regular expression form, for
8331 a command add the --dump filters flag. Running an rclone command with
8332 --dump filters and -vv flags lists the internal filter elements and
8333 shows how they are applied to each source path/file. There is not cur‐
8334 rently a means provided to pass regular expression filter options into
8335 rclone directly though character class filter rules contain character
8336 classes. Go regular expression reference (https://golang.org/pkg/reg‐
8337 exp/syntax/)
8338
8339 How filter rules are applied to directories
8340 Rclone commands are applied to path/file names not directories. The
8341 entire contents of a directory can be matched to a filter by the pat‐
8342 tern directory/* or recursively by directory/**.
8343
8344 Directory filter rules are defined with a closing / separator.
8345
8346 E.g. /directory/subdirectory/ is an rclone directory filter rule.
8347
8348 Rclone commands can use directory filter rules to determine whether
8349 they recurse into subdirectories. This potentially optimises access to
8350 a remote by avoiding listing unnecessary directories. Whether optimi‐
8351 sation is desirable depends on the specific filter rules and source re‐
8352 mote content.
8353
8354 Directory recursion optimisation occurs if either:
8355
8356 • A source remote does not support the rclone ListR primitive. local,
8357 sftp, Microsoft OneDrive and WebDav do not support ListR. Google
8358 Drive and most bucket type storage do. Full list
8359 (https://rclone.org/overview/#optional-features)
8360
8361 • On other remotes (those that support ListR), if the rclone command is
8362 not naturally recursive, and provided it is not run with the
8363 --fast-list flag. ls, lsf -R and size are naturally recursive but
8364 sync, copy and move are not.
8365
8366 • Whenever the --disable ListR flag is applied to an rclone command.
8367
8368 Rclone commands imply directory filter rules from path/file filter
8369 rules. To view the directory filter rules rclone has implied for a
8370 command specify the --dump filters flag.
8371
8372 E.g. for an include rule
8373
8374 /a/*.jpg
8375
8376 Rclone implies the directory include rule
8377
8378 /a/
8379
8380 Directory filter rules specified in an rclone command can limit the
8381 scope of an rclone command but path/file filters still have to be spec‐
8382 ified.
8383
8384 E.g. rclone ls remote: --include /directory/ will not match any files.
8385 Because it is an --include option the --exclude ** rule is implied, and
8386 the /directory/ pattern serves only to optimise access to the remote by
8387 ignoring everything outside of that directory.
8388
8389 E.g. rclone ls remote: --filter-from filter-list.txt with a file fil‐
8390 ter-list.txt:
8391
8392 - /dir1/
8393 - /dir2/
8394 + *.pdf
8395 - **
8396
8397 All files in directories dir1 or dir2 or their subdirectories are com‐
8398 pletely excluded from the listing. Only files of suffix pdf in the
8399 root of remote: or its subdirectories are listed. The - ** rule pre‐
8400 vents listing of any path/files not previously matched by the rules
8401 above.
8402
8403 Option exclude-if-present creates a directory exclude rule based on the
8404 presence of a file in a directory and takes precedence over other
8405 rclone directory filter rules.
8406
8407 When using pattern list syntax, if a pattern item contains either / or
8408 **, then rclone will not able to imply a directory filter rule from
8409 this pattern list.
8410
8411 E.g. for an include rule
8412
8413 {dir1/**,dir2/**}
8414
8415 Rclone will match files below directories dir1 or dir2 only, but will
8416 not be able to use this filter to exclude a directory dir3 from being
8417 traversed.
8418
8419 Directory recursion optimisation may affect performance, but normally
8420 not the result. One exception to this is sync operations with option
8421 --create-empty-src-dirs, where any traversed empty directories will be
8422 created. With the pattern list example {dir1/**,dir2/**} above, this
8423 would create an empty directory dir3 on destination (when it exists on
8424 source). Changing the filter to {dir1,dir2}/**, or splitting it into
8425 two include rules --include dir1/** --include dir2/**, will match the
8426 same files while also filtering directories, with the result that an
8427 empty directory dir3 will no longer be created.
8428
8429 --exclude - Exclude files matching pattern
8430 Excludes path/file names from an rclone command based on a single ex‐
8431 clude rule.
8432
8433 This flag can be repeated. See above for the order filter flags are
8434 processed in.
8435
8436 --exclude should not be used with --include, --include-from, --filter
8437 or --filter-from flags.
8438
8439 --exclude has no effect when combined with --files-from or
8440 --files-from-raw flags.
8441
8442 E.g. rclone ls remote: --exclude *.bak excludes all .bak files from
8443 listing.
8444
8445 E.g. rclone size remote: "--exclude /dir/**" returns the total size of
8446 all files on remote: excluding those in root directory dir and sub di‐
8447 rectories.
8448
8449 E.g. on Microsoft Windows rclone ls remote: --exclude
8450 "*\[{JP,KR,HK}\]*" lists the files in remote: with [JP] or [KR] or [HK]
8451 in their name. Quotes prevent the shell from interpreting the \ char‐
8452 acters.\ characters escape the [ and ] so an rclone filter treats them
8453 literally rather than as a character-range. The { and } define an
8454 rclone pattern list. For other operating systems single quotes are re‐
8455 quired ie rclone ls remote: --exclude '*\[{JP,KR,HK}\]*'
8456
8457 --exclude-from - Read exclude patterns from file
8458 Excludes path/file names from an rclone command based on rules in a
8459 named file. The file contains a list of remarks and pattern rules.
8460
8461 For an example exclude-file.txt:
8462
8463 # a sample exclude rule file
8464 *.bak
8465 file2.jpg
8466
8467 rclone ls remote: --exclude-from exclude-file.txt lists the files on
8468 remote: except those named file2.jpg or with a suffix .bak. That is
8469 equivalent to rclone ls remote: --exclude file2.jpg --exclude "*.bak".
8470
8471 This flag can be repeated. See above for the order filter flags are
8472 processed in.
8473
8474 The --exclude-from flag is useful where multiple exclude filter rules
8475 are applied to an rclone command.
8476
8477 --exclude-from should not be used with --include, --include-from,
8478 --filter or --filter-from flags.
8479
8480 --exclude-from has no effect when combined with --files-from or
8481 --files-from-raw flags.
8482
8483 --exclude-from followed by - reads filter rules from standard input.
8484
8485 --include - Include files matching pattern
8486 Adds a single include rule based on path/file names to an rclone com‐
8487 mand.
8488
8489 This flag can be repeated. See above for the order filter flags are
8490 processed in.
8491
8492 --include has no effect when combined with --files-from or
8493 --files-from-raw flags.
8494
8495 --include implies --exclude ** at the end of an rclone internal filter
8496 list. Therefore if you mix --include and --include-from flags with
8497 --exclude, --exclude-from, --filter or --filter-from, you must use in‐
8498 clude rules for all the files you want in the include statement. For
8499 more flexibility use the --filter-from flag.
8500
8501 E.g. rclone ls remote: --include "*.{png,jpg}" lists the files on re‐
8502 mote: with suffix .png and .jpg. All other files are excluded.
8503
8504 E.g. multiple rclone copy commands can be combined with --include and
8505 a pattern-list.
8506
8507 rclone copy /vol1/A remote:A
8508 rclone copy /vol1/B remote:B
8509
8510 is equivalent to:
8511
8512 rclone copy /vol1 remote: --include "{A,B}/**"
8513
8514 E.g. rclone ls remote:/wheat --include "??[^[:punct:]]*" lists the
8515 files remote: directory wheat (and subdirectories) whose third charac‐
8516 ter is not punctuation. This example uses an ASCII character class
8517 (https://golang.org/pkg/regexp/syntax/).
8518
8519 --include-from - Read include patterns from file
8520 Adds path/file names to an rclone command based on rules in a named
8521 file. The file contains a list of remarks and pattern rules.
8522
8523 For an example include-file.txt:
8524
8525 # a sample include rule file
8526 *.jpg
8527 file2.avi
8528
8529 rclone ls remote: --include-from include-file.txt lists the files on
8530 remote: with name file2.avi or suffix .jpg. That is equivalent to
8531 rclone ls remote: --include file2.avi --include "*.jpg".
8532
8533 This flag can be repeated. See above for the order filter flags are
8534 processed in.
8535
8536 The --include-from flag is useful where multiple include filter rules
8537 are applied to an rclone command.
8538
8539 --include-from implies --exclude ** at the end of an rclone internal
8540 filter list. Therefore if you mix --include and --include-from flags
8541 with --exclude, --exclude-from, --filter or --filter-from, you must use
8542 include rules for all the files you want in the include statement. For
8543 more flexibility use the --filter-from flag.
8544
8545 --exclude-from has no effect when combined with --files-from or
8546 --files-from-raw flags.
8547
8548 --exclude-from followed by - reads filter rules from standard input.
8549
8550 --filter - Add a file-filtering rule
8551 Specifies path/file names to an rclone command, based on a single in‐
8552 clude or exclude rule, in + or - format.
8553
8554 This flag can be repeated. See above for the order filter flags are
8555 processed in.
8556
8557 --filter + differs from --include. In the case of --include rclone im‐
8558 plies an --exclude * rule which it adds to the bottom of the internal
8559 rule list. --filter...+ does not imply that rule.
8560
8561 --filter has no effect when combined with --files-from or
8562 --files-from-raw flags.
8563
8564 --filter should not be used with --include, --include-from, --exclude
8565 or --exclude-from flags.
8566
8567 E.g. rclone ls remote: --filter "- *.bak" excludes all .bak files from
8568 a list of remote:.
8569
8570 --filter-from - Read filtering patterns from a file
8571 Adds path/file names to an rclone command based on rules in a named
8572 file. The file contains a list of remarks and pattern rules. Include
8573 rules start with + and exclude rules with -. ! clears existing rules.
8574 Rules are processed in the order they are defined.
8575
8576 This flag can be repeated. See above for the order filter flags are
8577 processed in.
8578
8579 Arrange the order of filter rules with the most restrictive first and
8580 work down.
8581
8582 E.g. for filter-file.txt:
8583
8584 # a sample filter rule file
8585 - secret*.jpg
8586 + *.jpg
8587 + *.png
8588 + file2.avi
8589 - /dir/Trash/**
8590 + /dir/**
8591 # exclude everything else
8592 - *
8593
8594 rclone ls remote: --filter-from filter-file.txt lists the path/files on
8595 remote: including all jpg and png files, excluding any matching se‐
8596 cret*.jpg and including file2.avi. It also includes everything in the
8597 directory dir at the root of remote, except remote:dir/Trash which it
8598 excludes. Everything else is excluded.
8599
8600 E.g. for an alternative filter-file.txt:
8601
8602 - secret*.jpg
8603 + *.jpg
8604 + *.png
8605 + file2.avi
8606 - *
8607
8608 Files file1.jpg, file3.png and file2.avi are listed whilst secret17.jpg
8609 and files without the suffix .jpgor.png` are excluded.
8610
8611 E.g. for an alternative filter-file.txt:
8612
8613 + *.jpg
8614 + *.gif
8615 !
8616 + 42.doc
8617 - *
8618
8619 Only file 42.doc is listed. Prior rules are cleared by the !.
8620
8621 --files-from - Read list of source-file names
8622 Adds path/files to an rclone command from a list in a named file.
8623 Rclone processes the path/file names in the order of the list, and no
8624 others.
8625
8626 Other filter flags (--include, --include-from, --exclude, --ex‐
8627 clude-from, --filter and --filter-from) are ignored when --files-from
8628 is used.
8629
8630 --files-from expects a list of files as its input. Leading or trailing
8631 whitespace is stripped from the input lines. Lines starting with # or
8632 ; are ignored.
8633
8634 Rclone commands with a --files-from flag traverse the remote, treating
8635 the names in --files-from as a set of filters.
8636
8637 If the --no-traverse and --files-from flags are used together an rclone
8638 command does not traverse the remote. Instead it addresses each
8639 path/file named in the file individually. For each path/file name,
8640 that requires typically 1 API call. This can be efficient for a short
8641 --files-from list and a remote containing many files.
8642
8643 Rclone commands do not error if any names in the --files-from file are
8644 missing from the source remote.
8645
8646 The --files-from flag can be repeated in a single rclone command to
8647 read path/file names from more than one file. The files are read from
8648 left to right along the command line.
8649
8650 Paths within the --files-from file are interpreted as starting with the
8651 root specified in the rclone command. Leading / separators are ig‐
8652 nored. See --files-from-raw if you need the input to be processed in a
8653 raw manner.
8654
8655 E.g. for a file files-from.txt:
8656
8657 # comment
8658 file1.jpg
8659 subdir/file2.jpg
8660
8661 rclone copy --files-from files-from.txt /home/me/pics remote:pics
8662 copies the following, if they exist, and only those files.
8663
8664 /home/me/pics/file1.jpg → remote:pics/file1.jpg
8665 /home/me/pics/subdir/file2.jpg → remote:pics/subdir/file2.jpg
8666
8667 E.g. to copy the following files referenced by their absolute paths:
8668
8669 /home/user1/42
8670 /home/user1/dir/ford
8671 /home/user2/prefect
8672
8673 First find a common subdirectory - in this case /home and put the re‐
8674 maining files in files-from.txt with or without leading /, e.g.
8675
8676 user1/42
8677 user1/dir/ford
8678 user2/prefect
8679
8680 Then copy these to a remote:
8681
8682 rclone copy --files-from files-from.txt /home remote:backup
8683
8684 The three files are transferred as follows:
8685
8686 /home/user1/42 → remote:backup/user1/important
8687 /home/user1/dir/ford → remote:backup/user1/dir/file
8688 /home/user2/prefect → remote:backup/user2/stuff
8689
8690 Alternatively if / is chosen as root files-from.txt will be:
8691
8692 /home/user1/42
8693 /home/user1/dir/ford
8694 /home/user2/prefect
8695
8696 The copy command will be:
8697
8698 rclone copy --files-from files-from.txt / remote:backup
8699
8700 Then there will be an extra home directory on the remote:
8701
8702 /home/user1/42 → remote:backup/home/user1/42
8703 /home/user1/dir/ford → remote:backup/home/user1/dir/ford
8704 /home/user2/prefect → remote:backup/home/user2/prefect
8705
8706 --files-from-raw - Read list of source-file names without any processing
8707 This flag is the same as --files-from except that input is read in a
8708 raw manner. Lines with leading / trailing whitespace, and lines start‐
8709 ing with ; or # are read without any processing. rclone lsf
8710 (https://rclone.org/commands/rclone_lsf/) has a compatible format that
8711 can be used to export file lists from remotes for input to
8712 --files-from-raw.
8713
8714 --ignore-case - make searches case insensitive
8715 By default rclone filter patterns are case sensitive. The --ig‐
8716 nore-case flag makes all of the filters patterns on the command line
8717 case insensitive.
8718
8719 E.g. --include "zaphod.txt" does not match a file Zaphod.txt. With
8720 --ignore-case a match is made.
8721
8722 Quoting shell metacharacters
8723 Rclone commands with filter patterns containing shell metacharacters
8724 may not as work as expected in your shell and may require quoting.
8725
8726 E.g. linux, OSX (* metacharacter)
8727
8728 • --include \*.jpg
8729
8730 • --include '*.jpg'
8731
8732 • --include='*.jpg'
8733
8734 Microsoft Windows expansion is done by the command, not shell, so --in‐
8735 clude *.jpg does not require quoting.
8736
8737 If the rclone error Command .... needs .... arguments maximum: you pro‐
8738 vided .... non flag arguments: is encountered, the cause is commonly
8739 spaces within the name of a remote or flag value. The fix then is to
8740 quote values containing spaces.
8741
8742 Other filters
8743 --min-size - Don't transfer any file smaller than this
8744 Controls the minimum size file within the scope of an rclone command.
8745 Default units are kBytes but abbreviations k, M, or G are valid.
8746
8747 E.g. rclone ls remote: --min-size 50k lists files on remote: of
8748 50kByte size or larger.
8749
8750 --max-size - Don't transfer any file larger than this
8751 Controls the maximum size file within the scope of an rclone command.
8752 Default units are kBytes but abbreviations k, M, or G are valid.
8753
8754 E.g. rclone ls remote: --max-size 1G lists files on remote: of 1GByte
8755 size or smaller.
8756
8757 --max-age - Don't transfer any file older than this
8758 Controls the maximum age of files within the scope of an rclone com‐
8759 mand. Default units are seconds or the following abbreviations are
8760 valid:
8761
8762 • ms - Milliseconds
8763
8764 • s - Seconds
8765
8766 • m - Minutes
8767
8768 • h - Hours
8769
8770 • d - Days
8771
8772 • w - Weeks
8773
8774 • M - Months
8775
8776 • y - Years
8777
8778 --max-age can also be specified as an absolute time in the following
8779 formats:
8780
8781 • RFC3339 - e.g. 2006-01-02T15:04:05Z or 2006-01-02T15:04:05+07:00
8782
8783 • ISO8601 Date and time, local timezone - 2006-01-02T15:04:05
8784
8785 • ISO8601 Date and time, local timezone - 2006-01-02 15:04:05
8786
8787 • ISO8601 Date - 2006-01-02 (YYYY-MM-DD)
8788
8789 --max-age applies only to files and not to directories.
8790
8791 E.g. rclone ls remote: --max-age 2d lists files on remote: of 2 days
8792 old or less.
8793
8794 --min-age - Don't transfer any file younger than this
8795 Controls the minimum age of files within the scope of an rclone com‐
8796 mand. (see --max-age for valid formats)
8797
8798 --min-age applies only to files and not to directories.
8799
8800 E.g. rclone ls remote: --min-age 2d lists files on remote: of 2 days
8801 old or more.
8802
8803 Other flags
8804 --delete-excluded - Delete files on dest excluded from sync
8805 Important this flag is dangerous to your data - use with --dry-run and
8806 -v first.
8807
8808 In conjunction with rclone sync, --delete-excluded deletes any files on
8809 the destination which are excluded from the command.
8810
8811 E.g. the scope of rclone sync -i A: B: can be restricted:
8812
8813 rclone --min-size 50k --delete-excluded sync A: B:
8814
8815 All files on B: which are less than 50 kBytes are deleted because they
8816 are excluded from the rclone sync command.
8817
8818 --dump filters - dump the filters to the output
8819 Dumps the defined filters to standard output in regular expression for‐
8820 mat.
8821
8822 Useful for debugging.
8823
8824 Exclude directory based on a file
8825 The --exclude-if-present flag controls whether a directory is within
8826 the scope of an rclone command based on the presence of a named file
8827 within it.
8828
8829 This flag has a priority over other filter flags.
8830
8831 E.g. for the following directory structure:
8832
8833 dir1/file1
8834 dir1/dir2/file2
8835 dir1/dir2/dir3/file3
8836 dir1/dir2/dir3/.ignore
8837
8838 The command rclone ls --exclude-if-present .ignore dir1 does not list
8839 dir3, file3 or .ignore.
8840
8841 --exclude-if-present can only be used once in an rclone command.
8842
8843 Common pitfalls
8844 The most frequent filter support issues on the rclone forum
8845 (https://forum.rclone.org/) are:
8846
8847 • Not using paths relative to the root of the remote
8848
8849 • Not using / to match from the root of a remote
8850
8851 • Not using ** to match the contents of a directory
8852
8854 Rclone can serve a web based GUI (graphical user interface). This is
8855 somewhat experimental at the moment so things may be subject to change.
8856
8857 Run this command in a terminal and rclone will download and then dis‐
8858 play the GUI in a web browser.
8859
8860 rclone rcd --rc-web-gui
8861
8862 This will produce logs like this and rclone needs to continue to run to
8863 serve the GUI:
8864
8865 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
8866 2019/08/25 11:40:14 NOTICE: Downloading webgui binary. Please wait. [Size: 3813937, Path : /home/USER/.cache/rclone/webgui/v0.0.6.zip]
8867 2019/08/25 11:40:16 NOTICE: Unzipping
8868 2019/08/25 11:40:16 NOTICE: Serving remote control on http://127.0.0.1:5572/
8869
8870 This assumes you are running rclone locally on your machine. It is
8871 possible to separate the rclone and the GUI - see below for details.
8872
8873 If you wish to check for updates then you can add --rc-web-gui-update
8874 to the command line.
8875
8876 If you find your GUI broken, you may force it to update by add
8877 --rc-web-gui-force-update.
8878
8879 By default, rclone will open your browser. Add
8880 --rc-web-gui-no-open-browser to disable this feature.
8881
8882 Using the GUI
8883 Once the GUI opens, you will be looking at the dashboard which has an
8884 overall overview.
8885
8886 On the left hand side you will see a series of view buttons you can
8887 click on:
8888
8889 • Dashboard - main overview
8890
8891 • Configs - examine and create new configurations
8892
8893 • Explorer - view, download and upload files to the cloud storage sys‐
8894 tems
8895
8896 • Backend - view or alter the backend config
8897
8898 • Log out
8899
8900 (More docs and walkthrough video to come!)
8901
8902 How it works
8903 When you run the rclone rcd --rc-web-gui this is what happens
8904
8905 • Rclone starts but only runs the remote control API ("rc").
8906
8907 • The API is bound to localhost with an auto generated username and
8908 password.
8909
8910 • If the API bundle is missing then rclone will download it.
8911
8912 • rclone will start serving the files from the API bundle over the same
8913 port as the API
8914
8915 • rclone will open the browser with a login_token so it can log
8916 straight in.
8917
8918 Advanced use
8919 The rclone rcd may use any of the flags documented on the rc page
8920 (https://rclone.org/rc/#supported-parameters).
8921
8922 The flag --rc-web-gui is shorthand for
8923
8924 • Download the web GUI if necessary
8925
8926 • Check we are using some authentication
8927
8928 • --rc-user gui
8929
8930 • --rc-pass <random password>
8931
8932 • --rc-serve
8933
8934 These flags can be overridden as desired.
8935
8936 See also the rclone rcd documentation (https://rclone.org/com‐
8937 mands/rclone_rcd/).
8938
8939 Example: Running a public GUI
8940 For example the GUI could be served on a public port over SSL using an
8941 htpasswd file using the following flags:
8942
8943 • --rc-web-gui
8944
8945 • --rc-addr :443
8946
8947 • --rc-htpasswd /path/to/htpasswd
8948
8949 • --rc-cert /path/to/ssl.crt
8950
8951 • --rc-key /path/to/ssl.key
8952
8953 Example: Running a GUI behind a proxy
8954 If you want to run the GUI behind a proxy at /rclone you could use
8955 these flags:
8956
8957 • --rc-web-gui
8958
8959 • --rc-baseurl rclone
8960
8961 • --rc-htpasswd /path/to/htpasswd
8962
8963 Or instead of htpasswd if you just want a single user and password:
8964
8965 • --rc-user me
8966
8967 • --rc-pass mypassword
8968
8969 Project
8970 The GUI is being developed in the: rclone/rclone-webui-react repository
8971 (https://github.com/rclone/rclone-webui-react).
8972
8973 Bug reports and contributions are very welcome :-)
8974
8975 If you have questions then please ask them on the rclone forum
8976 (https://forum.rclone.org/).
8977
8979 If rclone is run with the --rc flag then it starts an HTTP server which
8980 can be used to remote control rclone using its API.
8981
8982 You can either use the rclone rc command to access the API or use HTTP
8983 directly.
8984
8985 If you just want to run a remote control then see the rcd command
8986 (https://rclone.org/commands/rclone_rcd/).
8987
8988 Supported parameters
8989 --rc
8990 Flag to start the http server listen on remote requests
8991
8992 --rc-addr=IP
8993 IPaddress:Port or :Port to bind server to. (default "localhost:5572")
8994
8995 --rc-cert=KEY
8996 SSL PEM key (concatenation of certificate and CA certificate)
8997
8998 --rc-client-ca=PATH
8999 Client certificate authority to verify clients with
9000
9001 --rc-htpasswd=PATH
9002 htpasswd file - if not provided no authentication is done
9003
9004 --rc-key=PATH
9005 SSL PEM Private key
9006
9007 --rc-max-header-bytes=VALUE
9008 Maximum size of request header (default 4096)
9009
9010 --rc-user=VALUE
9011 User name for authentication.
9012
9013 --rc-pass=VALUE
9014 Password for authentication.
9015
9016 --rc-realm=VALUE
9017 Realm for authentication (default "rclone")
9018
9019 --rc-server-read-timeout=DURATION
9020 Timeout for server reading data (default 1h0m0s)
9021
9022 --rc-server-write-timeout=DURATION
9023 Timeout for server writing data (default 1h0m0s)
9024
9025 --rc-serve
9026 Enable the serving of remote objects via the HTTP interface. This
9027 means objects will be accessible at http://127.0.0.1:5572/ by default,
9028 so you can browse to http://127.0.0.1:5572/ or http://127.0.0.1:5572/*
9029 to see a listing of the remotes. Objects may be requested from remotes
9030 using this syntax http://127.0.0.1:5572/[remote:path]/path/to/object
9031
9032 Default Off.
9033
9034 --rc-files /path/to/directory
9035 Path to local files to serve on the HTTP server.
9036
9037 If this is set then rclone will serve the files in that directory. It
9038 will also open the root in the web browser if specified. This is for
9039 implementing browser based GUIs for rclone functions.
9040
9041 If --rc-user or --rc-pass is set then the URL that is opened will have
9042 the authorization in the URL in the http://user:pass@localhost/ style.
9043
9044 Default Off.
9045
9046 --rc-enable-metrics
9047 Enable OpenMetrics/Prometheus compatible endpoint at /metrics.
9048
9049 Default Off.
9050
9051 --rc-web-gui
9052 Set this flag to serve the default web gui on the same port as rclone.
9053
9054 Default Off.
9055
9056 --rc-allow-origin
9057 Set the allowed Access-Control-Allow-Origin for rc requests.
9058
9059 Can be used with --rc-web-gui if the rclone is running on different IP
9060 than the web-gui.
9061
9062 Default is IP address on which rc is running.
9063
9064 --rc-web-fetch-url
9065 Set the URL to fetch the rclone-web-gui files from.
9066
9067 Default https://api.github.com/repos/rclone/rclone-webui-react/releas‐
9068 es/latest.
9069
9070 --rc-web-gui-update
9071 Set this flag to check and update rclone-webui-react from the
9072 rc-web-fetch-url.
9073
9074 Default Off.
9075
9076 --rc-web-gui-force-update
9077 Set this flag to force update rclone-webui-react from the
9078 rc-web-fetch-url.
9079
9080 Default Off.
9081
9082 --rc-web-gui-no-open-browser
9083 Set this flag to disable opening browser automatically when using
9084 web-gui.
9085
9086 Default Off.
9087
9088 --rc-job-expire-duration=DURATION
9089 Expire finished async jobs older than DURATION (default 60s).
9090
9091 --rc-job-expire-interval=DURATION
9092 Interval duration to check for expired async jobs (default 10s).
9093
9094 --rc-no-auth
9095 By default rclone will require authorisation to have been set up on the
9096 rc interface in order to use any methods which access any rclone re‐
9097 motes. Eg operations/list is denied as it involved creating a remote
9098 as is sync/copy.
9099
9100 If this is set then no authorisation will be required on the server to
9101 use these methods. The alternative is to use --rc-user and --rc-pass
9102 and use these credentials in the request.
9103
9104 Default Off.
9105
9106 Accessing the remote control via the rclone rc command
9107 Rclone itself implements the remote control protocol in its rclone rc
9108 command.
9109
9110 You can use it like this
9111
9112 $ rclone rc rc/noop param1=one param2=two
9113 {
9114 "param1": "one",
9115 "param2": "two"
9116 }
9117
9118 Run rclone rc on its own to see the help for the installed remote con‐
9119 trol commands.
9120
9121 JSON input
9122 rclone rc also supports a --json flag which can be used to send more
9123 complicated input parameters.
9124
9125 $ rclone rc --json '{ "p1": [1,"2",null,4], "p2": { "a":1, "b":2 } }' rc/noop
9126 {
9127 "p1": [
9128 1,
9129 "2",
9130 null,
9131 4
9132 ],
9133 "p2": {
9134 "a": 1,
9135 "b": 2
9136 }
9137 }
9138
9139 If the parameter being passed is an object then it can be passed as a
9140 JSON string rather than using the --json flag which simplifies the com‐
9141 mand line.
9142
9143 rclone rc operations/list fs=/tmp remote=test opt='{"showHash": true}'
9144
9145 Rather than
9146
9147 rclone rc operations/list --json '{"fs": "/tmp", "remote": "test", "opt": {"showHash": true}}'
9148
9149 Special parameters
9150 The rc interface supports some special parameters which apply to all
9151 commands. These start with _ to show they are different.
9152
9153 Running asynchronous jobs with _async = true
9154 Each rc call is classified as a job and it is assigned its own id. By
9155 default jobs are executed immediately as they are created or syn‐
9156 chronously.
9157
9158 If _async has a true value when supplied to an rc call then it will re‐
9159 turn immediately with a job id and the task will be run in the back‐
9160 ground. The job/status call can be used to get information of the
9161 background job. The job can be queried for up to 1 minute after it has
9162 finished.
9163
9164 It is recommended that potentially long running jobs, e.g. sync/sync,
9165 sync/copy, sync/move, operations/purge are run with the _async flag to
9166 avoid any potential problems with the HTTP request and response timing
9167 out.
9168
9169 Starting a job with the _async flag:
9170
9171 $ rclone rc --json '{ "p1": [1,"2",null,4], "p2": { "a":1, "b":2 }, "_async": true }' rc/noop
9172 {
9173 "jobid": 2
9174 }
9175
9176 Query the status to see if the job has finished. For more information
9177 on the meaning of these return parameters see the job/status call.
9178
9179 $ rclone rc --json '{ "jobid":2 }' job/status
9180 {
9181 "duration": 0.000124163,
9182 "endTime": "2018-10-27T11:38:07.911245881+01:00",
9183 "error": "",
9184 "finished": true,
9185 "id": 2,
9186 "output": {
9187 "_async": true,
9188 "p1": [
9189 1,
9190 "2",
9191 null,
9192 4
9193 ],
9194 "p2": {
9195 "a": 1,
9196 "b": 2
9197 }
9198 },
9199 "startTime": "2018-10-27T11:38:07.911121728+01:00",
9200 "success": true
9201 }
9202
9203 job/list can be used to show the running or recently completed jobs
9204
9205 $ rclone rc job/list
9206 {
9207 "jobids": [
9208 2
9209 ]
9210 }
9211
9212 Setting config flags with _config
9213 If you wish to set config (the equivalent of the global flags) for the
9214 duration of an rc call only then pass in the _config parameter.
9215
9216 This should be in the same format as the config key returned by op‐
9217 tions/get.
9218
9219 For example, if you wished to run a sync with the --checksum parameter,
9220 you would pass this parameter in your JSON blob.
9221
9222 "_config":{"CheckSum": true}
9223
9224 If using rclone rc this could be passed as
9225
9226 rclone rc operations/sync ... _config='{"CheckSum": true}'
9227
9228 Any config parameters you don't set will inherit the global defaults
9229 which were set with command line flags or environment variables.
9230
9231 Note that it is possible to set some values as strings or integers -
9232 see data types (/#data-types) for more info. Here is an example set‐
9233 ting the equivalent of --buffer-size in string or integer format.
9234
9235 "_config":{"BufferSize": "42M"}
9236 "_config":{"BufferSize": 44040192}
9237
9238 If you wish to check the _config assignment has worked properly then
9239 calling options/local will show what the value got set to.
9240
9241 Setting filter flags with _filter
9242 If you wish to set filters for the duration of an rc call only then
9243 pass in the _filter parameter.
9244
9245 This should be in the same format as the filter key returned by op‐
9246 tions/get.
9247
9248 For example, if you wished to run a sync with these flags
9249
9250 --max-size 1M --max-age 42s --include "a" --include "b"
9251
9252 you would pass this parameter in your JSON blob.
9253
9254 "_filter":{"MaxSize":"1M", "IncludeRule":["a","b"], "MaxAge":"42s"}
9255
9256 If using rclone rc this could be passed as
9257
9258 rclone rc ... _filter='{"MaxSize":"1M", "IncludeRule":["a","b"], "MaxAge":"42s"}'
9259
9260 Any filter parameters you don't set will inherit the global defaults
9261 which were set with command line flags or environment variables.
9262
9263 Note that it is possible to set some values as strings or integers -
9264 see data types (/#data-types) for more info. Here is an example set‐
9265 ting the equivalent of --buffer-size in string or integer format.
9266
9267 "_filter":{"MinSize": "42M"}
9268 "_filter":{"MinSize": 44040192}
9269
9270 If you wish to check the _filter assignment has worked properly then
9271 calling options/local will show what the value got set to.
9272
9273 Assigning operations to groups with _group = value
9274 Each rc call has its own stats group for tracking its metrics. By de‐
9275 fault grouping is done by the composite group name from prefix job/ and
9276 id of the job like so job/1.
9277
9278 If _group has a value then stats for that request will be grouped under
9279 that value. This allows caller to group stats under their own name.
9280
9281 Stats for specific group can be accessed by passing group to
9282 core/stats:
9283
9284 $ rclone rc --json '{ "group": "job/1" }' core/stats
9285 {
9286 "speed": 12345
9287 ...
9288 }
9289
9290 Data types
9291 When the API returns types, these will mostly be straight forward inte‐
9292 ger, string or boolean types.
9293
9294 However some of the types returned by the options/get call and taken by
9295 the options/set calls as well as the vfsOpt, mountOpt and the _config
9296 parameters.
9297
9298 • Duration - these are returned as an integer duration in nanoseconds.
9299 They may be set as an integer, or they may be set with time string,
9300 eg "5s". See the options section (https://rclone.org/docs/#options)
9301 for more info.
9302
9303 • Size - these are returned as an integer number of bytes. They may be
9304 set as an integer or they may be set with a size suffix string, eg
9305 "10M". See the options section (https://rclone.org/docs/#options)
9306 for more info.
9307
9308 • Enumerated type (such as CutoffMode, DumpFlags, LogLevel, Vfs‐
9309 CacheMode - these will be returned as an integer and may be set as an
9310 integer but more conveniently they can be set as a string, eg "HARD"
9311 for CutoffMode or DEBUG for LogLevel.
9312
9313 • BandwidthSpec - this will be set and returned as a string, eg "1M".
9314
9315 Specifying remotes to work on
9316 Remotes are specified with the fs=, srcFs=, dstFs= parameters depending
9317 on the command being used.
9318
9319 The parameters can be a string as per the rest of rclone, eg s3:buck‐
9320 et/path or :sftp:/my/dir. They can also be specified as JSON blobs.
9321
9322 If specifyng a JSON blob it should be a object mapping strings to
9323 strings. These values will be used to configure the remote. There are
9324 3 special values which may be set:
9325
9326 • type - set to type to specify a remote called :type:
9327
9328 • _name - set to name to specify a remote called name:
9329
9330 • _root - sets the root of the remote - may be empty
9331
9332 One of _name or type should normally be set. If the local backend is
9333 desired then type should be set to local. If _root isn't specified
9334 then it defaults to the root of the remote.
9335
9336 For example this JSON is equivalent to remote:/tmp
9337
9338 {
9339 "_name": "remote",
9340 "_path": "/tmp"
9341 }
9342
9343 And this is equivalent to :sftp,host='example.com':/tmp
9344
9345 {
9346 "type": "sftp",
9347 "host": "example.com",
9348 "_path": "/tmp"
9349 }
9350
9351 And this is equivalent to /tmp/dir
9352
9353 {
9354 type = "local",
9355 _ path = "/tmp/dir"
9356 }
9357
9358 Supported commands
9359 backend/command: Runs a backend command.
9360 This takes the following parameters
9361
9362 • command - a string with the command name
9363
9364 • fs - a remote name string e.g. "drive:"
9365
9366 • arg - a list of arguments for the backend command
9367
9368 • opt - a map of string to string of options
9369
9370 Returns
9371
9372 • result - result from the backend command
9373
9374 For example
9375
9376 rclone rc backend/command command=noop fs=. -o echo=yes -o blue -a path1 -a path2
9377
9378 Returns
9379
9380 {
9381 "result": {
9382 "arg": [
9383 "path1",
9384 "path2"
9385 ],
9386 "name": "noop",
9387 "opt": {
9388 "blue": "",
9389 "echo": "yes"
9390 }
9391 }
9392 }
9393
9394 Note that this is the direct equivalent of using this "backend" com‐
9395 mand:
9396
9397 rclone backend noop . -o echo=yes -o blue path1 path2
9398
9399 Note that arguments must be preceded by the "-a" flag
9400
9401 See the backend (https://rclone.org/commands/rclone_backend/) command
9402 for more information.
9403
9404 Authentication is required for this call.
9405
9406 cache/expire: Purge a remote from cache
9407 Purge a remote from the cache backend. Supports either a directory or
9408 a file. Params: - remote = path to remote (required) - withData =
9409 true/false to delete cached data (chunks) as well (optional)
9410
9411 Eg
9412
9413 rclone rc cache/expire remote=path/to/sub/folder/
9414 rclone rc cache/expire remote=/ withData=true
9415
9416 cache/fetch: Fetch file chunks
9417 Ensure the specified file chunks are cached on disk.
9418
9419 The chunks= parameter specifies the file chunks to check. It takes a
9420 comma separated list of array slice indices. The slice indices are
9421 similar to Python slices: start[:end]
9422
9423 start is the 0 based chunk number from the beginning of the file to
9424 fetch inclusive. end is 0 based chunk number from the beginning of the
9425 file to fetch exclusive. Both values can be negative, in which case
9426 they count from the back of the file. The value "-5:" represents the
9427 last 5 chunks of a file.
9428
9429 Some valid examples are: ":5,-5:" -> the first and last five chunks
9430 "0,-2" -> the first and the second last chunk "0:10" -> the first ten
9431 chunks
9432
9433 Any parameter with a key that starts with "file" can be used to specify
9434 files to fetch, e.g.
9435
9436 rclone rc cache/fetch chunks=0 file=hello file2=home/goodbye
9437
9438 File names will automatically be encrypted when the a crypt remote is
9439 used on top of the cache.
9440
9441 cache/stats: Get cache stats
9442 Show statistics for the cache remote.
9443
9444 config/create: create the config for a remote.
9445 This takes the following parameters
9446
9447 • name - name of remote
9448
9449 • parameters - a map of { "key": "value" } pairs
9450
9451 • type - type of the new remote
9452
9453 • obscure - optional bool - forces obscuring of passwords
9454
9455 • noObscure - optional bool - forces passwords not to be obscured
9456
9457 See the config create command (https://rclone.org/commands/rclone_con‐
9458 fig_create/) command for more information on the above.
9459
9460 Authentication is required for this call.
9461
9462 config/delete: Delete a remote in the config file.
9463 Parameters:
9464
9465 • name - name of remote to delete
9466
9467 See the config delete command (https://rclone.org/commands/rclone_con‐
9468 fig_delete/) command for more information on the above.
9469
9470 Authentication is required for this call.
9471
9472 config/dump: Dumps the config file.
9473 Returns a JSON object: - key: value
9474
9475 Where keys are remote names and values are the config parameters.
9476
9477 See the config dump command (https://rclone.org/commands/rclone_con‐
9478 fig_dump/) command for more information on the above.
9479
9480 Authentication is required for this call.
9481
9482 config/get: Get a remote in the config file.
9483 Parameters:
9484
9485 • name - name of remote to get
9486
9487 See the config dump command (https://rclone.org/commands/rclone_con‐
9488 fig_dump/) command for more information on the above.
9489
9490 Authentication is required for this call.
9491
9492 config/listremotes: Lists the remotes in the config file.
9493 Returns - remotes - array of remote names
9494
9495 See the listremotes command (https://rclone.org/com‐
9496 mands/rclone_listremotes/) command for more information on the above.
9497
9498 Authentication is required for this call.
9499
9500 config/password: password the config for a remote.
9501 This takes the following parameters
9502
9503 • name - name of remote
9504
9505 • parameters - a map of { "key": "value" } pairs
9506
9507 See the config password command (https://rclone.org/com‐
9508 mands/rclone_config_password/) command for more information on the
9509 above.
9510
9511 Authentication is required for this call.
9512
9513 config/providers: Shows how providers are configured in the config file.
9514 Returns a JSON object: - providers - array of objects
9515
9516 See the config providers command (https://rclone.org/com‐
9517 mands/rclone_config_providers/) command for more information on the
9518 above.
9519
9520 Authentication is required for this call.
9521
9522 config/update: update the config for a remote.
9523 This takes the following parameters
9524
9525 • name - name of remote
9526
9527 • parameters - a map of { "key": "value" } pairs
9528
9529 • obscure - optional bool - forces obscuring of passwords
9530
9531 • noObscure - optional bool - forces passwords not to be obscured
9532
9533 See the config update command (https://rclone.org/commands/rclone_con‐
9534 fig_update/) command for more information on the above.
9535
9536 Authentication is required for this call.
9537
9538 core/bwlimit: Set the bandwidth limit.
9539 This sets the bandwidth limit to the string passed in. This should be
9540 a single bandwidth limit entry or a pair of upload:download bandwidth.
9541
9542 Eg
9543
9544 rclone rc core/bwlimit rate=off
9545 {
9546 "bytesPerSecond": -1,
9547 "bytesPerSecondTx": -1,
9548 "bytesPerSecondRx": -1,
9549 "rate": "off"
9550 }
9551 rclone rc core/bwlimit rate=1M
9552 {
9553 "bytesPerSecond": 1048576,
9554 "bytesPerSecondTx": 1048576,
9555 "bytesPerSecondRx": 1048576,
9556 "rate": "1M"
9557 }
9558 rclone rc core/bwlimit rate=1M:100k
9559 {
9560 "bytesPerSecond": 1048576,
9561 "bytesPerSecondTx": 1048576,
9562 "bytesPerSecondRx": 131072,
9563 "rate": "1M"
9564 }
9565
9566 If the rate parameter is not supplied then the bandwidth is queried
9567
9568 rclone rc core/bwlimit
9569 {
9570 "bytesPerSecond": 1048576,
9571 "bytesPerSecondTx": 1048576,
9572 "bytesPerSecondRx": 1048576,
9573 "rate": "1M"
9574 }
9575
9576 The format of the parameter is exactly the same as passed to --bwlimit
9577 except only one bandwidth may be specified.
9578
9579 In either case "rate" is returned as a human readable string, and
9580 "bytesPerSecond" is returned as a number.
9581
9582 core/command: Run a rclone terminal command over rc.
9583 This takes the following parameters
9584
9585 • command - a string with the command name
9586
9587 • arg - a list of arguments for the backend command
9588
9589 • opt - a map of string to string of options
9590
9591 • returnType - one of ("COMBINED_OUTPUT", "STREAM", "STREAM_ONLY_STD‐
9592 OUT", "STREAM_ONLY_STDERR")
9593
9594 • defaults to "COMBINED_OUTPUT" if not set
9595
9596 • the STREAM returnTypes will write the output to the body of the
9597 HTTP message
9598
9599 • the COMBINED_OUTPUT will write the output to the "result" parameter
9600
9601 Returns
9602
9603 • result - result from the backend command
9604
9605 • only set when using returnType "COMBINED_OUTPUT"
9606
9607 • error - set if rclone exits with an error code
9608
9609 • returnType - one of ("COMBINED_OUTPUT", "STREAM", "STREAM_ONLY_STD‐
9610 OUT", "STREAM_ONLY_STDERR")
9611
9612 For example
9613
9614 rclone rc core/command command=ls -a mydrive:/ -o max-depth=1
9615 rclone rc core/command -a ls -a mydrive:/ -o max-depth=1
9616
9617 Returns
9618
9619 {
9620 "error": false,
9621 "result": "<Raw command line output>"
9622 }
9623
9624 OR
9625 {
9626 "error": true,
9627 "result": "<Raw command line output>"
9628 }
9629
9630 Authentication is required for this call.
9631
9632 core/gc: Runs a garbage collection.
9633 This tells the go runtime to do a garbage collection run. It isn't
9634 necessary to call this normally, but it can be useful for debugging
9635 memory problems.
9636
9637 core/group-list: Returns list of stats.
9638 This returns list of stats groups currently in memory.
9639
9640 Returns the following values:
9641
9642 {
9643 "groups": an array of group names:
9644 [
9645 "group1",
9646 "group2",
9647 ...
9648 ]
9649 }
9650
9651 core/memstats: Returns the memory statistics
9652 This returns the memory statistics of the running program. What the
9653 values mean are explained in the go docs: https://golang.org/pkg/run‐
9654 time/#MemStats
9655
9656 The most interesting values for most people are:
9657
9658 • HeapAlloc: This is the amount of memory rclone is actually using
9659
9660 • HeapSys: This is the amount of memory rclone has obtained from the OS
9661
9662 • Sys: this is the total amount of memory requested from the OS
9663
9664 • It is virtual memory so may include unused memory
9665
9666 core/obscure: Obscures a string passed in.
9667 Pass a clear string and rclone will obscure it for the config file: -
9668 clear - string
9669
9670 Returns - obscured - string
9671
9672 core/pid: Return PID of current process
9673 This returns PID of current process. Useful for stopping rclone
9674 process.
9675
9676 core/quit: Terminates the app.
9677 (optional) Pass an exit code to be used for terminating the app: - ex‐
9678 itCode - int
9679
9680 core/stats: Returns stats about current transfers.
9681 This returns all available stats:
9682
9683 rclone rc core/stats
9684
9685 If group is not provided then summed up stats for all groups will be
9686 returned.
9687
9688 Parameters
9689
9690 • group - name of the stats group (string)
9691
9692 Returns the following values:
9693
9694 {
9695 "bytes": total transferred bytes since the start of the group,
9696 "checks": number of files checked,
9697 "deletes" : number of files deleted,
9698 "elapsedTime": time in floating point seconds since rclone was started,
9699 "errors": number of errors,
9700 "eta": estimated time in seconds until the group completes,
9701 "fatalError": boolean whether there has been at least one fatal error,
9702 "lastError": last error string,
9703 "renames" : number of files renamed,
9704 "retryError": boolean showing whether there has been at least one non-NoRetryError,
9705 "speed": average speed in bytes/sec since start of the group,
9706 "totalBytes": total number of bytes in the group,
9707 "totalChecks": total number of checks in the group,
9708 "totalTransfers": total number of transfers in the group,
9709 "transferTime" : total time spent on running jobs,
9710 "transfers": number of transferred files,
9711 "transferring": an array of currently active file transfers:
9712 [
9713 {
9714 "bytes": total transferred bytes for this file,
9715 "eta": estimated time in seconds until file transfer completion
9716 "name": name of the file,
9717 "percentage": progress of the file transfer in percent,
9718 "speed": average speed over the whole transfer in bytes/sec,
9719 "speedAvg": current speed in bytes/sec as an exponentially weighted moving average,
9720 "size": size of the file in bytes
9721 }
9722 ],
9723 "checking": an array of names of currently active file checks
9724 []
9725 }
9726
9727 Values for "transferring", "checking" and "lastError" are only assigned
9728 if data is available. The value for "eta" is null if an eta cannot be
9729 determined.
9730
9731 core/stats-delete: Delete stats group.
9732 This deletes entire stats group
9733
9734 Parameters
9735
9736 • group - name of the stats group (string)
9737
9738 core/stats-reset: Reset stats.
9739 This clears counters, errors and finished transfers for all stats or
9740 specific stats group if group is provided.
9741
9742 Parameters
9743
9744 • group - name of the stats group (string)
9745
9746 core/transferred: Returns stats about completed transfers.
9747 This returns stats about completed transfers:
9748
9749 rclone rc core/transferred
9750
9751 If group is not provided then completed transfers for all groups will
9752 be returned.
9753
9754 Note only the last 100 completed transfers are returned.
9755
9756 Parameters
9757
9758 • group - name of the stats group (string)
9759
9760 Returns the following values:
9761
9762 {
9763 "transferred": an array of completed transfers (including failed ones):
9764 [
9765 {
9766 "name": name of the file,
9767 "size": size of the file in bytes,
9768 "bytes": total transferred bytes for this file,
9769 "checked": if the transfer is only checked (skipped, deleted),
9770 "timestamp": integer representing millisecond unix epoch,
9771 "error": string description of the error (empty if successful),
9772 "jobid": id of the job that this transfer belongs to
9773 }
9774 ]
9775 }
9776
9777 core/version: Shows the current version of rclone and the go runtime.
9778 This shows the current version of go and the go runtime
9779
9780 • version - rclone version, e.g. "v1.53.0"
9781
9782 • decomposed - version number as [major, minor, patch]
9783
9784 • isGit - boolean - true if this was compiled from the git version
9785
9786 • isBeta - boolean - true if this is a beta version
9787
9788 • os - OS in use as according to Go
9789
9790 • arch - cpu architecture in use according to Go
9791
9792 • goVersion - version of Go runtime in use
9793
9794 • linking - type of rclone executable (static or dynamic)
9795
9796 • goTags - space separated build tags or "none"
9797
9798 debug/set-block-profile-rate: Set runtime.SetBlockProfileRate for blocking
9799 profiling.
9800 SetBlockProfileRate controls the fraction of goroutine blocking events
9801 that are reported in the blocking profile. The profiler aims to sample
9802 an average of one blocking event per rate nanoseconds spent blocked.
9803
9804 To include every blocking event in the profile, pass rate = 1. To turn
9805 off profiling entirely, pass rate <= 0.
9806
9807 After calling this you can use this to see the blocking profile:
9808
9809 go tool pprof http://localhost:5572/debug/pprof/block
9810
9811 Parameters
9812
9813 • rate - int
9814
9815 debug/set-mutex-profile-fraction: Set runtime.SetMutexProfileFraction for
9816 mutex profiling.
9817 SetMutexProfileFraction controls the fraction of mutex contention
9818 events that are reported in the mutex profile. On average 1/rate
9819 events are reported. The previous rate is returned.
9820
9821 To turn off profiling entirely, pass rate 0. To just read the current
9822 rate, pass rate < 0. (For n>1 the details of sampling may change.)
9823
9824 Once this is set you can look use this to profile the mutex contention:
9825
9826 go tool pprof http://localhost:5572/debug/pprof/mutex
9827
9828 Parameters
9829
9830 • rate - int
9831
9832 Results
9833
9834 • previousRate - int
9835
9836 fscache/clear: Clear the Fs cache.
9837 This clears the fs cache. This is where remotes created from backends
9838 are cached for a short while to make repeated rc calls more efficient.
9839
9840 If you change the parameters of a backend then you may want to call
9841 this to clear an existing remote out of the cache before re-creating
9842 it.
9843
9844 Authentication is required for this call.
9845
9846 fscache/entries: Returns the number of entries in the fs cache.
9847 This returns the number of entries in the fs cache.
9848
9849 Returns - entries - number of items in the cache
9850
9851 Authentication is required for this call.
9852
9853 job/list: Lists the IDs of the running jobs
9854 Parameters - None
9855
9856 Results
9857
9858 • jobids - array of integer job ids
9859
9860 job/status: Reads the status of the job ID
9861 Parameters
9862
9863 • jobid - id of the job (integer)
9864
9865 Results
9866
9867 • finished - boolean
9868
9869 • duration - time in seconds that the job ran for
9870
9871 • endTime - time the job finished (e.g.
9872 "2018-10-26T18:50:20.528746884+01:00")
9873
9874 • error - error from the job or empty string for no error
9875
9876 • finished - boolean whether the job has finished or not
9877
9878 • id - as passed in above
9879
9880 • startTime - time the job started (e.g.
9881 "2018-10-26T18:50:20.528336039+01:00")
9882
9883 • success - boolean - true for success false otherwise
9884
9885 • output - output of the job as would have been returned if called syn‐
9886 chronously
9887
9888 • progress - output of the progress related to the underlying job
9889
9890 job/stop: Stop the running job
9891 Parameters
9892
9893 • jobid - id of the job (integer)
9894
9895 mount/listmounts: Show current mount points
9896 This shows currently mounted points, which can be used for performing
9897 an unmount
9898
9899 This takes no parameters and returns
9900
9901 • mountPoints: list of current mount points
9902
9903 Eg
9904
9905 rclone rc mount/listmounts
9906
9907 Authentication is required for this call.
9908
9909 mount/mount: Create a new mount point
9910 rclone allows Linux, FreeBSD, macOS and Windows to mount any of
9911 Rclone's cloud storage systems as a file system with FUSE.
9912
9913 If no mountType is provided, the priority is given as follows: 1.
9914 mount 2.cmount 3.mount2
9915
9916 This takes the following parameters
9917
9918 • fs - a remote path to be mounted (required)
9919
9920 • mountPoint: valid path on the local machine (required)
9921
9922 • mountType: One of the values (mount, cmount, mount2) specifies the
9923 mount implementation to use
9924
9925 • mountOpt: a JSON object with Mount options in.
9926
9927 • vfsOpt: a JSON object with VFS options in.
9928
9929 Eg
9930
9931 rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint
9932 rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint mountType=mount
9933 rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"CacheMode": 2}' mountOpt='{"AllowOther": true}'
9934
9935 The vfsOpt are as described in options/get and can be seen in the the
9936 "vfs" section when running and the mountOpt can be seen in the "mount"
9937 section.
9938
9939 rclone rc options/get
9940
9941 Authentication is required for this call.
9942
9943 mount/types: Show all possible mount types
9944 This shows all possible mount types and returns them as a list.
9945
9946 This takes no parameters and returns
9947
9948 • mountTypes: list of mount types
9949
9950 The mount types are strings like "mount", "mount2", "cmount" and can be
9951 passed to mount/mount as the mountType parameter.
9952
9953 Eg
9954
9955 rclone rc mount/types
9956
9957 Authentication is required for this call.
9958
9959 mount/unmount: Unmount selected active mount
9960 rclone allows Linux, FreeBSD, macOS and Windows to mount any of
9961 Rclone's cloud storage systems as a file system with FUSE.
9962
9963 This takes the following parameters
9964
9965 • mountPoint: valid path on the local machine where the mount was cre‐
9966 ated (required)
9967
9968 Eg
9969
9970 rclone rc mount/unmount mountPoint=/home/<user>/mountPoint
9971
9972 Authentication is required for this call.
9973
9974 mount/unmountall: Show current mount points
9975 This shows currently mounted points, which can be used for performing
9976 an unmount
9977
9978 This takes no parameters and returns error if unmount does not succeed.
9979
9980 Eg
9981
9982 rclone rc mount/unmountall
9983
9984 Authentication is required for this call.
9985
9986 operations/about: Return the space used on the remote
9987 This takes the following parameters
9988
9989 • fs - a remote name string e.g. "drive:"
9990
9991 The result is as returned from rclone about --json
9992
9993 See the about command (https://rclone.org/commands/rclone_size/) com‐
9994 mand for more information on the above.
9995
9996 Authentication is required for this call.
9997
9998 operations/cleanup: Remove trashed files in the remote or path
9999 This takes the following parameters
10000
10001 • fs - a remote name string e.g. "drive:"
10002
10003 See the cleanup command (https://rclone.org/commands/rclone_cleanup/)
10004 command for more information on the above.
10005
10006 Authentication is required for this call.
10007
10008 operations/copyfile: Copy a file from source remote to destination remote
10009 This takes the following parameters
10010
10011 • srcFs - a remote name string e.g. "drive:" for the source
10012
10013 • srcRemote - a path within that remote e.g. "file.txt" for the source
10014
10015 • dstFs - a remote name string e.g. "drive2:" for the destination
10016
10017 • dstRemote - a path within that remote e.g. "file2.txt" for the des‐
10018 tination
10019
10020 Authentication is required for this call.
10021
10022 operations/copyurl: Copy the URL to the object
10023 This takes the following parameters
10024
10025 • fs - a remote name string e.g. "drive:"
10026
10027 • remote - a path within that remote e.g. "dir"
10028
10029 • url - string, URL to read from
10030
10031 • autoFilename - boolean, set to true to retrieve destination file name
10032 from url See the copyurl command (https://rclone.org/com‐
10033 mands/rclone_copyurl/) command for more information on the above.
10034
10035 Authentication is required for this call.
10036
10037 operations/delete: Remove files in the path
10038 This takes the following parameters
10039
10040 • fs - a remote name string e.g. "drive:"
10041
10042 See the delete command (https://rclone.org/commands/rclone_delete/)
10043 command for more information on the above.
10044
10045 Authentication is required for this call.
10046
10047 operations/deletefile: Remove the single file pointed to
10048 This takes the following parameters
10049
10050 • fs - a remote name string e.g. "drive:"
10051
10052 • remote - a path within that remote e.g. "dir"
10053
10054 See the deletefile command (https://rclone.org/commands/rclone_delete‐
10055 file/) command for more information on the above.
10056
10057 Authentication is required for this call.
10058
10059 operations/fsinfo: Return information about the remote
10060 This takes the following parameters
10061
10062 • fs - a remote name string e.g. "drive:"
10063
10064 This returns info about the remote passed in;
10065
10066 {
10067 // optional features and whether they are available or not
10068 "Features": {
10069 "About": true,
10070 "BucketBased": false,
10071 "CanHaveEmptyDirectories": true,
10072 "CaseInsensitive": false,
10073 "ChangeNotify": false,
10074 "CleanUp": false,
10075 "Copy": false,
10076 "DirCacheFlush": false,
10077 "DirMove": true,
10078 "DuplicateFiles": false,
10079 "GetTier": false,
10080 "ListR": false,
10081 "MergeDirs": false,
10082 "Move": true,
10083 "OpenWriterAt": true,
10084 "PublicLink": false,
10085 "Purge": true,
10086 "PutStream": true,
10087 "PutUnchecked": false,
10088 "ReadMimeType": false,
10089 "ServerSideAcrossConfigs": false,
10090 "SetTier": false,
10091 "SetWrapper": false,
10092 "UnWrap": false,
10093 "WrapFs": false,
10094 "WriteMimeType": false
10095 },
10096 // Names of hashes available
10097 "Hashes": [
10098 "MD5",
10099 "SHA-1",
10100 "DropboxHash",
10101 "QuickXorHash"
10102 ],
10103 "Name": "local", // Name as created
10104 "Precision": 1, // Precision of timestamps in ns
10105 "Root": "/", // Path as created
10106 "String": "Local file system at /" // how the remote will appear in logs
10107 }
10108
10109 This command does not have a command line equivalent so use this in‐
10110 stead:
10111
10112 rclone rc --loopback operations/fsinfo fs=remote:
10113
10114 operations/list: List the given remote and path in JSON format
10115 This takes the following parameters
10116
10117 • fs - a remote name string e.g. "drive:"
10118
10119 • remote - a path within that remote e.g. "dir"
10120
10121 • opt - a dictionary of options to control the listing (optional)
10122
10123 • recurse - If set recurse directories
10124
10125 • noModTime - If set return modification time
10126
10127 • showEncrypted - If set show decrypted names
10128
10129 • showOrigIDs - If set show the IDs for each item if known
10130
10131 • showHash - If set return a dictionary of hashes
10132
10133 The result is
10134
10135 • list
10136
10137 • This is an array of objects as described in the lsjson command
10138
10139 See the lsjson command (https://rclone.org/commands/rclone_lsjson/) for
10140 more information on the above and examples.
10141
10142 Authentication is required for this call.
10143
10144 operations/mkdir: Make a destination directory or container
10145 This takes the following parameters
10146
10147 • fs - a remote name string e.g. "drive:"
10148
10149 • remote - a path within that remote e.g. "dir"
10150
10151 See the mkdir command (https://rclone.org/commands/rclone_mkdir/) com‐
10152 mand for more information on the above.
10153
10154 Authentication is required for this call.
10155
10156 operations/movefile: Move a file from source remote to destination remote
10157 This takes the following parameters
10158
10159 • srcFs - a remote name string e.g. "drive:" for the source
10160
10161 • srcRemote - a path within that remote e.g. "file.txt" for the source
10162
10163 • dstFs - a remote name string e.g. "drive2:" for the destination
10164
10165 • dstRemote - a path within that remote e.g. "file2.txt" for the des‐
10166 tination
10167
10168 Authentication is required for this call.
10169
10170 operations/publiclink: Create or retrieve a public link to the given file
10171 or folder.
10172 This takes the following parameters
10173
10174 • fs - a remote name string e.g. "drive:"
10175
10176 • remote - a path within that remote e.g. "dir"
10177
10178 • unlink - boolean - if set removes the link rather than adding it (op‐
10179 tional)
10180
10181 • expire - string - the expiry time of the link e.g. "1d" (optional)
10182
10183 Returns
10184
10185 • url - URL of the resource
10186
10187 See the link command (https://rclone.org/commands/rclone_link/) command
10188 for more information on the above.
10189
10190 Authentication is required for this call.
10191
10192 operations/purge: Remove a directory or container and all of its contents
10193 This takes the following parameters
10194
10195 • fs - a remote name string e.g. "drive:"
10196
10197 • remote - a path within that remote e.g. "dir"
10198
10199 See the purge command (https://rclone.org/commands/rclone_purge/) com‐
10200 mand for more information on the above.
10201
10202 Authentication is required for this call.
10203
10204 operations/rmdir: Remove an empty directory or container
10205 This takes the following parameters
10206
10207 • fs - a remote name string e.g. "drive:"
10208
10209 • remote - a path within that remote e.g. "dir"
10210
10211 See the rmdir command (https://rclone.org/commands/rclone_rmdir/) com‐
10212 mand for more information on the above.
10213
10214 Authentication is required for this call.
10215
10216 operations/rmdirs: Remove all the empty directories in the path
10217 This takes the following parameters
10218
10219 • fs - a remote name string e.g. "drive:"
10220
10221 • remote - a path within that remote e.g. "dir"
10222
10223 • leaveRoot - boolean, set to true not to delete the root
10224
10225 See the rmdirs command (https://rclone.org/commands/rclone_rmdirs/)
10226 command for more information on the above.
10227
10228 Authentication is required for this call.
10229
10230 operations/size: Count the number of bytes and files in remote
10231 This takes the following parameters
10232
10233 • fs - a remote name string e.g. "drive:path/to/dir"
10234
10235 Returns
10236
10237 • count - number of files
10238
10239 • bytes - number of bytes in those files
10240
10241 See the size command (https://rclone.org/commands/rclone_size/) command
10242 for more information on the above.
10243
10244 Authentication is required for this call.
10245
10246 operations/uploadfile: Upload file using multiform/form-data
10247 This takes the following parameters
10248
10249 • fs - a remote name string e.g. "drive:"
10250
10251 • remote - a path within that remote e.g. "dir"
10252
10253 • each part in body represents a file to be uploaded See the uploadfile
10254 command (https://rclone.org/commands/rclone_uploadfile/) command for
10255 more information on the above.
10256
10257 Authentication is required for this call.
10258
10259 options/blocks: List all the option blocks
10260 Returns - options - a list of the options block names
10261
10262 options/get: Get all the global options
10263 Returns an object where keys are option block names and values are an
10264 object with the current option values in.
10265
10266 Note that these are the global options which are unaffected by use of
10267 the _config and _filter parameters. If you wish to read the parameters
10268 set in _config then use options/config and for _filter use options/fil‐
10269 ter.
10270
10271 This shows the internal names of the option within rclone which should
10272 map to the external options very easily with a few exceptions.
10273
10274 options/local: Get the currently active config for this call
10275 Returns an object with the keys "config" and "filter". The "config"
10276 key contains the local config and the "filter" key contains the local
10277 filters.
10278
10279 Note that these are the local options specific to this rc call. If
10280 _config was not supplied then they will be the global options. Like‐
10281 wise with "_filter".
10282
10283 This call is mostly useful for seeing if _config and _filter passing is
10284 working.
10285
10286 This shows the internal names of the option within rclone which should
10287 map to the external options very easily with a few exceptions.
10288
10289 options/set: Set an option
10290 Parameters
10291
10292 • option block name containing an object with
10293
10294 • key: value
10295
10296 Repeated as often as required.
10297
10298 Only supply the options you wish to change. If an option is unknown it
10299 will be silently ignored. Not all options will have an effect when
10300 changed like this.
10301
10302 For example:
10303
10304 This sets DEBUG level logs (-vv) (these can be set by number or string)
10305
10306 rclone rc options/set --json '{"main": {"LogLevel": "DEBUG"}}'
10307 rclone rc options/set --json '{"main": {"LogLevel": 8}}'
10308
10309 And this sets INFO level logs (-v)
10310
10311 rclone rc options/set --json '{"main": {"LogLevel": "INFO"}}'
10312
10313 And this sets NOTICE level logs (normal without -v)
10314
10315 rclone rc options/set --json '{"main": {"LogLevel": "NOTICE"}}'
10316
10317 pluginsctl/addPlugin: Add a plugin using url
10318 used for adding a plugin to the webgui
10319
10320 This takes the following parameters
10321
10322 • url: http url of the github repo where the plugin is hosted
10323 (http://github.com/rclone/rclone-webui-react)
10324
10325 Eg
10326
10327 rclone rc pluginsctl/addPlugin
10328
10329 Authentication is required for this call.
10330
10331 pluginsctl/getPluginsForType: Get plugins with type criteria
10332 This shows all possible plugins by a mime type
10333
10334 This takes the following parameters
10335
10336 • type: supported mime type by a loaded plugin e.g. (video/mp4, au‐
10337 dio/mp3)
10338
10339 • pluginType: filter plugins based on their type e.g. (DASHBOARD,
10340 FILE_HANDLER, TERMINAL)
10341
10342 and returns
10343
10344 • loadedPlugins: list of current production plugins
10345
10346 • testPlugins: list of temporarily loaded development plugins, usually
10347 running on a different server.
10348
10349 Eg
10350
10351 rclone rc pluginsctl/getPluginsForType type=video/mp4
10352
10353 Authentication is required for this call.
10354
10355 pluginsctl/listPlugins: Get the list of currently loaded plugins
10356 This allows you to get the currently enabled plugins and their details.
10357
10358 This takes no parameters and returns
10359
10360 • loadedPlugins: list of current production plugins
10361
10362 • testPlugins: list of temporarily loaded development plugins, usually
10363 running on a different server.
10364
10365 Eg
10366
10367 rclone rc pluginsctl/listPlugins
10368
10369 Authentication is required for this call.
10370
10371 pluginsctl/listTestPlugins: Show currently loaded test plugins
10372 allows listing of test plugins with the rclone.test set to true in
10373 package.json of the plugin
10374
10375 This takes no parameters and returns
10376
10377 • loadedTestPlugins: list of currently available test plugins
10378
10379 Eg
10380
10381 rclone rc pluginsctl/listTestPlugins
10382
10383 Authentication is required for this call.
10384
10385 pluginsctl/removePlugin: Remove a loaded plugin
10386 This allows you to remove a plugin using it's name
10387
10388 This takes parameters
10389
10390 • name: name of the plugin in the format author/plugin_name
10391
10392 Eg
10393
10394 rclone rc pluginsctl/removePlugin name=rclone/video-plugin
10395
10396 Authentication is required for this call.
10397
10398 pluginsctl/removeTestPlugin: Remove a test plugin
10399 This allows you to remove a plugin using it's name
10400
10401 This takes the following parameters
10402
10403 • name: name of the plugin in the format author/plugin_name
10404
10405 Eg
10406
10407 rclone rc pluginsctl/removeTestPlugin name=rclone/rclone-webui-react
10408
10409 Authentication is required for this call.
10410
10411 rc/error: This returns an error
10412 This returns an error with the input as part of its error string. Use‐
10413 ful for testing error handling.
10414
10415 rc/list: List all the registered remote control commands
10416 This lists all the registered remote control commands as a JSON map in
10417 the commands response.
10418
10419 rc/noop: Echo the input to the output parameters
10420 This echoes the input parameters to the output parameters for testing
10421 purposes. It can be used to check that rclone is still alive and to
10422 check that parameter passing is working properly.
10423
10424 rc/noopauth: Echo the input to the output parameters requiring auth
10425 This echoes the input parameters to the output parameters for testing
10426 purposes. It can be used to check that rclone is still alive and to
10427 check that parameter passing is working properly.
10428
10429 Authentication is required for this call.
10430
10431 sync/copy: copy a directory from source remote to destination remote
10432 This takes the following parameters
10433
10434 • srcFs - a remote name string e.g. "drive:src" for the source
10435
10436 • dstFs - a remote name string e.g. "drive:dst" for the destination
10437
10438 • createEmptySrcDirs - create empty src directories on destination if
10439 set
10440
10441 See the copy command (https://rclone.org/commands/rclone_copy/) command
10442 for more information on the above.
10443
10444 Authentication is required for this call.
10445
10446 sync/move: move a directory from source remote to destination remote
10447 This takes the following parameters
10448
10449 • srcFs - a remote name string e.g. "drive:src" for the source
10450
10451 • dstFs - a remote name string e.g. "drive:dst" for the destination
10452
10453 • createEmptySrcDirs - create empty src directories on destination if
10454 set
10455
10456 • deleteEmptySrcDirs - delete empty src directories if set
10457
10458 See the move command (https://rclone.org/commands/rclone_move/) command
10459 for more information on the above.
10460
10461 Authentication is required for this call.
10462
10463 sync/sync: sync a directory from source remote to destination remote
10464 This takes the following parameters
10465
10466 • srcFs - a remote name string e.g. "drive:src" for the source
10467
10468 • dstFs - a remote name string e.g. "drive:dst" for the destination
10469
10470 • createEmptySrcDirs - create empty src directories on destination if
10471 set
10472
10473 See the sync command (https://rclone.org/commands/rclone_sync/) command
10474 for more information on the above.
10475
10476 Authentication is required for this call.
10477
10478 vfs/forget: Forget files or directories in the directory cache.
10479 This forgets the paths in the directory cache causing them to be
10480 re-read from the remote when needed.
10481
10482 If no paths are passed in then it will forget all the paths in the di‐
10483 rectory cache.
10484
10485 rclone rc vfs/forget
10486
10487 Otherwise pass files or dirs in as file=path or dir=path. Any parame‐
10488 ter key starting with file will forget that file and any starting with
10489 dir will forget that dir, e.g.
10490
10491 rclone rc vfs/forget file=hello file2=goodbye dir=home/junk
10492
10493 This command takes an "fs" parameter. If this parameter is not sup‐
10494 plied and if there is only one VFS in use then that VFS will be used.
10495 If there is more than one VFS in use then the "fs" parameter must be
10496 supplied.
10497
10498 vfs/list: List active VFSes.
10499 This lists the active VFSes.
10500
10501 It returns a list under the key "vfses" where the values are the VFS
10502 names that could be passed to the other VFS commands in the "fs" param‐
10503 eter.
10504
10505 vfs/poll-interval: Get the status or update the value of the poll-interval
10506 option.
10507 Without any parameter given this returns the current status of the
10508 poll-interval setting.
10509
10510 When the interval=duration parameter is set, the poll-interval value is
10511 updated and the polling function is notified. Setting interval=0 dis‐
10512 ables poll-interval.
10513
10514 rclone rc vfs/poll-interval interval=5m
10515
10516 The timeout=duration parameter can be used to specify a time to wait
10517 for the current poll function to apply the new value. If timeout is
10518 less or equal 0, which is the default, wait indefinitely.
10519
10520 The new poll-interval value will only be active when the timeout is not
10521 reached.
10522
10523 If poll-interval is updated or disabled temporarily, some changes might
10524 not get picked up by the polling function, depending on the used re‐
10525 mote.
10526
10527 This command takes an "fs" parameter. If this parameter is not sup‐
10528 plied and if there is only one VFS in use then that VFS will be used.
10529 If there is more than one VFS in use then the "fs" parameter must be
10530 supplied.
10531
10532 vfs/refresh: Refresh the directory cache.
10533 This reads the directories for the specified paths and freshens the di‐
10534 rectory cache.
10535
10536 If no paths are passed in then it will refresh the root directory.
10537
10538 rclone rc vfs/refresh
10539
10540 Otherwise pass directories in as dir=path. Any parameter key starting
10541 with dir will refresh that directory, e.g.
10542
10543 rclone rc vfs/refresh dir=home/junk dir2=data/misc
10544
10545 If the parameter recursive=true is given the whole directory tree will
10546 get refreshed. This refresh will use --fast-list if enabled.
10547
10548 This command takes an "fs" parameter. If this parameter is not sup‐
10549 plied and if there is only one VFS in use then that VFS will be used.
10550 If there is more than one VFS in use then the "fs" parameter must be
10551 supplied.
10552
10553 Accessing the remote control via HTTP
10554 Rclone implements a simple HTTP based protocol.
10555
10556 Each endpoint takes an JSON object and returns a JSON object or an er‐
10557 ror. The JSON objects are essentially a map of string names to values.
10558
10559 All calls must made using POST.
10560
10561 The input objects can be supplied using URL parameters, POST parameters
10562 or by supplying "Content-Type: application/json" and a JSON blob in the
10563 body. There are examples of these below using curl.
10564
10565 The response will be a JSON blob in the body of the response. This is
10566 formatted to be reasonably human readable.
10567
10568 Error returns
10569 If an error occurs then there will be an HTTP error status (e.g. 500)
10570 and the body of the response will contain a JSON encoded error object,
10571 e.g.
10572
10573 {
10574 "error": "Expecting string value for key \"remote\" (was float64)",
10575 "input": {
10576 "fs": "/tmp",
10577 "remote": 3
10578 },
10579 "status": 400
10580 "path": "operations/rmdir",
10581 }
10582
10583 The keys in the error response are - error - error string - input - the
10584 input parameters to the call - status - the HTTP status code - path -
10585 the path of the call
10586
10587 CORS
10588 The sever implements basic CORS support and allows all origins for
10589 that. The response to a preflight OPTIONS request will echo the re‐
10590 quested "Access-Control-Request-Headers" back.
10591
10592 Using POST with URL parameters only
10593 curl -X POST 'http://localhost:5572/rc/noop?potato=1&sausage=2'
10594
10595 Response
10596
10597 {
10598 "potato": "1",
10599 "sausage": "2"
10600 }
10601
10602 Here is what an error response looks like:
10603
10604 curl -X POST 'http://localhost:5572/rc/error?potato=1&sausage=2'
10605
10606 {
10607 "error": "arbitrary error on input map[potato:1 sausage:2]",
10608 "input": {
10609 "potato": "1",
10610 "sausage": "2"
10611 }
10612 }
10613
10614 Note that curl doesn't return errors to the shell unless you use the -f
10615 option
10616
10617 $ curl -f -X POST 'http://localhost:5572/rc/error?potato=1&sausage=2'
10618 curl: (22) The requested URL returned error: 400 Bad Request
10619 $ echo $?
10620 22
10621
10622 Using POST with a form
10623 curl --data "potato=1" --data "sausage=2" http://localhost:5572/rc/noop
10624
10625 Response
10626
10627 {
10628 "potato": "1",
10629 "sausage": "2"
10630 }
10631
10632 Note that you can combine these with URL parameters too with the POST
10633 parameters taking precedence.
10634
10635 curl --data "potato=1" --data "sausage=2" "http://localhost:5572/rc/noop?rutabaga=3&sausage=4"
10636
10637 Response
10638
10639 {
10640 "potato": "1",
10641 "rutabaga": "3",
10642 "sausage": "4"
10643 }
10644
10645 Using POST with a JSON blob
10646 curl -H "Content-Type: application/json" -X POST -d '{"potato":2,"sausage":1}' http://localhost:5572/rc/noop
10647
10648 response
10649
10650 {
10651 "password": "xyz",
10652 "username": "xyz"
10653 }
10654
10655 This can be combined with URL parameters too if required. The JSON
10656 blob takes precedence.
10657
10658 curl -H "Content-Type: application/json" -X POST -d '{"potato":2,"sausage":1}' 'http://localhost:5572/rc/noop?rutabaga=3&potato=4'
10659
10660 {
10661 "potato": 2,
10662 "rutabaga": "3",
10663 "sausage": 1
10664 }
10665
10666 Debugging rclone with pprof
10667 If you use the --rc flag this will also enable the use of the go pro‐
10668 filing tools on the same port.
10669
10670 To use these, first install go (https://golang.org/doc/install).
10671
10672 Debugging memory use
10673 To profile rclone's memory use you can run:
10674
10675 go tool pprof -web http://localhost:5572/debug/pprof/heap
10676
10677 This should open a page in your browser showing what is using what mem‐
10678 ory.
10679
10680 You can also use the -text flag to produce a textual summary
10681
10682 $ go tool pprof -text http://localhost:5572/debug/pprof/heap
10683 Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total
10684 flat flat% sum% cum cum%
10685 1024.03kB 66.62% 66.62% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.addDecoderNode
10686 513kB 33.38% 100% 513kB 33.38% net/http.newBufioWriterSize
10687 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/all.init
10688 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/serve.init
10689 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/serve/restic.init
10690 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2.init
10691 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.init
10692 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.init.0
10693 0 0% 100% 1024.03kB 66.62% main.init
10694 0 0% 100% 513kB 33.38% net/http.(*conn).readRequest
10695 0 0% 100% 513kB 33.38% net/http.(*conn).serve
10696 0 0% 100% 1024.03kB 66.62% runtime.main
10697
10698 Debugging go routine leaks
10699 Memory leaks are most often caused by go routine leaks keeping memory
10700 alive which should have been garbage collected.
10701
10702 See all active go routines using
10703
10704 curl http://localhost:5572/debug/pprof/goroutine?debug=1
10705
10706 Or go to http://localhost:5572/debug/pprof/goroutine?debug=1 in your
10707 browser.
10708
10709 Other profiles to look at
10710 You can see a summary of profiles available at http://local‐
10711 host:5572/debug/pprof/
10712
10713 Here is how to use some of them:
10714
10715 • Memory: go tool pprof http://localhost:5572/debug/pprof/heap
10716
10717 • Go routines: curl http://localhost:5572/debug/pprof/goroutine?debug=1
10718
10719 • 30-second CPU profile: go tool pprof http://localhost:5572/de‐
10720 bug/pprof/profile
10721
10722 • 5-second execution trace: wget http://localhost:5572/de‐
10723 bug/pprof/trace?seconds=5
10724
10725 • Goroutine blocking profile
10726
10727 • Enable first with: rclone rc debug/set-block-profile-rate rate=1
10728 (docs)
10729
10730 • go tool pprof http://localhost:5572/debug/pprof/block
10731
10732 • Contended mutexes:
10733
10734 • Enable first with: rclone rc debug/set-mutex-profile-fraction
10735 rate=1 (docs)
10736
10737 • go tool pprof http://localhost:5572/debug/pprof/mutex
10738
10739 See the net/http/pprof docs (https://golang.org/pkg/net/http/pprof/)
10740 for more info on how to use the profiling and for a general overview
10741 see the Go team's blog post on profiling go programs
10742 (https://blog.golang.org/profiling-go-programs).
10743
10744 The profiling hook is zero overhead unless it is used (https://stack‐
10745 overflow.com/q/26545159/164234).
10746
10748 Each cloud storage system is slightly different. Rclone attempts to
10749 provide a unified interface to them, but some underlying differences
10750 show through.
10751
10752 Features
10753 Here is an overview of the major features of each cloud storage system.
10754
10755 Name Hash ModTime Case Insen‐ Duplicate MIME Type
10756 sitive Files
10757 ──────────────────────────────────────────────────────────────────────────
10758 1Fichier Whirlpool No No Yes R
10759 Amazon MD5 No Yes No R
10760 Drive
10761 Amazon S3 MD5 Yes No No R/W
10762 Backblaze SHA1 Yes No No R/W
10763 B2
10764 Box SHA1 Yes Yes No -
10765 Citrix MD5 Yes Yes No -
10766 ShareFile
10767 Dropbox DBHASH ¹ Yes Yes No -
10768 Enterprise - Yes Yes No R/W
10769 File Fabric
10770 FTP - No No No -
10771 Google MD5 Yes No No R/W
10772 Cloud Stor‐
10773 age
10774 Google MD5 Yes No Yes R/W
10775 Drive
10776 Google Pho‐ - No No Yes R
10777 tos
10778 HDFS - Yes No No -
10779 HTTP - No No No R
10780 Hubic MD5 Yes No No R/W
10781 Jottacloud MD5 Yes Yes No R
10782 Koofr MD5 No Yes No -
10783 Mail.ru Mailru ⁶ Yes Yes No -
10784 Cloud
10785 Mega - No No Yes -
10786 Memory MD5 Yes No No -
10787 Microsoft MD5 Yes No No R/W
10788 Azure Blob
10789 Storage
10790 Microsoft SHA1 ⁵ Yes Yes No R
10791 OneDrive
10792 OpenDrive MD5 Yes Yes Partial ⁸ -
10793 OpenStack MD5 Yes No No R/W
10794 Swift
10795 pCloud MD5, SHA1 ⁷ Yes No No W
10796 premiu‐ - No Yes No R
10797 mize.me
10798 put.io CRC-32 Yes No Yes R
10799 QingStor MD5 No No No R/W
10800 Seafile - No No No -
10801 SFTP MD5, SHA1 ² Yes Depends No -
10802 SugarSync - No No No -
10803 Tardigrade - Yes No No -
10804 WebDAV MD5, SHA1 ³ Yes ⁴ Depends No -
10805 Yandex Disk MD5 Yes No No R
10806 Zoho Work‐ - No No No -
10807 Drive
10808 The local All Yes Depends No -
10809 filesystem
10810
10811 Notes
10812 ¹ Dropbox supports its own custom hash (https://www.dropbox.com/devel‐
10813 opers/reference/content-hash). This is an SHA256 sum of all the 4MB
10814 block SHA256s.
10815
10816 ² SFTP supports checksums if the same login has shell access and md5sum
10817 or sha1sum as well as echo are in the remote's PATH.
10818
10819 ³ WebDAV supports hashes when used with Owncloud and Nextcloud only.
10820
10821 ⁴ WebDAV supports modtimes when used with Owncloud and Nextcloud only.
10822
10823 ⁵ Microsoft OneDrive Personal supports SHA1 hashes, whereas OneDrive
10824 for business and SharePoint server support Microsoft's own QuickXorHash
10825 (https://docs.microsoft.com/en-us/onedrive/developer/code-snip‐
10826 pets/quickxorhash).
10827
10828 ⁶ Mail.ru uses its own modified SHA1 hash
10829
10830 ⁷ pCloud only supports SHA1 (not MD5) in its EU region
10831
10832 ⁸ Opendrive does not support creation of duplicate files using their
10833 web client interface or other stock clients, but the underlying storage
10834 platform has been determined to allow duplicate files, and it is possi‐
10835 ble to create them with rclone. It may be that this is a mistake or an
10836 unsupported feature.
10837
10838 Hash
10839 The cloud storage system supports various hash types of the objects.
10840 The hashes are used when transferring data as an integrity check and
10841 can be specifically used with the --checksum flag in syncs and in the
10842 check command.
10843
10844 To use the verify checksums when transferring between cloud storage
10845 systems they must support a common hash type.
10846
10847 ModTime
10848 The cloud storage system supports setting modification times on ob‐
10849 jects. If it does then this enables a using the modification times as
10850 part of the sync. If not then only the size will be checked by de‐
10851 fault, though the MD5SUM can be checked with the --checksum flag.
10852
10853 All cloud storage systems support some kind of date on the object and
10854 these will be set when transferring from the cloud storage system.
10855
10856 Case Insensitive
10857 If a cloud storage systems is case sensitive then it is possible to
10858 have two files which differ only in case, e.g. file.txt and FILE.txt.
10859 If a cloud storage system is case insensitive then that isn't possible.
10860
10861 This can cause problems when syncing between a case insensitive system
10862 and a case sensitive system. The symptom of this is that no matter how
10863 many times you run the sync it never completes fully.
10864
10865 The local filesystem and SFTP may or may not be case sensitive depend‐
10866 ing on OS.
10867
10868 • Windows - usually case insensitive, though case is preserved
10869
10870 • OSX - usually case insensitive, though it is possible to format case
10871 sensitive
10872
10873 • Linux - usually case sensitive, but there are case insensitive file
10874 systems (e.g. FAT formatted USB keys)
10875
10876 Most of the time this doesn't cause any problems as people tend to
10877 avoid files whose name differs only by case even on case sensitive sys‐
10878 tems.
10879
10880 Duplicate files
10881 If a cloud storage system allows duplicate files then it can have two
10882 objects with the same name.
10883
10884 This confuses rclone greatly when syncing - use the rclone dedupe com‐
10885 mand to rename or remove duplicates.
10886
10887 Restricted filenames
10888 Some cloud storage systems might have restrictions on the characters
10889 that are usable in file or directory names. When rclone detects such a
10890 name during a file upload, it will transparently replace the restricted
10891 characters with similar looking Unicode characters.
10892
10893 This process is designed to avoid ambiguous file names as much as pos‐
10894 sible and allow to move files between many cloud storage systems trans‐
10895 parently.
10896
10897 The name shown by rclone to the user or during log output will only
10898 contain a minimal set of replaced characters to ensure correct format‐
10899 ting and not necessarily the actual name used on the cloud storage.
10900
10901 This transformation is reversed when downloading a file or parsing
10902 rclone arguments. For example, when uploading a file named my
10903 file?.txt to Onedrive will be displayed as my file?.txt on the console,
10904 but stored as my file?.txt (the ? gets replaced by the similar looking
10905 ? character) to Onedrive. The reverse transformation allows to read a
10906 fileunusual/name.txt from Google Drive, by passing the name unusu‐
10907 al/name.txt (the / needs to be replaced by the similar looking /
10908 character) on the command line.
10909
10910 Default restricted characters
10911 The table below shows the characters that are replaced by default.
10912
10913 When a replacement character is found in a filename, this character
10914 will be escaped with the ‛ character to avoid ambiguous file names.
10915 (e.g. a file named ␀.txt would shown as ‛␀.txt)
10916
10917 Each cloud storage backend can use a different set of characters, which
10918 will be specified in the documentation for each backend.
10919
10920 Character Value Replacement
10921 ────────────────────────────────
10922 NUL 0x00 ␀
10923 SOH 0x01 ␁
10924 STX 0x02 ␂
10925 ETX 0x03 ␃
10926 EOT 0x04 ␄
10927 ENQ 0x05 ␅
10928 ACK 0x06 ␆
10929 BEL 0x07 ␇
10930 BS 0x08 ␈
10931 HT 0x09 ␉
10932 LF 0x0A ␊
10933 VT 0x0B ␋
10934 FF 0x0C ␌
10935 CR 0x0D ␍
10936 SO 0x0E ␎
10937 SI 0x0F ␏
10938 DLE 0x10 ␐
10939 DC1 0x11 ␑
10940 DC2 0x12 ␒
10941 DC3 0x13 ␓
10942 DC4 0x14 ␔
10943 NAK 0x15 ␕
10944 SYN 0x16 ␖
10945 ETB 0x17 ␗
10946
10947 CAN 0x18 ␘
10948 EM 0x19 ␙
10949 SUB 0x1A ␚
10950 ESC 0x1B ␛
10951 FS 0x1C ␜
10952 GS 0x1D ␝
10953 RS 0x1E ␞
10954 US 0x1F ␟
10955 / 0x2F /
10956 DEL 0x7F ␡
10957
10958 The default encoding will also encode these file names as they are
10959 problematic with many cloud storage systems.
10960
10961 File name Replacement
10962 ────────────────────────
10963 . .
10964 .. ..
10965
10966 Invalid UTF-8 bytes
10967 Some backends only support a sequence of well formed UTF-8 bytes as
10968 file or directory names.
10969
10970 In this case all invalid UTF-8 bytes will be replaced with a quoted
10971 representation of the byte value to allow uploading a file to such a
10972 backend. For example, the invalid byte 0xFE will be encoded as ‛FE.
10973
10974 A common source of invalid UTF-8 bytes are local filesystems, that
10975 store names in a different encoding than UTF-8 or UTF-16, like latin1.
10976 See the local filenames (https://rclone.org/local/#filenames) section
10977 for details.
10978
10979 Encoding option
10980 Most backends have an encoding options, specified as a flag --back‐
10981 end-encoding where backend is the name of the backend, or as a config
10982 parameter encoding (you'll need to select the Advanced config in rclone
10983 config to see it).
10984
10985 This will have default value which encodes and decodes characters in
10986 such a way as to preserve the maximum number of characters (see above).
10987
10988 However this can be incorrect in some scenarios, for example if you
10989 have a Windows file system with characters such as * and ? that you
10990 want to remain as those characters on the remote rather than being
10991 translated to * and ?.
10992
10993 The --backend-encoding flags allow you to change that. You can disable
10994 the encoding completely with --backend-encoding None or set encoding =
10995 None in the config file.
10996
10997 Encoding takes a comma separated list of encodings. You can see the
10998 list of all available characters by passing an invalid value to this
10999 flag, e.g. --local-encoding "help" and rclone help flags encoding will
11000 show you the defaults for the backends.
11001
11002 Encoding Characters
11003 ───────────────────────────────────────────
11004 Asterisk *
11005 BackQuote `
11006 BackSlash \
11007 Colon :
11008 CrLf CR 0x0D, LF 0x0A
11009 Ctl All control characters
11010 0x00-0x1F
11011 Del DEL 0x7F
11012 Dollar $
11013 Dot .
11014 DoubleQuote "
11015 Hash #
11016 InvalidUtf8 An invalid UTF-8 character
11017 (e.g. latin1)
11018 LeftCrLfHtVt CR 0x0D, LF 0x0A,HT 0x09,
11019 VT 0x0B on the left of a
11020 string
11021 LeftPeriod . on the left of a string
11022 LeftSpace SPACE on the left of a
11023 string
11024 LeftTilde ~ on the left of a string
11025 LtGt <, >
11026 None No characters are encoded
11027 Percent %
11028 Pipe |
11029 Question ?
11030 RightCrLfHtVt CR 0x0D, LF 0x0A, HT 0x09,
11031 VT 0x0B on the right of a
11032 string
11033 RightPeriod . on the right of a string
11034 RightSpace SPACE on the right of a
11035 string
11036 SingleQuote '
11037 Slash /
11038
11039 To take a specific example, the FTP backend's default encoding is
11040
11041 --ftp-encoding "Slash,Del,Ctl,RightSpace,Dot"
11042
11043 However, let's say the FTP server is running on Windows and can't have
11044 any of the invalid Windows characters in file names. You are backing
11045 up Linux servers to this FTP server which do have those characters in
11046 file names. So you would add the Windows set which are
11047
11048 Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot
11049
11050 to the existing ones, giving:
11051
11052 Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot,Del,RightSpace
11053
11054 This can be specified using the --ftp-encoding flag or using an encod‐
11055 ing parameter in the config file.
11056
11057 Or let's say you have a Windows server but you want to preserve * and
11058 ?, you would then have this as the encoding (the Windows encoding mi‐
11059 nus Asterisk and Question).
11060
11061 Slash,LtGt,DoubleQuote,Colon,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot
11062
11063 This can be specified using the --local-encoding flag or using an en‐
11064 coding parameter in the config file.
11065
11066 MIME Type
11067 MIME types (also known as media types) classify types of documents us‐
11068 ing a simple text classification, e.g. text/html or application/pdf.
11069
11070 Some cloud storage systems support reading (R) the MIME type of objects
11071 and some support writing (W) the MIME type of objects.
11072
11073 The MIME type can be important if you are serving files directly to
11074 HTTP from the storage system.
11075
11076 If you are copying from a remote which supports reading (R) to a remote
11077 which supports writing (W) then rclone will preserve the MIME types.
11078 Otherwise they will be guessed from the extension, or the remote itself
11079 may assign the MIME type.
11080
11081 Optional Features
11082 All rclone remotes support a base command set. Other features depend
11083 upon backend specific capabilities.
11084
11085 Name Purge Copy Move DirMove CleanUp ListR StreamU‐ LinkShar‐ About Empty‐
11086 pload ing Dir
11087 ───────────────────────────────────────────────────────────────────────────────────────────────────
11088 1Fichi‐ No Yes Yes No No No No Yes No Yes
11089 er
11090 Amazon Yes No Yes Yes No No No No No Yes
11091 Drive
11092 Amazon No Yes No No Yes Yes Yes Yes No No
11093 S3
11094 Back‐ No Yes No No Yes Yes Yes Yes No No
11095 blaze
11096 B2
11097 Box Yes Yes Yes Yes Yes ‡‡ No Yes Yes Yes Yes
11098 Citrix Yes Yes Yes Yes No No Yes No No Yes
11099 Share‐
11100 File
11101 Dropbox Yes Yes Yes Yes No No Yes Yes Yes Yes
11102 Enter‐ Yes Yes Yes Yes Yes No No No No Yes
11103 prise
11104 File
11105 Fabric
11106 FTP No No Yes Yes No No Yes No No Yes
11107 Google Yes Yes No No No Yes Yes No No No
11108 Cloud
11109 Storage
11110 Google Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
11111 Drive
11112 Google No No No No No No No No No No
11113 Photos
11114 HDFS Yes No No No No No Yes No Yes Yes
11115 HTTP No No No No No No No No No Yes
11116 Hubic Yes † Yes No No No Yes Yes No Yes No
11117 Jotta‐ Yes Yes Yes Yes Yes Yes No Yes Yes Yes
11118 cloud
11119 Mail.ru Yes Yes Yes Yes Yes No No Yes Yes Yes
11120 Cloud
11121 Mega Yes No Yes Yes Yes No No Yes Yes Yes
11122 Memory No Yes No No No Yes Yes No No No
11123 Micro‐ Yes Yes No No No Yes Yes No No No
11124 soft
11125 Azure
11126 Blob
11127 Storage
11128 Micro‐ Yes Yes Yes Yes Yes No No Yes Yes Yes
11129 soft
11130 OneDrive
11131 Open‐ Yes Yes Yes Yes No No No No No Yes
11132 Drive
11133 Open‐ Yes † Yes No No No Yes Yes No Yes No
11134 Stack
11135 Swift
11136 pCloud Yes Yes Yes Yes Yes No No Yes Yes Yes
11137 premiu‐ Yes No Yes Yes No No No Yes Yes Yes
11138 mize.me
11139 put.io Yes No Yes Yes Yes No Yes No Yes Yes
11140 QingStor No Yes No No Yes Yes No No No No
11141 Seafile Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
11142 SFTP No No Yes Yes No No Yes No Yes Yes
11143 Sug‐ Yes Yes Yes Yes No No Yes Yes No Yes
11144 arSync
11145 Tardi‐ Yes † No No No No Yes Yes No No No
11146 grade
11147 WebDAV Yes Yes Yes Yes No No Yes ‡ No Yes Yes
11148 Yandex Yes Yes Yes Yes Yes No Yes Yes Yes Yes
11149 Disk
11150 Zoho Yes Yes Yes Yes No No No No Yes Yes
11151 Work‐
11152 Drive
11153
11154
11155
11156
11157 The lo‐ Yes No Yes Yes No No Yes No Yes Yes
11158 cal
11159 filesys‐
11160 tem
11161
11162 Purge
11163 This deletes a directory quicker than just deleting all the files in
11164 the directory.
11165
11166 † Note Swift, Hubic, and Tardigrade implement this in order to delete
11167 directory markers but they don't actually have a quicker way of delet‐
11168 ing files other than deleting them individually.
11169
11170 ‡ StreamUpload is not supported with Nextcloud
11171
11172 Copy
11173 Used when copying an object to and from the same remote. This known as
11174 a server-side copy so you can copy a file without downloading it and
11175 uploading it again. It is used if you use rclone copy or rclone move
11176 if the remote doesn't support Move directly.
11177
11178 If the server doesn't support Copy directly then for copy operations
11179 the file is downloaded then re-uploaded.
11180
11181 Move
11182 Used when moving/renaming an object on the same remote. This is known
11183 as a server-side move of a file. This is used in rclone move if the
11184 server doesn't support DirMove.
11185
11186 If the server isn't capable of Move then rclone simulates it with Copy
11187 then delete. If the server doesn't support Copy then rclone will down‐
11188 load the file and re-upload it.
11189
11190 DirMove
11191 This is used to implement rclone move to move a directory if possible.
11192 If it isn't then it will use Move on each file (which falls back to
11193 Copy then download and upload - see Move section).
11194
11195 CleanUp
11196 This is used for emptying the trash for a remote by rclone cleanup.
11197
11198 If the server can't do CleanUp then rclone cleanup will return an er‐
11199 ror.
11200
11201 ‡‡ Note that while Box implements this it has to delete every file in‐
11202 dividually so it will be slower than emptying the trash via the WebUI
11203
11204 ListR
11205 The remote supports a recursive list to list all the contents beneath a
11206 directory quickly. This enables the --fast-list flag to work. See the
11207 rclone docs (https://rclone.org/docs/#fast-list) for more details.
11208
11209 StreamUpload
11210 Some remotes allow files to be uploaded without knowing the file size
11211 in advance. This allows certain operations to work without spooling
11212 the file to local disk first, e.g. rclone rcat.
11213
11214 LinkSharing
11215 Sets the necessary permissions on a file or folder and prints a link
11216 that allows others to access them, even if they don't have an account
11217 on the particular cloud provider.
11218
11219 About
11220 Rclone about prints quota information for a remote. Typical output in‐
11221 cludes bytes used, free, quota and in trash.
11222
11223 If a remote lacks about capability rclone about remote:returns an er‐
11224 ror.
11225
11226 Backends without about capability cannot determine free space for an
11227 rclone mount, or use policy mfs (most free space) as a member of an
11228 rclone union remote.
11229
11230 See rclone about command (https://rclone.org/commands/rclone_about/)
11231
11232 EmptyDir
11233 The remote supports empty directories. See Limitations
11234 (https://rclone.org/bugs/#limitations) for details. Most Object/Bucket
11235 based remotes do not support this.
11236
11238 This describes the global flags available to every rclone command split
11239 into two groups, non backend and backend flags.
11240
11241 Non Backend Flags
11242 These flags are available for every command.
11243
11244 --ask-password Allow prompt for password for encrypted configuration. (default true)
11245 --auto-confirm If enabled, do not request console confirmation.
11246 --backup-dir string Make backups into hierarchy based in DIR.
11247 --bind string Local address to bind to for outgoing connections, IPv4, IPv6 or name.
11248 --buffer-size SizeSuffix In memory buffer size when reading files for each --transfer. (default 16M)
11249 --bwlimit BwTimetable Bandwidth limit in kBytes/s, or use suffix b|k|M|G or a full timetable.
11250 --bwlimit-file BwTimetable Bandwidth limit per file in kBytes/s, or use suffix b|k|M|G or a full timetable.
11251 --ca-cert string CA certificate used to verify servers
11252 --cache-dir string Directory rclone will use for caching. (default "$HOME/.cache/rclone")
11253 --check-first Do all the checks before starting transfers.
11254 --checkers int Number of checkers to run in parallel. (default 8)
11255 -c, --checksum Skip based on checksum (if available) & size, not mod-time & size
11256 --client-cert string Client SSL certificate (PEM) for mutual TLS auth
11257 --client-key string Client SSL private key (PEM) for mutual TLS auth
11258 --compare-dest stringArray Include additional comma separated server-side paths during comparison.
11259 --config string Config file. (default "$HOME/.config/rclone/rclone.conf")
11260 --contimeout duration Connect timeout (default 1m0s)
11261 --copy-dest stringArray Implies --compare-dest but also copies files from paths into destination.
11262 --cpuprofile string Write cpu profile to file
11263 --cutoff-mode string Mode to stop transfers when reaching the max transfer limit HARD|SOFT|CAUTIOUS (default "HARD")
11264 --delete-after When synchronizing, delete files on destination after transferring (default)
11265 --delete-before When synchronizing, delete files on destination before transferring
11266 --delete-during When synchronizing, delete files during transfer
11267 --delete-excluded Delete files on dest excluded from sync
11268 --disable string Disable a comma separated list of features. Use help to see a list.
11269 -n, --dry-run Do a trial run with no permanent changes
11270 --dscp string Set DSCP value to connections. Can be value or names, eg. CS1, LE, DF, AF21.
11271 --dump DumpFlags List of items to dump from: headers,bodies,requests,responses,auth,filters,goroutines,openfiles
11272 --dump-bodies Dump HTTP headers and bodies - may contain sensitive info
11273 --dump-headers Dump HTTP headers - may contain sensitive info
11274 --error-on-no-transfer Sets exit code 9 if no files are transferred, useful in scripts
11275 --exclude stringArray Exclude files matching pattern
11276 --exclude-from stringArray Read exclude patterns from file (use - to read from stdin)
11277 --exclude-if-present string Exclude directories if filename is present
11278 --expect-continue-timeout duration Timeout when using expect / 100-continue in HTTP (default 1s)
11279 --fast-list Use recursive list if available. Uses more memory but fewer transactions.
11280 --files-from stringArray Read list of source-file names from file (use - to read from stdin)
11281 --files-from-raw stringArray Read list of source-file names from file without any processing of lines (use - to read from stdin)
11282 -f, --filter stringArray Add a file-filtering rule
11283 --filter-from stringArray Read filtering patterns from a file (use - to read from stdin)
11284 --fs-cache-expire-duration duration cache remotes for this long (0 to disable caching) (default 5m0s)
11285 --fs-cache-expire-interval duration interval to check for expired remotes (default 1m0s)
11286 --header stringArray Set HTTP header for all transactions
11287 --header-download stringArray Set HTTP header for download transactions
11288 --header-upload stringArray Set HTTP header for upload transactions
11289 --ignore-case Ignore case in filters (case insensitive)
11290 --ignore-case-sync Ignore case when synchronizing
11291 --ignore-checksum Skip post copy check of checksums.
11292 --ignore-errors delete even if there are I/O errors
11293 --ignore-existing Skip all files that exist on destination
11294 --ignore-size Ignore size when skipping use mod-time or checksum.
11295 -I, --ignore-times Don't skip files that match size and time - transfer all files
11296 --immutable Do not modify files. Fail if existing files have been modified.
11297 --include stringArray Include files matching pattern
11298 --include-from stringArray Read include patterns from file (use - to read from stdin)
11299 -i, --interactive Enable interactive mode
11300 --log-file string Log everything to this file
11301 --log-format string Comma separated list of log format options (default "date,time")
11302 --log-level string Log level DEBUG|INFO|NOTICE|ERROR (default "NOTICE")
11303 --log-systemd Activate systemd integration for the logger.
11304 --low-level-retries int Number of low level retries to do. (default 10)
11305 --max-age Duration Only transfer files younger than this in s or suffix ms|s|m|h|d|w|M|y (default off)
11306 --max-backlog int Maximum number of objects in sync or check backlog. (default 10000)
11307 --max-delete int When synchronizing, limit the number of deletes (default -1)
11308 --max-depth int If set limits the recursion depth to this. (default -1)
11309 --max-duration duration Maximum duration rclone will transfer data for.
11310 --max-size SizeSuffix Only transfer files smaller than this in k or suffix b|k|M|G (default off)
11311 --max-stats-groups int Maximum number of stats groups to keep in memory. On max oldest is discarded. (default 1000)
11312 --max-transfer SizeSuffix Maximum size of data to transfer. (default off)
11313 --memprofile string Write memory profile to file
11314 --min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
11315 --min-size SizeSuffix Only transfer files bigger than this in k or suffix b|k|M|G (default off)
11316 --modify-window duration Max time diff to be considered the same (default 1ns)
11317 --multi-thread-cutoff SizeSuffix Use multi-thread downloads for files above this size. (default 250M)
11318 --multi-thread-streams int Max number of streams to use for multi-thread downloads. (default 4)
11319 --no-check-certificate Do not verify the server SSL certificate. Insecure.
11320 --no-check-dest Don't check the destination, copy regardless.
11321 --no-console Hide console window. Supported on Windows only.
11322 --no-gzip-encoding Don't set Accept-Encoding: gzip.
11323 --no-traverse Don't traverse destination file system on copy.
11324 --no-unicode-normalization Don't normalize unicode characters in filenames.
11325 --no-update-modtime Don't update destination mod-time if files identical.
11326 --order-by string Instructions on how to order the transfers, e.g. 'size,descending'
11327 --password-command SpaceSepList Command for supplying password for encrypted configuration.
11328 -P, --progress Show progress during transfer.
11329 --progress-terminal-title Show progress on the terminal title. Requires -P/--progress.
11330 -q, --quiet Print as little stuff as possible
11331 --rc Enable the remote control server.
11332 --rc-addr string IPaddress:Port or :Port to bind server to. (default "localhost:5572")
11333 --rc-allow-origin string Set the allowed origin for CORS.
11334 --rc-baseurl string Prefix for URLs - leave blank for root.
11335 --rc-cert string SSL PEM key (concatenation of certificate and CA certificate)
11336 --rc-client-ca string Client certificate authority to verify clients with
11337 --rc-enable-metrics Enable prometheus metrics on /metrics
11338 --rc-files string Path to local files to serve on the HTTP server.
11339 --rc-htpasswd string htpasswd file - if not provided no authentication is done
11340 --rc-job-expire-duration duration expire finished async jobs older than this value (default 1m0s)
11341 --rc-job-expire-interval duration interval to check for expired async jobs (default 10s)
11342 --rc-key string SSL PEM Private key
11343 --rc-max-header-bytes int Maximum size of request header (default 4096)
11344 --rc-no-auth Don't require auth for certain methods.
11345 --rc-pass string Password for authentication.
11346 --rc-realm string realm for authentication (default "rclone")
11347 --rc-serve Enable the serving of remote objects.
11348 --rc-server-read-timeout duration Timeout for server reading data (default 1h0m0s)
11349 --rc-server-write-timeout duration Timeout for server writing data (default 1h0m0s)
11350 --rc-template string User Specified Template.
11351 --rc-user string User name for authentication.
11352 --rc-web-fetch-url string URL to fetch the releases for webgui. (default "https://api.github.com/repos/rclone/rclone-webui-react/releases/latest")
11353 --rc-web-gui Launch WebGUI on localhost
11354 --rc-web-gui-force-update Force update to latest version of web gui
11355 --rc-web-gui-no-open-browser Don't open the browser automatically
11356 --rc-web-gui-update Check and update to latest version of web gui
11357 --refresh-times Refresh the modtime of remote files.
11358 --retries int Retry operations this many times if they fail (default 3)
11359 --retries-sleep duration Interval between retrying operations if they fail, e.g 500ms, 60s, 5m. (0 to disable)
11360 --size-only Skip based on size only, not mod-time or checksum
11361 --stats duration Interval between printing stats, e.g 500ms, 60s, 5m. (0 to disable) (default 1m0s)
11362 --stats-file-name-length int Max file name length in stats. 0 for no limit (default 45)
11363 --stats-log-level string Log level to show --stats output DEBUG|INFO|NOTICE|ERROR (default "INFO")
11364 --stats-one-line Make the stats fit on one line.
11365 --stats-one-line-date Enables --stats-one-line and add current date/time prefix.
11366 --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
11367 --stats-unit string Show data rate in stats as either 'bits' or 'bytes'/s (default "bytes")
11368 --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)
11369 --suffix string Suffix to add to changed files.
11370 --suffix-keep-extension Preserve the extension when using --suffix.
11371 --syslog Use Syslog for logging
11372 --syslog-facility string Facility for syslog, e.g. KERN,USER,... (default "DAEMON")
11373 --timeout duration IO idle timeout (default 5m0s)
11374 --tpslimit float Limit HTTP transactions per second to this.
11375 --tpslimit-burst int Max burst of transactions for --tpslimit. (default 1)
11376 --track-renames When synchronizing, track file renames and do a server-side move if possible
11377 --track-renames-strategy string Strategies to use when synchronizing using track-renames hash|modtime|leaf (default "hash")
11378 --transfers int Number of file transfers to run in parallel. (default 4)
11379 -u, --update Skip files that are newer on the destination.
11380 --use-cookies Enable session cookiejar.
11381 --use-json-log Use json log format.
11382 --use-mmap Use mmap allocator (see docs).
11383 --use-server-modtime Use server modified time instead of object metadata
11384 --user-agent string Set the user-agent to a specified string. The default is rclone/ version (default "rclone/v1.55.1")
11385 -v, --verbose count Print lots more stuff (repeat for more)
11386
11387 Backend Flags
11388 These flags are available for every command. They control the backends
11389 and may be set in the config file.
11390
11391 --acd-auth-url string Auth server URL.
11392 --acd-client-id string OAuth Client Id
11393 --acd-client-secret string OAuth Client Secret
11394 --acd-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
11395 --acd-templink-threshold SizeSuffix Files >= this size will be downloaded via their tempLink. (default 9G)
11396 --acd-token string OAuth Access Token as a JSON blob.
11397 --acd-token-url string Token server url.
11398 --acd-upload-wait-per-gb Duration Additional time per GB to wait after a failed complete upload to see if it appears. (default 3m0s)
11399 --alias-remote string Remote or path to alias.
11400 --azureblob-access-tier string Access tier of blob: hot, cool or archive.
11401 --azureblob-account string Storage Account Name (leave blank to use SAS URL or Emulator)
11402 --azureblob-archive-tier-delete Delete archive tier blobs before overwriting.
11403 --azureblob-chunk-size SizeSuffix Upload chunk size (<= 100MB). (default 4M)
11404 --azureblob-disable-checksum Don't store MD5 checksum with object metadata.
11405 --azureblob-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8)
11406 --azureblob-endpoint string Endpoint for the service
11407 --azureblob-key string Storage Account Key (leave blank to use SAS URL or Emulator)
11408 --azureblob-list-chunk int Size of blob list. (default 5000)
11409 --azureblob-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed. (default 1m0s)
11410 --azureblob-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool.
11411 --azureblob-msi-client-id string Object ID of the user-assigned MSI to use, if any. Leave blank if msi_object_id or msi_mi_res_id specified.
11412 --azureblob-msi-mi-res-id string Azure resource ID of the user-assigned MSI to use, if any. Leave blank if msi_client_id or msi_object_id specified.
11413 --azureblob-msi-object-id string Object ID of the user-assigned MSI to use, if any. Leave blank if msi_client_id or msi_mi_res_id specified.
11414 --azureblob-public-access string Public access level of a container: blob, container.
11415 --azureblob-sas-url string SAS URL for container level access only
11416 --azureblob-service-principal-file string Path to file containing credentials for use with a service principal.
11417 --azureblob-upload-cutoff string Cutoff for switching to chunked upload (<= 256MB). (Deprecated)
11418 --azureblob-use-emulator Uses local storage emulator if provided as 'true' (leave blank if using real azure storage endpoint)
11419 --azureblob-use-msi Use a managed service identity to authenticate (only works in Azure)
11420 --b2-account string Account ID or Application Key ID
11421 --b2-chunk-size SizeSuffix Upload chunk size. Must fit in memory. (default 96M)
11422 --b2-copy-cutoff SizeSuffix Cutoff for switching to multipart copy (default 4G)
11423 --b2-disable-checksum Disable checksums for large (> upload cutoff) files
11424 --b2-download-auth-duration Duration Time before the authorization token will expire in s or suffix ms|s|m|h|d. (default 1w)
11425 --b2-download-url string Custom endpoint for downloads.
11426 --b2-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
11427 --b2-endpoint string Endpoint for the service.
11428 --b2-hard-delete Permanently delete files on remote removal, otherwise hide files.
11429 --b2-key string Application Key
11430 --b2-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed. (default 1m0s)
11431 --b2-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool.
11432 --b2-test-mode string A flag string for X-Bz-Test-Mode header for debugging.
11433 --b2-upload-cutoff SizeSuffix Cutoff for switching to chunked upload. (default 200M)
11434 --b2-versions Include old versions in directory listings.
11435 --box-access-token string Box App Primary Access Token
11436 --box-auth-url string Auth server URL.
11437 --box-box-config-file string Box App config.json location
11438 --box-box-sub-type string (default "user")
11439 --box-client-id string OAuth Client Id
11440 --box-client-secret string OAuth Client Secret
11441 --box-commit-retries int Max number of times to try committing a multipart file. (default 100)
11442 --box-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot)
11443 --box-root-folder-id string Fill in for rclone to use a non root folder as its starting point.
11444 --box-token string OAuth Access Token as a JSON blob.
11445 --box-token-url string Token server url.
11446 --box-upload-cutoff SizeSuffix Cutoff for switching to multipart upload (>= 50MB). (default 50M)
11447 --cache-chunk-clean-interval Duration How often should the cache perform cleanups of the chunk storage. (default 1m0s)
11448 --cache-chunk-no-memory Disable the in-memory cache for storing chunks during streaming.
11449 --cache-chunk-path string Directory to cache chunk files. (default "$HOME/.cache/rclone/cache-backend")
11450 --cache-chunk-size SizeSuffix The size of a chunk (partial file data). (default 5M)
11451 --cache-chunk-total-size SizeSuffix The total size that the chunks can take up on the local disk. (default 10G)
11452 --cache-db-path string Directory to store file structure metadata DB. (default "$HOME/.cache/rclone/cache-backend")
11453 --cache-db-purge Clear all the cached data for this remote on start.
11454 --cache-db-wait-time Duration How long to wait for the DB to be available - 0 is unlimited (default 1s)
11455 --cache-info-age Duration How long to cache file structure information (directory listings, file size, times, etc.). (default 6h0m0s)
11456 --cache-plex-insecure string Skip all certificate verification when connecting to the Plex server
11457 --cache-plex-password string The password of the Plex user (obscured)
11458 --cache-plex-url string The URL of the Plex server
11459 --cache-plex-username string The username of the Plex user
11460 --cache-read-retries int How many times to retry a read from a cache storage. (default 10)
11461 --cache-remote string Remote to cache.
11462 --cache-rps int Limits the number of requests per second to the source FS (-1 to disable) (default -1)
11463 --cache-tmp-upload-path string Directory to keep temporary files until they are uploaded.
11464 --cache-tmp-wait-time Duration How long should files be stored in local cache before being uploaded (default 15s)
11465 --cache-workers int How many workers should run in parallel to download chunks. (default 4)
11466 --cache-writes Cache file data on writes through the FS
11467 --chunker-chunk-size SizeSuffix Files larger than chunk size will be split in chunks. (default 2G)
11468 --chunker-fail-hard Choose how chunker should handle files with missing or invalid chunks.
11469 --chunker-hash-type string Choose how chunker handles hash sums. All modes but "none" require metadata. (default "md5")
11470 --chunker-remote string Remote to chunk/unchunk.
11471 --compress-level int GZIP compression level (-2 to 9). (default -1)
11472 --compress-mode string Compression mode. (default "gzip")
11473 --compress-ram-cache-limit SizeSuffix Some remotes don't allow the upload of files with unknown size. (default 20M)
11474 --compress-remote string Remote to compress.
11475 -L, --copy-links Follow symlinks and copy the pointed to item.
11476 --crypt-directory-name-encryption Option to either encrypt directory names or leave them intact. (default true)
11477 --crypt-filename-encryption string How to encrypt the filenames. (default "standard")
11478 --crypt-no-data-encryption Option to either encrypt file data or leave it unencrypted.
11479 --crypt-password string Password or pass phrase for encryption. (obscured)
11480 --crypt-password2 string Password or pass phrase for salt. Optional but recommended. (obscured)
11481 --crypt-remote string Remote to encrypt/decrypt.
11482 --crypt-server-side-across-configs Allow server-side operations (e.g. copy) to work across different crypt configs.
11483 --crypt-show-mapping For all files listed show how the names encrypt.
11484 --drive-acknowledge-abuse Set to allow files which return cannotDownloadAbusiveFile to be downloaded.
11485 --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.
11486 --drive-auth-owner-only Only consider files owned by the authenticated user.
11487 --drive-auth-url string Auth server URL.
11488 --drive-chunk-size SizeSuffix Upload chunk size. Must a power of 2 >= 256k. (default 8M)
11489 --drive-client-id string Google Application Client Id
11490 --drive-client-secret string OAuth Client Secret
11491 --drive-disable-http2 Disable drive using http2 (default true)
11492 --drive-encoding MultiEncoder This sets the encoding for the backend. (default InvalidUtf8)
11493 --drive-export-formats string Comma separated list of preferred formats for downloading Google docs. (default "docx,xlsx,pptx,svg")
11494 --drive-formats string Deprecated: see export_formats
11495 --drive-impersonate string Impersonate this user when using a service account.
11496 --drive-import-formats string Comma separated list of preferred formats for uploading Google docs.
11497 --drive-keep-revision-forever Keep new head revision of each file forever.
11498 --drive-list-chunk int Size of listing chunk 100-1000. 0 to disable. (default 1000)
11499 --drive-pacer-burst int Number of API calls to allow without sleeping. (default 100)
11500 --drive-pacer-min-sleep Duration Minimum time to sleep between API calls. (default 100ms)
11501 --drive-root-folder-id string ID of the root folder
11502 --drive-scope string Scope that rclone should use when requesting access from drive.
11503 --drive-server-side-across-configs Allow server-side operations (e.g. copy) to work across different drive configs.
11504 --drive-service-account-credentials string Service Account Credentials JSON blob
11505 --drive-service-account-file string Service Account Credentials JSON file path
11506 --drive-shared-with-me Only show files that are shared with me.
11507 --drive-size-as-quota Show sizes as storage quota usage, not actual size.
11508 --drive-skip-checksum-gphotos Skip MD5 checksum on Google photos and videos only.
11509 --drive-skip-gdocs Skip google documents in all listings.
11510 --drive-skip-shortcuts If set skip shortcut files
11511 --drive-starred-only Only show files that are starred.
11512 --drive-stop-on-download-limit Make download limit errors be fatal
11513 --drive-stop-on-upload-limit Make upload limit errors be fatal
11514 --drive-team-drive string ID of the Shared Drive (Team Drive)
11515 --drive-token string OAuth Access Token as a JSON blob.
11516 --drive-token-url string Token server url.
11517 --drive-trashed-only Only show files that are in the trash.
11518 --drive-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 8M)
11519 --drive-use-created-date Use file created date instead of modified date.,
11520 --drive-use-shared-date Use date file was shared instead of modified date.
11521 --drive-use-trash Send files to the trash instead of deleting permanently. (default true)
11522 --drive-v2-download-min-size SizeSuffix If Object's are greater, use drive v2 API to download. (default off)
11523 --dropbox-auth-url string Auth server URL.
11524 --dropbox-chunk-size SizeSuffix Upload chunk size. (< 150M). (default 48M)
11525 --dropbox-client-id string OAuth Client Id
11526 --dropbox-client-secret string OAuth Client Secret
11527 --dropbox-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot)
11528 --dropbox-impersonate string Impersonate this user when using a business account.
11529 --dropbox-shared-files Instructs rclone to work on individual shared files.
11530 --dropbox-shared-folders Instructs rclone to work on shared folders.
11531 --dropbox-token string OAuth Access Token as a JSON blob.
11532 --dropbox-token-url string Token server url.
11533 --fichier-api-key string Your API Key, get it from https://1fichier.com/console/params.pl
11534 --fichier-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,SingleQuote,BackQuote,Dollar,BackSlash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot)
11535 --fichier-shared-folder string If you want to download a shared folder, add this parameter
11536 --filefabric-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,InvalidUtf8,Dot)
11537 --filefabric-permanent-token string Permanent Authentication Token
11538 --filefabric-root-folder-id string ID of the root folder
11539 --filefabric-token string Session Token
11540 --filefabric-token-expiry string Token expiry time
11541 --filefabric-url string URL of the Enterprise File Fabric to connect to
11542 --filefabric-version string Version read from the file fabric
11543 --ftp-close-timeout Duration Maximum time to wait for a response to close. (default 1m0s)
11544 --ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
11545 --ftp-disable-epsv Disable using EPSV even if server advertises support
11546 --ftp-disable-mlsd Disable using MLSD even if server advertises support
11547 --ftp-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,RightSpace,Dot)
11548 --ftp-explicit-tls Use Explicit FTPS (FTP over TLS)
11549 --ftp-host string FTP host to connect to
11550 --ftp-idle-timeout Duration Max time before closing idle connections (default 1m0s)
11551 --ftp-no-check-certificate Do not verify the TLS certificate of the server
11552 --ftp-pass string FTP password (obscured)
11553 --ftp-port string FTP port, leave blank to use default (21)
11554 --ftp-tls Use Implicit FTPS (FTP over TLS)
11555 --ftp-user string FTP username, leave blank for current username, $USER
11556 --gcs-anonymous Access public buckets and objects without credentials
11557 --gcs-auth-url string Auth server URL.
11558 --gcs-bucket-acl string Access Control List for new buckets.
11559 --gcs-bucket-policy-only Access checks should use bucket-level IAM policies.
11560 --gcs-client-id string OAuth Client Id
11561 --gcs-client-secret string OAuth Client Secret
11562 --gcs-encoding MultiEncoder This sets the encoding for the backend. (default Slash,CrLf,InvalidUtf8,Dot)
11563 --gcs-location string Location for the newly created buckets.
11564 --gcs-object-acl string Access Control List for new objects.
11565 --gcs-project-number string Project number.
11566 --gcs-service-account-file string Service Account Credentials JSON file path
11567 --gcs-storage-class string The storage class to use when storing objects in Google Cloud Storage.
11568 --gcs-token string OAuth Access Token as a JSON blob.
11569 --gcs-token-url string Token server url.
11570 --gphotos-auth-url string Auth server URL.
11571 --gphotos-client-id string OAuth Client Id
11572 --gphotos-client-secret string OAuth Client Secret
11573 --gphotos-include-archived Also view and download archived media.
11574 --gphotos-read-only Set to make the Google Photos backend read only.
11575 --gphotos-read-size Set to read the size of media items.
11576 --gphotos-start-year int Year limits the photos to be downloaded to those which are uploaded after the given year (default 2000)
11577 --gphotos-token string OAuth Access Token as a JSON blob.
11578 --gphotos-token-url string Token server url.
11579 --hdfs-data-transfer-protection string Kerberos data transfer protection: authentication|integrity|privacy
11580 --hdfs-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Colon,Del,Ctl,InvalidUtf8,Dot)
11581 --hdfs-namenode string hadoop name node and port
11582 --hdfs-service-principal-name string Kerberos service principal name for the namenode
11583 --hdfs-username string hadoop user name
11584 --http-headers CommaSepList Set HTTP headers for all transactions
11585 --http-no-head Don't use HEAD requests to find file sizes in dir listing
11586 --http-no-slash Set this if the site doesn't end directories with /
11587 --http-url string URL of http host to connect to
11588 --hubic-auth-url string Auth server URL.
11589 --hubic-chunk-size SizeSuffix Above this size files will be chunked into a _segments container. (default 5G)
11590 --hubic-client-id string OAuth Client Id
11591 --hubic-client-secret string OAuth Client Secret
11592 --hubic-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8)
11593 --hubic-no-chunk Don't chunk files during streaming upload.
11594 --hubic-token string OAuth Access Token as a JSON blob.
11595 --hubic-token-url string Token server url.
11596 --jottacloud-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Del,Ctl,InvalidUtf8,Dot)
11597 --jottacloud-hard-delete Delete files permanently rather than putting them into the trash.
11598 --jottacloud-md5-memory-limit SizeSuffix Files bigger than this will be cached on disk to calculate the MD5 if required. (default 10M)
11599 --jottacloud-trashed-only Only show files that are in the trash.
11600 --jottacloud-upload-resume-limit SizeSuffix Files bigger than this can be resumed if the upload fail's. (default 10M)
11601 --koofr-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
11602 --koofr-endpoint string The Koofr API endpoint to use (default "https://app.koofr.net")
11603 --koofr-mountid string Mount ID of the mount to use. If omitted, the primary mount is used.
11604 --koofr-password string Your Koofr password for rclone (generate one at https://app.koofr.net/app/admin/preferences/password) (obscured)
11605 --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)
11606 --koofr-user string Your Koofr user name
11607 -l, --links Translate symlinks to/from regular files with a '.rclonelink' extension
11608 --local-case-insensitive Force the filesystem to report itself as case insensitive
11609 --local-case-sensitive Force the filesystem to report itself as case sensitive.
11610 --local-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Dot)
11611 --local-no-check-updated Don't check to see if the files change during upload
11612 --local-no-preallocate Disable preallocation of disk space for transferred files
11613 --local-no-set-modtime Disable setting modtime
11614 --local-no-sparse Disable sparse files for multi-thread downloads
11615 --local-no-unicode-normalization Don't apply unicode normalization to paths and filenames (Deprecated)
11616 --local-nounc string Disable UNC (long path names) conversion on Windows
11617 --local-zero-size-links Assume the Stat size of links is zero (and read them instead)
11618 --mailru-check-hash What should copy do if file checksum is mismatched or invalid (default true)
11619 --mailru-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Del,Ctl,InvalidUtf8,Dot)
11620 --mailru-pass string Password (obscured)
11621 --mailru-speedup-enable Skip full upload if there is another file with same data hash. (default true)
11622 --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")
11623 --mailru-speedup-max-disk SizeSuffix This option allows you to disable speedup (put by hash) for large files (default 3G)
11624 --mailru-speedup-max-memory SizeSuffix Files larger than the size given below will always be hashed on disk. (default 32M)
11625 --mailru-user string User name (usually email)
11626 --mega-debug Output more debug from Mega.
11627 --mega-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
11628 --mega-hard-delete Delete files permanently rather than putting them into the trash.
11629 --mega-pass string Password. (obscured)
11630 --mega-user string User name
11631 -x, --one-file-system Don't cross filesystem boundaries (unix/macOS only).
11632 --onedrive-auth-url string Auth server URL.
11633 --onedrive-chunk-size SizeSuffix Chunk size to upload files with - must be multiple of 320k (327,680 bytes). (default 10M)
11634 --onedrive-client-id string OAuth Client Id
11635 --onedrive-client-secret string OAuth Client Secret
11636 --onedrive-drive-id string The ID of the drive to use
11637 --onedrive-drive-type string The type of the drive ( personal | business | documentLibrary )
11638 --onedrive-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Del,Ctl,LeftSpace,LeftTilde,RightSpace,RightPeriod,InvalidUtf8,Dot)
11639 --onedrive-expose-onenote-files Set to make OneNote files show up in directory listings.
11640 --onedrive-link-password string Set the password for links created by the link command.
11641 --onedrive-link-scope string Set the scope of the links created by the link command. (default "anonymous")
11642 --onedrive-link-type string Set the type of the links created by the link command. (default "view")
11643 --onedrive-no-versions Remove all versions on modifying operations
11644 --onedrive-region string Choose national cloud region for OneDrive. (default "global")
11645 --onedrive-server-side-across-configs Allow server-side operations (e.g. copy) to work across different onedrive configs.
11646 --onedrive-token string OAuth Access Token as a JSON blob.
11647 --onedrive-token-url string Token server url.
11648 --opendrive-chunk-size SizeSuffix Files will be uploaded in chunks this size. (default 10M)
11649 --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)
11650 --opendrive-password string Password. (obscured)
11651 --opendrive-username string Username
11652 --pcloud-auth-url string Auth server URL.
11653 --pcloud-client-id string OAuth Client Id
11654 --pcloud-client-secret string OAuth Client Secret
11655 --pcloud-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
11656 --pcloud-hostname string Hostname to connect to. (default "api.pcloud.com")
11657 --pcloud-root-folder-id string Fill in for rclone to use a non root folder as its starting point. (default "d0")
11658 --pcloud-token string OAuth Access Token as a JSON blob.
11659 --pcloud-token-url string Token server url.
11660 --premiumizeme-encoding MultiEncoder This sets the encoding for the backend. (default Slash,DoubleQuote,BackSlash,Del,Ctl,InvalidUtf8,Dot)
11661 --putio-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
11662 --qingstor-access-key-id string QingStor Access Key ID
11663 --qingstor-chunk-size SizeSuffix Chunk size to use for uploading. (default 4M)
11664 --qingstor-connection-retries int Number of connection retries. (default 3)
11665 --qingstor-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Ctl,InvalidUtf8)
11666 --qingstor-endpoint string Enter an endpoint URL to connection QingStor API.
11667 --qingstor-env-auth Get QingStor credentials from runtime. Only applies if access_key_id and secret_access_key is blank.
11668 --qingstor-secret-access-key string QingStor Secret Access Key (password)
11669 --qingstor-upload-concurrency int Concurrency for multipart uploads. (default 1)
11670 --qingstor-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200M)
11671 --qingstor-zone string Zone to connect to.
11672 --s3-access-key-id string AWS Access Key ID.
11673 --s3-acl string Canned ACL used when creating buckets and storing or copying objects.
11674 --s3-bucket-acl string Canned ACL used when creating buckets.
11675 --s3-chunk-size SizeSuffix Chunk size to use for uploading. (default 5M)
11676 --s3-copy-cutoff SizeSuffix Cutoff for switching to multipart copy (default 4.656G)
11677 --s3-disable-checksum Don't store MD5 checksum with object metadata
11678 --s3-disable-http2 Disable usage of http2 for S3 backends
11679 --s3-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
11680 --s3-endpoint string Endpoint for S3 API.
11681 --s3-env-auth Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
11682 --s3-force-path-style If true use path style access if false use virtual hosted style. (default true)
11683 --s3-leave-parts-on-error If true avoid calling abort upload on a failure, leaving all successfully uploaded parts on S3 for manual recovery.
11684 --s3-list-chunk int Size of listing chunk (response list for each ListObject S3 request). (default 1000)
11685 --s3-location-constraint string Location constraint - must be set to match the Region.
11686 --s3-max-upload-parts int Maximum number of parts in a multipart upload. (default 10000)
11687 --s3-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed. (default 1m0s)
11688 --s3-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool.
11689 --s3-no-check-bucket If set, don't attempt to check the bucket exists or create it
11690 --s3-no-head If set, don't HEAD uploaded objects to check integrity
11691 --s3-profile string Profile to use in the shared credentials file
11692 --s3-provider string Choose your S3 provider.
11693 --s3-region string Region to connect to.
11694 --s3-requester-pays Enables requester pays option when interacting with S3 bucket.
11695 --s3-secret-access-key string AWS Secret Access Key (password)
11696 --s3-server-side-encryption string The server-side encryption algorithm used when storing this object in S3.
11697 --s3-session-token string An AWS session token
11698 --s3-shared-credentials-file string Path to the shared credentials file
11699 --s3-sse-customer-algorithm string If using SSE-C, the server-side encryption algorithm used when storing this object in S3.
11700 --s3-sse-customer-key string If using SSE-C you must provide the secret encryption key used to encrypt/decrypt your data.
11701 --s3-sse-customer-key-md5 string If using SSE-C you may provide the secret encryption key MD5 checksum (optional).
11702 --s3-sse-kms-key-id string If using KMS ID you must provide the ARN of Key.
11703 --s3-storage-class string The storage class to use when storing new objects in S3.
11704 --s3-upload-concurrency int Concurrency for multipart uploads. (default 4)
11705 --s3-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200M)
11706 --s3-use-accelerate-endpoint If true use the AWS S3 accelerated endpoint.
11707 --s3-v2-auth If true use v2 authentication.
11708 --seafile-2fa Two-factor authentication ('true' if the account has 2FA enabled)
11709 --seafile-create-library Should rclone create a library if it doesn't exist
11710 --seafile-encoding MultiEncoder This sets the encoding for the backend. (default Slash,DoubleQuote,BackSlash,Ctl,InvalidUtf8)
11711 --seafile-library string Name of the library. Leave blank to access all non-encrypted libraries.
11712 --seafile-library-key string Library password (for encrypted libraries only). Leave blank if you pass it through the command line. (obscured)
11713 --seafile-pass string Password (obscured)
11714 --seafile-url string URL of seafile host to connect to
11715 --seafile-user string User name (usually email address)
11716 --sftp-ask-password Allow asking for SFTP password when needed.
11717 --sftp-disable-concurrent-reads If set don't use concurrent reads
11718 --sftp-disable-hashcheck Disable the execution of SSH commands to determine if remote file hashing is available.
11719 --sftp-host string SSH host to connect to
11720 --sftp-idle-timeout Duration Max time before closing idle connections (default 1m0s)
11721 --sftp-key-file string Path to PEM-encoded private key file, leave blank or set key-use-agent to use ssh-agent.
11722 --sftp-key-file-pass string The passphrase to decrypt the PEM-encoded private key file. (obscured)
11723 --sftp-key-pem string Raw PEM-encoded private key, If specified, will override key_file parameter.
11724 --sftp-key-use-agent When set forces the usage of the ssh-agent.
11725 --sftp-known-hosts-file string Optional path to known_hosts file.
11726 --sftp-md5sum-command string The command used to read md5 hashes. Leave blank for autodetect.
11727 --sftp-pass string SSH password, leave blank to use ssh-agent. (obscured)
11728 --sftp-path-override string Override path used by SSH connection.
11729 --sftp-port string SSH port, leave blank to use default (22)
11730 --sftp-pubkey-file string Optional path to public key file.
11731 --sftp-server-command string Specifies the path or command to run a sftp server on the remote host.
11732 --sftp-set-modtime Set the modified time on the remote if set. (default true)
11733 --sftp-sha1sum-command string The command used to read sha1 hashes. Leave blank for autodetect.
11734 --sftp-skip-links Set to skip any symlinks and any other non regular files.
11735 --sftp-subsystem string Specifies the SSH2 subsystem on the remote host. (default "sftp")
11736 --sftp-use-fstat If set use fstat instead of stat
11737 --sftp-use-insecure-cipher Enable the use of insecure ciphers and key exchange methods.
11738 --sftp-user string SSH username, leave blank for current username, $USER
11739 --sharefile-chunk-size SizeSuffix Upload chunk size. Must a power of 2 >= 256k. (default 64M)
11740 --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)
11741 --sharefile-endpoint string Endpoint for API calls.
11742 --sharefile-root-folder-id string ID of the root folder
11743 --sharefile-upload-cutoff SizeSuffix Cutoff for switching to multipart upload. (default 128M)
11744 --skip-links Don't warn about skipped symlinks.
11745 --sugarsync-access-key-id string Sugarsync Access Key ID.
11746 --sugarsync-app-id string Sugarsync App ID.
11747 --sugarsync-authorization string Sugarsync authorization
11748 --sugarsync-authorization-expiry string Sugarsync authorization expiry
11749 --sugarsync-deleted-id string Sugarsync deleted folder id
11750 --sugarsync-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Ctl,InvalidUtf8,Dot)
11751 --sugarsync-hard-delete Permanently delete files if true
11752 --sugarsync-private-access-key string Sugarsync Private Access Key
11753 --sugarsync-refresh-token string Sugarsync refresh token
11754 --sugarsync-root-id string Sugarsync root id
11755 --sugarsync-user string Sugarsync user
11756 --swift-application-credential-id string Application Credential ID (OS_APPLICATION_CREDENTIAL_ID)
11757 --swift-application-credential-name string Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME)
11758 --swift-application-credential-secret string Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET)
11759 --swift-auth string Authentication URL for server (OS_AUTH_URL).
11760 --swift-auth-token string Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
11761 --swift-auth-version int AuthVersion - optional - set to (1,2,3) if your auth URL has no version (ST_AUTH_VERSION)
11762 --swift-chunk-size SizeSuffix Above this size files will be chunked into a _segments container. (default 5G)
11763 --swift-domain string User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
11764 --swift-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8)
11765 --swift-endpoint-type string Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE) (default "public")
11766 --swift-env-auth Get swift credentials from environment variables in standard OpenStack form.
11767 --swift-key string API key or password (OS_PASSWORD).
11768 --swift-leave-parts-on-error If true avoid calling abort upload on a failure. It should be set to true for resuming uploads across different sessions.
11769 --swift-no-chunk Don't chunk files during streaming upload.
11770 --swift-region string Region name - optional (OS_REGION_NAME)
11771 --swift-storage-policy string The storage policy to use when creating a new container
11772 --swift-storage-url string Storage URL - optional (OS_STORAGE_URL)
11773 --swift-tenant string Tenant name - optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME)
11774 --swift-tenant-domain string Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
11775 --swift-tenant-id string Tenant ID - optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID)
11776 --swift-user string User name to log in (OS_USERNAME).
11777 --swift-user-id string User ID to log in - optional - most swift systems use user and leave this blank (v3 auth) (OS_USER_ID).
11778 --tardigrade-access-grant string Access Grant.
11779 --tardigrade-api-key string API Key.
11780 --tardigrade-passphrase string Encryption Passphrase. To access existing objects enter passphrase used for uploading.
11781 --tardigrade-provider string Choose an authentication method. (default "existing")
11782 --tardigrade-satellite-address <nodeid>@<address>:<port> Satellite Address. Custom satellite address should match the format: <nodeid>@<address>:<port>. (default "us-central-1.tardigrade.io")
11783 --union-action-policy string Policy to choose upstream on ACTION category. (default "epall")
11784 --union-cache-time int Cache time of usage and free space (in seconds). This option is only useful when a path preserving policy is used. (default 120)
11785 --union-create-policy string Policy to choose upstream on CREATE category. (default "epmfs")
11786 --union-search-policy string Policy to choose upstream on SEARCH category. (default "ff")
11787 --union-upstreams string List of space separated upstreams.
11788 --webdav-bearer-token string Bearer token instead of user/pass (e.g. a Macaroon)
11789 --webdav-bearer-token-command string Command to run to get a bearer token
11790 --webdav-encoding string This sets the encoding for the backend.
11791 --webdav-pass string Password. (obscured)
11792 --webdav-url string URL of http host to connect to
11793 --webdav-user string User name. In case NTLM authentication is used, the username should be in the format 'Domain\User'.
11794 --webdav-vendor string Name of the Webdav site/service/software you are using
11795 --yandex-auth-url string Auth server URL.
11796 --yandex-client-id string OAuth Client Id
11797 --yandex-client-secret string OAuth Client Secret
11798 --yandex-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,InvalidUtf8,Dot)
11799 --yandex-token string OAuth Access Token as a JSON blob.
11800 --yandex-token-url string Token server url.
11801 --zoho-auth-url string Auth server URL.
11802 --zoho-client-id string OAuth Client Id
11803 --zoho-client-secret string OAuth Client Secret
11804 --zoho-encoding MultiEncoder This sets the encoding for the backend. (default Del,Ctl,InvalidUtf8)
11805 --zoho-region string Zoho region to connect to. You'll have to use the region you organization is registered in.
11806 --zoho-token string OAuth Access Token as a JSON blob.
11807 --zoho-token-url string Token server url.
11808
11809 1Fichier
11810 This is a backend for the 1fichier (https://1fichier.com) cloud storage
11811 service. Note that a Premium subscription is required to use the API.
11812
11813 Paths are specified as remote:path
11814
11815 Paths may be as deep as required, e.g. remote:directory/subdirectory.
11816
11817 The initial setup for 1Fichier involves getting the API key from the
11818 website which you need to do in your browser.
11819
11820 Here is an example of how to make a remote called remote. First run:
11821
11822 rclone config
11823
11824 This will guide you through an interactive setup process:
11825
11826 No remotes found - make a new one
11827 n) New remote
11828 s) Set configuration password
11829 q) Quit config
11830 n/s/q> n
11831 name> remote
11832 Type of storage to configure.
11833 Enter a string value. Press Enter for the default ("").
11834 Choose a number from below, or type in your own value
11835 [snip]
11836 XX / 1Fichier
11837 \ "fichier"
11838 [snip]
11839 Storage> fichier
11840 ** See help for fichier backend at: https://rclone.org/fichier/ **
11841
11842 Your API Key, get it from https://1fichier.com/console/params.pl
11843 Enter a string value. Press Enter for the default ("").
11844 api_key> example_key
11845
11846 Edit advanced config? (y/n)
11847 y) Yes
11848 n) No
11849 y/n>
11850 Remote config
11851 --------------------
11852 [remote]
11853 type = fichier
11854 api_key = example_key
11855 --------------------
11856 y) Yes this is OK
11857 e) Edit this remote
11858 d) Delete this remote
11859 y/e/d> y
11860
11861 Once configured you can then use rclone like this,
11862
11863 List directories in top level of your 1Fichier account
11864
11865 rclone lsd remote:
11866
11867 List all the files in your 1Fichier account
11868
11869 rclone ls remote:
11870
11871 To copy a local directory to a 1Fichier directory called backup
11872
11873 rclone copy /home/source remote:backup
11874
11875 Modified time and hashes
11876 1Fichier does not support modification times. It supports the
11877 Whirlpool hash algorithm.
11878
11879 Duplicated files
11880 1Fichier can have two files with exactly the same name and path (unlike
11881 a normal file system).
11882
11883 Duplicated files cause problems with the syncing and you will see mes‐
11884 sages in the log about duplicates.
11885
11886 Restricted filename characters
11887 In addition to the default restricted characters set
11888 (https://rclone.org/overview/#restricted-characters) the following
11889 characters are also replaced:
11890
11891 Character Value Replacement
11892 ────────────────────────────────
11893 \ 0x5C \
11894 < 0x3C <
11895 > 0x3E >
11896 " 0x22 "
11897 $ 0x24 $
11898 ` 0x60 `
11899 ' 0x27 '
11900
11901 File names can also not start or end with the following characters.
11902 These only get replaced if they are the first or last character in the
11903 name:
11904
11905 Character Value Replacement
11906 ────────────────────────────────
11907 SP 0x20 ␠
11908
11909 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
11910 view/#invalid-utf8), as they can't be used in JSON strings.
11911
11912 Standard Options
11913 Here are the standard options specific to fichier (1Fichier).
11914
11915 --fichier-api-key
11916 Your API Key, get it from https://1fichier.com/console/params.pl
11917
11918 • Config: api_key
11919
11920 • Env Var: RCLONE_FICHIER_API_KEY
11921
11922 • Type: string
11923
11924 • Default: ""
11925
11926 Advanced Options
11927 Here are the advanced options specific to fichier (1Fichier).
11928
11929 --fichier-shared-folder
11930 If you want to download a shared folder, add this parameter
11931
11932 • Config: shared_folder
11933
11934 • Env Var: RCLONE_FICHIER_SHARED_FOLDER
11935
11936 • Type: string
11937
11938 • Default: ""
11939
11940 --fichier-encoding
11941 This sets the encoding for the backend.
11942
11943 See: the encoding section in the overview (https://rclone.org/over‐
11944 view/#encoding) for more info.
11945
11946 • Config: encoding
11947
11948 • Env Var: RCLONE_FICHIER_ENCODING
11949
11950 • Type: MultiEncoder
11951
11952 • Default: Slash,LtGt,DoubleQuote,SingleQuote,BackQuote,Dollar,Back‐
11953 Slash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot
11954
11955 Limitations
11956 rclone about is not supported by the 1Fichier backend. Backends with‐
11957 out this capability cannot determine free space for an rclone mount or
11958 use policy mfs (most free space) as a member of an rclone union remote.
11959
11960 See List of backends that do not support rclone about
11961 (https://rclone.org/overview/#optional-features) See rclone about
11962 (https://rclone.org/commands/rclone_about/)
11963
11964 Alias
11965 The alias remote provides a new name for another remote.
11966
11967 Paths may be as deep as required or a local path, e.g. remote:directo‐
11968 ry/subdirectory or /directory/subdirectory.
11969
11970 During the initial setup with rclone config you will specify the target
11971 remote. The target remote can either be a local path or another re‐
11972 mote.
11973
11974 Subfolders can be used in target remote. Assume an alias remote named
11975 backup with the target mydrive:private/backup. Invoking rclone mkdir
11976 backup:desktop is exactly the same as invoking rclone mkdir my‐
11977 drive:private/backup/desktop.
11978
11979 There will be no special handling of paths containing .. segments.
11980 Invoking rclone mkdir backup:../desktop is exactly the same as invoking
11981 rclone mkdir mydrive:private/backup/../desktop. The empty path is not
11982 allowed as a remote. To alias the current directory use . instead.
11983
11984 Here is an example of how to make an alias called remote for local
11985 folder. First run:
11986
11987 rclone config
11988
11989 This will guide you through an interactive setup process:
11990
11991 No remotes found - make a new one
11992 n) New remote
11993 s) Set configuration password
11994 q) Quit config
11995 n/s/q> n
11996 name> remote
11997 Type of storage to configure.
11998 Choose a number from below, or type in your own value
11999 [snip]
12000 XX / Alias for an existing remote
12001 \ "alias"
12002 [snip]
12003 Storage> alias
12004 Remote or path to alias.
12005 Can be "myremote:path/to/dir", "myremote:bucket", "myremote:" or "/local/path".
12006 remote> /mnt/storage/backup
12007 Remote config
12008 --------------------
12009 [remote]
12010 remote = /mnt/storage/backup
12011 --------------------
12012 y) Yes this is OK
12013 e) Edit this remote
12014 d) Delete this remote
12015 y/e/d> y
12016 Current remotes:
12017
12018 Name Type
12019 ==== ====
12020 remote alias
12021
12022 e) Edit existing remote
12023 n) New remote
12024 d) Delete remote
12025 r) Rename remote
12026 c) Copy remote
12027 s) Set configuration password
12028 q) Quit config
12029 e/n/d/r/c/s/q> q
12030
12031 Once configured you can then use rclone like this,
12032
12033 List directories in top level in /mnt/storage/backup
12034
12035 rclone lsd remote:
12036
12037 List all the files in /mnt/storage/backup
12038
12039 rclone ls remote:
12040
12041 Copy another local directory to the alias directory called source
12042
12043 rclone copy /home/source remote:source
12044
12045 Standard Options
12046 Here are the standard options specific to alias (Alias for an existing
12047 remote).
12048
12049 --alias-remote
12050 Remote or path to alias. Can be "myremote:path/to/dir", "myre‐
12051 mote:bucket", "myremote:" or "/local/path".
12052
12053 • Config: remote
12054
12055 • Env Var: RCLONE_ALIAS_REMOTE
12056
12057 • Type: string
12058
12059 • Default: ""
12060
12061 Amazon Drive
12062 Amazon Drive, formerly known as Amazon Cloud Drive, is a cloud storage
12063 service run by Amazon for consumers.
12064
12065 Status
12066 Important: rclone supports Amazon Drive only if you have your own set
12067 of API keys. Unfortunately the Amazon Drive developer program
12068 (https://developer.amazon.com/amazon-drive) is now closed to new en‐
12069 tries so if you don't already have your own set of keys you will not be
12070 able to use rclone with Amazon Drive.
12071
12072 For the history on why rclone no longer has a set of Amazon Drive API
12073 keys see the forum (https://forum.rclone.org/t/rclone-has-been-banned-
12074 from-amazon-drive/2314).
12075
12076 If you happen to know anyone who works at Amazon then please ask them
12077 to re-instate rclone into the Amazon Drive developer program - thanks!
12078
12079 Setup
12080 The initial setup for Amazon Drive involves getting a token from Amazon
12081 which you need to do in your browser. rclone config walks you through
12082 it.
12083
12084 The configuration process for Amazon Drive may involve using an oauth
12085 proxy (https://github.com/ncw/oauthproxy). This is used to keep the
12086 Amazon credentials out of the source code. The proxy runs in Google's
12087 very secure App Engine environment and doesn't store any credentials
12088 which pass through it.
12089
12090 Since rclone doesn't currently have its own Amazon Drive credentials so
12091 you will either need to have your own client_id and client_secret with
12092 Amazon Drive, or use a third party oauth proxy in which case you will
12093 need to enter client_id, client_secret, auth_url and token_url.
12094
12095 Note also if you are not using Amazon's auth_url and token_url, (ie you
12096 filled in something for those) then if setting up on a remote machine
12097 you can only use the copying the config method of configuration
12098 (https://rclone.org/remote_setup/#configuring-by-copying-the-config-
12099 file) - rclone authorize will not work.
12100
12101 Here is an example of how to make a remote called remote. First run:
12102
12103 rclone config
12104
12105 This will guide you through an interactive setup process:
12106
12107 No remotes found - make a new one
12108 n) New remote
12109 r) Rename remote
12110 c) Copy remote
12111 s) Set configuration password
12112 q) Quit config
12113 n/r/c/s/q> n
12114 name> remote
12115 Type of storage to configure.
12116 Choose a number from below, or type in your own value
12117 [snip]
12118 XX / Amazon Drive
12119 \ "amazon cloud drive"
12120 [snip]
12121 Storage> amazon cloud drive
12122 Amazon Application Client Id - required.
12123 client_id> your client ID goes here
12124 Amazon Application Client Secret - required.
12125 client_secret> your client secret goes here
12126 Auth server URL - leave blank to use Amazon's.
12127 auth_url> Optional auth URL
12128 Token server url - leave blank to use Amazon's.
12129 token_url> Optional token URL
12130 Remote config
12131 Make sure your Redirect URL is set to "http://127.0.0.1:53682/" in your custom config.
12132 Use auto config?
12133 * Say Y if not sure
12134 * Say N if you are working on a remote or headless machine
12135 y) Yes
12136 n) No
12137 y/n> y
12138 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
12139 Log in and authorize rclone for access
12140 Waiting for code...
12141 Got code
12142 --------------------
12143 [remote]
12144 client_id = your client ID goes here
12145 client_secret = your client secret goes here
12146 auth_url = Optional auth URL
12147 token_url = Optional token URL
12148 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxx","token_type":"bearer","refresh_token":"xxxxxxxxxxxxxxxxxx","expiry":"2015-09-06T16:07:39.658438471+01:00"}
12149 --------------------
12150 y) Yes this is OK
12151 e) Edit this remote
12152 d) Delete this remote
12153 y/e/d> y
12154
12155 See the remote setup docs (https://rclone.org/remote_setup/) for how to
12156 set it up on a machine with no Internet browser available.
12157
12158 Note that rclone runs a webserver on your local machine to collect the
12159 token as returned from Amazon. This only runs from the moment it opens
12160 your browser to the moment you get back the verification code. This is
12161 on http://127.0.0.1:53682/ and this it may require you to unblock it
12162 temporarily if you are running a host firewall.
12163
12164 Once configured you can then use rclone like this,
12165
12166 List directories in top level of your Amazon Drive
12167
12168 rclone lsd remote:
12169
12170 List all the files in your Amazon Drive
12171
12172 rclone ls remote:
12173
12174 To copy a local directory to an Amazon Drive directory called backup
12175
12176 rclone copy /home/source remote:backup
12177
12178 Modified time and MD5SUMs
12179 Amazon Drive doesn't allow modification times to be changed via the API
12180 so these won't be accurate or used for syncing.
12181
12182 It does store MD5SUMs so for a more accurate sync, you can use the
12183 --checksum flag.
12184
12185 Restricted filename characters
12186 Character Value Replacement
12187 ────────────────────────────────
12188 NUL 0x00 ␀
12189 / 0x2F /
12190
12191 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
12192 view/#invalid-utf8), as they can't be used in JSON strings.
12193
12194 Deleting files
12195 Any files you delete with rclone will end up in the trash. Amazon
12196 don't provide an API to permanently delete files, nor to empty the
12197 trash, so you will have to do that with one of Amazon's apps or via the
12198 Amazon Drive website. As of November 17, 2016, files are automatically
12199 deleted by Amazon from the trash after 30 days.
12200
12201 Using with non .com Amazon accounts
12202 Let's say you usually use amazon.co.uk. When you authenticate with
12203 rclone it will take you to an amazon.com page to log in. Your ama‐
12204 zon.co.uk email and password should work here just fine.
12205
12206 Standard Options
12207 Here are the standard options specific to amazon cloud drive (Amazon
12208 Drive).
12209
12210 --acd-client-id
12211 OAuth Client Id Leave blank normally.
12212
12213 • Config: client_id
12214
12215 • Env Var: RCLONE_ACD_CLIENT_ID
12216
12217 • Type: string
12218
12219 • Default: ""
12220
12221 --acd-client-secret
12222 OAuth Client Secret Leave blank normally.
12223
12224 • Config: client_secret
12225
12226 • Env Var: RCLONE_ACD_CLIENT_SECRET
12227
12228 • Type: string
12229
12230 • Default: ""
12231
12232 Advanced Options
12233 Here are the advanced options specific to amazon cloud drive (Amazon
12234 Drive).
12235
12236 --acd-token
12237 OAuth Access Token as a JSON blob.
12238
12239 • Config: token
12240
12241 • Env Var: RCLONE_ACD_TOKEN
12242
12243 • Type: string
12244
12245 • Default: ""
12246
12247 --acd-auth-url
12248 Auth server URL. Leave blank to use the provider defaults.
12249
12250 • Config: auth_url
12251
12252 • Env Var: RCLONE_ACD_AUTH_URL
12253
12254 • Type: string
12255
12256 • Default: ""
12257
12258 --acd-token-url
12259 Token server url. Leave blank to use the provider defaults.
12260
12261 • Config: token_url
12262
12263 • Env Var: RCLONE_ACD_TOKEN_URL
12264
12265 • Type: string
12266
12267 • Default: ""
12268
12269 --acd-checkpoint
12270 Checkpoint for internal polling (debug).
12271
12272 • Config: checkpoint
12273
12274 • Env Var: RCLONE_ACD_CHECKPOINT
12275
12276 • Type: string
12277
12278 • Default: ""
12279
12280 --acd-upload-wait-per-gb
12281 Additional time per GB to wait after a failed complete upload to see if
12282 it appears.
12283
12284 Sometimes Amazon Drive gives an error when a file has been fully up‐
12285 loaded but the file appears anyway after a little while. This happens
12286 sometimes for files over 1GB in size and nearly every time for files
12287 bigger than 10GB. This parameter controls the time rclone waits for
12288 the file to appear.
12289
12290 The default value for this parameter is 3 minutes per GB, so by default
12291 it will wait 3 minutes for every GB uploaded to see if the file ap‐
12292 pears.
12293
12294 You can disable this feature by setting it to 0. This may cause con‐
12295 flict errors as rclone retries the failed upload but the file will most
12296 likely appear correctly eventually.
12297
12298 These values were determined empirically by observing lots of uploads
12299 of big files for a range of file sizes.
12300
12301 Upload with the "-v" flag to see more info about what rclone is doing
12302 in this situation.
12303
12304 • Config: upload_wait_per_gb
12305
12306 • Env Var: RCLONE_ACD_UPLOAD_WAIT_PER_GB
12307
12308 • Type: Duration
12309
12310 • Default: 3m0s
12311
12312 --acd-templink-threshold
12313 Files >= this size will be downloaded via their tempLink.
12314
12315 Files this size or more will be downloaded via their "tempLink". This
12316 is to work around a problem with Amazon Drive which blocks downloads of
12317 files bigger than about 10GB. The default for this is 9GB which
12318 shouldn't need to be changed.
12319
12320 To download files above this threshold, rclone requests a "tempLink"
12321 which downloads the file through a temporary URL directly from the un‐
12322 derlying S3 storage.
12323
12324 • Config: templink_threshold
12325
12326 • Env Var: RCLONE_ACD_TEMPLINK_THRESHOLD
12327
12328 • Type: SizeSuffix
12329
12330 • Default: 9G
12331
12332 --acd-encoding
12333 This sets the encoding for the backend.
12334
12335 See: the encoding section in the overview (https://rclone.org/over‐
12336 view/#encoding) for more info.
12337
12338 • Config: encoding
12339
12340 • Env Var: RCLONE_ACD_ENCODING
12341
12342 • Type: MultiEncoder
12343
12344 • Default: Slash,InvalidUtf8,Dot
12345
12346 Limitations
12347 Note that Amazon Drive is case insensitive so you can't have a file
12348 called "Hello.doc" and one called "hello.doc".
12349
12350 Amazon Drive has rate limiting so you may notice errors in the sync
12351 (429 errors). rclone will automatically retry the sync up to 3 times
12352 by default (see --retries flag) which should hopefully work around this
12353 problem.
12354
12355 Amazon Drive has an internal limit of file sizes that can be uploaded
12356 to the service. This limit is not officially published, but all files
12357 larger than this will fail.
12358
12359 At the time of writing (Jan 2016) is in the area of 50GB per file.
12360 This means that larger files are likely to fail.
12361
12362 Unfortunately there is no way for rclone to see that this failure is
12363 because of file size, so it will retry the operation, as any other
12364 failure. To avoid this problem, use --max-size 50000M option to limit
12365 the maximum size of uploaded files. Note that --max-size does not
12366 split files into segments, it only ignores files over this size.
12367
12368 rclone about is not supported by the Amazon Drive backend. Backends
12369 without this capability cannot determine free space for an rclone mount
12370 or use policy mfs (most free space) as a member of an rclone union re‐
12371 mote.
12372
12373 See List of backends that do not support rclone about
12374 (https://rclone.org/overview/#optional-features) See rclone about
12375 (https://rclone.org/commands/rclone_about/)
12376
12377 Amazon S3 Storage Providers
12378 The S3 backend can be used with a number of different providers:
12379
12380 • AWS S3
12381
12382 • Alibaba Cloud (Aliyun) Object Storage System (OSS)
12383
12384 • Ceph
12385
12386 • DigitalOcean Spaces
12387
12388 • Dreamhost
12389
12390 • IBM COS S3
12391
12392 • Minio
12393
12394 • Scaleway
12395
12396 • StackPath
12397
12398 • Tencent Cloud Object Storage (COS)
12399
12400 • Wasabi
12401
12402 Paths are specified as remote:bucket (or remote: for the lsd command.)
12403 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
12404
12405 Once you have made a remote (see the provider specific section above)
12406 you can use it like this:
12407
12408 See all buckets
12409
12410 rclone lsd remote:
12411
12412 Make a new bucket
12413
12414 rclone mkdir remote:bucket
12415
12416 List the contents of a bucket
12417
12418 rclone ls remote:bucket
12419
12420 Sync /home/local/directory to the remote bucket, deleting any excess
12421 files in the bucket.
12422
12423 rclone sync -i /home/local/directory remote:bucket
12424
12425 AWS S3
12426 Here is an example of making an s3 configuration. First run
12427
12428 rclone config
12429
12430 This will guide you through an interactive setup process.
12431
12432 No remotes found - make a new one
12433 n) New remote
12434 s) Set configuration password
12435 q) Quit config
12436 n/s/q> n
12437 name> remote
12438 Type of storage to configure.
12439 Choose a number from below, or type in your own value
12440 [snip]
12441 XX / Amazon S3 Compliant Storage Providers including AWS, Ceph, Dreamhost, IBM COS, Minio, and Tencent COS
12442 \ "s3"
12443 [snip]
12444 Storage> s3
12445 Choose your S3 provider.
12446 Choose a number from below, or type in your own value
12447 1 / Amazon Web Services (AWS) S3
12448 \ "AWS"
12449 2 / Ceph Object Storage
12450 \ "Ceph"
12451 3 / Digital Ocean Spaces
12452 \ "DigitalOcean"
12453 4 / Dreamhost DreamObjects
12454 \ "Dreamhost"
12455 5 / IBM COS S3
12456 \ "IBMCOS"
12457 6 / Minio Object Storage
12458 \ "Minio"
12459 7 / Wasabi Object Storage
12460 \ "Wasabi"
12461 8 / Any other S3 compatible provider
12462 \ "Other"
12463 provider> 1
12464 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.
12465 Choose a number from below, or type in your own value
12466 1 / Enter AWS credentials in the next step
12467 \ "false"
12468 2 / Get AWS credentials from the environment (env vars or IAM)
12469 \ "true"
12470 env_auth> 1
12471 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
12472 access_key_id> XXX
12473 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
12474 secret_access_key> YYY
12475 Region to connect to.
12476 Choose a number from below, or type in your own value
12477 / The default endpoint - a good choice if you are unsure.
12478 1 | US Region, Northern Virginia, or Pacific Northwest.
12479 | Leave location constraint empty.
12480 \ "us-east-1"
12481 / US East (Ohio) Region
12482 2 | Needs location constraint us-east-2.
12483 \ "us-east-2"
12484 / US West (Oregon) Region
12485 3 | Needs location constraint us-west-2.
12486 \ "us-west-2"
12487 / US West (Northern California) Region
12488 4 | Needs location constraint us-west-1.
12489 \ "us-west-1"
12490 / Canada (Central) Region
12491 5 | Needs location constraint ca-central-1.
12492 \ "ca-central-1"
12493 / EU (Ireland) Region
12494 6 | Needs location constraint EU or eu-west-1.
12495 \ "eu-west-1"
12496 / EU (London) Region
12497 7 | Needs location constraint eu-west-2.
12498 \ "eu-west-2"
12499 / EU (Frankfurt) Region
12500 8 | Needs location constraint eu-central-1.
12501 \ "eu-central-1"
12502 / Asia Pacific (Singapore) Region
12503 9 | Needs location constraint ap-southeast-1.
12504 \ "ap-southeast-1"
12505 / Asia Pacific (Sydney) Region
12506 10 | Needs location constraint ap-southeast-2.
12507 \ "ap-southeast-2"
12508 / Asia Pacific (Tokyo) Region
12509 11 | Needs location constraint ap-northeast-1.
12510 \ "ap-northeast-1"
12511 / Asia Pacific (Seoul)
12512 12 | Needs location constraint ap-northeast-2.
12513 \ "ap-northeast-2"
12514 / Asia Pacific (Mumbai)
12515 13 | Needs location constraint ap-south-1.
12516 \ "ap-south-1"
12517 / Asia Pacific (Hong Kong) Region
12518 14 | Needs location constraint ap-east-1.
12519 \ "ap-east-1"
12520 / South America (Sao Paulo) Region
12521 15 | Needs location constraint sa-east-1.
12522 \ "sa-east-1"
12523 region> 1
12524 Endpoint for S3 API.
12525 Leave blank if using AWS to use the default endpoint for the region.
12526 endpoint>
12527 Location constraint - must be set to match the Region. Used when creating buckets only.
12528 Choose a number from below, or type in your own value
12529 1 / Empty for US Region, Northern Virginia, or Pacific Northwest.
12530 \ ""
12531 2 / US East (Ohio) Region.
12532 \ "us-east-2"
12533 3 / US West (Oregon) Region.
12534 \ "us-west-2"
12535 4 / US West (Northern California) Region.
12536 \ "us-west-1"
12537 5 / Canada (Central) Region.
12538 \ "ca-central-1"
12539 6 / EU (Ireland) Region.
12540 \ "eu-west-1"
12541 7 / EU (London) Region.
12542 \ "eu-west-2"
12543 8 / EU Region.
12544 \ "EU"
12545 9 / Asia Pacific (Singapore) Region.
12546 \ "ap-southeast-1"
12547 10 / Asia Pacific (Sydney) Region.
12548 \ "ap-southeast-2"
12549 11 / Asia Pacific (Tokyo) Region.
12550 \ "ap-northeast-1"
12551 12 / Asia Pacific (Seoul)
12552 \ "ap-northeast-2"
12553 13 / Asia Pacific (Mumbai)
12554 \ "ap-south-1"
12555 14 / Asia Pacific (Hong Kong)
12556 \ "ap-east-1"
12557 15 / South America (Sao Paulo) Region.
12558 \ "sa-east-1"
12559 location_constraint> 1
12560 Canned ACL used when creating buckets and/or storing objects in S3.
12561 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
12562 Choose a number from below, or type in your own value
12563 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
12564 \ "private"
12565 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
12566 \ "public-read"
12567 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
12568 3 | Granting this on a bucket is generally not recommended.
12569 \ "public-read-write"
12570 4 / Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ access.
12571 \ "authenticated-read"
12572 / Object owner gets FULL_CONTROL. Bucket owner gets READ access.
12573 5 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
12574 \ "bucket-owner-read"
12575 / Both the object owner and the bucket owner get FULL_CONTROL over the object.
12576 6 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
12577 \ "bucket-owner-full-control"
12578 acl> 1
12579 The server-side encryption algorithm used when storing this object in S3.
12580 Choose a number from below, or type in your own value
12581 1 / None
12582 \ ""
12583 2 / AES256
12584 \ "AES256"
12585 server_side_encryption> 1
12586 The storage class to use when storing objects in S3.
12587 Choose a number from below, or type in your own value
12588 1 / Default
12589 \ ""
12590 2 / Standard storage class
12591 \ "STANDARD"
12592 3 / Reduced redundancy storage class
12593 \ "REDUCED_REDUNDANCY"
12594 4 / Standard Infrequent Access storage class
12595 \ "STANDARD_IA"
12596 5 / One Zone Infrequent Access storage class
12597 \ "ONEZONE_IA"
12598 6 / Glacier storage class
12599 \ "GLACIER"
12600 7 / Glacier Deep Archive storage class
12601 \ "DEEP_ARCHIVE"
12602 8 / Intelligent-Tiering storage class
12603 \ "INTELLIGENT_TIERING"
12604 storage_class> 1
12605 Remote config
12606 --------------------
12607 [remote]
12608 type = s3
12609 provider = AWS
12610 env_auth = false
12611 access_key_id = XXX
12612 secret_access_key = YYY
12613 region = us-east-1
12614 endpoint =
12615 location_constraint =
12616 acl = private
12617 server_side_encryption =
12618 storage_class =
12619 --------------------
12620 y) Yes this is OK
12621 e) Edit this remote
12622 d) Delete this remote
12623 y/e/d>
12624
12625 Modified time
12626 The modified time is stored as metadata on the object as
12627 X-Amz-Meta-Mtime as floating point since the epoch accurate to 1 ns.
12628
12629 If the modification time needs to be updated rclone will attempt to
12630 perform a server side copy to update the modification if the object can
12631 be copied in a single part. In the case the object is larger than 5Gb
12632 or is in Glacier or Glacier Deep Archive storage the object will be up‐
12633 loaded rather than copied.
12634
12635 Note that reading this from the object takes an additional HEAD request
12636 as the metadata isn't returned in object listings.
12637
12638 Reducing costs
12639 Avoiding HEAD requests to read the modification time
12640 By default rclone will use the modification time of objects stored in
12641 S3 for syncing. This is stored in object metadata which unfortunately
12642 takes an extra HEAD request to read which can be expensive (in time and
12643 money).
12644
12645 The modification time is used by default for all operations that re‐
12646 quire checking the time a file was last updated. It allows rclone to
12647 treat the remote more like a true filesystem, but it is inefficient on
12648 S3 because it requires an extra API call to retrieve the metadata.
12649
12650 The extra API calls can be avoided when syncing (using rclone sync or
12651 rclone copy) in a few different ways, each with its own tradeoffs.
12652
12653 • --size-only
12654
12655 • Only checks the size of files.
12656
12657 • Uses no extra transactions.
12658
12659 • If the file doesn't change size then rclone won't detect it has
12660 changed.
12661
12662 • rclone sync --size-only /path/to/source s3:bucket
12663
12664 • --checksum
12665
12666 • Checks the size and MD5 checksum of files.
12667
12668 • Uses no extra transactions.
12669
12670 • The most accurate detection of changes possible.
12671
12672 • Will cause the source to read an MD5 checksum which, if it is a lo‐
12673 cal disk, will cause lots of disk activity.
12674
12675 • If the source and destination are both S3 this is the recommended
12676 flag to use for maximum efficiency.
12677
12678 • rclone sync --checksum /path/to/source s3:bucket
12679
12680 • --update --use-server-modtime
12681
12682 • Uses no extra transactions.
12683
12684 • Modification time becomes the time the object was uploaded.
12685
12686 • For many operations this is sufficient to determine if it needs up‐
12687 loading.
12688
12689 • Using --update along with --use-server-modtime, avoids the extra
12690 API call and uploads files whose local modification time is newer
12691 than the time it was last uploaded.
12692
12693 • Files created with timestamps in the past will be missed by the
12694 sync.
12695
12696 • rclone sync --update --use-server-modtime /path/to/source s3:bucket
12697
12698 These flags can and should be used in combination with --fast-list -
12699 see below.
12700
12701 If using rclone mount or any command using the VFS (eg rclone serve)
12702 commands then you might want to consider using the VFS flag --no-mod‐
12703 time which will stop rclone reading the modification time for every ob‐
12704 ject. You could also use --use-server-modtime if you are happy with
12705 the modification times of the objects being the time of upload.
12706
12707 Avoiding GET requests to read directory listings
12708 Rclone's default directory traversal is to process each directory indi‐
12709 vidually. This takes one API call per directory. Using the
12710 --fast-list flag will read all info about the the objects into memory
12711 first using a smaller number of API calls (one per 1000 objects). See
12712 the rclone docs (https://rclone.org/docs/#fast-list) for more details.
12713
12714 rclone sync --fast-list --checksum /path/to/source s3:bucket
12715
12716 --fast-list trades off API transactions for memory use. As a rough
12717 guide rclone uses 1k of memory per object stored, so using --fast-list
12718 on a sync of a million objects will use roughly 1 GB of RAM.
12719
12720 If you are only copying a small number of files into a big repository
12721 then using --no-traverse is a good idea. This finds objects directly
12722 instead of through directory listings. You can do a "top-up" sync very
12723 cheaply by using --max-age and --no-traverse to copy only recent files,
12724 eg
12725
12726 rclone copy --min-age 24h --no-traverse /path/to/source s3:bucket
12727
12728 You'd then do a full rclone sync less often.
12729
12730 Note that --fast-list isn't required in the top-up sync.
12731
12732 Avoiding HEAD requests after PUT
12733 By default rclone will HEAD every object it uploads. It does this to
12734 check the object got uploaded correctly.
12735
12736 You can disable this with the --s3-no-head option - see there for more
12737 details.
12738
12739 Setting this flag increases the chance for undetected upload failures.
12740
12741 Hashes
12742 For small objects which weren't uploaded as multipart uploads (objects
12743 sized below --s3-upload-cutoff if uploaded with rclone) rclone uses the
12744 ETag: header as an MD5 checksum.
12745
12746 However for objects which were uploaded as multipart uploads or with
12747 server side encryption (SSE-AWS or SSE-C) the ETag header is no longer
12748 the MD5 sum of the data, so rclone adds an additional piece of metadata
12749 X-Amz-Meta-Md5chksum which is a base64 encoded MD5 hash (in the same
12750 format as is required for Content-MD5).
12751
12752 For large objects, calculating this hash can take some time so the ad‐
12753 dition of this hash can be disabled with --s3-disable-checksum. This
12754 will mean that these objects do not have an MD5 checksum.
12755
12756 Note that reading this from the object takes an additional HEAD request
12757 as the metadata isn't returned in object listings.
12758
12759 Cleanup
12760 If you run rclone cleanup s3:bucket then it will remove all pending
12761 multipart uploads older than 24 hours. You can use the -i flag to see
12762 exactly what it will do. If you want more control over the expiry date
12763 then run rclone backend cleanup s3:bucket -o max-age=1h to expire all
12764 uploads older than one hour. You can use rclone backend list-multi‐
12765 part-uploads s3:bucket to see the pending multipart uploads.
12766
12767 Restricted filename characters
12768 S3 allows any valid UTF-8 string as a key.
12769
12770 Invalid UTF-8 bytes will be replaced (https://rclone.org/overview/#in‐
12771 valid-utf8), as they can't be used in XML.
12772
12773 The following characters are replaced since these are problematic when
12774 dealing with the REST API:
12775
12776 Character Value Replacement
12777 ────────────────────────────────
12778 NUL 0x00 ␀
12779 / 0x2F /
12780
12781 The encoding will also encode these file names as they don't seem to
12782 work with the SDK properly:
12783
12784 File name Replacement
12785 ────────────────────────
12786 . .
12787 .. ..
12788
12789 Multipart uploads
12790 rclone supports multipart uploads with S3 which means that it can up‐
12791 load files bigger than 5GB.
12792
12793 Note that files uploaded both with multipart upload and through crypt
12794 remotes do not have MD5 sums.
12795
12796 rclone switches from single part uploads to multipart uploads at the
12797 point specified by --s3-upload-cutoff. This can be a maximum of 5GB
12798 and a minimum of 0 (ie always upload multipart files).
12799
12800 The chunk sizes used in the multipart upload are specified by
12801 --s3-chunk-size and the number of chunks uploaded concurrently is spec‐
12802 ified by --s3-upload-concurrency.
12803
12804 Multipart uploads will use --transfers * --s3-upload-concurrency *
12805 --s3-chunk-size extra memory. Single part uploads to not use extra
12806 memory.
12807
12808 Single part transfers can be faster than multipart transfers or slower
12809 depending on your latency from S3 - the more latency, the more likely
12810 single part transfers will be faster.
12811
12812 Increasing --s3-upload-concurrency will increase throughput (8 would be
12813 a sensible value) and increasing --s3-chunk-size also increases
12814 throughput (16M would be sensible). Increasing either of these will
12815 use more memory. The default values are high enough to gain most of
12816 the possible performance without using too much memory.
12817
12818 Buckets and Regions
12819 With Amazon S3 you can list buckets (rclone lsd) using any region, but
12820 you can only access the content of a bucket from the region it was cre‐
12821 ated in. If you attempt to access a bucket from the wrong region, you
12822 will get an error, incorrect region, the bucket is not in 'XXX' region.
12823
12824 Authentication
12825 There are a number of ways to supply rclone with a set of AWS creden‐
12826 tials, with and without using the environment.
12827
12828 The different authentication methods are tried in this order:
12829
12830 • Directly in the rclone configuration file (env_auth = false in the
12831 config file):
12832
12833 • access_key_id and secret_access_key are required.
12834
12835 • session_token can be optionally set when using AWS STS.
12836
12837 • Runtime configuration (env_auth = true in the config file):
12838
12839 • Export the following environment variables before running rclone:
12840
12841 • Access Key ID: AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY
12842
12843 • Secret Access Key: AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY
12844
12845 • Session Token: AWS_SESSION_TOKEN (optional)
12846
12847 • Or, use a named profile (https://docs.aws.amazon.com/cli/lat‐
12848 est/userguide/cli-multiple-profiles.html):
12849
12850 • Profile files are standard files used by AWS CLI tools
12851
12852 • By default it will use the profile in your home directory (e.g.
12853 ~/.aws/credentials on unix based systems) file and the "default"
12854 profile, to change set these environment variables:
12855
12856 • AWS_SHARED_CREDENTIALS_FILE to control which file.
12857
12858 • AWS_PROFILE to control which profile to use.
12859
12860 • Or, run rclone in an ECS task with an IAM role (AWS only).
12861
12862 • Or, run rclone on an EC2 instance with an IAM role (AWS only).
12863
12864 • Or, run rclone in an EKS pod with an IAM role that is associated
12865 with a service account (AWS only).
12866
12867 If none of these option actually end up providing rclone with AWS cre‐
12868 dentials then S3 interaction will be non-authenticated (see below).
12869
12870 S3 Permissions
12871 When using the sync subcommand of rclone the following minimum permis‐
12872 sions are required to be available on the bucket being written to:
12873
12874 • ListBucket
12875
12876 • DeleteObject
12877
12878 • GetObject
12879
12880 • PutObject
12881
12882 • PutObjectACL
12883
12884 When using the lsd subcommand, the ListAllMyBuckets permission is re‐
12885 quired.
12886
12887 Example policy:
12888
12889 {
12890 "Version": "2012-10-17",
12891 "Statement": [
12892 {
12893 "Effect": "Allow",
12894 "Principal": {
12895 "AWS": "arn:aws:iam::USER_SID:user/USER_NAME"
12896 },
12897 "Action": [
12898 "s3:ListBucket",
12899 "s3:DeleteObject",
12900 "s3:GetObject",
12901 "s3:PutObject",
12902 "s3:PutObjectAcl"
12903 ],
12904 "Resource": [
12905 "arn:aws:s3:::BUCKET_NAME/*",
12906 "arn:aws:s3:::BUCKET_NAME"
12907 ]
12908 },
12909 {
12910 "Effect": "Allow",
12911 "Action": "s3:ListAllMyBuckets",
12912 "Resource": "arn:aws:s3:::*"
12913 }
12914 ]
12915 }
12916
12917 Notes on above:
12918
12919 1. This is a policy that can be used when creating bucket. It assumes
12920 that USER_NAME has been created.
12921
12922 2. The Resource entry must include both resource ARNs, as one implies
12923 the bucket and the other implies the bucket's objects.
12924
12925 For reference, here's an Ansible script
12926 (https://gist.github.com/ebridges/ebfc9042dd7c756cd101cfa807b7ae2b)
12927 that will generate one or more buckets that will work with rclone sync.
12928
12929 Key Management System (KMS)
12930 If you are using server-side encryption with KMS then you must make
12931 sure rclone is configured with server_side_encryption = aws:kms other‐
12932 wise you will find you can't transfer small objects - these will create
12933 checksum errors.
12934
12935 Glacier and Glacier Deep Archive
12936 You can upload objects using the glacier storage class or transition
12937 them to glacier using a lifecycle policy (http://docs.aws.ama‐
12938 zon.com/AmazonS3/latest/user-guide/create-lifecycle.html). The bucket
12939 can still be synced or copied into normally, but if rclone tries to ac‐
12940 cess data from the glacier storage class you will see an error like be‐
12941 low.
12942
12943 2017/09/11 19:07:43 Failed to sync: failed to open source object: Object in GLACIER, restore first: path/to/file
12944
12945 In this case you need to restore (http://docs.aws.amazon.com/Ama‐
12946 zonS3/latest/user-guide/restore-archived-objects.html) the object(s) in
12947 question before using rclone.
12948
12949 Note that rclone only speaks the S3 API it does not speak the Glacier
12950 Vault API, so rclone cannot directly access Glacier Vaults.
12951
12952 Standard Options
12953 Here are the standard options specific to s3 (Amazon S3 Compliant Stor‐
12954 age Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost,
12955 IBM COS, Minio, and Tencent COS).
12956
12957 --s3-provider
12958 Choose your S3 provider.
12959
12960 • Config: provider
12961
12962 • Env Var: RCLONE_S3_PROVIDER
12963
12964 • Type: string
12965
12966 • Default: ""
12967
12968 • Examples:
12969
12970 • "AWS"
12971
12972 • Amazon Web Services (AWS) S3
12973
12974 • "Alibaba"
12975
12976 • Alibaba Cloud Object Storage System (OSS) formerly Aliyun
12977
12978 • "Ceph"
12979
12980 • Ceph Object Storage
12981
12982 • "DigitalOcean"
12983
12984 • Digital Ocean Spaces
12985
12986 • "Dreamhost"
12987
12988 • Dreamhost DreamObjects
12989
12990 • "IBMCOS"
12991
12992 • IBM COS S3
12993
12994 • "Minio"
12995
12996 • Minio Object Storage
12997
12998 • "Netease"
12999
13000 • Netease Object Storage (NOS)
13001
13002 • "Scaleway"
13003
13004 • Scaleway Object Storage
13005
13006 • "StackPath"
13007
13008 • StackPath Object Storage
13009
13010 • "TencentCOS"
13011
13012 • Tencent Cloud Object Storage (COS)
13013
13014 • "Wasabi"
13015
13016 • Wasabi Object Storage
13017
13018 • "Other"
13019
13020 • Any other S3 compatible provider
13021
13022 --s3-env-auth
13023 Get AWS credentials from runtime (environment variables or EC2/ECS meta
13024 data if no env vars). Only applies if access_key_id and secret_ac‐
13025 cess_key is blank.
13026
13027 • Config: env_auth
13028
13029 • Env Var: RCLONE_S3_ENV_AUTH
13030
13031 • Type: bool
13032
13033 • Default: false
13034
13035 • Examples:
13036
13037 • "false"
13038
13039 • Enter AWS credentials in the next step
13040
13041 • "true"
13042
13043 • Get AWS credentials from the environment (env vars or IAM)
13044
13045 --s3-access-key-id
13046 AWS Access Key ID. Leave blank for anonymous access or runtime creden‐
13047 tials.
13048
13049 • Config: access_key_id
13050
13051 • Env Var: RCLONE_S3_ACCESS_KEY_ID
13052
13053 • Type: string
13054
13055 • Default: ""
13056
13057 --s3-secret-access-key
13058 AWS Secret Access Key (password) Leave blank for anonymous access or
13059 runtime credentials.
13060
13061 • Config: secret_access_key
13062
13063 • Env Var: RCLONE_S3_SECRET_ACCESS_KEY
13064
13065 • Type: string
13066
13067 • Default: ""
13068
13069 --s3-region
13070 Region to connect to.
13071
13072 • Config: region
13073
13074 • Env Var: RCLONE_S3_REGION
13075
13076 • Type: string
13077
13078 • Default: ""
13079
13080 • Examples:
13081
13082 • "us-east-1"
13083
13084 • The default endpoint - a good choice if you are unsure.
13085
13086 • US Region, Northern Virginia, or Pacific Northwest.
13087
13088 • Leave location constraint empty.
13089
13090 • "us-east-2"
13091
13092 • US East (Ohio) Region
13093
13094 • Needs location constraint us-east-2.
13095
13096 • "us-west-1"
13097
13098 • US West (Northern California) Region
13099
13100 • Needs location constraint us-west-1.
13101
13102 • "us-west-2"
13103
13104 • US West (Oregon) Region
13105
13106 • Needs location constraint us-west-2.
13107
13108 • "ca-central-1"
13109
13110 • Canada (Central) Region
13111
13112 • Needs location constraint ca-central-1.
13113
13114 • "eu-west-1"
13115
13116 • EU (Ireland) Region
13117
13118 • Needs location constraint EU or eu-west-1.
13119
13120 • "eu-west-2"
13121
13122 • EU (London) Region
13123
13124 • Needs location constraint eu-west-2.
13125
13126 • "eu-west-3"
13127
13128 • EU (Paris) Region
13129
13130 • Needs location constraint eu-west-3.
13131
13132 • "eu-north-1"
13133
13134 • EU (Stockholm) Region
13135
13136 • Needs location constraint eu-north-1.
13137
13138 • "eu-south-1"
13139
13140 • EU (Milan) Region
13141
13142 • Needs location constraint eu-south-1.
13143
13144 • "eu-central-1"
13145
13146 • EU (Frankfurt) Region
13147
13148 • Needs location constraint eu-central-1.
13149
13150 • "ap-southeast-1"
13151
13152 • Asia Pacific (Singapore) Region
13153
13154 • Needs location constraint ap-southeast-1.
13155
13156 • "ap-southeast-2"
13157
13158 • Asia Pacific (Sydney) Region
13159
13160 • Needs location constraint ap-southeast-2.
13161
13162 • "ap-northeast-1"
13163
13164 • Asia Pacific (Tokyo) Region
13165
13166 • Needs location constraint ap-northeast-1.
13167
13168 • "ap-northeast-2"
13169
13170 • Asia Pacific (Seoul)
13171
13172 • Needs location constraint ap-northeast-2.
13173
13174 • "ap-northeast-3"
13175
13176 • Asia Pacific (Osaka-Local)
13177
13178 • Needs location constraint ap-northeast-3.
13179
13180 • "ap-south-1"
13181
13182 • Asia Pacific (Mumbai)
13183
13184 • Needs location constraint ap-south-1.
13185
13186 • "ap-east-1"
13187
13188 • Asia Pacific (Hong Kong) Region
13189
13190 • Needs location constraint ap-east-1.
13191
13192 • "sa-east-1"
13193
13194 • South America (Sao Paulo) Region
13195
13196 • Needs location constraint sa-east-1.
13197
13198 • "me-south-1"
13199
13200 • Middle East (Bahrain) Region
13201
13202 • Needs location constraint me-south-1.
13203
13204 • "af-south-1"
13205
13206 • Africa (Cape Town) Region
13207
13208 • Needs location constraint af-south-1.
13209
13210 • "cn-north-1"
13211
13212 • China (Beijing) Region
13213
13214 • Needs location constraint cn-north-1.
13215
13216 • "cn-northwest-1"
13217
13218 • China (Ningxia) Region
13219
13220 • Needs location constraint cn-northwest-1.
13221
13222 • "us-gov-east-1"
13223
13224 • AWS GovCloud (US-East) Region
13225
13226 • Needs location constraint us-gov-east-1.
13227
13228 • "us-gov-west-1"
13229
13230 • AWS GovCloud (US) Region
13231
13232 • Needs location constraint us-gov-west-1.
13233
13234 --s3-region
13235 Region to connect to.
13236
13237 • Config: region
13238
13239 • Env Var: RCLONE_S3_REGION
13240
13241 • Type: string
13242
13243 • Default: ""
13244
13245 • Examples:
13246
13247 • "nl-ams"
13248
13249 • Amsterdam, The Netherlands
13250
13251 • "fr-par"
13252
13253 • Paris, France
13254
13255 --s3-region
13256 Region to connect to. Leave blank if you are using an S3 clone and you
13257 don't have a region.
13258
13259 • Config: region
13260
13261 • Env Var: RCLONE_S3_REGION
13262
13263 • Type: string
13264
13265 • Default: ""
13266
13267 • Examples:
13268
13269 • ""
13270
13271 • Use this if unsure. Will use v4 signatures and an empty region.
13272
13273 • "other-v2-signature"
13274
13275 • Use this only if v4 signatures don't work, e.g. pre Jewel/v10
13276 CEPH.
13277
13278 --s3-endpoint
13279 Endpoint for S3 API. Leave blank if using AWS to use the default end‐
13280 point for the region.
13281
13282 • Config: endpoint
13283
13284 • Env Var: RCLONE_S3_ENDPOINT
13285
13286 • Type: string
13287
13288 • Default: ""
13289
13290 --s3-endpoint
13291 Endpoint for IBM COS S3 API. Specify if using an IBM COS On Premise.
13292
13293 • Config: endpoint
13294
13295 • Env Var: RCLONE_S3_ENDPOINT
13296
13297 • Type: string
13298
13299 • Default: ""
13300
13301 • Examples:
13302
13303 • "s3.us.cloud-object-storage.appdomain.cloud"
13304
13305 • US Cross Region Endpoint
13306
13307 • "s3.dal.us.cloud-object-storage.appdomain.cloud"
13308
13309 • US Cross Region Dallas Endpoint
13310
13311 • "s3.wdc.us.cloud-object-storage.appdomain.cloud"
13312
13313 • US Cross Region Washington DC Endpoint
13314
13315 • "s3.sjc.us.cloud-object-storage.appdomain.cloud"
13316
13317 • US Cross Region San Jose Endpoint
13318
13319 • "s3.private.us.cloud-object-storage.appdomain.cloud"
13320
13321 • US Cross Region Private Endpoint
13322
13323 • "s3.private.dal.us.cloud-object-storage.appdomain.cloud"
13324
13325 • US Cross Region Dallas Private Endpoint
13326
13327 • "s3.private.wdc.us.cloud-object-storage.appdomain.cloud"
13328
13329 • US Cross Region Washington DC Private Endpoint
13330
13331 • "s3.private.sjc.us.cloud-object-storage.appdomain.cloud"
13332
13333 • US Cross Region San Jose Private Endpoint
13334
13335 • "s3.us-east.cloud-object-storage.appdomain.cloud"
13336
13337 • US Region East Endpoint
13338
13339 • "s3.private.us-east.cloud-object-storage.appdomain.cloud"
13340
13341 • US Region East Private Endpoint
13342
13343 • "s3.us-south.cloud-object-storage.appdomain.cloud"
13344
13345 • US Region South Endpoint
13346
13347 • "s3.private.us-south.cloud-object-storage.appdomain.cloud"
13348
13349 • US Region South Private Endpoint
13350
13351 • "s3.eu.cloud-object-storage.appdomain.cloud"
13352
13353 • EU Cross Region Endpoint
13354
13355 • "s3.fra.eu.cloud-object-storage.appdomain.cloud"
13356
13357 • EU Cross Region Frankfurt Endpoint
13358
13359 • "s3.mil.eu.cloud-object-storage.appdomain.cloud"
13360
13361 • EU Cross Region Milan Endpoint
13362
13363 • "s3.ams.eu.cloud-object-storage.appdomain.cloud"
13364
13365 • EU Cross Region Amsterdam Endpoint
13366
13367 • "s3.private.eu.cloud-object-storage.appdomain.cloud"
13368
13369 • EU Cross Region Private Endpoint
13370
13371 • "s3.private.fra.eu.cloud-object-storage.appdomain.cloud"
13372
13373 • EU Cross Region Frankfurt Private Endpoint
13374
13375 • "s3.private.mil.eu.cloud-object-storage.appdomain.cloud"
13376
13377 • EU Cross Region Milan Private Endpoint
13378
13379 • "s3.private.ams.eu.cloud-object-storage.appdomain.cloud"
13380
13381 • EU Cross Region Amsterdam Private Endpoint
13382
13383 • "s3.eu-gb.cloud-object-storage.appdomain.cloud"
13384
13385 • Great Britain Endpoint
13386
13387 • "s3.private.eu-gb.cloud-object-storage.appdomain.cloud"
13388
13389 • Great Britain Private Endpoint
13390
13391 • "s3.eu-de.cloud-object-storage.appdomain.cloud"
13392
13393 • EU Region DE Endpoint
13394
13395 • "s3.private.eu-de.cloud-object-storage.appdomain.cloud"
13396
13397 • EU Region DE Private Endpoint
13398
13399 • "s3.ap.cloud-object-storage.appdomain.cloud"
13400
13401 • APAC Cross Regional Endpoint
13402
13403 • "s3.tok.ap.cloud-object-storage.appdomain.cloud"
13404
13405 • APAC Cross Regional Tokyo Endpoint
13406
13407 • "s3.hkg.ap.cloud-object-storage.appdomain.cloud"
13408
13409 • APAC Cross Regional HongKong Endpoint
13410
13411 • "s3.seo.ap.cloud-object-storage.appdomain.cloud"
13412
13413 • APAC Cross Regional Seoul Endpoint
13414
13415 • "s3.private.ap.cloud-object-storage.appdomain.cloud"
13416
13417 • APAC Cross Regional Private Endpoint
13418
13419 • "s3.private.tok.ap.cloud-object-storage.appdomain.cloud"
13420
13421 • APAC Cross Regional Tokyo Private Endpoint
13422
13423 • "s3.private.hkg.ap.cloud-object-storage.appdomain.cloud"
13424
13425 • APAC Cross Regional HongKong Private Endpoint
13426
13427 • "s3.private.seo.ap.cloud-object-storage.appdomain.cloud"
13428
13429 • APAC Cross Regional Seoul Private Endpoint
13430
13431 • "s3.jp-tok.cloud-object-storage.appdomain.cloud"
13432
13433 • APAC Region Japan Endpoint
13434
13435 • "s3.private.jp-tok.cloud-object-storage.appdomain.cloud"
13436
13437 • APAC Region Japan Private Endpoint
13438
13439 • "s3.au-syd.cloud-object-storage.appdomain.cloud"
13440
13441 • APAC Region Australia Endpoint
13442
13443 • "s3.private.au-syd.cloud-object-storage.appdomain.cloud"
13444
13445 • APAC Region Australia Private Endpoint
13446
13447 • "s3.ams03.cloud-object-storage.appdomain.cloud"
13448
13449 • Amsterdam Single Site Endpoint
13450
13451 • "s3.private.ams03.cloud-object-storage.appdomain.cloud"
13452
13453 • Amsterdam Single Site Private Endpoint
13454
13455 • "s3.che01.cloud-object-storage.appdomain.cloud"
13456
13457 • Chennai Single Site Endpoint
13458
13459 • "s3.private.che01.cloud-object-storage.appdomain.cloud"
13460
13461 • Chennai Single Site Private Endpoint
13462
13463 • "s3.mel01.cloud-object-storage.appdomain.cloud"
13464
13465 • Melbourne Single Site Endpoint
13466
13467 • "s3.private.mel01.cloud-object-storage.appdomain.cloud"
13468
13469 • Melbourne Single Site Private Endpoint
13470
13471 • "s3.osl01.cloud-object-storage.appdomain.cloud"
13472
13473 • Oslo Single Site Endpoint
13474
13475 • "s3.private.osl01.cloud-object-storage.appdomain.cloud"
13476
13477 • Oslo Single Site Private Endpoint
13478
13479 • "s3.tor01.cloud-object-storage.appdomain.cloud"
13480
13481 • Toronto Single Site Endpoint
13482
13483 • "s3.private.tor01.cloud-object-storage.appdomain.cloud"
13484
13485 • Toronto Single Site Private Endpoint
13486
13487 • "s3.seo01.cloud-object-storage.appdomain.cloud"
13488
13489 • Seoul Single Site Endpoint
13490
13491 • "s3.private.seo01.cloud-object-storage.appdomain.cloud"
13492
13493 • Seoul Single Site Private Endpoint
13494
13495 • "s3.mon01.cloud-object-storage.appdomain.cloud"
13496
13497 • Montreal Single Site Endpoint
13498
13499 • "s3.private.mon01.cloud-object-storage.appdomain.cloud"
13500
13501 • Montreal Single Site Private Endpoint
13502
13503 • "s3.mex01.cloud-object-storage.appdomain.cloud"
13504
13505 • Mexico Single Site Endpoint
13506
13507 • "s3.private.mex01.cloud-object-storage.appdomain.cloud"
13508
13509 • Mexico Single Site Private Endpoint
13510
13511 • "s3.sjc04.cloud-object-storage.appdomain.cloud"
13512
13513 • San Jose Single Site Endpoint
13514
13515 • "s3.private.sjc04.cloud-object-storage.appdomain.cloud"
13516
13517 • San Jose Single Site Private Endpoint
13518
13519 • "s3.mil01.cloud-object-storage.appdomain.cloud"
13520
13521 • Milan Single Site Endpoint
13522
13523 • "s3.private.mil01.cloud-object-storage.appdomain.cloud"
13524
13525 • Milan Single Site Private Endpoint
13526
13527 • "s3.hkg02.cloud-object-storage.appdomain.cloud"
13528
13529 • Hong Kong Single Site Endpoint
13530
13531 • "s3.private.hkg02.cloud-object-storage.appdomain.cloud"
13532
13533 • Hong Kong Single Site Private Endpoint
13534
13535 • "s3.par01.cloud-object-storage.appdomain.cloud"
13536
13537 • Paris Single Site Endpoint
13538
13539 • "s3.private.par01.cloud-object-storage.appdomain.cloud"
13540
13541 • Paris Single Site Private Endpoint
13542
13543 • "s3.sng01.cloud-object-storage.appdomain.cloud"
13544
13545 • Singapore Single Site Endpoint
13546
13547 • "s3.private.sng01.cloud-object-storage.appdomain.cloud"
13548
13549 • Singapore Single Site Private Endpoint
13550
13551 --s3-endpoint
13552 Endpoint for OSS API.
13553
13554 • Config: endpoint
13555
13556 • Env Var: RCLONE_S3_ENDPOINT
13557
13558 • Type: string
13559
13560 • Default: ""
13561
13562 • Examples:
13563
13564 • "oss-cn-hangzhou.aliyuncs.com"
13565
13566 • East China 1 (Hangzhou)
13567
13568 • "oss-cn-shanghai.aliyuncs.com"
13569
13570 • East China 2 (Shanghai)
13571
13572 • "oss-cn-qingdao.aliyuncs.com"
13573
13574 • North China 1 (Qingdao)
13575
13576 • "oss-cn-beijing.aliyuncs.com"
13577
13578 • North China 2 (Beijing)
13579
13580 • "oss-cn-zhangjiakou.aliyuncs.com"
13581
13582 • North China 3 (Zhangjiakou)
13583
13584 • "oss-cn-huhehaote.aliyuncs.com"
13585
13586 • North China 5 (Huhehaote)
13587
13588 • "oss-cn-shenzhen.aliyuncs.com"
13589
13590 • South China 1 (Shenzhen)
13591
13592 • "oss-cn-hongkong.aliyuncs.com"
13593
13594 • Hong Kong (Hong Kong)
13595
13596 • "oss-us-west-1.aliyuncs.com"
13597
13598 • US West 1 (Silicon Valley)
13599
13600 • "oss-us-east-1.aliyuncs.com"
13601
13602 • US East 1 (Virginia)
13603
13604 • "oss-ap-southeast-1.aliyuncs.com"
13605
13606 • Southeast Asia Southeast 1 (Singapore)
13607
13608 • "oss-ap-southeast-2.aliyuncs.com"
13609
13610 • Asia Pacific Southeast 2 (Sydney)
13611
13612 • "oss-ap-southeast-3.aliyuncs.com"
13613
13614 • Southeast Asia Southeast 3 (Kuala Lumpur)
13615
13616 • "oss-ap-southeast-5.aliyuncs.com"
13617
13618 • Asia Pacific Southeast 5 (Jakarta)
13619
13620 • "oss-ap-northeast-1.aliyuncs.com"
13621
13622 • Asia Pacific Northeast 1 (Japan)
13623
13624 • "oss-ap-south-1.aliyuncs.com"
13625
13626 • Asia Pacific South 1 (Mumbai)
13627
13628 • "oss-eu-central-1.aliyuncs.com"
13629
13630 • Central Europe 1 (Frankfurt)
13631
13632 • "oss-eu-west-1.aliyuncs.com"
13633
13634 • West Europe (London)
13635
13636 • "oss-me-east-1.aliyuncs.com"
13637
13638 • Middle East 1 (Dubai)
13639
13640 --s3-endpoint
13641 Endpoint for Scaleway Object Storage.
13642
13643 • Config: endpoint
13644
13645 • Env Var: RCLONE_S3_ENDPOINT
13646
13647 • Type: string
13648
13649 • Default: ""
13650
13651 • Examples:
13652
13653 • "s3.nl-ams.scw.cloud"
13654
13655 • Amsterdam Endpoint
13656
13657 • "s3.fr-par.scw.cloud"
13658
13659 • Paris Endpoint
13660
13661 --s3-endpoint
13662 Endpoint for StackPath Object Storage.
13663
13664 • Config: endpoint
13665
13666 • Env Var: RCLONE_S3_ENDPOINT
13667
13668 • Type: string
13669
13670 • Default: ""
13671
13672 • Examples:
13673
13674 • "s3.us-east-2.stackpathstorage.com"
13675
13676 • US East Endpoint
13677
13678 • "s3.us-west-1.stackpathstorage.com"
13679
13680 • US West Endpoint
13681
13682 • "s3.eu-central-1.stackpathstorage.com"
13683
13684 • EU Endpoint
13685
13686 --s3-endpoint
13687 Endpoint for Tencent COS API.
13688
13689 • Config: endpoint
13690
13691 • Env Var: RCLONE_S3_ENDPOINT
13692
13693 • Type: string
13694
13695 • Default: ""
13696
13697 • Examples:
13698
13699 • "cos.ap-beijing.myqcloud.com"
13700
13701 • Beijing Region.
13702
13703 • "cos.ap-nanjing.myqcloud.com"
13704
13705 • Nanjing Region.
13706
13707 • "cos.ap-shanghai.myqcloud.com"
13708
13709 • Shanghai Region.
13710
13711 • "cos.ap-guangzhou.myqcloud.com"
13712
13713 • Guangzhou Region.
13714
13715 • "cos.ap-nanjing.myqcloud.com"
13716
13717 • Nanjing Region.
13718
13719 • "cos.ap-chengdu.myqcloud.com"
13720
13721 • Chengdu Region.
13722
13723 • "cos.ap-chongqing.myqcloud.com"
13724
13725 • Chongqing Region.
13726
13727 • "cos.ap-hongkong.myqcloud.com"
13728
13729 • Hong Kong (China) Region.
13730
13731 • "cos.ap-singapore.myqcloud.com"
13732
13733 • Singapore Region.
13734
13735 • "cos.ap-mumbai.myqcloud.com"
13736
13737 • Mumbai Region.
13738
13739 • "cos.ap-seoul.myqcloud.com"
13740
13741 • Seoul Region.
13742
13743 • "cos.ap-bangkok.myqcloud.com"
13744
13745 • Bangkok Region.
13746
13747 • "cos.ap-tokyo.myqcloud.com"
13748
13749 • Tokyo Region.
13750
13751 • "cos.na-siliconvalley.myqcloud.com"
13752
13753 • Silicon Valley Region.
13754
13755 • "cos.na-ashburn.myqcloud.com"
13756
13757 • Virginia Region.
13758
13759 • "cos.na-toronto.myqcloud.com"
13760
13761 • Toronto Region.
13762
13763 • "cos.eu-frankfurt.myqcloud.com"
13764
13765 • Frankfurt Region.
13766
13767 • "cos.eu-moscow.myqcloud.com"
13768
13769 • Moscow Region.
13770
13771 • "cos.accelerate.myqcloud.com"
13772
13773 • Use Tencent COS Accelerate Endpoint.
13774
13775 --s3-endpoint
13776 Endpoint for S3 API. Required when using an S3 clone.
13777
13778 • Config: endpoint
13779
13780 • Env Var: RCLONE_S3_ENDPOINT
13781
13782 • Type: string
13783
13784 • Default: ""
13785
13786 • Examples:
13787
13788 • "objects-us-east-1.dream.io"
13789
13790 • Dream Objects endpoint
13791
13792 • "nyc3.digitaloceanspaces.com"
13793
13794 • Digital Ocean Spaces New York 3
13795
13796 • "ams3.digitaloceanspaces.com"
13797
13798 • Digital Ocean Spaces Amsterdam 3
13799
13800 • "sgp1.digitaloceanspaces.com"
13801
13802 • Digital Ocean Spaces Singapore 1
13803
13804 • "s3.wasabisys.com"
13805
13806 • Wasabi US East endpoint
13807
13808 • "s3.us-west-1.wasabisys.com"
13809
13810 • Wasabi US West endpoint
13811
13812 • "s3.eu-central-1.wasabisys.com"
13813
13814 • Wasabi EU Central endpoint
13815
13816 --s3-location-constraint
13817 Location constraint - must be set to match the Region. Used when cre‐
13818 ating buckets only.
13819
13820 • Config: location_constraint
13821
13822 • Env Var: RCLONE_S3_LOCATION_CONSTRAINT
13823
13824 • Type: string
13825
13826 • Default: ""
13827
13828 • Examples:
13829
13830 • ""
13831
13832 • Empty for US Region, Northern Virginia, or Pacific Northwest.
13833
13834 • "us-east-2"
13835
13836 • US East (Ohio) Region.
13837
13838 • "us-west-1"
13839
13840 • US West (Northern California) Region.
13841
13842 • "us-west-2"
13843
13844 • US West (Oregon) Region.
13845
13846 • "ca-central-1"
13847
13848 • Canada (Central) Region.
13849
13850 • "eu-west-1"
13851
13852 • EU (Ireland) Region.
13853
13854 • "eu-west-2"
13855
13856 • EU (London) Region.
13857
13858 • "eu-west-3"
13859
13860 • EU (Paris) Region.
13861
13862 • "eu-north-1"
13863
13864 • EU (Stockholm) Region.
13865
13866 • "eu-south-1"
13867
13868 • EU (Milan) Region.
13869
13870 • "EU"
13871
13872 • EU Region.
13873
13874 • "ap-southeast-1"
13875
13876 • Asia Pacific (Singapore) Region.
13877
13878 • "ap-southeast-2"
13879
13880 • Asia Pacific (Sydney) Region.
13881
13882 • "ap-northeast-1"
13883
13884 • Asia Pacific (Tokyo) Region.
13885
13886 • "ap-northeast-2"
13887
13888 • Asia Pacific (Seoul) Region.
13889
13890 • "ap-northeast-3"
13891
13892 • Asia Pacific (Osaka-Local) Region.
13893
13894 • "ap-south-1"
13895
13896 • Asia Pacific (Mumbai) Region.
13897
13898 • "ap-east-1"
13899
13900 • Asia Pacific (Hong Kong) Region.
13901
13902 • "sa-east-1"
13903
13904 • South America (Sao Paulo) Region.
13905
13906 • "me-south-1"
13907
13908 • Middle East (Bahrain) Region.
13909
13910 • "af-south-1"
13911
13912 • Africa (Cape Town) Region.
13913
13914 • "cn-north-1"
13915
13916 • China (Beijing) Region
13917
13918 • "cn-northwest-1"
13919
13920 • China (Ningxia) Region.
13921
13922 • "us-gov-east-1"
13923
13924 • AWS GovCloud (US-East) Region.
13925
13926 • "us-gov-west-1"
13927
13928 • AWS GovCloud (US) Region.
13929
13930 --s3-location-constraint
13931 Location constraint - must match endpoint when using IBM Cloud Public.
13932 For on-prem COS, do not make a selection from this list, hit enter
13933
13934 • Config: location_constraint
13935
13936 • Env Var: RCLONE_S3_LOCATION_CONSTRAINT
13937
13938 • Type: string
13939
13940 • Default: ""
13941
13942 • Examples:
13943
13944 • "us-standard"
13945
13946 • US Cross Region Standard
13947
13948 • "us-vault"
13949
13950 • US Cross Region Vault
13951
13952 • "us-cold"
13953
13954 • US Cross Region Cold
13955
13956 • "us-flex"
13957
13958 • US Cross Region Flex
13959
13960 • "us-east-standard"
13961
13962 • US East Region Standard
13963
13964 • "us-east-vault"
13965
13966 • US East Region Vault
13967
13968 • "us-east-cold"
13969
13970 • US East Region Cold
13971
13972 • "us-east-flex"
13973
13974 • US East Region Flex
13975
13976 • "us-south-standard"
13977
13978 • US South Region Standard
13979
13980 • "us-south-vault"
13981
13982 • US South Region Vault
13983
13984 • "us-south-cold"
13985
13986 • US South Region Cold
13987
13988 • "us-south-flex"
13989
13990 • US South Region Flex
13991
13992 • "eu-standard"
13993
13994 • EU Cross Region Standard
13995
13996 • "eu-vault"
13997
13998 • EU Cross Region Vault
13999
14000 • "eu-cold"
14001
14002 • EU Cross Region Cold
14003
14004 • "eu-flex"
14005
14006 • EU Cross Region Flex
14007
14008 • "eu-gb-standard"
14009
14010 • Great Britain Standard
14011
14012 • "eu-gb-vault"
14013
14014 • Great Britain Vault
14015
14016 • "eu-gb-cold"
14017
14018 • Great Britain Cold
14019
14020 • "eu-gb-flex"
14021
14022 • Great Britain Flex
14023
14024 • "ap-standard"
14025
14026 • APAC Standard
14027
14028 • "ap-vault"
14029
14030 • APAC Vault
14031
14032 • "ap-cold"
14033
14034 • APAC Cold
14035
14036 • "ap-flex"
14037
14038 • APAC Flex
14039
14040 • "mel01-standard"
14041
14042 • Melbourne Standard
14043
14044 • "mel01-vault"
14045
14046 • Melbourne Vault
14047
14048 • "mel01-cold"
14049
14050 • Melbourne Cold
14051
14052 • "mel01-flex"
14053
14054 • Melbourne Flex
14055
14056 • "tor01-standard"
14057
14058 • Toronto Standard
14059
14060 • "tor01-vault"
14061
14062 • Toronto Vault
14063
14064 • "tor01-cold"
14065
14066 • Toronto Cold
14067
14068 • "tor01-flex"
14069
14070 • Toronto Flex
14071
14072 --s3-location-constraint
14073 Location constraint - must be set to match the Region. Leave blank if
14074 not sure. Used when creating buckets only.
14075
14076 • Config: location_constraint
14077
14078 • Env Var: RCLONE_S3_LOCATION_CONSTRAINT
14079
14080 • Type: string
14081
14082 • Default: ""
14083
14084 --s3-acl
14085 Canned ACL used when creating buckets and storing or copying objects.
14086
14087 This ACL is used for creating objects and if bucket_acl isn't set, for
14088 creating buckets too.
14089
14090 For more info visit https://docs.aws.amazon.com/AmazonS3/lat‐
14091 est/dev/acl-overview.html#canned-acl
14092
14093 Note that this ACL is applied when server-side copying objects as S3
14094 doesn't copy the ACL from the source but rather writes a fresh one.
14095
14096 • Config: acl
14097
14098 • Env Var: RCLONE_S3_ACL
14099
14100 • Type: string
14101
14102 • Default: ""
14103
14104 • Examples:
14105
14106 • "default"
14107
14108 • Owner gets Full_CONTROL. No one else has access rights (de‐
14109 fault).
14110
14111 • "private"
14112
14113 • Owner gets FULL_CONTROL. No one else has access rights (de‐
14114 fault).
14115
14116 • "public-read"
14117
14118 • Owner gets FULL_CONTROL. The AllUsers group gets READ access.
14119
14120 • "public-read-write"
14121
14122 • Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
14123 access.
14124
14125 • Granting this on a bucket is generally not recommended.
14126
14127 • "authenticated-read"
14128
14129 • Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
14130 access.
14131
14132 • "bucket-owner-read"
14133
14134 • Object owner gets FULL_CONTROL. Bucket owner gets READ access.
14135
14136 • If you specify this canned ACL when creating a bucket, Amazon S3
14137 ignores it.
14138
14139 • "bucket-owner-full-control"
14140
14141 • Both the object owner and the bucket owner get FULL_CONTROL over
14142 the object.
14143
14144 • If you specify this canned ACL when creating a bucket, Amazon S3
14145 ignores it.
14146
14147 • "private"
14148
14149 • Owner gets FULL_CONTROL. No one else has access rights (de‐
14150 fault). This acl is available on IBM Cloud (Infra), IBM Cloud
14151 (Storage), On-Premise COS
14152
14153 • "public-read"
14154
14155 • Owner gets FULL_CONTROL. The AllUsers group gets READ access.
14156 This acl is available on IBM Cloud (Infra), IBM Cloud (Storage),
14157 On-Premise IBM COS
14158
14159 • "public-read-write"
14160
14161 • Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
14162 access. This acl is available on IBM Cloud (Infra), On-Premise
14163 IBM COS
14164
14165 • "authenticated-read"
14166
14167 • Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
14168 access. Not supported on Buckets. This acl is available on IBM
14169 Cloud (Infra) and On-Premise IBM COS
14170
14171 --s3-server-side-encryption
14172 The server-side encryption algorithm used when storing this object in
14173 S3.
14174
14175 • Config: server_side_encryption
14176
14177 • Env Var: RCLONE_S3_SERVER_SIDE_ENCRYPTION
14178
14179 • Type: string
14180
14181 • Default: ""
14182
14183 • Examples:
14184
14185 • ""
14186
14187 • None
14188
14189 • "AES256"
14190
14191 • AES256
14192
14193 • "aws:kms"
14194
14195 • aws:kms
14196
14197 --s3-sse-kms-key-id
14198 If using KMS ID you must provide the ARN of Key.
14199
14200 • Config: sse_kms_key_id
14201
14202 • Env Var: RCLONE_S3_SSE_KMS_KEY_ID
14203
14204 • Type: string
14205
14206 • Default: ""
14207
14208 • Examples:
14209
14210 • ""
14211
14212 • None
14213
14214 • "arn:aws:kms:us-east-1:*"
14215
14216 • arn:aws:kms:*
14217
14218 --s3-storage-class
14219 The storage class to use when storing new objects in S3.
14220
14221 • Config: storage_class
14222
14223 • Env Var: RCLONE_S3_STORAGE_CLASS
14224
14225 • Type: string
14226
14227 • Default: ""
14228
14229 • Examples:
14230
14231 • ""
14232
14233 • Default
14234
14235 • "STANDARD"
14236
14237 • Standard storage class
14238
14239 • "REDUCED_REDUNDANCY"
14240
14241 • Reduced redundancy storage class
14242
14243 • "STANDARD_IA"
14244
14245 • Standard Infrequent Access storage class
14246
14247 • "ONEZONE_IA"
14248
14249 • One Zone Infrequent Access storage class
14250
14251 • "GLACIER"
14252
14253 • Glacier storage class
14254
14255 • "DEEP_ARCHIVE"
14256
14257 • Glacier Deep Archive storage class
14258
14259 • "INTELLIGENT_TIERING"
14260
14261 • Intelligent-Tiering storage class
14262
14263 --s3-storage-class
14264 The storage class to use when storing new objects in OSS.
14265
14266 • Config: storage_class
14267
14268 • Env Var: RCLONE_S3_STORAGE_CLASS
14269
14270 • Type: string
14271
14272 • Default: ""
14273
14274 • Examples:
14275
14276 • ""
14277
14278 • Default
14279
14280 • "STANDARD"
14281
14282 • Standard storage class
14283
14284 • "GLACIER"
14285
14286 • Archive storage mode.
14287
14288 • "STANDARD_IA"
14289
14290 • Infrequent access storage mode.
14291
14292 --s3-storage-class
14293 The storage class to use when storing new objects in Tencent COS.
14294
14295 • Config: storage_class
14296
14297 • Env Var: RCLONE_S3_STORAGE_CLASS
14298
14299 • Type: string
14300
14301 • Default: ""
14302
14303 • Examples:
14304
14305 • ""
14306
14307 • Default
14308
14309 • "STANDARD"
14310
14311 • Standard storage class
14312
14313 • "ARCHIVE"
14314
14315 • Archive storage mode.
14316
14317 • "STANDARD_IA"
14318
14319 • Infrequent access storage mode.
14320
14321 --s3-storage-class
14322 The storage class to use when storing new objects in S3.
14323
14324 • Config: storage_class
14325
14326 • Env Var: RCLONE_S3_STORAGE_CLASS
14327
14328 • Type: string
14329
14330 • Default: ""
14331
14332 • Examples:
14333
14334 • ""
14335
14336 • Default
14337
14338 • "STANDARD"
14339
14340 • The Standard class for any upload; suitable for on-demand content
14341 like streaming or CDN.
14342
14343 • "GLACIER"
14344
14345 • Archived storage; prices are lower, but it needs to be restored
14346 first to be accessed.
14347
14348 Advanced Options
14349 Here are the advanced options specific to s3 (Amazon S3 Compliant Stor‐
14350 age Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost,
14351 IBM COS, Minio, and Tencent COS).
14352
14353 --s3-bucket-acl
14354 Canned ACL used when creating buckets.
14355
14356 For more info visit https://docs.aws.amazon.com/AmazonS3/lat‐
14357 est/dev/acl-overview.html#canned-acl
14358
14359 Note that this ACL is applied when only when creating buckets. If it
14360 isn't set then "acl" is used instead.
14361
14362 • Config: bucket_acl
14363
14364 • Env Var: RCLONE_S3_BUCKET_ACL
14365
14366 • Type: string
14367
14368 • Default: ""
14369
14370 • Examples:
14371
14372 • "private"
14373
14374 • Owner gets FULL_CONTROL. No one else has access rights (de‐
14375 fault).
14376
14377 • "public-read"
14378
14379 • Owner gets FULL_CONTROL. The AllUsers group gets READ access.
14380
14381 • "public-read-write"
14382
14383 • Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
14384 access.
14385
14386 • Granting this on a bucket is generally not recommended.
14387
14388 • "authenticated-read"
14389
14390 • Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
14391 access.
14392
14393 --s3-requester-pays
14394 Enables requester pays option when interacting with S3 bucket.
14395
14396 • Config: requester_pays
14397
14398 • Env Var: RCLONE_S3_REQUESTER_PAYS
14399
14400 • Type: bool
14401
14402 • Default: false
14403
14404 --s3-sse-customer-algorithm
14405 If using SSE-C, the server-side encryption algorithm used when storing
14406 this object in S3.
14407
14408 • Config: sse_customer_algorithm
14409
14410 • Env Var: RCLONE_S3_SSE_CUSTOMER_ALGORITHM
14411
14412 • Type: string
14413
14414 • Default: ""
14415
14416 • Examples:
14417
14418 • ""
14419
14420 • None
14421
14422 • "AES256"
14423
14424 • AES256
14425
14426 --s3-sse-customer-key
14427 If using SSE-C you must provide the secret encryption key used to en‐
14428 crypt/decrypt your data.
14429
14430 • Config: sse_customer_key
14431
14432 • Env Var: RCLONE_S3_SSE_CUSTOMER_KEY
14433
14434 • Type: string
14435
14436 • Default: ""
14437
14438 • Examples:
14439
14440 • ""
14441
14442 • None
14443
14444 --s3-sse-customer-key-md5
14445 If using SSE-C you may provide the secret encryption key MD5 checksum
14446 (optional).
14447
14448 If you leave it blank, this is calculated automatically from the
14449 sse_customer_key provided.
14450
14451 • Config: sse_customer_key_md5
14452
14453 • Env Var: RCLONE_S3_SSE_CUSTOMER_KEY_MD5
14454
14455 • Type: string
14456
14457 • Default: ""
14458
14459 • Examples:
14460
14461 • ""
14462
14463 • None
14464
14465 --s3-upload-cutoff
14466 Cutoff for switching to chunked upload
14467
14468 Any files larger than this will be uploaded in chunks of chunk_size.
14469 The minimum is 0 and the maximum is 5GB.
14470
14471 • Config: upload_cutoff
14472
14473 • Env Var: RCLONE_S3_UPLOAD_CUTOFF
14474
14475 • Type: SizeSuffix
14476
14477 • Default: 200M
14478
14479 --s3-chunk-size
14480 Chunk size to use for uploading.
14481
14482 When uploading files larger than upload_cutoff or files with unknown
14483 size (e.g. from "rclone rcat" or uploaded with "rclone mount" or
14484 google photos or google docs) they will be uploaded as multipart up‐
14485 loads using this chunk size.
14486
14487 Note that "--s3-upload-concurrency" chunks of this size are buffered in
14488 memory per transfer.
14489
14490 If you are transferring large files over high-speed links and you have
14491 enough memory, then increasing this will speed up the transfers.
14492
14493 Rclone will automatically increase the chunk size when uploading a
14494 large file of known size to stay below the 10,000 chunks limit.
14495
14496 Files of unknown size are uploaded with the configured chunk_size.
14497 Since the default chunk size is 5MB and there can be at most 10,000
14498 chunks, this means that by default the maximum size of a file you can
14499 stream upload is 48GB. If you wish to stream upload larger files then
14500 you will need to increase chunk_size.
14501
14502 • Config: chunk_size
14503
14504 • Env Var: RCLONE_S3_CHUNK_SIZE
14505
14506 • Type: SizeSuffix
14507
14508 • Default: 5M
14509
14510 --s3-max-upload-parts
14511 Maximum number of parts in a multipart upload.
14512
14513 This option defines the maximum number of multipart chunks to use when
14514 doing a multipart upload.
14515
14516 This can be useful if a service does not support the AWS S3 specifica‐
14517 tion of 10,000 chunks.
14518
14519 Rclone will automatically increase the chunk size when uploading a
14520 large file of a known size to stay below this number of chunks limit.
14521
14522 • Config: max_upload_parts
14523
14524 • Env Var: RCLONE_S3_MAX_UPLOAD_PARTS
14525
14526 • Type: int
14527
14528 • Default: 10000
14529
14530 --s3-copy-cutoff
14531 Cutoff for switching to multipart copy
14532
14533 Any files larger than this that need to be server-side copied will be
14534 copied in chunks of this size.
14535
14536 The minimum is 0 and the maximum is 5GB.
14537
14538 • Config: copy_cutoff
14539
14540 • Env Var: RCLONE_S3_COPY_CUTOFF
14541
14542 • Type: SizeSuffix
14543
14544 • Default: 4.656G
14545
14546 --s3-disable-checksum
14547 Don't store MD5 checksum with object metadata
14548
14549 Normally rclone will calculate the MD5 checksum of the input before up‐
14550 loading it so it can add it to metadata on the object. This is great
14551 for data integrity checking but can cause long delays for large files
14552 to start uploading.
14553
14554 • Config: disable_checksum
14555
14556 • Env Var: RCLONE_S3_DISABLE_CHECKSUM
14557
14558 • Type: bool
14559
14560 • Default: false
14561
14562 --s3-shared-credentials-file
14563 Path to the shared credentials file
14564
14565 If env_auth = true then rclone can use a shared credentials file.
14566
14567 If this variable is empty rclone will look for the "AWS_SHARED_CREDEN‐
14568 TIALS_FILE" env variable. If the env value is empty it will default to
14569 the current user's home directory.
14570
14571 Linux/OSX: "$HOME/.aws/credentials"
14572 Windows: "%USERPROFILE%\.aws\credentials"
14573
14574 • Config: shared_credentials_file
14575
14576 • Env Var: RCLONE_S3_SHARED_CREDENTIALS_FILE
14577
14578 • Type: string
14579
14580 • Default: ""
14581
14582 --s3-profile
14583 Profile to use in the shared credentials file
14584
14585 If env_auth = true then rclone can use a shared credentials file. This
14586 variable controls which profile is used in that file.
14587
14588 If empty it will default to the environment variable "AWS_PROFILE" or
14589 "default" if that environment variable is also not set.
14590
14591 • Config: profile
14592
14593 • Env Var: RCLONE_S3_PROFILE
14594
14595 • Type: string
14596
14597 • Default: ""
14598
14599 --s3-session-token
14600 An AWS session token
14601
14602 • Config: session_token
14603
14604 • Env Var: RCLONE_S3_SESSION_TOKEN
14605
14606 • Type: string
14607
14608 • Default: ""
14609
14610 --s3-upload-concurrency
14611 Concurrency for multipart uploads.
14612
14613 This is the number of chunks of the same file that are uploaded concur‐
14614 rently.
14615
14616 If you are uploading small numbers of large files over high-speed links
14617 and these uploads do not fully utilize your bandwidth, then increasing
14618 this may help to speed up the transfers.
14619
14620 • Config: upload_concurrency
14621
14622 • Env Var: RCLONE_S3_UPLOAD_CONCURRENCY
14623
14624 • Type: int
14625
14626 • Default: 4
14627
14628 --s3-force-path-style
14629 If true use path style access if false use virtual hosted style.
14630
14631 If this is true (the default) then rclone will use path style access,
14632 if false then rclone will use virtual path style. See the AWS S3 docs
14633 (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#ac‐
14634 cess-bucket-intro) for more info.
14635
14636 Some providers (e.g. AWS, Aliyun OSS, Netease COS, or Tencent COS) re‐
14637 quire this set to false - rclone will do this automatically based on
14638 the provider setting.
14639
14640 • Config: force_path_style
14641
14642 • Env Var: RCLONE_S3_FORCE_PATH_STYLE
14643
14644 • Type: bool
14645
14646 • Default: true
14647
14648 --s3-v2-auth
14649 If true use v2 authentication.
14650
14651 If this is false (the default) then rclone will use v4 authentication.
14652 If it is set then rclone will use v2 authentication.
14653
14654 Use this only if v4 signatures don't work, e.g. pre Jewel/v10 CEPH.
14655
14656 • Config: v2_auth
14657
14658 • Env Var: RCLONE_S3_V2_AUTH
14659
14660 • Type: bool
14661
14662 • Default: false
14663
14664 --s3-use-accelerate-endpoint
14665 If true use the AWS S3 accelerated endpoint.
14666
14667 See: AWS S3 Transfer acceleration (https://docs.aws.amazon.com/Ama‐
14668 zonS3/latest/dev/transfer-acceleration-examples.html)
14669
14670 • Config: use_accelerate_endpoint
14671
14672 • Env Var: RCLONE_S3_USE_ACCELERATE_ENDPOINT
14673
14674 • Type: bool
14675
14676 • Default: false
14677
14678 --s3-leave-parts-on-error
14679 If true avoid calling abort upload on a failure, leaving all success‐
14680 fully uploaded parts on S3 for manual recovery.
14681
14682 It should be set to true for resuming uploads across different ses‐
14683 sions.
14684
14685 WARNING: Storing parts of an incomplete multipart upload counts towards
14686 space usage on S3 and will add additional costs if not cleaned up.
14687
14688 • Config: leave_parts_on_error
14689
14690 • Env Var: RCLONE_S3_LEAVE_PARTS_ON_ERROR
14691
14692 • Type: bool
14693
14694 • Default: false
14695
14696 --s3-list-chunk
14697 Size of listing chunk (response list for each ListObject S3 request).
14698
14699 This option is also known as "MaxKeys", "max-items", or "page-size"
14700 from the AWS S3 specification. Most services truncate the response
14701 list to 1000 objects even if requested more than that. In AWS S3 this
14702 is a global maximum and cannot be changed, see AWS S3
14703 (https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html). In
14704 Ceph, this can be increased with the "rgw list buckets max chunk" op‐
14705 tion.
14706
14707 • Config: list_chunk
14708
14709 • Env Var: RCLONE_S3_LIST_CHUNK
14710
14711 • Type: int
14712
14713 • Default: 1000
14714
14715 --s3-no-check-bucket
14716 If set, don't attempt to check the bucket exists or create it
14717
14718 This can be useful when trying to minimise the number of transactions
14719 rclone does if you know the bucket exists already.
14720
14721 It can also be needed if the user you are using does not have bucket
14722 creation permissions. Before v1.52.0 this would have passed silently
14723 due to a bug.
14724
14725 • Config: no_check_bucket
14726
14727 • Env Var: RCLONE_S3_NO_CHECK_BUCKET
14728
14729 • Type: bool
14730
14731 • Default: false
14732
14733 --s3-no-head
14734 If set, don't HEAD uploaded objects to check integrity
14735
14736 This can be useful when trying to minimise the number of transactions
14737 rclone does.
14738
14739 Setting it means that if rclone receives a 200 OK message after upload‐
14740 ing an object with PUT then it will assume that it got uploaded proper‐
14741 ly.
14742
14743 In particular it will assume:
14744
14745 • the metadata, including modtime, storage class and content type was
14746 as uploaded
14747
14748 • the size was as uploaded
14749
14750 It reads the following items from the response for a single part PUT:
14751
14752 • the MD5SUM
14753
14754 • The uploaded date
14755
14756 For multipart uploads these items aren't read.
14757
14758 If an source object of unknown length is uploaded then rclone will do a
14759 HEAD request.
14760
14761 Setting this flag increases the chance for undetected upload failures,
14762 in particular an incorrect size, so it isn't recommended for normal op‐
14763 eration. In practice the chance of an undetected upload failure is
14764 very small even with this flag.
14765
14766 • Config: no_head
14767
14768 • Env Var: RCLONE_S3_NO_HEAD
14769
14770 • Type: bool
14771
14772 • Default: false
14773
14774 --s3-encoding
14775 This sets the encoding for the backend.
14776
14777 See: the encoding section in the overview (https://rclone.org/over‐
14778 view/#encoding) for more info.
14779
14780 • Config: encoding
14781
14782 • Env Var: RCLONE_S3_ENCODING
14783
14784 • Type: MultiEncoder
14785
14786 • Default: Slash,InvalidUtf8,Dot
14787
14788 --s3-memory-pool-flush-time
14789 How often internal memory buffer pools will be flushed. Uploads which
14790 requires additional buffers (f.e multipart) will use memory pool for
14791 allocations. This option controls how often unused buffers will be re‐
14792 moved from the pool.
14793
14794 • Config: memory_pool_flush_time
14795
14796 • Env Var: RCLONE_S3_MEMORY_POOL_FLUSH_TIME
14797
14798 • Type: Duration
14799
14800 • Default: 1m0s
14801
14802 --s3-memory-pool-use-mmap
14803 Whether to use mmap buffers in internal memory pool.
14804
14805 • Config: memory_pool_use_mmap
14806
14807 • Env Var: RCLONE_S3_MEMORY_POOL_USE_MMAP
14808
14809 • Type: bool
14810
14811 • Default: false
14812
14813 --s3-disable-http2
14814 Disable usage of http2 for S3 backends
14815
14816 There is currently an unsolved issue with the s3 (specifically minio)
14817 backend and HTTP/2. HTTP/2 is enabled by default for the s3 backend
14818 but can be disabled here. When the issue is solved this flag will be
14819 removed.
14820
14821 See: https://github.com/rclone/rclone/issues/4673,
14822 https://github.com/rclone/rclone/issues/3631
14823
14824 • Config: disable_http2
14825
14826 • Env Var: RCLONE_S3_DISABLE_HTTP2
14827
14828 • Type: bool
14829
14830 • Default: false
14831
14832 Backend commands
14833 Here are the commands specific to the s3 backend.
14834
14835 Run them with
14836
14837 rclone backend COMMAND remote:
14838
14839 The help below will explain what arguments each command takes.
14840
14841 See the "rclone backend" command (https://rclone.org/com‐
14842 mands/rclone_backend/) for more info on how to pass options and argu‐
14843 ments.
14844
14845 These can be run on a running backend using the rc command backend/com‐
14846 mand (https://rclone.org/rc/#backend/command).
14847
14848 restore
14849 Restore objects from GLACIER to normal storage
14850
14851 rclone backend restore remote: [options] [<arguments>+]
14852
14853 This command can be used to restore one or more objects from GLACIER to
14854 normal storage.
14855
14856 Usage Examples:
14857
14858 rclone backend restore s3:bucket/path/to/object [-o priority=PRIORITY] [-o lifetime=DAYS]
14859 rclone backend restore s3:bucket/path/to/directory [-o priority=PRIORITY] [-o lifetime=DAYS]
14860 rclone backend restore s3:bucket [-o priority=PRIORITY] [-o lifetime=DAYS]
14861
14862 This flag also obeys the filters. Test first with -i/--interactive or
14863 --dry-run flags
14864
14865 rclone -i backend restore --include "*.txt" s3:bucket/path -o priority=Standard
14866
14867 All the objects shown will be marked for restore, then
14868
14869 rclone backend restore --include "*.txt" s3:bucket/path -o priority=Standard
14870
14871 It returns a list of status dictionaries with Remote and Status keys.
14872 The Status will be OK if it was successful or an error message if not.
14873
14874 [
14875 {
14876 "Status": "OK",
14877 "Path": "test.txt"
14878 },
14879 {
14880 "Status": "OK",
14881 "Path": "test/file4.txt"
14882 }
14883 ]
14884
14885 Options:
14886
14887 • "description": The optional description for the job.
14888
14889 • "lifetime": Lifetime of the active copy in days
14890
14891 • "priority": Priority of restore: Standard|Expedited|Bulk
14892
14893 list-multipart-uploads
14894 List the unfinished multipart uploads
14895
14896 rclone backend list-multipart-uploads remote: [options] [<arguments>+]
14897
14898 This command lists the unfinished multipart uploads in JSON format.
14899
14900 rclone backend list-multipart s3:bucket/path/to/object
14901
14902 It returns a dictionary of buckets with values as lists of unfinished
14903 multipart uploads.
14904
14905 You can call it with no bucket in which case it lists all bucket, with
14906 a bucket or with a bucket and path.
14907
14908 {
14909 "rclone": [
14910 {
14911 "Initiated": "2020-06-26T14:20:36Z",
14912 "Initiator": {
14913 "DisplayName": "XXX",
14914 "ID": "arn:aws:iam::XXX:user/XXX"
14915 },
14916 "Key": "KEY",
14917 "Owner": {
14918 "DisplayName": null,
14919 "ID": "XXX"
14920 },
14921 "StorageClass": "STANDARD",
14922 "UploadId": "XXX"
14923 }
14924 ],
14925 "rclone-1000files": [],
14926 "rclone-dst": []
14927 }
14928
14929 cleanup
14930 Remove unfinished multipart uploads.
14931
14932 rclone backend cleanup remote: [options] [<arguments>+]
14933
14934 This command removes unfinished multipart uploads of age greater than
14935 max-age which defaults to 24 hours.
14936
14937 Note that you can use -i/--dry-run with this command to see what it
14938 would do.
14939
14940 rclone backend cleanup s3:bucket/path/to/object
14941 rclone backend cleanup -o max-age=7w s3:bucket/path/to/object
14942
14943 Durations are parsed as per the rest of rclone, 2h, 7d, 7w etc.
14944
14945 Options:
14946
14947 • "max-age": Max age of upload to delete
14948
14949 Anonymous access to public buckets
14950 If you want to use rclone to access a public bucket, configure with a
14951 blank access_key_id and secret_access_key. Your config should end up
14952 looking like this:
14953
14954 [anons3]
14955 type = s3
14956 provider = AWS
14957 env_auth = false
14958 access_key_id =
14959 secret_access_key =
14960 region = us-east-1
14961 endpoint =
14962 location_constraint =
14963 acl = private
14964 server_side_encryption =
14965 storage_class =
14966
14967 Then use it as normal with the name of the public bucket, e.g.
14968
14969 rclone lsd anons3:1000genomes
14970
14971 You will be able to list and copy data but not upload it.
14972
14973 Ceph
14974 Ceph (https://ceph.com/) is an open source unified, distributed storage
14975 system designed for excellent performance, reliability and scalability.
14976 It has an S3 compatible object storage interface.
14977
14978 To use rclone with Ceph, configure as above but leave the region blank
14979 and set the endpoint. You should end up with something like this in
14980 your config:
14981
14982 [ceph]
14983 type = s3
14984 provider = Ceph
14985 env_auth = false
14986 access_key_id = XXX
14987 secret_access_key = YYY
14988 region =
14989 endpoint = https://ceph.endpoint.example.com
14990 location_constraint =
14991 acl =
14992 server_side_encryption =
14993 storage_class =
14994
14995 If you are using an older version of CEPH, e.g. 10.2.x Jewel, then you
14996 may need to supply the parameter --s3-upload-cutoff 0 or put this in
14997 the config file as upload_cutoff 0 to work around a bug which causes
14998 uploading of small files to fail.
14999
15000 Note also that Ceph sometimes puts / in the passwords it gives users.
15001 If you read the secret access key using the command line tools you will
15002 get a JSON blob with the / escaped as \/. Make sure you only write /
15003 in the secret access key.
15004
15005 Eg the dump from Ceph looks something like this (irrelevant keys re‐
15006 moved).
15007
15008 {
15009 "user_id": "xxx",
15010 "display_name": "xxxx",
15011 "keys": [
15012 {
15013 "user": "xxx",
15014 "access_key": "xxxxxx",
15015 "secret_key": "xxxxxx\/xxxx"
15016 }
15017 ],
15018 }
15019
15020 Because this is a json dump, it is encoding the / as \/, so if you use
15021 the secret key as xxxxxx/xxxx it will work fine.
15022
15023 Dreamhost
15024 Dreamhost DreamObjects (https://www.dreamhost.com/cloud/storage/) is an
15025 object storage system based on CEPH.
15026
15027 To use rclone with Dreamhost, configure as above but leave the region
15028 blank and set the endpoint. You should end up with something like this
15029 in your config:
15030
15031 [dreamobjects]
15032 type = s3
15033 provider = DreamHost
15034 env_auth = false
15035 access_key_id = your_access_key
15036 secret_access_key = your_secret_key
15037 region =
15038 endpoint = objects-us-west-1.dream.io
15039 location_constraint =
15040 acl = private
15041 server_side_encryption =
15042 storage_class =
15043
15044 DigitalOcean Spaces
15045 Spaces (https://www.digitalocean.com/products/object-storage/) is an
15046 S3-interoperable (https://developers.digitalocean.com/documenta‐
15047 tion/spaces/) object storage service from cloud provider DigitalOcean.
15048
15049 To connect to DigitalOcean Spaces you will need an access key and se‐
15050 cret key. These can be retrieved on the "Applications & API
15051 (https://cloud.digitalocean.com/settings/api/tokens)" page of the Digi‐
15052 talOcean control panel. They will be needed when prompted by rclone
15053 config for your access_key_id and secret_access_key.
15054
15055 When prompted for a region or location_constraint, press enter to use
15056 the default value. The region must be included in the endpoint setting
15057 (e.g. nyc3.digitaloceanspaces.com). The default values can be used
15058 for other settings.
15059
15060 Going through the whole process of creating a new remote by running
15061 rclone config, each prompt should be answered as shown below:
15062
15063 Storage> s3
15064 env_auth> 1
15065 access_key_id> YOUR_ACCESS_KEY
15066 secret_access_key> YOUR_SECRET_KEY
15067 region>
15068 endpoint> nyc3.digitaloceanspaces.com
15069 location_constraint>
15070 acl>
15071 storage_class>
15072
15073 The resulting configuration file should look like:
15074
15075 [spaces]
15076 type = s3
15077 provider = DigitalOcean
15078 env_auth = false
15079 access_key_id = YOUR_ACCESS_KEY
15080 secret_access_key = YOUR_SECRET_KEY
15081 region =
15082 endpoint = nyc3.digitaloceanspaces.com
15083 location_constraint =
15084 acl =
15085 server_side_encryption =
15086 storage_class =
15087
15088 Once configured, you can create a new Space and begin copying files.
15089 For example:
15090
15091 rclone mkdir spaces:my-new-space
15092 rclone copy /path/to/files spaces:my-new-space
15093
15094 IBM COS (S3)
15095 Information stored with IBM Cloud Object Storage is encrypted and dis‐
15096 persed across multiple geographic locations, and accessed through an
15097 implementation of the S3 API. This service makes use of the distrib‐
15098 uted storage technologies provided by IBM’s Cloud Object Storage System
15099 (formerly Cleversafe). For more information visit:
15100 (http://www.ibm.com/cloud/object-storage)
15101
15102 To configure access to IBM COS S3, follow the steps below:
15103
15104 1. Run rclone config and select n for a new remote.
15105
15106 2018/02/14 14:13:11 NOTICE: Config file "C:\\Users\\a\\.config\\rclone\\rclone.conf" not found - using defaults
15107 No remotes found - make a new one
15108 n) New remote
15109 s) Set configuration password
15110 q) Quit config
15111 n/s/q> n
15112
15113 2. Enter the name for the configuration
15114
15115 name> <YOUR NAME>
15116
15117 3. Select "s3" storage.
15118
15119 Choose a number from below, or type in your own value
15120 1 / Alias for an existing remote
15121 \ "alias"
15122 2 / Amazon Drive
15123 \ "amazon cloud drive"
15124 3 / Amazon S3 Complaint Storage Providers (Dreamhost, Ceph, Minio, IBM COS)
15125 \ "s3"
15126 4 / Backblaze B2
15127 \ "b2"
15128 [snip]
15129 23 / http Connection
15130 \ "http"
15131 Storage> 3
15132
15133 4. Select IBM COS as the S3 Storage Provider.
15134
15135 Choose the S3 provider.
15136 Choose a number from below, or type in your own value
15137 1 / Choose this option to configure Storage to AWS S3
15138 \ "AWS"
15139 2 / Choose this option to configure Storage to Ceph Systems
15140 \ "Ceph"
15141 3 / Choose this option to configure Storage to Dreamhost
15142 \ "Dreamhost"
15143 4 / Choose this option to the configure Storage to IBM COS S3
15144 \ "IBMCOS"
15145 5 / Choose this option to the configure Storage to Minio
15146 \ "Minio"
15147 Provider>4
15148
15149 5. Enter the Access Key and Secret.
15150
15151 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
15152 access_key_id> <>
15153 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
15154 secret_access_key> <>
15155
15156 6. Specify the endpoint for IBM COS. For Public IBM COS, choose from
15157 the option below. For On Premise IBM COS, enter an endpoint ad‐
15158 dress.
15159
15160 Endpoint for IBM COS S3 API.
15161 Specify if using an IBM COS On Premise.
15162 Choose a number from below, or type in your own value
15163 1 / US Cross Region Endpoint
15164 \ "s3-api.us-geo.objectstorage.softlayer.net"
15165 2 / US Cross Region Dallas Endpoint
15166 \ "s3-api.dal.us-geo.objectstorage.softlayer.net"
15167 3 / US Cross Region Washington DC Endpoint
15168 \ "s3-api.wdc-us-geo.objectstorage.softlayer.net"
15169 4 / US Cross Region San Jose Endpoint
15170 \ "s3-api.sjc-us-geo.objectstorage.softlayer.net"
15171 5 / US Cross Region Private Endpoint
15172 \ "s3-api.us-geo.objectstorage.service.networklayer.com"
15173 6 / US Cross Region Dallas Private Endpoint
15174 \ "s3-api.dal-us-geo.objectstorage.service.networklayer.com"
15175 7 / US Cross Region Washington DC Private Endpoint
15176 \ "s3-api.wdc-us-geo.objectstorage.service.networklayer.com"
15177 8 / US Cross Region San Jose Private Endpoint
15178 \ "s3-api.sjc-us-geo.objectstorage.service.networklayer.com"
15179 9 / US Region East Endpoint
15180 \ "s3.us-east.objectstorage.softlayer.net"
15181 10 / US Region East Private Endpoint
15182 \ "s3.us-east.objectstorage.service.networklayer.com"
15183 11 / US Region South Endpoint
15184 [snip]
15185 34 / Toronto Single Site Private Endpoint
15186 \ "s3.tor01.objectstorage.service.networklayer.com"
15187 endpoint>1
15188
15189 7. Specify a IBM COS Location Constraint. The location constraint must
15190 match endpoint when using IBM Cloud Public. For on-prem COS, do not
15191 make a selection from this list, hit enter
15192
15193 1 / US Cross Region Standard
15194 \ "us-standard"
15195 2 / US Cross Region Vault
15196 \ "us-vault"
15197 3 / US Cross Region Cold
15198 \ "us-cold"
15199 4 / US Cross Region Flex
15200 \ "us-flex"
15201 5 / US East Region Standard
15202 \ "us-east-standard"
15203 6 / US East Region Vault
15204 \ "us-east-vault"
15205 7 / US East Region Cold
15206 \ "us-east-cold"
15207 8 / US East Region Flex
15208 \ "us-east-flex"
15209 9 / US South Region Standard
15210 \ "us-south-standard"
15211 10 / US South Region Vault
15212 \ "us-south-vault"
15213 [snip]
15214 32 / Toronto Flex
15215 \ "tor01-flex"
15216 location_constraint>1
15217
15218 9. Specify a canned ACL. IBM Cloud (Storage) supports "public-read"
15219 and "private". IBM Cloud(Infra) supports all the canned ACLs.
15220 On-Premise COS supports all the canned ACLs.
15221
15222 Canned ACL used when creating buckets and/or storing objects in S3.
15223 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
15224 Choose a number from below, or type in your own value
15225 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
15226 \ "private"
15227 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
15228 \ "public-read"
15229 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
15230 \ "public-read-write"
15231 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
15232 \ "authenticated-read"
15233 acl> 1
15234
15235 12. Review the displayed configuration and accept to save the "remote"
15236 then quit. The config file should look like this
15237
15238 [xxx]
15239 type = s3
15240 Provider = IBMCOS
15241 access_key_id = xxx
15242 secret_access_key = yyy
15243 endpoint = s3-api.us-geo.objectstorage.softlayer.net
15244 location_constraint = us-standard
15245 acl = private
15246
15247 13. Execute rclone commands
15248
15249 1) Create a bucket.
15250 rclone mkdir IBM-COS-XREGION:newbucket
15251 2) List available buckets.
15252 rclone lsd IBM-COS-XREGION:
15253 -1 2017-11-08 21:16:22 -1 test
15254 -1 2018-02-14 20:16:39 -1 newbucket
15255 3) List contents of a bucket.
15256 rclone ls IBM-COS-XREGION:newbucket
15257 18685952 test.exe
15258 4) Copy a file from local to remote.
15259 rclone copy /Users/file.txt IBM-COS-XREGION:newbucket
15260 5) Copy a file from remote to local.
15261 rclone copy IBM-COS-XREGION:newbucket/file.txt .
15262 6) Delete a file on remote.
15263 rclone delete IBM-COS-XREGION:newbucket/file.txt
15264
15265 Minio
15266 Minio (https://minio.io/) is an object storage server built for cloud
15267 application developers and devops.
15268
15269 It is very easy to install and provides an S3 compatible server which
15270 can be used by rclone.
15271
15272 To use it, install Minio following the instructions here
15273 (https://docs.minio.io/docs/minio-quickstart-guide).
15274
15275 When it configures itself Minio will print something like this
15276
15277 Endpoint: http://192.168.1.106:9000 http://172.23.0.1:9000
15278 AccessKey: USWUXHGYZQYFYFFIT3RE
15279 SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
15280 Region: us-east-1
15281 SQS ARNs: arn:minio:sqs:us-east-1:1:redis arn:minio:sqs:us-east-1:2:redis
15282
15283 Browser Access:
15284 http://192.168.1.106:9000 http://172.23.0.1:9000
15285
15286 Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
15287 $ mc config host add myminio http://192.168.1.106:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
15288
15289 Object API (Amazon S3 compatible):
15290 Go: https://docs.minio.io/docs/golang-client-quickstart-guide
15291 Java: https://docs.minio.io/docs/java-client-quickstart-guide
15292 Python: https://docs.minio.io/docs/python-client-quickstart-guide
15293 JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
15294 .NET: https://docs.minio.io/docs/dotnet-client-quickstart-guide
15295
15296 Drive Capacity: 26 GiB Free, 165 GiB Total
15297
15298 These details need to go into rclone config like this. Note that it is
15299 important to put the region in as stated above.
15300
15301 env_auth> 1
15302 access_key_id> USWUXHGYZQYFYFFIT3RE
15303 secret_access_key> MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
15304 region> us-east-1
15305 endpoint> http://192.168.1.106:9000
15306 location_constraint>
15307 server_side_encryption>
15308
15309 Which makes the config file look like this
15310
15311 [minio]
15312 type = s3
15313 provider = Minio
15314 env_auth = false
15315 access_key_id = USWUXHGYZQYFYFFIT3RE
15316 secret_access_key = MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
15317 region = us-east-1
15318 endpoint = http://192.168.1.106:9000
15319 location_constraint =
15320 server_side_encryption =
15321
15322 So once set up, for example to copy files into a bucket
15323
15324 rclone copy /path/to/files minio:bucket
15325
15326 Scaleway
15327 Scaleway (https://www.scaleway.com/object-storage/) The Object Storage
15328 platform allows you to store anything from backups, logs and web assets
15329 to documents and photos. Files can be dropped from the Scaleway con‐
15330 sole or transferred through our API and CLI or using any S3-compatible
15331 tool.
15332
15333 Scaleway provides an S3 interface which can be configured for use with
15334 rclone like this:
15335
15336 [scaleway]
15337 type = s3
15338 provider = Scaleway
15339 env_auth = false
15340 endpoint = s3.nl-ams.scw.cloud
15341 access_key_id = SCWXXXXXXXXXXXXXX
15342 secret_access_key = 1111111-2222-3333-44444-55555555555555
15343 region = nl-ams
15344 location_constraint =
15345 acl = private
15346 server_side_encryption =
15347 storage_class =
15348
15349 Wasabi
15350 Wasabi (https://wasabi.com) is a cloud-based object storage service for
15351 a broad range of applications and use cases. Wasabi is designed for
15352 individuals and organizations that require a high-performance, reli‐
15353 able, and secure data storage infrastructure at minimal cost.
15354
15355 Wasabi provides an S3 interface which can be configured for use with
15356 rclone like this.
15357
15358 No remotes found - make a new one
15359 n) New remote
15360 s) Set configuration password
15361 n/s> n
15362 name> wasabi
15363 Type of storage to configure.
15364 Choose a number from below, or type in your own value
15365 [snip]
15366 XX / Amazon S3 (also Dreamhost, Ceph, Minio)
15367 \ "s3"
15368 [snip]
15369 Storage> s3
15370 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.
15371 Choose a number from below, or type in your own value
15372 1 / Enter AWS credentials in the next step
15373 \ "false"
15374 2 / Get AWS credentials from the environment (env vars or IAM)
15375 \ "true"
15376 env_auth> 1
15377 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
15378 access_key_id> YOURACCESSKEY
15379 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
15380 secret_access_key> YOURSECRETACCESSKEY
15381 Region to connect to.
15382 Choose a number from below, or type in your own value
15383 / The default endpoint - a good choice if you are unsure.
15384 1 | US Region, Northern Virginia, or Pacific Northwest.
15385 | Leave location constraint empty.
15386 \ "us-east-1"
15387 [snip]
15388 region> us-east-1
15389 Endpoint for S3 API.
15390 Leave blank if using AWS to use the default endpoint for the region.
15391 Specify if using an S3 clone such as Ceph.
15392 endpoint> s3.wasabisys.com
15393 Location constraint - must be set to match the Region. Used when creating buckets only.
15394 Choose a number from below, or type in your own value
15395 1 / Empty for US Region, Northern Virginia, or Pacific Northwest.
15396 \ ""
15397 [snip]
15398 location_constraint>
15399 Canned ACL used when creating buckets and/or storing objects in S3.
15400 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
15401 Choose a number from below, or type in your own value
15402 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
15403 \ "private"
15404 [snip]
15405 acl>
15406 The server-side encryption algorithm used when storing this object in S3.
15407 Choose a number from below, or type in your own value
15408 1 / None
15409 \ ""
15410 2 / AES256
15411 \ "AES256"
15412 server_side_encryption>
15413 The storage class to use when storing objects in S3.
15414 Choose a number from below, or type in your own value
15415 1 / Default
15416 \ ""
15417 2 / Standard storage class
15418 \ "STANDARD"
15419 3 / Reduced redundancy storage class
15420 \ "REDUCED_REDUNDANCY"
15421 4 / Standard Infrequent Access storage class
15422 \ "STANDARD_IA"
15423 storage_class>
15424 Remote config
15425 --------------------
15426 [wasabi]
15427 env_auth = false
15428 access_key_id = YOURACCESSKEY
15429 secret_access_key = YOURSECRETACCESSKEY
15430 region = us-east-1
15431 endpoint = s3.wasabisys.com
15432 location_constraint =
15433 acl =
15434 server_side_encryption =
15435 storage_class =
15436 --------------------
15437 y) Yes this is OK
15438 e) Edit this remote
15439 d) Delete this remote
15440 y/e/d> y
15441
15442 This will leave the config file looking like this.
15443
15444 [wasabi]
15445 type = s3
15446 provider = Wasabi
15447 env_auth = false
15448 access_key_id = YOURACCESSKEY
15449 secret_access_key = YOURSECRETACCESSKEY
15450 region =
15451 endpoint = s3.wasabisys.com
15452 location_constraint =
15453 acl =
15454 server_side_encryption =
15455 storage_class =
15456
15457 Alibaba OSS
15458 Here is an example of making an Alibaba Cloud (Aliyun) OSS
15459 (https://www.alibabacloud.com/product/oss/) configuration. First run:
15460
15461 rclone config
15462
15463 This will guide you through an interactive setup process.
15464
15465 No remotes found - make a new one
15466 n) New remote
15467 s) Set configuration password
15468 q) Quit config
15469 n/s/q> n
15470 name> oss
15471 Type of storage to configure.
15472 Enter a string value. Press Enter for the default ("").
15473 Choose a number from below, or type in your own value
15474 [snip]
15475 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, and Tencent COS
15476 \ "s3"
15477 [snip]
15478 Storage> s3
15479 Choose your S3 provider.
15480 Enter a string value. Press Enter for the default ("").
15481 Choose a number from below, or type in your own value
15482 1 / Amazon Web Services (AWS) S3
15483 \ "AWS"
15484 2 / Alibaba Cloud Object Storage System (OSS) formerly Aliyun
15485 \ "Alibaba"
15486 3 / Ceph Object Storage
15487 \ "Ceph"
15488 [snip]
15489 provider> Alibaba
15490 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
15491 Only applies if access_key_id and secret_access_key is blank.
15492 Enter a boolean value (true or false). Press Enter for the default ("false").
15493 Choose a number from below, or type in your own value
15494 1 / Enter AWS credentials in the next step
15495 \ "false"
15496 2 / Get AWS credentials from the environment (env vars or IAM)
15497 \ "true"
15498 env_auth> 1
15499 AWS Access Key ID.
15500 Leave blank for anonymous access or runtime credentials.
15501 Enter a string value. Press Enter for the default ("").
15502 access_key_id> accesskeyid
15503 AWS Secret Access Key (password)
15504 Leave blank for anonymous access or runtime credentials.
15505 Enter a string value. Press Enter for the default ("").
15506 secret_access_key> secretaccesskey
15507 Endpoint for OSS API.
15508 Enter a string value. Press Enter for the default ("").
15509 Choose a number from below, or type in your own value
15510 1 / East China 1 (Hangzhou)
15511 \ "oss-cn-hangzhou.aliyuncs.com"
15512 2 / East China 2 (Shanghai)
15513 \ "oss-cn-shanghai.aliyuncs.com"
15514 3 / North China 1 (Qingdao)
15515 \ "oss-cn-qingdao.aliyuncs.com"
15516 [snip]
15517 endpoint> 1
15518 Canned ACL used when creating buckets and storing or copying objects.
15519
15520 Note that this ACL is applied when server-side copying objects as S3
15521 doesn't copy the ACL from the source but rather writes a fresh one.
15522 Enter a string value. Press Enter for the default ("").
15523 Choose a number from below, or type in your own value
15524 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
15525 \ "private"
15526 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
15527 \ "public-read"
15528 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
15529 [snip]
15530 acl> 1
15531 The storage class to use when storing new objects in OSS.
15532 Enter a string value. Press Enter for the default ("").
15533 Choose a number from below, or type in your own value
15534 1 / Default
15535 \ ""
15536 2 / Standard storage class
15537 \ "STANDARD"
15538 3 / Archive storage mode.
15539 \ "GLACIER"
15540 4 / Infrequent access storage mode.
15541 \ "STANDARD_IA"
15542 storage_class> 1
15543 Edit advanced config? (y/n)
15544 y) Yes
15545 n) No
15546 y/n> n
15547 Remote config
15548 --------------------
15549 [oss]
15550 type = s3
15551 provider = Alibaba
15552 env_auth = false
15553 access_key_id = accesskeyid
15554 secret_access_key = secretaccesskey
15555 endpoint = oss-cn-hangzhou.aliyuncs.com
15556 acl = private
15557 storage_class = Standard
15558 --------------------
15559 y) Yes this is OK
15560 e) Edit this remote
15561 d) Delete this remote
15562 y/e/d> y
15563
15564 Tencent COS
15565 Tencent Cloud Object Storage (COS) (https://intl.cloud.ten‐
15566 cent.com/product/cos) is a distributed storage service offered by Ten‐
15567 cent Cloud for unstructured data. It is secure, stable, massive, con‐
15568 venient, low-delay and low-cost.
15569
15570 To configure access to Tencent COS, follow the steps below:
15571
15572 1. Run rclone config and select n for a new remote.
15573
15574 rclone config
15575 No remotes found - make a new one
15576 n) New remote
15577 s) Set configuration password
15578 q) Quit config
15579 n/s/q> n
15580
15581 2. Give the name of the configuration. For example, name it 'cos'.
15582
15583 name> cos
15584
15585 3. Select s3 storage.
15586
15587 Choose a number from below, or type in your own value
15588 1 / 1Fichier
15589 \ "fichier"
15590 2 / Alias for an existing remote
15591 \ "alias"
15592 3 / Amazon Drive
15593 \ "amazon cloud drive"
15594 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, and Tencent COS
15595 \ "s3"
15596 [snip]
15597 Storage> s3
15598
15599 4. Select TencentCOS provider.
15600
15601 Choose a number from below, or type in your own value
15602 1 / Amazon Web Services (AWS) S3
15603 \ "AWS"
15604 [snip]
15605 11 / Tencent Cloud Object Storage (COS)
15606 \ "TencentCOS"
15607 [snip]
15608 provider> TencentCOS
15609
15610 5. Enter your SecretId and SecretKey of Tencent Cloud.
15611
15612 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
15613 Only applies if access_key_id and secret_access_key is blank.
15614 Enter a boolean value (true or false). Press Enter for the default ("false").
15615 Choose a number from below, or type in your own value
15616 1 / Enter AWS credentials in the next step
15617 \ "false"
15618 2 / Get AWS credentials from the environment (env vars or IAM)
15619 \ "true"
15620 env_auth> 1
15621 AWS Access Key ID.
15622 Leave blank for anonymous access or runtime credentials.
15623 Enter a string value. Press Enter for the default ("").
15624 access_key_id> AKIDxxxxxxxxxx
15625 AWS Secret Access Key (password)
15626 Leave blank for anonymous access or runtime credentials.
15627 Enter a string value. Press Enter for the default ("").
15628 secret_access_key> xxxxxxxxxxx
15629
15630 6. Select endpoint for Tencent COS. This is the standard endpoint for
15631 different region.
15632
15633 1 / Beijing Region.
15634 \ "cos.ap-beijing.myqcloud.com"
15635 2 / Nanjing Region.
15636 \ "cos.ap-nanjing.myqcloud.com"
15637 3 / Shanghai Region.
15638 \ "cos.ap-shanghai.myqcloud.com"
15639 4 / Guangzhou Region.
15640 \ "cos.ap-guangzhou.myqcloud.com"
15641 [snip]
15642 endpoint> 4
15643
15644 7. Choose acl and storage class.
15645
15646 Note that this ACL is applied when server-side copying objects as S3
15647 doesn't copy the ACL from the source but rather writes a fresh one.
15648 Enter a string value. Press Enter for the default ("").
15649 Choose a number from below, or type in your own value
15650 1 / Owner gets Full_CONTROL. No one else has access rights (default).
15651 \ "default"
15652 [snip]
15653 acl> 1
15654 The storage class to use when storing new objects in Tencent COS.
15655 Enter a string value. Press Enter for the default ("").
15656 Choose a number from below, or type in your own value
15657 1 / Default
15658 \ ""
15659 [snip]
15660 storage_class> 1
15661 Edit advanced config? (y/n)
15662 y) Yes
15663 n) No (default)
15664 y/n> n
15665 Remote config
15666 --------------------
15667 [cos]
15668 type = s3
15669 provider = TencentCOS
15670 env_auth = false
15671 access_key_id = xxx
15672 secret_access_key = xxx
15673 endpoint = cos.ap-guangzhou.myqcloud.com
15674 acl = default
15675 --------------------
15676 y) Yes this is OK (default)
15677 e) Edit this remote
15678 d) Delete this remote
15679 y/e/d> y
15680 Current remotes:
15681
15682 Name Type
15683 ==== ====
15684 cos s3
15685
15686 Netease NOS
15687 For Netease NOS configure as per the configurator rclone config setting
15688 the provider Netease. This will automatically set force_path_style =
15689 false which is necessary for it to run properly.
15690
15691 Limitations
15692 rclone about is not supported by the S3 backend. Backends without this
15693 capability cannot determine free space for an rclone mount or use poli‐
15694 cy mfs (most free space) as a member of an rclone union remote.
15695
15696 See List of backends that do not support rclone about
15697 (https://rclone.org/overview/#optional-features) See rclone about
15698 (https://rclone.org/commands/rclone_about/)
15699
15700 Backblaze B2
15701 B2 is Backblaze's cloud storage system (https://www.backblaze.com/b2/).
15702
15703 Paths are specified as remote:bucket (or remote: for the lsd command.)
15704 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
15705
15706 Here is an example of making a b2 configuration. First run
15707
15708 rclone config
15709
15710 This will guide you through an interactive setup process. To authenti‐
15711 cate you will either need your Account ID (a short hex number) and Mas‐
15712 ter Application Key (a long hex number) OR an Application Key, which is
15713 the recommended method. See below for further details on generating
15714 and using an Application Key.
15715
15716 No remotes found - make a new one
15717 n) New remote
15718 q) Quit config
15719 n/q> n
15720 name> remote
15721 Type of storage to configure.
15722 Choose a number from below, or type in your own value
15723 [snip]
15724 XX / Backblaze B2
15725 \ "b2"
15726 [snip]
15727 Storage> b2
15728 Account ID or Application Key ID
15729 account> 123456789abc
15730 Application Key
15731 key> 0123456789abcdef0123456789abcdef0123456789
15732 Endpoint for the service - leave blank normally.
15733 endpoint>
15734 Remote config
15735 --------------------
15736 [remote]
15737 account = 123456789abc
15738 key = 0123456789abcdef0123456789abcdef0123456789
15739 endpoint =
15740 --------------------
15741 y) Yes this is OK
15742 e) Edit this remote
15743 d) Delete this remote
15744 y/e/d> y
15745
15746 This remote is called remote and can now be used like this
15747
15748 See all buckets
15749
15750 rclone lsd remote:
15751
15752 Create a new bucket
15753
15754 rclone mkdir remote:bucket
15755
15756 List the contents of a bucket
15757
15758 rclone ls remote:bucket
15759
15760 Sync /home/local/directory to the remote bucket, deleting any excess
15761 files in the bucket.
15762
15763 rclone sync -i /home/local/directory remote:bucket
15764
15765 Application Keys
15766 B2 supports multiple Application Keys for different access permission
15767 to B2 Buckets (https://www.backblaze.com/b2/docs/applica‐
15768 tion_keys.html).
15769
15770 You can use these with rclone too; you will need to use rclone version
15771 1.43 or later.
15772
15773 Follow Backblaze's docs to create an Application Key with the required
15774 permission and add the applicationKeyId as the account and the Applica‐
15775 tion Key itself as the key.
15776
15777 Note that you must put the applicationKeyId as the account – you can't
15778 use the master Account ID. If you try then B2 will return 401 errors.
15779
15780 --fast-list
15781 This remote supports --fast-list which allows you to use fewer transac‐
15782 tions in exchange for more memory. See the rclone docs
15783 (https://rclone.org/docs/#fast-list) for more details.
15784
15785 Modified time
15786 The modified time is stored as metadata on the object as X-Bz-In‐
15787 fo-src_last_modified_millis as milliseconds since 1970-01-01 in the
15788 Backblaze standard. Other tools should be able to use this as a modi‐
15789 fied time.
15790
15791 Modified times are used in syncing and are fully supported. Note that
15792 if a modification time needs to be updated on an object then it will
15793 create a new version of the object.
15794
15795 Restricted filename characters
15796 In addition to the default restricted characters set
15797 (https://rclone.org/overview/#restricted-characters) the following
15798 characters are also replaced:
15799
15800 Character Value Replacement
15801 ────────────────────────────────
15802 \ 0x5C \
15803
15804 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
15805 view/#invalid-utf8), as they can't be used in JSON strings.
15806
15807 Note that in 2020-05 Backblaze started allowing characters in file
15808 names. Rclone hasn't changed its encoding as this could cause syncs to
15809 re-transfer files. If you want rclone not to replace then see the
15810 --b2-encoding flag below and remove the BackSlash from the string.
15811 This can be set in the config.
15812
15813 SHA1 checksums
15814 The SHA1 checksums of the files are checked on upload and download and
15815 will be used in the syncing process.
15816
15817 Large files (bigger than the limit in --b2-upload-cutoff) which are up‐
15818 loaded in chunks will store their SHA1 on the object as X-Bz-In‐
15819 fo-large_file_sha1 as recommended by Backblaze.
15820
15821 For a large file to be uploaded with an SHA1 checksum, the source needs
15822 to support SHA1 checksums. The local disk supports SHA1 checksums so
15823 large file transfers from local disk will have an SHA1. See the over‐
15824 view (https://rclone.org/overview/#features) for exactly which remotes
15825 support SHA1.
15826
15827 Sources which don't support SHA1, in particular crypt will upload large
15828 files without SHA1 checksums. This may be fixed in the future (see
15829 #1767 (https://github.com/rclone/rclone/issues/1767)).
15830
15831 Files sizes below --b2-upload-cutoff will always have an SHA1 regard‐
15832 less of the source.
15833
15834 Transfers
15835 Backblaze recommends that you do lots of transfers simultaneously for
15836 maximum speed. In tests from my SSD equipped laptop the optimum set‐
15837 ting is about --transfers 32 though higher numbers may be used for a
15838 slight speed improvement. The optimum number for you may vary depend‐
15839 ing on your hardware, how big the files are, how much you want to load
15840 your computer, etc. The default of --transfers 4 is definitely too low
15841 for Backblaze B2 though.
15842
15843 Note that uploading big files (bigger than 200 MB by default) will use
15844 a 96 MB RAM buffer by default. There can be at most --transfers of
15845 these in use at any moment, so this sets the upper limit on the memory
15846 used.
15847
15848 Versions
15849 When rclone uploads a new version of a file it creates a new version of
15850 it (https://www.backblaze.com/b2/docs/file_versions.html). Likewise
15851 when you delete a file, the old version will be marked hidden and still
15852 be available. Conversely, you may opt in to a "hard delete" of files
15853 with the --b2-hard-delete flag which would permanently remove the file
15854 instead of hiding it.
15855
15856 Old versions of files, where available, are visible using the --b2-ver‐
15857 sions flag.
15858
15859 NB Note that --b2-versions does not work with crypt at the moment #1627
15860 (https://github.com/rclone/rclone/issues/1627). Using --backup-dir
15861 (https://rclone.org/docs/#backup-dir-dir) with rclone is the recommend‐
15862 ed way of working around this.
15863
15864 If you wish to remove all the old versions then you can use the rclone
15865 cleanup remote:bucket command which will delete all the old versions of
15866 files, leaving the current ones intact. You can also supply a path and
15867 only old versions under that path will be deleted, e.g. rclone cleanup
15868 remote:bucket/path/to/stuff.
15869
15870 Note that cleanup will remove partially uploaded files from the bucket
15871 if they are more than a day old.
15872
15873 When you purge a bucket, the current and the old versions will be
15874 deleted then the bucket will be deleted.
15875
15876 However delete will cause the current versions of the files to become
15877 hidden old versions.
15878
15879 Here is a session showing the listing and retrieval of an old version
15880 followed by a cleanup of the old versions.
15881
15882 Show current version and all the versions with --b2-versions flag.
15883
15884 $ rclone -q ls b2:cleanup-test
15885 9 one.txt
15886
15887 $ rclone -q --b2-versions ls b2:cleanup-test
15888 9 one.txt
15889 8 one-v2016-07-04-141032-000.txt
15890 16 one-v2016-07-04-141003-000.txt
15891 15 one-v2016-07-02-155621-000.txt
15892
15893 Retrieve an old version
15894
15895 $ rclone -q --b2-versions copy b2:cleanup-test/one-v2016-07-04-141003-000.txt /tmp
15896
15897 $ ls -l /tmp/one-v2016-07-04-141003-000.txt
15898 -rw-rw-r-- 1 ncw ncw 16 Jul 2 17:46 /tmp/one-v2016-07-04-141003-000.txt
15899
15900 Clean up all the old versions and show that they've gone.
15901
15902 $ rclone -q cleanup b2:cleanup-test
15903
15904 $ rclone -q ls b2:cleanup-test
15905 9 one.txt
15906
15907 $ rclone -q --b2-versions ls b2:cleanup-test
15908 9 one.txt
15909
15910 Data usage
15911 It is useful to know how many requests are sent to the server in dif‐
15912 ferent scenarios.
15913
15914 All copy commands send the following 4 requests:
15915
15916 /b2api/v1/b2_authorize_account
15917 /b2api/v1/b2_create_bucket
15918 /b2api/v1/b2_list_buckets
15919 /b2api/v1/b2_list_file_names
15920
15921 The b2_list_file_names request will be sent once for every 1k files in
15922 the remote path, providing the checksum and modification time of the
15923 listed files. As of version 1.33 issue #818
15924 (https://github.com/rclone/rclone/issues/818) causes extra requests to
15925 be sent when using B2 with Crypt. When a copy operation does not re‐
15926 quire any files to be uploaded, no more requests will be sent.
15927
15928 Uploading files that do not require chunking, will send 2 requests per
15929 file upload:
15930
15931 /b2api/v1/b2_get_upload_url
15932 /b2api/v1/b2_upload_file/
15933
15934 Uploading files requiring chunking, will send 2 requests (one each to
15935 start and finish the upload) and another 2 requests for each chunk:
15936
15937 /b2api/v1/b2_start_large_file
15938 /b2api/v1/b2_get_upload_part_url
15939 /b2api/v1/b2_upload_part/
15940 /b2api/v1/b2_finish_large_file
15941
15942 Versions
15943 Versions can be viewed with the --b2-versions flag. When it is set
15944 rclone will show and act on older versions of files. For example
15945
15946 Listing without --b2-versions
15947
15948 $ rclone -q ls b2:cleanup-test
15949 9 one.txt
15950
15951 And with
15952
15953 $ rclone -q --b2-versions ls b2:cleanup-test
15954 9 one.txt
15955 8 one-v2016-07-04-141032-000.txt
15956 16 one-v2016-07-04-141003-000.txt
15957 15 one-v2016-07-02-155621-000.txt
15958
15959 Showing that the current version is unchanged but older versions can be
15960 seen. These have the UTC date that they were uploaded to the server to
15961 the nearest millisecond appended to them.
15962
15963 Note that when using --b2-versions no file write operations are permit‐
15964 ted, so you can't upload files or delete them.
15965
15966 B2 and rclone link
15967 Rclone supports generating file share links for private B2 buckets.
15968 They can either be for a file for example:
15969
15970 ./rclone link B2:bucket/path/to/file.txt
15971 https://f002.backblazeb2.com/file/bucket/path/to/file.txt?Authorization=xxxxxxxx
15972
15973 or if run on a directory you will get:
15974
15975 ./rclone link B2:bucket/path
15976 https://f002.backblazeb2.com/file/bucket/path?Authorization=xxxxxxxx
15977
15978 you can then use the authorization token (the part of the url from the
15979 ?Authorization= on) on any file path under that directory. For exam‐
15980 ple:
15981
15982 https://f002.backblazeb2.com/file/bucket/path/to/file1?Authorization=xxxxxxxx
15983 https://f002.backblazeb2.com/file/bucket/path/file2?Authorization=xxxxxxxx
15984 https://f002.backblazeb2.com/file/bucket/path/folder/file3?Authorization=xxxxxxxx
15985
15986 Standard Options
15987 Here are the standard options specific to b2 (Backblaze B2).
15988
15989 --b2-account
15990 Account ID or Application Key ID
15991
15992 • Config: account
15993
15994 • Env Var: RCLONE_B2_ACCOUNT
15995
15996 • Type: string
15997
15998 • Default: ""
15999
16000 --b2-key
16001 Application Key
16002
16003 • Config: key
16004
16005 • Env Var: RCLONE_B2_KEY
16006
16007 • Type: string
16008
16009 • Default: ""
16010
16011 --b2-hard-delete
16012 Permanently delete files on remote removal, otherwise hide files.
16013
16014 • Config: hard_delete
16015
16016 • Env Var: RCLONE_B2_HARD_DELETE
16017
16018 • Type: bool
16019
16020 • Default: false
16021
16022 Advanced Options
16023 Here are the advanced options specific to b2 (Backblaze B2).
16024
16025 --b2-endpoint
16026 Endpoint for the service. Leave blank normally.
16027
16028 • Config: endpoint
16029
16030 • Env Var: RCLONE_B2_ENDPOINT
16031
16032 • Type: string
16033
16034 • Default: ""
16035
16036 --b2-test-mode
16037 A flag string for X-Bz-Test-Mode header for debugging.
16038
16039 This is for debugging purposes only. Setting it to one of the strings
16040 below will cause b2 to return specific errors:
16041
16042 • "fail_some_uploads"
16043
16044 • "expire_some_account_authorization_tokens"
16045
16046 • "force_cap_exceeded"
16047
16048 These will be set in the "X-Bz-Test-Mode" header which is documented in
16049 the b2 integrations checklist (https://www.backblaze.com/b2/docs/inte‐
16050 gration_checklist.html).
16051
16052 • Config: test_mode
16053
16054 • Env Var: RCLONE_B2_TEST_MODE
16055
16056 • Type: string
16057
16058 • Default: ""
16059
16060 --b2-versions
16061 Include old versions in directory listings. Note that when using this
16062 no file write operations are permitted, so you can't upload files or
16063 delete them.
16064
16065 • Config: versions
16066
16067 • Env Var: RCLONE_B2_VERSIONS
16068
16069 • Type: bool
16070
16071 • Default: false
16072
16073 --b2-upload-cutoff
16074 Cutoff for switching to chunked upload.
16075
16076 Files above this size will be uploaded in chunks of "--b2-chunk-size".
16077
16078 This value should be set no larger than 4.657GiB (== 5GB).
16079
16080 • Config: upload_cutoff
16081
16082 • Env Var: RCLONE_B2_UPLOAD_CUTOFF
16083
16084 • Type: SizeSuffix
16085
16086 • Default: 200M
16087
16088 --b2-copy-cutoff
16089 Cutoff for switching to multipart copy
16090
16091 Any files larger than this that need to be server-side copied will be
16092 copied in chunks of this size.
16093
16094 The minimum is 0 and the maximum is 4.6GB.
16095
16096 • Config: copy_cutoff
16097
16098 • Env Var: RCLONE_B2_COPY_CUTOFF
16099
16100 • Type: SizeSuffix
16101
16102 • Default: 4G
16103
16104 --b2-chunk-size
16105 Upload chunk size. Must fit in memory.
16106
16107 When uploading large files, chunk the file into this size. Note that
16108 these chunks are buffered in memory and there might a maximum of
16109 "--transfers" chunks in progress at once. 5,000,000 Bytes is the mini‐
16110 mum size.
16111
16112 • Config: chunk_size
16113
16114 • Env Var: RCLONE_B2_CHUNK_SIZE
16115
16116 • Type: SizeSuffix
16117
16118 • Default: 96M
16119
16120 --b2-disable-checksum
16121 Disable checksums for large (> upload cutoff) files
16122
16123 Normally rclone will calculate the SHA1 checksum of the input before
16124 uploading it so it can add it to metadata on the object. This is great
16125 for data integrity checking but can cause long delays for large files
16126 to start uploading.
16127
16128 • Config: disable_checksum
16129
16130 • Env Var: RCLONE_B2_DISABLE_CHECKSUM
16131
16132 • Type: bool
16133
16134 • Default: false
16135
16136 --b2-download-url
16137 Custom endpoint for downloads.
16138
16139 This is usually set to a Cloudflare CDN URL as Backblaze offers free
16140 egress for data downloaded through the Cloudflare network. Rclone
16141 works with private buckets by sending an "Authorization" header. If
16142 the custom endpoint rewrites the requests for authentication, e.g., in
16143 Cloudflare Workers, this header needs to be handled properly. Leave
16144 blank if you want to use the endpoint provided by Backblaze.
16145
16146 • Config: download_url
16147
16148 • Env Var: RCLONE_B2_DOWNLOAD_URL
16149
16150 • Type: string
16151
16152 • Default: ""
16153
16154 --b2-download-auth-duration
16155 Time before the authorization token will expire in s or suffix
16156 ms|s|m|h|d.
16157
16158 The duration before the download authorization token will expire. The
16159 minimum value is 1 second. The maximum value is one week.
16160
16161 • Config: download_auth_duration
16162
16163 • Env Var: RCLONE_B2_DOWNLOAD_AUTH_DURATION
16164
16165 • Type: Duration
16166
16167 • Default: 1w
16168
16169 --b2-memory-pool-flush-time
16170 How often internal memory buffer pools will be flushed. Uploads which
16171 requires additional buffers (f.e multipart) will use memory pool for
16172 allocations. This option controls how often unused buffers will be re‐
16173 moved from the pool.
16174
16175 • Config: memory_pool_flush_time
16176
16177 • Env Var: RCLONE_B2_MEMORY_POOL_FLUSH_TIME
16178
16179 • Type: Duration
16180
16181 • Default: 1m0s
16182
16183 --b2-memory-pool-use-mmap
16184 Whether to use mmap buffers in internal memory pool.
16185
16186 • Config: memory_pool_use_mmap
16187
16188 • Env Var: RCLONE_B2_MEMORY_POOL_USE_MMAP
16189
16190 • Type: bool
16191
16192 • Default: false
16193
16194 --b2-encoding
16195 This sets the encoding for the backend.
16196
16197 See: the encoding section in the overview (https://rclone.org/over‐
16198 view/#encoding) for more info.
16199
16200 • Config: encoding
16201
16202 • Env Var: RCLONE_B2_ENCODING
16203
16204 • Type: MultiEncoder
16205
16206 • Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
16207
16208 Limitations
16209 rclone about is not supported by the B2 backend. Backends without this
16210 capability cannot determine free space for an rclone mount or use poli‐
16211 cy mfs (most free space) as a member of an rclone union remote.
16212
16213 See List of backends that do not support rclone about
16214 (https://rclone.org/overview/#optional-features) See rclone about
16215 (https://rclone.org/commands/rclone_about/)
16216
16217 Box
16218 Paths are specified as remote:path
16219
16220 Paths may be as deep as required, e.g. remote:directory/subdirectory.
16221
16222 The initial setup for Box involves getting a token from Box which you
16223 can do either in your browser, or with a config.json downloaded from
16224 Box to use JWT authentication. rclone config walks you through it.
16225
16226 Here is an example of how to make a remote called remote. First run:
16227
16228 rclone config
16229
16230 This will guide you through an interactive setup process:
16231
16232 No remotes found - make a new one
16233 n) New remote
16234 s) Set configuration password
16235 q) Quit config
16236 n/s/q> n
16237 name> remote
16238 Type of storage to configure.
16239 Choose a number from below, or type in your own value
16240 [snip]
16241 XX / Box
16242 \ "box"
16243 [snip]
16244 Storage> box
16245 Box App Client Id - leave blank normally.
16246 client_id>
16247 Box App Client Secret - leave blank normally.
16248 client_secret>
16249 Box App config.json location
16250 Leave blank normally.
16251 Enter a string value. Press Enter for the default ("").
16252 box_config_file>
16253 Box App Primary Access Token
16254 Leave blank normally.
16255 Enter a string value. Press Enter for the default ("").
16256 access_token>
16257
16258 Enter a string value. Press Enter for the default ("user").
16259 Choose a number from below, or type in your own value
16260 1 / Rclone should act on behalf of a user
16261 \ "user"
16262 2 / Rclone should act on behalf of a service account
16263 \ "enterprise"
16264 box_sub_type>
16265 Remote config
16266 Use auto config?
16267 * Say Y if not sure
16268 * Say N if you are working on a remote or headless machine
16269 y) Yes
16270 n) No
16271 y/n> y
16272 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
16273 Log in and authorize rclone for access
16274 Waiting for code...
16275 Got code
16276 --------------------
16277 [remote]
16278 client_id =
16279 client_secret =
16280 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"XXX"}
16281 --------------------
16282 y) Yes this is OK
16283 e) Edit this remote
16284 d) Delete this remote
16285 y/e/d> y
16286
16287 See the remote setup docs (https://rclone.org/remote_setup/) for how to
16288 set it up on a machine with no Internet browser available.
16289
16290 Note that rclone runs a webserver on your local machine to collect the
16291 token as returned from Box. This only runs from the moment it opens
16292 your browser to the moment you get back the verification code. This is
16293 on http://127.0.0.1:53682/ and this it may require you to unblock it
16294 temporarily if you are running a host firewall.
16295
16296 Once configured you can then use rclone like this,
16297
16298 List directories in top level of your Box
16299
16300 rclone lsd remote:
16301
16302 List all the files in your Box
16303
16304 rclone ls remote:
16305
16306 To copy a local directory to an Box directory called backup
16307
16308 rclone copy /home/source remote:backup
16309
16310 Using rclone with an Enterprise account with SSO
16311 If you have an "Enterprise" account type with Box with single sign on
16312 (SSO), you need to create a password to use Box with rclone. This can
16313 be done at your Enterprise Box account by going to Settings, "Account"
16314 Tab, and then set the password in the "Authentication" field.
16315
16316 Once you have done this, you can setup your Enterprise Box account us‐
16317 ing the same procedure detailed above in the, using the password you
16318 have just set.
16319
16320 Invalid refresh token
16321 According to the box docs (https://develop‐
16322 er.box.com/v2.0/docs/oauth-20#section-6-using-the-access-and-refresh-
16323 tokens):
16324
16325 Each refresh_token is valid for one use in 60 days.
16326
16327 This means that if you
16328
16329 • Don't use the box remote for 60 days
16330
16331 • Copy the config file with a box refresh token in and use it in two
16332 places
16333
16334 • Get an error on a token refresh
16335
16336 then rclone will return an error which includes the text Invalid re‐
16337 fresh token.
16338
16339 To fix this you will need to use oauth2 again to update the refresh to‐
16340 ken. You can use the methods in the remote setup docs
16341 (https://rclone.org/remote_setup/), bearing in mind that if you use the
16342 copy the config file method, you should not use that remote on the com‐
16343 puter you did the authentication on.
16344
16345 Here is how to do it.
16346
16347 $ rclone config
16348 Current remotes:
16349
16350 Name Type
16351 ==== ====
16352 remote box
16353
16354 e) Edit existing remote
16355 n) New remote
16356 d) Delete remote
16357 r) Rename remote
16358 c) Copy remote
16359 s) Set configuration password
16360 q) Quit config
16361 e/n/d/r/c/s/q> e
16362 Choose a number from below, or type in an existing value
16363 1 > remote
16364 remote> remote
16365 --------------------
16366 [remote]
16367 type = box
16368 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"2017-07-08T23:40:08.059167677+01:00"}
16369 --------------------
16370 Edit remote
16371 Value "client_id" = ""
16372 Edit? (y/n)>
16373 y) Yes
16374 n) No
16375 y/n> n
16376 Value "client_secret" = ""
16377 Edit? (y/n)>
16378 y) Yes
16379 n) No
16380 y/n> n
16381 Remote config
16382 Already have a token - refresh?
16383 y) Yes
16384 n) No
16385 y/n> y
16386 Use auto config?
16387 * Say Y if not sure
16388 * Say N if you are working on a remote or headless machine
16389 y) Yes
16390 n) No
16391 y/n> y
16392 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
16393 Log in and authorize rclone for access
16394 Waiting for code...
16395 Got code
16396 --------------------
16397 [remote]
16398 type = box
16399 token = {"access_token":"YYY","token_type":"bearer","refresh_token":"YYY","expiry":"2017-07-23T12:22:29.259137901+01:00"}
16400 --------------------
16401 y) Yes this is OK
16402 e) Edit this remote
16403 d) Delete this remote
16404 y/e/d> y
16405
16406 Modified time and hashes
16407 Box allows modification times to be set on objects accurate to 1 sec‐
16408 ond. These will be used to detect whether objects need syncing or not.
16409
16410 Box supports SHA1 type hashes, so you can use the --checksum flag.
16411
16412 Restricted filename characters
16413 In addition to the default restricted characters set
16414 (https://rclone.org/overview/#restricted-characters) the following
16415 characters are also replaced:
16416
16417 Character Value Replacement
16418 ────────────────────────────────
16419 \ 0x5C \
16420
16421 File names can also not end with the following characters. These only
16422 get replaced if they are the last character in the name:
16423
16424 Character Value Replacement
16425 ────────────────────────────────
16426 SP 0x20 ␠
16427
16428 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
16429 view/#invalid-utf8), as they can't be used in JSON strings.
16430
16431 Transfers
16432 For files above 50MB rclone will use a chunked transfer. Rclone will
16433 upload up to --transfers chunks at the same time (shared among all the
16434 multipart uploads). Chunks are buffered in memory and are normally 8MB
16435 so increasing --transfers will increase memory use.
16436
16437 Deleting files
16438 Depending on the enterprise settings for your user, the item will ei‐
16439 ther be actually deleted from Box or moved to the trash.
16440
16441 Emptying the trash is supported via the rclone however cleanup command
16442 however this deletes every trashed file and folder individually so it
16443 may take a very long time. Emptying the trash via the WebUI does not
16444 have this limitation so it is advised to empty the trash via the WebUI.
16445
16446 Root folder ID
16447 You can set the root_folder_id for rclone. This is the directory
16448 (identified by its Folder ID) that rclone considers to be the root of
16449 your Box drive.
16450
16451 Normally you will leave this blank and rclone will determine the cor‐
16452 rect root to use itself.
16453
16454 However you can set this to restrict rclone to a specific folder hier‐
16455 archy.
16456
16457 In order to do this you will have to find the Folder ID of the directo‐
16458 ry you wish rclone to display. This will be the last segment of the
16459 URL when you open the relevant folder in the Box web interface.
16460
16461 So if the folder you want rclone to use has a URL which looks like
16462 https://app.box.com/folder/11xxxxxxxxx8 in the browser, then you use
16463 11xxxxxxxxx8 as the root_folder_id in the config.
16464
16465 Standard Options
16466 Here are the standard options specific to box (Box).
16467
16468 --box-client-id
16469 OAuth Client Id Leave blank normally.
16470
16471 • Config: client_id
16472
16473 • Env Var: RCLONE_BOX_CLIENT_ID
16474
16475 • Type: string
16476
16477 • Default: ""
16478
16479 --box-client-secret
16480 OAuth Client Secret Leave blank normally.
16481
16482 • Config: client_secret
16483
16484 • Env Var: RCLONE_BOX_CLIENT_SECRET
16485
16486 • Type: string
16487
16488 • Default: ""
16489
16490 --box-box-config-file
16491 Box App config.json location Leave blank normally.
16492
16493 Leading ~ will be expanded in the file name as will environment vari‐
16494 ables such as ${RCLONE_CONFIG_DIR}.
16495
16496 • Config: box_config_file
16497
16498 • Env Var: RCLONE_BOX_BOX_CONFIG_FILE
16499
16500 • Type: string
16501
16502 • Default: ""
16503
16504 --box-access-token
16505 Box App Primary Access Token Leave blank normally.
16506
16507 • Config: access_token
16508
16509 • Env Var: RCLONE_BOX_ACCESS_TOKEN
16510
16511 • Type: string
16512
16513 • Default: ""
16514
16515 --box-box-sub-type
16516 • Config: box_sub_type
16517
16518 • Env Var: RCLONE_BOX_BOX_SUB_TYPE
16519
16520 • Type: string
16521
16522 • Default: "user"
16523
16524 • Examples:
16525
16526 • "user"
16527
16528 • Rclone should act on behalf of a user
16529
16530 • "enterprise"
16531
16532 • Rclone should act on behalf of a service account
16533
16534 Advanced Options
16535 Here are the advanced options specific to box (Box).
16536
16537 --box-token
16538 OAuth Access Token as a JSON blob.
16539
16540 • Config: token
16541
16542 • Env Var: RCLONE_BOX_TOKEN
16543
16544 • Type: string
16545
16546 • Default: ""
16547
16548 --box-auth-url
16549 Auth server URL. Leave blank to use the provider defaults.
16550
16551 • Config: auth_url
16552
16553 • Env Var: RCLONE_BOX_AUTH_URL
16554
16555 • Type: string
16556
16557 • Default: ""
16558
16559 --box-token-url
16560 Token server url. Leave blank to use the provider defaults.
16561
16562 • Config: token_url
16563
16564 • Env Var: RCLONE_BOX_TOKEN_URL
16565
16566 • Type: string
16567
16568 • Default: ""
16569
16570 --box-root-folder-id
16571 Fill in for rclone to use a non root folder as its starting point.
16572
16573 • Config: root_folder_id
16574
16575 • Env Var: RCLONE_BOX_ROOT_FOLDER_ID
16576
16577 • Type: string
16578
16579 • Default: "0"
16580
16581 --box-upload-cutoff
16582 Cutoff for switching to multipart upload (>= 50MB).
16583
16584 • Config: upload_cutoff
16585
16586 • Env Var: RCLONE_BOX_UPLOAD_CUTOFF
16587
16588 • Type: SizeSuffix
16589
16590 • Default: 50M
16591
16592 --box-commit-retries
16593 Max number of times to try committing a multipart file.
16594
16595 • Config: commit_retries
16596
16597 • Env Var: RCLONE_BOX_COMMIT_RETRIES
16598
16599 • Type: int
16600
16601 • Default: 100
16602
16603 --box-encoding
16604 This sets the encoding for the backend.
16605
16606 See: the encoding section in the overview (https://rclone.org/over‐
16607 view/#encoding) for more info.
16608
16609 • Config: encoding
16610
16611 • Env Var: RCLONE_BOX_ENCODING
16612
16613 • Type: MultiEncoder
16614
16615 • Default: Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot
16616
16617 Limitations
16618 Note that Box is case insensitive so you can't have a file called "Hel‐
16619 lo.doc" and one called "hello.doc".
16620
16621 Box file names can't have the \ character in. rclone maps this to and
16622 from an identical looking unicode equivalent \ (U+FF3C Fullwidth Re‐
16623 verse Solidus).
16624
16625 Box only supports filenames up to 255 characters in length.
16626
16627 rclone about is not supported by the Box backend. Backends without
16628 this capability cannot determine free space for an rclone mount or use
16629 policy mfs (most free space) as a member of an rclone union remote.
16630
16631 See List of backends that do not support rclone about
16632 (https://rclone.org/overview/#optional-features) See rclone about
16633 (https://rclone.org/commands/rclone_about/)
16634
16635 Cache (BETA)
16636 The cache remote wraps another existing remote and stores file struc‐
16637 ture and its data for long running tasks like rclone mount.
16638
16639 Status
16640 The cache backend code is working but it currently doesn't have a main‐
16641 tainer so there are outstanding bugs
16642 (https://github.com/rclone/rclone/issues?q=is%3Aopen+is%3Aissue+la‐
16643 bel%3Abug+label%3A%22Remote%3A+Cache%22) which aren't getting fixed.
16644
16645 The cache backend is due to be phased out in favour of the VFS caching
16646 layer eventually which is more tightly integrated into rclone.
16647
16648 Until this happens we recommend only using the cache backend if you
16649 find you can't work without it. There are many docs online describing
16650 the use of the cache backend to minimize API hits and by-and-large
16651 these are out of date and the cache backend isn't needed in those sce‐
16652 narios any more.
16653
16654 Setup
16655 To get started you just need to have an existing remote which can be
16656 configured with cache.
16657
16658 Here is an example of how to make a remote called test-cache. First
16659 run:
16660
16661 rclone config
16662
16663 This will guide you through an interactive setup process:
16664
16665 No remotes found - make a new one
16666 n) New remote
16667 r) Rename remote
16668 c) Copy remote
16669 s) Set configuration password
16670 q) Quit config
16671 n/r/c/s/q> n
16672 name> test-cache
16673 Type of storage to configure.
16674 Choose a number from below, or type in your own value
16675 [snip]
16676 XX / Cache a remote
16677 \ "cache"
16678 [snip]
16679 Storage> cache
16680 Remote to cache.
16681 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
16682 "myremote:bucket" or maybe "myremote:" (not recommended).
16683 remote> local:/test
16684 Optional: The URL of the Plex server
16685 plex_url> http://127.0.0.1:32400
16686 Optional: The username of the Plex user
16687 plex_username> dummyusername
16688 Optional: The password of the Plex user
16689 y) Yes type in my own password
16690 g) Generate random password
16691 n) No leave this optional password blank
16692 y/g/n> y
16693 Enter the password:
16694 password:
16695 Confirm the password:
16696 password:
16697 The size of a chunk. Lower value good for slow connections but can affect seamless reading.
16698 Default: 5M
16699 Choose a number from below, or type in your own value
16700 1 / 1MB
16701 \ "1m"
16702 2 / 5 MB
16703 \ "5M"
16704 3 / 10 MB
16705 \ "10M"
16706 chunk_size> 2
16707 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.
16708 Accepted units are: "s", "m", "h".
16709 Default: 5m
16710 Choose a number from below, or type in your own value
16711 1 / 1 hour
16712 \ "1h"
16713 2 / 24 hours
16714 \ "24h"
16715 3 / 24 hours
16716 \ "48h"
16717 info_age> 2
16718 The maximum size of stored chunks. When the storage grows beyond this size, the oldest chunks will be deleted.
16719 Default: 10G
16720 Choose a number from below, or type in your own value
16721 1 / 500 MB
16722 \ "500M"
16723 2 / 1 GB
16724 \ "1G"
16725 3 / 10 GB
16726 \ "10G"
16727 chunk_total_size> 3
16728 Remote config
16729 --------------------
16730 [test-cache]
16731 remote = local:/test
16732 plex_url = http://127.0.0.1:32400
16733 plex_username = dummyusername
16734 plex_password = *** ENCRYPTED ***
16735 chunk_size = 5M
16736 info_age = 48h
16737 chunk_total_size = 10G
16738
16739 You can then use it like this,
16740
16741 List directories in top level of your drive
16742
16743 rclone lsd test-cache:
16744
16745 List all the files in your drive
16746
16747 rclone ls test-cache:
16748
16749 To start a cached mount
16750
16751 rclone mount --allow-other test-cache: /var/tmp/test-cache
16752
16753 Write Features
16754 Offline uploading
16755 In an effort to make writing through cache more reliable, the backend
16756 now supports this feature which can be activated by specifying a
16757 cache-tmp-upload-path.
16758
16759 A files goes through these states when using this feature:
16760
16761 1. An upload is started (usually by copying a file on the cache remote)
16762
16763 2. When the copy to the temporary location is complete the file is part
16764 of the cached remote and looks and behaves like any other file
16765 (reading included)
16766
16767 3. After cache-tmp-wait-time passes and the file is next in line,
16768 rclone move is used to move the file to the cloud provider
16769
16770 4. Reading the file still works during the upload but most modifica‐
16771 tions on it will be prohibited
16772
16773 5. Once the move is complete the file is unlocked for modifications as
16774 it becomes as any other regular file
16775
16776 6. If the file is being read through cache when it's actually deleted
16777 from the temporary path then cache will simply swap the source to
16778 the cloud provider without interrupting the reading (small blip can
16779 happen though)
16780
16781 Files are uploaded in sequence and only one file is uploaded at a time.
16782 Uploads will be stored in a queue and be processed based on the order
16783 they were added. The queue and the temporary storage is persistent
16784 across restarts but can be cleared on startup with the --cache-db-purge
16785 flag.
16786
16787 Write Support
16788 Writes are supported through cache. One caveat is that a mounted cache
16789 remote does not add any retry or fallback mechanism to the upload oper‐
16790 ation. This will depend on the implementation of the wrapped remote.
16791 Consider using Offline uploading for reliable writes.
16792
16793 One special case is covered with cache-writes which will cache the file
16794 data at the same time as the upload when it is enabled making it avail‐
16795 able from the cache store immediately once the upload is finished.
16796
16797 Read Features
16798 Multiple connections
16799 To counter the high latency between a local PC where rclone is running
16800 and cloud providers, the cache remote can split multiple requests to
16801 the cloud provider for smaller file chunks and combines them together
16802 locally where they can be available almost immediately before the read‐
16803 er usually needs them.
16804
16805 This is similar to buffering when media files are played online.
16806 Rclone will stay around the current marker but always try its best to
16807 stay ahead and prepare the data before.
16808
16809 Plex Integration
16810 There is a direct integration with Plex which allows cache to detect
16811 during reading if the file is in playback or not. This helps cache to
16812 adapt how it queries the cloud provider depending on what is needed
16813 for.
16814
16815 Scans will have a minimum amount of workers (1) while in a confirmed
16816 playback cache will deploy the configured number of workers.
16817
16818 This integration opens the doorway to additional performance improve‐
16819 ments which will be explored in the near future.
16820
16821 Note: If Plex options are not configured, cache will function with its
16822 configured options without adapting any of its settings.
16823
16824 How to enable? Run rclone config and add all the Plex options (end‐
16825 point, username and password) in your remote and it will be automati‐
16826 cally enabled.
16827
16828 Affected settings: - cache-workers: Configured value during confirmed
16829 playback or 1 all the other times
16830
16831 Certificate Validation
16832 When the Plex server is configured to only accept secure connections,
16833 it is possible to use .plex.direct URLs to ensure certificate valida‐
16834 tion succeeds. These URLs are used by Plex internally to connect to
16835 the Plex server securely.
16836
16837 The format for these URLs is the following:
16838
16839 https://ip-with-dots-replaced.server-hash.plex.direct:32400/
16840
16841 The ip-with-dots-replaced part can be any IPv4 address, where the dots
16842 have been replaced with dashes, e.g. 127.0.0.1 becomes 127-0-0-1.
16843
16844 To get the server-hash part, the easiest way is to visit
16845
16846 https://plex.tv/api/resources?includeHttps=1&X-Plex-Token=your-plex-to‐
16847 ken
16848
16849 This page will list all the available Plex servers for your account
16850 with at least one .plex.direct link for each. Copy one URL and replace
16851 the IP address with the desired address. This can be used as the
16852 plex_url value.
16853
16854 Known issues
16855 Mount and --dir-cache-time
16856 --dir-cache-time controls the first layer of directory caching which
16857 works at the mount layer. Being an independent caching mechanism from
16858 the cache backend, it will manage its own entries based on the config‐
16859 ured time.
16860
16861 To avoid getting in a scenario where dir cache has obsolete data and
16862 cache would have the correct one, try to set --dir-cache-time to a low‐
16863 er time than --cache-info-age. Default values are already configured
16864 in this way.
16865
16866 Windows support - Experimental
16867 There are a couple of issues with Windows mount functionality that
16868 still require some investigations. It should be considered as experi‐
16869 mental thus far as fixes come in for this OS.
16870
16871 Most of the issues seem to be related to the difference between
16872 filesystems on Linux flavors and Windows as cache is heavily dependent
16873 on them.
16874
16875 Any reports or feedback on how cache behaves on this OS is greatly ap‐
16876 preciated.
16877
16878 • https://github.com/rclone/rclone/issues/1935
16879
16880 • https://github.com/rclone/rclone/issues/1907
16881
16882 • https://github.com/rclone/rclone/issues/1834
16883
16884 Risk of throttling
16885 Future iterations of the cache backend will make use of the pooling
16886 functionality of the cloud provider to synchronize and at the same time
16887 make writing through it more tolerant to failures.
16888
16889 There are a couple of enhancements in track to add these but in the
16890 meantime there is a valid concern that the expiring cache listings can
16891 lead to cloud provider throttles or bans due to repeated queries on it
16892 for very large mounts.
16893
16894 Some recommendations: - don't use a very small interval for entry in‐
16895 formation (--cache-info-age) - while writes aren't yet optimised, you
16896 can still write through cache which gives you the advantage of adding
16897 the file in the cache at the same time if configured to do so.
16898
16899 Future enhancements:
16900
16901 • https://github.com/rclone/rclone/issues/1937
16902
16903 • https://github.com/rclone/rclone/issues/1936
16904
16905 cache and crypt
16906 One common scenario is to keep your data encrypted in the cloud
16907 provider using the crypt remote. crypt uses a similar technique to
16908 wrap around an existing remote and handles this translation in a seam‐
16909 less way.
16910
16911 There is an issue with wrapping the remotes in this order: cloud remote
16912 -> crypt -> cache
16913
16914 During testing, I experienced a lot of bans with the remotes in this
16915 order. I suspect it might be related to how crypt opens files on the
16916 cloud provider which makes it think we're downloading the full file in‐
16917 stead of small chunks. Organizing the remotes in this order yields
16918 better results: cloud remote -> cache -> crypt
16919
16920 absolute remote paths
16921 cache can not differentiate between relative and absolute paths for the
16922 wrapped remote. Any path given in the remote config setting and on the
16923 command line will be passed to the wrapped remote as is, but for stor‐
16924 ing the chunks on disk the path will be made relative by removing any
16925 leading / character.
16926
16927 This behavior is irrelevant for most backend types, but there are back‐
16928 ends where a leading / changes the effective directory, e.g. in the
16929 sftp backend paths starting with a / are relative to the root of the
16930 SSH server and paths without are relative to the user home directory.
16931 As a result sftp:bin and sftp:/bin will share the same cache folder,
16932 even if they represent a different directory on the SSH server.
16933
16934 Cache and Remote Control (--rc)
16935 Cache supports the new --rc mode in rclone and can be remote controlled
16936 through the following end points: By default, the listener is disabled
16937 if you do not add the flag.
16938
16939 rc cache/expire
16940 Purge a remote from the cache backend. Supports either a directory or
16941 a file. It supports both encrypted and unencrypted file names if cache
16942 is wrapped by crypt.
16943
16944 Params: - remote = path to remote (required) - withData = true/false to
16945 delete cached data (chunks) as well (optional, false by default)
16946
16947 Standard Options
16948 Here are the standard options specific to cache (Cache a remote).
16949
16950 --cache-remote
16951 Remote to cache. Normally should contain a ':' and a path, e.g.
16952 "myremote:path/to/dir", "myremote:bucket" or maybe "myremote:" (not
16953 recommended).
16954
16955 • Config: remote
16956
16957 • Env Var: RCLONE_CACHE_REMOTE
16958
16959 • Type: string
16960
16961 • Default: ""
16962
16963 --cache-plex-url
16964 The URL of the Plex server
16965
16966 • Config: plex_url
16967
16968 • Env Var: RCLONE_CACHE_PLEX_URL
16969
16970 • Type: string
16971
16972 • Default: ""
16973
16974 --cache-plex-username
16975 The username of the Plex user
16976
16977 • Config: plex_username
16978
16979 • Env Var: RCLONE_CACHE_PLEX_USERNAME
16980
16981 • Type: string
16982
16983 • Default: ""
16984
16985 --cache-plex-password
16986 The password of the Plex user
16987
16988 NB Input to this must be obscured - see rclone obscure
16989 (https://rclone.org/commands/rclone_obscure/).
16990
16991 • Config: plex_password
16992
16993 • Env Var: RCLONE_CACHE_PLEX_PASSWORD
16994
16995 • Type: string
16996
16997 • Default: ""
16998
16999 --cache-chunk-size
17000 The size of a chunk (partial file data).
17001
17002 Use lower numbers for slower connections. If the chunk size is
17003 changed, any downloaded chunks will be invalid and cache-chunk-path
17004 will need to be cleared or unexpected EOF errors will occur.
17005
17006 • Config: chunk_size
17007
17008 • Env Var: RCLONE_CACHE_CHUNK_SIZE
17009
17010 • Type: SizeSuffix
17011
17012 • Default: 5M
17013
17014 • Examples:
17015
17016 • "1m"
17017
17018 • 1MB
17019
17020 • "5M"
17021
17022 • 5 MB
17023
17024 • "10M"
17025
17026 • 10 MB
17027
17028 --cache-info-age
17029 How long to cache file structure information (directory listings, file
17030 size, times, etc.). If all write operations are done through the cache
17031 then you can safely make this value very large as the cache store will
17032 also be updated in real time.
17033
17034 • Config: info_age
17035
17036 • Env Var: RCLONE_CACHE_INFO_AGE
17037
17038 • Type: Duration
17039
17040 • Default: 6h0m0s
17041
17042 • Examples:
17043
17044 • "1h"
17045
17046 • 1 hour
17047
17048 • "24h"
17049
17050 • 24 hours
17051
17052 • "48h"
17053
17054 • 48 hours
17055
17056 --cache-chunk-total-size
17057 The total size that the chunks can take up on the local disk.
17058
17059 If the cache exceeds this value then it will start to delete the oldest
17060 chunks until it goes under this value.
17061
17062 • Config: chunk_total_size
17063
17064 • Env Var: RCLONE_CACHE_CHUNK_TOTAL_SIZE
17065
17066 • Type: SizeSuffix
17067
17068 • Default: 10G
17069
17070 • Examples:
17071
17072 • "500M"
17073
17074 • 500 MB
17075
17076 • "1G"
17077
17078 • 1 GB
17079
17080 • "10G"
17081
17082 • 10 GB
17083
17084 Advanced Options
17085 Here are the advanced options specific to cache (Cache a remote).
17086
17087 --cache-plex-token
17088 The plex token for authentication - auto set normally
17089
17090 • Config: plex_token
17091
17092 • Env Var: RCLONE_CACHE_PLEX_TOKEN
17093
17094 • Type: string
17095
17096 • Default: ""
17097
17098 --cache-plex-insecure
17099 Skip all certificate verification when connecting to the Plex server
17100
17101 • Config: plex_insecure
17102
17103 • Env Var: RCLONE_CACHE_PLEX_INSECURE
17104
17105 • Type: string
17106
17107 • Default: ""
17108
17109 --cache-db-path
17110 Directory to store file structure metadata DB. The remote name is used
17111 as the DB file name.
17112
17113 • Config: db_path
17114
17115 • Env Var: RCLONE_CACHE_DB_PATH
17116
17117 • Type: string
17118
17119 • Default: "$HOME/.cache/rclone/cache-backend"
17120
17121 --cache-chunk-path
17122 Directory to cache chunk files.
17123
17124 Path to where partial file data (chunks) are stored locally. The re‐
17125 mote name is appended to the final path.
17126
17127 This config follows the "--cache-db-path". If you specify a custom lo‐
17128 cation for "--cache-db-path" and don't specify one for
17129 "--cache-chunk-path" then "--cache-chunk-path" will use the same path
17130 as "--cache-db-path".
17131
17132 • Config: chunk_path
17133
17134 • Env Var: RCLONE_CACHE_CHUNK_PATH
17135
17136 • Type: string
17137
17138 • Default: "$HOME/.cache/rclone/cache-backend"
17139
17140 --cache-db-purge
17141 Clear all the cached data for this remote on start.
17142
17143 • Config: db_purge
17144
17145 • Env Var: RCLONE_CACHE_DB_PURGE
17146
17147 • Type: bool
17148
17149 • Default: false
17150
17151 --cache-chunk-clean-interval
17152 How often should the cache perform cleanups of the chunk storage. The
17153 default value should be ok for most people. If you find that the cache
17154 goes over "cache-chunk-total-size" too often then try to lower this
17155 value to force it to perform cleanups more often.
17156
17157 • Config: chunk_clean_interval
17158
17159 • Env Var: RCLONE_CACHE_CHUNK_CLEAN_INTERVAL
17160
17161 • Type: Duration
17162
17163 • Default: 1m0s
17164
17165 --cache-read-retries
17166 How many times to retry a read from a cache storage.
17167
17168 Since reading from a cache stream is independent from downloading file
17169 data, readers can get to a point where there's no more data in the
17170 cache. Most of the times this can indicate a connectivity issue if
17171 cache isn't able to provide file data anymore.
17172
17173 For really slow connections, increase this to a point where the stream
17174 is able to provide data but your experience will be very stuttering.
17175
17176 • Config: read_retries
17177
17178 • Env Var: RCLONE_CACHE_READ_RETRIES
17179
17180 • Type: int
17181
17182 • Default: 10
17183
17184 --cache-workers
17185 How many workers should run in parallel to download chunks.
17186
17187 Higher values will mean more parallel processing (better CPU needed)
17188 and more concurrent requests on the cloud provider. This impacts sev‐
17189 eral aspects like the cloud provider API limits, more stress on the
17190 hardware that rclone runs on but it also means that streams will be
17191 more fluid and data will be available much more faster to readers.
17192
17193 Note: If the optional Plex integration is enabled then this setting
17194 will adapt to the type of reading performed and the value specified
17195 here will be used as a maximum number of workers to use.
17196
17197 • Config: workers
17198
17199 • Env Var: RCLONE_CACHE_WORKERS
17200
17201 • Type: int
17202
17203 • Default: 4
17204
17205 --cache-chunk-no-memory
17206 Disable the in-memory cache for storing chunks during streaming.
17207
17208 By default, cache will keep file data during streaming in RAM as well
17209 to provide it to readers as fast as possible.
17210
17211 This transient data is evicted as soon as it is read and the number of
17212 chunks stored doesn't exceed the number of workers. However, depending
17213 on other settings like "cache-chunk-size" and "cache-workers" this
17214 footprint can increase if there are parallel streams too (multiple
17215 files being read at the same time).
17216
17217 If the hardware permits it, use this feature to provide an overall bet‐
17218 ter performance during streaming but it can also be disabled if RAM is
17219 not available on the local machine.
17220
17221 • Config: chunk_no_memory
17222
17223 • Env Var: RCLONE_CACHE_CHUNK_NO_MEMORY
17224
17225 • Type: bool
17226
17227 • Default: false
17228
17229 --cache-rps
17230 Limits the number of requests per second to the source FS (-1 to dis‐
17231 able)
17232
17233 This setting places a hard limit on the number of requests per second
17234 that cache will be doing to the cloud provider remote and try to re‐
17235 spect that value by setting waits between reads.
17236
17237 If you find that you're getting banned or limited on the cloud provider
17238 through cache and know that a smaller number of requests per second
17239 will allow you to work with it then you can use this setting for that.
17240
17241 A good balance of all the other settings should make this setting use‐
17242 less but it is available to set for more special cases.
17243
17244 NOTE: This will limit the number of requests during streams but other
17245 API calls to the cloud provider like directory listings will still
17246 pass.
17247
17248 • Config: rps
17249
17250 • Env Var: RCLONE_CACHE_RPS
17251
17252 • Type: int
17253
17254 • Default: -1
17255
17256 --cache-writes
17257 Cache file data on writes through the FS
17258
17259 If you need to read files immediately after you upload them through
17260 cache you can enable this flag to have their data stored in the cache
17261 store at the same time during upload.
17262
17263 • Config: writes
17264
17265 • Env Var: RCLONE_CACHE_WRITES
17266
17267 • Type: bool
17268
17269 • Default: false
17270
17271 --cache-tmp-upload-path
17272 Directory to keep temporary files until they are uploaded.
17273
17274 This is the path where cache will use as a temporary storage for new
17275 files that need to be uploaded to the cloud provider.
17276
17277 Specifying a value will enable this feature. Without it, it is com‐
17278 pletely disabled and files will be uploaded directly to the cloud
17279 provider
17280
17281 • Config: tmp_upload_path
17282
17283 • Env Var: RCLONE_CACHE_TMP_UPLOAD_PATH
17284
17285 • Type: string
17286
17287 • Default: ""
17288
17289 --cache-tmp-wait-time
17290 How long should files be stored in local cache before being uploaded
17291
17292 This is the duration that a file must wait in the temporary location
17293 cache-tmp-upload-path before it is selected for upload.
17294
17295 Note that only one file is uploaded at a time and it can take longer to
17296 start the upload if a queue formed for this purpose.
17297
17298 • Config: tmp_wait_time
17299
17300 • Env Var: RCLONE_CACHE_TMP_WAIT_TIME
17301
17302 • Type: Duration
17303
17304 • Default: 15s
17305
17306 --cache-db-wait-time
17307 How long to wait for the DB to be available - 0 is unlimited
17308
17309 Only one process can have the DB open at any one time, so rclone waits
17310 for this duration for the DB to become available before it gives an er‐
17311 ror.
17312
17313 If you set it to 0 then it will wait forever.
17314
17315 • Config: db_wait_time
17316
17317 • Env Var: RCLONE_CACHE_DB_WAIT_TIME
17318
17319 • Type: Duration
17320
17321 • Default: 1s
17322
17323 Backend commands
17324 Here are the commands specific to the cache backend.
17325
17326 Run them with
17327
17328 rclone backend COMMAND remote:
17329
17330 The help below will explain what arguments each command takes.
17331
17332 See the "rclone backend" command (https://rclone.org/com‐
17333 mands/rclone_backend/) for more info on how to pass options and argu‐
17334 ments.
17335
17336 These can be run on a running backend using the rc command backend/com‐
17337 mand (https://rclone.org/rc/#backend/command).
17338
17339 stats
17340 Print stats on the cache backend in JSON format.
17341
17342 rclone backend stats remote: [options] [<arguments>+]
17343
17344 Chunker (BETA)
17345 The chunker overlay transparently splits large files into smaller
17346 chunks during upload to wrapped remote and transparently assembles them
17347 back when the file is downloaded. This allows to effectively overcome
17348 size limits imposed by storage providers.
17349
17350 To use it, first set up the underlying remote following the configura‐
17351 tion instructions for that remote. You can also use a local pathname
17352 instead of a remote.
17353
17354 First check your chosen remote is working - we'll call it remote:path
17355 here. Note that anything inside remote:path will be chunked and any‐
17356 thing outside won't. This means that if you are using a bucket based
17357 remote (e.g. S3, B2, swift) then you should probably put the bucket in
17358 the remote s3:bucket.
17359
17360 Now configure chunker using rclone config. We will call this one over‐
17361 lay to separate it from the remote itself.
17362
17363 No remotes found - make a new one
17364 n) New remote
17365 s) Set configuration password
17366 q) Quit config
17367 n/s/q> n
17368 name> overlay
17369 Type of storage to configure.
17370 Choose a number from below, or type in your own value
17371 [snip]
17372 XX / Transparently chunk/split large files
17373 \ "chunker"
17374 [snip]
17375 Storage> chunker
17376 Remote to chunk/unchunk.
17377 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
17378 "myremote:bucket" or maybe "myremote:" (not recommended).
17379 Enter a string value. Press Enter for the default ("").
17380 remote> remote:path
17381 Files larger than chunk size will be split in chunks.
17382 Enter a size with suffix k,M,G,T. Press Enter for the default ("2G").
17383 chunk_size> 100M
17384 Choose how chunker handles hash sums. All modes but "none" require metadata.
17385 Enter a string value. Press Enter for the default ("md5").
17386 Choose a number from below, or type in your own value
17387 1 / Pass any hash supported by wrapped remote for non-chunked files, return nothing otherwise
17388 \ "none"
17389 2 / MD5 for composite files
17390 \ "md5"
17391 3 / SHA1 for composite files
17392 \ "sha1"
17393 4 / MD5 for all files
17394 \ "md5all"
17395 5 / SHA1 for all files
17396 \ "sha1all"
17397 6 / Copying a file to chunker will request MD5 from the source falling back to SHA1 if unsupported
17398 \ "md5quick"
17399 7 / Similar to "md5quick" but prefers SHA1 over MD5
17400 \ "sha1quick"
17401 hash_type> md5
17402 Edit advanced config? (y/n)
17403 y) Yes
17404 n) No
17405 y/n> n
17406 Remote config
17407 --------------------
17408 [overlay]
17409 type = chunker
17410 remote = remote:bucket
17411 chunk_size = 100M
17412 hash_type = md5
17413 --------------------
17414 y) Yes this is OK
17415 e) Edit this remote
17416 d) Delete this remote
17417 y/e/d> y
17418
17419 Specifying the remote
17420 In normal use, make sure the remote has a : in. If you specify the re‐
17421 mote without a : then rclone will use a local directory of that name.
17422 So if you use a remote of /path/to/secret/files then rclone will chunk
17423 stuff in that directory. If you use a remote of name then rclone will
17424 put files in a directory called name in the current directory.
17425
17426 Chunking
17427 When rclone starts a file upload, chunker checks the file size. If it
17428 doesn't exceed the configured chunk size, chunker will just pass the
17429 file to the wrapped remote. If a file is large, chunker will transpar‐
17430 ently cut data in pieces with temporary names and stream them one by
17431 one, on the fly. Each data chunk will contain the specified number of
17432 bytes, except for the last one which may have less data. If file size
17433 is unknown in advance (this is called a streaming upload), chunker will
17434 internally create a temporary copy, record its size and repeat the
17435 above process.
17436
17437 When upload completes, temporary chunk files are finally renamed. This
17438 scheme guarantees that operations can be run in parallel and look from
17439 outside as atomic. A similar method with hidden temporary chunks is
17440 used for other operations (copy/move/rename, etc.). If an operation
17441 fails, hidden chunks are normally destroyed, and the target composite
17442 file stays intact.
17443
17444 When a composite file download is requested, chunker transparently as‐
17445 sembles it by concatenating data chunks in order. As the split is
17446 trivial one could even manually concatenate data chunks together to ob‐
17447 tain the original content.
17448
17449 When the list rclone command scans a directory on wrapped remote, the
17450 potential chunk files are accounted for, grouped and assembled into
17451 composite directory entries. Any temporary chunks are hidden.
17452
17453 List and other commands can sometimes come across composite files with
17454 missing or invalid chunks, e.g. shadowed by like-named directory or
17455 another file. This usually means that wrapped file system has been di‐
17456 rectly tampered with or damaged. If chunker detects a missing chunk it
17457 will by default print warning, skip the whole incomplete group of
17458 chunks but proceed with current command. You can set the --chun‐
17459 ker-fail-hard flag to have commands abort with error message in such
17460 cases.
17461
17462 Chunk names
17463 The default chunk name format is *.rclone_chunk.###, hence by default
17464 chunk names are BIG_FILE_NAME.rclone_chunk.001,
17465 BIG_FILE_NAME.rclone_chunk.002 etc. You can configure another name
17466 format using the name_format configuration file option. The format us‐
17467 es asterisk * as a placeholder for the base file name and one or more
17468 consecutive hash characters # as a placeholder for sequential chunk
17469 number. There must be one and only one asterisk. The number of con‐
17470 secutive hash characters defines the minimum length of a string repre‐
17471 senting a chunk number. If decimal chunk number has less digits than
17472 the number of hashes, it is left-padded by zeros. If the decimal
17473 string is longer, it is left intact. By default numbering starts from
17474 1 but there is another option that allows user to start from 0, e.g.
17475 for compatibility with legacy software.
17476
17477 For example, if name format is big_*-##.part and original file name is
17478 data.txt and numbering starts from 0, then the first chunk will be
17479 named big_data.txt-00.part, the 99th chunk will be big_data.txt-98.part
17480 and the 302nd chunk will become big_data.txt-301.part.
17481
17482 Note that list assembles composite directory entries only when chunk
17483 names match the configured format and treats non-conforming file names
17484 as normal non-chunked files.
17485
17486 When using norename transactions, chunk names will additionally have a
17487 unique file version suffix. For example,
17488 BIG_FILE_NAME.rclone_chunk.001_bp562k.
17489
17490 Metadata
17491 Besides data chunks chunker will by default create metadata object for
17492 a composite file. The object is named after the original file. Chun‐
17493 ker allows user to disable metadata completely (the none format). Note
17494 that metadata is normally not created for files smaller than the con‐
17495 figured chunk size. This may change in future rclone releases.
17496
17497 Simple JSON metadata format
17498 This is the default format. It supports hash sums and chunk validation
17499 for composite files. Meta objects carry the following fields:
17500
17501 • ver - version of format, currently 1
17502
17503 • size - total size of composite file
17504
17505 • nchunks - number of data chunks in file
17506
17507 • md5 - MD5 hashsum of composite file (if present)
17508
17509 • sha1 - SHA1 hashsum (if present)
17510
17511 • txn - identifies current version of the file
17512
17513 There is no field for composite file name as it's simply equal to the
17514 name of meta object on the wrapped remote. Please refer to respective
17515 sections for details on hashsums and modified time handling.
17516
17517 No metadata
17518 You can disable meta objects by setting the meta format option to none.
17519 In this mode chunker will scan directory for all files that follow con‐
17520 figured chunk name format, group them by detecting chunks with the same
17521 base name and show group names as virtual composite files. This method
17522 is more prone to missing chunk errors (especially missing last chunk)
17523 than format with metadata enabled.
17524
17525 Hashsums
17526 Chunker supports hashsums only when a compatible metadata is present.
17527 Hence, if you choose metadata format of none, chunker will report hash‐
17528 sum as UNSUPPORTED.
17529
17530 Please note that by default metadata is stored only for composite
17531 files. If a file is smaller than configured chunk size, chunker will
17532 transparently redirect hash requests to wrapped remote, so support de‐
17533 pends on that. You will see the empty string as a hashsum of requested
17534 type for small files if the wrapped remote doesn't support it.
17535
17536 Many storage backends support MD5 and SHA1 hash types, so does chunker.
17537 With chunker you can choose one or another but not both. MD5 is set by
17538 default as the most supported type. Since chunker keeps hashes for
17539 composite files and falls back to the wrapped remote hash for non-chun‐
17540 ked ones, we advise you to choose the same hash type as supported by
17541 wrapped remote so that your file listings look coherent.
17542
17543 If your storage backend does not support MD5 or SHA1 but you need con‐
17544 sistent file hashing, configure chunker with md5all or sha1all. These
17545 two modes guarantee given hash for all files. If wrapped remote
17546 doesn't support it, chunker will then add metadata to all files, even
17547 small. However, this can double the amount of small files in storage
17548 and incur additional service charges. You can even use chunker to
17549 force md5/sha1 support in any other remote at expense of sidecar meta
17550 objects by setting e.g. chunk_type=sha1all to force hashsums and
17551 chunk_size=1P to effectively disable chunking.
17552
17553 Normally, when a file is copied to chunker controlled remote, chunker
17554 will ask the file source for compatible file hash and revert to
17555 on-the-fly calculation if none is found. This involves some CPU over‐
17556 head but provides a guarantee that given hashsum is available. Also,
17557 chunker will reject a server-side copy or move operation if source and
17558 destination hashsum types are different resulting in the extra network
17559 bandwidth, too. In some rare cases this may be undesired, so chunker
17560 provides two optional choices: sha1quick and md5quick. If the source
17561 does not support primary hash type and the quick mode is enabled, chun‐
17562 ker will try to fall back to the secondary type. This will save CPU
17563 and bandwidth but can result in empty hashsums at destination. Beware
17564 of consequences: the sync command will revert (sometimes silently) to
17565 time/size comparison if compatible hashsums between source and target
17566 are not found.
17567
17568 Modified time
17569 Chunker stores modification times using the wrapped remote so support
17570 depends on that. For a small non-chunked file the chunker overlay sim‐
17571 ply manipulates modification time of the wrapped remote file. For a
17572 composite file with metadata chunker will get and set modification time
17573 of the metadata object on the wrapped remote. If file is chunked but
17574 metadata format is none then chunker will use modification time of the
17575 first data chunk.
17576
17577 Migrations
17578 The idiomatic way to migrate to a different chunk size, hash type,
17579 transaction style or chunk naming scheme is to:
17580
17581 • Collect all your chunked files under a directory and have your chun‐
17582 ker remote point to it.
17583
17584 • Create another directory (most probably on the same cloud storage)
17585 and configure a new remote with desired metadata format, hash type,
17586 chunk naming etc.
17587
17588 • Now run rclone sync -i oldchunks: newchunks: and all your data will
17589 be transparently converted in transfer. This may take some time, yet
17590 chunker will try server-side copy if possible.
17591
17592 • After checking data integrity you may remove configuration section of
17593 the old remote.
17594
17595 If rclone gets killed during a long operation on a big composite file,
17596 hidden temporary chunks may stay in the directory. They will not be
17597 shown by the list command but will eat up your account quota. Please
17598 note that the deletefile command deletes only active chunks of a file.
17599 As a workaround, you can use remote of the wrapped file system to see
17600 them. An easy way to get rid of hidden garbage is to copy littered di‐
17601 rectory somewhere using the chunker remote and purge the original di‐
17602 rectory. The copy command will copy only active chunks while the purge
17603 will remove everything including garbage.
17604
17605 Caveats and Limitations
17606 Chunker requires wrapped remote to support server-side move (or copy +
17607 delete) operations, otherwise it will explicitly refuse to start. This
17608 is because it internally renames temporary chunk files to their final
17609 names when an operation completes successfully.
17610
17611 Chunker encodes chunk number in file name, so with default name_format
17612 setting it adds 17 characters. Also chunker adds 7 characters of tem‐
17613 porary suffix during operations. Many file systems limit base file
17614 name without path by 255 characters. Using rclone's crypt remote as a
17615 base file system limits file name by 143 characters. Thus, maximum
17616 name length is 231 for most files and 119 for chunker-over-crypt. A
17617 user in need can change name format to e.g. *.rcc## and save 10 char‐
17618 acters (provided at most 99 chunks per file).
17619
17620 Note that a move implemented using the copy-and-delete method may incur
17621 double charging with some cloud storage providers.
17622
17623 Chunker will not automatically rename existing chunks when you run
17624 rclone config on a live remote and change the chunk name format. Be‐
17625 ware that in result of this some files which have been treated as
17626 chunks before the change can pop up in directory listings as normal
17627 files and vice versa. The same warning holds for the chunk size. If
17628 you desperately need to change critical chunking settings, you should
17629 run data migration as described above.
17630
17631 If wrapped remote is case insensitive, the chunker overlay will inherit
17632 that property (so you can't have a file called "Hello.doc" and "hel‐
17633 lo.doc" in the same directory).
17634
17635 Chunker included in rclone releases up to v1.54 can sometimes fail to
17636 detect metadata produced by recent versions of rclone. We recommend
17637 users to keep rclone up-to-date to avoid data corruption.
17638
17639 Changing transactions is dangerous and requires explicit migration.
17640
17641 Standard Options
17642 Here are the standard options specific to chunker (Transparently
17643 chunk/split large files).
17644
17645 --chunker-remote
17646 Remote to chunk/unchunk. Normally should contain a ':' and a path,
17647 e.g. "myremote:path/to/dir", "myremote:bucket" or maybe "myremote:"
17648 (not recommended).
17649
17650 • Config: remote
17651
17652 • Env Var: RCLONE_CHUNKER_REMOTE
17653
17654 • Type: string
17655
17656 • Default: ""
17657
17658 --chunker-chunk-size
17659 Files larger than chunk size will be split in chunks.
17660
17661 • Config: chunk_size
17662
17663 • Env Var: RCLONE_CHUNKER_CHUNK_SIZE
17664
17665 • Type: SizeSuffix
17666
17667 • Default: 2G
17668
17669 --chunker-hash-type
17670 Choose how chunker handles hash sums. All modes but "none" require
17671 metadata.
17672
17673 • Config: hash_type
17674
17675 • Env Var: RCLONE_CHUNKER_HASH_TYPE
17676
17677 • Type: string
17678
17679 • Default: "md5"
17680
17681 • Examples:
17682
17683 • "none"
17684
17685 • Pass any hash supported by wrapped remote for non-chunked files,
17686 return nothing otherwise
17687
17688 • "md5"
17689
17690 • MD5 for composite files
17691
17692 • "sha1"
17693
17694 • SHA1 for composite files
17695
17696 • "md5all"
17697
17698 • MD5 for all files
17699
17700 • "sha1all"
17701
17702 • SHA1 for all files
17703
17704 • "md5quick"
17705
17706 • Copying a file to chunker will request MD5 from the source fall‐
17707 ing back to SHA1 if unsupported
17708
17709 • "sha1quick"
17710
17711 • Similar to "md5quick" but prefers SHA1 over MD5
17712
17713 Advanced Options
17714 Here are the advanced options specific to chunker (Transparently
17715 chunk/split large files).
17716
17717 --chunker-name-format
17718 String format of chunk file names. The two placeholders are: base file
17719 name (*) and chunk number (#...). There must be one and only one as‐
17720 terisk and one or more consecutive hash characters. If chunk number
17721 has less digits than the number of hashes, it is left-padded by zeros.
17722 If there are more digits in the number, they are left as is. Possible
17723 chunk files are ignored if their name does not match given format.
17724
17725 • Config: name_format
17726
17727 • Env Var: RCLONE_CHUNKER_NAME_FORMAT
17728
17729 • Type: string
17730
17731 • Default: "*.rclone_chunk.###"
17732
17733 --chunker-start-from
17734 Minimum valid chunk number. Usually 0 or 1. By default chunk numbers
17735 start from 1.
17736
17737 • Config: start_from
17738
17739 • Env Var: RCLONE_CHUNKER_START_FROM
17740
17741 • Type: int
17742
17743 • Default: 1
17744
17745 --chunker-meta-format
17746 Format of the metadata object or "none". By default "simplejson".
17747 Metadata is a small JSON file named after the composite file.
17748
17749 • Config: meta_format
17750
17751 • Env Var: RCLONE_CHUNKER_META_FORMAT
17752
17753 • Type: string
17754
17755 • Default: "simplejson"
17756
17757 • Examples:
17758
17759 • "none"
17760
17761 • Do not use metadata files at all. Requires hash type "none".
17762
17763 • "simplejson"
17764
17765 • Simple JSON supports hash sums and chunk validation.
17766
17767 • It has the following fields: ver, size, nchunks, md5, sha1.
17768
17769 --chunker-fail-hard
17770 Choose how chunker should handle files with missing or invalid chunks.
17771
17772 • Config: fail_hard
17773
17774 • Env Var: RCLONE_CHUNKER_FAIL_HARD
17775
17776 • Type: bool
17777
17778 • Default: false
17779
17780 • Examples:
17781
17782 • "true"
17783
17784 • Report errors and abort current command.
17785
17786 • "false"
17787
17788 • Warn user, skip incomplete file and proceed.
17789
17790 --chunker-transactions
17791 Choose how chunker should handle temporary files during transactions.
17792
17793 • Config: transactions
17794
17795 • Env Var: RCLONE_CHUNKER_TRANSACTIONS
17796
17797 • Type: string
17798
17799 • Default: "rename"
17800
17801 • Examples:
17802
17803 • "rename"
17804
17805 • Rename temporary files after a successful transaction.
17806
17807 • "norename"
17808
17809 • Leave temporary file names and write transaction ID to metadata
17810 file.
17811
17812 • Metadata is required for no rename transactions (meta format can‐
17813 not be "none").
17814
17815 • If you are using norename transactions you should be careful not
17816 to downgrade Rclone
17817
17818 • as older versions of Rclone don't support this transaction style
17819 and will misinterpret
17820
17821 • files manipulated by norename transactions.
17822
17823 • This method is EXPERIMENTAL, don't use on production systems.
17824
17825 • "auto"
17826
17827 • Rename or norename will be used depending on capabilities of the
17828 backend.
17829
17830 • If meta format is set to "none", rename transactions will always
17831 be used.
17832
17833 • This method is EXPERIMENTAL, don't use on production systems.
17834
17835 Citrix ShareFile
17836 Citrix ShareFile (https://sharefile.com) is a secure file sharing and
17837 transfer service aimed as business.
17838
17839 The initial setup for Citrix ShareFile involves getting a token from
17840 Citrix ShareFile which you can in your browser. rclone config walks
17841 you through it.
17842
17843 Here is an example of how to make a remote called remote. First run:
17844
17845 rclone config
17846
17847 This will guide you through an interactive setup process:
17848
17849 No remotes found - make a new one
17850 n) New remote
17851 s) Set configuration password
17852 q) Quit config
17853 n/s/q> n
17854 name> remote
17855 Type of storage to configure.
17856 Enter a string value. Press Enter for the default ("").
17857 Choose a number from below, or type in your own value
17858 XX / Citrix Sharefile
17859 \ "sharefile"
17860 Storage> sharefile
17861 ** See help for sharefile backend at: https://rclone.org/sharefile/ **
17862
17863 ID of the root folder
17864
17865 Leave blank to access "Personal Folders". You can use one of the
17866 standard values here or any folder ID (long hex number ID).
17867 Enter a string value. Press Enter for the default ("").
17868 Choose a number from below, or type in your own value
17869 1 / Access the Personal Folders. (Default)
17870 \ ""
17871 2 / Access the Favorites folder.
17872 \ "favorites"
17873 3 / Access all the shared folders.
17874 \ "allshared"
17875 4 / Access all the individual connectors.
17876 \ "connectors"
17877 5 / Access the home, favorites, and shared folders as well as the connectors.
17878 \ "top"
17879 root_folder_id>
17880 Edit advanced config? (y/n)
17881 y) Yes
17882 n) No
17883 y/n> n
17884 Remote config
17885 Use auto config?
17886 * Say Y if not sure
17887 * Say N if you are working on a remote or headless machine
17888 y) Yes
17889 n) No
17890 y/n> y
17891 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=XXX
17892 Log in and authorize rclone for access
17893 Waiting for code...
17894 Got code
17895 --------------------
17896 [remote]
17897 type = sharefile
17898 endpoint = https://XXX.sharefile.com
17899 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"2019-09-30T19:41:45.878561877+01:00"}
17900 --------------------
17901 y) Yes this is OK
17902 e) Edit this remote
17903 d) Delete this remote
17904 y/e/d> y
17905
17906 See the remote setup docs (https://rclone.org/remote_setup/) for how to
17907 set it up on a machine with no Internet browser available.
17908
17909 Note that rclone runs a webserver on your local machine to collect the
17910 token as returned from Citrix ShareFile. This only runs from the mo‐
17911 ment it opens your browser to the moment you get back the verification
17912 code. This is on http://127.0.0.1:53682/ and this it may require you
17913 to unblock it temporarily if you are running a host firewall.
17914
17915 Once configured you can then use rclone like this,
17916
17917 List directories in top level of your ShareFile
17918
17919 rclone lsd remote:
17920
17921 List all the files in your ShareFile
17922
17923 rclone ls remote:
17924
17925 To copy a local directory to an ShareFile directory called backup
17926
17927 rclone copy /home/source remote:backup
17928
17929 Paths may be as deep as required, e.g. remote:directory/subdirectory.
17930
17931 Modified time and hashes
17932 ShareFile allows modification times to be set on objects accurate to 1
17933 second. These will be used to detect whether objects need syncing or
17934 not.
17935
17936 ShareFile supports MD5 type hashes, so you can use the --checksum flag.
17937
17938 Transfers
17939 For files above 128MB rclone will use a chunked transfer. Rclone will
17940 upload up to --transfers chunks at the same time (shared among all the
17941 multipart uploads). Chunks are buffered in memory and are normally
17942 64MB so increasing --transfers will increase memory use.
17943
17944 Limitations
17945 Note that ShareFile is case insensitive so you can't have a file called
17946 "Hello.doc" and one called "hello.doc".
17947
17948 ShareFile only supports filenames up to 256 characters in length.
17949
17950 Restricted filename characters
17951 In addition to the default restricted characters set
17952 (https://rclone.org/overview/#restricted-characters) the following
17953 characters are also replaced:
17954
17955 Character Value Replacement
17956 ────────────────────────────────
17957 \ 0x5C \
17958 * 0x2A *
17959 < 0x3C <
17960 > 0x3E >
17961 ? 0x3F ?
17962 : 0x3A :
17963 | 0x7C |
17964 " 0x22 "
17965
17966 File names can also not start or end with the following characters.
17967 These only get replaced if they are the first or last character in the
17968 name:
17969
17970 Character Value Replacement
17971 ────────────────────────────────
17972 SP 0x20 ␠
17973 . 0x2E .
17974
17975 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
17976 view/#invalid-utf8), as they can't be used in JSON strings.
17977
17978 Standard Options
17979 Here are the standard options specific to sharefile (Citrix Sharefile).
17980
17981 --sharefile-root-folder-id
17982 ID of the root folder
17983
17984 Leave blank to access "Personal Folders". You can use one of the stan‐
17985 dard values here or any folder ID (long hex number ID).
17986
17987 • Config: root_folder_id
17988
17989 • Env Var: RCLONE_SHAREFILE_ROOT_FOLDER_ID
17990
17991 • Type: string
17992
17993 • Default: ""
17994
17995 • Examples:
17996
17997 • ""
17998
17999 • Access the Personal Folders. (Default)
18000
18001 • "favorites"
18002
18003 • Access the Favorites folder.
18004
18005 • "allshared"
18006
18007 • Access all the shared folders.
18008
18009 • "connectors"
18010
18011 • Access all the individual connectors.
18012
18013 • "top"
18014
18015 • Access the home, favorites, and shared folders as well as the
18016 connectors.
18017
18018 Advanced Options
18019 Here are the advanced options specific to sharefile (Citrix Sharefile).
18020
18021 --sharefile-upload-cutoff
18022 Cutoff for switching to multipart upload.
18023
18024 • Config: upload_cutoff
18025
18026 • Env Var: RCLONE_SHAREFILE_UPLOAD_CUTOFF
18027
18028 • Type: SizeSuffix
18029
18030 • Default: 128M
18031
18032 --sharefile-chunk-size
18033 Upload chunk size. Must a power of 2 >= 256k.
18034
18035 Making this larger will improve performance, but note that each chunk
18036 is buffered in memory one per transfer.
18037
18038 Reducing this will reduce memory usage but decrease performance.
18039
18040 • Config: chunk_size
18041
18042 • Env Var: RCLONE_SHAREFILE_CHUNK_SIZE
18043
18044 • Type: SizeSuffix
18045
18046 • Default: 64M
18047
18048 --sharefile-endpoint
18049 Endpoint for API calls.
18050
18051 This is usually auto discovered as part of the oauth process, but can
18052 be set manually to something like: https://XXX.sharefile.com
18053
18054 • Config: endpoint
18055
18056 • Env Var: RCLONE_SHAREFILE_ENDPOINT
18057
18058 • Type: string
18059
18060 • Default: ""
18061
18062 --sharefile-encoding
18063 This sets the encoding for the backend.
18064
18065 See: the encoding section in the overview (https://rclone.org/over‐
18066 view/#encoding) for more info.
18067
18068 • Config: encoding
18069
18070 • Env Var: RCLONE_SHAREFILE_ENCODING
18071
18072 • Type: MultiEncoder
18073
18074 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
18075 Slash,Ctl,LeftSpace,LeftPeriod,RightSpace,RightPeriod,InvalidUtf8,Dot
18076
18077 Limitations
18078 rclone about is not supported by the Citrix ShareFile backend. Back‐
18079 ends without this capability cannot determine free space for an rclone
18080 mount or use policy mfs (most free space) as a member of an rclone
18081 union remote.
18082
18083 See List of backends that do not support rclone about
18084 (https://rclone.org/overview/#optional-features) See rclone about
18085 (https://rclone.org/commands/rclone_about/)
18086
18087 Crypt
18088 Rclone crypt remotes encrypt and decrypt other remotes.
18089
18090 A remote of type crypt does not access a storage system
18091 (https://rclone.org/overview/) directly, but instead wraps another re‐
18092 mote, which in turn accesses the storage system. This is similar to
18093 how alias (https://rclone.org/alias/), union
18094 (https://rclone.org/union/), chunker (https://rclone.org/chunker/) and
18095 a few others work. It makes the usage very flexible, as you can add a
18096 layer, in this case an encryption layer, on top of any other backend,
18097 even in multiple layers. Rclone's functionality can be used as with
18098 any other remote, for example you can mount (https://rclone.org/com‐
18099 mands/rclone_mount/) a crypt remote.
18100
18101 Accessing a storage system through a crypt remote realizes client-side
18102 encryption, which makes it safe to keep your data in a location you do
18103 not trust will not get compromised. When working against the crypt re‐
18104 mote, rclone will automatically encrypt (before uploading) and decrypt
18105 (after downloading) on your local system as needed on the fly, leaving
18106 the data encrypted at rest in the wrapped remote. If you access the
18107 storage system using an application other than rclone, or access the
18108 wrapped remote directly using rclone, there will not be any encryp‐
18109 tion/decryption: Downloading existing content will just give you the
18110 encrypted (scrambled) format, and anything you upload will not become
18111 encrypted.
18112
18113 The encryption is a secret-key encryption (also called symmetric key
18114 encryption) algorithm, where a password (or pass phrase) is used to
18115 generate real encryption key. The password can be supplied by user, or
18116 you may chose to let rclone generate one. It will be stored in the
18117 configuration file, in a lightly obscured form. If you are in an envi‐
18118 ronment where you are not able to keep your configuration secured, you
18119 should add configuration encryption (https://rclone.org/docs/#configu‐
18120 ration-encryption) as protection. As long as you have this configura‐
18121 tion file, you will be able to decrypt your data. Without the configu‐
18122 ration file, as long as you remember the password (or keep it in a safe
18123 place), you can re-create the configuration and gain access to the ex‐
18124 isting data. You may also configure a corresponding remote in a dif‐
18125 ferent installation to access the same data. See below for guidance to
18126 changing password.
18127
18128 Encryption uses cryptographic salt (https://en.wikipedia.org/wi‐
18129 ki/Salt_(cryptography)), to permute the encryption key so that the same
18130 string may be encrypted in different ways. When configuring the crypt
18131 remote it is optional to enter a salt, or to let rclone generate a
18132 unique salt. If omitted, rclone uses a built-in unique string. Nor‐
18133 mally in cryptography, the salt is stored together with the encrypted
18134 content, and do not have to be memorized by the user. This is not the
18135 case in rclone, because rclone does not store any additional informa‐
18136 tion on the remotes. Use of custom salt is effectively a second pass‐
18137 word that must be memorized.
18138
18139 File content encryption is performed using NaCl SecretBox
18140 (https://godoc.org/golang.org/x/crypto/nacl/secretbox), based on XSal‐
18141 sa20 cipher and Poly1305 for integrity. Names (file- and directory
18142 names) are also encrypted by default, but this has some implications
18143 and is therefore possible to turned off.
18144
18145 Configuration
18146 Here is an example of how to make a remote called secret.
18147
18148 To use crypt, first set up the underlying remote. Follow the rclone
18149 config instructions for the specific backend.
18150
18151 Before configuring the crypt remote, check the underlying remote is
18152 working. In this example the underlying remote is called remote. We
18153 will configure a path path within this remote to contain the encrypted
18154 content. Anything inside remote:path will be encrypted and anything
18155 outside will not.
18156
18157 Configure crypt using rclone config. In this example the crypt remote
18158 is called secret, to differentiate it from the underlying remote.
18159
18160 When you are done you can use the crypt remote named secret just as you
18161 would with any other remote, e.g. rclone copy D:\docs secret:\docs,
18162 and rclone will encrypt and decrypt as needed on the fly. If you ac‐
18163 cess the wrapped remote remote:path directly you will bypass the en‐
18164 cryption, and anything you read will be in encrypted form, and anything
18165 you write will be unencrypted. To avoid issues it is best to configure
18166 a dedicated path for encrypted content, and access it exclusively
18167 through a crypt remote.
18168
18169 No remotes found - make a new one
18170 n) New remote
18171 s) Set configuration password
18172 q) Quit config
18173 n/s/q> n
18174 name> secret
18175 Type of storage to configure.
18176 Enter a string value. Press Enter for the default ("").
18177 Choose a number from below, or type in your own value
18178 [snip]
18179 XX / Encrypt/Decrypt a remote
18180 \ "crypt"
18181 [snip]
18182 Storage> crypt
18183 ** See help for crypt backend at: https://rclone.org/crypt/ **
18184
18185 Remote to encrypt/decrypt.
18186 Normally should contain a ':' and a path, eg "myremote:path/to/dir",
18187 "myremote:bucket" or maybe "myremote:" (not recommended).
18188 Enter a string value. Press Enter for the default ("").
18189 remote> remote:path
18190 How to encrypt the filenames.
18191 Enter a string value. Press Enter for the default ("standard").
18192 Choose a number from below, or type in your own value
18193 1 / Encrypt the filenames see the docs for the details.
18194 \ "standard"
18195 2 / Very simple filename obfuscation.
18196 \ "obfuscate"
18197 3 / Don't encrypt the file names. Adds a ".bin" extension only.
18198 \ "off"
18199 filename_encryption>
18200 Option to either encrypt directory names or leave them intact.
18201
18202 NB If filename_encryption is "off" then this option will do nothing.
18203 Enter a boolean value (true or false). Press Enter for the default ("true").
18204 Choose a number from below, or type in your own value
18205 1 / Encrypt directory names.
18206 \ "true"
18207 2 / Don't encrypt directory names, leave them intact.
18208 \ "false"
18209 directory_name_encryption>
18210 Password or pass phrase for encryption.
18211 y) Yes type in my own password
18212 g) Generate random password
18213 y/g> y
18214 Enter the password:
18215 password:
18216 Confirm the password:
18217 password:
18218 Password or pass phrase for salt. Optional but recommended.
18219 Should be different to the previous password.
18220 y) Yes type in my own password
18221 g) Generate random password
18222 n) No leave this optional password blank (default)
18223 y/g/n> g
18224 Password strength in bits.
18225 64 is just about memorable
18226 128 is secure
18227 1024 is the maximum
18228 Bits> 128
18229 Your password is: JAsJvRcgR-_veXNfy_sGmQ
18230 Use this password? Please note that an obscured version of this
18231 password (and not the password itself) will be stored under your
18232 configuration file, so keep this generated password in a safe place.
18233 y) Yes (default)
18234 n) No
18235 y/n>
18236 Edit advanced config? (y/n)
18237 y) Yes
18238 n) No (default)
18239 y/n>
18240 Remote config
18241 --------------------
18242 [secret]
18243 type = crypt
18244 remote = remote:path
18245 password = *** ENCRYPTED ***
18246 password2 = *** ENCRYPTED ***
18247 --------------------
18248 y) Yes this is OK (default)
18249 e) Edit this remote
18250 d) Delete this remote
18251 y/e/d>
18252
18253 Important The crypt password stored in rclone.conf is lightly obscured.
18254 That only protects it from cursory inspection. It is not secure unless
18255 configuration encryption (https://rclone.org/docs/#configuration-en‐
18256 cryption) of rclone.conf is specified.
18257
18258 A long passphrase is recommended, or rclone config can generate a ran‐
18259 dom one.
18260
18261 The obscured password is created using AES-CTR with a static key. The
18262 salt is stored verbatim at the beginning of the obscured password.
18263 This static key is shared between all versions of rclone.
18264
18265 If you reconfigure rclone with the same passwords/passphrases elsewhere
18266 it will be compatible, but the obscured version will be different due
18267 to the different salt.
18268
18269 Rclone does not encrypt
18270
18271 • file length - this can be calculated within 16 bytes
18272
18273 • modification time - used for syncing
18274
18275 Specifying the remote
18276 When configuring the remote to encrypt/decrypt, you may specify any
18277 string that rclone accepts as a source/destination of other commands.
18278
18279 The primary use case is to specify the path into an already configured
18280 remote (e.g. remote:path/to/dir or remote:bucket), such that data in a
18281 remote untrusted location can be stored encrypted.
18282
18283 You may also specify a local filesystem path, such as /path/to/dir on
18284 Linux, C:\path\to\dir on Windows. By creating a crypt remote pointing
18285 to such a local filesystem path, you can use rclone as a utility for
18286 pure local file encryption, for example to keep encrypted files on a
18287 removable USB drive.
18288
18289 Note: A string which do not contain a : will by rclone be treated as a
18290 relative path in the local filesystem. For example, if you enter the
18291 name remote without the trailing :, it will be treated as a subdirecto‐
18292 ry of the current directory with name "remote".
18293
18294 If a path remote:path/to/dir is specified, rclone stores encrypted
18295 files in path/to/dir on the remote. With file name encryption, files
18296 saved to secret:subdir/subfile are stored in the unencrypted path
18297 path/to/dir but the subdir/subpath element is encrypted.
18298
18299 The path you specify does not have to exist, rclone will create it when
18300 needed.
18301
18302 If you intend to use the wrapped remote both directly for keeping unen‐
18303 crypted content, as well as through a crypt remote for encrypted con‐
18304 tent, it is recommended to point the crypt remote to a separate direc‐
18305 tory within the wrapped remote. If you use a bucket based storage sys‐
18306 tem (e.g. Swift, S3, Google Compute Storage, B2, Hubic) it is general‐
18307 ly advisable to wrap the crypt remote around a specific bucket
18308 (s3:bucket). If wrapping around the entire root of the storage (s3:),
18309 and use the optional file name encryption, rclone will encrypt the
18310 bucket name.
18311
18312 Changing password
18313 Should the password, or the configuration file containing a lightly ob‐
18314 scured form of the password, be compromised, you need to re-encrypt
18315 your data with a new password. Since rclone uses secret-key encryp‐
18316 tion, where the encryption key is generated directly from the password
18317 kept on the client, it is not possible to change the password/key of
18318 already encrypted content. Just changing the password configured for
18319 an existing crypt remote means you will no longer able to decrypt any
18320 of the previously encrypted content. The only possibility is to re-up‐
18321 load everything via a crypt remote configured with your new password.
18322
18323 Depending on the size of your data, your bandwith, storage quota etc,
18324 there are different approaches you can take: - If you have everything
18325 in a different location, for example on your local system, you could
18326 remove all of the prior encrypted files, change the password for your
18327 configured crypt remote (or delete and re-create the crypt configura‐
18328 tion), and then re-upload everything from the alternative location. -
18329 If you have enough space on the storage system you can create a new
18330 crypt remote pointing to a separate directory on the same backend, and
18331 then use rclone to copy everything from the original crypt remote to
18332 the new, effectively decrypting everything on the fly using the old
18333 password and re-encrypting using the new password. When done, delete
18334 the original crypt remote directory and finally the rclone crypt con‐
18335 figuration with the old password. All data will be streamed from the
18336 storage system and back, so you will get half the bandwith and be
18337 charged twice if you have upload and download quota on the storage sys‐
18338 tem.
18339
18340 Note: A security problem related to the random password generator was
18341 fixed in rclone version 1.53.3 (released 2020-11-19). Passwords gener‐
18342 ated by rclone config in version 1.49.0 (released 2019-08-26) to 1.53.2
18343 (released 2020-10-26) are not considered secure and should be changed.
18344 If you made up your own password, or used rclone version older than
18345 1.49.0 or newer than 1.53.2 to generate it, you are not affected by
18346 this issue. See issue #4783 (https://github.com/rclone/rclone/is‐
18347 sues/4783) for more details, and a tool you can use to check if you are
18348 affected.
18349
18350 Example
18351 Create the following file structure using "standard" file name encryp‐
18352 tion.
18353
18354 plaintext/
18355 ├── file0.txt
18356 ├── file1.txt
18357 └── subdir
18358 ├── file2.txt
18359 ├── file3.txt
18360 └── subsubdir
18361 └── file4.txt
18362
18363 Copy these to the remote, and list them
18364
18365 $ rclone -q copy plaintext secret:
18366 $ rclone -q ls secret:
18367 7 file1.txt
18368 6 file0.txt
18369 8 subdir/file2.txt
18370 10 subdir/subsubdir/file4.txt
18371 9 subdir/file3.txt
18372
18373 The crypt remote looks like
18374
18375 $ rclone -q ls remote:path
18376 55 hagjclgavj2mbiqm6u6cnjjqcg
18377 54 v05749mltvv1tf4onltun46gls
18378 57 86vhrsv86mpbtd3a0akjuqslj8/dlj7fkq4kdq72emafg7a7s41uo
18379 58 86vhrsv86mpbtd3a0akjuqslj8/7uu829995du6o42n32otfhjqp4/b9pausrfansjth5ob3jkdqd4lc
18380 56 86vhrsv86mpbtd3a0akjuqslj8/8njh1sk437gttmep3p70g81aps
18381
18382 The directory structure is preserved
18383
18384 $ rclone -q ls secret:subdir
18385 8 file2.txt
18386 9 file3.txt
18387 10 subsubdir/file4.txt
18388
18389 Without file name encryption .bin extensions are added to underlying
18390 names. This prevents the cloud provider attempting to interpret file
18391 content.
18392
18393 $ rclone -q ls remote:path
18394 54 file0.txt.bin
18395 57 subdir/file3.txt.bin
18396 56 subdir/file2.txt.bin
18397 58 subdir/subsubdir/file4.txt.bin
18398 55 file1.txt.bin
18399
18400 File name encryption modes
18401 Off
18402
18403 • doesn't hide file names or directory structure
18404
18405 • allows for longer file names (~246 characters)
18406
18407 • can use sub paths and copy single files
18408
18409 Standard
18410
18411 • file names encrypted
18412
18413 • file names can't be as long (~143 characters)
18414
18415 • can use sub paths and copy single files
18416
18417 • directory structure visible
18418
18419 • identical files names will have identical uploaded names
18420
18421 • can use shortcuts to shorten the directory recursion
18422
18423 Obfuscation
18424
18425 This is a simple "rotate" of the filename, with each file having a rot
18426 distance based on the filename. Rclone stores the distance at the be‐
18427 ginning of the filename. A file called "hello" may become "53.jgnnq".
18428
18429 Obfuscation is not a strong encryption of filenames, but hinders auto‐
18430 mated scanning tools picking up on filename patterns. It is an inter‐
18431 mediate between "off" and "standard" which allows for longer path seg‐
18432 ment names.
18433
18434 There is a possibility with some unicode based filenames that the ob‐
18435 fuscation is weak and may map lower case characters to upper case
18436 equivalents.
18437
18438 Obfuscation cannot be relied upon for strong protection.
18439
18440 • file names very lightly obfuscated
18441
18442 • file names can be longer than standard encryption
18443
18444 • can use sub paths and copy single files
18445
18446 • directory structure visible
18447
18448 • identical files names will have identical uploaded names
18449
18450 Cloud storage systems have limits on file name length and total path
18451 length which rclone is more likely to breach using "Standard" file name
18452 encryption. Where file names are less thn 156 characters in length is‐
18453 sues should not be encountered, irrespective of cloud storage provider.
18454
18455 An alternative, future rclone file name encryption mode may tolerate
18456 backend provider path length limits.
18457
18458 Directory name encryption
18459 Crypt offers the option of encrypting dir names or leaving them intact.
18460 There are two options:
18461
18462 True
18463
18464 Encrypts the whole file path including directory names Example:
18465 1/12/123.txt is encrypted to
18466 p0e52nreeaj0a5ea7s64m4j72s/l42g6771hnv3an9cgc8cr2n1ng/qgm4avr35m5loi1th53ato71v0
18467
18468 False
18469
18470 Only encrypts file names, skips directory names Example: 1/12/123.txt
18471 is encrypted to 1/12/qgm4avr35m5loi1th53ato71v0
18472
18473 Modified time and hashes
18474 Crypt stores modification times using the underlying remote so support
18475 depends on that.
18476
18477 Hashes are not stored for crypt. However the data integrity is pro‐
18478 tected by an extremely strong crypto authenticator.
18479
18480 Use the rclone cryptcheck command to check the integrity of a crypted
18481 remote instead of rclone check which can't check the checksums proper‐
18482 ly.
18483
18484 Standard Options
18485 Here are the standard options specific to crypt (Encrypt/Decrypt a re‐
18486 mote).
18487
18488 --crypt-remote
18489 Remote to encrypt/decrypt. Normally should contain a ':' and a path,
18490 e.g. "myremote:path/to/dir", "myremote:bucket" or maybe "myremote:"
18491 (not recommended).
18492
18493 • Config: remote
18494
18495 • Env Var: RCLONE_CRYPT_REMOTE
18496
18497 • Type: string
18498
18499 • Default: ""
18500
18501 --crypt-filename-encryption
18502 How to encrypt the filenames.
18503
18504 • Config: filename_encryption
18505
18506 • Env Var: RCLONE_CRYPT_FILENAME_ENCRYPTION
18507
18508 • Type: string
18509
18510 • Default: "standard"
18511
18512 • Examples:
18513
18514 • "standard"
18515
18516 • Encrypt the filenames see the docs for the details.
18517
18518 • "obfuscate"
18519
18520 • Very simple filename obfuscation.
18521
18522 • "off"
18523
18524 • Don't encrypt the file names. Adds a ".bin" extension only.
18525
18526 --crypt-directory-name-encryption
18527 Option to either encrypt directory names or leave them intact.
18528
18529 NB If filename_encryption is "off" then this option will do nothing.
18530
18531 • Config: directory_name_encryption
18532
18533 • Env Var: RCLONE_CRYPT_DIRECTORY_NAME_ENCRYPTION
18534
18535 • Type: bool
18536
18537 • Default: true
18538
18539 • Examples:
18540
18541 • "true"
18542
18543 • Encrypt directory names.
18544
18545 • "false"
18546
18547 • Don't encrypt directory names, leave them intact.
18548
18549 --crypt-password
18550 Password or pass phrase for encryption.
18551
18552 NB Input to this must be obscured - see rclone obscure
18553 (https://rclone.org/commands/rclone_obscure/).
18554
18555 • Config: password
18556
18557 • Env Var: RCLONE_CRYPT_PASSWORD
18558
18559 • Type: string
18560
18561 • Default: ""
18562
18563 --crypt-password2
18564 Password or pass phrase for salt. Optional but recommended. Should be
18565 different to the previous password.
18566
18567 NB Input to this must be obscured - see rclone obscure
18568 (https://rclone.org/commands/rclone_obscure/).
18569
18570 • Config: password2
18571
18572 • Env Var: RCLONE_CRYPT_PASSWORD2
18573
18574 • Type: string
18575
18576 • Default: ""
18577
18578 Advanced Options
18579 Here are the advanced options specific to crypt (Encrypt/Decrypt a re‐
18580 mote).
18581
18582 --crypt-server-side-across-configs
18583 Allow server-side operations (e.g. copy) to work across different
18584 crypt configs.
18585
18586 Normally this option is not what you want, but if you have two crypts
18587 pointing to the same backend you can use it.
18588
18589 This can be used, for example, to change file name encryption type
18590 without re-uploading all the data. Just make two crypt backends point‐
18591 ing to two different directories with the single changed parameter and
18592 use rclone move to move the files between the crypt remotes.
18593
18594 • Config: server_side_across_configs
18595
18596 • Env Var: RCLONE_CRYPT_SERVER_SIDE_ACROSS_CONFIGS
18597
18598 • Type: bool
18599
18600 • Default: false
18601
18602 --crypt-show-mapping
18603 For all files listed show how the names encrypt.
18604
18605 If this flag is set then for each file that the remote is asked to
18606 list, it will log (at level INFO) a line stating the decrypted file
18607 name and the encrypted file name.
18608
18609 This is so you can work out which encrypted names are which decrypted
18610 names just in case you need to do something with the encrypted file
18611 names, or for debugging purposes.
18612
18613 • Config: show_mapping
18614
18615 • Env Var: RCLONE_CRYPT_SHOW_MAPPING
18616
18617 • Type: bool
18618
18619 • Default: false
18620
18621 --crypt-no-data-encryption
18622 Option to either encrypt file data or leave it unencrypted.
18623
18624 • Config: no_data_encryption
18625
18626 • Env Var: RCLONE_CRYPT_NO_DATA_ENCRYPTION
18627
18628 • Type: bool
18629
18630 • Default: false
18631
18632 • Examples:
18633
18634 • "true"
18635
18636 • Don't encrypt file data, leave it unencrypted.
18637
18638 • "false"
18639
18640 • Encrypt file data.
18641
18642 Backend commands
18643 Here are the commands specific to the crypt backend.
18644
18645 Run them with
18646
18647 rclone backend COMMAND remote:
18648
18649 The help below will explain what arguments each command takes.
18650
18651 See the "rclone backend" command (https://rclone.org/com‐
18652 mands/rclone_backend/) for more info on how to pass options and argu‐
18653 ments.
18654
18655 These can be run on a running backend using the rc command backend/com‐
18656 mand (https://rclone.org/rc/#backend/command).
18657
18658 encode
18659 Encode the given filename(s)
18660
18661 rclone backend encode remote: [options] [<arguments>+]
18662
18663 This encodes the filenames given as arguments returning a list of
18664 strings of the encoded results.
18665
18666 Usage Example:
18667
18668 rclone backend encode crypt: file1 [file2...]
18669 rclone rc backend/command command=encode fs=crypt: file1 [file2...]
18670
18671 decode
18672 Decode the given filename(s)
18673
18674 rclone backend decode remote: [options] [<arguments>+]
18675
18676 This decodes the filenames given as arguments returning a list of
18677 strings of the decoded results. It will return an error if any of the
18678 inputs are invalid.
18679
18680 Usage Example:
18681
18682 rclone backend decode crypt: encryptedfile1 [encryptedfile2...]
18683 rclone rc backend/command command=decode fs=crypt: encryptedfile1 [encryptedfile2...]
18684
18685 Backing up a crypted remote
18686 If you wish to backup a crypted remote, it is recommended that you use
18687 rclone sync on the encrypted files, and make sure the passwords are the
18688 same in the new encrypted remote.
18689
18690 This will have the following advantages
18691
18692 • rclone sync will check the checksums while copying
18693
18694 • you can use rclone check between the encrypted remotes
18695
18696 • you don't decrypt and encrypt unnecessarily
18697
18698 For example, let's say you have your original remote at remote: with
18699 the encrypted version at eremote: with path remote:crypt. You would
18700 then set up the new remote remote2: and then the encrypted version ere‐
18701 mote2: with path remote2:crypt using the same passwords as eremote:.
18702
18703 To sync the two remotes you would do
18704
18705 rclone sync -i remote:crypt remote2:crypt
18706
18707 And to check the integrity you would do
18708
18709 rclone check remote:crypt remote2:crypt
18710
18711 File formats
18712 File encryption
18713 Files are encrypted 1:1 source file to destination object. The file
18714 has a header and is divided into chunks.
18715
18716 Header
18717 • 8 bytes magic string RCLONE\x00\x00
18718
18719 • 24 bytes Nonce (IV)
18720
18721 The initial nonce is generated from the operating systems crypto strong
18722 random number generator. The nonce is incremented for each chunk read
18723 making sure each nonce is unique for each block written. The chance of
18724 a nonce being re-used is minuscule. If you wrote an exabyte of data
18725 (10¹⁸ bytes) you would have a probability of approximately 2×10⁻³² of
18726 re-using a nonce.
18727
18728 Chunk
18729 Each chunk will contain 64kB of data, except for the last one which may
18730 have less data. The data chunk is in standard NaCl SecretBox format.
18731 SecretBox uses XSalsa20 and Poly1305 to encrypt and authenticate mes‐
18732 sages.
18733
18734 Each chunk contains:
18735
18736 • 16 Bytes of Poly1305 authenticator
18737
18738 • 1 - 65536 bytes XSalsa20 encrypted data
18739
18740 64k chunk size was chosen as the best performing chunk size (the au‐
18741 thenticator takes too much time below this and the performance drops
18742 off due to cache effects above this). Note that these chunks are
18743 buffered in memory so they can't be too big.
18744
18745 This uses a 32 byte (256 bit key) key derived from the user password.
18746
18747 Examples
18748 1 byte file will encrypt to
18749
18750 • 32 bytes header
18751
18752 • 17 bytes data chunk
18753
18754 49 bytes total
18755
18756 1MB (1048576 bytes) file will encrypt to
18757
18758 • 32 bytes header
18759
18760 • 16 chunks of 65568 bytes
18761
18762 1049120 bytes total (a 0.05% overhead). This is the overhead for big
18763 files.
18764
18765 Name encryption
18766 File names are encrypted segment by segment - the path is broken up in‐
18767 to / separated strings and these are encrypted individually.
18768
18769 File segments are padded using PKCS#7 to a multiple of 16 bytes before
18770 encryption.
18771
18772 They are then encrypted with EME using AES with 256 bit key. EME
18773 (ECB-Mix-ECB) is a wide-block encryption mode presented in the 2003 pa‐
18774 per "A Parallelizable Enciphering Mode" by Halevi and Rogaway.
18775
18776 This makes for deterministic encryption which is what we want - the
18777 same filename must encrypt to the same thing otherwise we can't find it
18778 on the cloud storage system.
18779
18780 This means that
18781
18782 • filenames with the same name will encrypt the same
18783
18784 • filenames which start the same won't have a common prefix
18785
18786 This uses a 32 byte key (256 bits) and a 16 byte (128 bits) IV both of
18787 which are derived from the user password.
18788
18789 After encryption they are written out using a modified version of stan‐
18790 dard base32 encoding as described in RFC4648. The standard encoding is
18791 modified in two ways:
18792
18793 • it becomes lower case (no-one likes upper case filenames!)
18794
18795 • we strip the padding character =
18796
18797 base32 is used rather than the more efficient base64 so rclone can be
18798 used on case insensitive remotes (e.g. Windows, Amazon Drive).
18799
18800 Key derivation
18801 Rclone uses scrypt with parameters N=16384, r=8, p=1 with an optional
18802 user supplied salt (password2) to derive the 32+32+16 = 80 bytes of key
18803 material required. If the user doesn't supply a salt then rclone uses
18804 an internal one.
18805
18806 scrypt makes it impractical to mount a dictionary attack on rclone en‐
18807 crypted data. For full protection against this you should always use a
18808 salt.
18809
18810 SEE ALSO
18811 • rclone cryptdecode (https://rclone.org/commands/rclone_cryptdecode/)
18812 - Show forward/reverse mapping of encrypted filenames
18813
18814 Compress (Experimental)
18815 Warning
18816 This remote is currently experimental. Things may break and data may
18817 be lost. Anything you do with this remote is at your own risk. Please
18818 understand the risks associated with using experimental code and don't
18819 use this remote in critical applications.
18820
18821 The Compress remote adds compression to another remote. It is best
18822 used with remotes containing many large compressible files.
18823
18824 To use this remote, all you need to do is specify another remote and a
18825 compression mode to use:
18826
18827 Current remotes:
18828
18829 Name Type
18830 ==== ====
18831 remote_to_press sometype
18832
18833 e) Edit existing remote
18834 $ rclone config
18835 n) New remote
18836 d) Delete remote
18837 r) Rename remote
18838 c) Copy remote
18839 s) Set configuration password
18840 q) Quit config
18841 e/n/d/r/c/s/q> n
18842 name> compress
18843 ...
18844 8 / Compress a remote
18845 \ "compress"
18846 ...
18847 Storage> compress
18848 ** See help for compress backend at: https://rclone.org/compress/ **
18849
18850 Remote to compress.
18851 Enter a string value. Press Enter for the default ("").
18852 remote> remote_to_press:subdir
18853 Compression mode.
18854 Enter a string value. Press Enter for the default ("gzip").
18855 Choose a number from below, or type in your own value
18856 1 / Gzip compression balanced for speed and compression strength.
18857 \ "gzip"
18858 compression_mode> gzip
18859 Edit advanced config? (y/n)
18860 y) Yes
18861 n) No (default)
18862 y/n> n
18863 Remote config
18864 --------------------
18865 [compress]
18866 type = compress
18867 remote = remote_to_press:subdir
18868 compression_mode = gzip
18869 --------------------
18870 y) Yes this is OK (default)
18871 e) Edit this remote
18872 d) Delete this remote
18873 y/e/d> y
18874
18875 Compression Modes
18876 Currently only gzip compression is supported, it provides a decent bal‐
18877 ance between speed and strength and is well supported by other applica‐
18878 tion. Compression strength can further be configured via an advanced
18879 setting where 0 is no compression and 9 is strongest compression.
18880
18881 Filetype
18882 If you open a remote wrapped by press, you will see that there are many
18883 files with an extension corresponding to the compression algorithm you
18884 chose. These files are standard files that can be opened by various
18885 archive programs, but they have some hidden metadata that allows them
18886 to be used by rclone. While you may download and decompress these
18887 files at will, do not manually delete or rename files. Files without
18888 correct metadata files will not be recognized by rclone.
18889
18890 File names
18891 The compressed files will be named *.###########.gz where * is the base
18892 file and the # part is base64 encoded size of the uncompressed file.
18893 The file names should not be changed by anything other than the rclone
18894 compression backend.
18895
18896 Standard Options
18897 Here are the standard options specific to compress (Compress a remote).
18898
18899 --compress-remote
18900 Remote to compress.
18901
18902 • Config: remote
18903
18904 • Env Var: RCLONE_COMPRESS_REMOTE
18905
18906 • Type: string
18907
18908 • Default: ""
18909
18910 --compress-mode
18911 Compression mode.
18912
18913 • Config: mode
18914
18915 • Env Var: RCLONE_COMPRESS_MODE
18916
18917 • Type: string
18918
18919 • Default: "gzip"
18920
18921 • Examples:
18922
18923 • "gzip"
18924
18925 • Standard gzip compression with fastest parameters.
18926
18927 Advanced Options
18928 Here are the advanced options specific to compress (Compress a remote).
18929
18930 --compress-level
18931 GZIP compression level (-2 to 9).
18932
18933 Generally -1 (default, equivalent to 5) is recommended.
18934 Levels 1 to 9 increase compressiong at the cost of speed.. Going past 6
18935 generally offers very little return.
18936
18937 Level -2 uses Huffmann encoding only. Only use if you now what you
18938 are doing
18939 Level 0 turns off compression.
18940
18941 • Config: level
18942
18943 • Env Var: RCLONE_COMPRESS_LEVEL
18944
18945 • Type: int
18946
18947 • Default: -1
18948
18949 --compress-ram-cache-limit
18950 Some remotes don't allow the upload of files with unknown size. In
18951 this case the compressed file will need to be cached to determine it's
18952 size.
18953
18954 Files smaller than this limit will be cached in RAM, file larger than
18955 this limit will be cached on disk
18956
18957 • Config: ram_cache_limit
18958
18959 • Env Var: RCLONE_COMPRESS_RAM_CACHE_LIMIT
18960
18961 • Type: SizeSuffix
18962
18963 • Default: 20M
18964
18965 Dropbox
18966 Paths are specified as remote:path
18967
18968 Dropbox paths may be as deep as required, e.g. remote:directory/subdi‐
18969 rectory.
18970
18971 The initial setup for dropbox involves getting a token from Dropbox
18972 which you need to do in your browser. rclone config walks you through
18973 it.
18974
18975 Here is an example of how to make a remote called remote. First run:
18976
18977 rclone config
18978
18979 This will guide you through an interactive setup process:
18980
18981 n) New remote
18982 d) Delete remote
18983 q) Quit config
18984 e/n/d/q> n
18985 name> remote
18986 Type of storage to configure.
18987 Choose a number from below, or type in your own value
18988 [snip]
18989 XX / Dropbox
18990 \ "dropbox"
18991 [snip]
18992 Storage> dropbox
18993 Dropbox App Key - leave blank normally.
18994 app_key>
18995 Dropbox App Secret - leave blank normally.
18996 app_secret>
18997 Remote config
18998 Please visit:
18999 https://www.dropbox.com/1/oauth2/authorize?client_id=XXXXXXXXXXXXXXX&response_type=code
19000 Enter the code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXXXXXXXX
19001 --------------------
19002 [remote]
19003 app_key =
19004 app_secret =
19005 token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
19006 --------------------
19007 y) Yes this is OK
19008 e) Edit this remote
19009 d) Delete this remote
19010 y/e/d> y
19011
19012 You can then use it like this,
19013
19014 List directories in top level of your dropbox
19015
19016 rclone lsd remote:
19017
19018 List all the files in your dropbox
19019
19020 rclone ls remote:
19021
19022 To copy a local directory to a dropbox directory called backup
19023
19024 rclone copy /home/source remote:backup
19025
19026 Dropbox for business
19027 Rclone supports Dropbox for business and Team Folders.
19028
19029 When using Dropbox for business remote: and remote:path/to/file will
19030 refer to your personal folder.
19031
19032 If you wish to see Team Folders you must use a leading / in the path,
19033 so rclone lsd remote:/ will refer to the root and show you all Team
19034 Folders and your User Folder.
19035
19036 You can then use team folders like this remote:/TeamFolder and re‐
19037 mote:/TeamFolder/path/to/file.
19038
19039 A leading / for a Dropbox personal account will do nothing, but it will
19040 take an extra HTTP transaction so it should be avoided.
19041
19042 Modified time and Hashes
19043 Dropbox supports modified times, but the only way to set a modification
19044 time is to re-upload the file.
19045
19046 This means that if you uploaded your data with an older version of
19047 rclone which didn't support the v2 API and modified times, rclone will
19048 decide to upload all your old data to fix the modification times. If
19049 you don't want this to happen use --size-only or --checksum flag to
19050 stop it.
19051
19052 Dropbox supports its own hash type (https://www.dropbox.com/develop‐
19053 ers/reference/content-hash) which is checked for all transfers.
19054
19055 Restricted filename characters
19056 Character Value Replacement
19057 ────────────────────────────────
19058 NUL 0x00 ␀
19059 / 0x2F /
19060 DEL 0x7F ␡
19061 \ 0x5C \
19062
19063 File names can also not end with the following characters. These only
19064 get replaced if they are the last character in the name:
19065
19066 Character Value Replacement
19067 ────────────────────────────────
19068 SP 0x20 ␠
19069
19070 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
19071 view/#invalid-utf8), as they can't be used in JSON strings.
19072
19073 Standard Options
19074 Here are the standard options specific to dropbox (Dropbox).
19075
19076 --dropbox-client-id
19077 OAuth Client Id Leave blank normally.
19078
19079 • Config: client_id
19080
19081 • Env Var: RCLONE_DROPBOX_CLIENT_ID
19082
19083 • Type: string
19084
19085 • Default: ""
19086
19087 --dropbox-client-secret
19088 OAuth Client Secret Leave blank normally.
19089
19090 • Config: client_secret
19091
19092 • Env Var: RCLONE_DROPBOX_CLIENT_SECRET
19093
19094 • Type: string
19095
19096 • Default: ""
19097
19098 Advanced Options
19099 Here are the advanced options specific to dropbox (Dropbox).
19100
19101 --dropbox-token
19102 OAuth Access Token as a JSON blob.
19103
19104 • Config: token
19105
19106 • Env Var: RCLONE_DROPBOX_TOKEN
19107
19108 • Type: string
19109
19110 • Default: ""
19111
19112 --dropbox-auth-url
19113 Auth server URL. Leave blank to use the provider defaults.
19114
19115 • Config: auth_url
19116
19117 • Env Var: RCLONE_DROPBOX_AUTH_URL
19118
19119 • Type: string
19120
19121 • Default: ""
19122
19123 --dropbox-token-url
19124 Token server url. Leave blank to use the provider defaults.
19125
19126 • Config: token_url
19127
19128 • Env Var: RCLONE_DROPBOX_TOKEN_URL
19129
19130 • Type: string
19131
19132 • Default: ""
19133
19134 --dropbox-chunk-size
19135 Upload chunk size. (< 150M).
19136
19137 Any files larger than this will be uploaded in chunks of this size.
19138
19139 Note that chunks are buffered in memory (one at a time) so rclone can
19140 deal with retries. Setting this larger will increase the speed slight‐
19141 ly (at most 10% for 128MB in tests) at the cost of using more memory.
19142 It can be set smaller if you are tight on memory.
19143
19144 • Config: chunk_size
19145
19146 • Env Var: RCLONE_DROPBOX_CHUNK_SIZE
19147
19148 • Type: SizeSuffix
19149
19150 • Default: 48M
19151
19152 --dropbox-impersonate
19153 Impersonate this user when using a business account.
19154
19155 Note that if you want to use impersonate, you should make sure this
19156 flag is set when running "rclone config" as this will cause rclone to
19157 request the "members.read" scope which it won't normally. This is
19158 needed to lookup a members email address into the internal ID that
19159 dropbox uses in the API.
19160
19161 Using the "members.read" scope will require a Dropbox Team Admin to ap‐
19162 prove during the OAuth flow.
19163
19164 You will have to use your own App (setting your own client_id and
19165 client_secret) to use this option as currently rclone's default set of
19166 permissions doesn't include "members.read". This can be added once
19167 v1.55 or later is in use everywhere.
19168
19169 • Config: impersonate
19170
19171 • Env Var: RCLONE_DROPBOX_IMPERSONATE
19172
19173 • Type: string
19174
19175 • Default: ""
19176
19177 --dropbox-shared-files
19178 Instructs rclone to work on individual shared files.
19179
19180 In this mode rclone's features are extremely limited - only list (ls,
19181 lsl, etc.) operations and read operations (e.g. downloading) are sup‐
19182 ported in this mode. All other operations will be disabled.
19183
19184 • Config: shared_files
19185
19186 • Env Var: RCLONE_DROPBOX_SHARED_FILES
19187
19188 • Type: bool
19189
19190 • Default: false
19191
19192 --dropbox-shared-folders
19193 Instructs rclone to work on shared folders.
19194
19195 When this flag is used with no path only the List operation is support‐
19196 ed and all available shared folders will be listed. If you specify a
19197 path the first part will be interpreted as the name of shared folder.
19198 Rclone will then try to mount this shared to the root namespace. On
19199 success shared folder rclone proceeds normally. The shared folder is
19200 now pretty much a normal folder and all normal operations are support‐
19201 ed.
19202
19203 Note that we don't unmount the shared folder afterwards so the --drop‐
19204 box-shared-folders can be omitted after the first use of a particular
19205 shared folder.
19206
19207 • Config: shared_folders
19208
19209 • Env Var: RCLONE_DROPBOX_SHARED_FOLDERS
19210
19211 • Type: bool
19212
19213 • Default: false
19214
19215 --dropbox-encoding
19216 This sets the encoding for the backend.
19217
19218 See: the encoding section in the overview (https://rclone.org/over‐
19219 view/#encoding) for more info.
19220
19221 • Config: encoding
19222
19223 • Env Var: RCLONE_DROPBOX_ENCODING
19224
19225 • Type: MultiEncoder
19226
19227 • Default: Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot
19228
19229 Limitations
19230 Note that Dropbox is case insensitive so you can't have a file called
19231 "Hello.doc" and one called "hello.doc".
19232
19233 There are some file names such as thumbs.db which Dropbox can't store.
19234 There is a full list of them in the "Ignored Files" section of this
19235 document (https://www.dropbox.com/en/help/145). Rclone will issue an
19236 error message File name disallowed - not uploading if it attempts to
19237 upload one of those file names, but the sync won't fail.
19238
19239 Some errors may occur if you try to sync copyright-protected files be‐
19240 cause Dropbox has its own copyright detector
19241 (https://techcrunch.com/2014/03/30/how-dropbox-knows-when-youre-shar‐
19242 ing-copyrighted-stuff-without-actually-looking-at-your-stuff/) that
19243 prevents this sort of file being downloaded. This will return the er‐
19244 ror ERROR : /path/to/your/file: Failed to copy: failed to open source
19245 object: path/restricted_content/.
19246
19247 If you have more than 10,000 files in a directory then rclone purge
19248 dropbox:dir will return the error Failed to purge: There are too many
19249 files involved in this operation. As a work-around do an rclone delete
19250 dropbox:dir followed by an rclone rmdir dropbox:dir.
19251
19252 Get your own Dropbox App ID
19253 When you use rclone with Dropbox in its default configuration you are
19254 using rclone's App ID. This is shared between all the rclone users.
19255
19256 Here is how to create your own Dropbox App ID for rclone:
19257
19258 1. Log into the Dropbox App console (https://www.dropbox.com/develop‐
19259 ers/apps/create) with your Dropbox Account (It need not to be the
19260 same account as the Dropbox you want to access)
19261
19262 2. Choose an API => Usually this should be Dropbox API
19263
19264 3. Choose the type of access you want to use => Full Dropbox or App
19265 Folder
19266
19267 4. Name your App. The app name is global, so you can't use rclone for
19268 example
19269
19270 5. Click the button Create App
19271
19272 6. Fill Redirect URIs as http://localhost:53682/
19273
19274 7. Find the App key and App secret Use these values in rclone config to
19275 add a new remote or edit an existing remote.
19276
19277 Enterprise File Fabric
19278 This backend supports Storage Made Easy's Enterprise File Fabric™
19279 (https://storagemadeeasy.com/about/) which provides a software solution
19280 to integrate and unify File and Object Storage accessible through a
19281 global file system.
19282
19283 The initial setup for the Enterprise File Fabric backend involves get‐
19284 ting a token from the the Enterprise File Fabric which you need to do
19285 in your browser. rclone config walks you through it.
19286
19287 Here is an example of how to make a remote called remote. First run:
19288
19289 rclone config
19290
19291 This will guide you through an interactive setup process:
19292
19293 No remotes found - make a new one
19294 n) New remote
19295 s) Set configuration password
19296 q) Quit config
19297 n/s/q> n
19298 name> remote
19299 Type of storage to configure.
19300 Enter a string value. Press Enter for the default ("").
19301 Choose a number from below, or type in your own value
19302 [snip]
19303 XX / Enterprise File Fabric
19304 \ "filefabric"
19305 [snip]
19306 Storage> filefabric
19307 ** See help for filefabric backend at: https://rclone.org/filefabric/ **
19308
19309 URL of the Enterprise File Fabric to connect to
19310 Enter a string value. Press Enter for the default ("").
19311 Choose a number from below, or type in your own value
19312 1 / Storage Made Easy US
19313 \ "https://storagemadeeasy.com"
19314 2 / Storage Made Easy EU
19315 \ "https://eu.storagemadeeasy.com"
19316 3 / Connect to your Enterprise File Fabric
19317 \ "https://yourfabric.smestorage.com"
19318 url> https://yourfabric.smestorage.com/
19319 ID of the root folder
19320 Leave blank normally.
19321
19322 Fill in to make rclone start with directory of a given ID.
19323
19324 Enter a string value. Press Enter for the default ("").
19325 root_folder_id>
19326 Permanent Authentication Token
19327
19328 A Permanent Authentication Token can be created in the Enterprise File
19329 Fabric, on the users Dashboard under Security, there is an entry
19330 you'll see called "My Authentication Tokens". Click the Manage button
19331 to create one.
19332
19333 These tokens are normally valid for several years.
19334
19335 For more info see: https://docs.storagemadeeasy.com/organisationcloud/api-tokens
19336
19337 Enter a string value. Press Enter for the default ("").
19338 permanent_token> xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
19339 Edit advanced config? (y/n)
19340 y) Yes
19341 n) No (default)
19342 y/n> n
19343 Remote config
19344 --------------------
19345 [remote]
19346 type = filefabric
19347 url = https://yourfabric.smestorage.com/
19348 permanent_token = xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
19349 --------------------
19350 y) Yes this is OK (default)
19351 e) Edit this remote
19352 d) Delete this remote
19353 y/e/d> y
19354
19355 Once configured you can then use rclone like this,
19356
19357 List directories in top level of your Enterprise File Fabric
19358
19359 rclone lsd remote:
19360
19361 List all the files in your Enterprise File Fabric
19362
19363 rclone ls remote:
19364
19365 To copy a local directory to an Enterprise File Fabric directory called
19366 backup
19367
19368 rclone copy /home/source remote:backup
19369
19370 Modified time and hashes
19371 The Enterprise File Fabric allows modification times to be set on files
19372 accurate to 1 second. These will be used to detect whether objects
19373 need syncing or not.
19374
19375 The Enterprise File Fabric does not support any data hashes at this
19376 time.
19377
19378 Restricted filename characters
19379 The default restricted characters set (https://rclone.org/overview/#re‐
19380 stricted-characters) will be replaced.
19381
19382 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
19383 view/#invalid-utf8), as they can't be used in JSON strings.
19384
19385 Empty files
19386 Empty files aren't supported by the Enterprise File Fabric. Rclone
19387 will therefore upload an empty file as a single space with a mime type
19388 of application/vnd.rclone.empty.file and files with that mime type are
19389 treated as empty.
19390
19391 Root folder ID
19392 You can set the root_folder_id for rclone. This is the directory
19393 (identified by its Folder ID) that rclone considers to be the root of
19394 your Enterprise File Fabric.
19395
19396 Normally you will leave this blank and rclone will determine the cor‐
19397 rect root to use itself.
19398
19399 However you can set this to restrict rclone to a specific folder hier‐
19400 archy.
19401
19402 In order to do this you will have to find the Folder ID of the directo‐
19403 ry you wish rclone to display. These aren't displayed in the web in‐
19404 terface, but you can use rclone lsf to find them, for example
19405
19406 $ rclone lsf --dirs-only -Fip --csv filefabric:
19407 120673758,Burnt PDFs/
19408 120673759,My Quick Uploads/
19409 120673755,My Syncs/
19410 120673756,My backups/
19411 120673757,My contacts/
19412 120673761,S3 Storage/
19413
19414 The ID for "S3 Storage" would be 120673761.
19415
19416 Standard Options
19417 Here are the standard options specific to filefabric (Enterprise File
19418 Fabric).
19419
19420 --filefabric-url
19421 URL of the Enterprise File Fabric to connect to
19422
19423 • Config: url
19424
19425 • Env Var: RCLONE_FILEFABRIC_URL
19426
19427 • Type: string
19428
19429 • Default: ""
19430
19431 • Examples:
19432
19433 • "https://storagemadeeasy.com"
19434
19435 • Storage Made Easy US
19436
19437 • "https://eu.storagemadeeasy.com"
19438
19439 • Storage Made Easy EU
19440
19441 • "https://yourfabric.smestorage.com"
19442
19443 • Connect to your Enterprise File Fabric
19444
19445 --filefabric-root-folder-id
19446 ID of the root folder Leave blank normally.
19447
19448 Fill in to make rclone start with directory of a given ID.
19449
19450 • Config: root_folder_id
19451
19452 • Env Var: RCLONE_FILEFABRIC_ROOT_FOLDER_ID
19453
19454 • Type: string
19455
19456 • Default: ""
19457
19458 --filefabric-permanent-token
19459 Permanent Authentication Token
19460
19461 A Permanent Authentication Token can be created in the Enterprise File
19462 Fabric, on the users Dashboard under Security, there is an entry you'll
19463 see called "My Authentication Tokens". Click the Manage button to cre‐
19464 ate one.
19465
19466 These tokens are normally valid for several years.
19467
19468 For more info see: https://docs.storagemadeeasy.com/organisation‐
19469 cloud/api-tokens
19470
19471 • Config: permanent_token
19472
19473 • Env Var: RCLONE_FILEFABRIC_PERMANENT_TOKEN
19474
19475 • Type: string
19476
19477 • Default: ""
19478
19479 Advanced Options
19480 Here are the advanced options specific to filefabric (Enterprise File
19481 Fabric).
19482
19483 --filefabric-token
19484 Session Token
19485
19486 This is a session token which rclone caches in the config file. It is
19487 usually valid for 1 hour.
19488
19489 Don't set this value - rclone will set it automatically.
19490
19491 • Config: token
19492
19493 • Env Var: RCLONE_FILEFABRIC_TOKEN
19494
19495 • Type: string
19496
19497 • Default: ""
19498
19499 --filefabric-token-expiry
19500 Token expiry time
19501
19502 Don't set this value - rclone will set it automatically.
19503
19504 • Config: token_expiry
19505
19506 • Env Var: RCLONE_FILEFABRIC_TOKEN_EXPIRY
19507
19508 • Type: string
19509
19510 • Default: ""
19511
19512 --filefabric-version
19513 Version read from the file fabric
19514
19515 Don't set this value - rclone will set it automatically.
19516
19517 • Config: version
19518
19519 • Env Var: RCLONE_FILEFABRIC_VERSION
19520
19521 • Type: string
19522
19523 • Default: ""
19524
19525 --filefabric-encoding
19526 This sets the encoding for the backend.
19527
19528 See: the encoding section in the overview (https://rclone.org/over‐
19529 view/#encoding) for more info.
19530
19531 • Config: encoding
19532
19533 • Env Var: RCLONE_FILEFABRIC_ENCODING
19534
19535 • Type: MultiEncoder
19536
19537 • Default: Slash,Del,Ctl,InvalidUtf8,Dot
19538
19539 FTP
19540 FTP is the File Transfer Protocol. Rclone FTP support is provided us‐
19541 ing the github.com/jlaffaye/ftp (https://godoc.org/github.com/jlaf‐
19542 faye/ftp) package.
19543
19544 Limitations of Rclone's FTP backend
19545
19546 Paths are specified as remote:path. If the path does not begin with a
19547 / it is relative to the home directory of the user. An empty path re‐
19548 mote: refers to the user's home directory.
19549
19550 To create an FTP configuration named remote, run
19551
19552 rclone config
19553
19554 Rclone config guides you through an interactive setup process. A mini‐
19555 mal rclone FTP remote definition only requires host, username and pass‐
19556 word. For an anonymous FTP server, use anonymous as username and your
19557 email address as password.
19558
19559 No remotes found - make a new one
19560 n) New remote
19561 r) Rename remote
19562 c) Copy remote
19563 s) Set configuration password
19564 q) Quit config
19565 n/r/c/s/q> n
19566 name> remote
19567 Type of storage to configure.
19568 Enter a string value. Press Enter for the default ("").
19569 Choose a number from below, or type in your own value
19570 [snip]
19571 XX / FTP Connection
19572 \ "ftp"
19573 [snip]
19574 Storage> ftp
19575 ** See help for ftp backend at: https://rclone.org/ftp/ **
19576
19577 FTP host to connect to
19578 Enter a string value. Press Enter for the default ("").
19579 Choose a number from below, or type in your own value
19580 1 / Connect to ftp.example.com
19581 \ "ftp.example.com"
19582 host> ftp.example.com
19583 FTP username, leave blank for current username, $USER
19584 Enter a string value. Press Enter for the default ("").
19585 user>
19586 FTP port, leave blank to use default (21)
19587 Enter a string value. Press Enter for the default ("").
19588 port>
19589 FTP password
19590 y) Yes type in my own password
19591 g) Generate random password
19592 y/g> y
19593 Enter the password:
19594 password:
19595 Confirm the password:
19596 password:
19597 Use FTP over TLS (Implicit)
19598 Enter a boolean value (true or false). Press Enter for the default ("false").
19599 tls>
19600 Use FTP over TLS (Explicit)
19601 Enter a boolean value (true or false). Press Enter for the default ("false").
19602 explicit_tls>
19603 Remote config
19604 --------------------
19605 [remote]
19606 type = ftp
19607 host = ftp.example.com
19608 pass = *** ENCRYPTED ***
19609 --------------------
19610 y) Yes this is OK
19611 e) Edit this remote
19612 d) Delete this remote
19613 y/e/d> y
19614
19615 To see all directories in the home directory of remote
19616
19617 rclone lsd remote:
19618
19619 Make a new directory
19620
19621 rclone mkdir remote:path/to/directory
19622
19623 List the contents of a directory
19624
19625 rclone ls remote:path/to/directory
19626
19627 Sync /home/local/directory to the remote directory, deleting any excess
19628 files in the directory.
19629
19630 rclone sync -i /home/local/directory remote:directory
19631
19632 Example without a config file
19633 rclone lsf :ftp: --ftp-host=speedtest.tele2.net --ftp-user=anonymous --ftp-pass=`rclone obscure dummy`
19634
19635 Implicit TLS
19636 Rlone FTP supports implicit FTP over TLS servers (FTPS). This has to
19637 be enabled in the FTP backend config for the remote, or with --ftp-tls.
19638 The default FTPS port is 990, not 21 and can be set with --ftp-port.
19639
19640 Standard Options
19641 Here are the standard options specific to ftp (FTP Connection).
19642
19643 --ftp-host
19644 FTP host to connect to
19645
19646 • Config: host
19647
19648 • Env Var: RCLONE_FTP_HOST
19649
19650 • Type: string
19651
19652 • Default: ""
19653
19654 • Examples:
19655
19656 • "ftp.example.com"
19657
19658 • Connect to ftp.example.com
19659
19660 --ftp-user
19661 FTP username, leave blank for current username, $USER
19662
19663 • Config: user
19664
19665 • Env Var: RCLONE_FTP_USER
19666
19667 • Type: string
19668
19669 • Default: ""
19670
19671 --ftp-port
19672 FTP port, leave blank to use default (21)
19673
19674 • Config: port
19675
19676 • Env Var: RCLONE_FTP_PORT
19677
19678 • Type: string
19679
19680 • Default: ""
19681
19682 --ftp-pass
19683 FTP password
19684
19685 NB Input to this must be obscured - see rclone obscure
19686 (https://rclone.org/commands/rclone_obscure/).
19687
19688 • Config: pass
19689
19690 • Env Var: RCLONE_FTP_PASS
19691
19692 • Type: string
19693
19694 • Default: ""
19695
19696 --ftp-tls
19697 Use Implicit FTPS (FTP over TLS) When using implicit FTP over TLS the
19698 client connects using TLS right from the start which breaks compatibil‐
19699 ity with non-TLS-aware servers. This is usually served over port 990
19700 rather than port 21. Cannot be used in combination with explicit FTP.
19701
19702 • Config: tls
19703
19704 • Env Var: RCLONE_FTP_TLS
19705
19706 • Type: bool
19707
19708 • Default: false
19709
19710 --ftp-explicit-tls
19711 Use Explicit FTPS (FTP over TLS) When using explicit FTP over TLS the
19712 client explicitly requests security from the server in order to upgrade
19713 a plain text connection to an encrypted one. Cannot be used in combi‐
19714 nation with implicit FTP.
19715
19716 • Config: explicit_tls
19717
19718 • Env Var: RCLONE_FTP_EXPLICIT_TLS
19719
19720 • Type: bool
19721
19722 • Default: false
19723
19724 Advanced Options
19725 Here are the advanced options specific to ftp (FTP Connection).
19726
19727 --ftp-concurrency
19728 Maximum number of FTP simultaneous connections, 0 for unlimited
19729
19730 • Config: concurrency
19731
19732 • Env Var: RCLONE_FTP_CONCURRENCY
19733
19734 • Type: int
19735
19736 • Default: 0
19737
19738 --ftp-no-check-certificate
19739 Do not verify the TLS certificate of the server
19740
19741 • Config: no_check_certificate
19742
19743 • Env Var: RCLONE_FTP_NO_CHECK_CERTIFICATE
19744
19745 • Type: bool
19746
19747 • Default: false
19748
19749 --ftp-disable-epsv
19750 Disable using EPSV even if server advertises support
19751
19752 • Config: disable_epsv
19753
19754 • Env Var: RCLONE_FTP_DISABLE_EPSV
19755
19756 • Type: bool
19757
19758 • Default: false
19759
19760 --ftp-disable-mlsd
19761 Disable using MLSD even if server advertises support
19762
19763 • Config: disable_mlsd
19764
19765 • Env Var: RCLONE_FTP_DISABLE_MLSD
19766
19767 • Type: bool
19768
19769 • Default: false
19770
19771 --ftp-idle-timeout
19772 Max time before closing idle connections
19773
19774 If no connections have been returned to the connection pool in the time
19775 given, rclone will empty the connection pool.
19776
19777 Set to 0 to keep connections indefinitely.
19778
19779 • Config: idle_timeout
19780
19781 • Env Var: RCLONE_FTP_IDLE_TIMEOUT
19782
19783 • Type: Duration
19784
19785 • Default: 1m0s
19786
19787 --ftp-close-timeout
19788 Maximum time to wait for a response to close.
19789
19790 • Config: close_timeout
19791
19792 • Env Var: RCLONE_FTP_CLOSE_TIMEOUT
19793
19794 • Type: Duration
19795
19796 • Default: 1m0s
19797
19798 --ftp-encoding
19799 This sets the encoding for the backend.
19800
19801 See: the encoding section in the overview (https://rclone.org/over‐
19802 view/#encoding) for more info.
19803
19804 • Config: encoding
19805
19806 • Env Var: RCLONE_FTP_ENCODING
19807
19808 • Type: MultiEncoder
19809
19810 • Default: Slash,Del,Ctl,RightSpace,Dot
19811
19812 Limitations
19813 Modified times are not supported. Times you see on the FTP server
19814 through rclone are those of upload.
19815
19816 Rclone's FTP backend does not support any checksums but can compare
19817 file sizes.
19818
19819 rclone about is not supported by the FTP backend. Backends without
19820 this capability cannot determine free space for an rclone mount or use
19821 policy mfs (most free space) as a member of an rclone union remote.
19822
19823 See List of backends that do not support rclone about
19824 (https://rclone.org/overview/#optional-features) See rclone about
19825 (https://rclone.org/commands/rclone_about/)
19826
19827 The implementation of : --dump headers, --dump bodies, --dump auth for
19828 debugging isn't the same as for rclone HTTP based backends - it has
19829 less fine grained control.
19830
19831 --timeout isn't supported (but --contimeout is).
19832
19833 --bind isn't supported.
19834
19835 Rclone's FTP backend could support server-side move but does not at
19836 present.
19837
19838 The ftp_proxy environment variable is not currently supported.
19839
19840 FTP servers acting as rclone remotes must support 'passive' mode.
19841 Rclone's FTP implementation is not compatible with 'active' mode.
19842
19843 Restricted filename characters
19844 In addition to the default restricted characters set
19845 (https://rclone.org/overview/#restricted-characters) the following
19846 characters are also replaced:
19847
19848 File names cannot end with the following characters. Repacement is
19849 limited to the last character in a file name:
19850
19851 Character Value Replacement
19852 ────────────────────────────────
19853 SP 0x20 ␠
19854
19855 Not all FTP servers can have all characters in file names, for example:
19856
19857 FTP Server Forbidden characters
19858 ──────────────────────────────────
19859 proftpd *
19860 pureftpd \ [ ]
19861
19862 Google Cloud Storage
19863 Paths are specified as remote:bucket (or remote: for the lsd command.)
19864 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
19865
19866 The initial setup for google cloud storage involves getting a token
19867 from Google Cloud Storage which you need to do in your browser. rclone
19868 config walks you through it.
19869
19870 Here is an example of how to make a remote called remote. First run:
19871
19872 rclone config
19873
19874 This will guide you through an interactive setup process:
19875
19876 n) New remote
19877 d) Delete remote
19878 q) Quit config
19879 e/n/d/q> n
19880 name> remote
19881 Type of storage to configure.
19882 Choose a number from below, or type in your own value
19883 [snip]
19884 XX / Google Cloud Storage (this is not Google Drive)
19885 \ "google cloud storage"
19886 [snip]
19887 Storage> google cloud storage
19888 Google Application Client Id - leave blank normally.
19889 client_id>
19890 Google Application Client Secret - leave blank normally.
19891 client_secret>
19892 Project number optional - needed only for list/create/delete buckets - see your developer console.
19893 project_number> 12345678
19894 Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
19895 service_account_file>
19896 Access Control List for new objects.
19897 Choose a number from below, or type in your own value
19898 1 / Object owner gets OWNER access, and all Authenticated Users get READER access.
19899 \ "authenticatedRead"
19900 2 / Object owner gets OWNER access, and project team owners get OWNER access.
19901 \ "bucketOwnerFullControl"
19902 3 / Object owner gets OWNER access, and project team owners get READER access.
19903 \ "bucketOwnerRead"
19904 4 / Object owner gets OWNER access [default if left blank].
19905 \ "private"
19906 5 / Object owner gets OWNER access, and project team members get access according to their roles.
19907 \ "projectPrivate"
19908 6 / Object owner gets OWNER access, and all Users get READER access.
19909 \ "publicRead"
19910 object_acl> 4
19911 Access Control List for new buckets.
19912 Choose a number from below, or type in your own value
19913 1 / Project team owners get OWNER access, and all Authenticated Users get READER access.
19914 \ "authenticatedRead"
19915 2 / Project team owners get OWNER access [default if left blank].
19916 \ "private"
19917 3 / Project team members get access according to their roles.
19918 \ "projectPrivate"
19919 4 / Project team owners get OWNER access, and all Users get READER access.
19920 \ "publicRead"
19921 5 / Project team owners get OWNER access, and all Users get WRITER access.
19922 \ "publicReadWrite"
19923 bucket_acl> 2
19924 Location for the newly created buckets.
19925 Choose a number from below, or type in your own value
19926 1 / Empty for default location (US).
19927 \ ""
19928 2 / Multi-regional location for Asia.
19929 \ "asia"
19930 3 / Multi-regional location for Europe.
19931 \ "eu"
19932 4 / Multi-regional location for United States.
19933 \ "us"
19934 5 / Taiwan.
19935 \ "asia-east1"
19936 6 / Tokyo.
19937 \ "asia-northeast1"
19938 7 / Singapore.
19939 \ "asia-southeast1"
19940 8 / Sydney.
19941 \ "australia-southeast1"
19942 9 / Belgium.
19943 \ "europe-west1"
19944 10 / London.
19945 \ "europe-west2"
19946 11 / Iowa.
19947 \ "us-central1"
19948 12 / South Carolina.
19949 \ "us-east1"
19950 13 / Northern Virginia.
19951 \ "us-east4"
19952 14 / Oregon.
19953 \ "us-west1"
19954 location> 12
19955 The storage class to use when storing objects in Google Cloud Storage.
19956 Choose a number from below, or type in your own value
19957 1 / Default
19958 \ ""
19959 2 / Multi-regional storage class
19960 \ "MULTI_REGIONAL"
19961 3 / Regional storage class
19962 \ "REGIONAL"
19963 4 / Nearline storage class
19964 \ "NEARLINE"
19965 5 / Coldline storage class
19966 \ "COLDLINE"
19967 6 / Durable reduced availability storage class
19968 \ "DURABLE_REDUCED_AVAILABILITY"
19969 storage_class> 5
19970 Remote config
19971 Use auto config?
19972 * Say Y if not sure
19973 * Say N if you are working on a remote or headless machine or Y didn't work
19974 y) Yes
19975 n) No
19976 y/n> y
19977 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
19978 Log in and authorize rclone for access
19979 Waiting for code...
19980 Got code
19981 --------------------
19982 [remote]
19983 type = google cloud storage
19984 client_id =
19985 client_secret =
19986 token = {"AccessToken":"xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"x/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxx","Expiry":"2014-07-17T20:49:14.929208288+01:00","Extra":null}
19987 project_number = 12345678
19988 object_acl = private
19989 bucket_acl = private
19990 --------------------
19991 y) Yes this is OK
19992 e) Edit this remote
19993 d) Delete this remote
19994 y/e/d> y
19995
19996 Note that rclone runs a webserver on your local machine to collect the
19997 token as returned from Google if you use auto config mode. This only
19998 runs from the moment it opens your browser to the moment you get back
19999 the verification code. This is on http://127.0.0.1:53682/ and this it
20000 may require you to unblock it temporarily if you are running a host
20001 firewall, or use manual mode.
20002
20003 This remote is called remote and can now be used like this
20004
20005 See all the buckets in your project
20006
20007 rclone lsd remote:
20008
20009 Make a new bucket
20010
20011 rclone mkdir remote:bucket
20012
20013 List the contents of a bucket
20014
20015 rclone ls remote:bucket
20016
20017 Sync /home/local/directory to the remote bucket, deleting any excess
20018 files in the bucket.
20019
20020 rclone sync -i /home/local/directory remote:bucket
20021
20022 Service Account support
20023 You can set up rclone with Google Cloud Storage in an unattended mode,
20024 i.e. not tied to a specific end-user Google account. This is useful
20025 when you want to synchronise files onto machines that don't have ac‐
20026 tively logged-in users, for example build machines.
20027
20028 To get credentials for Google Cloud Platform IAM Service Accounts
20029 (https://cloud.google.com/iam/docs/service-accounts), please head to
20030 the Service Account (https://console.cloud.google.com/permissions/ser‐
20031 viceaccounts) section of the Google Developer Console. Service Ac‐
20032 counts behave just like normal User permissions in Google Cloud Storage
20033 ACLs (https://cloud.google.com/storage/docs/access-control), so you can
20034 limit their access (e.g. make them read only). After creating an ac‐
20035 count, a JSON file containing the Service Account's credentials will be
20036 downloaded onto your machines. These credentials are what rclone will
20037 use for authentication.
20038
20039 To use a Service Account instead of OAuth2 token flow, enter the path
20040 to your Service Account credentials at the service_account_file prompt
20041 and rclone won't use the browser based authentication flow. If you'd
20042 rather stuff the contents of the credentials file into the rclone con‐
20043 fig file, you can set service_account_credentials with the actual con‐
20044 tents of the file instead, or set the equivalent environment variable.
20045
20046 Anonymous Access
20047 For downloads of objects that permit public access you can configure
20048 rclone to use anonymous access by setting anonymous to true. With
20049 unauthorized access you can't write or create files but only read or
20050 list those buckets and objects that have public read access.
20051
20052 Application Default Credentials
20053 If no other source of credentials is provided, rclone will fall back to
20054 Application Default Credentials (https://cloud.google.com/video-intel‐
20055 ligence/docs/common/auth#authenticating_with_application_default_cre‐
20056 dentials) this is useful both when you already have configured authen‐
20057 tication for your developer account, or in production when running on a
20058 google compute host. Note that if running in docker, you may need to
20059 run additional commands on your google compute machine - see this page
20060 (https://cloud.google.com/container-registry/docs/advanced-authentica‐
20061 tion#gcloud_as_a_docker_credential_helper).
20062
20063 Note that in the case application default credentials are used, there
20064 is no need to explicitly configure a project number.
20065
20066 --fast-list
20067 This remote supports --fast-list which allows you to use fewer transac‐
20068 tions in exchange for more memory. See the rclone docs
20069 (https://rclone.org/docs/#fast-list) for more details.
20070
20071 Custom upload headers
20072 You can set custom upload headers with the --header-upload flag.
20073 Google Cloud Storage supports the headers as described in the working
20074 with metadata documentation (https://cloud.google.com/storage/docs/gsu‐
20075 til/addlhelp/WorkingWithObjectMetadata)
20076
20077 • Cache-Control
20078
20079 • Content-Disposition
20080
20081 • Content-Encoding
20082
20083 • Content-Language
20084
20085 • Content-Type
20086
20087 • X-Goog-Storage-Class
20088
20089 • X-Goog-Meta-
20090
20091 Eg --header-upload "Content-Type text/potato"
20092
20093 Note that the last of these is for setting custom metadata in the form
20094 --header-upload "x-goog-meta-key: value"
20095
20096 Modified time
20097 Google google cloud storage stores md5sums natively and rclone stores
20098 modification times as metadata on the object, under the "mtime" key in
20099 RFC3339 format accurate to 1ns.
20100
20101 Restricted filename characters
20102 Character Value Replacement
20103 ────────────────────────────────
20104 NUL 0x00 ␀
20105 LF 0x0A ␊
20106 CR 0x0D ␍
20107 / 0x2F /
20108
20109 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
20110 view/#invalid-utf8), as they can't be used in JSON strings.
20111
20112 Standard Options
20113 Here are the standard options specific to google cloud storage (Google
20114 Cloud Storage (this is not Google Drive)).
20115
20116 --gcs-client-id
20117 OAuth Client Id Leave blank normally.
20118
20119 • Config: client_id
20120
20121 • Env Var: RCLONE_GCS_CLIENT_ID
20122
20123 • Type: string
20124
20125 • Default: ""
20126
20127 --gcs-client-secret
20128 OAuth Client Secret Leave blank normally.
20129
20130 • Config: client_secret
20131
20132 • Env Var: RCLONE_GCS_CLIENT_SECRET
20133
20134 • Type: string
20135
20136 • Default: ""
20137
20138 --gcs-project-number
20139 Project number. Optional - needed only for list/create/delete buckets
20140 - see your developer console.
20141
20142 • Config: project_number
20143
20144 • Env Var: RCLONE_GCS_PROJECT_NUMBER
20145
20146 • Type: string
20147
20148 • Default: ""
20149
20150 --gcs-service-account-file
20151 Service Account Credentials JSON file path Leave blank normally. Need‐
20152 ed only if you want use SA instead of interactive login.
20153
20154 Leading ~ will be expanded in the file name as will environment vari‐
20155 ables such as ${RCLONE_CONFIG_DIR}.
20156
20157 • Config: service_account_file
20158
20159 • Env Var: RCLONE_GCS_SERVICE_ACCOUNT_FILE
20160
20161 • Type: string
20162
20163 • Default: ""
20164
20165 --gcs-service-account-credentials
20166 Service Account Credentials JSON blob Leave blank normally. Needed on‐
20167 ly if you want use SA instead of interactive login.
20168
20169 • Config: service_account_credentials
20170
20171 • Env Var: RCLONE_GCS_SERVICE_ACCOUNT_CREDENTIALS
20172
20173 • Type: string
20174
20175 • Default: ""
20176
20177 --gcs-anonymous
20178 Access public buckets and objects without credentials Set to 'true' if
20179 you just want to download files and don't configure credentials.
20180
20181 • Config: anonymous
20182
20183 • Env Var: RCLONE_GCS_ANONYMOUS
20184
20185 • Type: bool
20186
20187 • Default: false
20188
20189 --gcs-object-acl
20190 Access Control List for new objects.
20191
20192 • Config: object_acl
20193
20194 • Env Var: RCLONE_GCS_OBJECT_ACL
20195
20196 • Type: string
20197
20198 • Default: ""
20199
20200 • Examples:
20201
20202 • "authenticatedRead"
20203
20204 • Object owner gets OWNER access, and all Authenticated Users get
20205 READER access.
20206
20207 • "bucketOwnerFullControl"
20208
20209 • Object owner gets OWNER access, and project team owners get OWNER
20210 access.
20211
20212 • "bucketOwnerRead"
20213
20214 • Object owner gets OWNER access, and project team owners get READ‐
20215 ER access.
20216
20217 • "private"
20218
20219 • Object owner gets OWNER access [default if left blank].
20220
20221 • "projectPrivate"
20222
20223 • Object owner gets OWNER access, and project team members get ac‐
20224 cess according to their roles.
20225
20226 • "publicRead"
20227
20228 • Object owner gets OWNER access, and all Users get READER access.
20229
20230 --gcs-bucket-acl
20231 Access Control List for new buckets.
20232
20233 • Config: bucket_acl
20234
20235 • Env Var: RCLONE_GCS_BUCKET_ACL
20236
20237 • Type: string
20238
20239 • Default: ""
20240
20241 • Examples:
20242
20243 • "authenticatedRead"
20244
20245 • Project team owners get OWNER access, and all Authenticated Users
20246 get READER access.
20247
20248 • "private"
20249
20250 • Project team owners get OWNER access [default if left blank].
20251
20252 • "projectPrivate"
20253
20254 • Project team members get access according to their roles.
20255
20256 • "publicRead"
20257
20258 • Project team owners get OWNER access, and all Users get READER
20259 access.
20260
20261 • "publicReadWrite"
20262
20263 • Project team owners get OWNER access, and all Users get WRITER
20264 access.
20265
20266 --gcs-bucket-policy-only
20267 Access checks should use bucket-level IAM policies.
20268
20269 If you want to upload objects to a bucket with Bucket Policy Only set
20270 then you will need to set this.
20271
20272 When it is set, rclone:
20273
20274 • ignores ACLs set on buckets
20275
20276 • ignores ACLs set on objects
20277
20278 • creates buckets with Bucket Policy Only set
20279
20280 Docs: https://cloud.google.com/storage/docs/bucket-policy-only
20281
20282 • Config: bucket_policy_only
20283
20284 • Env Var: RCLONE_GCS_BUCKET_POLICY_ONLY
20285
20286 • Type: bool
20287
20288 • Default: false
20289
20290 --gcs-location
20291 Location for the newly created buckets.
20292
20293 • Config: location
20294
20295 • Env Var: RCLONE_GCS_LOCATION
20296
20297 • Type: string
20298
20299 • Default: ""
20300
20301 • Examples:
20302
20303 • ""
20304
20305 • Empty for default location (US).
20306
20307 • "asia"
20308
20309 • Multi-regional location for Asia.
20310
20311 • "eu"
20312
20313 • Multi-regional location for Europe.
20314
20315 • "us"
20316
20317 • Multi-regional location for United States.
20318
20319 • "asia-east1"
20320
20321 • Taiwan.
20322
20323 • "asia-east2"
20324
20325 • Hong Kong.
20326
20327 • "asia-northeast1"
20328
20329 • Tokyo.
20330
20331 • "asia-south1"
20332
20333 • Mumbai.
20334
20335 • "asia-southeast1"
20336
20337 • Singapore.
20338
20339 • "australia-southeast1"
20340
20341 • Sydney.
20342
20343 • "europe-north1"
20344
20345 • Finland.
20346
20347 • "europe-west1"
20348
20349 • Belgium.
20350
20351 • "europe-west2"
20352
20353 • London.
20354
20355 • "europe-west3"
20356
20357 • Frankfurt.
20358
20359 • "europe-west4"
20360
20361 • Netherlands.
20362
20363 • "us-central1"
20364
20365 • Iowa.
20366
20367 • "us-east1"
20368
20369 • South Carolina.
20370
20371 • "us-east4"
20372
20373 • Northern Virginia.
20374
20375 • "us-west1"
20376
20377 • Oregon.
20378
20379 • "us-west2"
20380
20381 • California.
20382
20383 --gcs-storage-class
20384 The storage class to use when storing objects in Google Cloud Storage.
20385
20386 • Config: storage_class
20387
20388 • Env Var: RCLONE_GCS_STORAGE_CLASS
20389
20390 • Type: string
20391
20392 • Default: ""
20393
20394 • Examples:
20395
20396 • ""
20397
20398 • Default
20399
20400 • "MULTI_REGIONAL"
20401
20402 • Multi-regional storage class
20403
20404 • "REGIONAL"
20405
20406 • Regional storage class
20407
20408 • "NEARLINE"
20409
20410 • Nearline storage class
20411
20412 • "COLDLINE"
20413
20414 • Coldline storage class
20415
20416 • "ARCHIVE"
20417
20418 • Archive storage class
20419
20420 • "DURABLE_REDUCED_AVAILABILITY"
20421
20422 • Durable reduced availability storage class
20423
20424 Advanced Options
20425 Here are the advanced options specific to google cloud storage (Google
20426 Cloud Storage (this is not Google Drive)).
20427
20428 --gcs-token
20429 OAuth Access Token as a JSON blob.
20430
20431 • Config: token
20432
20433 • Env Var: RCLONE_GCS_TOKEN
20434
20435 • Type: string
20436
20437 • Default: ""
20438
20439 --gcs-auth-url
20440 Auth server URL. Leave blank to use the provider defaults.
20441
20442 • Config: auth_url
20443
20444 • Env Var: RCLONE_GCS_AUTH_URL
20445
20446 • Type: string
20447
20448 • Default: ""
20449
20450 --gcs-token-url
20451 Token server url. Leave blank to use the provider defaults.
20452
20453 • Config: token_url
20454
20455 • Env Var: RCLONE_GCS_TOKEN_URL
20456
20457 • Type: string
20458
20459 • Default: ""
20460
20461 --gcs-encoding
20462 This sets the encoding for the backend.
20463
20464 See: the encoding section in the overview (https://rclone.org/over‐
20465 view/#encoding) for more info.
20466
20467 • Config: encoding
20468
20469 • Env Var: RCLONE_GCS_ENCODING
20470
20471 • Type: MultiEncoder
20472
20473 • Default: Slash,CrLf,InvalidUtf8,Dot
20474
20475 Limitations
20476 rclone about is not supported by the Google Cloud Storage backend.
20477 Backends without this capability cannot determine free space for an
20478 rclone mount or use policy mfs (most free space) as a member of an
20479 rclone union remote.
20480
20481 See List of backends that do not support rclone about
20482 (https://rclone.org/overview/#optional-features) See rclone about
20483 (https://rclone.org/commands/rclone_about/)
20484
20485 Google Drive
20486 Paths are specified as drive:path
20487
20488 Drive paths may be as deep as required, e.g. drive:directory/subdirec‐
20489 tory.
20490
20491 The initial setup for drive involves getting a token from Google drive
20492 which you need to do in your browser. rclone config walks you through
20493 it.
20494
20495 Here is an example of how to make a remote called remote. First run:
20496
20497 rclone config
20498
20499 This will guide you through an interactive setup process:
20500
20501 No remotes found - make a new one
20502 n) New remote
20503 r) Rename remote
20504 c) Copy remote
20505 s) Set configuration password
20506 q) Quit config
20507 n/r/c/s/q> n
20508 name> remote
20509 Type of storage to configure.
20510 Choose a number from below, or type in your own value
20511 [snip]
20512 XX / Google Drive
20513 \ "drive"
20514 [snip]
20515 Storage> drive
20516 Google Application Client Id - leave blank normally.
20517 client_id>
20518 Google Application Client Secret - leave blank normally.
20519 client_secret>
20520 Scope that rclone should use when requesting access from drive.
20521 Choose a number from below, or type in your own value
20522 1 / Full access all files, excluding Application Data Folder.
20523 \ "drive"
20524 2 / Read-only access to file metadata and file contents.
20525 \ "drive.readonly"
20526 / Access to files created by rclone only.
20527 3 | These are visible in the drive website.
20528 | File authorization is revoked when the user deauthorizes the app.
20529 \ "drive.file"
20530 / Allows read and write access to the Application Data folder.
20531 4 | This is not visible in the drive website.
20532 \ "drive.appfolder"
20533 / Allows read-only access to file metadata but
20534 5 | does not allow any access to read or download file content.
20535 \ "drive.metadata.readonly"
20536 scope> 1
20537 ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs).
20538 root_folder_id>
20539 Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
20540 service_account_file>
20541 Remote config
20542 Use auto config?
20543 * Say Y if not sure
20544 * Say N if you are working on a remote or headless machine or Y didn't work
20545 y) Yes
20546 n) No
20547 y/n> y
20548 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
20549 Log in and authorize rclone for access
20550 Waiting for code...
20551 Got code
20552 Configure this as a Shared Drive (Team Drive)?
20553 y) Yes
20554 n) No
20555 y/n> n
20556 --------------------
20557 [remote]
20558 client_id =
20559 client_secret =
20560 scope = drive
20561 root_folder_id =
20562 service_account_file =
20563 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2014-03-16T13:57:58.955387075Z"}
20564 --------------------
20565 y) Yes this is OK
20566 e) Edit this remote
20567 d) Delete this remote
20568 y/e/d> y
20569
20570 Note that rclone runs a webserver on your local machine to collect the
20571 token as returned from Google if you use auto config mode. This only
20572 runs from the moment it opens your browser to the moment you get back
20573 the verification code. This is on http://127.0.0.1:53682/ and this it
20574 may require you to unblock it temporarily if you are running a host
20575 firewall, or use manual mode.
20576
20577 You can then use it like this,
20578
20579 List directories in top level of your drive
20580
20581 rclone lsd remote:
20582
20583 List all the files in your drive
20584
20585 rclone ls remote:
20586
20587 To copy a local directory to a drive directory called backup
20588
20589 rclone copy /home/source remote:backup
20590
20591 Scopes
20592 Rclone allows you to select which scope you would like for rclone to
20593 use. This changes what type of token is granted to rclone. The scopes
20594 are defined here (https://developers.google.com/drive/v3/web/about-
20595 auth).
20596
20597 The scope are
20598
20599 drive
20600 This is the default scope and allows full access to all files, except
20601 for the Application Data Folder (see below).
20602
20603 Choose this one if you aren't sure.
20604
20605 drive.readonly
20606 This allows read only access to all files. Files may be listed and
20607 downloaded but not uploaded, renamed or deleted.
20608
20609 drive.file
20610 With this scope rclone can read/view/modify only those files and fold‐
20611 ers it creates.
20612
20613 So if you uploaded files to drive via the web interface (or any other
20614 means) they will not be visible to rclone.
20615
20616 This can be useful if you are using rclone to backup data and you want
20617 to be sure confidential data on your drive is not visible to rclone.
20618
20619 Files created with this scope are visible in the web interface.
20620
20621 drive.appfolder
20622 This gives rclone its own private area to store files. Rclone will not
20623 be able to see any other files on your drive and you won't be able to
20624 see rclone's files from the web interface either.
20625
20626 drive.metadata.readonly
20627 This allows read only access to file names only. It does not allow
20628 rclone to download or upload data, or rename or delete files or direc‐
20629 tories.
20630
20631 Root folder ID
20632 You can set the root_folder_id for rclone. This is the directory
20633 (identified by its Folder ID) that rclone considers to be the root of
20634 your drive.
20635
20636 Normally you will leave this blank and rclone will determine the cor‐
20637 rect root to use itself.
20638
20639 However you can set this to restrict rclone to a specific folder hier‐
20640 archy or to access data within the "Computers" tab on the drive web in‐
20641 terface (where files from Google's Backup and Sync desktop program go).
20642
20643 In order to do this you will have to find the Folder ID of the directo‐
20644 ry you wish rclone to display. This will be the last segment of the
20645 URL when you open the relevant folder in the drive web interface.
20646
20647 So if the folder you want rclone to use has a URL which looks like
20648 https://drive.google.com/drive/fold‐
20649 ers/1XyfxxxxxxxxxxxxxxxxxxxxxxxxxKHCh in the browser, then you use
20650 1XyfxxxxxxxxxxxxxxxxxxxxxxxxxKHCh as the root_folder_id in the config.
20651
20652 NB folders under the "Computers" tab seem to be read only (drive gives
20653 a 500 error) when using rclone.
20654
20655 There doesn't appear to be an API to discover the folder IDs of the
20656 "Computers" tab - please contact us if you know otherwise!
20657
20658 Note also that rclone can't access any data under the "Backups" tab on
20659 the google drive web interface yet.
20660
20661 Service Account support
20662 You can set up rclone with Google Drive in an unattended mode, i.e.
20663 not tied to a specific end-user Google account. This is useful when
20664 you want to synchronise files onto machines that don't have actively
20665 logged-in users, for example build machines.
20666
20667 To use a Service Account instead of OAuth2 token flow, enter the path
20668 to your Service Account credentials at the service_account_file prompt
20669 during rclone config and rclone won't use the browser based authentica‐
20670 tion flow. If you'd rather stuff the contents of the credentials file
20671 into the rclone config file, you can set service_account_credentials
20672 with the actual contents of the file instead, or set the equivalent en‐
20673 vironment variable.
20674
20675 Use case - Google Apps/G-suite account and individual Drive
20676 Let's say that you are the administrator of a Google Apps (old) or
20677 G-suite account. The goal is to store data on an individual's Drive
20678 account, who IS a member of the domain. We'll call the domain exam‐
20679 ple.com, and the user foo@example.com.
20680
20681 There's a few steps we need to go through to accomplish this:
20682
20683 1. Create a service account for example.com
20684 • To create a service account and obtain its credentials, go to the
20685 Google Developer Console (https://console.developers.google.com).
20686
20687 • You must have a project - create one if you don't.
20688
20689 • Then go to "IAM & admin" -> "Service Accounts".
20690
20691 • Use the "Create Credentials" button. Fill in "Service account name"
20692 with something that identifies your client. "Role" can be empty.
20693
20694 • Tick "Furnish a new private key" - select "Key type JSON".
20695
20696 • Tick "Enable G Suite Domain-wide Delegation". This option makes "im‐
20697 personation" possible, as documented here: Delegating domain-wide au‐
20698 thority to the service account (https://developers.google.com/identi‐
20699 ty/protocols/OAuth2ServiceAccount#delegatingauthority)
20700
20701 • These credentials are what rclone will use for authentication. If
20702 you ever need to remove access, press the "Delete service account
20703 key" button.
20704
20705 2. Allowing API access to example.com Google Drive
20706 • Go to example.com's admin console
20707
20708 • Go into "Security" (or use the search bar)
20709
20710 • Select "Show more" and then "Advanced settings"
20711
20712 • Select "Manage API client access" in the "Authentication" section
20713
20714 • In the "Client Name" field enter the service account's "Client ID" -
20715 this can be found in the Developer Console under "IAM & Admin" ->
20716 "Service Accounts", then "View Client ID" for the newly created ser‐
20717 vice account. It is a ~21 character numerical string.
20718
20719 • In the next field, "One or More API Scopes", enter
20720 https://www.googleapis.com/auth/drive to grant access to Google Drive
20721 specifically.
20722
20723 3. Configure rclone, assuming a new install
20724 rclone config
20725
20726 n/s/q> n # New
20727 name>gdrive # Gdrive is an example name
20728 Storage> # Select the number shown for Google Drive
20729 client_id> # Can be left blank
20730 client_secret> # Can be left blank
20731 scope> # Select your scope, 1 for example
20732 root_folder_id> # Can be left blank
20733 service_account_file> /home/foo/myJSONfile.json # This is where the JSON file goes!
20734 y/n> # Auto config, y
20735
20736 4. Verify that it's working
20737 • rclone -v --drive-impersonate foo@example.com lsf gdrive:backup
20738
20739 • The arguments do:
20740
20741 • -v - verbose logging
20742
20743 • --drive-impersonate foo@example.com - this is what does the magic,
20744 pretending to be user foo.
20745
20746 • lsf - list files in a parsing friendly way
20747
20748 • gdrive:backup - use the remote called gdrive, work in the folder
20749 named backup.
20750
20751 Note: in case you configured a specific root folder on gdrive and
20752 rclone is unable to access the contents of that folder when using
20753 --drive-impersonate, do this instead: - in the gdrive web interface,
20754 share your root folder with the user/email of the new Service Account
20755 you created/selected at step #1 - use rclone without specifying the
20756 --drive-impersonate option, like this: rclone -v foo@example.com lsf
20757 gdrive:backup
20758
20759 Shared drives (team drives)
20760 If you want to configure the remote to point to a Google Shared Drive
20761 (previously known as Team Drives) then answer y to the question Config‐
20762 ure this as a Shared Drive (Team Drive)?.
20763
20764 This will fetch the list of Shared Drives from google and allow you to
20765 configure which one you want to use. You can also type in a Shared
20766 Drive ID if you prefer.
20767
20768 For example:
20769
20770 Configure this as a Shared Drive (Team Drive)?
20771 y) Yes
20772 n) No
20773 y/n> y
20774 Fetching Shared Drive list...
20775 Choose a number from below, or type in your own value
20776 1 / Rclone Test
20777 \ "xxxxxxxxxxxxxxxxxxxx"
20778 2 / Rclone Test 2
20779 \ "yyyyyyyyyyyyyyyyyyyy"
20780 3 / Rclone Test 3
20781 \ "zzzzzzzzzzzzzzzzzzzz"
20782 Enter a Shared Drive ID> 1
20783 --------------------
20784 [remote]
20785 client_id =
20786 client_secret =
20787 token = {"AccessToken":"xxxx.x.xxxxx_xxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"1/xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxx","Expiry":"2014-03-16T13:57:58.955387075Z","Extra":null}
20788 team_drive = xxxxxxxxxxxxxxxxxxxx
20789 --------------------
20790 y) Yes this is OK
20791 e) Edit this remote
20792 d) Delete this remote
20793 y/e/d> y
20794
20795 --fast-list
20796 This remote supports --fast-list which allows you to use fewer transac‐
20797 tions in exchange for more memory. See the rclone docs
20798 (https://rclone.org/docs/#fast-list) for more details.
20799
20800 It does this by combining multiple list calls into a single API re‐
20801 quest.
20802
20803 This works by combining many '%s' in parents filters into one expres‐
20804 sion. To list the contents of directories a, b and c, the following
20805 requests will be send by the regular List function:
20806
20807 trashed=false and 'a' in parents
20808 trashed=false and 'b' in parents
20809 trashed=false and 'c' in parents
20810
20811 These can now be combined into a single request:
20812
20813 trashed=false and ('a' in parents or 'b' in parents or 'c' in parents)
20814
20815 The implementation of ListR will put up to 50 parents filters into one
20816 request. It will use the --checkers value to specify the number of re‐
20817 quests to run in parallel.
20818
20819 In tests, these batch requests were up to 20x faster than the regular
20820 method. Running the following command against different sized folders
20821 gives:
20822
20823 rclone lsjson -vv -R --checkers=6 gdrive:folder
20824
20825 small folder (220 directories, 700 files):
20826
20827 • without --fast-list: 38s
20828
20829 • with --fast-list: 10s
20830
20831 large folder (10600 directories, 39000 files):
20832
20833 • without --fast-list: 22:05 min
20834
20835 • with --fast-list: 58s
20836
20837 Modified time
20838 Google drive stores modification times accurate to 1 ms.
20839
20840 Restricted filename characters
20841 Only Invalid UTF-8 bytes will be replaced (https://rclone.org/over‐
20842 view/#invalid-utf8), as they can't be used in JSON strings.
20843
20844 In contrast to other backends, / can also be used in names and . or ..
20845 are valid names.
20846
20847 Revisions
20848 Google drive stores revisions of files. When you upload a change to an
20849 existing file to google drive using rclone it will create a new revi‐
20850 sion of that file.
20851
20852 Revisions follow the standard google policy which at time of writing
20853 was
20854
20855 • They are deleted after 30 days or 100 revisions (whatever comes
20856 first).
20857
20858 • They do not count towards a user storage quota.
20859
20860 Deleting files
20861 By default rclone will send all files to the trash when deleting files.
20862 If deleting them permanently is required then use the
20863 --drive-use-trash=false flag, or set the equivalent environment vari‐
20864 able.
20865
20866 Shortcuts
20867 In March 2020 Google introduced a new feature in Google Drive called
20868 drive shortcuts (https://support.google.com/drive/answer/9700156) (API
20869 (https://developers.google.com/drive/api/v3/shortcuts)). These will
20870 (by September 2020) replace the ability for files or folders to be in
20871 multiple folders at once (https://cloud.google.com/blog/products/g-
20872 suite/simplifying-google-drives-folder-structure-and-sharing-models).
20873
20874 Shortcuts are files that link to other files on Google Drive somewhat
20875 like a symlink in unix, except they point to the underlying file data
20876 (e.g. the inode in unix terms) so they don't break if the source is
20877 renamed or moved about.
20878
20879 Be default rclone treats these as follows.
20880
20881 For shortcuts pointing to files:
20882
20883 • When listing a file shortcut appears as the destination file.
20884
20885 • When downloading the contents of the destination file is downloaded.
20886
20887 • When updating shortcut file with a non shortcut file, the shortcut is
20888 removed then a new file is uploaded in place of the shortcut.
20889
20890 • When server-side moving (renaming) the shortcut is renamed, not the
20891 destination file.
20892
20893 • When server-side copying the shortcut is copied, not the contents of
20894 the shortcut.
20895
20896 • When deleting the shortcut is deleted not the linked file.
20897
20898 • When setting the modification time, the modification time of the
20899 linked file will be set.
20900
20901 For shortcuts pointing to folders:
20902
20903 • When listing the shortcut appears as a folder and that folder will
20904 contain the contents of the linked folder appear (including any sub
20905 folders)
20906
20907 • When downloading the contents of the linked folder and sub contents
20908 are downloaded
20909
20910 • When uploading to a shortcut folder the file will be placed in the
20911 linked folder
20912
20913 • When server-side moving (renaming) the shortcut is renamed, not the
20914 destination folder
20915
20916 • When server-side copying the contents of the linked folder is copied,
20917 not the shortcut.
20918
20919 • When deleting with rclone rmdir or rclone purge the shortcut is
20920 deleted not the linked folder.
20921
20922 • NB When deleting with rclone remove or rclone mount the contents of
20923 the linked folder will be deleted.
20924
20925 The rclone backend (https://rclone.org/commands/rclone_backend/) com‐
20926 mand can be used to create shortcuts.
20927
20928 Shortcuts can be completely ignored with the --drive-skip-shortcuts
20929 flag or the corresponding skip_shortcuts configuration setting.
20930
20931 Emptying trash
20932 If you wish to empty your trash you can use the rclone cleanup remote:
20933 command which will permanently delete all your trashed files. This
20934 command does not take any path arguments.
20935
20936 Note that Google Drive takes some time (minutes to days) to empty the
20937 trash even though the command returns within a few seconds. No output
20938 is echoed, so there will be no confirmation even using -v or -vv.
20939
20940 Quota information
20941 To view your current quota you can use the rclone about remote: command
20942 which will display your usage limit (quota), the usage in Google Drive,
20943 the size of all files in the Trash and the space used by other Google
20944 services such as Gmail. This command does not take any path arguments.
20945
20946 Import/Export of google documents
20947 Google documents can be exported from and uploaded to Google Drive.
20948
20949 When rclone downloads a Google doc it chooses a format to download de‐
20950 pending upon the --drive-export-formats setting. By default the export
20951 formats are docx,xlsx,pptx,svg which are a sensible default for an ed‐
20952 itable document.
20953
20954 When choosing a format, rclone runs down the list provided in order and
20955 chooses the first file format the doc can be exported as from the list.
20956 If the file can't be exported to a format on the formats list, then
20957 rclone will choose a format from the default list.
20958
20959 If you prefer an archive copy then you might use --drive-export-formats
20960 pdf, or if you prefer openoffice/libreoffice formats you might use
20961 --drive-export-formats ods,odt,odp.
20962
20963 Note that rclone adds the extension to the google doc, so if it is
20964 called My Spreadsheet on google docs, it will be exported as My Spread‐
20965 sheet.xlsx or My Spreadsheet.pdf etc.
20966
20967 When importing files into Google Drive, rclone will convert all files
20968 with an extension in --drive-import-formats to their associated docu‐
20969 ment type. rclone will not convert any files by default, since the
20970 conversion is lossy process.
20971
20972 The conversion must result in a file with the same extension when the
20973 --drive-export-formats rules are applied to the uploaded document.
20974
20975 Here are some examples for allowed and prohibited conversions.
20976
20977 export-for‐ import-for‐ Upload Ext Document Ext Allowed
20978 mats mats
20979 ────────────────────────────────────────────────────────────────
20980 odt odt odt odt Yes
20981 odt docx,odt odt odt Yes
20982 docx docx docx Yes
20983 odt odt docx No
20984 odt,docx docx,odt docx odt No
20985 docx,odt docx,odt docx docx Yes
20986 docx,odt docx,odt odt docx No
20987
20988 This limitation can be disabled by specifying --drive-allow-im‐
20989 port-name-change. When using this flag, rclone can convert multiple
20990 files types resulting in the same document type at once, e.g. with
20991 --drive-import-formats docx,odt,txt, all files having these extension
20992 would result in a document represented as a docx file. This brings the
20993 additional risk of overwriting a document, if multiple files have the
20994 same stem. Many rclone operations will not handle this name change in
20995 any way. They assume an equal name when copying files and might copy
20996 the file again or delete them when the name changes.
20997
20998 Here are the possible export extensions with their corresponding mime
20999 types. Most of these can also be used for importing, but there more
21000 that are not listed here. Some of these additional ones might only be
21001 available when the operating system provides the correct MIME type en‐
21002 tries.
21003
21004 This list can be changed by Google Drive at any time and might not rep‐
21005 resent the currently available conversions.
21006
21007 Extension Mime Type Description
21008 ─────────────────────────────────────────────────────────────────────────────────────
21009 csv text/csv Standard CSV format for
21010 Spreadsheets
21011 docx application/vnd.openxml‐ Microsoft Office Document
21012 formats-officedocu‐
21013 ment.wordprocess‐
21014 ingml.document
21015 epub application/epub+zip E-book format
21016 html text/html An HTML Document
21017 jpg image/jpeg A JPEG Image File
21018 json applica‐ JSON Text Format
21019 tion/vnd.google-apps.script+json
21020 odp application/vnd.oasis.opendocu‐ Openoffice Presentation
21021 ment.presentation
21022 ods application/vnd.oasis.opendocu‐ Openoffice Spreadsheet
21023 ment.spreadsheet
21024 ods application/x-vnd.oasis.opendoc‐ Openoffice Spreadsheet
21025 ument.spreadsheet
21026 odt application/vnd.oasis.opendocu‐ Openoffice Document
21027 ment.text
21028 pdf application/pdf Adobe PDF Format
21029 png image/png PNG Image Format
21030 pptx application/vnd.openxmlfor‐ Microsoft Office Power‐
21031 mats-officedocument.presenta‐ point
21032 tionml.presentation
21033 rtf application/rtf Rich Text Format
21034 svg image/svg+xml Scalable Vector Graphics
21035 Format
21036 tsv text/tab-separated-values Standard TSV format for
21037 spreadsheets
21038 txt text/plain Plain Text
21039 xlsx application/vnd.openxmlfor‐ Microsoft Office Spread‐
21040 mats-officedocument.spread‐ sheet
21041 sheetml.sheet
21042 zip application/zip A ZIP file of HTML, Images
21043 CSS
21044
21045 Google documents can also be exported as link files. These files will
21046 open a browser window for the Google Docs website of that document when
21047 opened. The link file extension has to be specified as a --drive-ex‐
21048 port-formats parameter. They will match all available Google Docu‐
21049 ments.
21050
21051 Extension Description OS Support
21052 ─────────────────────────────────────────────────
21053 desktop freedesktop.org Linux
21054 specified desktop
21055 entry
21056 link.html An HTML Document All
21057 with a redirect
21058 url INI style link file macOS, Windows
21059 webloc macOS specific XML macOS
21060 format
21061
21062 Standard Options
21063 Here are the standard options specific to drive (Google Drive).
21064
21065 --drive-client-id
21066 Google Application Client Id Setting your own is recommended. See
21067 https://rclone.org/drive/#making-your-own-client-id for how to create
21068 your own. If you leave this blank, it will use an internal key which
21069 is low performance.
21070
21071 • Config: client_id
21072
21073 • Env Var: RCLONE_DRIVE_CLIENT_ID
21074
21075 • Type: string
21076
21077 • Default: ""
21078
21079 --drive-client-secret
21080 OAuth Client Secret Leave blank normally.
21081
21082 • Config: client_secret
21083
21084 • Env Var: RCLONE_DRIVE_CLIENT_SECRET
21085
21086 • Type: string
21087
21088 • Default: ""
21089
21090 --drive-scope
21091 Scope that rclone should use when requesting access from drive.
21092
21093 • Config: scope
21094
21095 • Env Var: RCLONE_DRIVE_SCOPE
21096
21097 • Type: string
21098
21099 • Default: ""
21100
21101 • Examples:
21102
21103 • "drive"
21104
21105 • Full access all files, excluding Application Data Folder.
21106
21107 • "drive.readonly"
21108
21109 • Read-only access to file metadata and file contents.
21110
21111 • "drive.file"
21112
21113 • Access to files created by rclone only.
21114
21115 • These are visible in the drive website.
21116
21117 • File authorization is revoked when the user deauthorizes the app.
21118
21119 • "drive.appfolder"
21120
21121 • Allows read and write access to the Application Data folder.
21122
21123 • This is not visible in the drive website.
21124
21125 • "drive.metadata.readonly"
21126
21127 • Allows read-only access to file metadata but
21128
21129 • does not allow any access to read or download file content.
21130
21131 --drive-root-folder-id
21132 ID of the root folder Leave blank normally.
21133
21134 Fill in to access "Computers" folders (see docs), or for rclone to use
21135 a non root folder as its starting point.
21136
21137 • Config: root_folder_id
21138
21139 • Env Var: RCLONE_DRIVE_ROOT_FOLDER_ID
21140
21141 • Type: string
21142
21143 • Default: ""
21144
21145 --drive-service-account-file
21146 Service Account Credentials JSON file path Leave blank normally. Need‐
21147 ed only if you want use SA instead of interactive login.
21148
21149 Leading ~ will be expanded in the file name as will environment vari‐
21150 ables such as ${RCLONE_CONFIG_DIR}.
21151
21152 • Config: service_account_file
21153
21154 • Env Var: RCLONE_DRIVE_SERVICE_ACCOUNT_FILE
21155
21156 • Type: string
21157
21158 • Default: ""
21159
21160 --drive-alternate-export
21161 Deprecated: no longer needed
21162
21163 • Config: alternate_export
21164
21165 • Env Var: RCLONE_DRIVE_ALTERNATE_EXPORT
21166
21167 • Type: bool
21168
21169 • Default: false
21170
21171 Advanced Options
21172 Here are the advanced options specific to drive (Google Drive).
21173
21174 --drive-token
21175 OAuth Access Token as a JSON blob.
21176
21177 • Config: token
21178
21179 • Env Var: RCLONE_DRIVE_TOKEN
21180
21181 • Type: string
21182
21183 • Default: ""
21184
21185 --drive-auth-url
21186 Auth server URL. Leave blank to use the provider defaults.
21187
21188 • Config: auth_url
21189
21190 • Env Var: RCLONE_DRIVE_AUTH_URL
21191
21192 • Type: string
21193
21194 • Default: ""
21195
21196 --drive-token-url
21197 Token server url. Leave blank to use the provider defaults.
21198
21199 • Config: token_url
21200
21201 • Env Var: RCLONE_DRIVE_TOKEN_URL
21202
21203 • Type: string
21204
21205 • Default: ""
21206
21207 --drive-service-account-credentials
21208 Service Account Credentials JSON blob Leave blank normally. Needed on‐
21209 ly if you want use SA instead of interactive login.
21210
21211 • Config: service_account_credentials
21212
21213 • Env Var: RCLONE_DRIVE_SERVICE_ACCOUNT_CREDENTIALS
21214
21215 • Type: string
21216
21217 • Default: ""
21218
21219 --drive-team-drive
21220 ID of the Shared Drive (Team Drive)
21221
21222 • Config: team_drive
21223
21224 • Env Var: RCLONE_DRIVE_TEAM_DRIVE
21225
21226 • Type: string
21227
21228 • Default: ""
21229
21230 --drive-auth-owner-only
21231 Only consider files owned by the authenticated user.
21232
21233 • Config: auth_owner_only
21234
21235 • Env Var: RCLONE_DRIVE_AUTH_OWNER_ONLY
21236
21237 • Type: bool
21238
21239 • Default: false
21240
21241 --drive-use-trash
21242 Send files to the trash instead of deleting permanently. Defaults to
21243 true, namely sending files to the trash. Use --drive-use-trash=false
21244 to delete files permanently instead.
21245
21246 • Config: use_trash
21247
21248 • Env Var: RCLONE_DRIVE_USE_TRASH
21249
21250 • Type: bool
21251
21252 • Default: true
21253
21254 --drive-skip-gdocs
21255 Skip google documents in all listings. If given, gdocs practically be‐
21256 come invisible to rclone.
21257
21258 • Config: skip_gdocs
21259
21260 • Env Var: RCLONE_DRIVE_SKIP_GDOCS
21261
21262 • Type: bool
21263
21264 • Default: false
21265
21266 --drive-skip-checksum-gphotos
21267 Skip MD5 checksum on Google photos and videos only.
21268
21269 Use this if you get checksum errors when transferring Google photos or
21270 videos.
21271
21272 Setting this flag will cause Google photos and videos to return a blank
21273 MD5 checksum.
21274
21275 Google photos are identified by being in the "photos" space.
21276
21277 Corrupted checksums are caused by Google modifying the image/video but
21278 not updating the checksum.
21279
21280 • Config: skip_checksum_gphotos
21281
21282 • Env Var: RCLONE_DRIVE_SKIP_CHECKSUM_GPHOTOS
21283
21284 • Type: bool
21285
21286 • Default: false
21287
21288 --drive-shared-with-me
21289 Only show files that are shared with me.
21290
21291 Instructs rclone to operate on your "Shared with me" folder (where
21292 Google Drive lets you access the files and folders others have shared
21293 with you).
21294
21295 This works both with the "list" (lsd, lsl, etc.) and the "copy" com‐
21296 mands (copy, sync, etc.), and with all other commands too.
21297
21298 • Config: shared_with_me
21299
21300 • Env Var: RCLONE_DRIVE_SHARED_WITH_ME
21301
21302 • Type: bool
21303
21304 • Default: false
21305
21306 --drive-trashed-only
21307 Only show files that are in the trash. This will show trashed files in
21308 their original directory structure.
21309
21310 • Config: trashed_only
21311
21312 • Env Var: RCLONE_DRIVE_TRASHED_ONLY
21313
21314 • Type: bool
21315
21316 • Default: false
21317
21318 --drive-starred-only
21319 Only show files that are starred.
21320
21321 • Config: starred_only
21322
21323 • Env Var: RCLONE_DRIVE_STARRED_ONLY
21324
21325 • Type: bool
21326
21327 • Default: false
21328
21329 --drive-formats
21330 Deprecated: see export_formats
21331
21332 • Config: formats
21333
21334 • Env Var: RCLONE_DRIVE_FORMATS
21335
21336 • Type: string
21337
21338 • Default: ""
21339
21340 --drive-export-formats
21341 Comma separated list of preferred formats for downloading Google docs.
21342
21343 • Config: export_formats
21344
21345 • Env Var: RCLONE_DRIVE_EXPORT_FORMATS
21346
21347 • Type: string
21348
21349 • Default: "docx,xlsx,pptx,svg"
21350
21351 --drive-import-formats
21352 Comma separated list of preferred formats for uploading Google docs.
21353
21354 • Config: import_formats
21355
21356 • Env Var: RCLONE_DRIVE_IMPORT_FORMATS
21357
21358 • Type: string
21359
21360 • Default: ""
21361
21362 --drive-allow-import-name-change
21363 Allow the filetype to change when uploading Google docs (e.g. file.doc
21364 to file.docx). This will confuse sync and reupload every time.
21365
21366 • Config: allow_import_name_change
21367
21368 • Env Var: RCLONE_DRIVE_ALLOW_IMPORT_NAME_CHANGE
21369
21370 • Type: bool
21371
21372 • Default: false
21373
21374 --drive-use-created-date
21375 Use file created date instead of modified date.,
21376
21377 Useful when downloading data and you want the creation date used in
21378 place of the last modified date.
21379
21380 WARNING: This flag may have some unexpected consequences.
21381
21382 When uploading to your drive all files will be overwritten unless they
21383 haven't been modified since their creation. And the inverse will occur
21384 while downloading. This side effect can be avoided by using the
21385 "--checksum" flag.
21386
21387 This feature was implemented to retain photos capture date as recorded
21388 by google photos. You will first need to check the "Create a Google
21389 Photos folder" option in your google drive settings. You can then copy
21390 or move the photos locally and use the date the image was taken (creat‐
21391 ed) set as the modification date.
21392
21393 • Config: use_created_date
21394
21395 • Env Var: RCLONE_DRIVE_USE_CREATED_DATE
21396
21397 • Type: bool
21398
21399 • Default: false
21400
21401 --drive-use-shared-date
21402 Use date file was shared instead of modified date.
21403
21404 Note that, as with "--drive-use-created-date", this flag may have unex‐
21405 pected consequences when uploading/downloading files.
21406
21407 If both this flag and "--drive-use-created-date" are set, the created
21408 date is used.
21409
21410 • Config: use_shared_date
21411
21412 • Env Var: RCLONE_DRIVE_USE_SHARED_DATE
21413
21414 • Type: bool
21415
21416 • Default: false
21417
21418 --drive-list-chunk
21419 Size of listing chunk 100-1000. 0 to disable.
21420
21421 • Config: list_chunk
21422
21423 • Env Var: RCLONE_DRIVE_LIST_CHUNK
21424
21425 • Type: int
21426
21427 • Default: 1000
21428
21429 --drive-impersonate
21430 Impersonate this user when using a service account.
21431
21432 • Config: impersonate
21433
21434 • Env Var: RCLONE_DRIVE_IMPERSONATE
21435
21436 • Type: string
21437
21438 • Default: ""
21439
21440 --drive-upload-cutoff
21441 Cutoff for switching to chunked upload
21442
21443 • Config: upload_cutoff
21444
21445 • Env Var: RCLONE_DRIVE_UPLOAD_CUTOFF
21446
21447 • Type: SizeSuffix
21448
21449 • Default: 8M
21450
21451 --drive-chunk-size
21452 Upload chunk size. Must a power of 2 >= 256k.
21453
21454 Making this larger will improve performance, but note that each chunk
21455 is buffered in memory one per transfer.
21456
21457 Reducing this will reduce memory usage but decrease performance.
21458
21459 • Config: chunk_size
21460
21461 • Env Var: RCLONE_DRIVE_CHUNK_SIZE
21462
21463 • Type: SizeSuffix
21464
21465 • Default: 8M
21466
21467 --drive-acknowledge-abuse
21468 Set to allow files which return cannotDownloadAbusiveFile to be down‐
21469 loaded.
21470
21471 If downloading a file returns the error "This file has been identified
21472 as malware or spam and cannot be downloaded" with the error code "can‐
21473 notDownloadAbusiveFile" then supply this flag to rclone to indicate you
21474 acknowledge the risks of downloading the file and rclone will download
21475 it anyway.
21476
21477 • Config: acknowledge_abuse
21478
21479 • Env Var: RCLONE_DRIVE_ACKNOWLEDGE_ABUSE
21480
21481 • Type: bool
21482
21483 • Default: false
21484
21485 --drive-keep-revision-forever
21486 Keep new head revision of each file forever.
21487
21488 • Config: keep_revision_forever
21489
21490 • Env Var: RCLONE_DRIVE_KEEP_REVISION_FOREVER
21491
21492 • Type: bool
21493
21494 • Default: false
21495
21496 --drive-size-as-quota
21497 Show sizes as storage quota usage, not actual size.
21498
21499 Show the size of a file as the storage quota used. This is the current
21500 version plus any older versions that have been set to keep forever.
21501
21502 WARNING: This flag may have some unexpected consequences.
21503
21504 It is not recommended to set this flag in your config - the recommended
21505 usage is using the flag form --drive-size-as-quota when doing rclone
21506 ls/lsl/lsf/lsjson/etc only.
21507
21508 If you do use this flag for syncing (not recommended) then you will
21509 need to use --ignore size also.
21510
21511 • Config: size_as_quota
21512
21513 • Env Var: RCLONE_DRIVE_SIZE_AS_QUOTA
21514
21515 • Type: bool
21516
21517 • Default: false
21518
21519 --drive-v2-download-min-size
21520 If Object's are greater, use drive v2 API to download.
21521
21522 • Config: v2_download_min_size
21523
21524 • Env Var: RCLONE_DRIVE_V2_DOWNLOAD_MIN_SIZE
21525
21526 • Type: SizeSuffix
21527
21528 • Default: off
21529
21530 --drive-pacer-min-sleep
21531 Minimum time to sleep between API calls.
21532
21533 • Config: pacer_min_sleep
21534
21535 • Env Var: RCLONE_DRIVE_PACER_MIN_SLEEP
21536
21537 • Type: Duration
21538
21539 • Default: 100ms
21540
21541 --drive-pacer-burst
21542 Number of API calls to allow without sleeping.
21543
21544 • Config: pacer_burst
21545
21546 • Env Var: RCLONE_DRIVE_PACER_BURST
21547
21548 • Type: int
21549
21550 • Default: 100
21551
21552 --drive-server-side-across-configs
21553 Allow server-side operations (e.g. copy) to work across different
21554 drive configs.
21555
21556 This can be useful if you wish to do a server-side copy between two
21557 different Google drives. Note that this isn't enabled by default be‐
21558 cause it isn't easy to tell if it will work between any two configura‐
21559 tions.
21560
21561 • Config: server_side_across_configs
21562
21563 • Env Var: RCLONE_DRIVE_SERVER_SIDE_ACROSS_CONFIGS
21564
21565 • Type: bool
21566
21567 • Default: false
21568
21569 --drive-disable-http2
21570 Disable drive using http2
21571
21572 There is currently an unsolved issue with the google drive backend and
21573 HTTP/2. HTTP/2 is therefore disabled by default for the drive backend
21574 but can be re-enabled here. When the issue is solved this flag will be
21575 removed.
21576
21577 See: https://github.com/rclone/rclone/issues/3631
21578
21579 • Config: disable_http2
21580
21581 • Env Var: RCLONE_DRIVE_DISABLE_HTTP2
21582
21583 • Type: bool
21584
21585 • Default: true
21586
21587 --drive-stop-on-upload-limit
21588 Make upload limit errors be fatal
21589
21590 At the time of writing it is only possible to upload 750GB of data to
21591 Google Drive a day (this is an undocumented limit). When this limit is
21592 reached Google Drive produces a slightly different error message. When
21593 this flag is set it causes these errors to be fatal. These will stop
21594 the in-progress sync.
21595
21596 Note that this detection is relying on error message strings which
21597 Google don't document so it may break in the future.
21598
21599 See: https://github.com/rclone/rclone/issues/3857
21600
21601 • Config: stop_on_upload_limit
21602
21603 • Env Var: RCLONE_DRIVE_STOP_ON_UPLOAD_LIMIT
21604
21605 • Type: bool
21606
21607 • Default: false
21608
21609 --drive-stop-on-download-limit
21610 Make download limit errors be fatal
21611
21612 At the time of writing it is only possible to download 10TB of data
21613 from Google Drive a day (this is an undocumented limit). When this
21614 limit is reached Google Drive produces a slightly different error mes‐
21615 sage. When this flag is set it causes these errors to be fatal. These
21616 will stop the in-progress sync.
21617
21618 Note that this detection is relying on error message strings which
21619 Google don't document so it may break in the future.
21620
21621 • Config: stop_on_download_limit
21622
21623 • Env Var: RCLONE_DRIVE_STOP_ON_DOWNLOAD_LIMIT
21624
21625 • Type: bool
21626
21627 • Default: false
21628
21629 --drive-skip-shortcuts
21630 If set skip shortcut files
21631
21632 Normally rclone dereferences shortcut files making them appear as if
21633 they are the original file (see the shortcuts section). If this flag
21634 is set then rclone will ignore shortcut files completely.
21635
21636 • Config: skip_shortcuts
21637
21638 • Env Var: RCLONE_DRIVE_SKIP_SHORTCUTS
21639
21640 • Type: bool
21641
21642 • Default: false
21643
21644 --drive-encoding
21645 This sets the encoding for the backend.
21646
21647 See: the encoding section in the overview (https://rclone.org/over‐
21648 view/#encoding) for more info.
21649
21650 • Config: encoding
21651
21652 • Env Var: RCLONE_DRIVE_ENCODING
21653
21654 • Type: MultiEncoder
21655
21656 • Default: InvalidUtf8
21657
21658 Backend commands
21659 Here are the commands specific to the drive backend.
21660
21661 Run them with
21662
21663 rclone backend COMMAND remote:
21664
21665 The help below will explain what arguments each command takes.
21666
21667 See the "rclone backend" command (https://rclone.org/com‐
21668 mands/rclone_backend/) for more info on how to pass options and argu‐
21669 ments.
21670
21671 These can be run on a running backend using the rc command backend/com‐
21672 mand (https://rclone.org/rc/#backend/command).
21673
21674 get
21675 Get command for fetching the drive config parameters
21676
21677 rclone backend get remote: [options] [<arguments>+]
21678
21679 This is a get command which will be used to fetch the various drive
21680 config parameters
21681
21682 Usage Examples:
21683
21684 rclone backend get drive: [-o service_account_file] [-o chunk_size]
21685 rclone rc backend/command command=get fs=drive: [-o service_account_file] [-o chunk_size]
21686
21687 Options:
21688
21689 • "chunk_size": show the current upload chunk size
21690
21691 • "service_account_file": show the current service account file
21692
21693 set
21694 Set command for updating the drive config parameters
21695
21696 rclone backend set remote: [options] [<arguments>+]
21697
21698 This is a set command which will be used to update the various drive
21699 config parameters
21700
21701 Usage Examples:
21702
21703 rclone backend set drive: [-o service_account_file=sa.json] [-o chunk_size=67108864]
21704 rclone rc backend/command command=set fs=drive: [-o service_account_file=sa.json] [-o chunk_size=67108864]
21705
21706 Options:
21707
21708 • "chunk_size": update the current upload chunk size
21709
21710 • "service_account_file": update the current service account file
21711
21712 shortcut
21713 Create shortcuts from files or directories
21714
21715 rclone backend shortcut remote: [options] [<arguments>+]
21716
21717 This command creates shortcuts from files or directories.
21718
21719 Usage:
21720
21721 rclone backend shortcut drive: source_item destination_shortcut
21722 rclone backend shortcut drive: source_item -o target=drive2: destination_shortcut
21723
21724 In the first example this creates a shortcut from the "source_item"
21725 which can be a file or a directory to the "destination_shortcut". The
21726 "source_item" and the "destination_shortcut" should be relative paths
21727 from "drive:"
21728
21729 In the second example this creates a shortcut from the "source_item"
21730 relative to "drive:" to the "destination_shortcut" relative to
21731 "drive2:". This may fail with a permission error if the user authenti‐
21732 cated with "drive2:" can't read files from "drive:".
21733
21734 Options:
21735
21736 • "target": optional target remote for the shortcut destination
21737
21738 drives
21739 List the Shared Drives available to this account
21740
21741 rclone backend drives remote: [options] [<arguments>+]
21742
21743 This command lists the Shared Drives (Team Drives) available to this
21744 account.
21745
21746 Usage:
21747
21748 rclone backend drives drive:
21749
21750 This will return a JSON list of objects like this
21751
21752 [
21753 {
21754 "id": "0ABCDEF-01234567890",
21755 "kind": "drive#teamDrive",
21756 "name": "My Drive"
21757 },
21758 {
21759 "id": "0ABCDEFabcdefghijkl",
21760 "kind": "drive#teamDrive",
21761 "name": "Test Drive"
21762 }
21763 ]
21764
21765 untrash
21766 Untrash files and directories
21767
21768 rclone backend untrash remote: [options] [<arguments>+]
21769
21770 This command untrashes all the files and directories in the directory
21771 passed in recursively.
21772
21773 Usage:
21774
21775 This takes an optional directory to trash which make this easier to use
21776 via the API.
21777
21778 rclone backend untrash drive:directory
21779 rclone backend -i untrash drive:directory subdir
21780
21781 Use the -i flag to see what would be restored before restoring it.
21782
21783 Result:
21784
21785 {
21786 "Untrashed": 17,
21787 "Errors": 0
21788 }
21789
21790 copyid
21791 Copy files by ID
21792
21793 rclone backend copyid remote: [options] [<arguments>+]
21794
21795 This command copies files by ID
21796
21797 Usage:
21798
21799 rclone backend copyid drive: ID path
21800 rclone backend copyid drive: ID1 path1 ID2 path2
21801
21802 It copies the drive file with ID given to the path (an rclone path
21803 which will be passed internally to rclone copyto). The ID and path
21804 pairs can be repeated.
21805
21806 The path should end with a / to indicate copy the file as named to this
21807 directory. If it doesn't end with a / then the last path component
21808 will be used as the file name.
21809
21810 If the destination is a drive backend then server-side copying will be
21811 attempted if possible.
21812
21813 Use the -i flag to see what would be copied before copying.
21814
21815 Limitations
21816 Drive has quite a lot of rate limiting. This causes rclone to be lim‐
21817 ited to transferring about 2 files per second only. Individual files
21818 may be transferred much faster at 100s of MBytes/s but lots of small
21819 files can take a long time.
21820
21821 Server side copies are also subject to a separate rate limit. If you
21822 see User rate limit exceeded errors, wait at least 24 hours and retry.
21823 You can disable server-side copies with --disable copy to download and
21824 upload the files if you prefer.
21825
21826 Limitations of Google Docs
21827 Google docs will appear as size -1 in rclone ls and as size 0 in any‐
21828 thing which uses the VFS layer, e.g. rclone mount, rclone serve.
21829
21830 This is because rclone can't find out the size of the Google docs with‐
21831 out downloading them.
21832
21833 Google docs will transfer correctly with rclone sync, rclone copy etc
21834 as rclone knows to ignore the size when doing the transfer.
21835
21836 However an unfortunate consequence of this is that you may not be able
21837 to download Google docs using rclone mount. If it doesn't work you
21838 will get a 0 sized file. If you try again the doc may gain its correct
21839 size and be downloadable. Whether it will work on not depends on the
21840 application accessing the mount and the OS you are running - experiment
21841 to find out if it does work for you!
21842
21843 Duplicated files
21844 Sometimes, for no reason I've been able to track down, drive will du‐
21845 plicate a file that rclone uploads. Drive unlike all the other remotes
21846 can have duplicated files.
21847
21848 Duplicated files cause problems with the syncing and you will see mes‐
21849 sages in the log about duplicates.
21850
21851 Use rclone dedupe to fix duplicated files.
21852
21853 Note that this isn't just a problem with rclone, even Google Photos on
21854 Android duplicates files on drive sometimes.
21855
21856 Rclone appears to be re-copying files it shouldn't
21857 The most likely cause of this is the duplicated file issue above - run
21858 rclone dedupe and check your logs for duplicate object or directory
21859 messages.
21860
21861 This can also be caused by a delay/caching on google drive's end when
21862 comparing directory listings. Specifically with team drives used in
21863 combination with --fast-list. Files that were uploaded recently may
21864 not appear on the directory list sent to rclone when using --fast-list.
21865
21866 Waiting a moderate period of time between attempts (estimated to be ap‐
21867 proximately 1 hour) and/or not using --fast-list both seem to be effec‐
21868 tive in preventing the problem.
21869
21870 Making your own client_id
21871 When you use rclone with Google drive in its default configuration you
21872 are using rclone's client_id. This is shared between all the rclone
21873 users. There is a global rate limit on the number of queries per sec‐
21874 ond that each client_id can do set by Google. rclone already has a
21875 high quota and I will continue to make sure it is high enough by con‐
21876 tacting Google.
21877
21878 It is strongly recommended to use your own client ID as the default
21879 rclone ID is heavily used. If you have multiple services running, it
21880 is recommended to use an API key for each service. The default Google
21881 quota is 10 transactions per second so it is recommended to stay under
21882 that number as if you use more than that, it will cause rclone to rate
21883 limit and make things slower.
21884
21885 Here is how to create your own Google Drive client ID for rclone:
21886
21887 1. Log into the Google API Console (https://console.develop‐
21888 ers.google.com/) with your Google account. It doesn't matter what
21889 Google account you use. (It need not be the same account as the
21890 Google Drive you want to access)
21891
21892 2. Select a project or create a new project.
21893
21894 3. Under "ENABLE APIS AND SERVICES" search for "Drive", and enable the
21895 "Google Drive API".
21896
21897 4. Click "Credentials" in the left-side panel (not "Create creden‐
21898 tials", which opens the wizard), then "Create credentials"
21899
21900 5. If you already configured an "Oauth Consent Screen", then skip to
21901 the next step; if not, click on "CONFIGURE CONSENT SCREEN" button
21902 (near the top right corner of the right panel), then select "Exter‐
21903 nal" and click on "CREATE"; on the next screen, enter an "Applica‐
21904 tion name" ("rclone" is OK) then click on "Save" (all other data is
21905 optional). Click again on "Credentials" on the left panel to go
21906 back to the "Credentials" screen.
21907
21908 (PS: if you are a GSuite user, you could also select "Internal" instead
21909 of "External" above, but this has not been tested/documented so far).
21910
21911 6. Click on the "+ CREATE CREDENTIALS" button at the top of the screen,
21912 then select "OAuth client ID".
21913
21914 7. Choose an application type of "Desktop app" if you using a Google
21915 account or "Other" if you using a GSuite account and click "Create".
21916 (the default name is fine)
21917
21918 8. It will show you a client ID and client secret. Use these values in
21919 rclone config to add a new remote or edit an existing remote.
21920
21921 Be aware that, due to the "enhanced security" recently introduced by
21922 Google, you are theoretically expected to "submit your app for verifi‐
21923 cation" and then wait a few weeks(!) for their response; in practice,
21924 you can go right ahead and use the client ID and client secret with
21925 rclone, the only issue will be a very scary confirmation screen shown
21926 when you connect via your browser for rclone to be able to get its to‐
21927 ken-id (but as this only happens during the remote configuration, it's
21928 not such a big deal).
21929
21930 (Thanks to @balazer on github for these instructions.)
21931
21932 Sometimes, creation of an OAuth consent in Google API Console fails due
21933 to an error message “The request failed because changes to one of the
21934 field of the resource is not supported”. As a convenient workaround,
21935 the necessary Google Drive API key can be created on the Python Quick‐
21936 start (https://developers.google.com/drive/api/v3/quickstart/python)
21937 page. Just push the Enable the Drive API button to receive the Client
21938 ID and Secret. Note that it will automatically create a new project in
21939 the API Console.
21940
21941 Google Photos
21942 The rclone backend for Google Photos (https://www.google.com/pho‐
21943 tos/about/) is a specialized backend for transferring photos and videos
21944 to and from Google Photos.
21945
21946 NB The Google Photos API which rclone uses has quite a few limitations,
21947 so please read the limitations section carefully to make sure it is
21948 suitable for your use.
21949
21950 Configuring Google Photos
21951 The initial setup for google cloud storage involves getting a token
21952 from Google Photos which you need to do in your browser. rclone config
21953 walks you through it.
21954
21955 Here is an example of how to make a remote called remote. First run:
21956
21957 rclone config
21958
21959 This will guide you through an interactive setup process:
21960
21961 No remotes found - make a new one
21962 n) New remote
21963 s) Set configuration password
21964 q) Quit config
21965 n/s/q> n
21966 name> remote
21967 Type of storage to configure.
21968 Enter a string value. Press Enter for the default ("").
21969 Choose a number from below, or type in your own value
21970 [snip]
21971 XX / Google Photos
21972 \ "google photos"
21973 [snip]
21974 Storage> google photos
21975 ** See help for google photos backend at: https://rclone.org/googlephotos/ **
21976
21977 Google Application Client Id
21978 Leave blank normally.
21979 Enter a string value. Press Enter for the default ("").
21980 client_id>
21981 Google Application Client Secret
21982 Leave blank normally.
21983 Enter a string value. Press Enter for the default ("").
21984 client_secret>
21985 Set to make the Google Photos backend read only.
21986
21987 If you choose read only then rclone will only request read only access
21988 to your photos, otherwise rclone will request full access.
21989 Enter a boolean value (true or false). Press Enter for the default ("false").
21990 read_only>
21991 Edit advanced config? (y/n)
21992 y) Yes
21993 n) No
21994 y/n> n
21995 Remote config
21996 Use auto config?
21997 * Say Y if not sure
21998 * Say N if you are working on a remote or headless machine
21999 y) Yes
22000 n) No
22001 y/n> y
22002 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
22003 Log in and authorize rclone for access
22004 Waiting for code...
22005 Got code
22006
22007 *** IMPORTANT: All media items uploaded to Google Photos with rclone
22008 *** are stored in full resolution at original quality. These uploads
22009 *** will count towards storage in your Google Account.
22010
22011 --------------------
22012 [remote]
22013 type = google photos
22014 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2019-06-28T17:38:04.644930156+01:00"}
22015 --------------------
22016 y) Yes this is OK
22017 e) Edit this remote
22018 d) Delete this remote
22019 y/e/d> y
22020
22021 Note that rclone runs a webserver on your local machine to collect the
22022 token as returned from Google if you use auto config mode. This only
22023 runs from the moment it opens your browser to the moment you get back
22024 the verification code. This is on http://127.0.0.1:53682/ and this may
22025 require you to unblock it temporarily if you are running a host fire‐
22026 wall, or use manual mode.
22027
22028 This remote is called remote and can now be used like this
22029
22030 See all the albums in your photos
22031
22032 rclone lsd remote:album
22033
22034 Make a new album
22035
22036 rclone mkdir remote:album/newAlbum
22037
22038 List the contents of an album
22039
22040 rclone ls remote:album/newAlbum
22041
22042 Sync /home/local/images to the Google Photos, removing any excess files
22043 in the album.
22044
22045 rclone sync -i /home/local/image remote:album/newAlbum
22046
22047 Layout
22048 As Google Photos is not a general purpose cloud storage system the
22049 backend is laid out to help you navigate it.
22050
22051 The directories under media show different ways of categorizing the me‐
22052 dia. Each file will appear multiple times. So if you want to make a
22053 backup of your google photos you might choose to backup remote:me‐
22054 dia/by-month. (NB remote:media/by-day is rather slow at the moment so
22055 avoid for syncing.)
22056
22057 Note that all your photos and videos will appear somewhere under media,
22058 but they may not appear under album unless you've put them into albums.
22059
22060 /
22061 - upload
22062 - file1.jpg
22063 - file2.jpg
22064 - ...
22065 - media
22066 - all
22067 - file1.jpg
22068 - file2.jpg
22069 - ...
22070 - by-year
22071 - 2000
22072 - file1.jpg
22073 - ...
22074 - 2001
22075 - file2.jpg
22076 - ...
22077 - ...
22078 - by-month
22079 - 2000
22080 - 2000-01
22081 - file1.jpg
22082 - ...
22083 - 2000-02
22084 - file2.jpg
22085 - ...
22086 - ...
22087 - by-day
22088 - 2000
22089 - 2000-01-01
22090 - file1.jpg
22091 - ...
22092 - 2000-01-02
22093 - file2.jpg
22094 - ...
22095 - ...
22096 - album
22097 - album name
22098 - album name/sub
22099 - shared-album
22100 - album name
22101 - album name/sub
22102 - feature
22103 - favorites
22104 - file1.jpg
22105 - file2.jpg
22106
22107 There are two writable parts of the tree, the upload directory and sub
22108 directories of the album directory.
22109
22110 The upload directory is for uploading files you don't want to put into
22111 albums. This will be empty to start with and will contain the files
22112 you've uploaded for one rclone session only, becoming empty again when
22113 you restart rclone. The use case for this would be if you have a load
22114 of files you just want to once off dump into Google Photos. For re‐
22115 peated syncing, uploading to album will work better.
22116
22117 Directories within the album directory are also writeable and you may
22118 create new directories (albums) under album. If you copy files with a
22119 directory hierarchy in there then rclone will create albums with the /
22120 character in them. For example if you do
22121
22122 rclone copy /path/to/images remote:album/images
22123
22124 and the images directory contains
22125
22126 images
22127 - file1.jpg
22128 dir
22129 file2.jpg
22130 dir2
22131 dir3
22132 file3.jpg
22133
22134 Then rclone will create the following albums with the following files
22135 in
22136
22137 • images
22138
22139 • file1.jpg
22140
22141 • images/dir
22142
22143 • file2.jpg
22144
22145 • images/dir2/dir3
22146
22147 • file3.jpg
22148
22149 This means that you can use the album path pretty much like a normal
22150 filesystem and it is a good target for repeated syncing.
22151
22152 The shared-album directory shows albums shared with you or by you.
22153 This is similar to the Sharing tab in the Google Photos web interface.
22154
22155 Limitations
22156 Only images and videos can be uploaded. If you attempt to upload non
22157 videos or images or formats that Google Photos doesn't understand,
22158 rclone will upload the file, then Google Photos will give an error when
22159 it is put turned into a media item.
22160
22161 Note that all media items uploaded to Google Photos through the API are
22162 stored in full resolution at "original quality" and will count towards
22163 your storage quota in your Google Account. The API does not offer a
22164 way to upload in "high quality" mode..
22165
22166 rclone about is not supported by the Google Photos backend. Backends
22167 without this capability cannot determine free space for an rclone mount
22168 or use policy mfs (most free space) as a member of an rclone union re‐
22169 mote.
22170
22171 See List of backends that do not support rclone about
22172 (https://rclone.org/overview/#optional-features) See rclone about
22173 (https://rclone.org/commands/rclone_about/)
22174
22175 Downloading Images
22176 When Images are downloaded this strips EXIF location (according to the
22177 docs and my tests). This is a limitation of the Google Photos API and
22178 is covered by bug #112096115 (https://issuetracker.google.com/is‐
22179 sues/112096115).
22180
22181 The current google API does not allow photos to be downloaded at origi‐
22182 nal resolution. This is very important if you are, for example, relying
22183 on "Google Photos" as a backup of your photos. You will not be able to
22184 use rclone to redownload original images. You could use 'google take‐
22185 out' to recover the original photos as a last resort
22186
22187 Downloading Videos
22188 When videos are downloaded they are downloaded in a really compressed
22189 version of the video compared to downloading it via the Google Photos
22190 web interface. This is covered by bug #113672044 (https://issuetrack‐
22191 er.google.com/issues/113672044).
22192
22193 Duplicates
22194 If a file name is duplicated in a directory then rclone will add the
22195 file ID into its name. So two files called file.jpg would then appear
22196 as file {123456}.jpg and file {ABCDEF}.jpg (the actual IDs are a lot
22197 longer alas!).
22198
22199 If you upload the same image (with the same binary data) twice then
22200 Google Photos will deduplicate it. However it will retain the filename
22201 from the first upload which may confuse rclone. For example if you up‐
22202 loaded an image to upload then uploaded the same image to album/my_al‐
22203 bum the filename of the image in album/my_album will be what it was up‐
22204 loaded with initially, not what you uploaded it with to album. In
22205 practise this shouldn't cause too many problems.
22206
22207 Modified time
22208 The date shown of media in Google Photos is the creation date as deter‐
22209 mined by the EXIF information, or the upload date if that is not known.
22210
22211 This is not changeable by rclone and is not the modification date of
22212 the media on local disk. This means that rclone cannot use the dates
22213 from Google Photos for syncing purposes.
22214
22215 Size
22216 The Google Photos API does not return the size of media. This means
22217 that when syncing to Google Photos, rclone can only do a file existence
22218 check.
22219
22220 It is possible to read the size of the media, but this needs an extra
22221 HTTP HEAD request per media item so is very slow and uses up a lot of
22222 transactions. This can be enabled with the --gphotos-read-size option
22223 or the read_size = true config parameter.
22224
22225 If you want to use the backend with rclone mount you may need to enable
22226 this flag (depending on your OS and application using the photos) oth‐
22227 erwise you may not be able to read media off the mount. You'll need to
22228 experiment to see if it works for you without the flag.
22229
22230 Albums
22231 Rclone can only upload files to albums it created. This is a limita‐
22232 tion of the Google Photos API (https://developers.google.com/photos/li‐
22233 brary/guides/manage-albums).
22234
22235 Rclone can remove files it uploaded from albums it created only.
22236
22237 Deleting files
22238 Rclone can remove files from albums it created, but note that the
22239 Google Photos API does not allow media to be deleted permanently so
22240 this media will still remain. See bug #109759781 (https://issuetrack‐
22241 er.google.com/issues/109759781).
22242
22243 Rclone cannot delete files anywhere except under album.
22244
22245 Deleting albums
22246 The Google Photos API does not support deleting albums - see bug
22247 #135714733 (https://issuetracker.google.com/issues/135714733).
22248
22249 Standard Options
22250 Here are the standard options specific to google photos (Google Pho‐
22251 tos).
22252
22253 --gphotos-client-id
22254 OAuth Client Id Leave blank normally.
22255
22256 • Config: client_id
22257
22258 • Env Var: RCLONE_GPHOTOS_CLIENT_ID
22259
22260 • Type: string
22261
22262 • Default: ""
22263
22264 --gphotos-client-secret
22265 OAuth Client Secret Leave blank normally.
22266
22267 • Config: client_secret
22268
22269 • Env Var: RCLONE_GPHOTOS_CLIENT_SECRET
22270
22271 • Type: string
22272
22273 • Default: ""
22274
22275 --gphotos-read-only
22276 Set to make the Google Photos backend read only.
22277
22278 If you choose read only then rclone will only request read only access
22279 to your photos, otherwise rclone will request full access.
22280
22281 • Config: read_only
22282
22283 • Env Var: RCLONE_GPHOTOS_READ_ONLY
22284
22285 • Type: bool
22286
22287 • Default: false
22288
22289 Advanced Options
22290 Here are the advanced options specific to google photos (Google Pho‐
22291 tos).
22292
22293 --gphotos-token
22294 OAuth Access Token as a JSON blob.
22295
22296 • Config: token
22297
22298 • Env Var: RCLONE_GPHOTOS_TOKEN
22299
22300 • Type: string
22301
22302 • Default: ""
22303
22304 --gphotos-auth-url
22305 Auth server URL. Leave blank to use the provider defaults.
22306
22307 • Config: auth_url
22308
22309 • Env Var: RCLONE_GPHOTOS_AUTH_URL
22310
22311 • Type: string
22312
22313 • Default: ""
22314
22315 --gphotos-token-url
22316 Token server url. Leave blank to use the provider defaults.
22317
22318 • Config: token_url
22319
22320 • Env Var: RCLONE_GPHOTOS_TOKEN_URL
22321
22322 • Type: string
22323
22324 • Default: ""
22325
22326 --gphotos-read-size
22327 Set to read the size of media items.
22328
22329 Normally rclone does not read the size of media items since this takes
22330 another transaction. This isn't necessary for syncing. However rclone
22331 mount needs to know the size of files in advance of reading them, so
22332 setting this flag when using rclone mount is recommended if you want to
22333 read the media.
22334
22335 • Config: read_size
22336
22337 • Env Var: RCLONE_GPHOTOS_READ_SIZE
22338
22339 • Type: bool
22340
22341 • Default: false
22342
22343 --gphotos-start-year
22344 Year limits the photos to be downloaded to those which are uploaded af‐
22345 ter the given year
22346
22347 • Config: start_year
22348
22349 • Env Var: RCLONE_GPHOTOS_START_YEAR
22350
22351 • Type: int
22352
22353 • Default: 2000
22354
22355 --gphotos-include-archived
22356 Also view and download archived media.
22357
22358 By default rclone does not request archived media. Thus, when syncing,
22359 archived media is not visible in directory listings or transferred.
22360
22361 Note that media in albums is always visible and synced, no matter their
22362 archive status.
22363
22364 With this flag, archived media are always visible in directory listings
22365 and transferred.
22366
22367 Without this flag, archived media will not be visible in directory
22368 listings and won't be transferred.
22369
22370 • Config: include_archived
22371
22372 • Env Var: RCLONE_GPHOTOS_INCLUDE_ARCHIVED
22373
22374 • Type: bool
22375
22376 • Default: false
22377
22378 HDFS
22379 HDFS (https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-
22380 hdfs/HdfsDesign.html) is a distributed file-system, part of the Apache
22381 Hadoop (https://hadoop.apache.org/) framework.
22382
22383 Paths are specified as remote: or remote:path/to/dir.
22384
22385 Here is an example of how to make a remote called remote. First run:
22386
22387 rclone config
22388
22389 This will guide you through an interactive setup process:
22390
22391 No remotes found - make a new one
22392 n) New remote
22393 s) Set configuration password
22394 q) Quit config
22395 n/s/q> n
22396 name> remote
22397 Type of storage to configure.
22398 Enter a string value. Press Enter for the default ("").
22399 Choose a number from below, or type in your own value
22400 [skip]
22401 XX / Hadoop distributed file system
22402 \ "hdfs"
22403 [skip]
22404 Storage> hdfs
22405 ** See help for hdfs backend at: https://rclone.org/hdfs/ **
22406
22407 hadoop name node and port
22408 Enter a string value. Press Enter for the default ("").
22409 Choose a number from below, or type in your own value
22410 1 / Connect to host namenode at port 8020
22411 \ "namenode:8020"
22412 namenode> namenode.hadoop:8020
22413 hadoop user name
22414 Enter a string value. Press Enter for the default ("").
22415 Choose a number from below, or type in your own value
22416 1 / Connect to hdfs as root
22417 \ "root"
22418 username> root
22419 Edit advanced config? (y/n)
22420 y) Yes
22421 n) No (default)
22422 y/n> n
22423 Remote config
22424 --------------------
22425 [remote]
22426 type = hdfs
22427 namenode = namenode.hadoop:8020
22428 username = root
22429 --------------------
22430 y) Yes this is OK (default)
22431 e) Edit this remote
22432 d) Delete this remote
22433 y/e/d> y
22434 Current remotes:
22435
22436 Name Type
22437 ==== ====
22438 hadoop hdfs
22439
22440 e) Edit existing remote
22441 n) New remote
22442 d) Delete remote
22443 r) Rename remote
22444 c) Copy remote
22445 s) Set configuration password
22446 q) Quit config
22447 e/n/d/r/c/s/q> q
22448
22449 This remote is called remote and can now be used like this
22450
22451 See all the top level directories
22452
22453 rclone lsd remote:
22454
22455 List the contents of a directory
22456
22457 rclone ls remote:directory
22458
22459 Sync the remote directory to /home/local/directory, deleting any excess
22460 files.
22461
22462 rclone sync -i remote:directory /home/local/directory
22463
22464 Setting up your own HDFS instance for testing
22465 You may start with a manual setup (https://hadoop.apache.org/docs/sta‐
22466 ble/hadoop-project-dist/hadoop-common/SingleCluster.html) or use the
22467 docker image from the tests:
22468
22469 If you want to build the docker image
22470
22471 git clone https://github.com/rclone/rclone.git
22472 cd rclone/fstest/testserver/images/test-hdfs
22473 docker build --rm -t rclone/test-hdfs .
22474
22475 Or you can just use the latest one pushed
22476
22477 docker run --rm --name "rclone-hdfs" -p 127.0.0.1:9866:9866 -p 127.0.0.1:8020:8020 --hostname "rclone-hdfs" rclone/test-hdfs
22478
22479 NB it need few seconds to startup.
22480
22481 For this docker image the remote needs to be configured like this:
22482
22483 [remote]
22484 type = hdfs
22485 namenode = 127.0.0.1:8020
22486 username = root
22487
22488 You can stop this image with docker kill rclone-hdfs (NB it does not
22489 use volumes, so all data uploaded will be lost.)
22490
22491 Modified time
22492 Time accurate to 1 second is stored.
22493
22494 Checksum
22495 No checksums are implemented.
22496
22497 Usage information
22498 You can use the rclone about remote: command which will display
22499 filesystem size and current usage.
22500
22501 Restricted filename characters
22502 In addition to the default restricted characters set
22503 (https://rclone.org/overview/#restricted-characters) the following
22504 characters are also replaced:
22505
22506 Character Value Replacement
22507 ────────────────────────────────
22508 : 0x3A :
22509
22510 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
22511 view/#invalid-utf8).
22512
22513 Limitations
22514 • No server-side Move or DirMove.
22515
22516 • Checksums not implemented.
22517
22518 Standard Options
22519 Here are the standard options specific to hdfs (Hadoop distributed file
22520 system).
22521
22522 --hdfs-namenode
22523 hadoop name node and port
22524
22525 • Config: namenode
22526
22527 • Env Var: RCLONE_HDFS_NAMENODE
22528
22529 • Type: string
22530
22531 • Default: ""
22532
22533 • Examples:
22534
22535 • "namenode:8020"
22536
22537 • Connect to host namenode at port 8020
22538
22539 --hdfs-username
22540 hadoop user name
22541
22542 • Config: username
22543
22544 • Env Var: RCLONE_HDFS_USERNAME
22545
22546 • Type: string
22547
22548 • Default: ""
22549
22550 • Examples:
22551
22552 • "root"
22553
22554 • Connect to hdfs as root
22555
22556 Advanced Options
22557 Here are the advanced options specific to hdfs (Hadoop distributed file
22558 system).
22559
22560 --hdfs-service-principal-name
22561 Kerberos service principal name for the namenode
22562
22563 Enables KERBEROS authentication. Specifies the Service Principal Name
22564 (/) for the namenode.
22565
22566 • Config: service_principal_name
22567
22568 • Env Var: RCLONE_HDFS_SERVICE_PRINCIPAL_NAME
22569
22570 • Type: string
22571
22572 • Default: ""
22573
22574 • Examples:
22575
22576 • "hdfs/namenode.hadoop.docker"
22577
22578 • Namenode running as service 'hdfs' with FQDN 'namen‐
22579 ode.hadoop.docker'.
22580
22581 --hdfs-data-transfer-protection
22582 Kerberos data transfer protection: authentication|integrity|privacy
22583
22584 Specifies whether or not authentication, data signature integrity
22585 checks, and wire encryption is required when communicating the the
22586 datanodes. Possible values are 'authentication', 'integrity' and 'pri‐
22587 vacy'. Used only with KERBEROS enabled.
22588
22589 • Config: data_transfer_protection
22590
22591 • Env Var: RCLONE_HDFS_DATA_TRANSFER_PROTECTION
22592
22593 • Type: string
22594
22595 • Default: ""
22596
22597 • Examples:
22598
22599 • "privacy"
22600
22601 • Ensure authentication, integrity and encryption enabled.
22602
22603 --hdfs-encoding
22604 This sets the encoding for the backend.
22605
22606 See: the encoding section in the overview (https://rclone.org/over‐
22607 view/#encoding) for more info.
22608
22609 • Config: encoding
22610
22611 • Env Var: RCLONE_HDFS_ENCODING
22612
22613 • Type: MultiEncoder
22614
22615 • Default: Slash,Colon,Del,Ctl,InvalidUtf8,Dot
22616
22617 HTTP
22618 The HTTP remote is a read only remote for reading files of a webserver.
22619 The webserver should provide file listings which rclone will read and
22620 turn into a remote. This has been tested with common webservers such
22621 as Apache/Nginx/Caddy and will likely work with file listings from most
22622 web servers. (If it doesn't then please file an issue, or send a pull
22623 request!)
22624
22625 Paths are specified as remote: or remote:path/to/dir.
22626
22627 Here is an example of how to make a remote called remote. First run:
22628
22629 rclone config
22630
22631 This will guide you through an interactive setup process:
22632
22633 No remotes found - make a new one
22634 n) New remote
22635 s) Set configuration password
22636 q) Quit config
22637 n/s/q> n
22638 name> remote
22639 Type of storage to configure.
22640 Choose a number from below, or type in your own value
22641 [snip]
22642 XX / http Connection
22643 \ "http"
22644 [snip]
22645 Storage> http
22646 URL of http host to connect to
22647 Choose a number from below, or type in your own value
22648 1 / Connect to example.com
22649 \ "https://example.com"
22650 url> https://beta.rclone.org
22651 Remote config
22652 --------------------
22653 [remote]
22654 url = https://beta.rclone.org
22655 --------------------
22656 y) Yes this is OK
22657 e) Edit this remote
22658 d) Delete this remote
22659 y/e/d> y
22660 Current remotes:
22661
22662 Name Type
22663 ==== ====
22664 remote http
22665
22666 e) Edit existing remote
22667 n) New remote
22668 d) Delete remote
22669 r) Rename remote
22670 c) Copy remote
22671 s) Set configuration password
22672 q) Quit config
22673 e/n/d/r/c/s/q> q
22674
22675 This remote is called remote and can now be used like this
22676
22677 See all the top level directories
22678
22679 rclone lsd remote:
22680
22681 List the contents of a directory
22682
22683 rclone ls remote:directory
22684
22685 Sync the remote directory to /home/local/directory, deleting any excess
22686 files.
22687
22688 rclone sync -i remote:directory /home/local/directory
22689
22690 Read only
22691 This remote is read only - you can't upload files to an HTTP server.
22692
22693 Modified time
22694 Most HTTP servers store time accurate to 1 second.
22695
22696 Checksum
22697 No checksums are stored.
22698
22699 Usage without a config file
22700 Since the http remote only has one config parameter it is easy to use
22701 without a config file:
22702
22703 rclone lsd --http-url https://beta.rclone.org :http:
22704
22705 Standard Options
22706 Here are the standard options specific to http (http Connection).
22707
22708 --http-url
22709 URL of http host to connect to
22710
22711 • Config: url
22712
22713 • Env Var: RCLONE_HTTP_URL
22714
22715 • Type: string
22716
22717 • Default: ""
22718
22719 • Examples:
22720
22721 • "https://example.com"
22722
22723 • Connect to example.com
22724
22725 • "https://user:pass@example.com"
22726
22727 • Connect to example.com using a username and password
22728
22729 Advanced Options
22730 Here are the advanced options specific to http (http Connection).
22731
22732 --http-headers
22733 Set HTTP headers for all transactions
22734
22735 Use this to set additional HTTP headers for all transactions
22736
22737 The input format is comma separated list of key,value pairs. Standard
22738 CSV encoding (https://godoc.org/encoding/csv) may be used.
22739
22740 For example to set a Cookie use 'Cookie,name=value', or '"Cook‐
22741 ie","name=value"'.
22742
22743 You can set multiple headers, e.g. '"Cookie","name=value","Authoriza‐
22744 tion","xxx"'.
22745
22746 • Config: headers
22747
22748 • Env Var: RCLONE_HTTP_HEADERS
22749
22750 • Type: CommaSepList
22751
22752 • Default:
22753
22754 --http-no-slash
22755 Set this if the site doesn't end directories with /
22756
22757 Use this if your target website does not use / on the end of directo‐
22758 ries.
22759
22760 A / on the end of a path is how rclone normally tells the difference
22761 between files and directories. If this flag is set, then rclone will
22762 treat all files with Content-Type: text/html as directories and read
22763 URLs from them rather than downloading them.
22764
22765 Note that this may cause rclone to confuse genuine HTML files with di‐
22766 rectories.
22767
22768 • Config: no_slash
22769
22770 • Env Var: RCLONE_HTTP_NO_SLASH
22771
22772 • Type: bool
22773
22774 • Default: false
22775
22776 --http-no-head
22777 Don't use HEAD requests to find file sizes in dir listing
22778
22779 If your site is being very slow to load then you can try this option.
22780 Normally rclone does a HEAD request for each potential file in a direc‐
22781 tory listing to:
22782
22783 • find its size
22784
22785 • check it really exists
22786
22787 • check to see if it is a directory
22788
22789 If you set this option, rclone will not do the HEAD request. This will
22790 mean
22791
22792 • directory listings are much quicker
22793
22794 • rclone won't have the times or sizes of any files
22795
22796 • some files that don't exist may be in the listing
22797
22798 • Config: no_head
22799
22800 • Env Var: RCLONE_HTTP_NO_HEAD
22801
22802 • Type: bool
22803
22804 • Default: false
22805
22806 Limitations
22807 rclone about is not supported by the HTTP backend. Backends without
22808 this capability cannot determine free space for an rclone mount or use
22809 policy mfs (most free space) as a member of an rclone union remote.
22810
22811 See List of backends that do not support rclone about
22812 (https://rclone.org/overview/#optional-features) See rclone about
22813 (https://rclone.org/commands/rclone_about/)
22814
22815 Hubic
22816 Paths are specified as remote:path
22817
22818 Paths are specified as remote:container (or remote: for the lsd com‐
22819 mand.) You may put subdirectories in too, e.g. remote:contain‐
22820 er/path/to/dir.
22821
22822 The initial setup for Hubic involves getting a token from Hubic which
22823 you need to do in your browser. rclone config walks you through it.
22824
22825 Here is an example of how to make a remote called remote. First run:
22826
22827 rclone config
22828
22829 This will guide you through an interactive setup process:
22830
22831 n) New remote
22832 s) Set configuration password
22833 n/s> n
22834 name> remote
22835 Type of storage to configure.
22836 Choose a number from below, or type in your own value
22837 [snip]
22838 XX / Hubic
22839 \ "hubic"
22840 [snip]
22841 Storage> hubic
22842 Hubic Client Id - leave blank normally.
22843 client_id>
22844 Hubic Client Secret - leave blank normally.
22845 client_secret>
22846 Remote config
22847 Use auto config?
22848 * Say Y if not sure
22849 * Say N if you are working on a remote or headless machine
22850 y) Yes
22851 n) No
22852 y/n> y
22853 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
22854 Log in and authorize rclone for access
22855 Waiting for code...
22856 Got code
22857 --------------------
22858 [remote]
22859 client_id =
22860 client_secret =
22861 token = {"access_token":"XXXXXX"}
22862 --------------------
22863 y) Yes this is OK
22864 e) Edit this remote
22865 d) Delete this remote
22866 y/e/d> y
22867
22868 See the remote setup docs (https://rclone.org/remote_setup/) for how to
22869 set it up on a machine with no Internet browser available.
22870
22871 Note that rclone runs a webserver on your local machine to collect the
22872 token as returned from Hubic. This only runs from the moment it opens
22873 your browser to the moment you get back the verification code. This is
22874 on http://127.0.0.1:53682/ and this it may require you to unblock it
22875 temporarily if you are running a host firewall.
22876
22877 Once configured you can then use rclone like this,
22878
22879 List containers in the top level of your Hubic
22880
22881 rclone lsd remote:
22882
22883 List all the files in your Hubic
22884
22885 rclone ls remote:
22886
22887 To copy a local directory to an Hubic directory called backup
22888
22889 rclone copy /home/source remote:backup
22890
22891 If you want the directory to be visible in the official Hubic browser,
22892 you need to copy your files to the default directory
22893
22894 rclone copy /home/source remote:default/backup
22895
22896 --fast-list
22897 This remote supports --fast-list which allows you to use fewer transac‐
22898 tions in exchange for more memory. See the rclone docs
22899 (https://rclone.org/docs/#fast-list) for more details.
22900
22901 Modified time
22902 The modified time is stored as metadata on the object as X-Ob‐
22903 ject-Meta-Mtime as floating point since the epoch accurate to 1 ns.
22904
22905 This is a de facto standard (used in the official python-swiftclient
22906 amongst others) for storing the modification time for an object.
22907
22908 Note that Hubic wraps the Swift backend, so most of the properties of
22909 are the same.
22910
22911 Standard Options
22912 Here are the standard options specific to hubic (Hubic).
22913
22914 --hubic-client-id
22915 OAuth Client Id Leave blank normally.
22916
22917 • Config: client_id
22918
22919 • Env Var: RCLONE_HUBIC_CLIENT_ID
22920
22921 • Type: string
22922
22923 • Default: ""
22924
22925 --hubic-client-secret
22926 OAuth Client Secret Leave blank normally.
22927
22928 • Config: client_secret
22929
22930 • Env Var: RCLONE_HUBIC_CLIENT_SECRET
22931
22932 • Type: string
22933
22934 • Default: ""
22935
22936 Advanced Options
22937 Here are the advanced options specific to hubic (Hubic).
22938
22939 --hubic-token
22940 OAuth Access Token as a JSON blob.
22941
22942 • Config: token
22943
22944 • Env Var: RCLONE_HUBIC_TOKEN
22945
22946 • Type: string
22947
22948 • Default: ""
22949
22950 --hubic-auth-url
22951 Auth server URL. Leave blank to use the provider defaults.
22952
22953 • Config: auth_url
22954
22955 • Env Var: RCLONE_HUBIC_AUTH_URL
22956
22957 • Type: string
22958
22959 • Default: ""
22960
22961 --hubic-token-url
22962 Token server url. Leave blank to use the provider defaults.
22963
22964 • Config: token_url
22965
22966 • Env Var: RCLONE_HUBIC_TOKEN_URL
22967
22968 • Type: string
22969
22970 • Default: ""
22971
22972 --hubic-chunk-size
22973 Above this size files will be chunked into a _segments container.
22974
22975 Above this size files will be chunked into a _segments container. The
22976 default for this is 5GB which is its maximum value.
22977
22978 • Config: chunk_size
22979
22980 • Env Var: RCLONE_HUBIC_CHUNK_SIZE
22981
22982 • Type: SizeSuffix
22983
22984 • Default: 5G
22985
22986 --hubic-no-chunk
22987 Don't chunk files during streaming upload.
22988
22989 When doing streaming uploads (e.g. using rcat or mount) setting this
22990 flag will cause the swift backend to not upload chunked files.
22991
22992 This will limit the maximum upload size to 5GB. However non chunked
22993 files are easier to deal with and have an MD5SUM.
22994
22995 Rclone will still chunk files bigger than chunk_size when doing normal
22996 copy operations.
22997
22998 • Config: no_chunk
22999
23000 • Env Var: RCLONE_HUBIC_NO_CHUNK
23001
23002 • Type: bool
23003
23004 • Default: false
23005
23006 --hubic-encoding
23007 This sets the encoding for the backend.
23008
23009 See: the encoding section in the overview (https://rclone.org/over‐
23010 view/#encoding) for more info.
23011
23012 • Config: encoding
23013
23014 • Env Var: RCLONE_HUBIC_ENCODING
23015
23016 • Type: MultiEncoder
23017
23018 • Default: Slash,InvalidUtf8
23019
23020 Limitations
23021 This uses the normal OpenStack Swift mechanism to refresh the Swift API
23022 credentials and ignores the expires field returned by the Hubic API.
23023
23024 The Swift API doesn't return a correct MD5SUM for segmented files (Dy‐
23025 namic or Static Large Objects) so rclone won't check or use the MD5SUM
23026 for these.
23027
23028 Jottacloud
23029 Jottacloud is a cloud storage service provider from a Norwegian compa‐
23030 ny, using its own datacenters in Norway.
23031
23032 In addition to the official service at jottacloud.com (https://www.jot‐
23033 tacloud.com/), there are also several whitelabel versions which should
23034 work with this backend.
23035
23036 Paths are specified as remote:path
23037
23038 Paths may be as deep as required, e.g. remote:directory/subdirectory.
23039
23040 Setup
23041 Default Setup
23042 To configure Jottacloud you will need to generate a personal security
23043 token in the Jottacloud web interface. You will the option to do in
23044 your account security settings (https://www.jottacloud.com/web/secure)
23045 (for whitelabel version you need to find this page in its web inter‐
23046 face). Note that the web interface may refer to this token as a Jotta‐
23047 Cli token.
23048
23049 Legacy Setup
23050 If you are using one of the whitelabel versions (Elgiganten, Com Hem
23051 Cloud) you may not have the option to generate a CLI token. In this
23052 case you'll have to use the legacy authentication. To to this select
23053 yes when the setup asks for legacy authentication and enter your user‐
23054 name and password. The rest of the setup is identical to the default
23055 setup.
23056
23057 Telia Cloud Setup
23058 Similar to other whitelabel versions Telia Cloud doesn't offer the op‐
23059 tion of creating a CLI token, and additionally uses a separate authen‐
23060 tication flow where the username is generated internally. To setup
23061 rclone to use Telia Cloud, choose Telia Cloud authentication in the
23062 setup. The rest of the setup is identical to the default setup.
23063
23064 Example
23065 Here is an example of how to make a remote called remote with the de‐
23066 fault setup. First run:
23067
23068 rclone config
23069
23070 This will guide you through an interactive setup process:
23071
23072 No remotes found - make a new one
23073 n) New remote
23074 s) Set configuration password
23075 q) Quit config
23076 n/s/q> n
23077 name> remote
23078 Type of storage to configure.
23079 Enter a string value. Press Enter for the default ("").
23080 Choose a number from below, or type in your own value
23081 [snip]
23082 XX / Jottacloud
23083 \ "jottacloud"
23084 [snip]
23085 Storage> jottacloud
23086 ** See help for jottacloud backend at: https://rclone.org/jottacloud/ **
23087
23088 Edit advanced config? (y/n)
23089 y) Yes
23090 n) No
23091 y/n> n
23092 Remote config
23093 Use legacy authentication?.
23094 This is only required for certain whitelabel versions of Jottacloud and not recommended for normal users.
23095 y) Yes
23096 n) No (default)
23097 y/n> n
23098
23099 Generate a personal login token here: https://www.jottacloud.com/web/secure
23100 Login Token> <your token here>
23101
23102 Do you want to use a non standard device/mountpoint e.g. for accessing files uploaded using the official Jottacloud client?
23103
23104 y) Yes
23105 n) No
23106 y/n> y
23107 Please select the device to use. Normally this will be Jotta
23108 Choose a number from below, or type in an existing value
23109 1 > DESKTOP-3H31129
23110 2 > Jotta
23111 Devices> 2
23112 Please select the mountpoint to user. Normally this will be Archive
23113 Choose a number from below, or type in an existing value
23114 1 > Archive
23115 2 > Links
23116 3 > Sync
23117
23118 Mountpoints> 1
23119 --------------------
23120 [jotta]
23121 type = jottacloud
23122 token = {........}
23123 device = Jotta
23124 mountpoint = Archive
23125 configVersion = 1
23126 --------------------
23127 y) Yes this is OK
23128 e) Edit this remote
23129 d) Delete this remote
23130 y/e/d> y
23131
23132 Once configured you can then use rclone like this,
23133
23134 List directories in top level of your Jottacloud
23135
23136 rclone lsd remote:
23137
23138 List all the files in your Jottacloud
23139
23140 rclone ls remote:
23141
23142 To copy a local directory to an Jottacloud directory called backup
23143
23144 rclone copy /home/source remote:backup
23145
23146 Devices and Mountpoints
23147 The official Jottacloud client registers a device for each computer you
23148 install it on, and then creates a mountpoint for each folder you select
23149 for Backup. The web interface uses a special device called Jotta for
23150 the Archive and Sync mountpoints. In most cases you'll want to use the
23151 Jotta/Archive device/mountpoint, however if you want to access files
23152 uploaded by any of the official clients rclone provides the option to
23153 select other devices and mountpoints during config.
23154
23155 The built-in Jotta device may also contain several other mountpoints,
23156 such as: Latest, Links, Shared and Trash. These are special mount‐
23157 points with a different internal representation than the "regular"
23158 mountpoints. Rclone will only to a very limited degree support them.
23159 Generally you should avoid these, unless you know what you are doing.
23160
23161 --fast-list
23162 This remote supports --fast-list which allows you to use fewer transac‐
23163 tions in exchange for more memory. See the rclone docs
23164 (https://rclone.org/docs/#fast-list) for more details.
23165
23166 Note that the implementation in Jottacloud always uses only a single
23167 API request to get the entire list, so for large folders this could
23168 lead to long wait time before the first results are shown.
23169
23170 Modified time and hashes
23171 Jottacloud allows modification times to be set on objects accurate to 1
23172 second. These will be used to detect whether objects need syncing or
23173 not.
23174
23175 Jottacloud supports MD5 type hashes, so you can use the --checksum
23176 flag.
23177
23178 Note that Jottacloud requires the MD5 hash before upload so if the
23179 source does not have an MD5 checksum then the file will be cached tem‐
23180 porarily on disk (wherever the TMPDIR environment variable points to)
23181 before it is uploaded. Small files will be cached in memory - see the
23182 --jottacloud-md5-memory-limit flag. When uploading from local disk the
23183 source checksum is always available, so this does not apply. Starting
23184 with rclone version 1.52 the same is true for crypted remotes (in older
23185 versions the crypt backend would not calculate hashes for uploads from
23186 local disk, so the Jottacloud backend had to do it as described above).
23187
23188 Restricted filename characters
23189 In addition to the default restricted characters set
23190 (https://rclone.org/overview/#restricted-characters) the following
23191 characters are also replaced:
23192
23193 Character Value Replacement
23194 ────────────────────────────────
23195 " 0x22 "
23196 * 0x2A *
23197 : 0x3A :
23198 < 0x3C <
23199 > 0x3E >
23200 ? 0x3F ?
23201 | 0x7C |
23202
23203 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
23204 view/#invalid-utf8), as they can't be used in XML strings.
23205
23206 Deleting files
23207 By default rclone will send all files to the trash when deleting files.
23208 They will be permanently deleted automatically after 30 days. You may
23209 bypass the trash and permanently delete files immediately by using the
23210 --jottacloud-hard-delete flag, or set the equivalent environment vari‐
23211 able. Emptying the trash is supported by the cleanup
23212 (https://rclone.org/commands/rclone_cleanup/) command.
23213
23214 Versions
23215 Jottacloud supports file versioning. When rclone uploads a new version
23216 of a file it creates a new version of it. Currently rclone only sup‐
23217 ports retrieving the current version but older versions can be accessed
23218 via the Jottacloud Website.
23219
23220 Quota information
23221 To view your current quota you can use the rclone about remote: command
23222 which will display your usage limit (unless it is unlimited) and the
23223 current usage.
23224
23225 Advanced Options
23226 Here are the advanced options specific to jottacloud (Jottacloud).
23227
23228 --jottacloud-md5-memory-limit
23229 Files bigger than this will be cached on disk to calculate the MD5 if
23230 required.
23231
23232 • Config: md5_memory_limit
23233
23234 • Env Var: RCLONE_JOTTACLOUD_MD5_MEMORY_LIMIT
23235
23236 • Type: SizeSuffix
23237
23238 • Default: 10M
23239
23240 --jottacloud-trashed-only
23241 Only show files that are in the trash. This will show trashed files in
23242 their original directory structure.
23243
23244 • Config: trashed_only
23245
23246 • Env Var: RCLONE_JOTTACLOUD_TRASHED_ONLY
23247
23248 • Type: bool
23249
23250 • Default: false
23251
23252 --jottacloud-hard-delete
23253 Delete files permanently rather than putting them into the trash.
23254
23255 • Config: hard_delete
23256
23257 • Env Var: RCLONE_JOTTACLOUD_HARD_DELETE
23258
23259 • Type: bool
23260
23261 • Default: false
23262
23263 --jottacloud-upload-resume-limit
23264 Files bigger than this can be resumed if the upload fail's.
23265
23266 • Config: upload_resume_limit
23267
23268 • Env Var: RCLONE_JOTTACLOUD_UPLOAD_RESUME_LIMIT
23269
23270 • Type: SizeSuffix
23271
23272 • Default: 10M
23273
23274 --jottacloud-encoding
23275 This sets the encoding for the backend.
23276
23277 See: the encoding section in the overview (https://rclone.org/over‐
23278 view/#encoding) for more info.
23279
23280 • Config: encoding
23281
23282 • Env Var: RCLONE_JOTTACLOUD_ENCODING
23283
23284 • Type: MultiEncoder
23285
23286 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Aster‐
23287 isk,Pipe,Del,Ctl,InvalidUtf8,Dot
23288
23289 Limitations
23290 Note that Jottacloud is case insensitive so you can't have a file
23291 called "Hello.doc" and one called "hello.doc".
23292
23293 There are quite a few characters that can't be in Jottacloud file
23294 names. Rclone will map these names to and from an identical looking
23295 unicode equivalent. For example if a file has a ? in it will be
23296 mapped to ? instead.
23297
23298 Jottacloud only supports filenames up to 255 characters in length.
23299
23300 Troubleshooting
23301 Jottacloud exhibits some inconsistent behaviours regarding deleted
23302 files and folders which may cause Copy, Move and DirMove operations to
23303 previously deleted paths to fail. Emptying the trash should help in
23304 such cases.
23305
23306 Koofr
23307 Paths are specified as remote:path
23308
23309 Paths may be as deep as required, e.g. remote:directory/subdirectory.
23310
23311 The initial setup for Koofr involves creating an application password
23312 for rclone. You can do that by opening the Koofr web application
23313 (https://app.koofr.net/app/admin/preferences/password), giving the
23314 password a nice name like rclone and clicking on generate.
23315
23316 Here is an example of how to make a remote called koofr. First run:
23317
23318 rclone config
23319
23320 This will guide you through an interactive setup process:
23321
23322 No remotes found - make a new one
23323 n) New remote
23324 s) Set configuration password
23325 q) Quit config
23326 n/s/q> n
23327 name> koofr
23328 Type of storage to configure.
23329 Enter a string value. Press Enter for the default ("").
23330 Choose a number from below, or type in your own value
23331 [snip]
23332 XX / Koofr
23333 \ "koofr"
23334 [snip]
23335 Storage> koofr
23336 ** See help for koofr backend at: https://rclone.org/koofr/ **
23337
23338 Your Koofr user name
23339 Enter a string value. Press Enter for the default ("").
23340 user> USER@NAME
23341 Your Koofr password for rclone (generate one at https://app.koofr.net/app/admin/preferences/password)
23342 y) Yes type in my own password
23343 g) Generate random password
23344 y/g> y
23345 Enter the password:
23346 password:
23347 Confirm the password:
23348 password:
23349 Edit advanced config? (y/n)
23350 y) Yes
23351 n) No
23352 y/n> n
23353 Remote config
23354 --------------------
23355 [koofr]
23356 type = koofr
23357 baseurl = https://app.koofr.net
23358 user = USER@NAME
23359 password = *** ENCRYPTED ***
23360 --------------------
23361 y) Yes this is OK
23362 e) Edit this remote
23363 d) Delete this remote
23364 y/e/d> y
23365
23366 You can choose to edit advanced config in order to enter your own ser‐
23367 vice URL if you use an on-premise or white label Koofr instance, or
23368 choose an alternative mount instead of your primary storage.
23369
23370 Once configured you can then use rclone like this,
23371
23372 List directories in top level of your Koofr
23373
23374 rclone lsd koofr:
23375
23376 List all the files in your Koofr
23377
23378 rclone ls koofr:
23379
23380 To copy a local directory to an Koofr directory called backup
23381
23382 rclone copy /home/source remote:backup
23383
23384 Restricted filename characters
23385 In addition to the default restricted characters set
23386 (https://rclone.org/overview/#restricted-characters) the following
23387 characters are also replaced:
23388
23389 Character Value Replacement
23390 ────────────────────────────────
23391 \ 0x5C \
23392
23393 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
23394 view/#invalid-utf8), as they can't be used in XML strings.
23395
23396 Standard Options
23397 Here are the standard options specific to koofr (Koofr).
23398
23399 --koofr-user
23400 Your Koofr user name
23401
23402 • Config: user
23403
23404 • Env Var: RCLONE_KOOFR_USER
23405
23406 • Type: string
23407
23408 • Default: ""
23409
23410 --koofr-password
23411 Your Koofr password for rclone (generate one at
23412 https://app.koofr.net/app/admin/preferences/password)
23413
23414 NB Input to this must be obscured - see rclone obscure
23415 (https://rclone.org/commands/rclone_obscure/).
23416
23417 • Config: password
23418
23419 • Env Var: RCLONE_KOOFR_PASSWORD
23420
23421 • Type: string
23422
23423 • Default: ""
23424
23425 Advanced Options
23426 Here are the advanced options specific to koofr (Koofr).
23427
23428 --koofr-endpoint
23429 The Koofr API endpoint to use
23430
23431 • Config: endpoint
23432
23433 • Env Var: RCLONE_KOOFR_ENDPOINT
23434
23435 • Type: string
23436
23437 • Default: "https://app.koofr.net"
23438
23439 --koofr-mountid
23440 Mount ID of the mount to use. If omitted, the primary mount is used.
23441
23442 • Config: mountid
23443
23444 • Env Var: RCLONE_KOOFR_MOUNTID
23445
23446 • Type: string
23447
23448 • Default: ""
23449
23450 --koofr-setmtime
23451 Does the backend support setting modification time. Set this to false
23452 if you use a mount ID that points to a Dropbox or Amazon Drive backend.
23453
23454 • Config: setmtime
23455
23456 • Env Var: RCLONE_KOOFR_SETMTIME
23457
23458 • Type: bool
23459
23460 • Default: true
23461
23462 --koofr-encoding
23463 This sets the encoding for the backend.
23464
23465 See: the encoding section in the overview (https://rclone.org/over‐
23466 view/#encoding) for more info.
23467
23468 • Config: encoding
23469
23470 • Env Var: RCLONE_KOOFR_ENCODING
23471
23472 • Type: MultiEncoder
23473
23474 • Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
23475
23476 Limitations
23477 Note that Koofr is case insensitive so you can't have a file called
23478 "Hello.doc" and one called "hello.doc".
23479
23480 Mail.ru Cloud
23481 Mail.ru Cloud (https://cloud.mail.ru/) is a cloud storage provided by a
23482 Russian internet company Mail.Ru Group (https://mail.ru). The official
23483 desktop client is Disk-O: (https://disk-o.cloud/en), available on Win‐
23484 dows and Mac OS.
23485
23486 Currently it is recommended to disable 2FA on Mail.ru accounts intended
23487 for rclone until it gets eventually implemented.
23488
23489 Features highlights
23490 • Paths may be as deep as required, e.g. remote:directory/subdirectory
23491
23492 • Files have a last modified time property, directories don't
23493
23494 • Deleted files are by default moved to the trash
23495
23496 • Files and directories can be shared via public links
23497
23498 • Partial uploads or streaming are not supported, file size must be
23499 known before upload
23500
23501 • Maximum file size is limited to 2G for a free account, unlimited for
23502 paid accounts
23503
23504 • Storage keeps hash for all files and performs transparent deduplica‐
23505 tion, the hash algorithm is a modified SHA1
23506
23507 • If a particular file is already present in storage, one can quickly
23508 submit file hash instead of long file upload (this optimization is
23509 supported by rclone)
23510
23511 Configuration
23512 Here is an example of making a mailru configuration. First create a
23513 Mail.ru Cloud account and choose a tariff, then run
23514
23515 rclone config
23516
23517 This will guide you through an interactive setup process:
23518
23519 No remotes found - make a new one
23520 n) New remote
23521 s) Set configuration password
23522 q) Quit config
23523 n/s/q> n
23524 name> remote
23525 Type of storage to configure.
23526 Type of storage to configure.
23527 Enter a string value. Press Enter for the default ("").
23528 Choose a number from below, or type in your own value
23529 [snip]
23530 XX / Mail.ru Cloud
23531 \ "mailru"
23532 [snip]
23533 Storage> mailru
23534 User name (usually email)
23535 Enter a string value. Press Enter for the default ("").
23536 user> username@mail.ru
23537 Password
23538 y) Yes type in my own password
23539 g) Generate random password
23540 y/g> y
23541 Enter the password:
23542 password:
23543 Confirm the password:
23544 password:
23545 Skip full upload if there is another file with same data hash.
23546 This feature is called "speedup" or "put by hash". It is especially efficient
23547 in case of generally available files like popular books, video or audio clips
23548 [snip]
23549 Enter a boolean value (true or false). Press Enter for the default ("true").
23550 Choose a number from below, or type in your own value
23551 1 / Enable
23552 \ "true"
23553 2 / Disable
23554 \ "false"
23555 speedup_enable> 1
23556 Edit advanced config? (y/n)
23557 y) Yes
23558 n) No
23559 y/n> n
23560 Remote config
23561 --------------------
23562 [remote]
23563 type = mailru
23564 user = username@mail.ru
23565 pass = *** ENCRYPTED ***
23566 speedup_enable = true
23567 --------------------
23568 y) Yes this is OK
23569 e) Edit this remote
23570 d) Delete this remote
23571 y/e/d> y
23572
23573 Configuration of this backend does not require a local web browser.
23574 You can use the configured backend as shown below:
23575
23576 See top level directories
23577
23578 rclone lsd remote:
23579
23580 Make a new directory
23581
23582 rclone mkdir remote:directory
23583
23584 List the contents of a directory
23585
23586 rclone ls remote:directory
23587
23588 Sync /home/local/directory to the remote path, deleting any excess
23589 files in the path.
23590
23591 rclone sync -i /home/local/directory remote:directory
23592
23593 Modified time
23594 Files support a modification time attribute with up to 1 second preci‐
23595 sion. Directories do not have a modification time, which is shown as
23596 "Jan 1 1970".
23597
23598 Hash checksums
23599 Hash sums use a custom Mail.ru algorithm based on SHA1. If file size
23600 is less than or equal to the SHA1 block size (20 bytes), its hash is
23601 simply its data right-padded with zero bytes. Hash sum of a larger
23602 file is computed as a SHA1 sum of the file data bytes concatenated with
23603 a decimal representation of the data length.
23604
23605 Emptying Trash
23606 Removing a file or directory actually moves it to the trash, which is
23607 not visible to rclone but can be seen in a web browser. The trashed
23608 file still occupies part of total quota. If you wish to empty your
23609 trash and free some quota, you can use the rclone cleanup remote: com‐
23610 mand, which will permanently delete all your trashed files. This com‐
23611 mand does not take any path arguments.
23612
23613 Quota information
23614 To view your current quota you can use the rclone about remote: command
23615 which will display your usage limit (quota) and the current usage.
23616
23617 Restricted filename characters
23618 In addition to the default restricted characters set
23619 (https://rclone.org/overview/#restricted-characters) the following
23620 characters are also replaced:
23621
23622 Character Value Replacement
23623 ────────────────────────────────
23624 " 0x22 "
23625 * 0x2A *
23626 : 0x3A :
23627 < 0x3C <
23628 > 0x3E >
23629 ? 0x3F ?
23630 \ 0x5C \
23631 | 0x7C |
23632
23633 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
23634 view/#invalid-utf8), as they can't be used in JSON strings.
23635
23636 Limitations
23637 File size limits depend on your account. A single file size is limited
23638 by 2G for a free account and unlimited for paid tariffs. Please refer
23639 to the Mail.ru site for the total uploaded size limits.
23640
23641 Note that Mailru is case insensitive so you can't have a file called
23642 "Hello.doc" and one called "hello.doc".
23643
23644 Standard Options
23645 Here are the standard options specific to mailru (Mail.ru Cloud).
23646
23647 --mailru-user
23648 User name (usually email)
23649
23650 • Config: user
23651
23652 • Env Var: RCLONE_MAILRU_USER
23653
23654 • Type: string
23655
23656 • Default: ""
23657
23658 --mailru-pass
23659 Password
23660
23661 NB Input to this must be obscured - see rclone obscure
23662 (https://rclone.org/commands/rclone_obscure/).
23663
23664 • Config: pass
23665
23666 • Env Var: RCLONE_MAILRU_PASS
23667
23668 • Type: string
23669
23670 • Default: ""
23671
23672 --mailru-speedup-enable
23673 Skip full upload if there is another file with same data hash. This
23674 feature is called "speedup" or "put by hash". It is especially effi‐
23675 cient in case of generally available files like popular books, video or
23676 audio clips, because files are searched by hash in all accounts of all
23677 mailru users. It is meaningless and ineffective if source file is
23678 unique or encrypted. Please note that rclone may need local memory and
23679 disk space to calculate content hash in advance and decide whether full
23680 upload is required. Also, if rclone does not know file size in advance
23681 (e.g. in case of streaming or partial uploads), it will not even try
23682 this optimization.
23683
23684 • Config: speedup_enable
23685
23686 • Env Var: RCLONE_MAILRU_SPEEDUP_ENABLE
23687
23688 • Type: bool
23689
23690 • Default: true
23691
23692 • Examples:
23693
23694 • "true"
23695
23696 • Enable
23697
23698 • "false"
23699
23700 • Disable
23701
23702 Advanced Options
23703 Here are the advanced options specific to mailru (Mail.ru Cloud).
23704
23705 --mailru-speedup-file-patterns
23706 Comma separated list of file name patterns eligible for speedup (put by
23707 hash). Patterns are case insensitive and can contain '*' or '?' meta
23708 characters.
23709
23710 • Config: speedup_file_patterns
23711
23712 • Env Var: RCLONE_MAILRU_SPEEDUP_FILE_PATTERNS
23713
23714 • Type: string
23715
23716 • Default: ".mkv,.avi,.mp4,.mp3,.zip,.gz,.rar,.pdf"
23717
23718 • Examples:
23719
23720 • ""
23721
23722 • Empty list completely disables speedup (put by hash).
23723
23724 • "*"
23725
23726 • All files will be attempted for speedup.
23727
23728 • ".mkv,.avi,.mp4,.mp3"
23729
23730 • Only common audio/video files will be tried for put by hash.
23731
23732 • ".zip,.gz,.rar,.pdf"
23733
23734 • Only common archives or PDF books will be tried for speedup.
23735
23736 --mailru-speedup-max-disk
23737 This option allows you to disable speedup (put by hash) for large files
23738 (because preliminary hashing can exhaust you RAM or disk space)
23739
23740 • Config: speedup_max_disk
23741
23742 • Env Var: RCLONE_MAILRU_SPEEDUP_MAX_DISK
23743
23744 • Type: SizeSuffix
23745
23746 • Default: 3G
23747
23748 • Examples:
23749
23750 • "0"
23751
23752 • Completely disable speedup (put by hash).
23753
23754 • "1G"
23755
23756 • Files larger than 1Gb will be uploaded directly.
23757
23758 • "3G"
23759
23760 • Choose this option if you have less than 3Gb free on local disk.
23761
23762 --mailru-speedup-max-memory
23763 Files larger than the size given below will always be hashed on disk.
23764
23765 • Config: speedup_max_memory
23766
23767 • Env Var: RCLONE_MAILRU_SPEEDUP_MAX_MEMORY
23768
23769 • Type: SizeSuffix
23770
23771 • Default: 32M
23772
23773 • Examples:
23774
23775 • "0"
23776
23777 • Preliminary hashing will always be done in a temporary disk loca‐
23778 tion.
23779
23780 • "32M"
23781
23782 • Do not dedicate more than 32Mb RAM for preliminary hashing.
23783
23784 • "256M"
23785
23786 • You have at most 256Mb RAM free for hash calculations.
23787
23788 --mailru-check-hash
23789 What should copy do if file checksum is mismatched or invalid
23790
23791 • Config: check_hash
23792
23793 • Env Var: RCLONE_MAILRU_CHECK_HASH
23794
23795 • Type: bool
23796
23797 • Default: true
23798
23799 • Examples:
23800
23801 • "true"
23802
23803 • Fail with error.
23804
23805 • "false"
23806
23807 • Ignore and continue.
23808
23809 --mailru-user-agent
23810 HTTP user agent used internally by client. Defaults to "rclone/VER‐
23811 SION" or "--user-agent" provided on command line.
23812
23813 • Config: user_agent
23814
23815 • Env Var: RCLONE_MAILRU_USER_AGENT
23816
23817 • Type: string
23818
23819 • Default: ""
23820
23821 --mailru-quirks
23822 Comma separated list of internal maintenance flags. This option must
23823 not be used by an ordinary user. It is intended only to facilitate re‐
23824 mote troubleshooting of backend issues. Strict meaning of flags is not
23825 documented and not guaranteed to persist between releases. Quirks will
23826 be removed when the backend grows stable. Supported quirks: atom‐
23827 icmkdir binlist unknowndirs
23828
23829 • Config: quirks
23830
23831 • Env Var: RCLONE_MAILRU_QUIRKS
23832
23833 • Type: string
23834
23835 • Default: ""
23836
23837 --mailru-encoding
23838 This sets the encoding for the backend.
23839
23840 See: the encoding section in the overview (https://rclone.org/over‐
23841 view/#encoding) for more info.
23842
23843 • Config: encoding
23844
23845 • Env Var: RCLONE_MAILRU_ENCODING
23846
23847 • Type: MultiEncoder
23848
23849 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
23850 Slash,Del,Ctl,InvalidUtf8,Dot
23851
23852 Mega
23853 Mega (https://mega.nz/) is a cloud storage and file hosting service
23854 known for its security feature where all files are encrypted locally
23855 before they are uploaded. This prevents anyone (including employees of
23856 Mega) from accessing the files without knowledge of the key used for
23857 encryption.
23858
23859 This is an rclone backend for Mega which supports the file transfer
23860 features of Mega using the same client side encryption.
23861
23862 Paths are specified as remote:path
23863
23864 Paths may be as deep as required, e.g. remote:directory/subdirectory.
23865
23866 Here is an example of how to make a remote called remote. First run:
23867
23868 rclone config
23869
23870 This will guide you through an interactive setup process:
23871
23872 No remotes found - make a new one
23873 n) New remote
23874 s) Set configuration password
23875 q) Quit config
23876 n/s/q> n
23877 name> remote
23878 Type of storage to configure.
23879 Choose a number from below, or type in your own value
23880 [snip]
23881 XX / Mega
23882 \ "mega"
23883 [snip]
23884 Storage> mega
23885 User name
23886 user> you@example.com
23887 Password.
23888 y) Yes type in my own password
23889 g) Generate random password
23890 n) No leave this optional password blank
23891 y/g/n> y
23892 Enter the password:
23893 password:
23894 Confirm the password:
23895 password:
23896 Remote config
23897 --------------------
23898 [remote]
23899 type = mega
23900 user = you@example.com
23901 pass = *** ENCRYPTED ***
23902 --------------------
23903 y) Yes this is OK
23904 e) Edit this remote
23905 d) Delete this remote
23906 y/e/d> y
23907
23908 NOTE: The encryption keys need to have been already generated after a
23909 regular login via the browser, otherwise attempting to use the creden‐
23910 tials in rclone will fail.
23911
23912 Once configured you can then use rclone like this,
23913
23914 List directories in top level of your Mega
23915
23916 rclone lsd remote:
23917
23918 List all the files in your Mega
23919
23920 rclone ls remote:
23921
23922 To copy a local directory to an Mega directory called backup
23923
23924 rclone copy /home/source remote:backup
23925
23926 Modified time and hashes
23927 Mega does not support modification times or hashes yet.
23928
23929 Restricted filename characters
23930 Character Value Replacement
23931 ────────────────────────────────
23932 NUL 0x00 ␀
23933 / 0x2F /
23934
23935 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
23936 view/#invalid-utf8), as they can't be used in JSON strings.
23937
23938 Duplicated files
23939 Mega can have two files with exactly the same name and path (unlike a
23940 normal file system).
23941
23942 Duplicated files cause problems with the syncing and you will see mes‐
23943 sages in the log about duplicates.
23944
23945 Use rclone dedupe to fix duplicated files.
23946
23947 Failure to log-in
23948 Mega remotes seem to get blocked (reject logins) under "heavy use". We
23949 haven't worked out the exact blocking rules but it seems to be related
23950 to fast paced, successive rclone commands.
23951
23952 For example, executing this command 90 times in a row rclone link re‐
23953 mote:file will cause the remote to become "blocked". This is not an
23954 abnormal situation, for example if you wish to get the public links of
23955 a directory with hundred of files... After more or less a week, the
23956 remote will remote accept rclone logins normally again.
23957
23958 You can mitigate this issue by mounting the remote it with rclone
23959 mount. This will log-in when mounting and a log-out when unmounting
23960 only. You can also run rclone rcd and then use rclone rc to run the
23961 commands over the API to avoid logging in each time.
23962
23963 Rclone does not currently close mega sessions (you can see them in the
23964 web interface), however closing the sessions does not solve the issue.
23965
23966 If you space rclone commands by 3 seconds it will avoid blocking the
23967 remote. We haven't identified the exact blocking rules, so perhaps one
23968 could execute the command 80 times without waiting and avoid blocking
23969 by waiting 3 seconds, then continuing...
23970
23971 Note that this has been observed by trial and error and might not be
23972 set in stone.
23973
23974 Other tools seem not to produce this blocking effect, as they use a
23975 different working approach (state-based, using sessionIDs instead of
23976 log-in) which isn't compatible with the current stateless rclone ap‐
23977 proach.
23978
23979 Note that once blocked, the use of other tools (such as megacmd) is not
23980 a sure workaround: following megacmd login times have been observed in
23981 succession for blocked remote: 7 minutes, 20 min, 30min, 30 min, 30min.
23982 Web access looks unaffected though.
23983
23984 Investigation is continuing in relation to workarounds based on time‐
23985 outs, pacers, retrials and tpslimits - if you discover something rele‐
23986 vant, please post on the forum.
23987
23988 So, if rclone was working nicely and suddenly you are unable to log-in
23989 and you are sure the user and the password are correct, likely you have
23990 got the remote blocked for a while.
23991
23992 Standard Options
23993 Here are the standard options specific to mega (Mega).
23994
23995 --mega-user
23996 User name
23997
23998 • Config: user
23999
24000 • Env Var: RCLONE_MEGA_USER
24001
24002 • Type: string
24003
24004 • Default: ""
24005
24006 --mega-pass
24007 Password.
24008
24009 NB Input to this must be obscured - see rclone obscure
24010 (https://rclone.org/commands/rclone_obscure/).
24011
24012 • Config: pass
24013
24014 • Env Var: RCLONE_MEGA_PASS
24015
24016 • Type: string
24017
24018 • Default: ""
24019
24020 Advanced Options
24021 Here are the advanced options specific to mega (Mega).
24022
24023 --mega-debug
24024 Output more debug from Mega.
24025
24026 If this flag is set (along with -vv) it will print further debugging
24027 information from the mega backend.
24028
24029 • Config: debug
24030
24031 • Env Var: RCLONE_MEGA_DEBUG
24032
24033 • Type: bool
24034
24035 • Default: false
24036
24037 --mega-hard-delete
24038 Delete files permanently rather than putting them into the trash.
24039
24040 Normally the mega backend will put all deletions into the trash rather
24041 than permanently deleting them. If you specify this then rclone will
24042 permanently delete objects instead.
24043
24044 • Config: hard_delete
24045
24046 • Env Var: RCLONE_MEGA_HARD_DELETE
24047
24048 • Type: bool
24049
24050 • Default: false
24051
24052 --mega-encoding
24053 This sets the encoding for the backend.
24054
24055 See: the encoding section in the overview (https://rclone.org/over‐
24056 view/#encoding) for more info.
24057
24058 • Config: encoding
24059
24060 • Env Var: RCLONE_MEGA_ENCODING
24061
24062 • Type: MultiEncoder
24063
24064 • Default: Slash,InvalidUtf8,Dot
24065
24066 Limitations
24067 This backend uses the go-mega go library
24068 (https://github.com/t3rm1n4l/go-mega) which is an opensource go library
24069 implementing the Mega API. There doesn't appear to be any documenta‐
24070 tion for the mega protocol beyond the mega C++ SDK
24071 (https://github.com/meganz/sdk) source code so there are likely quite a
24072 few errors still remaining in this library.
24073
24074 Mega allows duplicate files which may confuse rclone.
24075
24076 Memory
24077 The memory backend is an in RAM backend. It does not persist its data
24078 - use the local backend for that.
24079
24080 The memory backend behaves like a bucket based remote (e.g. like s3).
24081 Because it has no parameters you can just use it with the :memory: re‐
24082 mote name.
24083
24084 You can configure it as a remote like this with rclone config too if
24085 you want to:
24086
24087 No remotes found - make a new one
24088 n) New remote
24089 s) Set configuration password
24090 q) Quit config
24091 n/s/q> n
24092 name> remote
24093 Type of storage to configure.
24094 Enter a string value. Press Enter for the default ("").
24095 Choose a number from below, or type in your own value
24096 [snip]
24097 XX / Memory
24098 \ "memory"
24099 [snip]
24100 Storage> memory
24101 ** See help for memory backend at: https://rclone.org/memory/ **
24102
24103 Remote config
24104
24105 --------------------
24106 [remote]
24107 type = memory
24108 --------------------
24109 y) Yes this is OK (default)
24110 e) Edit this remote
24111 d) Delete this remote
24112 y/e/d> y
24113
24114 Because the memory backend isn't persistent it is most useful for test‐
24115 ing or with an rclone server or rclone mount, e.g.
24116
24117 rclone mount :memory: /mnt/tmp
24118 rclone serve webdav :memory:
24119 rclone serve sftp :memory:
24120
24121 Modified time and hashes
24122 The memory backend supports MD5 hashes and modification times accurate
24123 to 1 nS.
24124
24125 Restricted filename characters
24126 The memory backend replaces the default restricted characters set
24127 (https://rclone.org/overview/#restricted-characters).
24128
24129 Microsoft Azure Blob Storage
24130 Paths are specified as remote:container (or remote: for the lsd com‐
24131 mand.) You may put subdirectories in too, e.g. remote:contain‐
24132 er/path/to/dir.
24133
24134 Here is an example of making a Microsoft Azure Blob Storage configura‐
24135 tion. For a remote called remote. First run:
24136
24137 rclone config
24138
24139 This will guide you through an interactive setup process:
24140
24141 No remotes found - make a new one
24142 n) New remote
24143 s) Set configuration password
24144 q) Quit config
24145 n/s/q> n
24146 name> remote
24147 Type of storage to configure.
24148 Choose a number from below, or type in your own value
24149 [snip]
24150 XX / Microsoft Azure Blob Storage
24151 \ "azureblob"
24152 [snip]
24153 Storage> azureblob
24154 Storage Account Name
24155 account> account_name
24156 Storage Account Key
24157 key> base64encodedkey==
24158 Endpoint for the service - leave blank normally.
24159 endpoint>
24160 Remote config
24161 --------------------
24162 [remote]
24163 account = account_name
24164 key = base64encodedkey==
24165 endpoint =
24166 --------------------
24167 y) Yes this is OK
24168 e) Edit this remote
24169 d) Delete this remote
24170 y/e/d> y
24171
24172 See all containers
24173
24174 rclone lsd remote:
24175
24176 Make a new container
24177
24178 rclone mkdir remote:container
24179
24180 List the contents of a container
24181
24182 rclone ls remote:container
24183
24184 Sync /home/local/directory to the remote container, deleting any excess
24185 files in the container.
24186
24187 rclone sync -i /home/local/directory remote:container
24188
24189 --fast-list
24190 This remote supports --fast-list which allows you to use fewer transac‐
24191 tions in exchange for more memory. See the rclone docs
24192 (https://rclone.org/docs/#fast-list) for more details.
24193
24194 Modified time
24195 The modified time is stored as metadata on the object with the mtime
24196 key. It is stored using RFC3339 Format time with nanosecond precision.
24197 The metadata is supplied during directory listings so there is no over‐
24198 head to using it.
24199
24200 Restricted filename characters
24201 In addition to the default restricted characters set
24202 (https://rclone.org/overview/#restricted-characters) the following
24203 characters are also replaced:
24204
24205 Character Value Replacement
24206 ────────────────────────────────
24207 / 0x2F /
24208 \ 0x5C \
24209
24210 File names can also not end with the following characters. These only
24211 get replaced if they are the last character in the name:
24212
24213 Character Value Replacement
24214 ────────────────────────────────
24215 . 0x2E .
24216
24217 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
24218 view/#invalid-utf8), as they can't be used in JSON strings.
24219
24220 Hashes
24221 MD5 hashes are stored with blobs. However blobs that were uploaded in
24222 chunks only have an MD5 if the source remote was capable of MD5 hashes,
24223 e.g. the local disk.
24224
24225 Authenticating with Azure Blob Storage
24226 Rclone has 3 ways of authenticating with Azure Blob Storage:
24227
24228 Account and Key
24229 This is the most straight forward and least flexible way. Just fill in
24230 the account and key lines and leave the rest blank.
24231
24232 SAS URL
24233 This can be an account level SAS URL or container level SAS URL.
24234
24235 To use it leave account, key blank and fill in sas_url.
24236
24237 An account level SAS URL or container level SAS URL can be obtained
24238 from the Azure portal or the Azure Storage Explorer. To get a contain‐
24239 er level SAS URL right click on a container in the Azure Blob explorer
24240 in the Azure portal.
24241
24242 If you use a container level SAS URL, rclone operations are permitted
24243 only on a particular container, e.g.
24244
24245 rclone ls azureblob:container
24246
24247 You can also list the single container from the root. This will only
24248 show the container specified by the SAS URL.
24249
24250 $ rclone lsd azureblob:
24251 container/
24252
24253 Note that you can't see or access any other containers - this will fail
24254
24255 rclone ls azureblob:othercontainer
24256
24257 Container level SAS URLs are useful for temporarily allowing third par‐
24258 ties access to a single container or putting credentials into an un‐
24259 trusted environment such as a CI build server.
24260
24261 Standard Options
24262 Here are the standard options specific to azureblob (Microsoft Azure
24263 Blob Storage).
24264
24265 --azureblob-account
24266 Storage Account Name (leave blank to use SAS URL or Emulator)
24267
24268 • Config: account
24269
24270 • Env Var: RCLONE_AZUREBLOB_ACCOUNT
24271
24272 • Type: string
24273
24274 • Default: ""
24275
24276 --azureblob-service-principal-file
24277 Path to file containing credentials for use with a service principal.
24278
24279 Leave blank normally. Needed only if you want to use a service princi‐
24280 pal instead of interactive login.
24281
24282 $ az sp create-for-rbac --name "<name>" \
24283 --role "Storage Blob Data Owner" \
24284 --scopes "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>" \
24285 > azure-principal.json
24286
24287 See Use Azure CLI to assign an Azure role for access to blob and queue
24288 data (https://docs.microsoft.com/en-us/azure/storage/common/storage-
24289 auth-aad-rbac-cli) for more details.
24290
24291 • Config: service_principal_file
24292
24293 • Env Var: RCLONE_AZUREBLOB_SERVICE_PRINCIPAL_FILE
24294
24295 • Type: string
24296
24297 • Default: ""
24298
24299 --azureblob-key
24300 Storage Account Key (leave blank to use SAS URL or Emulator)
24301
24302 • Config: key
24303
24304 • Env Var: RCLONE_AZUREBLOB_KEY
24305
24306 • Type: string
24307
24308 • Default: ""
24309
24310 --azureblob-sas-url
24311 SAS URL for container level access only (leave blank if using ac‐
24312 count/key or Emulator)
24313
24314 • Config: sas_url
24315
24316 • Env Var: RCLONE_AZUREBLOB_SAS_URL
24317
24318 • Type: string
24319
24320 • Default: ""
24321
24322 --azureblob-use-msi
24323 Use a managed service identity to authenticate (only works in Azure)
24324
24325 When true, use a managed service identity (https://docs.micro‐
24326 soft.com/en-us/azure/active-directory/managed-identities-azure-re‐
24327 sources/) to authenticate to Azure Storage instead of a SAS token or
24328 account key.
24329
24330 If the VM(SS) on which this program is running has a system-assigned
24331 identity, it will be used by default. If the resource has no sys‐
24332 tem-assigned but exactly one user-assigned identity, the user-assigned
24333 identity will be used by default. If the resource has multiple us‐
24334 er-assigned identities, the identity to use must be explicitly speci‐
24335 fied using exactly one of the msi_object_id, msi_client_id, or
24336 msi_mi_res_id parameters.
24337
24338 • Config: use_msi
24339
24340 • Env Var: RCLONE_AZUREBLOB_USE_MSI
24341
24342 • Type: bool
24343
24344 • Default: false
24345
24346 --azureblob-use-emulator
24347 Uses local storage emulator if provided as 'true' (leave blank if using
24348 real azure storage endpoint)
24349
24350 • Config: use_emulator
24351
24352 • Env Var: RCLONE_AZUREBLOB_USE_EMULATOR
24353
24354 • Type: bool
24355
24356 • Default: false
24357
24358 Advanced Options
24359 Here are the advanced options specific to azureblob (Microsoft Azure
24360 Blob Storage).
24361
24362 --azureblob-msi-object-id
24363 Object ID of the user-assigned MSI to use, if any. Leave blank if
24364 msi_client_id or msi_mi_res_id specified.
24365
24366 • Config: msi_object_id
24367
24368 • Env Var: RCLONE_AZUREBLOB_MSI_OBJECT_ID
24369
24370 • Type: string
24371
24372 • Default: ""
24373
24374 --azureblob-msi-client-id
24375 Object ID of the user-assigned MSI to use, if any. Leave blank if
24376 msi_object_id or msi_mi_res_id specified.
24377
24378 • Config: msi_client_id
24379
24380 • Env Var: RCLONE_AZUREBLOB_MSI_CLIENT_ID
24381
24382 • Type: string
24383
24384 • Default: ""
24385
24386 --azureblob-msi-mi-res-id
24387 Azure resource ID of the user-assigned MSI to use, if any. Leave blank
24388 if msi_client_id or msi_object_id specified.
24389
24390 • Config: msi_mi_res_id
24391
24392 • Env Var: RCLONE_AZUREBLOB_MSI_MI_RES_ID
24393
24394 • Type: string
24395
24396 • Default: ""
24397
24398 --azureblob-endpoint
24399 Endpoint for the service Leave blank normally.
24400
24401 • Config: endpoint
24402
24403 • Env Var: RCLONE_AZUREBLOB_ENDPOINT
24404
24405 • Type: string
24406
24407 • Default: ""
24408
24409 --azureblob-upload-cutoff
24410 Cutoff for switching to chunked upload (<= 256MB). (Deprecated)
24411
24412 • Config: upload_cutoff
24413
24414 • Env Var: RCLONE_AZUREBLOB_UPLOAD_CUTOFF
24415
24416 • Type: string
24417
24418 • Default: ""
24419
24420 --azureblob-chunk-size
24421 Upload chunk size (<= 100MB).
24422
24423 Note that this is stored in memory and there may be up to "--transfers"
24424 chunks stored at once in memory.
24425
24426 • Config: chunk_size
24427
24428 • Env Var: RCLONE_AZUREBLOB_CHUNK_SIZE
24429
24430 • Type: SizeSuffix
24431
24432 • Default: 4M
24433
24434 --azureblob-list-chunk
24435 Size of blob list.
24436
24437 This sets the number of blobs requested in each listing chunk. Default
24438 is the maximum, 5000. "List blobs" requests are permitted 2 minutes
24439 per megabyte to complete. If an operation is taking longer than 2 min‐
24440 utes per megabyte on average, it will time out ( source
24441 (https://docs.microsoft.com/en-us/rest/api/storageservices/setting-
24442 timeouts-for-blob-service-operations#exceptions-to-default-timeout-in‐
24443 terval) ). This can be used to limit the number of blobs items to re‐
24444 turn, to avoid the time out.
24445
24446 • Config: list_chunk
24447
24448 • Env Var: RCLONE_AZUREBLOB_LIST_CHUNK
24449
24450 • Type: int
24451
24452 • Default: 5000
24453
24454 --azureblob-access-tier
24455 Access tier of blob: hot, cool or archive.
24456
24457 Archived blobs can be restored by setting access tier to hot or cool.
24458 Leave blank if you intend to use default access tier, which is set at
24459 account level
24460
24461 If there is no "access tier" specified, rclone doesn't apply any tier.
24462 rclone performs "Set Tier" operation on blobs while uploading, if ob‐
24463 jects are not modified, specifying "access tier" to new one will have
24464 no effect. If blobs are in "archive tier" at remote, trying to perform
24465 data transfer operations from remote will not be allowed. User should
24466 first restore by tiering blob to "Hot" or "Cool".
24467
24468 • Config: access_tier
24469
24470 • Env Var: RCLONE_AZUREBLOB_ACCESS_TIER
24471
24472 • Type: string
24473
24474 • Default: ""
24475
24476 --azureblob-archive-tier-delete
24477 Delete archive tier blobs before overwriting.
24478
24479 Archive tier blobs cannot be updated. So without this flag, if you at‐
24480 tempt to update an archive tier blob, then rclone will produce the er‐
24481 ror:
24482
24483 can't update archive tier blob without --azureblob-archive-tier-delete
24484
24485 With this flag set then before rclone attempts to overwrite an archive
24486 tier blob, it will delete the existing blob before uploading its re‐
24487 placement. This has the potential for data loss if the upload fails
24488 (unlike updating a normal blob) and also may cost more since deleting
24489 archive tier blobs early may be chargable.
24490
24491 • Config: archive_tier_delete
24492
24493 • Env Var: RCLONE_AZUREBLOB_ARCHIVE_TIER_DELETE
24494
24495 • Type: bool
24496
24497 • Default: false
24498
24499 --azureblob-disable-checksum
24500 Don't store MD5 checksum with object metadata.
24501
24502 Normally rclone will calculate the MD5 checksum of the input before up‐
24503 loading it so it can add it to metadata on the object. This is great
24504 for data integrity checking but can cause long delays for large files
24505 to start uploading.
24506
24507 • Config: disable_checksum
24508
24509 • Env Var: RCLONE_AZUREBLOB_DISABLE_CHECKSUM
24510
24511 • Type: bool
24512
24513 • Default: false
24514
24515 --azureblob-memory-pool-flush-time
24516 How often internal memory buffer pools will be flushed. Uploads which
24517 requires additional buffers (f.e multipart) will use memory pool for
24518 allocations. This option controls how often unused buffers will be re‐
24519 moved from the pool.
24520
24521 • Config: memory_pool_flush_time
24522
24523 • Env Var: RCLONE_AZUREBLOB_MEMORY_POOL_FLUSH_TIME
24524
24525 • Type: Duration
24526
24527 • Default: 1m0s
24528
24529 --azureblob-memory-pool-use-mmap
24530 Whether to use mmap buffers in internal memory pool.
24531
24532 • Config: memory_pool_use_mmap
24533
24534 • Env Var: RCLONE_AZUREBLOB_MEMORY_POOL_USE_MMAP
24535
24536 • Type: bool
24537
24538 • Default: false
24539
24540 --azureblob-encoding
24541 This sets the encoding for the backend.
24542
24543 See: the encoding section in the overview (https://rclone.org/over‐
24544 view/#encoding) for more info.
24545
24546 • Config: encoding
24547
24548 • Env Var: RCLONE_AZUREBLOB_ENCODING
24549
24550 • Type: MultiEncoder
24551
24552 • Default: Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8
24553
24554 --azureblob-public-access
24555 Public access level of a container: blob, container.
24556
24557 • Config: public_access
24558
24559 • Env Var: RCLONE_AZUREBLOB_PUBLIC_ACCESS
24560
24561 • Type: string
24562
24563 • Default: ""
24564
24565 • Examples:
24566
24567 • ""
24568
24569 • The container and its blobs can be accessed only with an autho‐
24570 rized request. It's a default value
24571
24572 • "blob"
24573
24574 • Blob data within this container can be read via anonymous re‐
24575 quest.
24576
24577 • "container"
24578
24579 • Allow full public read access for container and blob data.
24580
24581 Limitations
24582 MD5 sums are only uploaded with chunked files if the source has an MD5
24583 sum. This will always be the case for a local to azure copy.
24584
24585 rclone about is not supported by the Microsoft Azure Blob storage back‐
24586 end. Backends without this capability cannot determine free space for
24587 an rclone mount or use policy mfs (most free space) as a member of an
24588 rclone union remote.
24589
24590 See List of backends that do not support rclone about
24591 (https://rclone.org/overview/#optional-features) See rclone about
24592 (https://rclone.org/commands/rclone_about/)
24593
24594 Azure Storage Emulator Support
24595 You can test rclone with storage emulator locally, to do this make sure
24596 azure storage emulator installed locally and set up a new remote with
24597 rclone config follow instructions described in introduction, set
24598 use_emulator config as true, you do not need to provide default account
24599 name or key if using emulator.
24600
24601 Microsoft OneDrive
24602 Paths are specified as remote:path
24603
24604 Paths may be as deep as required, e.g. remote:directory/subdirectory.
24605
24606 The initial setup for OneDrive involves getting a token from Microsoft
24607 which you need to do in your browser. rclone config walks you through
24608 it.
24609
24610 Here is an example of how to make a remote called remote. First run:
24611
24612 rclone config
24613
24614 This will guide you through an interactive setup process:
24615
24616 e) Edit existing remote
24617 n) New remote
24618 d) Delete remote
24619 r) Rename remote
24620 c) Copy remote
24621 s) Set configuration password
24622 q) Quit config
24623 e/n/d/r/c/s/q> n
24624 name> remote
24625 Type of storage to configure.
24626 Enter a string value. Press Enter for the default ("").
24627 Choose a number from below, or type in your own value
24628 [snip]
24629 XX / Microsoft OneDrive
24630 \ "onedrive"
24631 [snip]
24632 Storage> onedrive
24633 Microsoft App Client Id
24634 Leave blank normally.
24635 Enter a string value. Press Enter for the default ("").
24636 client_id>
24637 Microsoft App Client Secret
24638 Leave blank normally.
24639 Enter a string value. Press Enter for the default ("").
24640 client_secret>
24641 Edit advanced config? (y/n)
24642 y) Yes
24643 n) No
24644 y/n> n
24645 Remote config
24646 Use auto config?
24647 * Say Y if not sure
24648 * Say N if you are working on a remote or headless machine
24649 y) Yes
24650 n) No
24651 y/n> y
24652 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
24653 Log in and authorize rclone for access
24654 Waiting for code...
24655 Got code
24656 Choose a number from below, or type in an existing value
24657 1 / OneDrive Personal or Business
24658 \ "onedrive"
24659 2 / Sharepoint site
24660 \ "sharepoint"
24661 3 / Type in driveID
24662 \ "driveid"
24663 4 / Type in SiteID
24664 \ "siteid"
24665 5 / Search a Sharepoint site
24666 \ "search"
24667 Your choice> 1
24668 Found 1 drives, please select the one you want to use:
24669 0: OneDrive (business) id=b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
24670 Chose drive to use:> 0
24671 Found drive 'root' of type 'business', URL: https://org-my.sharepoint.com/personal/you/Documents
24672 Is that okay?
24673 y) Yes
24674 n) No
24675 y/n> y
24676 --------------------
24677 [remote]
24678 type = onedrive
24679 token = {"access_token":"youraccesstoken","token_type":"Bearer","refresh_token":"yourrefreshtoken","expiry":"2018-08-26T22:39:52.486512262+08:00"}
24680 drive_id = b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
24681 drive_type = business
24682 --------------------
24683 y) Yes this is OK
24684 e) Edit this remote
24685 d) Delete this remote
24686 y/e/d> y
24687
24688 See the remote setup docs (https://rclone.org/remote_setup/) for how to
24689 set it up on a machine with no Internet browser available.
24690
24691 Note that rclone runs a webserver on your local machine to collect the
24692 token as returned from Microsoft. This only runs from the moment it
24693 opens your browser to the moment you get back the verification code.
24694 This is on http://127.0.0.1:53682/ and this it may require you to un‐
24695 block it temporarily if you are running a host firewall.
24696
24697 Once configured you can then use rclone like this,
24698
24699 List directories in top level of your OneDrive
24700
24701 rclone lsd remote:
24702
24703 List all the files in your OneDrive
24704
24705 rclone ls remote:
24706
24707 To copy a local directory to an OneDrive directory called backup
24708
24709 rclone copy /home/source remote:backup
24710
24711 Getting your own Client ID and Key
24712 You can use your own Client ID if the default (client_id left blank)
24713 one doesn't work for you or you see lots of throttling. The default
24714 Client ID and Key is shared by all rclone users when performing re‐
24715 quests.
24716
24717 If you are having problems with them (E.g., seeing a lot of throt‐
24718 tling), you can get your own Client ID and Key by following the steps
24719 below:
24720
24721 1. Open https://portal.azure.com/#blade/Microsoft_AAD_Regis‐
24722 teredApps/ApplicationsListBlade and then click New registration.
24723
24724 2. Enter a name for your app, choose account type Accounts in any orga‐
24725 nizational directory (Any Azure AD directory - Multitenant) and per‐
24726 sonal Microsoft accounts (e.g. Skype, Xbox), select Web in Redirect
24727 URI, then type (do not copy and paste) http://localhost:53682/ and
24728 click Register. Copy and keep the Application (client) ID under the
24729 app name for later use.
24730
24731 3. Under manage select Certificates & secrets, click New client secret.
24732 Copy and keep that secret for later use.
24733
24734 4. Under manage select API permissions, click Add a permission and se‐
24735 lect Microsoft Graph then select delegated permissions.
24736
24737 5. Search and select the following permissions: Files.Read, Files.Read‐
24738 Write, Files.Read.All, Files.ReadWrite.All, offline_access, Us‐
24739 er.Read. Once selected click Add permissions at the bottom.
24740
24741 Now the application is complete. Run rclone config to create or edit a
24742 OneDrive remote. Supply the app ID and password as Client ID and Se‐
24743 cret, respectively. rclone will walk you through the remaining steps.
24744
24745 Modification time and hashes
24746 OneDrive allows modification times to be set on objects accurate to 1
24747 second. These will be used to detect whether objects need syncing or
24748 not.
24749
24750 OneDrive personal supports SHA1 type hashes. OneDrive for business and
24751 Sharepoint Server support QuickXorHash (https://docs.microsoft.com/en-
24752 us/onedrive/developer/code-snippets/quickxorhash).
24753
24754 For all types of OneDrive you can use the --checksum flag.
24755
24756 Restricted filename characters
24757 In addition to the default restricted characters set
24758 (https://rclone.org/overview/#restricted-characters) the following
24759 characters are also replaced:
24760
24761 Character Value Replacement
24762 ────────────────────────────────
24763 " 0x22 "
24764 * 0x2A *
24765 : 0x3A :
24766 < 0x3C <
24767 > 0x3E >
24768 ? 0x3F ?
24769 \ 0x5C \
24770 | 0x7C |
24771
24772 File names can also not end with the following characters. These only
24773 get replaced if they are the last character in the name:
24774
24775 Character Value Replacement
24776 ────────────────────────────────
24777 SP 0x20 ␠
24778 . 0x2E .
24779
24780 File names can also not begin with the following characters. These on‐
24781 ly get replaced if they are the first character in the name:
24782
24783 Character Value Replacement
24784 ────────────────────────────────
24785 SP 0x20 ␠
24786 ~ 0x7E ~
24787
24788 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
24789 view/#invalid-utf8), as they can't be used in JSON strings.
24790
24791 Deleting files
24792 Any files you delete with rclone will end up in the trash. Microsoft
24793 doesn't provide an API to permanently delete files, nor to empty the
24794 trash, so you will have to do that with one of Microsoft's apps or via
24795 the OneDrive website.
24796
24797 Standard Options
24798 Here are the standard options specific to onedrive (Microsoft
24799 OneDrive).
24800
24801 --onedrive-client-id
24802 OAuth Client Id Leave blank normally.
24803
24804 • Config: client_id
24805
24806 • Env Var: RCLONE_ONEDRIVE_CLIENT_ID
24807
24808 • Type: string
24809
24810 • Default: ""
24811
24812 --onedrive-client-secret
24813 OAuth Client Secret Leave blank normally.
24814
24815 • Config: client_secret
24816
24817 • Env Var: RCLONE_ONEDRIVE_CLIENT_SECRET
24818
24819 • Type: string
24820
24821 • Default: ""
24822
24823 --onedrive-region
24824 Choose national cloud region for OneDrive.
24825
24826 • Config: region
24827
24828 • Env Var: RCLONE_ONEDRIVE_REGION
24829
24830 • Type: string
24831
24832 • Default: "global"
24833
24834 • Examples:
24835
24836 • "global"
24837
24838 • Microsoft Cloud Global
24839
24840 • "us"
24841
24842 • Microsoft Cloud for US Government
24843
24844 • "de"
24845
24846 • Microsoft Cloud Germany
24847
24848 • "cn"
24849
24850 • Azure and Office 365 operated by 21Vianet in China
24851
24852 Advanced Options
24853 Here are the advanced options specific to onedrive (Microsoft
24854 OneDrive).
24855
24856 --onedrive-token
24857 OAuth Access Token as a JSON blob.
24858
24859 • Config: token
24860
24861 • Env Var: RCLONE_ONEDRIVE_TOKEN
24862
24863 • Type: string
24864
24865 • Default: ""
24866
24867 --onedrive-auth-url
24868 Auth server URL. Leave blank to use the provider defaults.
24869
24870 • Config: auth_url
24871
24872 • Env Var: RCLONE_ONEDRIVE_AUTH_URL
24873
24874 • Type: string
24875
24876 • Default: ""
24877
24878 --onedrive-token-url
24879 Token server url. Leave blank to use the provider defaults.
24880
24881 • Config: token_url
24882
24883 • Env Var: RCLONE_ONEDRIVE_TOKEN_URL
24884
24885 • Type: string
24886
24887 • Default: ""
24888
24889 --onedrive-chunk-size
24890 Chunk size to upload files with - must be multiple of 320k (327,680
24891 bytes).
24892
24893 Above this size files will be chunked - must be multiple of 320k
24894 (327,680 bytes) and should not exceed 250M (262,144,000 bytes) else you
24895 may encounter "Microsoft.SharePoint.Client.InvalidClientQueryException:
24896 The request message is too big." Note that the chunks will be buffered
24897 into memory.
24898
24899 • Config: chunk_size
24900
24901 • Env Var: RCLONE_ONEDRIVE_CHUNK_SIZE
24902
24903 • Type: SizeSuffix
24904
24905 • Default: 10M
24906
24907 --onedrive-drive-id
24908 The ID of the drive to use
24909
24910 • Config: drive_id
24911
24912 • Env Var: RCLONE_ONEDRIVE_DRIVE_ID
24913
24914 • Type: string
24915
24916 • Default: ""
24917
24918 --onedrive-drive-type
24919 The type of the drive ( personal | business | documentLibrary )
24920
24921 • Config: drive_type
24922
24923 • Env Var: RCLONE_ONEDRIVE_DRIVE_TYPE
24924
24925 • Type: string
24926
24927 • Default: ""
24928
24929 --onedrive-expose-onenote-files
24930 Set to make OneNote files show up in directory listings.
24931
24932 By default rclone will hide OneNote files in directory listings because
24933 operations like "Open" and "Update" won't work on them. But this be‐
24934 haviour may also prevent you from deleting them. If you want to delete
24935 OneNote files or otherwise want them to show up in directory listing,
24936 set this option.
24937
24938 • Config: expose_onenote_files
24939
24940 • Env Var: RCLONE_ONEDRIVE_EXPOSE_ONENOTE_FILES
24941
24942 • Type: bool
24943
24944 • Default: false
24945
24946 --onedrive-server-side-across-configs
24947 Allow server-side operations (e.g. copy) to work across different
24948 onedrive configs.
24949
24950 This will only work if you are copying between two OneDrive Personal
24951 drives AND the files to copy are already shared between them. In other
24952 cases, rclone will fall back to normal copy (which will be slightly
24953 slower).
24954
24955 • Config: server_side_across_configs
24956
24957 • Env Var: RCLONE_ONEDRIVE_SERVER_SIDE_ACROSS_CONFIGS
24958
24959 • Type: bool
24960
24961 • Default: false
24962
24963 --onedrive-no-versions
24964 Remove all versions on modifying operations
24965
24966 Onedrive for business creates versions when rclone uploads new files
24967 overwriting an existing one and when it sets the modification time.
24968
24969 These versions take up space out of the quota.
24970
24971 This flag checks for versions after file upload and setting modifica‐
24972 tion time and removes all but the last version.
24973
24974 NB Onedrive personal can't currently delete versions so don't use this
24975 flag there.
24976
24977 • Config: no_versions
24978
24979 • Env Var: RCLONE_ONEDRIVE_NO_VERSIONS
24980
24981 • Type: bool
24982
24983 • Default: false
24984
24985 --onedrive-link-scope
24986 Set the scope of the links created by the link command.
24987
24988 • Config: link_scope
24989
24990 • Env Var: RCLONE_ONEDRIVE_LINK_SCOPE
24991
24992 • Type: string
24993
24994 • Default: "anonymous"
24995
24996 • Examples:
24997
24998 • "anonymous"
24999
25000 • Anyone with the link has access, without needing to sign in.
25001 This may include people outside of your organization. Anonymous
25002 link support may be disabled by an administrator.
25003
25004 • "organization"
25005
25006 • Anyone signed into your organization (tenant) can use the link to
25007 get access. Only available in OneDrive for Business and Share‐
25008 Point.
25009
25010 --onedrive-link-type
25011 Set the type of the links created by the link command.
25012
25013 • Config: link_type
25014
25015 • Env Var: RCLONE_ONEDRIVE_LINK_TYPE
25016
25017 • Type: string
25018
25019 • Default: "view"
25020
25021 • Examples:
25022
25023 • "view"
25024
25025 • Creates a read-only link to the item.
25026
25027 • "edit"
25028
25029 • Creates a read-write link to the item.
25030
25031 • "embed"
25032
25033 • Creates an embeddable link to the item.
25034
25035 --onedrive-link-password
25036 Set the password for links created by the link command.
25037
25038 At the time of writing this only works with OneDrive personal paid ac‐
25039 counts.
25040
25041 • Config: link_password
25042
25043 • Env Var: RCLONE_ONEDRIVE_LINK_PASSWORD
25044
25045 • Type: string
25046
25047 • Default: ""
25048
25049 --onedrive-encoding
25050 This sets the encoding for the backend.
25051
25052 See: the encoding section in the overview (https://rclone.org/over‐
25053 view/#encoding) for more info.
25054
25055 • Config: encoding
25056
25057 • Env Var: RCLONE_ONEDRIVE_ENCODING
25058
25059 • Type: MultiEncoder
25060
25061 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
25062 Slash,Del,Ctl,LeftSpace,LeftTilde,RightSpace,RightPeriod,In‐
25063 validUtf8,Dot
25064
25065 Limitations
25066 If you don't use rclone for 90 days the refresh token will expire.
25067 This will result in authorization problems. This is easy to fix by
25068 running the rclone config reconnect remote: command to get a new token
25069 and refresh token.
25070
25071 Naming
25072 Note that OneDrive is case insensitive so you can't have a file called
25073 "Hello.doc" and one called "hello.doc".
25074
25075 There are quite a few characters that can't be in OneDrive file names.
25076 These can't occur on Windows platforms, but on non-Windows platforms
25077 they are common. Rclone will map these names to and from an identical
25078 looking unicode equivalent. For example if a file has a ? in it will
25079 be mapped to ? instead.
25080
25081 File sizes
25082 The largest allowed file size is 250GB for both OneDrive Personal and
25083 OneDrive for Business (Updated 13 Jan 2021) (https://support.micro‐
25084 soft.com/en-us/office/invalid-file-names-and-file-types-in-onedrive-
25085 and-sharepoint-64883a5d-228e-48f5-b3d2-eb39e07630fa?ui=en-us&rs=en-
25086 us&ad=us#individualfilesize).
25087
25088 Path length
25089 The entire path, including the file name, must contain fewer than 400
25090 characters for OneDrive, OneDrive for Business and SharePoint Online.
25091 If you are encrypting file and folder names with rclone, you may want
25092 to pay attention to this limitation because the encrypted names are
25093 typically longer than the original ones.
25094
25095 Number of files
25096 OneDrive seems to be OK with at least 50,000 files in a folder, but at
25097 100,000 rclone will get errors listing the directory like couldn’t list
25098 files: UnknownError:. See #2707 (https://github.com/rclone/rclone/is‐
25099 sues/2707) for more info.
25100
25101 An official document about the limitations for different types of
25102 OneDrive can be found here (https://support.office.com/en-us/arti‐
25103 cle/invalid-file-names-and-file-types-in-onedrive-onedrive-for-busi‐
25104 ness-and-sharepoint-64883a5d-228e-48f5-b3d2-eb39e07630fa).
25105
25106 Versions
25107 Every change in a file OneDrive causes the service to create a new ver‐
25108 sion of the the file. This counts against a users quota. For example
25109 changing the modification time of a file creates a second version, so
25110 the file apparently uses twice the space.
25111
25112 For example the copy command is affected by this as rclone copies the
25113 file and then afterwards sets the modification time to match the source
25114 file which uses another version.
25115
25116 You can use the rclone cleanup command (see below) to remove all old
25117 versions.
25118
25119 Or you can set the no_versions parameter to true and rclone will remove
25120 versions after operations which create new versions. This takes extra
25121 transactions so only enable it if you need it.
25122
25123 Note At the time of writing Onedrive Personal creates versions (but not
25124 for setting the modification time) but the API for removing them re‐
25125 turns "API not found" so cleanup and no_versions should not be used on
25126 Onedrive Personal.
25127
25128 Disabling versioning
25129 Starting October 2018, users will no longer be able to disable version‐
25130 ing by default. This is because Microsoft has brought an update
25131 (https://techcommunity.microsoft.com/t5/Microsoft-OneDrive-Blog/New-Up‐
25132 dates-to-OneDrive-and-SharePoint-Team-Site-Versioning/ba-p/204390) to
25133 the mechanism. To change this new default setting, a PowerShell com‐
25134 mand is required to be run by a SharePoint admin. If you are an admin,
25135 you can run these commands in PowerShell to change that setting:
25136
25137 1. Install-Module -Name Microsoft.Online.SharePoint.PowerShell (in case
25138 you haven't installed this already)
25139
25140 2. Import-Module Microsoft.Online.SharePoint.PowerShell -Disable‐
25141 NameChecking
25142
25143 3. Connect-SPOService -Url https://YOURSITE-admin.sharepoint.com -Cre‐
25144 dential YOU@YOURSITE.COM (replacing YOURSITE, YOU, YOURSITE.COM with
25145 the actual values; this will prompt for your credentials)
25146
25147 4. Set-SPOTenant -EnableMinimumVersionRequirement $False
25148
25149 5. Disconnect-SPOService (to disconnect from the server)
25150
25151 Below are the steps for normal users to disable versioning. If you
25152 don't see the "No Versioning" option, make sure the above requirements
25153 are met.
25154
25155 User Weropol (https://github.com/Weropol) has found a method to disable
25156 versioning on OneDrive
25157
25158 1. Open the settings menu by clicking on the gear symbol at the top of
25159 the OneDrive Business page.
25160
25161 2. Click Site settings.
25162
25163 3. Once on the Site settings page, navigate to Site Administration >
25164 Site libraries and lists.
25165
25166 4. Click Customize "Documents".
25167
25168 5. Click General Settings > Versioning Settings.
25169
25170 6. Under Document Version History select the option No versioning.
25171 Note: This will disable the creation of new file versions, but will
25172 not remove any previous versions. Your documents are safe.
25173
25174 7. Apply the changes by clicking OK.
25175
25176 8. Use rclone to upload or modify files. (I also use the --no-up‐
25177 date-modtime flag)
25178
25179 9. Restore the versioning settings after using rclone. (Optional)
25180
25181 Cleanup
25182 OneDrive supports rclone cleanup which causes rclone to look through
25183 every file under the path supplied and delete all version but the cur‐
25184 rent version. Because this involves traversing all the files, then
25185 querying each file for versions it can be quite slow. Rclone does
25186 --checkers tests in parallel. The command also supports -i which is a
25187 great way to see what it would do.
25188
25189 rclone cleanup -i remote:path/subdir # interactively remove all old version for path/subdir
25190 rclone cleanup remote:path/subdir # unconditionally remove all old version for path/subdir
25191
25192 NB Onedrive personal can't currently delete versions
25193
25194 Troubleshooting
25195 Unexpected file size/hash differences on Sharepoint
25196 It is a known (https://github.com/OneDrive/onedrive-api-docs/is‐
25197 sues/935#issuecomment-441741631) issue that Sharepoint (not OneDrive or
25198 OneDrive for Business) silently modifies uploaded files, mainly Office
25199 files (.docx, .xlsx, etc.), causing file size and hash checks to fail.
25200 There are also other situations that will cause OneDrive to report in‐
25201 consistent file sizes. To use rclone with such affected files on
25202 Sharepoint, you may disable these checks with the following command
25203 line arguments:
25204
25205 --ignore-checksum --ignore-size
25206
25207 Alternatively, if you have write access to the OneDrive files, it may
25208 be possible to fix this problem for certain files, by attempting the
25209 steps below. Open the web interface for OneDrive
25210 (https://onedrive.live.com) and find the affected files (which will be
25211 in the error messages/log for rclone). Simply click on each of these
25212 files, causing OneDrive to open them on the web. This will cause each
25213 file to be converted in place to a format that is functionally equiva‐
25214 lent but which will no longer trigger the size discrepancy. Once all
25215 problematic files are converted you will no longer need the ignore op‐
25216 tions above.
25217
25218 Replacing/deleting existing files on Sharepoint gets "item not found"
25219 It is a known (https://github.com/OneDrive/onedrive-api-docs/is‐
25220 sues/1068) issue that Sharepoint (not OneDrive or OneDrive for Busi‐
25221 ness) may return "item not found" errors when users try to replace or
25222 delete uploaded files; this seems to mainly affect Office files (.docx,
25223 .xlsx, etc.). As a workaround, you may use the --backup-dir <BACK‐
25224 UP_DIR> command line argument so rclone moves the files to be re‐
25225 placed/deleted into a given backup directory (instead of directly re‐
25226 placing/deleting them). For example, to instruct rclone to move the
25227 files into the directory rclone-backup-dir on backend mysharepoint, you
25228 may use:
25229
25230 --backup-dir mysharepoint:rclone-backup-dir
25231
25232 access_denied (AADSTS65005)
25233 Error: access_denied
25234 Code: AADSTS65005
25235 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.
25236
25237 This means that rclone can't use the OneDrive for Business API with
25238 your account. You can't do much about it, maybe write an email to your
25239 admins.
25240
25241 However, there are other ways to interact with your OneDrive account.
25242 Have a look at the webdav backend: https://rclone.org/webdav/#share‐
25243 point
25244
25245 invalid_grant (AADSTS50076)
25246 Error: invalid_grant
25247 Code: AADSTS50076
25248 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 '...'.
25249
25250 If you see the error above after enabling multi-factor authentication
25251 for your account, you can fix it by refreshing your OAuth refresh to‐
25252 ken. To do that, run rclone config, and choose to edit your OneDrive
25253 backend. Then, you don't need to actually make any changes until you
25254 reach this question: Already have a token - refresh?. For this ques‐
25255 tion, answer y and go through the process to refresh your token, just
25256 like the first time the backend is configured. After this, rclone
25257 should work again for this backend.
25258
25259 OpenDrive
25260 Paths are specified as remote:path
25261
25262 Paths may be as deep as required, e.g. remote:directory/subdirectory.
25263
25264 Here is an example of how to make a remote called remote. First run:
25265
25266 rclone config
25267
25268 This will guide you through an interactive setup process:
25269
25270 n) New remote
25271 d) Delete remote
25272 q) Quit config
25273 e/n/d/q> n
25274 name> remote
25275 Type of storage to configure.
25276 Choose a number from below, or type in your own value
25277 [snip]
25278 XX / OpenDrive
25279 \ "opendrive"
25280 [snip]
25281 Storage> opendrive
25282 Username
25283 username>
25284 Password
25285 y) Yes type in my own password
25286 g) Generate random password
25287 y/g> y
25288 Enter the password:
25289 password:
25290 Confirm the password:
25291 password:
25292 --------------------
25293 [remote]
25294 username =
25295 password = *** ENCRYPTED ***
25296 --------------------
25297 y) Yes this is OK
25298 e) Edit this remote
25299 d) Delete this remote
25300 y/e/d> y
25301
25302 List directories in top level of your OpenDrive
25303
25304 rclone lsd remote:
25305
25306 List all the files in your OpenDrive
25307
25308 rclone ls remote:
25309
25310 To copy a local directory to an OpenDrive directory called backup
25311
25312 rclone copy /home/source remote:backup
25313
25314 Modified time and MD5SUMs
25315 OpenDrive allows modification times to be set on objects accurate to 1
25316 second. These will be used to detect whether objects need syncing or
25317 not.
25318
25319 Restricted filename characters
25320 Character Value Replacement
25321 ────────────────────────────────
25322 NUL 0x00 ␀
25323 / 0x2F /
25324 " 0x22 "
25325 * 0x2A *
25326 : 0x3A :
25327 < 0x3C <
25328 > 0x3E >
25329 ? 0x3F ?
25330 \ 0x5C \
25331 | 0x7C |
25332
25333 File names can also not begin or end with the following characters.
25334 These only get replaced if they are the first or last character in the
25335 name:
25336
25337 Character Value Replacement
25338 ────────────────────────────────
25339 SP 0x20 ␠
25340 HT 0x09 ␉
25341 LF 0x0A ␊
25342 VT 0x0B ␋
25343 CR 0x0D ␍
25344
25345 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
25346 view/#invalid-utf8), as they can't be used in JSON strings.
25347
25348 Standard Options
25349 Here are the standard options specific to opendrive (OpenDrive).
25350
25351 --opendrive-username
25352 Username
25353
25354 • Config: username
25355
25356 • Env Var: RCLONE_OPENDRIVE_USERNAME
25357
25358 • Type: string
25359
25360 • Default: ""
25361
25362 --opendrive-password
25363 Password.
25364
25365 NB Input to this must be obscured - see rclone obscure
25366 (https://rclone.org/commands/rclone_obscure/).
25367
25368 • Config: password
25369
25370 • Env Var: RCLONE_OPENDRIVE_PASSWORD
25371
25372 • Type: string
25373
25374 • Default: ""
25375
25376 Advanced Options
25377 Here are the advanced options specific to opendrive (OpenDrive).
25378
25379 --opendrive-encoding
25380 This sets the encoding for the backend.
25381
25382 See: the encoding section in the overview (https://rclone.org/over‐
25383 view/#encoding) for more info.
25384
25385 • Config: encoding
25386
25387 • Env Var: RCLONE_OPENDRIVE_ENCODING
25388
25389 • Type: MultiEncoder
25390
25391 • Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
25392 Slash,LeftSpace,LeftCrLfHtVt,RightSpace,RightCrLfHtVt,InvalidUtf8,Dot
25393
25394 --opendrive-chunk-size
25395 Files will be uploaded in chunks this size.
25396
25397 Note that these chunks are buffered in memory so increasing them will
25398 increase memory use.
25399
25400 • Config: chunk_size
25401
25402 • Env Var: RCLONE_OPENDRIVE_CHUNK_SIZE
25403
25404 • Type: SizeSuffix
25405
25406 • Default: 10M
25407
25408 Limitations
25409 Note that OpenDrive is case insensitive so you can't have a file called
25410 "Hello.doc" and one called "hello.doc".
25411
25412 There are quite a few characters that can't be in OpenDrive file names.
25413 These can't occur on Windows platforms, but on non-Windows platforms
25414 they are common. Rclone will map these names to and from an identical
25415 looking unicode equivalent. For example if a file has a ? in it will
25416 be mapped to ? instead.
25417
25418 rclone about is not supported by the OpenDrive backend. Backends with‐
25419 out this capability cannot determine free space for an rclone mount or
25420 use policy mfs (most free space) as a member of an rclone union remote.
25421
25422 See List of backends that do not support rclone about
25423 (https://rclone.org/overview/#optional-features) See rclone about
25424 (https://rclone.org/commands/rclone_about/)
25425
25426 QingStor
25427 Paths are specified as remote:bucket (or remote: for the lsd command.)
25428 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
25429
25430 Here is an example of making an QingStor configuration. First run
25431
25432 rclone config
25433
25434 This will guide you through an interactive setup process.
25435
25436 No remotes found - make a new one
25437 n) New remote
25438 r) Rename remote
25439 c) Copy remote
25440 s) Set configuration password
25441 q) Quit config
25442 n/r/c/s/q> n
25443 name> remote
25444 Type of storage to configure.
25445 Choose a number from below, or type in your own value
25446 [snip]
25447 XX / QingStor Object Storage
25448 \ "qingstor"
25449 [snip]
25450 Storage> qingstor
25451 Get QingStor credentials from runtime. Only applies if access_key_id and secret_access_key is blank.
25452 Choose a number from below, or type in your own value
25453 1 / Enter QingStor credentials in the next step
25454 \ "false"
25455 2 / Get QingStor credentials from the environment (env vars or IAM)
25456 \ "true"
25457 env_auth> 1
25458 QingStor Access Key ID - leave blank for anonymous access or runtime credentials.
25459 access_key_id> access_key
25460 QingStor Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
25461 secret_access_key> secret_key
25462 Enter an endpoint URL to connection QingStor API.
25463 Leave blank will use the default value "https://qingstor.com:443"
25464 endpoint>
25465 Zone connect to. Default is "pek3a".
25466 Choose a number from below, or type in your own value
25467 / The Beijing (China) Three Zone
25468 1 | Needs location constraint pek3a.
25469 \ "pek3a"
25470 / The Shanghai (China) First Zone
25471 2 | Needs location constraint sh1a.
25472 \ "sh1a"
25473 zone> 1
25474 Number of connection retry.
25475 Leave blank will use the default value "3".
25476 connection_retries>
25477 Remote config
25478 --------------------
25479 [remote]
25480 env_auth = false
25481 access_key_id = access_key
25482 secret_access_key = secret_key
25483 endpoint =
25484 zone = pek3a
25485 connection_retries =
25486 --------------------
25487 y) Yes this is OK
25488 e) Edit this remote
25489 d) Delete this remote
25490 y/e/d> y
25491
25492 This remote is called remote and can now be used like this
25493
25494 See all buckets
25495
25496 rclone lsd remote:
25497
25498 Make a new bucket
25499
25500 rclone mkdir remote:bucket
25501
25502 List the contents of a bucket
25503
25504 rclone ls remote:bucket
25505
25506 Sync /home/local/directory to the remote bucket, deleting any excess
25507 files in the bucket.
25508
25509 rclone sync -i /home/local/directory remote:bucket
25510
25511 --fast-list
25512 This remote supports --fast-list which allows you to use fewer transac‐
25513 tions in exchange for more memory. See the rclone docs
25514 (https://rclone.org/docs/#fast-list) for more details.
25515
25516 Multipart uploads
25517 rclone supports multipart uploads with QingStor which means that it can
25518 upload files bigger than 5GB. Note that files uploaded with multipart
25519 upload don't have an MD5SUM.
25520
25521 Note that incomplete multipart uploads older than 24 hours can be re‐
25522 moved with rclone cleanup remote:bucket just for one bucket rclone
25523 cleanup remote: for all buckets. QingStor does not ever remove incom‐
25524 plete multipart uploads so it may be necessary to run this from time to
25525 time.
25526
25527 Buckets and Zone
25528 With QingStor you can list buckets (rclone lsd) using any zone, but you
25529 can only access the content of a bucket from the zone it was created
25530 in. If you attempt to access a bucket from the wrong zone, you will
25531 get an error, incorrect zone, the bucket is not in 'XXX' zone.
25532
25533 Authentication
25534 There are two ways to supply rclone with a set of QingStor credentials.
25535 In order of precedence:
25536
25537 • Directly in the rclone configuration file (as configured by rclone
25538 config)
25539
25540 • set access_key_id and secret_access_key
25541
25542 • Runtime configuration:
25543
25544 • set env_auth to true in the config file
25545
25546 • Exporting the following environment variables before running rclone
25547
25548 • Access Key ID: QS_ACCESS_KEY_ID or QS_ACCESS_KEY
25549
25550 • Secret Access Key: QS_SECRET_ACCESS_KEY or QS_SECRET_KEY
25551
25552 Restricted filename characters
25553 The control characters 0x00-0x1F and / are replaced as in the default
25554 restricted characters set (https://rclone.org/overview/#restricted-
25555 characters). Note that 0x7F is not replaced.
25556
25557 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
25558 view/#invalid-utf8), as they can't be used in JSON strings.
25559
25560 Standard Options
25561 Here are the standard options specific to qingstor (QingCloud Object
25562 Storage).
25563
25564 --qingstor-env-auth
25565 Get QingStor credentials from runtime. Only applies if access_key_id
25566 and secret_access_key is blank.
25567
25568 • Config: env_auth
25569
25570 • Env Var: RCLONE_QINGSTOR_ENV_AUTH
25571
25572 • Type: bool
25573
25574 • Default: false
25575
25576 • Examples:
25577
25578 • "false"
25579
25580 • Enter QingStor credentials in the next step
25581
25582 • "true"
25583
25584 • Get QingStor credentials from the environment (env vars or IAM)
25585
25586 --qingstor-access-key-id
25587 QingStor Access Key ID Leave blank for anonymous access or runtime cre‐
25588 dentials.
25589
25590 • Config: access_key_id
25591
25592 • Env Var: RCLONE_QINGSTOR_ACCESS_KEY_ID
25593
25594 • Type: string
25595
25596 • Default: ""
25597
25598 --qingstor-secret-access-key
25599 QingStor Secret Access Key (password) Leave blank for anonymous access
25600 or runtime credentials.
25601
25602 • Config: secret_access_key
25603
25604 • Env Var: RCLONE_QINGSTOR_SECRET_ACCESS_KEY
25605
25606 • Type: string
25607
25608 • Default: ""
25609
25610 --qingstor-endpoint
25611 Enter an endpoint URL to connection QingStor API. Leave blank will use
25612 the default value "https://qingstor.com:443"
25613
25614 • Config: endpoint
25615
25616 • Env Var: RCLONE_QINGSTOR_ENDPOINT
25617
25618 • Type: string
25619
25620 • Default: ""
25621
25622 --qingstor-zone
25623 Zone to connect to. Default is "pek3a".
25624
25625 • Config: zone
25626
25627 • Env Var: RCLONE_QINGSTOR_ZONE
25628
25629 • Type: string
25630
25631 • Default: ""
25632
25633 • Examples:
25634
25635 • "pek3a"
25636
25637 • The Beijing (China) Three Zone
25638
25639 • Needs location constraint pek3a.
25640
25641 • "sh1a"
25642
25643 • The Shanghai (China) First Zone
25644
25645 • Needs location constraint sh1a.
25646
25647 • "gd2a"
25648
25649 • The Guangdong (China) Second Zone
25650
25651 • Needs location constraint gd2a.
25652
25653 Advanced Options
25654 Here are the advanced options specific to qingstor (QingCloud Object
25655 Storage).
25656
25657 --qingstor-connection-retries
25658 Number of connection retries.
25659
25660 • Config: connection_retries
25661
25662 • Env Var: RCLONE_QINGSTOR_CONNECTION_RETRIES
25663
25664 • Type: int
25665
25666 • Default: 3
25667
25668 --qingstor-upload-cutoff
25669 Cutoff for switching to chunked upload
25670
25671 Any files larger than this will be uploaded in chunks of chunk_size.
25672 The minimum is 0 and the maximum is 5GB.
25673
25674 • Config: upload_cutoff
25675
25676 • Env Var: RCLONE_QINGSTOR_UPLOAD_CUTOFF
25677
25678 • Type: SizeSuffix
25679
25680 • Default: 200M
25681
25682 --qingstor-chunk-size
25683 Chunk size to use for uploading.
25684
25685 When uploading files larger than upload_cutoff they will be uploaded as
25686 multipart uploads using this chunk size.
25687
25688 Note that "--qingstor-upload-concurrency" chunks of this size are
25689 buffered in memory per transfer.
25690
25691 If you are transferring large files over high-speed links and you have
25692 enough memory, then increasing this will speed up the transfers.
25693
25694 • Config: chunk_size
25695
25696 • Env Var: RCLONE_QINGSTOR_CHUNK_SIZE
25697
25698 • Type: SizeSuffix
25699
25700 • Default: 4M
25701
25702 --qingstor-upload-concurrency
25703 Concurrency for multipart uploads.
25704
25705 This is the number of chunks of the same file that are uploaded concur‐
25706 rently.
25707
25708 NB if you set this to > 1 then the checksums of multipart uploads be‐
25709 come corrupted (the uploads themselves are not corrupted though).
25710
25711 If you are uploading small numbers of large files over high-speed links
25712 and these uploads do not fully utilize your bandwidth, then increasing
25713 this may help to speed up the transfers.
25714
25715 • Config: upload_concurrency
25716
25717 • Env Var: RCLONE_QINGSTOR_UPLOAD_CONCURRENCY
25718
25719 • Type: int
25720
25721 • Default: 1
25722
25723 --qingstor-encoding
25724 This sets the encoding for the backend.
25725
25726 See: the encoding section in the overview (https://rclone.org/over‐
25727 view/#encoding) for more info.
25728
25729 • Config: encoding
25730
25731 • Env Var: RCLONE_QINGSTOR_ENCODING
25732
25733 • Type: MultiEncoder
25734
25735 • Default: Slash,Ctl,InvalidUtf8
25736
25737 Limitations
25738 rclone about is not supported by the qingstor backend. Backends with‐
25739 out this capability cannot determine free space for an rclone mount or
25740 use policy mfs (most free space) as a member of an rclone union remote.
25741
25742 See List of backends that do not support rclone about
25743 (https://rclone.org/overview/#optional-features) See rclone about
25744 (https://rclone.org/commands/rclone_about/)
25745
25746 Swift
25747 Swift refers to OpenStack Object Storage (https://docs.open‐
25748 stack.org/swift/latest/). Commercial implementations of that being:
25749
25750 • Rackspace Cloud Files (https://www.rackspace.com/cloud/files/)
25751
25752 • Memset Memstore (https://www.memset.com/cloud/storage/)
25753
25754 • OVH Object Storage (https://www.ovh.co.uk/public-cloud/storage/ob‐
25755 ject-storage/)
25756
25757 • Oracle Cloud Storage (https://cloud.oracle.com/storage-opc)
25758
25759 • IBM Bluemix Cloud ObjectStorage Swift (https://con‐
25760 sole.bluemix.net/docs/infrastructure/objectstorage-swift/index.html)
25761
25762 Paths are specified as remote:container (or remote: for the lsd com‐
25763 mand.) You may put subdirectories in too, e.g. remote:contain‐
25764 er/path/to/dir.
25765
25766 Here is an example of making a swift configuration. First run
25767
25768 rclone config
25769
25770 This will guide you through an interactive setup process.
25771
25772 No remotes found - make a new one
25773 n) New remote
25774 s) Set configuration password
25775 q) Quit config
25776 n/s/q> n
25777 name> remote
25778 Type of storage to configure.
25779 Choose a number from below, or type in your own value
25780 [snip]
25781 XX / OpenStack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
25782 \ "swift"
25783 [snip]
25784 Storage> swift
25785 Get swift credentials from environment variables in standard OpenStack form.
25786 Choose a number from below, or type in your own value
25787 1 / Enter swift credentials in the next step
25788 \ "false"
25789 2 / Get swift credentials from environment vars. Leave other fields blank if using this.
25790 \ "true"
25791 env_auth> true
25792 User name to log in (OS_USERNAME).
25793 user>
25794 API key or password (OS_PASSWORD).
25795 key>
25796 Authentication URL for server (OS_AUTH_URL).
25797 Choose a number from below, or type in your own value
25798 1 / Rackspace US
25799 \ "https://auth.api.rackspacecloud.com/v1.0"
25800 2 / Rackspace UK
25801 \ "https://lon.auth.api.rackspacecloud.com/v1.0"
25802 3 / Rackspace v2
25803 \ "https://identity.api.rackspacecloud.com/v2.0"
25804 4 / Memset Memstore UK
25805 \ "https://auth.storage.memset.com/v1.0"
25806 5 / Memset Memstore UK v2
25807 \ "https://auth.storage.memset.com/v2.0"
25808 6 / OVH
25809 \ "https://auth.cloud.ovh.net/v3"
25810 auth>
25811 User ID to log in - optional - most swift systems use user and leave this blank (v3 auth) (OS_USER_ID).
25812 user_id>
25813 User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
25814 domain>
25815 Tenant name - optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME)
25816 tenant>
25817 Tenant ID - optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID)
25818 tenant_id>
25819 Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
25820 tenant_domain>
25821 Region name - optional (OS_REGION_NAME)
25822 region>
25823 Storage URL - optional (OS_STORAGE_URL)
25824 storage_url>
25825 Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
25826 auth_token>
25827 AuthVersion - optional - set to (1,2,3) if your auth URL has no version (ST_AUTH_VERSION)
25828 auth_version>
25829 Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE)
25830 Choose a number from below, or type in your own value
25831 1 / Public (default, choose this if not sure)
25832 \ "public"
25833 2 / Internal (use internal service net)
25834 \ "internal"
25835 3 / Admin
25836 \ "admin"
25837 endpoint_type>
25838 Remote config
25839 --------------------
25840 [test]
25841 env_auth = true
25842 user =
25843 key =
25844 auth =
25845 user_id =
25846 domain =
25847 tenant =
25848 tenant_id =
25849 tenant_domain =
25850 region =
25851 storage_url =
25852 auth_token =
25853 auth_version =
25854 endpoint_type =
25855 --------------------
25856 y) Yes this is OK
25857 e) Edit this remote
25858 d) Delete this remote
25859 y/e/d> y
25860
25861 This remote is called remote and can now be used like this
25862
25863 See all containers
25864
25865 rclone lsd remote:
25866
25867 Make a new container
25868
25869 rclone mkdir remote:container
25870
25871 List the contents of a container
25872
25873 rclone ls remote:container
25874
25875 Sync /home/local/directory to the remote container, deleting any excess
25876 files in the container.
25877
25878 rclone sync -i /home/local/directory remote:container
25879
25880 Configuration from an OpenStack credentials file
25881 An OpenStack credentials file typically looks something something like
25882 this (without the comments)
25883
25884 export OS_AUTH_URL=https://a.provider.net/v2.0
25885 export OS_TENANT_ID=ffffffffffffffffffffffffffffffff
25886 export OS_TENANT_NAME="1234567890123456"
25887 export OS_USERNAME="123abc567xy"
25888 echo "Please enter your OpenStack Password: "
25889 read -sr OS_PASSWORD_INPUT
25890 export OS_PASSWORD=$OS_PASSWORD_INPUT
25891 export OS_REGION_NAME="SBG1"
25892 if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
25893
25894 The config file needs to look something like this where $OS_USERNAME
25895 represents the value of the OS_USERNAME variable - 123abc567xy in the
25896 example above.
25897
25898 [remote]
25899 type = swift
25900 user = $OS_USERNAME
25901 key = $OS_PASSWORD
25902 auth = $OS_AUTH_URL
25903 tenant = $OS_TENANT_NAME
25904
25905 Note that you may (or may not) need to set region too - try without
25906 first.
25907
25908 Configuration from the environment
25909 If you prefer you can configure rclone to use swift using a standard
25910 set of OpenStack environment variables.
25911
25912 When you run through the config, make sure you choose true for env_auth
25913 and leave everything else blank.
25914
25915 rclone will then set any empty config parameters from the environment
25916 using standard OpenStack environment variables. There is a list of the
25917 variables (https://godoc.org/github.com/ncw/swift#Connection.ApplyEnvi‐
25918 ronment) in the docs for the swift library.
25919
25920 Using an alternate authentication method
25921 If your OpenStack installation uses a non-standard authentication meth‐
25922 od that might not be yet supported by rclone or the underlying swift
25923 library, you can authenticate externally (e.g. calling manually the
25924 openstack commands to get a token). Then, you just need to pass the
25925 two configuration variables auth_token and storage_url. If they are
25926 both provided, the other variables are ignored. rclone will not try to
25927 authenticate but instead assume it is already authenticated and use
25928 these two variables to access the OpenStack installation.
25929
25930 Using rclone without a config file
25931 You can use rclone with swift without a config file, if desired, like
25932 this:
25933
25934 source openstack-credentials-file
25935 export RCLONE_CONFIG_MYREMOTE_TYPE=swift
25936 export RCLONE_CONFIG_MYREMOTE_ENV_AUTH=true
25937 rclone lsd myremote:
25938
25939 --fast-list
25940 This remote supports --fast-list which allows you to use fewer transac‐
25941 tions in exchange for more memory. See the rclone docs
25942 (https://rclone.org/docs/#fast-list) for more details.
25943
25944 --update and --use-server-modtime
25945 As noted below, the modified time is stored on metadata on the object.
25946 It is used by default for all operations that require checking the time
25947 a file was last updated. It allows rclone to treat the remote more
25948 like a true filesystem, but it is inefficient because it requires an
25949 extra API call to retrieve the metadata.
25950
25951 For many operations, the time the object was last uploaded to the re‐
25952 mote is sufficient to determine if it is "dirty". By using --update
25953 along with --use-server-modtime, you can avoid the extra API call and
25954 simply upload files whose local modtime is newer than the time it was
25955 last uploaded.
25956
25957 Standard Options
25958 Here are the standard options specific to swift (OpenStack Swift
25959 (Rackspace Cloud Files, Memset Memstore, OVH)).
25960
25961 --swift-env-auth
25962 Get swift credentials from environment variables in standard OpenStack
25963 form.
25964
25965 • Config: env_auth
25966
25967 • Env Var: RCLONE_SWIFT_ENV_AUTH
25968
25969 • Type: bool
25970
25971 • Default: false
25972
25973 • Examples:
25974
25975 • "false"
25976
25977 • Enter swift credentials in the next step
25978
25979 • "true"
25980
25981 • Get swift credentials from environment vars. Leave other fields
25982 blank if using this.
25983
25984 --swift-user
25985 User name to log in (OS_USERNAME).
25986
25987 • Config: user
25988
25989 • Env Var: RCLONE_SWIFT_USER
25990
25991 • Type: string
25992
25993 • Default: ""
25994
25995 --swift-key
25996 API key or password (OS_PASSWORD).
25997
25998 • Config: key
25999
26000 • Env Var: RCLONE_SWIFT_KEY
26001
26002 • Type: string
26003
26004 • Default: ""
26005
26006 --swift-auth
26007 Authentication URL for server (OS_AUTH_URL).
26008
26009 • Config: auth
26010
26011 • Env Var: RCLONE_SWIFT_AUTH
26012
26013 • Type: string
26014
26015 • Default: ""
26016
26017 • Examples:
26018
26019 • "https://auth.api.rackspacecloud.com/v1.0"
26020
26021 • Rackspace US
26022
26023 • "https://lon.auth.api.rackspacecloud.com/v1.0"
26024
26025 • Rackspace UK
26026
26027 • "https://identity.api.rackspacecloud.com/v2.0"
26028
26029 • Rackspace v2
26030
26031 • "https://auth.storage.memset.com/v1.0"
26032
26033 • Memset Memstore UK
26034
26035 • "https://auth.storage.memset.com/v2.0"
26036
26037 • Memset Memstore UK v2
26038
26039 • "https://auth.cloud.ovh.net/v3"
26040
26041 • OVH
26042
26043 --swift-user-id
26044 User ID to log in - optional - most swift systems use user and leave
26045 this blank (v3 auth) (OS_USER_ID).
26046
26047 • Config: user_id
26048
26049 • Env Var: RCLONE_SWIFT_USER_ID
26050
26051 • Type: string
26052
26053 • Default: ""
26054
26055 --swift-domain
26056 User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
26057
26058 • Config: domain
26059
26060 • Env Var: RCLONE_SWIFT_DOMAIN
26061
26062 • Type: string
26063
26064 • Default: ""
26065
26066 --swift-tenant
26067 Tenant name - optional for v1 auth, this or tenant_id required other‐
26068 wise (OS_TENANT_NAME or OS_PROJECT_NAME)
26069
26070 • Config: tenant
26071
26072 • Env Var: RCLONE_SWIFT_TENANT
26073
26074 • Type: string
26075
26076 • Default: ""
26077
26078 --swift-tenant-id
26079 Tenant ID - optional for v1 auth, this or tenant required otherwise
26080 (OS_TENANT_ID)
26081
26082 • Config: tenant_id
26083
26084 • Env Var: RCLONE_SWIFT_TENANT_ID
26085
26086 • Type: string
26087
26088 • Default: ""
26089
26090 --swift-tenant-domain
26091 Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
26092
26093 • Config: tenant_domain
26094
26095 • Env Var: RCLONE_SWIFT_TENANT_DOMAIN
26096
26097 • Type: string
26098
26099 • Default: ""
26100
26101 --swift-region
26102 Region name - optional (OS_REGION_NAME)
26103
26104 • Config: region
26105
26106 • Env Var: RCLONE_SWIFT_REGION
26107
26108 • Type: string
26109
26110 • Default: ""
26111
26112 --swift-storage-url
26113 Storage URL - optional (OS_STORAGE_URL)
26114
26115 • Config: storage_url
26116
26117 • Env Var: RCLONE_SWIFT_STORAGE_URL
26118
26119 • Type: string
26120
26121 • Default: ""
26122
26123 --swift-auth-token
26124 Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
26125
26126 • Config: auth_token
26127
26128 • Env Var: RCLONE_SWIFT_AUTH_TOKEN
26129
26130 • Type: string
26131
26132 • Default: ""
26133
26134 --swift-application-credential-id
26135 Application Credential ID (OS_APPLICATION_CREDENTIAL_ID)
26136
26137 • Config: application_credential_id
26138
26139 • Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_ID
26140
26141 • Type: string
26142
26143 • Default: ""
26144
26145 --swift-application-credential-name
26146 Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME)
26147
26148 • Config: application_credential_name
26149
26150 • Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_NAME
26151
26152 • Type: string
26153
26154 • Default: ""
26155
26156 --swift-application-credential-secret
26157 Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET)
26158
26159 • Config: application_credential_secret
26160
26161 • Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_SECRET
26162
26163 • Type: string
26164
26165 • Default: ""
26166
26167 --swift-auth-version
26168 AuthVersion - optional - set to (1,2,3) if your auth URL has no version
26169 (ST_AUTH_VERSION)
26170
26171 • Config: auth_version
26172
26173 • Env Var: RCLONE_SWIFT_AUTH_VERSION
26174
26175 • Type: int
26176
26177 • Default: 0
26178
26179 --swift-endpoint-type
26180 Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE)
26181
26182 • Config: endpoint_type
26183
26184 • Env Var: RCLONE_SWIFT_ENDPOINT_TYPE
26185
26186 • Type: string
26187
26188 • Default: "public"
26189
26190 • Examples:
26191
26192 • "public"
26193
26194 • Public (default, choose this if not sure)
26195
26196 • "internal"
26197
26198 • Internal (use internal service net)
26199
26200 • "admin"
26201
26202 • Admin
26203
26204 --swift-storage-policy
26205 The storage policy to use when creating a new container
26206
26207 This applies the specified storage policy when creating a new contain‐
26208 er. The policy cannot be changed afterwards. The allowed configura‐
26209 tion values and their meaning depend on your Swift storage provider.
26210
26211 • Config: storage_policy
26212
26213 • Env Var: RCLONE_SWIFT_STORAGE_POLICY
26214
26215 • Type: string
26216
26217 • Default: ""
26218
26219 • Examples:
26220
26221 • ""
26222
26223 • Default
26224
26225 • "pcs"
26226
26227 • OVH Public Cloud Storage
26228
26229 • "pca"
26230
26231 • OVH Public Cloud Archive
26232
26233 Advanced Options
26234 Here are the advanced options specific to swift (OpenStack Swift
26235 (Rackspace Cloud Files, Memset Memstore, OVH)).
26236
26237 --swift-leave-parts-on-error
26238 If true avoid calling abort upload on a failure. It should be set to
26239 true for resuming uploads across different sessions.
26240
26241 • Config: leave_parts_on_error
26242
26243 • Env Var: RCLONE_SWIFT_LEAVE_PARTS_ON_ERROR
26244
26245 • Type: bool
26246
26247 • Default: false
26248
26249 --swift-chunk-size
26250 Above this size files will be chunked into a _segments container.
26251
26252 Above this size files will be chunked into a _segments container. The
26253 default for this is 5GB which is its maximum value.
26254
26255 • Config: chunk_size
26256
26257 • Env Var: RCLONE_SWIFT_CHUNK_SIZE
26258
26259 • Type: SizeSuffix
26260
26261 • Default: 5G
26262
26263 --swift-no-chunk
26264 Don't chunk files during streaming upload.
26265
26266 When doing streaming uploads (e.g. using rcat or mount) setting this
26267 flag will cause the swift backend to not upload chunked files.
26268
26269 This will limit the maximum upload size to 5GB. However non chunked
26270 files are easier to deal with and have an MD5SUM.
26271
26272 Rclone will still chunk files bigger than chunk_size when doing normal
26273 copy operations.
26274
26275 • Config: no_chunk
26276
26277 • Env Var: RCLONE_SWIFT_NO_CHUNK
26278
26279 • Type: bool
26280
26281 • Default: false
26282
26283 --swift-encoding
26284 This sets the encoding for the backend.
26285
26286 See: the encoding section in the overview (https://rclone.org/over‐
26287 view/#encoding) for more info.
26288
26289 • Config: encoding
26290
26291 • Env Var: RCLONE_SWIFT_ENCODING
26292
26293 • Type: MultiEncoder
26294
26295 • Default: Slash,InvalidUtf8
26296
26297 Modified time
26298 The modified time is stored as metadata on the object as X-Ob‐
26299 ject-Meta-Mtime as floating point since the epoch accurate to 1 ns.
26300
26301 This is a de facto standard (used in the official python-swiftclient
26302 amongst others) for storing the modification time for an object.
26303
26304 Restricted filename characters
26305 Character Value Replacement
26306 ────────────────────────────────
26307 NUL 0x00 ␀
26308 / 0x2F /
26309
26310 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26311 view/#invalid-utf8), as they can't be used in JSON strings.
26312
26313 Limitations
26314 The Swift API doesn't return a correct MD5SUM for segmented files (Dy‐
26315 namic or Static Large Objects) so rclone won't check or use the MD5SUM
26316 for these.
26317
26318 Troubleshooting
26319 Rclone gives Failed to create file system for "remote:": Bad Request
26320 Due to an oddity of the underlying swift library, it gives a "Bad Re‐
26321 quest" error rather than a more sensible error when the authentication
26322 fails for Swift.
26323
26324 So this most likely means your username / password is wrong. You can
26325 investigate further with the --dump-bodies flag.
26326
26327 This may also be caused by specifying the region when you shouldn't
26328 have (e.g. OVH).
26329
26330 Rclone gives Failed to create file system: Response didn't have storage url
26331 and auth token
26332 This is most likely caused by forgetting to specify your tenant when
26333 setting up a swift remote.
26334
26335 pCloud
26336 Paths are specified as remote:path
26337
26338 Paths may be as deep as required, e.g. remote:directory/subdirectory.
26339
26340 The initial setup for pCloud involves getting a token from pCloud which
26341 you need to do in your browser. rclone config walks you through it.
26342
26343 Here is an example of how to make a remote called remote. First run:
26344
26345 rclone config
26346
26347 This will guide you through an interactive setup process:
26348
26349 No remotes found - make a new one
26350 n) New remote
26351 s) Set configuration password
26352 q) Quit config
26353 n/s/q> n
26354 name> remote
26355 Type of storage to configure.
26356 Choose a number from below, or type in your own value
26357 [snip]
26358 XX / Pcloud
26359 \ "pcloud"
26360 [snip]
26361 Storage> pcloud
26362 Pcloud App Client Id - leave blank normally.
26363 client_id>
26364 Pcloud App Client Secret - leave blank normally.
26365 client_secret>
26366 Remote config
26367 Use auto config?
26368 * Say Y if not sure
26369 * Say N if you are working on a remote or headless machine
26370 y) Yes
26371 n) No
26372 y/n> y
26373 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
26374 Log in and authorize rclone for access
26375 Waiting for code...
26376 Got code
26377 --------------------
26378 [remote]
26379 client_id =
26380 client_secret =
26381 token = {"access_token":"XXX","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}
26382 --------------------
26383 y) Yes this is OK
26384 e) Edit this remote
26385 d) Delete this remote
26386 y/e/d> y
26387
26388 See the remote setup docs (https://rclone.org/remote_setup/) for how to
26389 set it up on a machine with no Internet browser available.
26390
26391 Note that rclone runs a webserver on your local machine to collect the
26392 token as returned from pCloud. This only runs from the moment it opens
26393 your browser to the moment you get back the verification code. This is
26394 on http://127.0.0.1:53682/ and this it may require you to unblock it
26395 temporarily if you are running a host firewall.
26396
26397 Once configured you can then use rclone like this,
26398
26399 List directories in top level of your pCloud
26400
26401 rclone lsd remote:
26402
26403 List all the files in your pCloud
26404
26405 rclone ls remote:
26406
26407 To copy a local directory to an pCloud directory called backup
26408
26409 rclone copy /home/source remote:backup
26410
26411 Modified time and hashes
26412 pCloud allows modification times to be set on objects accurate to 1
26413 second. These will be used to detect whether objects need syncing or
26414 not. In order to set a Modification time pCloud requires the object be
26415 re-uploaded.
26416
26417 pCloud supports MD5 and SHA1 type hashes in the US region but and SHA1
26418 only in the EU region, so you can use the --checksum flag.
26419
26420 (Note that pCloud also support SHA256 in the EU region, but rclone does
26421 not have support for that yet.)
26422
26423 Restricted filename characters
26424 In addition to the default restricted characters set
26425 (https://rclone.org/overview/#restricted-characters) the following
26426 characters are also replaced:
26427
26428 Character Value Replacement
26429 ────────────────────────────────
26430 \ 0x5C \
26431
26432 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26433 view/#invalid-utf8), as they can't be used in JSON strings.
26434
26435 Deleting files
26436 Deleted files will be moved to the trash. Your subscription level will
26437 determine how long items stay in the trash. rclone cleanup can be used
26438 to empty the trash.
26439
26440 Root folder ID
26441 You can set the root_folder_id for rclone. This is the directory
26442 (identified by its Folder ID) that rclone considers to be the root of
26443 your pCloud drive.
26444
26445 Normally you will leave this blank and rclone will determine the cor‐
26446 rect root to use itself.
26447
26448 However you can set this to restrict rclone to a specific folder hier‐
26449 archy.
26450
26451 In order to do this you will have to find the Folder ID of the directo‐
26452 ry you wish rclone to display. This will be the folder field of the
26453 URL when you open the relevant folder in the pCloud web interface.
26454
26455 So if the folder you want rclone to use has a URL which looks like
26456 https://my.pcloud.com/#page=filemanager&folder=5xxxxxxxx8&tpl=folder‐
26457 grid in the browser, then you use 5xxxxxxxx8 as the root_folder_id in
26458 the config.
26459
26460 Standard Options
26461 Here are the standard options specific to pcloud (Pcloud).
26462
26463 --pcloud-client-id
26464 OAuth Client Id Leave blank normally.
26465
26466 • Config: client_id
26467
26468 • Env Var: RCLONE_PCLOUD_CLIENT_ID
26469
26470 • Type: string
26471
26472 • Default: ""
26473
26474 --pcloud-client-secret
26475 OAuth Client Secret Leave blank normally.
26476
26477 • Config: client_secret
26478
26479 • Env Var: RCLONE_PCLOUD_CLIENT_SECRET
26480
26481 • Type: string
26482
26483 • Default: ""
26484
26485 Advanced Options
26486 Here are the advanced options specific to pcloud (Pcloud).
26487
26488 --pcloud-token
26489 OAuth Access Token as a JSON blob.
26490
26491 • Config: token
26492
26493 • Env Var: RCLONE_PCLOUD_TOKEN
26494
26495 • Type: string
26496
26497 • Default: ""
26498
26499 --pcloud-auth-url
26500 Auth server URL. Leave blank to use the provider defaults.
26501
26502 • Config: auth_url
26503
26504 • Env Var: RCLONE_PCLOUD_AUTH_URL
26505
26506 • Type: string
26507
26508 • Default: ""
26509
26510 --pcloud-token-url
26511 Token server url. Leave blank to use the provider defaults.
26512
26513 • Config: token_url
26514
26515 • Env Var: RCLONE_PCLOUD_TOKEN_URL
26516
26517 • Type: string
26518
26519 • Default: ""
26520
26521 --pcloud-encoding
26522 This sets the encoding for the backend.
26523
26524 See: the encoding section in the overview (https://rclone.org/over‐
26525 view/#encoding) for more info.
26526
26527 • Config: encoding
26528
26529 • Env Var: RCLONE_PCLOUD_ENCODING
26530
26531 • Type: MultiEncoder
26532
26533 • Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
26534
26535 --pcloud-root-folder-id
26536 Fill in for rclone to use a non root folder as its starting point.
26537
26538 • Config: root_folder_id
26539
26540 • Env Var: RCLONE_PCLOUD_ROOT_FOLDER_ID
26541
26542 • Type: string
26543
26544 • Default: "d0"
26545
26546 --pcloud-hostname
26547 Hostname to connect to.
26548
26549 This is normally set when rclone initially does the oauth connection,
26550 however you will need to set it by hand if you are using remote config
26551 with rclone authorize.
26552
26553 • Config: hostname
26554
26555 • Env Var: RCLONE_PCLOUD_HOSTNAME
26556
26557 • Type: string
26558
26559 • Default: "api.pcloud.com"
26560
26561 • Examples:
26562
26563 • "api.pcloud.com"
26564
26565 • Original/US region
26566
26567 • "eapi.pcloud.com"
26568
26569 • EU region
26570
26571 premiumize.me
26572 Paths are specified as remote:path
26573
26574 Paths may be as deep as required, e.g. remote:directory/subdirectory.
26575
26576 The initial setup for premiumize.me (https://premiumize.me/) involves
26577 getting a token from premiumize.me which you need to do in your brows‐
26578 er. rclone config walks you through it.
26579
26580 Here is an example of how to make a remote called remote. First run:
26581
26582 rclone config
26583
26584 This will guide you through an interactive setup process:
26585
26586 No remotes found - make a new one
26587 n) New remote
26588 s) Set configuration password
26589 q) Quit config
26590 n/s/q> n
26591 name> remote
26592 Type of storage to configure.
26593 Enter a string value. Press Enter for the default ("").
26594 Choose a number from below, or type in your own value
26595 [snip]
26596 XX / premiumize.me
26597 \ "premiumizeme"
26598 [snip]
26599 Storage> premiumizeme
26600 ** See help for premiumizeme backend at: https://rclone.org/premiumizeme/ **
26601
26602 Remote config
26603 Use auto config?
26604 * Say Y if not sure
26605 * Say N if you are working on a remote or headless machine
26606 y) Yes
26607 n) No
26608 y/n> y
26609 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
26610 Log in and authorize rclone for access
26611 Waiting for code...
26612 Got code
26613 --------------------
26614 [remote]
26615 type = premiumizeme
26616 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2029-08-07T18:44:15.548915378+01:00"}
26617 --------------------
26618 y) Yes this is OK
26619 e) Edit this remote
26620 d) Delete this remote
26621 y/e/d>
26622
26623 See the remote setup docs (https://rclone.org/remote_setup/) for how to
26624 set it up on a machine with no Internet browser available.
26625
26626 Note that rclone runs a webserver on your local machine to collect the
26627 token as returned from premiumize.me. This only runs from the moment
26628 it opens your browser to the moment you get back the verification code.
26629 This is on http://127.0.0.1:53682/ and this it may require you to un‐
26630 block it temporarily if you are running a host firewall.
26631
26632 Once configured you can then use rclone like this,
26633
26634 List directories in top level of your premiumize.me
26635
26636 rclone lsd remote:
26637
26638 List all the files in your premiumize.me
26639
26640 rclone ls remote:
26641
26642 To copy a local directory to an premiumize.me directory called backup
26643
26644 rclone copy /home/source remote:backup
26645
26646 Modified time and hashes
26647 premiumize.me does not support modification times or hashes, therefore
26648 syncing will default to --size-only checking. Note that using --update
26649 will work.
26650
26651 Restricted filename characters
26652 In addition to the default restricted characters set
26653 (https://rclone.org/overview/#restricted-characters) the following
26654 characters are also replaced:
26655
26656 Character Value Replacement
26657 ────────────────────────────────
26658 \ 0x5C \
26659 " 0x22 "
26660
26661 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26662 view/#invalid-utf8), as they can't be used in JSON strings.
26663
26664 Standard Options
26665 Here are the standard options specific to premiumizeme (premiumize.me).
26666
26667 --premiumizeme-api-key
26668 API Key.
26669
26670 This is not normally used - use oauth instead.
26671
26672 • Config: api_key
26673
26674 • Env Var: RCLONE_PREMIUMIZEME_API_KEY
26675
26676 • Type: string
26677
26678 • Default: ""
26679
26680 Advanced Options
26681 Here are the advanced options specific to premiumizeme (premiumize.me).
26682
26683 --premiumizeme-encoding
26684 This sets the encoding for the backend.
26685
26686 See: the encoding section in the overview (https://rclone.org/over‐
26687 view/#encoding) for more info.
26688
26689 • Config: encoding
26690
26691 • Env Var: RCLONE_PREMIUMIZEME_ENCODING
26692
26693 • Type: MultiEncoder
26694
26695 • Default: Slash,DoubleQuote,BackSlash,Del,Ctl,InvalidUtf8,Dot
26696
26697 Limitations
26698 Note that premiumize.me is case insensitive so you can't have a file
26699 called "Hello.doc" and one called "hello.doc".
26700
26701 premiumize.me file names can't have the \ or " characters in. rclone
26702 maps these to and from an identical looking unicode equivalents \ and
26703 "
26704
26705 premiumize.me only supports filenames up to 255 characters in length.
26706
26707 put.io
26708 Paths are specified as remote:path
26709
26710 put.io paths may be as deep as required, e.g. remote:directory/subdi‐
26711 rectory.
26712
26713 The initial setup for put.io involves getting a token from put.io which
26714 you need to do in your browser. rclone config walks you through it.
26715
26716 Here is an example of how to make a remote called remote. First run:
26717
26718 rclone config
26719
26720 This will guide you through an interactive setup process:
26721
26722 No remotes found - make a new one
26723 n) New remote
26724 s) Set configuration password
26725 q) Quit config
26726 n/s/q> n
26727 name> putio
26728 Type of storage to configure.
26729 Enter a string value. Press Enter for the default ("").
26730 Choose a number from below, or type in your own value
26731 [snip]
26732 XX / Put.io
26733 \ "putio"
26734 [snip]
26735 Storage> putio
26736 ** See help for putio backend at: https://rclone.org/putio/ **
26737
26738 Remote config
26739 Use auto config?
26740 * Say Y if not sure
26741 * Say N if you are working on a remote or headless machine
26742 y) Yes
26743 n) No
26744 y/n> y
26745 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
26746 Log in and authorize rclone for access
26747 Waiting for code...
26748 Got code
26749 --------------------
26750 [putio]
26751 type = putio
26752 token = {"access_token":"XXXXXXXX","expiry":"0001-01-01T00:00:00Z"}
26753 --------------------
26754 y) Yes this is OK
26755 e) Edit this remote
26756 d) Delete this remote
26757 y/e/d> y
26758 Current remotes:
26759
26760 Name Type
26761 ==== ====
26762 putio putio
26763
26764 e) Edit existing remote
26765 n) New remote
26766 d) Delete remote
26767 r) Rename remote
26768 c) Copy remote
26769 s) Set configuration password
26770 q) Quit config
26771 e/n/d/r/c/s/q> q
26772
26773 Note that rclone runs a webserver on your local machine to collect the
26774 token as returned from Google if you use auto config mode. This only
26775 runs from the moment it opens your browser to the moment you get back
26776 the verification code. This is on http://127.0.0.1:53682/ and this it
26777 may require you to unblock it temporarily if you are running a host
26778 firewall, or use manual mode.
26779
26780 You can then use it like this,
26781
26782 List directories in top level of your put.io
26783
26784 rclone lsd remote:
26785
26786 List all the files in your put.io
26787
26788 rclone ls remote:
26789
26790 To copy a local directory to a put.io directory called backup
26791
26792 rclone copy /home/source remote:backup
26793
26794 Restricted filename characters
26795 In addition to the default restricted characters set
26796 (https://rclone.org/overview/#restricted-characters) the following
26797 characters are also replaced:
26798
26799 Character Value Replacement
26800 ────────────────────────────────
26801 \ 0x5C \
26802
26803 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26804 view/#invalid-utf8), as they can't be used in JSON strings.
26805
26806 Advanced Options
26807 Here are the advanced options specific to putio (Put.io).
26808
26809 --putio-encoding
26810 This sets the encoding for the backend.
26811
26812 See: the encoding section in the overview (https://rclone.org/over‐
26813 view/#encoding) for more info.
26814
26815 • Config: encoding
26816
26817 • Env Var: RCLONE_PUTIO_ENCODING
26818
26819 • Type: MultiEncoder
26820
26821 • Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
26822
26823 Seafile
26824 This is a backend for the Seafile (https://www.seafile.com/) storage
26825 service: - It works with both the free community edition or the profes‐
26826 sional edition. - Seafile versions 6.x and 7.x are all supported. -
26827 Encrypted libraries are also supported. - It supports 2FA enabled
26828 users
26829
26830 Root mode vs Library mode
26831 There are two distinct modes you can setup your remote: - you point
26832 your remote to the root of the server, meaning you don't specify a li‐
26833 brary during the configuration: Paths are specified as remote:library.
26834 You may put subdirectories in too, e.g. remote:library/path/to/dir. -
26835 you point your remote to a specific library during the configuration:
26836 Paths are specified as remote:path/to/dir. This is the recommended
26837 mode when using encrypted libraries. (This mode is possibly slightly
26838 faster than the root mode)
26839
26840 Configuration in root mode
26841 Here is an example of making a seafile configuration for a user with no
26842 two-factor authentication. First run
26843
26844 rclone config
26845
26846 This will guide you through an interactive setup process. To authenti‐
26847 cate you will need the URL of your server, your email (or username) and
26848 your password.
26849
26850 No remotes found - make a new one
26851 n) New remote
26852 s) Set configuration password
26853 q) Quit config
26854 n/s/q> n
26855 name> seafile
26856 Type of storage to configure.
26857 Enter a string value. Press Enter for the default ("").
26858 Choose a number from below, or type in your own value
26859 [snip]
26860 XX / Seafile
26861 \ "seafile"
26862 [snip]
26863 Storage> seafile
26864 ** See help for seafile backend at: https://rclone.org/seafile/ **
26865
26866 URL of seafile host to connect to
26867 Enter a string value. Press Enter for the default ("").
26868 Choose a number from below, or type in your own value
26869 1 / Connect to cloud.seafile.com
26870 \ "https://cloud.seafile.com/"
26871 url> http://my.seafile.server/
26872 User name (usually email address)
26873 Enter a string value. Press Enter for the default ("").
26874 user> me@example.com
26875 Password
26876 y) Yes type in my own password
26877 g) Generate random password
26878 n) No leave this optional password blank (default)
26879 y/g> y
26880 Enter the password:
26881 password:
26882 Confirm the password:
26883 password:
26884 Two-factor authentication ('true' if the account has 2FA enabled)
26885 Enter a boolean value (true or false). Press Enter for the default ("false").
26886 2fa> false
26887 Name of the library. Leave blank to access all non-encrypted libraries.
26888 Enter a string value. Press Enter for the default ("").
26889 library>
26890 Library password (for encrypted libraries only). Leave blank if you pass it through the command line.
26891 y) Yes type in my own password
26892 g) Generate random password
26893 n) No leave this optional password blank (default)
26894 y/g/n> n
26895 Edit advanced config? (y/n)
26896 y) Yes
26897 n) No (default)
26898 y/n> n
26899 Remote config
26900 Two-factor authentication is not enabled on this account.
26901 --------------------
26902 [seafile]
26903 type = seafile
26904 url = http://my.seafile.server/
26905 user = me@example.com
26906 pass = *** ENCRYPTED ***
26907 2fa = false
26908 --------------------
26909 y) Yes this is OK (default)
26910 e) Edit this remote
26911 d) Delete this remote
26912 y/e/d> y
26913
26914 This remote is called seafile. It's pointing to the root of your
26915 seafile server and can now be used like this:
26916
26917 See all libraries
26918
26919 rclone lsd seafile:
26920
26921 Create a new library
26922
26923 rclone mkdir seafile:library
26924
26925 List the contents of a library
26926
26927 rclone ls seafile:library
26928
26929 Sync /home/local/directory to the remote library, deleting any excess
26930 files in the library.
26931
26932 rclone sync -i /home/local/directory seafile:library
26933
26934 Configuration in library mode
26935 Here's an example of a configuration in library mode with a user that
26936 has the two-factor authentication enabled. Your 2FA code will be asked
26937 at the end of the configuration, and will attempt to authenticate you:
26938
26939 No remotes found - make a new one
26940 n) New remote
26941 s) Set configuration password
26942 q) Quit config
26943 n/s/q> n
26944 name> seafile
26945 Type of storage to configure.
26946 Enter a string value. Press Enter for the default ("").
26947 Choose a number from below, or type in your own value
26948 [snip]
26949 XX / Seafile
26950 \ "seafile"
26951 [snip]
26952 Storage> seafile
26953 ** See help for seafile backend at: https://rclone.org/seafile/ **
26954
26955 URL of seafile host to connect to
26956 Enter a string value. Press Enter for the default ("").
26957 Choose a number from below, or type in your own value
26958 1 / Connect to cloud.seafile.com
26959 \ "https://cloud.seafile.com/"
26960 url> http://my.seafile.server/
26961 User name (usually email address)
26962 Enter a string value. Press Enter for the default ("").
26963 user> me@example.com
26964 Password
26965 y) Yes type in my own password
26966 g) Generate random password
26967 n) No leave this optional password blank (default)
26968 y/g> y
26969 Enter the password:
26970 password:
26971 Confirm the password:
26972 password:
26973 Two-factor authentication ('true' if the account has 2FA enabled)
26974 Enter a boolean value (true or false). Press Enter for the default ("false").
26975 2fa> true
26976 Name of the library. Leave blank to access all non-encrypted libraries.
26977 Enter a string value. Press Enter for the default ("").
26978 library> My Library
26979 Library password (for encrypted libraries only). Leave blank if you pass it through the command line.
26980 y) Yes type in my own password
26981 g) Generate random password
26982 n) No leave this optional password blank (default)
26983 y/g/n> n
26984 Edit advanced config? (y/n)
26985 y) Yes
26986 n) No (default)
26987 y/n> n
26988 Remote config
26989 Two-factor authentication: please enter your 2FA code
26990 2fa code> 123456
26991 Authenticating...
26992 Success!
26993 --------------------
26994 [seafile]
26995 type = seafile
26996 url = http://my.seafile.server/
26997 user = me@example.com
26998 pass =
26999 2fa = true
27000 library = My Library
27001 --------------------
27002 y) Yes this is OK (default)
27003 e) Edit this remote
27004 d) Delete this remote
27005 y/e/d> y
27006
27007 You'll notice your password is blank in the configuration. It's be‐
27008 cause we only need the password to authenticate you once.
27009
27010 You specified My Library during the configuration. The root of the re‐
27011 mote is pointing at the root of the library My Library:
27012
27013 See all files in the library:
27014
27015 rclone lsd seafile:
27016
27017 Create a new directory inside the library
27018
27019 rclone mkdir seafile:directory
27020
27021 List the contents of a directory
27022
27023 rclone ls seafile:directory
27024
27025 Sync /home/local/directory to the remote library, deleting any excess
27026 files in the library.
27027
27028 rclone sync -i /home/local/directory seafile:
27029
27030 --fast-list
27031 Seafile version 7+ supports --fast-list which allows you to use fewer
27032 transactions in exchange for more memory. See the rclone docs
27033 (https://rclone.org/docs/#fast-list) for more details. Please note
27034 this is not supported on seafile server version 6.x
27035
27036 Restricted filename characters
27037 In addition to the default restricted characters set
27038 (https://rclone.org/overview/#restricted-characters) the following
27039 characters are also replaced:
27040
27041 Character Value Replacement
27042 ────────────────────────────────
27043 / 0x2F /
27044 " 0x22 "
27045 \ 0x5C \
27046
27047 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
27048 view/#invalid-utf8), as they can't be used in JSON strings.
27049
27050 Seafile and rclone link
27051 Rclone supports generating share links for non-encrypted libraries on‐
27052 ly. They can either be for a file or a directory:
27053
27054 rclone link seafile:seafile-tutorial.doc
27055 http://my.seafile.server/f/fdcd8a2f93f84b8b90f4/
27056
27057 or if run on a directory you will get:
27058
27059 rclone link seafile:dir
27060 http://my.seafile.server/d/9ea2455f6f55478bbb0d/
27061
27062 Please note a share link is unique for each file or directory. If you
27063 run a link command on a file/dir that has already been shared, you will
27064 get the exact same link.
27065
27066 Compatibility
27067 It has been actively tested using the seafile docker image
27068 (https://github.com/haiwen/seafile-docker) of these versions: - 6.3.4
27069 community edition - 7.0.5 community edition - 7.1.3 community edition
27070
27071 Versions below 6.0 are not supported. Versions between 6.0 and 6.3
27072 haven't been tested and might not work properly.
27073
27074 Standard Options
27075 Here are the standard options specific to seafile (seafile).
27076
27077 --seafile-url
27078 URL of seafile host to connect to
27079
27080 • Config: url
27081
27082 • Env Var: RCLONE_SEAFILE_URL
27083
27084 • Type: string
27085
27086 • Default: ""
27087
27088 • Examples:
27089
27090 • "https://cloud.seafile.com/"
27091
27092 • Connect to cloud.seafile.com
27093
27094 --seafile-user
27095 User name (usually email address)
27096
27097 • Config: user
27098
27099 • Env Var: RCLONE_SEAFILE_USER
27100
27101 • Type: string
27102
27103 • Default: ""
27104
27105 --seafile-pass
27106 Password
27107
27108 NB Input to this must be obscured - see rclone obscure
27109 (https://rclone.org/commands/rclone_obscure/).
27110
27111 • Config: pass
27112
27113 • Env Var: RCLONE_SEAFILE_PASS
27114
27115 • Type: string
27116
27117 • Default: ""
27118
27119 --seafile-2fa
27120 Two-factor authentication ('true' if the account has 2FA enabled)
27121
27122 • Config: 2fa
27123
27124 • Env Var: RCLONE_SEAFILE_2FA
27125
27126 • Type: bool
27127
27128 • Default: false
27129
27130 --seafile-library
27131 Name of the library. Leave blank to access all non-encrypted li‐
27132 braries.
27133
27134 • Config: library
27135
27136 • Env Var: RCLONE_SEAFILE_LIBRARY
27137
27138 • Type: string
27139
27140 • Default: ""
27141
27142 --seafile-library-key
27143 Library password (for encrypted libraries only). Leave blank if you
27144 pass it through the command line.
27145
27146 NB Input to this must be obscured - see rclone obscure
27147 (https://rclone.org/commands/rclone_obscure/).
27148
27149 • Config: library_key
27150
27151 • Env Var: RCLONE_SEAFILE_LIBRARY_KEY
27152
27153 • Type: string
27154
27155 • Default: ""
27156
27157 --seafile-auth-token
27158 Authentication token
27159
27160 • Config: auth_token
27161
27162 • Env Var: RCLONE_SEAFILE_AUTH_TOKEN
27163
27164 • Type: string
27165
27166 • Default: ""
27167
27168 Advanced Options
27169 Here are the advanced options specific to seafile (seafile).
27170
27171 --seafile-create-library
27172 Should rclone create a library if it doesn't exist
27173
27174 • Config: create_library
27175
27176 • Env Var: RCLONE_SEAFILE_CREATE_LIBRARY
27177
27178 • Type: bool
27179
27180 • Default: false
27181
27182 --seafile-encoding
27183 This sets the encoding for the backend.
27184
27185 See: the encoding section in the overview (https://rclone.org/over‐
27186 view/#encoding) for more info.
27187
27188 • Config: encoding
27189
27190 • Env Var: RCLONE_SEAFILE_ENCODING
27191
27192 • Type: MultiEncoder
27193
27194 • Default: Slash,DoubleQuote,BackSlash,Ctl,InvalidUtf8
27195
27196 SFTP
27197 SFTP is the Secure (or SSH) File Transfer Protocol
27198 (https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol).
27199
27200 The SFTP backend can be used with a number of different providers:
27201
27202 • C14
27203
27204 • rsync.net
27205
27206 SFTP runs over SSH v2 and is installed as standard with most modern SSH
27207 installations.
27208
27209 Paths are specified as remote:path. If the path does not begin with a
27210 / it is relative to the home directory of the user. An empty path re‐
27211 mote: refers to the user's home directory.
27212
27213 "Note that some SFTP servers will need the leading / - Synology is a
27214 good example of this. rsync.net, on the other hand, requires users to
27215 OMIT the leading /.
27216
27217 Here is an example of making an SFTP configuration. First run
27218
27219 rclone config
27220
27221 This will guide you through an interactive setup process.
27222
27223 No remotes found - make a new one
27224 n) New remote
27225 s) Set configuration password
27226 q) Quit config
27227 n/s/q> n
27228 name> remote
27229 Type of storage to configure.
27230 Choose a number from below, or type in your own value
27231 [snip]
27232 XX / SSH/SFTP Connection
27233 \ "sftp"
27234 [snip]
27235 Storage> sftp
27236 SSH host to connect to
27237 Choose a number from below, or type in your own value
27238 1 / Connect to example.com
27239 \ "example.com"
27240 host> example.com
27241 SSH username, leave blank for current username, $USER
27242 user> sftpuser
27243 SSH port, leave blank to use default (22)
27244 port>
27245 SSH password, leave blank to use ssh-agent.
27246 y) Yes type in my own password
27247 g) Generate random password
27248 n) No leave this optional password blank
27249 y/g/n> n
27250 Path to unencrypted PEM-encoded private key file, leave blank to use ssh-agent.
27251 key_file>
27252 Remote config
27253 --------------------
27254 [remote]
27255 host = example.com
27256 user = sftpuser
27257 port =
27258 pass =
27259 key_file =
27260 --------------------
27261 y) Yes this is OK
27262 e) Edit this remote
27263 d) Delete this remote
27264 y/e/d> y
27265
27266 This remote is called remote and can now be used like this:
27267
27268 See all directories in the home directory
27269
27270 rclone lsd remote:
27271
27272 Make a new directory
27273
27274 rclone mkdir remote:path/to/directory
27275
27276 List the contents of a directory
27277
27278 rclone ls remote:path/to/directory
27279
27280 Sync /home/local/directory to the remote directory, deleting any excess
27281 files in the directory.
27282
27283 rclone sync -i /home/local/directory remote:directory
27284
27285 SSH Authentication
27286 The SFTP remote supports three authentication methods:
27287
27288 • Password
27289
27290 • Key file, including certificate signed keys
27291
27292 • ssh-agent
27293
27294 Key files should be PEM-encoded private key files. For instance
27295 /home/$USER/.ssh/id_rsa. Only unencrypted OpenSSH or PEM encrypted
27296 files are supported.
27297
27298 The key file can be specified in either an external file (key_file) or
27299 contained within the rclone config file (key_pem). If using key_pem in
27300 the config file, the entry should be on a single line with new line (''
27301 or '') separating lines. i.e.
27302
27303 key_pem = -----BEGIN RSA PRIVATE KEY-----0gAMbMbaSsd-----END RSA PRI‐
27304 VATE KEY-----
27305
27306 This will generate it correctly for key_pem for use in the config:
27307
27308 awk '{printf "%s\\n", $0}' < ~/.ssh/id_rsa
27309
27310 If you don't specify pass, key_file, or key_pem then rclone will at‐
27311 tempt to contact an ssh-agent.
27312
27313 You can also specify key_use_agent to force the usage of an ssh-agent.
27314 In this case key_file or key_pem can also be specified to force the us‐
27315 age of a specific key in the ssh-agent.
27316
27317 Using an ssh-agent is the only way to load encrypted OpenSSH keys at
27318 the moment.
27319
27320 If you set the --sftp-ask-password option, rclone will prompt for a
27321 password when needed and no password has been configured.
27322
27323 If you have a certificate then you can provide the path to the public
27324 key that contains the certificate. For example:
27325
27326 [remote]
27327 type = sftp
27328 host = example.com
27329 user = sftpuser
27330 key_file = ~/id_rsa
27331 pubkey_file = ~/id_rsa-cert.pub
27332
27333 If you concatenate a cert with a private key then you can specify the
27334 merged file in both places.
27335
27336 Note: the cert must come first in the file. e.g.
27337
27338 cat id_rsa-cert.pub id_rsa > merged_key
27339
27340 Host key validation
27341 By default rclone will not check the server's host key for validation.
27342 This can allow an attacker to replace a server with their own and if
27343 you use password authentication then this can lead to that password be‐
27344 ing exposed.
27345
27346 Host key matching, using standard known_hosts files can be turned on by
27347 enabling the known_hosts_file option. This can point to the file main‐
27348 tained by OpenSSH or can point to a unique file.
27349
27350 e.g.
27351
27352 [remote]
27353 type = sftp
27354 host = example.com
27355 user = sftpuser
27356 pass =
27357 known_hosts_file = ~/.ssh/known_hosts
27358
27359 There are some limitations:
27360
27361 • rclone will not manage this file for you. If the key is missing or
27362 wrong then the connection will be refused.
27363
27364 • If the server is set up for a certificate host key then the entry in
27365 the known_hosts file must be the @cert-authority entry for the CA
27366
27367 • Unlike OpenSSH, the libraries used by rclone do not permit (at time
27368 of writing) multiple host keys to be listed for a server. Only the
27369 first entry is used.
27370
27371 If the host key provided by the server does not match the one in the
27372 file (or is missing) then the connection will be aborted and an error
27373 returned such as
27374
27375 NewFs: couldn't connect SSH: ssh: handshake failed: knownhosts: key mismatch
27376
27377 or
27378
27379 NewFs: couldn't connect SSH: ssh: handshake failed: knownhosts: key is unknown
27380
27381 If you see an error such as
27382
27383 NewFs: couldn't connect SSH: ssh: handshake failed: ssh: no authorities for hostname: example.com:22
27384
27385 then it is likely the server has presented a CA signed host certificate
27386 and you will need to add the appropriate @cert-authority entry.
27387
27388 The known_hosts_file setting can be set during rclone config as an ad‐
27389 vanced option.
27390
27391 ssh-agent on macOS
27392 Note that there seem to be various problems with using an ssh-agent on
27393 macOS due to recent changes in the OS. The most effective work-around
27394 seems to be to start an ssh-agent in each session, e.g.
27395
27396 eval `ssh-agent -s` && ssh-add -A
27397
27398 And then at the end of the session
27399
27400 eval `ssh-agent -k`
27401
27402 These commands can be used in scripts of course.
27403
27404 Modified time
27405 Modified times are stored on the server to 1 second precision.
27406
27407 Modified times are used in syncing and are fully supported.
27408
27409 Some SFTP servers disable setting/modifying the file modification time
27410 after upload (for example, certain configurations of ProFTPd with
27411 mod_sftp). If you are using one of these servers, you can set the op‐
27412 tion set_modtime = false in your RClone backend configuration to dis‐
27413 able this behaviour.
27414
27415 Standard Options
27416 Here are the standard options specific to sftp (SSH/SFTP Connection).
27417
27418 --sftp-host
27419 SSH host to connect to
27420
27421 • Config: host
27422
27423 • Env Var: RCLONE_SFTP_HOST
27424
27425 • Type: string
27426
27427 • Default: ""
27428
27429 • Examples:
27430
27431 • "example.com"
27432
27433 • Connect to example.com
27434
27435 --sftp-user
27436 SSH username, leave blank for current username, $USER
27437
27438 • Config: user
27439
27440 • Env Var: RCLONE_SFTP_USER
27441
27442 • Type: string
27443
27444 • Default: ""
27445
27446 --sftp-port
27447 SSH port, leave blank to use default (22)
27448
27449 • Config: port
27450
27451 • Env Var: RCLONE_SFTP_PORT
27452
27453 • Type: string
27454
27455 • Default: ""
27456
27457 --sftp-pass
27458 SSH password, leave blank to use ssh-agent.
27459
27460 NB Input to this must be obscured - see rclone obscure
27461 (https://rclone.org/commands/rclone_obscure/).
27462
27463 • Config: pass
27464
27465 • Env Var: RCLONE_SFTP_PASS
27466
27467 • Type: string
27468
27469 • Default: ""
27470
27471 --sftp-key-pem
27472 Raw PEM-encoded private key, If specified, will override key_file pa‐
27473 rameter.
27474
27475 • Config: key_pem
27476
27477 • Env Var: RCLONE_SFTP_KEY_PEM
27478
27479 • Type: string
27480
27481 • Default: ""
27482
27483 --sftp-key-file
27484 Path to PEM-encoded private key file, leave blank or set key-use-agent
27485 to use ssh-agent.
27486
27487 Leading ~ will be expanded in the file name as will environment vari‐
27488 ables such as ${RCLONE_CONFIG_DIR}.
27489
27490 • Config: key_file
27491
27492 • Env Var: RCLONE_SFTP_KEY_FILE
27493
27494 • Type: string
27495
27496 • Default: ""
27497
27498 --sftp-key-file-pass
27499 The passphrase to decrypt the PEM-encoded private key file.
27500
27501 Only PEM encrypted key files (old OpenSSH format) are supported. En‐
27502 crypted keys in the new OpenSSH format can't be used.
27503
27504 NB Input to this must be obscured - see rclone obscure
27505 (https://rclone.org/commands/rclone_obscure/).
27506
27507 • Config: key_file_pass
27508
27509 • Env Var: RCLONE_SFTP_KEY_FILE_PASS
27510
27511 • Type: string
27512
27513 • Default: ""
27514
27515 --sftp-pubkey-file
27516 Optional path to public key file.
27517
27518 Set this if you have a signed certificate you want to use for authenti‐
27519 cation.
27520
27521 Leading ~ will be expanded in the file name as will environment vari‐
27522 ables such as ${RCLONE_CONFIG_DIR}.
27523
27524 • Config: pubkey_file
27525
27526 • Env Var: RCLONE_SFTP_PUBKEY_FILE
27527
27528 • Type: string
27529
27530 • Default: ""
27531
27532 --sftp-key-use-agent
27533 When set forces the usage of the ssh-agent.
27534
27535 When key-file is also set, the ".pub" file of the specified key-file is
27536 read and only the associated key is requested from the ssh-agent. This
27537 allows to avoid Too many authentication failures for *username* errors
27538 when the ssh-agent contains many keys.
27539
27540 • Config: key_use_agent
27541
27542 • Env Var: RCLONE_SFTP_KEY_USE_AGENT
27543
27544 • Type: bool
27545
27546 • Default: false
27547
27548 --sftp-use-insecure-cipher
27549 Enable the use of insecure ciphers and key exchange methods.
27550
27551 This enables the use of the following insecure ciphers and key exchange
27552 methods:
27553
27554 • aes128-cbc
27555
27556 • aes192-cbc
27557
27558 • aes256-cbc
27559
27560 • 3des-cbc
27561
27562 • diffie-hellman-group-exchange-sha256
27563
27564 • diffie-hellman-group-exchange-sha1
27565
27566 Those algorithms are insecure and may allow plaintext data to be recov‐
27567 ered by an attacker.
27568
27569 • Config: use_insecure_cipher
27570
27571 • Env Var: RCLONE_SFTP_USE_INSECURE_CIPHER
27572
27573 • Type: bool
27574
27575 • Default: false
27576
27577 • Examples:
27578
27579 • "false"
27580
27581 • Use default Cipher list.
27582
27583 • "true"
27584
27585 • Enables the use of the aes128-cbc cipher and diffie-hell‐
27586 man-group-exchange-sha256, diffie-hellman-group-exchange-sha1 key
27587 exchange.
27588
27589 --sftp-disable-hashcheck
27590 Disable the execution of SSH commands to determine if remote file hash‐
27591 ing is available. Leave blank or set to false to enable hashing (rec‐
27592 ommended), set to true to disable hashing.
27593
27594 • Config: disable_hashcheck
27595
27596 • Env Var: RCLONE_SFTP_DISABLE_HASHCHECK
27597
27598 • Type: bool
27599
27600 • Default: false
27601
27602 Advanced Options
27603 Here are the advanced options specific to sftp (SSH/SFTP Connection).
27604
27605 --sftp-known-hosts-file
27606 Optional path to known_hosts file.
27607
27608 Set this value to enable server host key validation.
27609
27610 Leading ~ will be expanded in the file name as will environment vari‐
27611 ables such as ${RCLONE_CONFIG_DIR}.
27612
27613 • Config: known_hosts_file
27614
27615 • Env Var: RCLONE_SFTP_KNOWN_HOSTS_FILE
27616
27617 • Type: string
27618
27619 • Default: ""
27620
27621 • Examples:
27622
27623 • "~/.ssh/known_hosts"
27624
27625 • Use OpenSSH's known_hosts file
27626
27627 --sftp-ask-password
27628 Allow asking for SFTP password when needed.
27629
27630 If this is set and no password is supplied then rclone will: - ask for
27631 a password - not contact the ssh agent
27632
27633 • Config: ask_password
27634
27635 • Env Var: RCLONE_SFTP_ASK_PASSWORD
27636
27637 • Type: bool
27638
27639 • Default: false
27640
27641 --sftp-path-override
27642 Override path used by SSH connection.
27643
27644 This allows checksum calculation when SFTP and SSH paths are different.
27645 This issue affects among others Synology NAS boxes.
27646
27647 Shared folders can be found in directories representing volumes
27648
27649 rclone sync /home/local/directory remote:/directory --ssh-path-override /volume2/directory
27650
27651 Home directory can be found in a shared folder called "home"
27652
27653 rclone sync /home/local/directory remote:/home/directory --ssh-path-override /volume1/homes/USER/directory
27654
27655 • Config: path_override
27656
27657 • Env Var: RCLONE_SFTP_PATH_OVERRIDE
27658
27659 • Type: string
27660
27661 • Default: ""
27662
27663 --sftp-set-modtime
27664 Set the modified time on the remote if set.
27665
27666 • Config: set_modtime
27667
27668 • Env Var: RCLONE_SFTP_SET_MODTIME
27669
27670 • Type: bool
27671
27672 • Default: true
27673
27674 --sftp-md5sum-command
27675 The command used to read md5 hashes. Leave blank for autodetect.
27676
27677 • Config: md5sum_command
27678
27679 • Env Var: RCLONE_SFTP_MD5SUM_COMMAND
27680
27681 • Type: string
27682
27683 • Default: ""
27684
27685 --sftp-sha1sum-command
27686 The command used to read sha1 hashes. Leave blank for autodetect.
27687
27688 • Config: sha1sum_command
27689
27690 • Env Var: RCLONE_SFTP_SHA1SUM_COMMAND
27691
27692 • Type: string
27693
27694 • Default: ""
27695
27696 --sftp-skip-links
27697 Set to skip any symlinks and any other non regular files.
27698
27699 • Config: skip_links
27700
27701 • Env Var: RCLONE_SFTP_SKIP_LINKS
27702
27703 • Type: bool
27704
27705 • Default: false
27706
27707 --sftp-subsystem
27708 Specifies the SSH2 subsystem on the remote host.
27709
27710 • Config: subsystem
27711
27712 • Env Var: RCLONE_SFTP_SUBSYSTEM
27713
27714 • Type: string
27715
27716 • Default: "sftp"
27717
27718 --sftp-server-command
27719 Specifies the path or command to run a sftp server on the remote host.
27720
27721 The subsystem option is ignored when server_command is defined.
27722
27723 • Config: server_command
27724
27725 • Env Var: RCLONE_SFTP_SERVER_COMMAND
27726
27727 • Type: string
27728
27729 • Default: ""
27730
27731 --sftp-use-fstat
27732 If set use fstat instead of stat
27733
27734 Some servers limit the amount of open files and calling Stat after
27735 opening the file will throw an error from the server. Setting this
27736 flag will call Fstat instead of Stat which is called on an already open
27737 file handle.
27738
27739 It has been found that this helps with IBM Sterling SFTP servers which
27740 have "extractability" level set to 1 which means only 1 file can be
27741 opened at any given time.
27742
27743 • Config: use_fstat
27744
27745 • Env Var: RCLONE_SFTP_USE_FSTAT
27746
27747 • Type: bool
27748
27749 • Default: false
27750
27751 --sftp-disable-concurrent-reads
27752 If set don't use concurrent reads
27753
27754 Normally concurrent reads are safe to use and not using them will de‐
27755 grade performance, so this option is disabled by default.
27756
27757 Some servers limit the amount number of times a file can be downloaded.
27758 Using concurrent reads can trigger this limit, so if you have a server
27759 which returns
27760
27761 Failed to copy: file does not exist
27762
27763 Then you may need to enable this flag.
27764
27765 If concurrent reads are disabled, the use_fstat option is ignored.
27766
27767 • Config: disable_concurrent_reads
27768
27769 • Env Var: RCLONE_SFTP_DISABLE_CONCURRENT_READS
27770
27771 • Type: bool
27772
27773 • Default: false
27774
27775 --sftp-idle-timeout
27776 Max time before closing idle connections
27777
27778 If no connections have been returned to the connection pool in the time
27779 given, rclone will empty the connection pool.
27780
27781 Set to 0 to keep connections indefinitely.
27782
27783 • Config: idle_timeout
27784
27785 • Env Var: RCLONE_SFTP_IDLE_TIMEOUT
27786
27787 • Type: Duration
27788
27789 • Default: 1m0s
27790
27791 Limitations
27792 SFTP supports checksums if the same login has shell access and md5sum
27793 or sha1sum as well as echo are in the remote's PATH. This remote
27794 checksumming (file hashing) is recommended and enabled by default.
27795 Disabling the checksumming may be required if you are connecting to
27796 SFTP servers which are not under your control, and to which the execu‐
27797 tion of remote commands is prohibited. Set the configuration option
27798 disable_hashcheck to true to disable checksumming.
27799
27800 SFTP also supports about if the same login has shell access and df are
27801 in the remote's PATH. about will return the total space, free space,
27802 and used space on the remote for the disk of the specified path on the
27803 remote or, if not set, the disk of the root on the remote. about will
27804 fail if it does not have shell access or if df is not in the remote's
27805 PATH.
27806
27807 Note that some SFTP servers (e.g. Synology) the paths are different
27808 for SSH and SFTP so the hashes can't be calculated properly. For them
27809 using disable_hashcheck is a good idea.
27810
27811 The only ssh agent supported under Windows is Putty's pageant.
27812
27813 The Go SSH library disables the use of the aes128-cbc cipher by de‐
27814 fault, due to security concerns. This can be re-enabled on a per-con‐
27815 nection basis by setting the use_insecure_cipher setting in the config‐
27816 uration file to true. Further details on the insecurity of this cipher
27817 can be found in this paper (http://www.isg.rhul.ac.uk/~kp/SandPfi‐
27818 nal.pdf).
27819
27820 SFTP isn't supported under plan9 until this issue
27821 (https://github.com/pkg/sftp/issues/156) is fixed.
27822
27823 Note that since SFTP isn't HTTP based the following flags don't work
27824 with it: --dump-headers, --dump-bodies, --dump-auth
27825
27826 Note that --timeout isn't supported (but --contimeout is).
27827
27828 C14
27829 C14 is supported through the SFTP backend.
27830
27831 See C14's documentation (https://www.online.net/en/storage/c14-cold-
27832 storage)
27833
27834 rsync.net
27835 rsync.net is supported through the SFTP backend.
27836
27837 See rsync.net's documentation of rclone examples
27838 (https://www.rsync.net/products/rclone.html).
27839
27840 SugarSync
27841 SugarSync (https://sugarsync.com) is a cloud service that enables ac‐
27842 tive synchronization of files across computers and other devices for
27843 file backup, access, syncing, and sharing.
27844
27845 The initial setup for SugarSync involves getting a token from SugarSync
27846 which you can do with rclone. rclone config walks you through it.
27847
27848 Here is an example of how to make a remote called remote. First run:
27849
27850 rclone config
27851
27852 This will guide you through an interactive setup process:
27853
27854 No remotes found - make a new one
27855 n) New remote
27856 s) Set configuration password
27857 q) Quit config
27858 n/s/q> n
27859 name> remote
27860 Type of storage to configure.
27861 Enter a string value. Press Enter for the default ("").
27862 Choose a number from below, or type in your own value
27863 [snip]
27864 XX / Sugarsync
27865 \ "sugarsync"
27866 [snip]
27867 Storage> sugarsync
27868 ** See help for sugarsync backend at: https://rclone.org/sugarsync/ **
27869
27870 Sugarsync App ID.
27871 Leave blank to use rclone's.
27872 Enter a string value. Press Enter for the default ("").
27873 app_id>
27874 Sugarsync Access Key ID.
27875 Leave blank to use rclone's.
27876 Enter a string value. Press Enter for the default ("").
27877 access_key_id>
27878 Sugarsync Private Access Key
27879 Leave blank to use rclone's.
27880 Enter a string value. Press Enter for the default ("").
27881 private_access_key>
27882 Permanently delete files if true
27883 otherwise put them in the deleted files.
27884 Enter a boolean value (true or false). Press Enter for the default ("false").
27885 hard_delete>
27886 Edit advanced config? (y/n)
27887 y) Yes
27888 n) No (default)
27889 y/n> n
27890 Remote config
27891 Username (email address)> nick@craig-wood.com
27892 Your Sugarsync password is only required during setup and will not be stored.
27893 password:
27894 --------------------
27895 [remote]
27896 type = sugarsync
27897 refresh_token = https://api.sugarsync.com/app-authorization/XXXXXXXXXXXXXXXXXX
27898 --------------------
27899 y) Yes this is OK (default)
27900 e) Edit this remote
27901 d) Delete this remote
27902 y/e/d> y
27903
27904 Note that the config asks for your email and password but doesn't store
27905 them, it only uses them to get the initial token.
27906
27907 Once configured you can then use rclone like this,
27908
27909 List directories (sync folders) in top level of your SugarSync
27910
27911 rclone lsd remote:
27912
27913 List all the files in your SugarSync folder "Test"
27914
27915 rclone ls remote:Test
27916
27917 To copy a local directory to an SugarSync folder called backup
27918
27919 rclone copy /home/source remote:backup
27920
27921 Paths are specified as remote:path
27922
27923 Paths may be as deep as required, e.g. remote:directory/subdirectory.
27924
27925 NB you can't create files in the top level folder you have to create a
27926 folder, which rclone will create as a "Sync Folder" with SugarSync.
27927
27928 Modified time and hashes
27929 SugarSync does not support modification times or hashes, therefore
27930 syncing will default to --size-only checking. Note that using --update
27931 will work as rclone can read the time files were uploaded.
27932
27933 Restricted filename characters
27934 SugarSync replaces the default restricted characters set
27935 (https://rclone.org/overview/#restricted-characters) except for DEL.
27936
27937 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
27938 view/#invalid-utf8), as they can't be used in XML strings.
27939
27940 Deleting files
27941 Deleted files will be moved to the "Deleted items" folder by default.
27942
27943 However you can supply the flag --sugarsync-hard-delete or set the con‐
27944 fig parameter hard_delete = true if you would like files to be deleted
27945 straight away.
27946
27947 Standard Options
27948 Here are the standard options specific to sugarsync (Sugarsync).
27949
27950 --sugarsync-app-id
27951 Sugarsync App ID.
27952
27953 Leave blank to use rclone's.
27954
27955 • Config: app_id
27956
27957 • Env Var: RCLONE_SUGARSYNC_APP_ID
27958
27959 • Type: string
27960
27961 • Default: ""
27962
27963 --sugarsync-access-key-id
27964 Sugarsync Access Key ID.
27965
27966 Leave blank to use rclone's.
27967
27968 • Config: access_key_id
27969
27970 • Env Var: RCLONE_SUGARSYNC_ACCESS_KEY_ID
27971
27972 • Type: string
27973
27974 • Default: ""
27975
27976 --sugarsync-private-access-key
27977 Sugarsync Private Access Key
27978
27979 Leave blank to use rclone's.
27980
27981 • Config: private_access_key
27982
27983 • Env Var: RCLONE_SUGARSYNC_PRIVATE_ACCESS_KEY
27984
27985 • Type: string
27986
27987 • Default: ""
27988
27989 --sugarsync-hard-delete
27990 Permanently delete files if true otherwise put them in the deleted
27991 files.
27992
27993 • Config: hard_delete
27994
27995 • Env Var: RCLONE_SUGARSYNC_HARD_DELETE
27996
27997 • Type: bool
27998
27999 • Default: false
28000
28001 Advanced Options
28002 Here are the advanced options specific to sugarsync (Sugarsync).
28003
28004 --sugarsync-refresh-token
28005 Sugarsync refresh token
28006
28007 Leave blank normally, will be auto configured by rclone.
28008
28009 • Config: refresh_token
28010
28011 • Env Var: RCLONE_SUGARSYNC_REFRESH_TOKEN
28012
28013 • Type: string
28014
28015 • Default: ""
28016
28017 --sugarsync-authorization
28018 Sugarsync authorization
28019
28020 Leave blank normally, will be auto configured by rclone.
28021
28022 • Config: authorization
28023
28024 • Env Var: RCLONE_SUGARSYNC_AUTHORIZATION
28025
28026 • Type: string
28027
28028 • Default: ""
28029
28030 --sugarsync-authorization-expiry
28031 Sugarsync authorization expiry
28032
28033 Leave blank normally, will be auto configured by rclone.
28034
28035 • Config: authorization_expiry
28036
28037 • Env Var: RCLONE_SUGARSYNC_AUTHORIZATION_EXPIRY
28038
28039 • Type: string
28040
28041 • Default: ""
28042
28043 --sugarsync-user
28044 Sugarsync user
28045
28046 Leave blank normally, will be auto configured by rclone.
28047
28048 • Config: user
28049
28050 • Env Var: RCLONE_SUGARSYNC_USER
28051
28052 • Type: string
28053
28054 • Default: ""
28055
28056 --sugarsync-root-id
28057 Sugarsync root id
28058
28059 Leave blank normally, will be auto configured by rclone.
28060
28061 • Config: root_id
28062
28063 • Env Var: RCLONE_SUGARSYNC_ROOT_ID
28064
28065 • Type: string
28066
28067 • Default: ""
28068
28069 --sugarsync-deleted-id
28070 Sugarsync deleted folder id
28071
28072 Leave blank normally, will be auto configured by rclone.
28073
28074 • Config: deleted_id
28075
28076 • Env Var: RCLONE_SUGARSYNC_DELETED_ID
28077
28078 • Type: string
28079
28080 • Default: ""
28081
28082 --sugarsync-encoding
28083 This sets the encoding for the backend.
28084
28085 See: the encoding section in the overview (https://rclone.org/over‐
28086 view/#encoding) for more info.
28087
28088 • Config: encoding
28089
28090 • Env Var: RCLONE_SUGARSYNC_ENCODING
28091
28092 • Type: MultiEncoder
28093
28094 • Default: Slash,Ctl,InvalidUtf8,Dot
28095
28096 Limitations
28097 rclone about is not supported by the SugarSync backend. Backends with‐
28098 out this capability cannot determine free space for an rclone mount or
28099 use policy mfs (most free space) as a member of an rclone union remote.
28100
28101 See List of backends that do not support rclone about
28102 (https://rclone.org/overview/#optional-features) See rclone about
28103 (https://rclone.org/commands/rclone_about/)
28104
28105 Tardigrade
28106 Tardigrade (https://tardigrade.io) is an encrypted, secure, and
28107 cost-effective object storage service that enables you to store, back
28108 up, and archive large amounts of data in a decentralized manner.
28109
28110 Setup
28111 To make a new Tardigrade configuration you need one of the following: *
28112 Access Grant that someone else shared with you. * API Key
28113 (https://documentation.tardigrade.io/getting-started/uploading-your-
28114 first-object/create-an-api-key) of a Tardigrade project you are a mem‐
28115 ber of.
28116
28117 Here is an example of how to make a remote called remote. First run:
28118
28119 rclone config
28120
28121 This will guide you through an interactive setup process:
28122
28123 Setup with access grant
28124 No remotes found - make a new one
28125 n) New remote
28126 s) Set configuration password
28127 q) Quit config
28128 n/s/q> n
28129 name> remote
28130 Type of storage to configure.
28131 Enter a string value. Press Enter for the default ("").
28132 Choose a number from below, or type in your own value
28133 [snip]
28134 XX / Tardigrade Decentralized Cloud Storage
28135 \ "tardigrade"
28136 [snip]
28137 Storage> tardigrade
28138 ** See help for tardigrade backend at: https://rclone.org/tardigrade/ **
28139
28140 Choose an authentication method.
28141 Enter a string value. Press Enter for the default ("existing").
28142 Choose a number from below, or type in your own value
28143 1 / Use an existing access grant.
28144 \ "existing"
28145 2 / Create a new access grant from satellite address, API key, and passphrase.
28146 \ "new"
28147 provider> existing
28148 Access Grant.
28149 Enter a string value. Press Enter for the default ("").
28150 access_grant> your-access-grant-received-by-someone-else
28151 Remote config
28152 --------------------
28153 [remote]
28154 type = tardigrade
28155 access_grant = your-access-grant-received-by-someone-else
28156 --------------------
28157 y) Yes this is OK (default)
28158 e) Edit this remote
28159 d) Delete this remote
28160 y/e/d> y
28161
28162 Setup with API key and passphrase
28163 No remotes found - make a new one
28164 n) New remote
28165 s) Set configuration password
28166 q) Quit config
28167 n/s/q> n
28168 name> remote
28169 Type of storage to configure.
28170 Enter a string value. Press Enter for the default ("").
28171 Choose a number from below, or type in your own value
28172 [snip]
28173 XX / Tardigrade Decentralized Cloud Storage
28174 \ "tardigrade"
28175 [snip]
28176 Storage> tardigrade
28177 ** See help for tardigrade backend at: https://rclone.org/tardigrade/ **
28178
28179 Choose an authentication method.
28180 Enter a string value. Press Enter for the default ("existing").
28181 Choose a number from below, or type in your own value
28182 1 / Use an existing access grant.
28183 \ "existing"
28184 2 / Create a new access grant from satellite address, API key, and passphrase.
28185 \ "new"
28186 provider> new
28187 Satellite Address. Custom satellite address should match the format: `<nodeid>@<address>:<port>`.
28188 Enter a string value. Press Enter for the default ("us-central-1.tardigrade.io").
28189 Choose a number from below, or type in your own value
28190 1 / US Central 1
28191 \ "us-central-1.tardigrade.io"
28192 2 / Europe West 1
28193 \ "europe-west-1.tardigrade.io"
28194 3 / Asia East 1
28195 \ "asia-east-1.tardigrade.io"
28196 satellite_address> 1
28197 API Key.
28198 Enter a string value. Press Enter for the default ("").
28199 api_key> your-api-key-for-your-tardigrade-project
28200 Encryption Passphrase. To access existing objects enter passphrase used for uploading.
28201 Enter a string value. Press Enter for the default ("").
28202 passphrase> your-human-readable-encryption-passphrase
28203 Remote config
28204 --------------------
28205 [remote]
28206 type = tardigrade
28207 satellite_address = 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S@us-central-1.tardigrade.io:7777
28208 api_key = your-api-key-for-your-tardigrade-project
28209 passphrase = your-human-readable-encryption-passphrase
28210 access_grant = the-access-grant-generated-from-the-api-key-and-passphrase
28211 --------------------
28212 y) Yes this is OK (default)
28213 e) Edit this remote
28214 d) Delete this remote
28215 y/e/d> y
28216
28217 Usage
28218 Paths are specified as remote:bucket (or remote: for the lsf command.)
28219 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
28220
28221 Once configured you can then use rclone like this.
28222
28223 Create a new bucket
28224 Use the mkdir command to create new bucket, e.g. bucket.
28225
28226 rclone mkdir remote:bucket
28227
28228 List all buckets
28229 Use the lsf command to list all buckets.
28230
28231 rclone lsf remote:
28232
28233 Note the colon (:) character at the end of the command line.
28234
28235 Delete a bucket
28236 Use the rmdir command to delete an empty bucket.
28237
28238 rclone rmdir remote:bucket
28239
28240 Use the purge command to delete a non-empty bucket with all its con‐
28241 tent.
28242
28243 rclone purge remote:bucket
28244
28245 Upload objects
28246 Use the copy command to upload an object.
28247
28248 rclone copy --progress /home/local/directory/file.ext remote:bucket/path/to/dir/
28249
28250 The --progress flag is for displaying progress information. Remove it
28251 if you don't need this information.
28252
28253 Use a folder in the local path to upload all its objects.
28254
28255 rclone copy --progress /home/local/directory/ remote:bucket/path/to/dir/
28256
28257 Only modified files will be copied.
28258
28259 List objects
28260 Use the ls command to list recursively all objects in a bucket.
28261
28262 rclone ls remote:bucket
28263
28264 Add the folder to the remote path to list recursively all objects in
28265 this folder.
28266
28267 rclone ls remote:bucket/path/to/dir/
28268
28269 Use the lsf command to list non-recursively all objects in a bucket or
28270 a folder.
28271
28272 rclone lsf remote:bucket/path/to/dir/
28273
28274 Download objects
28275 Use the copy command to download an object.
28276
28277 rclone copy --progress remote:bucket/path/to/dir/file.ext /home/local/directory/
28278
28279 The --progress flag is for displaying progress information. Remove it
28280 if you don't need this information.
28281
28282 Use a folder in the remote path to download all its objects.
28283
28284 rclone copy --progress remote:bucket/path/to/dir/ /home/local/directory/
28285
28286 Delete objects
28287 Use the deletefile command to delete a single object.
28288
28289 rclone deletefile remote:bucket/path/to/dir/file.ext
28290
28291 Use the delete command to delete all object in a folder.
28292
28293 rclone delete remote:bucket/path/to/dir/
28294
28295 Print the total size of objects
28296 Use the size command to print the total size of objects in a bucket or
28297 a folder.
28298
28299 rclone size remote:bucket/path/to/dir/
28300
28301 Sync two Locations
28302 Use the sync command to sync the source to the destination, changing
28303 the destination only, deleting any excess files.
28304
28305 rclone sync -i --progress /home/local/directory/ remote:bucket/path/to/dir/
28306
28307 The --progress flag is for displaying progress information. Remove it
28308 if you don't need this information.
28309
28310 Since this can cause data loss, test first with the --dry-run flag to
28311 see exactly what would be copied and deleted.
28312
28313 The sync can be done also from Tardigrade to the local file system.
28314
28315 rclone sync -i --progress remote:bucket/path/to/dir/ /home/local/directory/
28316
28317 Or between two Tardigrade buckets.
28318
28319 rclone sync -i --progress remote-us:bucket/path/to/dir/ remote-europe:bucket/path/to/dir/
28320
28321 Or even between another cloud storage and Tardigrade.
28322
28323 rclone sync -i --progress s3:bucket/path/to/dir/ tardigrade:bucket/path/to/dir/
28324
28325 Standard Options
28326 Here are the standard options specific to tardigrade (Tardigrade Decen‐
28327 tralized Cloud Storage).
28328
28329 --tardigrade-provider
28330 Choose an authentication method.
28331
28332 • Config: provider
28333
28334 • Env Var: RCLONE_TARDIGRADE_PROVIDER
28335
28336 • Type: string
28337
28338 • Default: "existing"
28339
28340 • Examples:
28341
28342 • "existing"
28343
28344 • Use an existing access grant.
28345
28346 • "new"
28347
28348 • Create a new access grant from satellite address, API key, and
28349 passphrase.
28350
28351 --tardigrade-access-grant
28352 Access Grant.
28353
28354 • Config: access_grant
28355
28356 • Env Var: RCLONE_TARDIGRADE_ACCESS_GRANT
28357
28358 • Type: string
28359
28360 • Default: ""
28361
28362 --tardigrade-satellite-address
28363 Satellite Address. Custom satellite address should match the format:
28364 <nodeid>@<address>:<port>.
28365
28366 • Config: satellite_address
28367
28368 • Env Var: RCLONE_TARDIGRADE_SATELLITE_ADDRESS
28369
28370 • Type: string
28371
28372 • Default: "us-central-1.tardigrade.io"
28373
28374 • Examples:
28375
28376 • "us-central-1.tardigrade.io"
28377
28378 • US Central 1
28379
28380 • "europe-west-1.tardigrade.io"
28381
28382 • Europe West 1
28383
28384 • "asia-east-1.tardigrade.io"
28385
28386 • Asia East 1
28387
28388 --tardigrade-api-key
28389 API Key.
28390
28391 • Config: api_key
28392
28393 • Env Var: RCLONE_TARDIGRADE_API_KEY
28394
28395 • Type: string
28396
28397 • Default: ""
28398
28399 --tardigrade-passphrase
28400 Encryption Passphrase. To access existing objects enter passphrase
28401 used for uploading.
28402
28403 • Config: passphrase
28404
28405 • Env Var: RCLONE_TARDIGRADE_PASSPHRASE
28406
28407 • Type: string
28408
28409 • Default: ""
28410
28411 Limitations
28412 rclone about is not supported by the rclone Tardigrade backend. Back‐
28413 ends without this capability cannot determine free space for an rclone
28414 mount or use policy mfs (most free space) as a member of an rclone
28415 union remote.
28416
28417 See List of backends that do not support rclone about
28418 (https://rclone.org/overview/#optional-features) See rclone about
28419 (https://rclone.org/commands/rclone_about/)
28420
28421 Union
28422 The union remote provides a unification similar to UnionFS using other
28423 remotes.
28424
28425 Paths may be as deep as required or a local path, e.g. remote:directo‐
28426 ry/subdirectory or /directory/subdirectory.
28427
28428 During the initial setup with rclone config you will specify the up‐
28429 stream remotes as a space separated list. The upstream remotes can ei‐
28430 ther be a local paths or other remotes.
28431
28432 Attribute :ro and :nc can be attach to the end of path to tag the re‐
28433 mote as read only or no create, e.g. remote:directory/subdirectory:ro
28434 or remote:directory/subdirectory:nc.
28435
28436 Subfolders can be used in upstream remotes. Assume a union remote
28437 named backup with the remotes mydrive:private/backup. Invoking rclone
28438 mkdir backup:desktop is exactly the same as invoking rclone mkdir my‐
28439 drive:private/backup/desktop.
28440
28441 There will be no special handling of paths containing .. segments.
28442 Invoking rclone mkdir backup:../desktop is exactly the same as invoking
28443 rclone mkdir mydrive:private/backup/../desktop.
28444
28445 Behavior / Policies
28446 The behavior of union backend is inspired by trapexit/mergerfs
28447 (https://github.com/trapexit/mergerfs). All functions are grouped into
28448 3 categories: action, create and search. These functions and cate‐
28449 gories can be assigned a policy which dictates what file or directory
28450 is chosen when performing that behavior. Any policy can be assigned to
28451 a function or category though some may not be very useful in practice.
28452 For instance: rand (random) may be useful for file creation (create)
28453 but could lead to very odd behavior if used for delete if there were
28454 more than one copy of the file.
28455
28456 Function / Category classifications
28457 Cate‐ Description Functions
28458 gory
28459 ─────────────────────────────────────────────────────────────────────────────
28460 action Writing Exist‐ move, rmdir, rmdirs, delete, purge and copy, sync
28461 ing file (as destination when file exist)
28462 create Create non-ex‐ copy, sync (as destination when file not exist)
28463 isting file
28464 search Reading and ls, lsd, lsl, cat, md5sum, sha1sum and copy, sync
28465 listing file (as source)
28466 N/A size, about
28467
28468 Path Preservation
28469 Policies, as described below, are of two basic types. path preserving
28470 and non-path preserving.
28471
28472 All policies which start with ep (epff, eplfs, eplus, epmfs, eprand)
28473 are path preserving. ep stands for existing path.
28474
28475 A path preserving policy will only consider upstreams where the rela‐
28476 tive path being accessed already exists.
28477
28478 When using non-path preserving policies paths will be created in target
28479 upstreams as necessary.
28480
28481 Quota Relevant Policies
28482 Some policies rely on quota information. These policies should be used
28483 only if your upstreams support the respective quota fields.
28484
28485 Policy Required Field
28486 ────────────────────────────
28487 lfs, eplfs Free
28488 mfs, epmfs Free
28489 lus, eplus Used
28490 lno, eplno Objects
28491
28492 To check if your upstream supports the field, run rclone about remote:
28493 [flags] and see if the required field exists.
28494
28495 Filters
28496 Policies basically search upstream remotes and create a list of files /
28497 paths for functions to work on. The policy is responsible for filter‐
28498 ing and sorting. The policy type defines the sorting but filtering is
28499 mostly uniform as described below.
28500
28501 • No search policies filter.
28502
28503 • All action policies will filter out remotes which are tagged as
28504 read-only.
28505
28506 • All create policies will filter out remotes which are tagged read-on‐
28507 ly or no-create.
28508
28509 If all remotes are filtered an error will be returned.
28510
28511 Policy descriptions
28512 The policies definition are inspired by trapexit/mergerfs
28513 (https://github.com/trapexit/mergerfs) but not exactly the same. Some
28514 policy definition could be different due to the much larger latency of
28515 remote file systems.
28516
28517 Policy Description
28518 ──────────────────────────────────────────────────────────────────────────
28519 all Search category: same as epall. Action category: same
28520 as epall. Create category: act on all upstreams.
28521 epall (existing Search category: Given this order configured, act on
28522 path, all) the first one found where the relative path exists.
28523 Action category: apply to all found. Create category:
28524 act on all upstreams where the relative path exists.
28525 epff (existing Act on the first one found, by the time upstreams re‐
28526 path, first ply, where the relative path exists.
28527 found)
28528 eplfs (existing Of all the upstreams on which the relative path exists
28529 path, least free choose the one with the least free space.
28530 space)
28531 eplus (existing Of all the upstreams on which the relative path exists
28532 path, least used choose the one with the least used space.
28533 space)
28534 eplno (existing Of all the upstreams on which the relative path exists
28535 path, least num‐ choose the one with the least number of objects.
28536 ber of objects)
28537 epmfs (existing Of all the upstreams on which the relative path exists
28538 path, most free choose the one with the most free space.
28539 space)
28540 eprand (existing Calls epall and then randomizes. Returns only one up‐
28541 path, random) stream.
28542 ff (first found) Search category: same as epff. Action category: same
28543 as epff. Create category: Act on the first one found
28544 by the time upstreams reply.
28545 lfs (least free Search category: same as eplfs. Action category: same
28546 space) as eplfs. Create category: Pick the upstream with the
28547 least available free space.
28548 lus (least used Search category: same as eplus. Action category: same
28549 space) as eplus. Create category: Pick the upstream with the
28550 least used space.
28551 lno (least num‐ Search category: same as eplno. Action category: same
28552 ber of objects) as eplno. Create category: Pick the upstream with the
28553 least number of objects.
28554 mfs (most free Search category: same as epmfs. Action category: same
28555 space) as epmfs. Create category: Pick the upstream with the
28556 most available free space.
28557 newest Pick the file / directory with the largest mtime.
28558 rand (random) Calls all and then randomizes. Returns only one up‐
28559 stream.
28560
28561 Setup
28562 Here is an example of how to make a union called remote for local fold‐
28563 ers. First run:
28564
28565 rclone config
28566
28567 This will guide you through an interactive setup process:
28568
28569 No remotes found - make a new one
28570 n) New remote
28571 s) Set configuration password
28572 q) Quit config
28573 n/s/q> n
28574 name> remote
28575 Type of storage to configure.
28576 Choose a number from below, or type in your own value
28577 [snip]
28578 XX / Union merges the contents of several remotes
28579 \ "union"
28580 [snip]
28581 Storage> union
28582 List of space separated upstreams.
28583 Can be 'upstreama:test/dir upstreamb:', '\"upstreama:test/space:ro dir\" upstreamb:', etc.
28584 Enter a string value. Press Enter for the default ("").
28585 upstreams> remote1:dir1 remote2:dir2 remote3:dir3
28586 Policy to choose upstream on ACTION class.
28587 Enter a string value. Press Enter for the default ("epall").
28588 action_policy>
28589 Policy to choose upstream on CREATE class.
28590 Enter a string value. Press Enter for the default ("epmfs").
28591 create_policy>
28592 Policy to choose upstream on SEARCH class.
28593 Enter a string value. Press Enter for the default ("ff").
28594 search_policy>
28595 Cache time of usage and free space (in seconds). This option is only useful when a path preserving policy is used.
28596 Enter a signed integer. Press Enter for the default ("120").
28597 cache_time>
28598 Remote config
28599 --------------------
28600 [remote]
28601 type = union
28602 upstreams = remote1:dir1 remote2:dir2 remote3:dir3
28603 --------------------
28604 y) Yes this is OK
28605 e) Edit this remote
28606 d) Delete this remote
28607 y/e/d> y
28608 Current remotes:
28609
28610 Name Type
28611 ==== ====
28612 remote union
28613
28614 e) Edit existing remote
28615 n) New remote
28616 d) Delete remote
28617 r) Rename remote
28618 c) Copy remote
28619 s) Set configuration password
28620 q) Quit config
28621 e/n/d/r/c/s/q> q
28622
28623 Once configured you can then use rclone like this,
28624
28625 List directories in top level in remote1:dir1, remote2:dir2 and re‐
28626 mote3:dir3
28627
28628 rclone lsd remote:
28629
28630 List all the files in remote1:dir1, remote2:dir2 and remote3:dir3
28631
28632 rclone ls remote:
28633
28634 Copy another local directory to the union directory called source,
28635 which will be placed into remote3:dir3
28636
28637 rclone copy C:\source remote:source
28638
28639 Standard Options
28640 Here are the standard options specific to union (Union merges the con‐
28641 tents of several upstream fs).
28642
28643 --union-upstreams
28644 List of space separated upstreams. Can be 'upstreama:test/dir up‐
28645 streamb:', '"upstreama:test/space:ro dir" upstreamb:', etc.
28646
28647 • Config: upstreams
28648
28649 • Env Var: RCLONE_UNION_UPSTREAMS
28650
28651 • Type: string
28652
28653 • Default: ""
28654
28655 --union-action-policy
28656 Policy to choose upstream on ACTION category.
28657
28658 • Config: action_policy
28659
28660 • Env Var: RCLONE_UNION_ACTION_POLICY
28661
28662 • Type: string
28663
28664 • Default: "epall"
28665
28666 --union-create-policy
28667 Policy to choose upstream on CREATE category.
28668
28669 • Config: create_policy
28670
28671 • Env Var: RCLONE_UNION_CREATE_POLICY
28672
28673 • Type: string
28674
28675 • Default: "epmfs"
28676
28677 --union-search-policy
28678 Policy to choose upstream on SEARCH category.
28679
28680 • Config: search_policy
28681
28682 • Env Var: RCLONE_UNION_SEARCH_POLICY
28683
28684 • Type: string
28685
28686 • Default: "ff"
28687
28688 --union-cache-time
28689 Cache time of usage and free space (in seconds). This option is only
28690 useful when a path preserving policy is used.
28691
28692 • Config: cache_time
28693
28694 • Env Var: RCLONE_UNION_CACHE_TIME
28695
28696 • Type: int
28697
28698 • Default: 120
28699
28700 WebDAV
28701 Paths are specified as remote:path
28702
28703 Paths may be as deep as required, e.g. remote:directory/subdirectory.
28704
28705 To configure the WebDAV remote you will need to have a URL for it, and
28706 a username and password. If you know what kind of system you are con‐
28707 necting to then rclone can enable extra features.
28708
28709 Here is an example of how to make a remote called remote. First run:
28710
28711 rclone config
28712
28713 This will guide you through an interactive setup process:
28714
28715 No remotes found - make a new one
28716 n) New remote
28717 s) Set configuration password
28718 q) Quit config
28719 n/s/q> n
28720 name> remote
28721 Type of storage to configure.
28722 Choose a number from below, or type in your own value
28723 [snip]
28724 XX / Webdav
28725 \ "webdav"
28726 [snip]
28727 Storage> webdav
28728 URL of http host to connect to
28729 Choose a number from below, or type in your own value
28730 1 / Connect to example.com
28731 \ "https://example.com"
28732 url> https://example.com/remote.php/webdav/
28733 Name of the Webdav site/service/software you are using
28734 Choose a number from below, or type in your own value
28735 1 / Nextcloud
28736 \ "nextcloud"
28737 2 / Owncloud
28738 \ "owncloud"
28739 3 / Sharepoint Online, authenticated by Microsoft account.
28740 \ "sharepoint"
28741 4 / Sharepoint with NTLM authentication. Usually self-hosted or on-premises.
28742 \ "sharepoint-ntlm"
28743 5 / Other site/service or software
28744 \ "other"
28745 vendor> 1
28746 User name
28747 user> user
28748 Password.
28749 y) Yes type in my own password
28750 g) Generate random password
28751 n) No leave this optional password blank
28752 y/g/n> y
28753 Enter the password:
28754 password:
28755 Confirm the password:
28756 password:
28757 Bearer token instead of user/pass (e.g. a Macaroon)
28758 bearer_token>
28759 Remote config
28760 --------------------
28761 [remote]
28762 type = webdav
28763 url = https://example.com/remote.php/webdav/
28764 vendor = nextcloud
28765 user = user
28766 pass = *** ENCRYPTED ***
28767 bearer_token =
28768 --------------------
28769 y) Yes this is OK
28770 e) Edit this remote
28771 d) Delete this remote
28772 y/e/d> y
28773
28774 Once configured you can then use rclone like this,
28775
28776 List directories in top level of your WebDAV
28777
28778 rclone lsd remote:
28779
28780 List all the files in your WebDAV
28781
28782 rclone ls remote:
28783
28784 To copy a local directory to an WebDAV directory called backup
28785
28786 rclone copy /home/source remote:backup
28787
28788 Modified time and hashes
28789 Plain WebDAV does not support modified times. However when used with
28790 Owncloud or Nextcloud rclone will support modified times.
28791
28792 Likewise plain WebDAV does not support hashes, however when used with
28793 Owncloud or Nextcloud rclone will support SHA1 and MD5 hashes. Depend‐
28794 ing on the exact version of Owncloud or Nextcloud hashes may appear on
28795 all objects, or only on objects which had a hash uploaded with them.
28796
28797 Standard Options
28798 Here are the standard options specific to webdav (Webdav).
28799
28800 --webdav-url
28801 URL of http host to connect to
28802
28803 • Config: url
28804
28805 • Env Var: RCLONE_WEBDAV_URL
28806
28807 • Type: string
28808
28809 • Default: ""
28810
28811 • Examples:
28812
28813 • "https://example.com"
28814
28815 • Connect to example.com
28816
28817 --webdav-vendor
28818 Name of the Webdav site/service/software you are using
28819
28820 • Config: vendor
28821
28822 • Env Var: RCLONE_WEBDAV_VENDOR
28823
28824 • Type: string
28825
28826 • Default: ""
28827
28828 • Examples:
28829
28830 • "nextcloud"
28831
28832 • Nextcloud
28833
28834 • "owncloud"
28835
28836 • Owncloud
28837
28838 • "sharepoint"
28839
28840 • Sharepoint Online, authenticated by Microsoft account.
28841
28842 • "sharepoint-ntlm"
28843
28844 • Sharepoint with NTLM authentication. Usually self-hosted or
28845 on-premises.
28846
28847 • "other"
28848
28849 • Other site/service or software
28850
28851 --webdav-user
28852 User name. In case NTLM authentication is used, the username should be
28853 in the format 'Domain'.
28854
28855 • Config: user
28856
28857 • Env Var: RCLONE_WEBDAV_USER
28858
28859 • Type: string
28860
28861 • Default: ""
28862
28863 --webdav-pass
28864 Password.
28865
28866 NB Input to this must be obscured - see rclone obscure
28867 (https://rclone.org/commands/rclone_obscure/).
28868
28869 • Config: pass
28870
28871 • Env Var: RCLONE_WEBDAV_PASS
28872
28873 • Type: string
28874
28875 • Default: ""
28876
28877 --webdav-bearer-token
28878 Bearer token instead of user/pass (e.g. a Macaroon)
28879
28880 • Config: bearer_token
28881
28882 • Env Var: RCLONE_WEBDAV_BEARER_TOKEN
28883
28884 • Type: string
28885
28886 • Default: ""
28887
28888 Advanced Options
28889 Here are the advanced options specific to webdav (Webdav).
28890
28891 --webdav-bearer-token-command
28892 Command to run to get a bearer token
28893
28894 • Config: bearer_token_command
28895
28896 • Env Var: RCLONE_WEBDAV_BEARER_TOKEN_COMMAND
28897
28898 • Type: string
28899
28900 • Default: ""
28901
28902 --webdav-encoding
28903 This sets the encoding for the backend.
28904
28905 See: the encoding section in the overview (https://rclone.org/over‐
28906 view/#encoding) for more info.
28907
28908 Default encoding is Slash,LtGt,DoubleQuote,Colon,Question,Aster‐
28909 isk,Pipe,Hash,Percent,BackSlash,Del,Ctl,LeftSpace,Left‐
28910 Tilde,RightSpace,RightPeriod,InvalidUtf8 for sharepoint-ntlm or identi‐
28911 ty otherwise.
28912
28913 • Config: encoding
28914
28915 • Env Var: RCLONE_WEBDAV_ENCODING
28916
28917 • Type: string
28918
28919 • Default: ""
28920
28921 Provider notes
28922 See below for notes on specific providers.
28923
28924 Owncloud
28925 Click on the settings cog in the bottom right of the page and this will
28926 show the WebDAV URL that rclone needs in the config step. It will look
28927 something like https://example.com/remote.php/webdav/.
28928
28929 Owncloud supports modified times using the X-OC-Mtime header.
28930
28931 Nextcloud
28932 This is configured in an identical way to Owncloud. Note that
28933 Nextcloud initially did not support streaming of files (rcat) whereas
28934 Owncloud did, but this (https://github.com/nextcloud/nextcloud-snap/is‐
28935 sues/365) seems to be fixed as of 2020-11-27 (tested with rclone
28936 v1.53.1 and Nextcloud Server v19).
28937
28938 Sharepoint Online
28939 Rclone can be used with Sharepoint provided by OneDrive for Business or
28940 Office365 Education Accounts. This feature is only needed for a few of
28941 these Accounts, mostly Office365 Education ones. These accounts are
28942 sometimes not verified by the domain owner github#1975
28943 (https://github.com/rclone/rclone/issues/1975)
28944
28945 This means that these accounts can't be added using the official API
28946 (other Accounts should work with the "onedrive" option). However, it
28947 is possible to access them using webdav.
28948
28949 To use a sharepoint remote with rclone, add it like this: First, you
28950 need to get your remote's URL:
28951
28952 • Go here (https://onedrive.live.com/about/en-us/signin/) to open your
28953 OneDrive or to sign in
28954
28955 • Now take a look at your address bar, the URL should look like this:
28956 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/_lay‐
28957 outs/15/onedrive.aspx
28958
28959 You'll only need this URL up to the email address. After that, you'll
28960 most likely want to add "/Documents". That subdirectory contains the
28961 actual data stored on your OneDrive.
28962
28963 Add the remote to rclone like this: Configure the url as
28964 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
28965 and use your normal account email and password for user and pass. If
28966 you have 2FA enabled, you have to generate an app password. Set the
28967 vendor to sharepoint.
28968
28969 Your config file should look like this:
28970
28971 [sharepoint]
28972 type = webdav
28973 url = https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
28974 vendor = sharepoint
28975 user = YourEmailAddress
28976 pass = encryptedpassword
28977
28978 Sharepoint with NTLM Authentication
28979 Use this option in case your (hosted) Sharepoint is not tied to
28980 OneDrive accounts and uses NTLM authentication.
28981
28982 To get the url configuration, similarly to the above, first navigate to
28983 the desired directory in your browser to get the URL, then strip every‐
28984 thing after the name of the opened directory.
28985
28986 Example: If the URL is: https://example.sharepoint.com/sites/12345/Doc‐
28987 uments/Forms/AllItems.aspx
28988
28989 The configuration to use would be: https://example.share‐
28990 point.com/sites/12345/Documents
28991
28992 Set the vendor to sharepoint-ntlm.
28993
28994 NTLM uses domain and user name combination for authentication, set user
28995 to DOMAIN\username.
28996
28997 Your config file should look like this:
28998
28999 [sharepoint]
29000 type = webdav
29001 url = https://[YOUR-DOMAIN]/some-path-to/Documents
29002 vendor = sharepoint-ntlm
29003 user = DOMAIN\user
29004 pass = encryptedpassword
29005
29006 Required Flags for SharePoint
29007 As SharePoint does some special things with uploaded documents, you
29008 won't be able to use the documents size or the documents hash to com‐
29009 pare if a file has been changed since the upload / which file is newer.
29010
29011 For Rclone calls copying files (especially Office files such as .docx,
29012 .xlsx, etc.) from/to SharePoint (like copy, sync, etc.), you should ap‐
29013 pend these flags to ensure Rclone uses the "Last Modified" datetime
29014 property to compare your documents:
29015
29016 --ignore-size --ignore-checksum --update
29017
29018 dCache
29019 dCache is a storage system that supports many protocols and authentica‐
29020 tion/authorisation schemes. For WebDAV clients, it allows users to au‐
29021 thenticate with username and password (BASIC), X.509, Kerberos, and
29022 various bearer tokens, including Macaroons (https://www.dcache.org/man‐
29023 uals/workshop-2017-05-29-Umea/000-Final/anupam_macaroons_v02.pdf) and
29024 OpenID-Connect (https://en.wikipedia.org/wiki/OpenID_Connect) access
29025 tokens.
29026
29027 Configure as normal using the other type. Don't enter a username or
29028 password, instead enter your Macaroon as the bearer_token.
29029
29030 The config will end up looking something like this.
29031
29032 [dcache]
29033 type = webdav
29034 url = https://dcache...
29035 vendor = other
29036 user =
29037 pass =
29038 bearer_token = your-macaroon
29039
29040 There is a script (https://github.com/sara-nl/GridScripts/blob/mas‐
29041 ter/get-macaroon) that obtains a Macaroon from a dCache WebDAV end‐
29042 point, and creates an rclone config file.
29043
29044 Macaroons may also be obtained from the dCacheView web-browser/Java‐
29045 Script client that comes with dCache.
29046
29047 OpenID-Connect
29048 dCache also supports authenticating with OpenID-Connect access tokens.
29049 OpenID-Connect is a protocol (based on OAuth 2.0) that allows services
29050 to identify users who have authenticated with some central service.
29051
29052 Support for OpenID-Connect in rclone is currently achieved using anoth‐
29053 er software package called oidc-agent (https://github.com/indigo-
29054 dc/oidc-agent). This is a command-line tool that facilitates obtaining
29055 an access token. Once installed and configured, an access token is ob‐
29056 tained by running the oidc-token command. The following example shows
29057 a (shortened) access token obtained from the XDC OIDC Provider.
29058
29059 paul@celebrimbor:~$ oidc-token XDC
29060 eyJraWQ[...]QFXDt0
29061 paul@celebrimbor:~$
29062
29063 Note Before the oidc-token command will work, the refresh token must be
29064 loaded into the oidc agent. This is done with the oidc-add command
29065 (e.g., oidc-add XDC). This is typically done once per login session.
29066 Full details on this and how to register oidc-agent with your OIDC
29067 Provider are provided in the oidc-agent documentation (https://indigo-
29068 dc.gitbooks.io/oidc-agent/).
29069
29070 The rclone bearer_token_command configuration option is used to fetch
29071 the access token from oidc-agent.
29072
29073 Configure as a normal WebDAV endpoint, using the 'other' vendor, leav‐
29074 ing the username and password empty. When prompted, choose to edit the
29075 advanced config and enter the command to get a bearer token (e.g.,
29076 oidc-agent XDC).
29077
29078 The following example config shows a WebDAV endpoint that uses
29079 oidc-agent to supply an access token from the XDC OIDC Provider.
29080
29081 [dcache]
29082 type = webdav
29083 url = https://dcache.example.org/
29084 vendor = other
29085 bearer_token_command = oidc-token XDC
29086
29087 Yandex Disk
29088 Yandex Disk (https://disk.yandex.com) is a cloud storage solution cre‐
29089 ated by Yandex (https://yandex.com).
29090
29091 Here is an example of making a yandex configuration. First run
29092
29093 rclone config
29094
29095 This will guide you through an interactive setup process:
29096
29097 No remotes found - make a new one
29098 n) New remote
29099 s) Set configuration password
29100 n/s> n
29101 name> remote
29102 Type of storage to configure.
29103 Choose a number from below, or type in your own value
29104 [snip]
29105 XX / Yandex Disk
29106 \ "yandex"
29107 [snip]
29108 Storage> yandex
29109 Yandex Client Id - leave blank normally.
29110 client_id>
29111 Yandex Client Secret - leave blank normally.
29112 client_secret>
29113 Remote config
29114 Use auto config?
29115 * Say Y if not sure
29116 * Say N if you are working on a remote or headless machine
29117 y) Yes
29118 n) No
29119 y/n> y
29120 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
29121 Log in and authorize rclone for access
29122 Waiting for code...
29123 Got code
29124 --------------------
29125 [remote]
29126 client_id =
29127 client_secret =
29128 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"bearer","expiry":"2016-12-29T12:27:11.362788025Z"}
29129 --------------------
29130 y) Yes this is OK
29131 e) Edit this remote
29132 d) Delete this remote
29133 y/e/d> y
29134
29135 See the remote setup docs (https://rclone.org/remote_setup/) for how to
29136 set it up on a machine with no Internet browser available.
29137
29138 Note that rclone runs a webserver on your local machine to collect the
29139 token as returned from Yandex Disk. This only runs from the moment it
29140 opens your browser to the moment you get back the verification code.
29141 This is on http://127.0.0.1:53682/ and this it may require you to un‐
29142 block it temporarily if you are running a host firewall.
29143
29144 Once configured you can then use rclone like this,
29145
29146 See top level directories
29147
29148 rclone lsd remote:
29149
29150 Make a new directory
29151
29152 rclone mkdir remote:directory
29153
29154 List the contents of a directory
29155
29156 rclone ls remote:directory
29157
29158 Sync /home/local/directory to the remote path, deleting any excess
29159 files in the path.
29160
29161 rclone sync -i /home/local/directory remote:directory
29162
29163 Yandex paths may be as deep as required, e.g. remote:directory/subdi‐
29164 rectory.
29165
29166 Modified time
29167 Modified times are supported and are stored accurate to 1 ns in custom
29168 metadata called rclone_modified in RFC3339 with nanoseconds format.
29169
29170 MD5 checksums
29171 MD5 checksums are natively supported by Yandex Disk.
29172
29173 Emptying Trash
29174 If you wish to empty your trash you can use the rclone cleanup remote:
29175 command which will permanently delete all your trashed files. This
29176 command does not take any path arguments.
29177
29178 Quota information
29179 To view your current quota you can use the rclone about remote: command
29180 which will display your usage limit (quota) and the current usage.
29181
29182 Restricted filename characters
29183 The default restricted characters set (https://rclone.org/overview/#re‐
29184 stricted-characters) are replaced.
29185
29186 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
29187 view/#invalid-utf8), as they can't be used in JSON strings.
29188
29189 Limitations
29190 When uploading very large files (bigger than about 5GB) you will need
29191 to increase the --timeout parameter. This is because Yandex pauses
29192 (perhaps to calculate the MD5SUM for the entire file) before returning
29193 confirmation that the file has been uploaded. The default handling of
29194 timeouts in rclone is to assume a 5 minute pause is an error and close
29195 the connection - you'll see net/http: timeout awaiting response headers
29196 errors in the logs if this is happening. Setting the timeout to twice
29197 the max size of file in GB should be enough, so if you want to upload a
29198 30GB file set a timeout of 2 * 30 = 60m, that is --timeout 60m.
29199
29200 Standard Options
29201 Here are the standard options specific to yandex (Yandex Disk).
29202
29203 --yandex-client-id
29204 OAuth Client Id Leave blank normally.
29205
29206 • Config: client_id
29207
29208 • Env Var: RCLONE_YANDEX_CLIENT_ID
29209
29210 • Type: string
29211
29212 • Default: ""
29213
29214 --yandex-client-secret
29215 OAuth Client Secret Leave blank normally.
29216
29217 • Config: client_secret
29218
29219 • Env Var: RCLONE_YANDEX_CLIENT_SECRET
29220
29221 • Type: string
29222
29223 • Default: ""
29224
29225 Advanced Options
29226 Here are the advanced options specific to yandex (Yandex Disk).
29227
29228 --yandex-token
29229 OAuth Access Token as a JSON blob.
29230
29231 • Config: token
29232
29233 • Env Var: RCLONE_YANDEX_TOKEN
29234
29235 • Type: string
29236
29237 • Default: ""
29238
29239 --yandex-auth-url
29240 Auth server URL. Leave blank to use the provider defaults.
29241
29242 • Config: auth_url
29243
29244 • Env Var: RCLONE_YANDEX_AUTH_URL
29245
29246 • Type: string
29247
29248 • Default: ""
29249
29250 --yandex-token-url
29251 Token server url. Leave blank to use the provider defaults.
29252
29253 • Config: token_url
29254
29255 • Env Var: RCLONE_YANDEX_TOKEN_URL
29256
29257 • Type: string
29258
29259 • Default: ""
29260
29261 --yandex-encoding
29262 This sets the encoding for the backend.
29263
29264 See: the encoding section in the overview (https://rclone.org/over‐
29265 view/#encoding) for more info.
29266
29267 • Config: encoding
29268
29269 • Env Var: RCLONE_YANDEX_ENCODING
29270
29271 • Type: MultiEncoder
29272
29273 • Default: Slash,Del,Ctl,InvalidUtf8,Dot
29274
29275 Zoho Workdrive
29276 Zoho WorkDrive (https://www.zoho.com/workdrive/) is a cloud storage so‐
29277 lution created by Zoho (https://zoho.com).
29278
29279 Here is an example of making a zoho configuration. First run
29280
29281 rclone config
29282
29283 This will guide you through an interactive setup process:
29284
29285 No remotes found - make a new one
29286 n) New remote
29287 s) Set configuration password
29288 n/s> n
29289 name> remote
29290 Type of storage to configure.
29291 Enter a string value. Press Enter for the default ("").
29292 Choose a number from below, or type in your own value
29293 [snip]
29294 XX / Zoho
29295 \ "zoho"
29296 [snip]
29297 Storage> zoho
29298 ** See help for zoho backend at: https://rclone.org/zoho/ **
29299
29300 OAuth Client Id
29301 Leave blank normally.
29302 Enter a string value. Press Enter for the default ("").
29303 client_id>
29304 OAuth Client Secret
29305 Leave blank normally.
29306 Enter a string value. Press Enter for the default ("").
29307 client_secret>
29308 Edit advanced config? (y/n)
29309 y) Yes
29310 n) No (default)
29311 y/n> n
29312 Remote config
29313 Use auto config?
29314 * Say Y if not sure
29315 * Say N if you are working on a remote or headless machine
29316 y) Yes (default)
29317 n) No
29318 y/n>
29319 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=LVn0IHzxej1ZkmQw31d0wQ
29320 Log in and authorize rclone for access
29321 Waiting for code...
29322 Got code
29323 Choose a number from below, or type in your own value
29324 1 / MyTeam
29325 \ "4u28602177065ff22426787a6745dba8954eb"
29326 Enter a Team ID> 1
29327 Choose a number from below, or type in your own value
29328 1 / General
29329 \ "4u2869d2aa6fca04f4f2f896b6539243b85b1"
29330 Enter a Workspace ID> 1
29331 --------------------
29332 [remote]
29333 type = zoho
29334 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"Zoho-oauthtoken","refresh_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","expiry":"2020-10-12T00:54:52.370275223+02:00"}
29335 root_folder_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
29336 --------------------
29337 y) Yes this is OK (default)
29338 e) Edit this remote
29339 d) Delete this remote
29340 y/e/d>
29341
29342 See the remote setup docs (https://rclone.org/remote_setup/) for how to
29343 set it up on a machine with no Internet browser available.
29344
29345 Rclone runs a webserver on your local computer to collect the autho‐
29346 rization token from Zoho Workdrive. This is only from the moment your
29347 browser is opened until the token is returned. The webserver runs on
29348 http://127.0.0.1:53682/. If local port 53682 is protected by a fire‐
29349 wall you may need to temporarily unblock the firewall to complete au‐
29350 thorization.
29351
29352 Once configured you can then use rclone like this,
29353
29354 See top level directories
29355
29356 rclone lsd remote:
29357
29358 Make a new directory
29359
29360 rclone mkdir remote:directory
29361
29362 List the contents of a directory
29363
29364 rclone ls remote:directory
29365
29366 Sync /home/local/directory to the remote path, deleting any excess
29367 files in the path.
29368
29369 rclone sync -i /home/local/directory remote:directory
29370
29371 Zoho paths may be as deep as required, eg remote:directory/subdirecto‐
29372 ry.
29373
29374 Modified time
29375 Modified times are currently not supported for Zoho Workdrive
29376
29377 Checksums
29378 No checksums are supported.
29379
29380 Usage information
29381 To view your current quota you can use the rclone about remote: command
29382 which will display your current usage.
29383
29384 Restricted filename characters
29385 Only control characters and invalid UTF-8 are replaced. In addition
29386 most Unicode full-width characters are not supported at all and will be
29387 removed from filenames during upload.
29388
29389 Standard Options
29390 Here are the standard options specific to zoho (Zoho).
29391
29392 --zoho-client-id
29393 OAuth Client Id Leave blank normally.
29394
29395 • Config: client_id
29396
29397 • Env Var: RCLONE_ZOHO_CLIENT_ID
29398
29399 • Type: string
29400
29401 • Default: ""
29402
29403 --zoho-client-secret
29404 OAuth Client Secret Leave blank normally.
29405
29406 • Config: client_secret
29407
29408 • Env Var: RCLONE_ZOHO_CLIENT_SECRET
29409
29410 • Type: string
29411
29412 • Default: ""
29413
29414 --zoho-region
29415 Zoho region to connect to. You'll have to use the region you organiza‐
29416 tion is registered in.
29417
29418 • Config: region
29419
29420 • Env Var: RCLONE_ZOHO_REGION
29421
29422 • Type: string
29423
29424 • Default: ""
29425
29426 • Examples:
29427
29428 • "com"
29429
29430 • United states / Global
29431
29432 • "eu"
29433
29434 • Europe
29435
29436 • "in"
29437
29438 • India
29439
29440 • "com.au"
29441
29442 • Australia
29443
29444 Advanced Options
29445 Here are the advanced options specific to zoho (Zoho).
29446
29447 --zoho-token
29448 OAuth Access Token as a JSON blob.
29449
29450 • Config: token
29451
29452 • Env Var: RCLONE_ZOHO_TOKEN
29453
29454 • Type: string
29455
29456 • Default: ""
29457
29458 --zoho-auth-url
29459 Auth server URL. Leave blank to use the provider defaults.
29460
29461 • Config: auth_url
29462
29463 • Env Var: RCLONE_ZOHO_AUTH_URL
29464
29465 • Type: string
29466
29467 • Default: ""
29468
29469 --zoho-token-url
29470 Token server url. Leave blank to use the provider defaults.
29471
29472 • Config: token_url
29473
29474 • Env Var: RCLONE_ZOHO_TOKEN_URL
29475
29476 • Type: string
29477
29478 • Default: ""
29479
29480 --zoho-encoding
29481 This sets the encoding for the backend.
29482
29483 See: the encoding section in the overview (https://rclone.org/over‐
29484 view/#encoding) for more info.
29485
29486 • Config: encoding
29487
29488 • Env Var: RCLONE_ZOHO_ENCODING
29489
29490 • Type: MultiEncoder
29491
29492 • Default: Del,Ctl,InvalidUtf8
29493
29494 Local Filesystem
29495 Local paths are specified as normal filesystem paths, e.g.
29496 /path/to/wherever, so
29497
29498 rclone sync -i /home/source /tmp/destination
29499
29500 Will sync /home/source to /tmp/destination.
29501
29502 For consistencies sake one can also configure a remote of type local in
29503 the config file, and access the local filesystem using rclone remote
29504 paths, e.g. remote:path/to/wherever, but it is probably easier not to.
29505
29506 Modified time
29507 Rclone reads and writes the modified time using an accuracy determined
29508 by the OS. Typically this is 1ns on Linux, 10 ns on Windows and 1 Sec‐
29509 ond on OS X.
29510
29511 Filenames
29512 Filenames should be encoded in UTF-8 on disk. This is the normal case
29513 for Windows and OS X.
29514
29515 There is a bit more uncertainty in the Linux world, but new distribu‐
29516 tions will have UTF-8 encoded files names. If you are using an old
29517 Linux filesystem with non UTF-8 file names (e.g. latin1) then you can
29518 use the convmv tool to convert the filesystem to UTF-8. This tool is
29519 available in most distributions' package managers.
29520
29521 If an invalid (non-UTF8) filename is read, the invalid characters will
29522 be replaced with a quoted representation of the invalid bytes. The
29523 name gro\xdf will be transferred as gro‛DF. rclone will emit a debug
29524 message in this case (use -v to see), e.g.
29525
29526 Local file system at .: Replacing invalid UTF-8 characters in "gro\xdf"
29527
29528 Restricted characters
29529 On non Windows platforms the following characters are replaced when
29530 handling file names.
29531
29532 Character Value Replacement
29533 ────────────────────────────────
29534 NUL 0x00 ␀
29535 / 0x2F /
29536
29537 When running on Windows the following characters are replaced. This
29538 list is based on the Windows file naming conventions (https://docs.mi‐
29539 crosoft.com/de-de/windows/desktop/FileIO/naming-a-file#naming-conven‐
29540 tions).
29541
29542 Character Value Replacement
29543 ────────────────────────────────
29544 NUL 0x00 ␀
29545 SOH 0x01 ␁
29546 STX 0x02 ␂
29547 ETX 0x03 ␃
29548 EOT 0x04 ␄
29549 ENQ 0x05 ␅
29550 ACK 0x06 ␆
29551 BEL 0x07 ␇
29552 BS 0x08 ␈
29553 HT 0x09 ␉
29554 LF 0x0A ␊
29555 VT 0x0B ␋
29556 FF 0x0C ␌
29557 CR 0x0D ␍
29558 SO 0x0E ␎
29559 SI 0x0F ␏
29560 DLE 0x10 ␐
29561 DC1 0x11 ␑
29562 DC2 0x12 ␒
29563 DC3 0x13 ␓
29564 DC4 0x14 ␔
29565 NAK 0x15 ␕
29566 SYN 0x16 ␖
29567 ETB 0x17 ␗
29568 CAN 0x18 ␘
29569 EM 0x19 ␙
29570 SUB 0x1A ␚
29571 ESC 0x1B ␛
29572 FS 0x1C ␜
29573 GS 0x1D ␝
29574 RS 0x1E ␞
29575 US 0x1F ␟
29576 / 0x2F /
29577 " 0x22 "
29578 * 0x2A *
29579 : 0x3A :
29580 < 0x3C <
29581 > 0x3E >
29582 ? 0x3F ?
29583 \ 0x5C \
29584 | 0x7C |
29585
29586 File names on Windows can also not end with the following characters.
29587 These only get replaced if they are the last character in the name:
29588
29589 Character Value Replacement
29590 ────────────────────────────────
29591 SP 0x20 ␠
29592 . 0x2E .
29593
29594 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
29595 view/#invalid-utf8), as they can't be converted to UTF-16.
29596
29597 Paths on Windows
29598 On Windows there are many ways of specifying a path to a file system
29599 resource. Both absolute paths like C:\path\to\wherever, and relative
29600 paths like ..\wherever can be used, and path separator can be either \
29601 (as in C:\path\to\wherever) or / (as in C:/path/to/wherever). Length
29602 of these paths are limited to 259 characters for files and 247 charac‐
29603 ters for directories, but there is an alternative extended-length path
29604 format increasing the limit to (approximately) 32,767 characters. This
29605 format requires absolute paths and the use of prefix \\?\, e.g.
29606 \\?\D:\some\very\long\path. For convenience rclone will automatically
29607 convert regular paths into the corresponding extended-length paths, so
29608 in most cases you do not have to worry about this (read more below).
29609
29610 Note that Windows supports using the same prefix \\?\ to specify path
29611 to volumes identified by their GUID, e.g. \\?\Vol‐
29612 ume{b75e2c83-0000-0000-0000-602f00000000}\some\path. This is not sup‐
29613 ported in rclone, due to an issue (https://github.com/golang/go/is‐
29614 sues/39785) in go.
29615
29616 Long paths
29617 Rclone handles long paths automatically, by converting all paths to ex‐
29618 tended-length path format (https://docs.microsoft.com/en-us/win‐
29619 dows/win32/fileio/maximum-file-path-limitation), which allows paths up
29620 to 32,767 characters.
29621
29622 This conversion will ensure paths are absolute and prefix them with the
29623 \\?\. This is why you will see that your paths, for instance .\files
29624 is shown as path \\?\C:\files in the output, and \\server\share as
29625 \\?\UNC\server\share.
29626
29627 However, in rare cases this may cause problems with buggy file system
29628 drivers like EncFS (https://github.com/rclone/rclone/issues/261). To
29629 disable UNC conversion globally, add this to your .rclone.conf file:
29630
29631 [local]
29632 nounc = true
29633
29634 If you want to selectively disable UNC, you can add it to a separate
29635 entry like this:
29636
29637 [nounc]
29638 type = local
29639 nounc = true
29640
29641 And use rclone like this:
29642
29643 rclone copy c:\src nounc:z:\dst
29644
29645 This will use UNC paths on c:\src but not on z:\dst. Of course this
29646 will cause problems if the absolute path length of a file exceeds 259
29647 characters on z, so only use this option if you have to.
29648
29649 Symlinks / Junction points
29650 Normally rclone will ignore symlinks or junction points (which behave
29651 like symlinks under Windows).
29652
29653 If you supply --copy-links or -L then rclone will follow the symlink
29654 and copy the pointed to file or directory. Note that this flag is in‐
29655 compatible with -links / -l.
29656
29657 This flag applies to all commands.
29658
29659 For example, supposing you have a directory structure like this
29660
29661 $ tree /tmp/a
29662 /tmp/a
29663 ├── b -> ../b
29664 ├── expected -> ../expected
29665 ├── one
29666 └── two
29667 └── three
29668
29669 Then you can see the difference with and without the flag like this
29670
29671 $ rclone ls /tmp/a
29672 6 one
29673 6 two/three
29674
29675 and
29676
29677 $ rclone -L ls /tmp/a
29678 4174 expected
29679 6 one
29680 6 two/three
29681 6 b/two
29682 6 b/one
29683
29684 --links, -l
29685 Normally rclone will ignore symlinks or junction points (which behave
29686 like symlinks under Windows).
29687
29688 If you supply this flag then rclone will copy symbolic links from the
29689 local storage, and store them as text files, with a '.rclonelink' suf‐
29690 fix in the remote storage.
29691
29692 The text file will contain the target of the symbolic link (see exam‐
29693 ple).
29694
29695 This flag applies to all commands.
29696
29697 For example, supposing you have a directory structure like this
29698
29699 $ tree /tmp/a
29700 /tmp/a
29701 ├── file1 -> ./file4
29702 └── file2 -> /home/user/file3
29703
29704 Copying the entire directory with '-l'
29705
29706 $ rclone copyto -l /tmp/a/file1 remote:/tmp/a/
29707
29708 The remote files are created with a '.rclonelink' suffix
29709
29710 $ rclone ls remote:/tmp/a
29711 5 file1.rclonelink
29712 14 file2.rclonelink
29713
29714 The remote files will contain the target of the symbolic links
29715
29716 $ rclone cat remote:/tmp/a/file1.rclonelink
29717 ./file4
29718
29719 $ rclone cat remote:/tmp/a/file2.rclonelink
29720 /home/user/file3
29721
29722 Copying them back with '-l'
29723
29724 $ rclone copyto -l remote:/tmp/a/ /tmp/b/
29725
29726 $ tree /tmp/b
29727 /tmp/b
29728 ├── file1 -> ./file4
29729 └── file2 -> /home/user/file3
29730
29731 However, if copied back without '-l'
29732
29733 $ rclone copyto remote:/tmp/a/ /tmp/b/
29734
29735 $ tree /tmp/b
29736 /tmp/b
29737 ├── file1.rclonelink
29738 └── file2.rclonelink
29739
29740 Note that this flag is incompatible with -copy-links / -L.
29741
29742 Restricting filesystems with --one-file-system
29743 Normally rclone will recurse through filesystems as mounted.
29744
29745 However if you set --one-file-system or -x this tells rclone to stay in
29746 the filesystem specified by the root and not to recurse into different
29747 file systems.
29748
29749 For example if you have a directory hierarchy like this
29750
29751 root
29752 ├── disk1 - disk1 mounted on the root
29753 │ └── file3 - stored on disk1
29754 ├── disk2 - disk2 mounted on the root
29755 │ └── file4 - stored on disk12
29756 ├── file1 - stored on the root disk
29757 └── file2 - stored on the root disk
29758
29759 Using rclone --one-file-system copy root remote: will only copy file1
29760 and file2. Eg
29761
29762 $ rclone -q --one-file-system ls root
29763 0 file1
29764 0 file2
29765
29766 $ rclone -q ls root
29767 0 disk1/file3
29768 0 disk2/file4
29769 0 file1
29770 0 file2
29771
29772 NB Rclone (like most unix tools such as du, rsync and tar) treats a
29773 bind mount to the same device as being on the same filesystem.
29774
29775 NB This flag is only available on Unix based systems. On systems where
29776 it isn't supported (e.g. Windows) it will be ignored.
29777
29778 Advanced Options
29779 Here are the advanced options specific to local (Local Disk).
29780
29781 --local-nounc
29782 Disable UNC (long path names) conversion on Windows
29783
29784 • Config: nounc
29785
29786 • Env Var: RCLONE_LOCAL_NOUNC
29787
29788 • Type: string
29789
29790 • Default: ""
29791
29792 • Examples:
29793
29794 • "true"
29795
29796 • Disables long file names
29797
29798 --copy-links / -L
29799 Follow symlinks and copy the pointed to item.
29800
29801 • Config: copy_links
29802
29803 • Env Var: RCLONE_LOCAL_COPY_LINKS
29804
29805 • Type: bool
29806
29807 • Default: false
29808
29809 --links / -l
29810 Translate symlinks to/from regular files with a '.rclonelink' extension
29811
29812 • Config: links
29813
29814 • Env Var: RCLONE_LOCAL_LINKS
29815
29816 • Type: bool
29817
29818 • Default: false
29819
29820 --skip-links
29821 Don't warn about skipped symlinks. This flag disables warning messages
29822 on skipped symlinks or junction points, as you explicitly acknowledge
29823 that they should be skipped.
29824
29825 • Config: skip_links
29826
29827 • Env Var: RCLONE_LOCAL_SKIP_LINKS
29828
29829 • Type: bool
29830
29831 • Default: false
29832
29833 --local-zero-size-links
29834 Assume the Stat size of links is zero (and read them instead)
29835
29836 On some virtual filesystems (such ash LucidLink), reading a link size
29837 via a Stat call always returns 0. However, on unix it reads as the
29838 length of the text in the link. This may cause errors like this when
29839 syncing:
29840
29841 Failed to copy: corrupted on transfer: sizes differ 0 vs 13
29842
29843 Setting this flag causes rclone to read the link and use that as the
29844 size of the link instead of 0 which in most cases fixes the problem.
29845
29846 • Config: zero_size_links
29847
29848 • Env Var: RCLONE_LOCAL_ZERO_SIZE_LINKS
29849
29850 • Type: bool
29851
29852 • Default: false
29853
29854 --local-no-unicode-normalization
29855 Don't apply unicode normalization to paths and filenames (Deprecated)
29856
29857 This flag is deprecated now. Rclone no longer normalizes unicode file
29858 names, but it compares them with unicode normalization in the sync rou‐
29859 tine instead.
29860
29861 • Config: no_unicode_normalization
29862
29863 • Env Var: RCLONE_LOCAL_NO_UNICODE_NORMALIZATION
29864
29865 • Type: bool
29866
29867 • Default: false
29868
29869 --local-no-check-updated
29870 Don't check to see if the files change during upload
29871
29872 Normally rclone checks the size and modification time of files as they
29873 are being uploaded and aborts with a message which starts "can't copy -
29874 source file is being updated" if the file changes during upload.
29875
29876 However on some file systems this modification time check may fail
29877 (e.g. Glusterfs #2206 (https://github.com/rclone/rclone/issues/2206))
29878 so this check can be disabled with this flag.
29879
29880 If this flag is set, rclone will use its best efforts to transfer a
29881 file which is being updated. If the file is only having things append‐
29882 ed to it (e.g. a log) then rclone will transfer the log file with the
29883 size it had the first time rclone saw it.
29884
29885 If the file is being modified throughout (not just appended to) then
29886 the transfer may fail with a hash check failure.
29887
29888 In detail, once the file has had stat() called on it for the first time
29889 we:
29890
29891 • Only transfer the size that stat gave
29892
29893 • Only checksum the size that stat gave
29894
29895 • Don't update the stat info for the file
29896
29897 • Config: no_check_updated
29898
29899 • Env Var: RCLONE_LOCAL_NO_CHECK_UPDATED
29900
29901 • Type: bool
29902
29903 • Default: false
29904
29905 --one-file-system / -x
29906 Don't cross filesystem boundaries (unix/macOS only).
29907
29908 • Config: one_file_system
29909
29910 • Env Var: RCLONE_LOCAL_ONE_FILE_SYSTEM
29911
29912 • Type: bool
29913
29914 • Default: false
29915
29916 --local-case-sensitive
29917 Force the filesystem to report itself as case sensitive.
29918
29919 Normally the local backend declares itself as case insensitive on Win‐
29920 dows/macOS and case sensitive for everything else. Use this flag to
29921 override the default choice.
29922
29923 • Config: case_sensitive
29924
29925 • Env Var: RCLONE_LOCAL_CASE_SENSITIVE
29926
29927 • Type: bool
29928
29929 • Default: false
29930
29931 --local-case-insensitive
29932 Force the filesystem to report itself as case insensitive
29933
29934 Normally the local backend declares itself as case insensitive on Win‐
29935 dows/macOS and case sensitive for everything else. Use this flag to
29936 override the default choice.
29937
29938 • Config: case_insensitive
29939
29940 • Env Var: RCLONE_LOCAL_CASE_INSENSITIVE
29941
29942 • Type: bool
29943
29944 • Default: false
29945
29946 --local-no-preallocate
29947 Disable preallocation of disk space for transferred files
29948
29949 Preallocation of disk space helps prevent filesystem fragmentation.
29950 However, some virtual filesystem layers (such as Google Drive File
29951 Stream) may incorrectly set the actual file size equal to the preallo‐
29952 cated space, causing checksum and file size checks to fail. Use this
29953 flag to disable preallocation.
29954
29955 • Config: no_preallocate
29956
29957 • Env Var: RCLONE_LOCAL_NO_PREALLOCATE
29958
29959 • Type: bool
29960
29961 • Default: false
29962
29963 --local-no-sparse
29964 Disable sparse files for multi-thread downloads
29965
29966 On Windows platforms rclone will make sparse files when doing mul‐
29967 ti-thread downloads. This avoids long pauses on large files where the
29968 OS zeros the file. However sparse files may be undesirable as they
29969 cause disk fragmentation and can be slow to work with.
29970
29971 • Config: no_sparse
29972
29973 • Env Var: RCLONE_LOCAL_NO_SPARSE
29974
29975 • Type: bool
29976
29977 • Default: false
29978
29979 --local-no-set-modtime
29980 Disable setting modtime
29981
29982 Normally rclone updates modification time of files after they are done
29983 uploading. This can cause permissions issues on Linux platforms when
29984 the user rclone is running as does not own the file uploaded, such as
29985 when copying to a CIFS mount owned by another user. If this option is
29986 enabled, rclone will no longer update the modtime after copying a file.
29987
29988 • Config: no_set_modtime
29989
29990 • Env Var: RCLONE_LOCAL_NO_SET_MODTIME
29991
29992 • Type: bool
29993
29994 • Default: false
29995
29996 --local-encoding
29997 This sets the encoding for the backend.
29998
29999 See: the encoding section in the overview (https://rclone.org/over‐
30000 view/#encoding) for more info.
30001
30002 • Config: encoding
30003
30004 • Env Var: RCLONE_LOCAL_ENCODING
30005
30006 • Type: MultiEncoder
30007
30008 • Default: Slash,Dot
30009
30010 Backend commands
30011 Here are the commands specific to the local backend.
30012
30013 Run them with
30014
30015 rclone backend COMMAND remote:
30016
30017 The help below will explain what arguments each command takes.
30018
30019 See the "rclone backend" command (https://rclone.org/com‐
30020 mands/rclone_backend/) for more info on how to pass options and argu‐
30021 ments.
30022
30023 These can be run on a running backend using the rc command backend/com‐
30024 mand (https://rclone.org/rc/#backend/command).
30025
30026 noop
30027 A null operation for testing backend commands
30028
30029 rclone backend noop remote: [options] [<arguments>+]
30030
30031 This is a test command which has some options you can try to change the
30032 output.
30033
30034 Options:
30035
30036 • "echo": echo the input arguments
30037
30038 • "error": return an error based on option value
30039
30041 v1.55.1 - 2021-04-26
30042 See commits (https://github.com/rclone/rclone/com‐
30043 pare/v1.55.0...v1.55.1)
30044
30045 • Bug Fixes
30046
30047 • selfupdate
30048
30049 • Dont detect FUSE if build is static (Ivan Andreev)
30050
30051 • Add build tag noselfupdate (Ivan Andreev)
30052
30053 • sync: Fix incorrect error reported by graceful cutoff (Nick
30054 Craig-Wood)
30055
30056 • install.sh: fix macOS arm64 download (Nick Craig-Wood)
30057
30058 • build: Fix version numbers in android branch builds (Nick
30059 Craig-Wood)
30060
30061 • docs
30062
30063 • Contributing.md: update setup instructions for go1.16 (Nick Gaya)
30064
30065 • WinFsp 2021 is out of beta (albertony)
30066
30067 • Minor cleanup of space around code section (albertony)
30068
30069 • Fixed some typos (albertony)
30070
30071 • VFS
30072
30073 • Fix a code path which allows dirty data to be removed causing data
30074 loss (Nick Craig-Wood)
30075
30076 • Compress
30077
30078 • Fix compressed name regexp (buengese)
30079
30080 • Drive
30081
30082 • Fix backend copyid of google doc to directory (Nick Craig-Wood)
30083
30084 • Don't open browser when service account... (Ansh Mittal)
30085
30086 • Dropbox
30087
30088 • Add missing team_data.member scope for use with --impersonate (Nick
30089 Craig-Wood)
30090
30091 • Fix About after scopes changes - rclone config reconnect needed
30092 (Nick Craig-Wood)
30093
30094 • Fix Unable to decrypt returned paths from changeNotify (Nick
30095 Craig-Wood)
30096
30097 • FTP
30098
30099 • Fix implicit TLS (Ivan Andreev)
30100
30101 • Onedrive
30102
30103 • Work around for random "Unable to initialize RPS" errors (OleFrost)
30104
30105 • SFTP
30106
30107 • Revert sftp library to v1.12.0 from v1.13.0 to fix performance re‐
30108 gression (Nick Craig-Wood)
30109
30110 • Fix Update ReadFrom failed: failed to send packet: EOF errors (Nick
30111 Craig-Wood)
30112
30113 • Zoho
30114
30115 • Fix error when region isn't set (buengese)
30116
30117 • Do not ask for mountpoint twice when using headless setup
30118 (buengese)
30119
30120 v1.55.0 - 2021-03-31
30121 See commits (https://github.com/rclone/rclone/com‐
30122 pare/v1.54.0...v1.55.0)
30123
30124 • New commands
30125
30126 • selfupdate (https://rclone.org/commands/rclone_selfupdate/) (Ivan
30127 Andreev)
30128
30129 • Allows rclone to update itself in-place or via a package (using
30130 --package flag)
30131
30132 • Reads cryptographically signed signatures for non beta releases
30133
30134 • Works on all OSes.
30135
30136 • test (https://rclone.org/commands/rclone_test/) - these are test
30137 commands - use with care!
30138
30139 • histogram - Makes a histogram of file name characters.
30140
30141 • info - Discovers file name or other limitations for paths.
30142
30143 • makefiles - Make a random file hierarchy for testing.
30144
30145 • memory - Load all the objects at remote:path into memory and re‐
30146 port memory stats.
30147
30148 • New Features
30149
30150 • Connection strings (https://rclone.org/docs/#connection-strings)
30151
30152 • Config parameters can now be passed as part of the remote name as
30153 a connection string.
30154
30155 • For example to do the equivalent of --drive-shared-with-me use
30156 drive,shared_with_me:
30157
30158 • Make sure we don't save on the fly remote config to the config
30159 file (Nick Craig-Wood)
30160
30161 • Make sure backends with additional config have a different name
30162 for caching (Nick Craig-Wood)
30163
30164 • This work was sponsored by CERN, through the CS3MESH4EOSC Project
30165 (https://cs3mesh4eosc.eu/).
30166
30167 • CS3MESH4EOSC has received funding from the European Union’s
30168 Horizon 2020
30169
30170 • research and innovation programme under Grant Agreement no.
30171 863353.
30172
30173 • build
30174
30175 • Update go build version to go1.16 and raise minimum go version to
30176 go1.13 (Nick Craig-Wood)
30177
30178 • Make a macOS ARM64 build to support Apple Silicon (Nick
30179 Craig-Wood)
30180
30181 • Install macfuse 4.x instead of osxfuse 3.x (Nick Craig-Wood)
30182
30183 • Use GO386=softfloat instead of deprecated GO386=387 for 386
30184 builds (Nick Craig-Wood)
30185
30186 • Disable IOS builds for the time being (Nick Craig-Wood)
30187
30188 • Androids builds made with up to date NDK (x0b)
30189
30190 • Add an rclone user to the Docker image but don't use it by de‐
30191 fault (cynthia kwok)
30192
30193 • dedupe: Make largest directory primary to minimize data moved (Sak‐
30194 sham Khanna)
30195
30196 • config
30197
30198 • Wrap config library in an interface (Fionera)
30199
30200 • Make config file system pluggable (Nick Craig-Wood)
30201
30202 • --config "" or "/notfound" for in memory config only (Nick
30203 Craig-Wood)
30204
30205 • Clear fs cache of stale entries when altering config (Nick
30206 Craig-Wood)
30207
30208 • copyurl: Add option to print resulting auto-filename (albertony)
30209
30210 • delete: Make --rmdirs obey the filters (Nick Craig-Wood)
30211
30212 • docs - many fixes and reworks from edwardxml, albertony, pvalls,
30213 Ivan Andreev, Evan Harris, buengese, Alexey Tabakman
30214
30215 • encoder/filename - add SCSU as tables (Klaus Post)
30216
30217 • Add multiple paths support to --compare-dest and --copy-dest flag
30218 (K265)
30219
30220 • filter: Make --exclude "dir/" equivalent to --exclude "dir/**"
30221 (Nick Craig-Wood)
30222
30223 • fshttp: Add DSCP support with --dscp for QoS with differentiated
30224 services (Max Sum)
30225
30226 • lib/cache: Add Delete and DeletePrefix methods (Nick Craig-Wood)
30227
30228 • lib/file
30229
30230 • Make pre-allocate detect disk full errors and return them (Nick
30231 Craig-Wood)
30232
30233 • Don't run preallocate concurrently (Nick Craig-Wood)
30234
30235 • Retry preallocate on EINTR (Nick Craig-Wood)
30236
30237 • operations: Made copy and sync operations obey a RetryAfterError
30238 (Ankur Gupta)
30239
30240 • rc
30241
30242 • Add string alternatives for setting options over the rc (Nick
30243 Craig-Wood)
30244
30245 • Add options/local to see the options configured in the context
30246 (Nick Craig-Wood)
30247
30248 • Add _config parameter to set global config for just this rc call
30249 (Nick Craig-Wood)
30250
30251 • Implement passing filter config with _filter parameter (Nick
30252 Craig-Wood)
30253
30254 • Add fscache/clear and fscache/entries to control the fs cache
30255 (Nick Craig-Wood)
30256
30257 • Avoid +Inf value for speed in core/stats (albertony)
30258
30259 • Add a full set of stats to core/stats (Nick Craig-Wood)
30260
30261 • Allow fs= params to be a JSON blob (Nick Craig-Wood)
30262
30263 • rcd: Added systemd notification during the rclone rcd command.
30264 (Naveen Honest Raj)
30265
30266 • rmdirs: Make --rmdirs obey the filters (Nick Craig-Wood)
30267
30268 • version: Show build tags and type of executable (Ivan Andreev)
30269
30270 • Bug Fixes
30271
30272 • install.sh: make it fail on download errors (Ivan Andreev)
30273
30274 • Fix excessive retries missing --max-duration timeout (Nick
30275 Craig-Wood)
30276
30277 • Fix crash when --low-level-retries=0 (Nick Craig-Wood)
30278
30279 • Fix failed token refresh on mounts created via the rc (Nick
30280 Craig-Wood)
30281
30282 • fshttp: Fix bandwidth limiting after bad merge (Nick Craig-Wood)
30283
30284 • lib/atexit
30285
30286 • Unregister interrupt handler once it has fired so users can in‐
30287 terrupt again (Nick Craig-Wood)
30288
30289 • Fix occasional failure to unmount with CTRL-C (Nick Craig-Wood)
30290
30291 • Fix deadlock calling Finalise while Run is running (Nick
30292 Craig-Wood)
30293
30294 • lib/rest: Fix multipart uploads not stopping on context cancel
30295 (Nick Craig-Wood)
30296
30297 • Mount
30298
30299 • Allow mounting to root directory on windows (albertony)
30300
30301 • Improved handling of relative paths on windows (albertony)
30302
30303 • Fix unicode issues with accented characters on macOS (Nick
30304 Craig-Wood)
30305
30306 • Docs: document the new FileSecurity option in WinFsp 2021 (al‐
30307 bertony)
30308
30309 • Docs: add note about volume path syntax on windows (albertony)
30310
30311 • Fix caching of old directories after renaming them (Nick
30312 Craig-Wood)
30313
30314 • Update cgofuse to the latest version to bring in macfuse 4 fix
30315 (Nick Craig-Wood)
30316
30317 • VFS
30318
30319 • --vfs-used-is-size to report used space using recursive scan
30320 (tYYGH)
30321
30322 • Don't set modification time if it was already correct (Nick
30323 Craig-Wood)
30324
30325 • Fix Create causing windows explorer to truncate files on CTRL-C
30326 CTRL-V (Nick Craig-Wood)
30327
30328 • Fix modtimes not updating when writing via cache (Nick Craig-Wood)
30329
30330 • Fix modtimes changing by fractional seconds after upload (Nick
30331 Craig-Wood)
30332
30333 • Fix modtime set if --vfs-cache-mode writes/full and no write (Nick
30334 Craig-Wood)
30335
30336 • Rename files in cache and cancel uploads on directory rename (Nick
30337 Craig-Wood)
30338
30339 • Fix directory renaming by renaming dirs cached in memory (Nick
30340 Craig-Wood)
30341
30342 • Local
30343
30344 • Add flag --local-no-preallocate (David Sze)
30345
30346 • Make nounc an advanced option except on Windows (albertony)
30347
30348 • Don't ignore preallocate disk full errors (Nick Craig-Wood)
30349
30350 • Cache
30351
30352 • Add --fs-cache-expire-duration to control the fs cache (Nick
30353 Craig-Wood)
30354
30355 • Crypt
30356
30357 • Add option to not encrypt data (Vesnyx)
30358
30359 • Log hash ok on upload (albertony)
30360
30361 • Azure Blob
30362
30363 • Add container public access level support. (Manish Kumar)
30364
30365 • B2
30366
30367 • Fix HTML files downloaded via cloudflare (Nick Craig-Wood)
30368
30369 • Box
30370
30371 • Fix transfers getting stuck on token expiry after API change (Nick
30372 Craig-Wood)
30373
30374 • Chunker
30375
30376 • Partially implement no-rename transactions (Maxwell Calman)
30377
30378 • Drive
30379
30380 • Don't stop server side copy if couldn't read description (Nick
30381 Craig-Wood)
30382
30383 • Pass context on to drive SDK - to help with cancellation (Nick
30384 Craig-Wood)
30385
30386 • Dropbox
30387
30388 • Add polling for changes support (Robert Thomas)
30389
30390 • Make --timeout 0 work properly (Nick Craig-Wood)
30391
30392 • Raise priority of rate limited message to INFO to make it more no‐
30393 ticeable (Nick Craig-Wood)
30394
30395 • Fichier
30396
30397 • Implement copy & move (buengese)
30398
30399 • Implement public link (buengese)
30400
30401 • FTP
30402
30403 • Implement Shutdown method (Nick Craig-Wood)
30404
30405 • Close idle connections after --ftp-idle-timeout (1m by default)
30406 (Nick Craig-Wood)
30407
30408 • Make --timeout 0 work properly (Nick Craig-Wood)
30409
30410 • Add --ftp-close-timeout flag for use with awkward ftp servers (Nick
30411 Craig-Wood)
30412
30413 • Retry connections and logins on 421 errors (Nick Craig-Wood)
30414
30415 • Hdfs
30416
30417 • Fix permissions for when directory is created (Lucas Messenger)
30418
30419 • Onedrive
30420
30421 • Make --timeout 0 work properly (Nick Craig-Wood)
30422
30423 • S3
30424
30425 • Fix --s3-profile which wasn't working (Nick Craig-Wood)
30426
30427 • SFTP
30428
30429 • Close idle connections after --sftp-idle-timeout (1m by default)
30430 (Nick Craig-Wood)
30431
30432 • Fix "file not found" errors for read once servers (Nick Craig-Wood)
30433
30434 • Fix SetModTime stat failed: object not found with --sftp-set-mod‐
30435 time=false (Nick Craig-Wood)
30436
30437 • Swift
30438
30439 • Update github.com/ncw/swift to v2.0.0 (Nick Craig-Wood)
30440
30441 • Implement copying large objects (nguyenhuuluan434)
30442
30443 • Union
30444
30445 • Fix crash when using epff policy (Nick Craig-Wood)
30446
30447 • Fix union attempting to update files on a read only file system
30448 (Nick Craig-Wood)
30449
30450 • Refactor to use fspath.SplitFs instead of fs.ParseRemote (Nick
30451 Craig-Wood)
30452
30453 • Fix initialisation broken in refactor (Nick Craig-Wood)
30454
30455 • WebDAV
30456
30457 • Add support for sharepoint with NTLM authentication (Rauno Ots)
30458
30459 • Make sharepoint-ntlm docs more consistent (Alex Chen)
30460
30461 • Improve terminology in sharepoint-ntlm docs (Ivan Andreev)
30462
30463 • Disable HTTP/2 for NTLM authentication (georne)
30464
30465 • Fix sharepoint-ntlm error 401 for parallel actions (Ivan Andreev)
30466
30467 • Check that purged directory really exists (Ivan Andreev)
30468
30469 • Yandex
30470
30471 • Make --timeout 0 work properly (Nick Craig-Wood)
30472
30473 • Zoho
30474
30475 • Replace client id - you will need to rclone config reconnect after
30476 this (buengese)
30477
30478 • Add forgotten setupRegion() to NewFs - this finally fixes regions
30479 other than EU (buengese)
30480
30481 v1.54.1 - 2021-03-08
30482 See commits (https://github.com/rclone/rclone/com‐
30483 pare/v1.54.0...v1.54.1)
30484
30485 • Bug Fixes
30486
30487 • accounting: Fix --bwlimit when up or down is off (Nick Craig-Wood)
30488
30489 • docs
30490
30491 • Fix nesting of brackets and backticks in ftp docs (edwardxml)
30492
30493 • Fix broken link in sftp page (edwardxml)
30494
30495 • Fix typo in crypt.md (Romeo Kienzler)
30496
30497 • Changelog: Correct link to digitalis.io (Alex JOST)
30498
30499 • Replace #file-caching with #vfs-file-caching (Miron Veryanskiy)
30500
30501 • Convert bogus example link to code (edwardxml)
30502
30503 • Remove dead link from rc.md (edwardxml)
30504
30505 • rc: Sync,copy,move: document createEmptySrcDirs parameter (Nick
30506 Craig-Wood)
30507
30508 • lsjson: Fix unterminated JSON in the presence of errors (Nick
30509 Craig-Wood)
30510
30511 • Mount
30512
30513 • Fix mount dropping on macOS by setting --daemon-timeout 10m (Nick
30514 Craig-Wood)
30515
30516 • VFS
30517
30518 • Document simultaneous usage with the same cache shouldn't be used
30519 (Nick Craig-Wood)
30520
30521 • B2
30522
30523 • Automatically raise upload cutoff to avoid spurious error (Nick
30524 Craig-Wood)
30525
30526 • Fix failed to create file system with application key limited to a
30527 prefix (Nick Craig-Wood)
30528
30529 • Drive
30530
30531 • Refer to Shared Drives instead of Team Drives (Nick Craig-Wood)
30532
30533 • Dropbox
30534
30535 • Add scopes to oauth request and optionally "members.read" (Nick
30536 Craig-Wood)
30537
30538 • S3
30539
30540 • Fix failed to create file system with folder level permissions pol‐
30541 icy (Nick Craig-Wood)
30542
30543 • Fix Wasabi HEAD requests returning stale data by using only 1
30544 transport (Nick Craig-Wood)
30545
30546 • Fix shared_credentials_file auth (Dmitry Chepurovskiy)
30547
30548 • Add --s3-no-head to reducing costs docs (Nick Craig-Wood)
30549
30550 • Union
30551
30552 • Fix mkdir at root with remote:/ (Nick Craig-Wood)
30553
30554 • Zoho
30555
30556 • Fix custom client id's (buengese)
30557
30558 v1.54.0 - 2021-02-02
30559 See commits (https://github.com/rclone/rclone/com‐
30560 pare/v1.53.0...v1.54.0)
30561
30562 • New backends
30563
30564 • Compression remote (experimental) (buengese)
30565
30566 • Enterprise File Fabric (Nick Craig-Wood)
30567
30568 • This work was sponsored by Storage Made Easy (https://storage‐
30569 madeeasy.com/)
30570
30571 • HDFS (Hadoop Distributed File System) (Yury Stankevich)
30572
30573 • Zoho workdrive (buengese)
30574
30575 • New Features
30576
30577 • Deglobalise the config (Nick Craig-Wood)
30578
30579 • Global config now read from the context
30580
30581 • This will enable passing of global config via the rc
30582
30583 • This work was sponsored by Digitalis (https://digitalis.io/)
30584
30585 • Add --bwlimit for upload and download (Nick Craig-Wood)
30586
30587 • Obey bwlimit in http Transport for better limiting
30588
30589 • Enhance systemd integration (Hekmon)
30590
30591 • log level identification, manual activation with flag, automatic
30592 systemd launch detection
30593
30594 • Don't compile systemd log integration for non unix systems (Ben‐
30595 jamin Gustin)
30596
30597 • Add a --download flag to md5sum/sha1sum/hashsum to force rclone to
30598 download and hash files locally (lostheli)
30599
30600 • Add --progress-terminal-title to print ETA to terminal title (La‐
30601 Sombra)
30602
30603 • Make backend env vars show in help as the defaults for backend
30604 flags (Nick Craig-Wood)
30605
30606 • build
30607
30608 • Raise minimum go version to go1.12 (Nick Craig-Wood)
30609
30610 • dedupe
30611
30612 • Add --by-hash to dedupe on content hash not file name (Nick
30613 Craig-Wood)
30614
30615 • Add --dedupe-mode list to just list dupes, changing nothing (Nick
30616 Craig-Wood)
30617
30618 • Add warning if used on a remote which can't have duplicate names
30619 (Nick Craig-Wood)
30620
30621 • fs
30622
30623 • Add Shutdown optional method for backends (Nick Craig-Wood)
30624
30625 • When using --files-from check files concurrently (zhucan)
30626
30627 • Accumulate stats when using --dry-run (Ingo Weiss)
30628
30629 • Always show stats when using --dry-run or --interactive (Nick
30630 Craig-Wood)
30631
30632 • Add support for flag --no-console on windows to hide the console
30633 window (albertony)
30634
30635 • genautocomplete: Add support to output to stdout (Ingo)
30636
30637 • ncdu
30638
30639 • Highlight read errors instead of aborting (Claudio Bantaloukas)
30640
30641 • Add sort by average size in directory (Adam Plánský)
30642
30643 • Add toggle option for average s3ize in directory - key 'a' (Adam
30644 Plánský)
30645
30646 • Add empty folder flag into ncdu browser (Adam Plánský)
30647
30648 • Add ! (errror) and . (unreadable) file flags to go with e (empty)
30649 (Nick Craig-Wood)
30650
30651 • obscure: Make rclone osbcure - ignore newline at end of line (Nick
30652 Craig-Wood)
30653
30654 • operations
30655
30656 • Add logs when need to upload files to set mod times (Nick
30657 Craig-Wood)
30658
30659 • Move and copy log name of the destination object in verbose (Adam
30660 Plánský)
30661
30662 • Add size if known to skipped items and JSON log (Nick Craig-Wood)
30663
30664 • rc
30665
30666 • Prefer actual listener address if using ":port" or "addr:0" only
30667 (Nick Craig-Wood)
30668
30669 • Add listener for finished jobs (Aleksandar Jankovic)
30670
30671 • serve ftp: Add options to enable TLS (Deepak Sah)
30672
30673 • serve http/webdav: Redirect requests to the base url without the /
30674 (Nick Craig-Wood)
30675
30676 • serve restic: Implement object cache (Nick Craig-Wood)
30677
30678 • stats: Add counter for deleted directories (Nick Craig-Wood)
30679
30680 • sync: Only print "There was nothing to transfer" if no errors (Nick
30681 Craig-Wood)
30682
30683 • webui
30684
30685 • Prompt user for updating webui if an update is available (Chai‐
30686 tanya Bankanhal)
30687
30688 • Fix plugins initialization (negative0)
30689
30690 • Bug Fixes
30691
30692 • fs
30693
30694 • Fix nil pointer on copy & move operations directly to remote
30695 (Anagh Kumar Baranwal)
30696
30697 • Fix parsing of .. when joining remotes (Nick Craig-Wood)
30698
30699 • log: Fix enabling systemd logging when using --log-file (Nick
30700 Craig-Wood)
30701
30702 • check
30703
30704 • Make the error count match up in the log message (Nick
30705 Craig-Wood)
30706
30707 • move: Fix data loss when source and destination are the same object
30708 (Nick Craig-Wood)
30709
30710 • operations
30711
30712 • Fix --cutof-mode hard not cutting off immediately (Nick
30713 Craig-Wood)
30714
30715 • Fix --immutable error message (Nick Craig-Wood)
30716
30717 • sync
30718
30719 • Fix --cutoff-mode soft & cautious so it doesn't end the transfer
30720 early (Nick Craig-Wood)
30721
30722 • Fix --immutable errors retrying many times (Nick Craig-Wood)
30723
30724 • Docs
30725
30726 • Many fixes and a rewrite of the filtering docs (edwardxml)
30727
30728 • Many spelling and grammar fixes (Josh Soref)
30729
30730 • Doc fixes for commands delete, purge, rmdir, rmdirs and mount (al‐
30731 bertony)
30732
30733 • And thanks to these people for many doc fixes too numerous to list
30734
30735 • Ameer Dawood, Antoine GIRARD, Bob Bagwill, Christopher Stewart
30736
30737 • CokeMine, David, Dov Murik, Durval Menezes, Evan Harris, gtorelly
30738
30739 • Ilyess Bachiri, Janne Johansson, Kerry Su, Marcin Zelent,
30740
30741 • Martin Michlmayr, Milly, Sơn Trần-Nguyễn
30742
30743 • Mount
30744
30745 • Update systemd status with cache stats (Hekmon)
30746
30747 • Disable bazil/fuse based mount on macOS (Nick Craig-Wood)
30748
30749 • Make rclone mount actually run rclone cmount under macOS (Nick
30750 Craig-Wood)
30751
30752 • Implement mknod to make NFS file creation work (Nick Craig-Wood)
30753
30754 • Make sure we don't call umount more than once (Nick Craig-Wood)
30755
30756 • More user friendly mounting as network drive on windows (albertony)
30757
30758 • Detect if uid or gid are set in same option string: -o
30759 uid=123,gid=456 (albertony)
30760
30761 • Don't attempt to unmount if fs has been destroyed already (Nick
30762 Craig-Wood)
30763
30764 • VFS
30765
30766 • Fix virtual entries causing deleted files to still appear (Nick
30767 Craig-Wood)
30768
30769 • Fix "file already exists" error for stale cache files (Nick
30770 Craig-Wood)
30771
30772 • Fix file leaks with --vfs-cache-mode full and --buffer-size 0 (Nick
30773 Craig-Wood)
30774
30775 • Fix invalid cache path on windows when using :backend: as remote
30776 (albertony)
30777
30778 • Local
30779
30780 • Continue listing files/folders when a circular symlink is detected
30781 (Manish Gupta)
30782
30783 • New flag --local-zero-size-links to fix sync on some virtual
30784 filesystems (Riccardo Iaconelli)
30785
30786 • Azure Blob
30787
30788 • Add support for service principals (James Lim)
30789
30790 • Add support for managed identities (Brad Ackerman)
30791
30792 • Add examples for access tier (Bob Pusateri)
30793
30794 • Utilize the streaming capabilities from the SDK for multipart up‐
30795 loads (Denis Neuling)
30796
30797 • Fix setting of mime types (Nick Craig-Wood)
30798
30799 • Fix crash when listing outside a SAS URL's root (Nick Craig-Wood)
30800
30801 • Delete archive tier blobs before update if --azureblob-ar‐
30802 chive-tier-delete (Nick Craig-Wood)
30803
30804 • Fix crash on startup (Nick Craig-Wood)
30805
30806 • Fix memory usage by upgrading the SDK to v0.13.0 and implementing a
30807 TransferManager (Nick Craig-Wood)
30808
30809 • Require go1.14+ to compile due to SDK changes (Nick Craig-Wood)
30810
30811 • B2
30812
30813 • Make NewObject use less expensive API calls (Nick Craig-Wood)
30814
30815 • This will improve --files-from and restic serve in particular
30816
30817 • Fixed crash on an empty file name (lluuaapp)
30818
30819 • Box
30820
30821 • Fix NewObject for files that differ in case (Nick Craig-Wood)
30822
30823 • Fix finding directories in a case insentive way (Nick Craig-Wood)
30824
30825 • Chunker
30826
30827 • Skip long local hashing, hash in-transit (fixes) (Ivan Andreev)
30828
30829 • Set Features ReadMimeType to false as Object.MimeType not supported
30830 (Nick Craig-Wood)
30831
30832 • Fix case-insensitive NewObject, test metadata detection (Ivan An‐
30833 dreev)
30834
30835 • Drive
30836
30837 • Implement rclone backend copyid command for copying files by ID
30838 (Nick Craig-Wood)
30839
30840 • Added flag --drive-stop-on-download-limit to stop transfers when
30841 the download limit is exceeded (Anagh Kumar Baranwal)
30842
30843 • Implement CleanUp workaround for team drives (buengese)
30844
30845 • Allow shortcut resolution and creation to be retried (Nick
30846 Craig-Wood)
30847
30848 • Log that emptying the trash can take some time (Nick Craig-Wood)
30849
30850 • Add xdg office icons to xdg desktop files (Pau Rodriguez-Estivill)
30851
30852 • Dropbox
30853
30854 • Add support for viewing shared files and folders (buengese)
30855
30856 • Enable short lived access tokens (Nick Craig-Wood)
30857
30858 • Implement IDer on Objects so rclone lsf etc can read the IDs
30859 (buengese)
30860
30861 • Set Features ReadMimeType to false as Object.MimeType not supported
30862 (Nick Craig-Wood)
30863
30864 • Make malformed_path errors from too long files not retriable (Nick
30865 Craig-Wood)
30866
30867 • Test file name length before upload to fix upload loop (Nick
30868 Craig-Wood)
30869
30870 • Fichier
30871
30872 • Set Features ReadMimeType to true as Object.MimeType is supported
30873 (Nick Craig-Wood)
30874
30875 • FTP
30876
30877 • Add --ftp-disable-msld option to ignore MLSD for really old servers
30878 (Nick Craig-Wood)
30879
30880 • Make --tpslimit apply (Nick Craig-Wood)
30881
30882 • Google Cloud Storage
30883
30884 • Storage class object header support (Laurens Janssen)
30885
30886 • Fix anonymous client to use rclone's HTTP client (Nick Craig-Wood)
30887
30888 • Fix Entry doesn't belong in directory "" (same as directory) - ig‐
30889 noring (Nick Craig-Wood)
30890
30891 • Googlephotos
30892
30893 • New flag --gphotos-include-archived to show archived photos as well
30894 (Nicolas Rueff)
30895
30896 • Jottacloud
30897
30898 • Don't erroneously report support for writing mime types (buengese)
30899
30900 • Add support for Telia Cloud (Patrik Nordlén)
30901
30902 • Mailru
30903
30904 • Accept special folders eg camera-upload (Ivan Andreev)
30905
30906 • Avoid prehashing of large local files (Ivan Andreev)
30907
30908 • Fix uploads after recent changes on server (Ivan Andreev)
30909
30910 • Fix range requests after June 2020 changes on server (Ivan Andreev)
30911
30912 • Fix invalid timestamp on corrupted files (fixes) (Ivan Andreev)
30913
30914 • Remove deprecated protocol quirks (Ivan Andreev)
30915
30916 • Memory
30917
30918 • Fix setting of mime types (Nick Craig-Wood)
30919
30920 • Onedrive
30921
30922 • Add support for China region operated by 21vianet and other region‐
30923 al suppliers (NyaMisty)
30924
30925 • Warn on gateway timeout errors (Nick Craig-Wood)
30926
30927 • Fall back to normal copy if server-side copy unavailable (Alex
30928 Chen)
30929
30930 • Fix server-side copy completely disabled on OneDrive for Business
30931 (Cnly)
30932
30933 • (business only) workaround to replace existing file on server-side
30934 copy (Alex Chen)
30935
30936 • Enhance link creation with expiry, scope, type and password (Nick
30937 Craig-Wood)
30938
30939 • Remove % and # from the set of encoded characters (Alex Chen)
30940
30941 • Support addressing site by server-relative URL (kice)
30942
30943 • Opendrive
30944
30945 • Fix finding directories in a case insensitive way (Nick Craig-Wood)
30946
30947 • Pcloud
30948
30949 • Fix setting of mime types (Nick Craig-Wood)
30950
30951 • Premiumizeme
30952
30953 • Fix finding directories in a case insensitive way (Nick Craig-Wood)
30954
30955 • Qingstor
30956
30957 • Fix error propagation in CleanUp (Nick Craig-Wood)
30958
30959 • Fix rclone cleanup (Nick Craig-Wood)
30960
30961 • S3
30962
30963 • Added --s3-disable-http2 to disable http/2 (Anagh Kumar Baranwal)
30964
30965 • Complete SSE-C implementation (Nick Craig-Wood)
30966
30967 • Fix hashes on small files with AWS:KMS and SSE-C (Nick
30968 Craig-Wood)
30969
30970 • Add MD5 metadata to objects uploaded with SSE-AWS/SSE-C (Nick
30971 Craig-Wood)
30972
30973 • Add --s3-no-head parameter to minimise transactions on upload (Nick
30974 Craig-Wood)
30975
30976 • Update docs with a Reducing Costs section (Nick Craig-Wood)
30977
30978 • Added error handling for error code 429 indicating too many re‐
30979 quests (Anagh Kumar Baranwal)
30980
30981 • Add requester pays option (kelv)
30982
30983 • Fix copy multipart with v2 auth failing with 'SignatureDoesNot‐
30984 Match' (Louis Koo)
30985
30986 • SFTP
30987
30988 • Allow cert based auth via optional pubkey (Stephen Harris)
30989
30990 • Allow user to optionally check server hosts key to add security
30991 (Stephen Harris)
30992
30993 • Defer asking for user passwords until the SSH connection succeeds
30994 (Stephen Harris)
30995
30996 • Remember entered password in AskPass mode (Stephen Harris)
30997
30998 • Implement Shutdown method (Nick Craig-Wood)
30999
31000 • Implement keyboard interactive authentication (Nick Craig-Wood)
31001
31002 • Make --tpslimit apply (Nick Craig-Wood)
31003
31004 • Implement --sftp-use-fstat for unusual SFTP servers (Nick
31005 Craig-Wood)
31006
31007 • Sugarsync
31008
31009 • Fix NewObject for files that differ in case (Nick Craig-Wood)
31010
31011 • Fix finding directories in a case insentive way (Nick Craig-Wood)
31012
31013 • Swift
31014
31015 • Fix deletion of parts of Static Large Object (SLO) (Nguyễn Hữu
31016 Luân)
31017
31018 • Ensure partially uploaded large files are uploaded unless
31019 --swift-leave-parts-on-error (Nguyễn Hữu Luân)
31020
31021 • Tardigrade
31022
31023 • Upgrade to uplink v1.4.1 (Caleb Case)
31024
31025 • WebDAV
31026
31027 • Updated docs to show streaming to nextcloud is working (Durval
31028 Menezes)
31029
31030 • Yandex
31031
31032 • Set Features WriteMimeType to false as Yandex ignores mime types
31033 (Nick Craig-Wood)
31034
31035 v1.53.4 - 2021-01-20
31036 See commits (https://github.com/rclone/rclone/com‐
31037 pare/v1.53.3...v1.53.4)
31038
31039 • Bug Fixes
31040
31041 • accounting: Fix data race in Transferred() (Maciej Zimnoch)
31042
31043 • build
31044
31045 • Stop tagged releases making a current beta (Nick Craig-Wood)
31046
31047 • Upgrade docker buildx action (Matteo Pietro Dazzi)
31048
31049 • Add -buildmode to cross-compile.go (Nick Craig-Wood)
31050
31051 • Fix docker build by upgrading ilteoood/docker_buildx (Nick
31052 Craig-Wood)
31053
31054 • Revert GitHub actions brew fix since this is now fixed (Nick
31055 Craig-Wood)
31056
31057 • Fix brew install --cask syntax for macOS build (Nick Craig-Wood)
31058
31059 • Update nfpm syntax to fix build of .deb/.rpm packages (Nick
31060 Craig-Wood)
31061
31062 • Fix for Windows build errors (Ivan Andreev)
31063
31064 • fs: Parseduration: fixed tests to use UTC time (Ankur Gupta)
31065
31066 • fshttp: Prevent overlap of HTTP headers in logs (Nathan Collins)
31067
31068 • rc
31069
31070 • Fix core/command giving 500 internal error (Nick Craig-Wood)
31071
31072 • Add Copy method to rc.Params (Nick Craig-Wood)
31073
31074 • Fix 500 error when marshalling errors from core/command (Nick
31075 Craig-Wood)
31076
31077 • plugins: Create plugins files only if webui is enabled. (nega‐
31078 tive0)
31079
31080 • serve http: Fix serving files of unknown length (Nick Craig-Wood)
31081
31082 • serve sftp: Fix authentication on one connection blocking others
31083 (Nick Craig-Wood)
31084
31085 • Mount
31086
31087 • Add optional brew tag to throw an error when using mount in the bi‐
31088 naries installed via Homebrew (Anagh Kumar Baranwal)
31089
31090 • Add "." and ".." to directories to match cmount and expectations
31091 (Nick Craig-Wood)
31092
31093 • VFS
31094
31095 • Make cache dir absolute before using it to fix path too long errors
31096 (Nick Craig-Wood)
31097
31098 • Chunker
31099
31100 • Improve detection of incompatible metadata (Ivan Andreev)
31101
31102 • Google Cloud Storage
31103
31104 • Fix server side copy of large objects (Nick Craig-Wood)
31105
31106 • Jottacloud
31107
31108 • Fix token renewer to fix long uploads (Nick Craig-Wood)
31109
31110 • Fix token refresh failed: is not a regular file error (Nick
31111 Craig-Wood)
31112
31113 • Pcloud
31114
31115 • Only use SHA1 hashes in EU region (Nick Craig-Wood)
31116
31117 • Sharefile
31118
31119 • Undo Fix backend due to API swapping integers for strings (Nick
31120 Craig-Wood)
31121
31122 • WebDAV
31123
31124 • Fix Open Range requests to fix 4shared mount (Nick Craig-Wood)
31125
31126 • Add "Depth: 0" to GET requests to fix bitrix (Nick Craig-Wood)
31127
31128 v1.53.3 - 2020-11-19
31129 See commits (https://github.com/rclone/rclone/com‐
31130 pare/v1.53.2...v1.53.3)
31131
31132 • Bug Fixes
31133
31134 • random: Fix incorrect use of math/rand instead of crypto/rand
31135 CVE-2020-28924 (Nick Craig-Wood)
31136
31137 • Passwords you have generated with rclone config may be insecure
31138
31139 • See issue #4783 (https://github.com/rclone/rclone/issues/4783)
31140 for more details and a checking tool
31141
31142 • random: Seed math/rand in one place with crypto strong seed (Nick
31143 Craig-Wood)
31144
31145 • VFS
31146
31147 • Fix vfs/refresh calls with fs= parameter (Nick Craig-Wood)
31148
31149 • Sharefile
31150
31151 • Fix backend due to API swapping integers for strings (Nick
31152 Craig-Wood)
31153
31154 v1.53.2 - 2020-10-26
31155 See commits (https://github.com/rclone/rclone/com‐
31156 pare/v1.53.1...v1.53.2)
31157
31158 • Bug Fixes
31159
31160 • acounting
31161
31162 • Fix incorrect speed and transferTime in core/stats (Nick
31163 Craig-Wood)
31164
31165 • Stabilize display order of transfers on Windows (Nick Craig-Wood)
31166
31167 • operations
31168
31169 • Fix use of --suffix without --backup-dir (Nick Craig-Wood)
31170
31171 • Fix spurious "--checksum is in use but the source and destination
31172 have no hashes in common" (Nick Craig-Wood)
31173
31174 • build
31175
31176 • Work around GitHub actions brew problem (Nick Craig-Wood)
31177
31178 • Stop using set-env and set-path in the GitHub actions (Nick
31179 Craig-Wood)
31180
31181 • Mount
31182
31183 • mount2: Fix the swapped UID / GID values (Russell Cattelan)
31184
31185 • VFS
31186
31187 • Detect and recover from a file being removed externally from the
31188 cache (Nick Craig-Wood)
31189
31190 • Fix a deadlock vulnerability in downloaders.Close (Leo Luan)
31191
31192 • Fix a race condition in retryFailedResets (Leo Luan)
31193
31194 • Fix missed concurrency control between some item operations and re‐
31195 set (Leo Luan)
31196
31197 • Add exponential backoff during ENOSPC retries (Leo Luan)
31198
31199 • Add a missed update of used cache space (Leo Luan)
31200
31201 • Fix --no-modtime to not attempt to set modtimes (as documented)
31202 (Nick Craig-Wood)
31203
31204 • Local
31205
31206 • Fix sizes and syncing with --links option on Windows (Nick
31207 Craig-Wood)
31208
31209 • Chunker
31210
31211 • Disable ListR to fix missing files on GDrive (workaround) (Ivan An‐
31212 dreev)
31213
31214 • Fix upload over crypt (Ivan Andreev)
31215
31216 • Fichier
31217
31218 • Increase maximum file size from 100GB to 300GB (gyutw)
31219
31220 • Jottacloud
31221
31222 • Remove clientSecret from config when upgrading to token based au‐
31223 thentication (buengese)
31224
31225 • Avoid double url escaping of device/mountpoint (albertony)
31226
31227 • Remove DirMove workaround as it's not required anymore - also
31228 (buengese)
31229
31230 • Mailru
31231
31232 • Fix uploads after recent changes on server (Ivan Andreev)
31233
31234 • Fix range requests after june changes on server (Ivan Andreev)
31235
31236 • Fix invalid timestamp on corrupted files (fixes) (Ivan Andreev)
31237
31238 • Onedrive
31239
31240 • Fix disk usage for sharepoint (Nick Craig-Wood)
31241
31242 • S3
31243
31244 • Add missing regions for AWS (Anagh Kumar Baranwal)
31245
31246 • Seafile
31247
31248 • Fix accessing libraries > 2GB on 32 bit systems (Muffin King)
31249
31250 • SFTP
31251
31252 • Always convert the checksum to lower case (buengese)
31253
31254 • Union
31255
31256 • Create root directories if none exist (Nick Craig-Wood)
31257
31258 v1.53.1 - 2020-09-13
31259 See commits (https://github.com/rclone/rclone/com‐
31260 pare/v1.53.0...v1.53.1)
31261
31262 • Bug Fixes
31263
31264 • accounting: Remove new line from end of --stats-one-line display
31265 (Nick Craig-Wood)
31266
31267 • check
31268
31269 • Add back missing --download flag (Nick Craig-Wood)
31270
31271 • Fix docs (Nick Craig-Wood)
31272
31273 • docs
31274
31275 • Note --log-file does append (Nick Craig-Wood)
31276
31277 • Add full stops for consistency in rclone --help (edwardxml)
31278
31279 • Add Tencent COS to s3 provider list (wjielai)
31280
31281 • Updated mount command to reflect that it requires Go 1.13 or new‐
31282 er (Evan Harris)
31283
31284 • jottacloud: Mention that uploads from local disk will not need to
31285 cache files to disk for md5 calculation (albertony)
31286
31287 • Fix formatting of rc docs page (Nick Craig-Wood)
31288
31289 • build
31290
31291 • Include vendor tar ball in release and fix startdev (Nick
31292 Craig-Wood)
31293
31294 • Fix "Illegal instruction" error for ARMv6 builds (Nick
31295 Craig-Wood)
31296
31297 • Fix architecture name in ARMv7 build (Nick Craig-Wood)
31298
31299 • VFS
31300
31301 • Fix spurious error "vfs cache: failed to _ensure cache EOF" (Nick
31302 Craig-Wood)
31303
31304 • Log an ERROR if we fail to set the file to be sparse (Nick
31305 Craig-Wood)
31306
31307 • Local
31308
31309 • Log an ERROR if we fail to set the file to be sparse (Nick
31310 Craig-Wood)
31311
31312 • Drive
31313
31314 • Re-adds special oauth help text (Tim Gallant)
31315
31316 • Opendrive
31317
31318 • Do not retry 400 errors (Evan Harris)
31319
31320 v1.53.0 - 2020-09-02
31321 See commits (https://github.com/rclone/rclone/com‐
31322 pare/v1.52.0...v1.53.0)
31323
31324 • New Features
31325
31326 • The VFS layer (https://rclone.org/commands/rclone_mount/#vfs-virtu‐
31327 al-file-system) was heavily reworked for this release - see below
31328 for more details
31329
31330 • Interactive mode -i/--interactive (https://rclone.org/docs/#inter‐
31331 active) for destructive operations (fishbullet)
31332
31333 • Add --bwlimit-file (https://rclone.org/docs/#bwlimit-file-band‐
31334 width-spec) flag to limit speeds of individual file transfers (Nick
31335 Craig-Wood)
31336
31337 • Transfers are sorted by start time in the stats and progress output
31338 (Max Sum)
31339
31340 • Make sure backends expand ~ and environment vars in file names they
31341 use (Nick Craig-Wood)
31342
31343 • Add --refresh-times (https://rclone.org/docs/#refresh-times) flag
31344 to set modtimes on hashless backends (Nick Craig-Wood)
31345
31346 • build
31347
31348 • Remove vendor directory in favour of Go modules (Nick Craig-Wood)
31349
31350 • Build with go1.15.x by default (Nick Craig-Wood)
31351
31352 • Drop macOS 386 build as it is no longer supported by go1.15 (Nick
31353 Craig-Wood)
31354
31355 • Add ARMv7 to the supported builds (Nick Craig-Wood)
31356
31357 • Enable rclone cmount on macOS (Nick Craig-Wood)
31358
31359 • Make rclone build with gccgo (Nick Craig-Wood)
31360
31361 • Make rclone build with wasm (Nick Craig-Wood)
31362
31363 • Change beta numbering to be semver compatible (Nick Craig-Wood)
31364
31365 • Add file properties and icon to Windows executable (albertony)
31366
31367 • Add experimental interface for integrating rclone into browsers
31368 (Nick Craig-Wood)
31369
31370 • lib: Add file name compression (Klaus Post)
31371
31372 • rc
31373
31374 • Allow installation and use of plugins and test plugins with
31375 rclone-webui (Chaitanya Bankanhal)
31376
31377 • Add reverse proxy pluginsHandler for serving plugins (Chaitanya
31378 Bankanhal)
31379
31380 • Add mount/listmounts option for listing current mounts (Chaitanya
31381 Bankanhal)
31382
31383 • Add operations/uploadfile to upload a file through rc using en‐
31384 coding multipart/form-data (Chaitanya Bankanhal)
31385
31386 • Add core/command to execute rclone terminal commands. (Chaitanya
31387 Bankanhal)
31388
31389 • rclone check
31390
31391 • Add reporting of filenames for same/missing/changed (Nick
31392 Craig-Wood)
31393
31394 • Make check command obey --dry-run/-i/--interactive (Nick
31395 Craig-Wood)
31396
31397 • Make check do --checkers files concurrently (Nick Craig-Wood)
31398
31399 • Retry downloads if they fail when using the --download flag (Nick
31400 Craig-Wood)
31401
31402 • Make it show stats by default (Nick Craig-Wood)
31403
31404 • rclone obscure: Allow obscure command to accept password on STDIN
31405 (David Ibarra)
31406
31407 • rclone config
31408
31409 • Set RCLONE_CONFIG_DIR for use in config files and subprocesses
31410 (Nick Craig-Wood)
31411
31412 • Reject remote names starting with a dash. (jtagcat)
31413
31414 • rclone cryptcheck: Add reporting of filenames for same/miss‐
31415 ing/changed (Nick Craig-Wood)
31416
31417 • rclone dedupe: Make it obey the --size-only flag for duplicate de‐
31418 tection (Nick Craig-Wood)
31419
31420 • rclone link: Add --expire and --unlink flags (Roman Kredentser)
31421
31422 • rclone mkdir: Warn when using mkdir on remotes which can't have
31423 empty directories (Nick Craig-Wood)
31424
31425 • rclone rc: Allow JSON parameters to simplify command line usage
31426 (Nick Craig-Wood)
31427
31428 • rclone serve ftp
31429
31430 • Don't compile on < go1.13 after dependency update (Nick
31431 Craig-Wood)
31432
31433 • Add error message if auth proxy fails (Nick Craig-Wood)
31434
31435 • Use refactored goftp.io/server library for binary shrink (Nick
31436 Craig-Wood)
31437
31438 • rclone serve restic: Expose interfaces so that rclone can be used
31439 as a library from within restic (Jack)
31440
31441 • rclone sync: Add --track-renames-strategy leaf (Nick Craig-Wood)
31442
31443 • rclone touch: Add ability to set nanosecond resolution times (Nick
31444 Craig-Wood)
31445
31446 • rclone tree: Remove -i shorthand for --noindent as it conflicts
31447 with -i/--interactive (Nick Craig-Wood)
31448
31449 • Bug Fixes
31450
31451 • accounting
31452
31453 • Fix documentation for speed/speedAvg (Nick Craig-Wood)
31454
31455 • Fix elapsed time not show actual time since beginning (Chaitanya
31456 Bankanhal)
31457
31458 • Fix deadlock in stats printing (Nick Craig-Wood)
31459
31460 • build
31461
31462 • Fix file handle leak in GitHub release tool (Garrett Squire)
31463
31464 • rclone check: Fix successful retries with --download counting er‐
31465 rors (Nick Craig-Wood)
31466
31467 • rclone dedupe: Fix logging to be easier to understand (Nick
31468 Craig-Wood)
31469
31470 • Mount
31471
31472 • Warn macOS users that mount implementation is changing (Nick
31473 Craig-Wood)
31474
31475 • to test the new implementation use rclone cmount instead of
31476 rclone mount
31477
31478 • this is because the library rclone uses has dropped macOS support
31479
31480 • rc interface
31481
31482 • Add call for unmount all (Chaitanya Bankanhal)
31483
31484 • Make mount/mount remote control take vfsOpt option (Nick
31485 Craig-Wood)
31486
31487 • Add mountOpt to mount/mount (Nick Craig-Wood)
31488
31489 • Add VFS and Mount options to mount/listmounts (Nick Craig-Wood)
31490
31491 • Catch panics in cgofuse initialization and turn into error messages
31492 (Nick Craig-Wood)
31493
31494 • Always supply stat information in Readdir (Nick Craig-Wood)
31495
31496 • Add support for reading unknown length files using direct IO (Win‐
31497 dows) (Nick Craig-Wood)
31498
31499 • Fix On Windows don't add -o uid/gid=-1 if user supplies -o uid/gid.
31500 (Nick Craig-Wood)
31501
31502 • Fix macOS losing directory contents in cmount (Nick Craig-Wood)
31503
31504 • Fix volume name broken in recent refactor (Nick Craig-Wood)
31505
31506 • VFS
31507
31508 • Implement partial reads for --vfs-cache-mode full (Nick Craig-Wood)
31509
31510 • Add --vfs-writeback option to delay writes back to cloud storage
31511 (Nick Craig-Wood)
31512
31513 • Add --vfs-read-ahead parameter for use with --vfs-cache-mode full
31514 (Nick Craig-Wood)
31515
31516 • Restart pending uploads on restart of the cache (Nick Craig-Wood)
31517
31518 • Support synchronous cache space recovery upon ENOSPC (Leo Luan)
31519
31520 • Allow ReadAt and WriteAt to run concurrently with themselves (Nick
31521 Craig-Wood)
31522
31523 • Change modtime of file before upload to current (Rob Calistri)
31524
31525 • Recommend --vfs-cache-modes writes on backends which can't stream
31526 (Nick Craig-Wood)
31527
31528 • Add an optional fs parameter to vfs rc methods (Nick Craig-Wood)
31529
31530 • Fix errors when using > 260 char files in the cache in Windows
31531 (Nick Craig-Wood)
31532
31533 • Fix renaming of items while they are being uploaded (Nick
31534 Craig-Wood)
31535
31536 • Fix very high load caused by slow directory listings (Nick
31537 Craig-Wood)
31538
31539 • Fix renamed files not being uploaded with --vfs-cache-mode minimal
31540 (Nick Craig-Wood)
31541
31542 • Fix directory locking caused by slow directory listings (Nick
31543 Craig-Wood)
31544
31545 • Fix saving from chrome without --vfs-cache-mode writes (Nick
31546 Craig-Wood)
31547
31548 • Local
31549
31550 • Add --local-no-updated to provide a consistent view of changing ob‐
31551 jects (Nick Craig-Wood)
31552
31553 • Add --local-no-set-modtime option to prevent modtime changes (tyhu‐
31554 ber1)
31555
31556 • Fix race conditions updating and reading Object metadata (Nick
31557 Craig-Wood)
31558
31559 • Cache
31560
31561 • Make any created backends be cached to fix rc problems (Nick
31562 Craig-Wood)
31563
31564 • Fix dedupe on caches wrapping drives (Nick Craig-Wood)
31565
31566 • Crypt
31567
31568 • Add --crypt-server-side-across-configs flag (Nick Craig-Wood)
31569
31570 • Make any created backends be cached to fix rc problems (Nick
31571 Craig-Wood)
31572
31573 • Alias
31574
31575 • Make any created backends be cached to fix rc problems (Nick
31576 Craig-Wood)
31577
31578 • Azure Blob
31579
31580 • Don't compile on < go1.13 after dependency update (Nick Craig-Wood)
31581
31582 • B2
31583
31584 • Implement server-side copy for files > 5GB (Nick Craig-Wood)
31585
31586 • Cancel in progress multipart uploads and copies on rclone exit
31587 (Nick Craig-Wood)
31588
31589 • Note that b2's encoding now allows but rclone's hasn't changed
31590 (Nick Craig-Wood)
31591
31592 • Fix transfers when using download_url (Nick Craig-Wood)
31593
31594 • Box
31595
31596 • Implement rclone cleanup (buengese)
31597
31598 • Cancel in progress multipart uploads and copies on rclone exit
31599 (Nick Craig-Wood)
31600
31601 • Allow authentication with access token (David)
31602
31603 • Chunker
31604
31605 • Make any created backends be cached to fix rc problems (Nick
31606 Craig-Wood)
31607
31608 • Drive
31609
31610 • Add rclone backend drives to list shared drives (teamdrives) (Nick
31611 Craig-Wood)
31612
31613 • Implement rclone backend untrash (Nick Craig-Wood)
31614
31615 • Work around drive bug which didn't set modtime of copied docs (Nick
31616 Craig-Wood)
31617
31618 • Added --drive-starred-only to only show starred files (Jay McEn‐
31619 tire)
31620
31621 • Deprecate --drive-alternate-export as it is no longer needed (the‐
31622 mylogin)
31623
31624 • Fix duplication of Google docs on server-side copy (Nick
31625 Craig-Wood)
31626
31627 • Fix "panic: send on closed channel" when recycling dir entries
31628 (Nick Craig-Wood)
31629
31630 • Dropbox
31631
31632 • Add copyright detector info in limitations section in the docs
31633 (Alex Guerrero)
31634
31635 • Fix rclone link by removing expires parameter (Nick Craig-Wood)
31636
31637 • Fichier
31638
31639 • Detect Flood detected: IP Locked error and sleep for 30s (Nick
31640 Craig-Wood)
31641
31642 • FTP
31643
31644 • Add explicit TLS support (Heiko Bornholdt)
31645
31646 • Add support for --dump bodies and --dump auth for debugging (Nick
31647 Craig-Wood)
31648
31649 • Fix interoperation with pure-ftpd (Nick Craig-Wood)
31650
31651 • Google Cloud Storage
31652
31653 • Add support for anonymous access (Kai Lüke)
31654
31655 • Jottacloud
31656
31657 • Bring back legacy authentication for use with whitelabel versions
31658 (buengese)
31659
31660 • Switch to new api root - also implement a very ugly workaround for
31661 the DirMove failures (buengese)
31662
31663 • Onedrive
31664
31665 • Rework cancel of multipart uploads on rclone exit (Nick Craig-Wood)
31666
31667 • Implement rclone cleanup (Nick Craig-Wood)
31668
31669 • Add --onedrive-no-versions flag to remove old versions (Nick
31670 Craig-Wood)
31671
31672 • Pcloud
31673
31674 • Implement rclone link for public link creation (buengese)
31675
31676 • Qingstor
31677
31678 • Cancel in progress multipart uploads on rclone exit (Nick
31679 Craig-Wood)
31680
31681 • S3
31682
31683 • Preserve metadata when doing multipart copy (Nick Craig-Wood)
31684
31685 • Cancel in progress multipart uploads and copies on rclone exit
31686 (Nick Craig-Wood)
31687
31688 • Add rclone link for public link sharing (Roman Kredentser)
31689
31690 • Add rclone backend restore command to restore objects from GLACIER
31691 (Nick Craig-Wood)
31692
31693 • Add rclone cleanup and rclone backend cleanup to clean unfinished
31694 multipart uploads (Nick Craig-Wood)
31695
31696 • Add rclone backend list-multipart-uploads to list unfinished multi‐
31697 part uploads (Nick Craig-Wood)
31698
31699 • Add --s3-max-upload-parts support (Kamil Trzciński)
31700
31701 • Add --s3-no-check-bucket for minimising rclone transactions and
31702 perms (Nick Craig-Wood)
31703
31704 • Add --s3-profile and --s3-shared-credentials-file options (Nick
31705 Craig-Wood)
31706
31707 • Use regional s3 us-east-1 endpoint (David)
31708
31709 • Add Scaleway provider (Vincent Feltz)
31710
31711 • Update IBM COS endpoints (Egor Margineanu)
31712
31713 • Reduce the default --s3-copy-cutoff to < 5GB for Backblaze S3 com‐
31714 patibility (Nick Craig-Wood)
31715
31716 • Fix detection of bucket existing (Nick Craig-Wood)
31717
31718 • SFTP
31719
31720 • Use the absolute path instead of the relative path for listing for
31721 improved compatibility (Nick Craig-Wood)
31722
31723 • Add --sftp-subsystem and --sftp-server-command options (aus)
31724
31725 • Swift
31726
31727 • Fix dangling large objects breaking the listing (Nick Craig-Wood)
31728
31729 • Fix purge not deleting directory markers (Nick Craig-Wood)
31730
31731 • Fix update multipart object removing all of its own parts (Nick
31732 Craig-Wood)
31733
31734 • Fix missing hash from object returned from upload (Nick Craig-Wood)
31735
31736 • Tardigrade
31737
31738 • Upgrade to uplink v1.2.0 (Kaloyan Raev)
31739
31740 • Union
31741
31742 • Fix writing with the all policy (Nick Craig-Wood)
31743
31744 • WebDAV
31745
31746 • Fix directory creation with 4shared (Nick Craig-Wood)
31747
31748 v1.52.3 - 2020-08-07
31749 See commits (https://github.com/rclone/rclone/com‐
31750 pare/v1.52.2...v1.52.3)
31751
31752 • Bug Fixes
31753
31754 • docs
31755
31756 • Disable smart typography (e.g. en-dash) in MANUAL.* and man page
31757 (Nick Craig-Wood)
31758
31759 • Update install.md to reflect minimum Go version (Evan Harris)
31760
31761 • Update install from source instructions (Nick Craig-Wood)
31762
31763 • make_manual: Support SOURCE_DATE_EPOCH (Morten Linderud)
31764
31765 • log: Fix --use-json-log going to stderr not --log-file on Windows
31766 (Nick Craig-Wood)
31767
31768 • serve dlna: Fix file list on Samsung Series 6+ TVs (Matteo Pietro
31769 Dazzi)
31770
31771 • sync: Fix deadlock with --track-renames-strategy modtime (Nick
31772 Craig-Wood)
31773
31774 • Cache
31775
31776 • Fix moveto/copyto remote:file remote:file2 (Nick Craig-Wood)
31777
31778 • Drive
31779
31780 • Stop using root_folder_id as a cache (Nick Craig-Wood)
31781
31782 • Make dangling shortcuts appear in listings (Nick Craig-Wood)
31783
31784 • Drop "Disabling ListR" messages down to debug (Nick Craig-Wood)
31785
31786 • Workaround and policy for Google Drive API (Dmitry Ustalov)
31787
31788 • FTP
31789
31790 • Add note to docs about home vs root directory selection (Nick
31791 Craig-Wood)
31792
31793 • Onedrive
31794
31795 • Fix reverting to Copy when Move would have worked (Nick Craig-Wood)
31796
31797 • Avoid comma rendered in URL in onedrive.md (Kevin)
31798
31799 • Pcloud
31800
31801 • Fix oauth on European region "eapi.pcloud.com" (Nick Craig-Wood)
31802
31803 • S3
31804
31805 • Fix bucket Region auto detection when Region unset in config (Nick
31806 Craig-Wood)
31807
31808 v1.52.2 - 2020-06-24
31809 See commits (https://github.com/rclone/rclone/com‐
31810 pare/v1.52.1...v1.52.2)
31811
31812 • Bug Fixes
31813
31814 • build
31815
31816 • Fix docker release build action (Nick Craig-Wood)
31817
31818 • Fix custom timezone in Docker image (NoLooseEnds)
31819
31820 • check: Fix misleading message which printed errors instead of dif‐
31821 ferences (Nick Craig-Wood)
31822
31823 • errors: Add WSAECONNREFUSED and more to the list of retriable Win‐
31824 dows errors (Nick Craig-Wood)
31825
31826 • rcd: Fix incorrect prometheus metrics (Gary Kim)
31827
31828 • serve restic: Fix flags so they use environment variables (Nick
31829 Craig-Wood)
31830
31831 • serve webdav: Fix flags so they use environment variables (Nick
31832 Craig-Wood)
31833
31834 • sync: Fix --track-renames-strategy modtime (Nick Craig-Wood)
31835
31836 • Drive
31837
31838 • Fix not being able to delete a directory with a trashed shortcut
31839 (Nick Craig-Wood)
31840
31841 • Fix creating a directory inside a shortcut (Nick Craig-Wood)
31842
31843 • Fix --drive-impersonate with cached root_folder_id (Nick
31844 Craig-Wood)
31845
31846 • SFTP
31847
31848 • Fix SSH key PEM loading (Zac Rubin)
31849
31850 • Swift
31851
31852 • Speed up deletes by not retrying segment container deletes (Nick
31853 Craig-Wood)
31854
31855 • Tardigrade
31856
31857 • Upgrade to uplink v1.1.1 (Caleb Case)
31858
31859 • WebDAV
31860
31861 • Fix free/used display for rclone about/df for certain backends
31862 (Nick Craig-Wood)
31863
31864 v1.52.1 - 2020-06-10
31865 See commits (https://github.com/rclone/rclone/com‐
31866 pare/v1.52.0...v1.52.1)
31867
31868 • Bug Fixes
31869
31870 • lib/file: Fix SetSparse on Windows 7 which fixes downloads of files
31871 > 250MB (Nick Craig-Wood)
31872
31873 • build
31874
31875 • Update go.mod to go1.14 to enable -mod=vendor build (Nick
31876 Craig-Wood)
31877
31878 • Remove quicktest from Dockerfile (Nick Craig-Wood)
31879
31880 • Build Docker images with GitHub actions (Matteo Pietro Dazzi)
31881
31882 • Update Docker build workflows (Nick Craig-Wood)
31883
31884 • Set user_allow_other in /etc/fuse.conf in the Docker image (Nick
31885 Craig-Wood)
31886
31887 • Fix xgo build after go1.14 go.mod update (Nick Craig-Wood)
31888
31889 • docs
31890
31891 • Add link to source and modified time to footer of every page
31892 (Nick Craig-Wood)
31893
31894 • Remove manually set dates and use git dates instead (Nick
31895 Craig-Wood)
31896
31897 • Minor tense, punctuation, brevity and positivity changes for the
31898 home page (edwardxml)
31899
31900 • Remove leading slash in page reference in footer when present
31901 (Nick Craig-Wood)
31902
31903 • Note commands which need obscured input in the docs (Nick
31904 Craig-Wood)
31905
31906 • obscure: Write more help as we are referencing it elsewhere (Nick
31907 Craig-Wood)
31908
31909 • VFS
31910
31911 • Fix OS vs Unix path confusion - fixes ChangeNotify on Windows (Nick
31912 Craig-Wood)
31913
31914 • Drive
31915
31916 • Fix missing items when listing using --fast-list / ListR (Nick
31917 Craig-Wood)
31918
31919 • Putio
31920
31921 • Fix panic on Object.Open (Cenk Alti)
31922
31923 • S3
31924
31925 • Fix upload of single files into buckets without create permission
31926 (Nick Craig-Wood)
31927
31928 • Fix --header-upload (Nick Craig-Wood)
31929
31930 • Tardigrade
31931
31932 • Fix listing bug by upgrading to v1.0.7
31933
31934 • Set UserAgent to rclone (Caleb Case)
31935
31936 v1.52.0 - 2020-05-27
31937 Special thanks to Martin Michlmayr for proof reading and correcting all
31938 the docs and Edward Barker for helping re-write the front page.
31939
31940 See commits (https://github.com/rclone/rclone/com‐
31941 pare/v1.51.0...v1.52.0)
31942
31943 • New backends
31944
31945 • Tardigrade (https://rclone.org/tardigrade/) backend for use with
31946 storj.io (Caleb Case)
31947
31948 • Union (https://rclone.org/union/) re-write to have multiple
31949 writable remotes (Max Sum)
31950
31951 • Seafile (/seafile) for Seafile server (Fred @creativeprojects)
31952
31953 • New commands
31954
31955 • backend: command for backend specific commands (see backends) (Nick
31956 Craig-Wood)
31957
31958 • cachestats: Deprecate in favour of rclone backend stats cache:
31959 (Nick Craig-Wood)
31960
31961 • dbhashsum: Deprecate in favour of rclone hashsum DropboxHash (Nick
31962 Craig-Wood)
31963
31964 • New Features
31965
31966 • Add --header-download and --header-upload flags for setting HTTP
31967 headers when uploading/downloading (Tim Gallant)
31968
31969 • Add --header flag to add HTTP headers to every HTTP transaction
31970 (Nick Craig-Wood)
31971
31972 • Add --check-first to do all checking before starting transfers
31973 (Nick Craig-Wood)
31974
31975 • Add --track-renames-strategy for configurable matching criteria for
31976 --track-renames (Bernd Schoolmann)
31977
31978 • Add --cutoff-mode hard,soft,cautious (Shing Kit Chan & Franklyn
31979 Tackitt)
31980
31981 • Filter flags (e.g. --files-from -) can read from stdin (fishbul‐
31982 let)
31983
31984 • Add --error-on-no-transfer option (Jon Fautley)
31985
31986 • Implement --order-by xxx,mixed for copying some small and some big
31987 files (Nick Craig-Wood)
31988
31989 • Allow --max-backlog to be negative meaning as large as possible
31990 (Nick Craig-Wood)
31991
31992 • Added --no-unicode-normalization flag to allow Unicode filenames to
31993 remain unique (Ben Zenker)
31994
31995 • Allow --min-age/--max-age to take a date as well as a duration
31996 (Nick Craig-Wood)
31997
31998 • Add rename statistics for file and directory renames (Nick
31999 Craig-Wood)
32000
32001 • Add statistics output to JSON log (reddi)
32002
32003 • Make stats be printed on non-zero exit code (Nick Craig-Wood)
32004
32005 • When running --password-command allow use of stdin (Sébastien
32006 Gross)
32007
32008 • Stop empty strings being a valid remote path (Nick Craig-Wood)
32009
32010 • accounting: support WriterTo for less memory copying (Nick
32011 Craig-Wood)
32012
32013 • build
32014
32015 • Update to use go1.14 for the build (Nick Craig-Wood)
32016
32017 • Add -trimpath to release build for reproduceable builds (Nick
32018 Craig-Wood)
32019
32020 • Remove GOOS and GOARCH from Dockerfile (Brandon Philips)
32021
32022 • config
32023
32024 • Fsync the config file after writing to save more reliably (Nick
32025 Craig-Wood)
32026
32027 • Add --obscure and --no-obscure flags to config create/update
32028 (Nick Craig-Wood)
32029
32030 • Make config show take remote: as well as remote (Nick Craig-Wood)
32031
32032 • copyurl: Add --no-clobber flag (Denis)
32033
32034 • delete: Added --rmdirs flag to delete directories as well (Kush)
32035
32036 • filter: Added --files-from-raw flag (Ankur Gupta)
32037
32038 • genautocomplete: Add support for fish shell (Matan Rosenberg)
32039
32040 • log: Add support for syslog LOCAL facilities (Patryk Jakuszew)
32041
32042 • lsjson: Add --hash-type parameter and use it in lsf to speed up
32043 hashing (Nick Craig-Wood)
32044
32045 • rc
32046
32047 • Add -o/--opt and -a/--arg for more structured input (Nick
32048 Craig-Wood)
32049
32050 • Implement backend/command for running backend specific commands
32051 remotely (Nick Craig-Wood)
32052
32053 • Add mount/mount command for starting rclone mount via the API
32054 (Chaitanya)
32055
32056 • rcd: Add Prometheus metrics support (Gary Kim)
32057
32058 • serve http
32059
32060 • Added a --template flag for user defined markup (calistri)
32061
32062 • Add Last-Modified headers to files and directories (Nick
32063 Craig-Wood)
32064
32065 • serve sftp: Add support for multiple host keys by repeating --key
32066 flag (Maxime Suret)
32067
32068 • touch: Add --localtime flag to make --timestamp localtime not UTC
32069 (Nick Craig-Wood)
32070
32071 • Bug Fixes
32072
32073 • accounting
32074
32075 • Restore "Max number of stats groups reached" log line (Michał
32076 Matczuk)
32077
32078 • Correct exitcode on Transfer Limit Exceeded flag. (Anuar
32079 Serdaliyev)
32080
32081 • Reset bytes read during copy retry (Ankur Gupta)
32082
32083 • Fix race clearing stats (Nick Craig-Wood)
32084
32085 • copy: Only create empty directories when they don't exist on the
32086 remote (Ishuah Kariuki)
32087
32088 • dedupe: Stop dedupe deleting files with identical IDs (Nick
32089 Craig-Wood)
32090
32091 • oauth
32092
32093 • Use custom http client so that --no-check-certificate is honored
32094 by oauth token fetch (Mark Spieth)
32095
32096 • Replace deprecated oauth2.NoContext (Lars Lehtonen)
32097
32098 • operations
32099
32100 • Fix setting the timestamp on Windows for multithread copy (Nick
32101 Craig-Wood)
32102
32103 • Make rcat obey --ignore-checksum (Nick Craig-Wood)
32104
32105 • Make --max-transfer more accurate (Nick Craig-Wood)
32106
32107 • rc
32108
32109 • Fix dropped error (Lars Lehtonen)
32110
32111 • Fix misplaced http server config (Xiaoxing Ye)
32112
32113 • Disable duplicate log (ElonH)
32114
32115 • serve dlna
32116
32117 • Cds: don't specify childCount at all when unknown (Dan Walters)
32118
32119 • Cds: use modification time as date in dlna metadata (Dan Walters)
32120
32121 • serve restic: Fix tests after restic project removed vendoring
32122 (Nick Craig-Wood)
32123
32124 • sync
32125
32126 • Fix incorrect "nothing to transfer" message using --delete-before
32127 (Nick Craig-Wood)
32128
32129 • Only create empty directories when they don't exist on the remote
32130 (Ishuah Kariuki)
32131
32132 • Mount
32133
32134 • Add --async-read flag to disable asynchronous reads (Nick
32135 Craig-Wood)
32136
32137 • Ignore --allow-root flag with a warning as it has been removed up‐
32138 stream (Nick Craig-Wood)
32139
32140 • Warn if --allow-non-empty used on Windows and clarify docs (Nick
32141 Craig-Wood)
32142
32143 • Constrain to go1.13 or above otherwise bazil.org/fuse fails to com‐
32144 pile (Nick Craig-Wood)
32145
32146 • Fix fail because of too long volume name (evileye)
32147
32148 • Report 1PB free for unknown disk sizes (Nick Craig-Wood)
32149
32150 • Map more rclone errors into file systems errors (Nick Craig-Wood)
32151
32152 • Fix disappearing cwd problem (Nick Craig-Wood)
32153
32154 • Use ReaddirPlus on Windows to improve directory listing performance
32155 (Nick Craig-Wood)
32156
32157 • Send a hint as to whether the filesystem is case insensitive or not
32158 (Nick Craig-Wood)
32159
32160 • Add rc command mount/types (Nick Craig-Wood)
32161
32162 • Change maximum leaf name length to 1024 bytes (Nick Craig-Wood)
32163
32164 • VFS
32165
32166 • Add --vfs-read-wait and --vfs-write-wait flags to control time
32167 waiting for a sequential read/write (Nick Craig-Wood)
32168
32169 • Change default --vfs-read-wait to 20ms (it was 5ms and not config‐
32170 urable) (Nick Craig-Wood)
32171
32172 • Make df output more consistent on a rclone mount. (Yves G)
32173
32174 • Report 1PB free for unknown disk sizes (Nick Craig-Wood)
32175
32176 • Fix race condition caused by unlocked reading of Dir.path (Nick
32177 Craig-Wood)
32178
32179 • Make File lock and Dir lock not overlap to avoid deadlock (Nick
32180 Craig-Wood)
32181
32182 • Implement lock ordering between File and Dir to eliminate deadlocks
32183 (Nick Craig-Wood)
32184
32185 • Factor the vfs cache into its own package (Nick Craig-Wood)
32186
32187 • Pin the Fs in use in the Fs cache (Nick Craig-Wood)
32188
32189 • Add SetSys() methods to Node to allow caching stuff on a node (Nick
32190 Craig-Wood)
32191
32192 • Ignore file not found errors from Hash in Read.Release (Nick
32193 Craig-Wood)
32194
32195 • Fix hang in read wait code (Nick Craig-Wood)
32196
32197 • Local
32198
32199 • Speed up multi thread downloads by using sparse files on Windows
32200 (Nick Craig-Wood)
32201
32202 • Implement --local-no-sparse flag for disabling sparse files (Nick
32203 Craig-Wood)
32204
32205 • Implement rclone backend noop for testing purposes (Nick
32206 Craig-Wood)
32207
32208 • Fix "file not found" errors on post transfer Hash calculation (Nick
32209 Craig-Wood)
32210
32211 • Cache
32212
32213 • Implement rclone backend stats command (Nick Craig-Wood)
32214
32215 • Fix Server Side Copy with Temp Upload (Brandon McNama)
32216
32217 • Remove Unused Functions (Lars Lehtonen)
32218
32219 • Disable race tests until bbolt is fixed (Nick Craig-Wood)
32220
32221 • Move methods used for testing into test file (greatroar)
32222
32223 • Add Pin and Unpin and canonicalised lookup (Nick Craig-Wood)
32224
32225 • Use proper import path go.etcd.io/bbolt (Robert-André Mauchin)
32226
32227 • Crypt
32228
32229 • Calculate hashes for uploads from local disk (Nick Craig-Wood)
32230
32231 • This allows crypted Jottacloud uploads without using local disk
32232
32233 • This means crypted s3/b2 uploads will now have hashes
32234
32235 • Added rclone backend decode/encode commands to replicate function‐
32236 ality of cryptdecode (Anagh Kumar Baranwal)
32237
32238 • Get rid of the unused Cipher interface as it obfuscated the code
32239 (Nick Craig-Wood)
32240
32241 • Azure Blob
32242
32243 • Implement streaming of unknown sized files so rcat is now supported
32244 (Nick Craig-Wood)
32245
32246 • Implement memory pooling to control memory use (Nick Craig-Wood)
32247
32248 • Add --azureblob-disable-checksum flag (Nick Craig-Wood)
32249
32250 • Retry InvalidBlobOrBlock error as it may indicate block concurrency
32251 problems (Nick Craig-Wood)
32252
32253 • Remove unused Object.parseTimeString() (Lars Lehtonen)
32254
32255 • Fix permission error on SAS URL limited to container (Nick
32256 Craig-Wood)
32257
32258 • B2
32259
32260 • Add support for --header-upload and --header-download (Tim Gallant)
32261
32262 • Ignore directory markers at the root also (Nick Craig-Wood)
32263
32264 • Force the case of the SHA1 to lowercase (Nick Craig-Wood)
32265
32266 • Remove unused largeUpload.clearUploadURL() (Lars Lehtonen)
32267
32268 • Box
32269
32270 • Add support for --header-upload and --header-download (Tim Gallant)
32271
32272 • Implement About to read size used (Nick Craig-Wood)
32273
32274 • Add token renew function for jwt auth (David Bramwell)
32275
32276 • Added support for interchangeable root folder for Box backend
32277 (Sunil Patra)
32278
32279 • Remove unnecessary iat from jws claims (David)
32280
32281 • Drive
32282
32283 • Follow shortcuts by default, skip with --drive-skip-shortcuts (Nick
32284 Craig-Wood)
32285
32286 • Implement rclone backend shortcut command for creating shortcuts
32287 (Nick Craig-Wood)
32288
32289 • Added rclone backend command to change service_account_file and
32290 chunk_size (Anagh Kumar Baranwal)
32291
32292 • Fix missing files when using --fast-list and --drive-shared-with-me
32293 (Nick Craig-Wood)
32294
32295 • Fix duplicate items when using --drive-shared-with-me (Nick
32296 Craig-Wood)
32297
32298 • Extend --drive-stop-on-upload-limit to respond to teamDriveFileLim‐
32299 itExceeded. (harry)
32300
32301 • Don't delete files with multiple parents to avoid data loss (Nick
32302 Craig-Wood)
32303
32304 • Server side copy docs use default description if empty (Nick
32305 Craig-Wood)
32306
32307 • Dropbox
32308
32309 • Make error insufficient space to be fatal (harry)
32310
32311 • Add info about required redirect url (Elan Ruusamäe)
32312
32313 • Fichier
32314
32315 • Add support for --header-upload and --header-download (Tim Gallant)
32316
32317 • Implement custom pacer to deal with the new rate limiting
32318 (buengese)
32319
32320 • FTP
32321
32322 • Fix lockup when using concurrency limit on failed connections (Nick
32323 Craig-Wood)
32324
32325 • Fix lockup on failed upload when using concurrency limit (Nick
32326 Craig-Wood)
32327
32328 • Fix lockup on Close failures when using concurrency limit (Nick
32329 Craig-Wood)
32330
32331 • Work around pureftp sending spurious 150 messages (Nick Craig-Wood)
32332
32333 • Google Cloud Storage
32334
32335 • Add support for --header-upload and --header-download (Nick
32336 Craig-Wood)
32337
32338 • Add ARCHIVE storage class to help (Adam Stroud)
32339
32340 • Ignore directory markers at the root (Nick Craig-Wood)
32341
32342 • Googlephotos
32343
32344 • Make the start year configurable (Daven)
32345
32346 • Add support for --header-upload and --header-download (Tim Gallant)
32347
32348 • Create feature/favorites directory (Brandon Philips)
32349
32350 • Fix "concurrent map write" error (Nick Craig-Wood)
32351
32352 • Don't put an image in error message (Nick Craig-Wood)
32353
32354 • HTTP
32355
32356 • Improved directory listing with new template from Caddy project
32357 (calisro)
32358
32359 • Jottacloud
32360
32361 • Implement --jottacloud-trashed-only (buengese)
32362
32363 • Add support for --header-upload and --header-download (Tim Gallant)
32364
32365 • Use RawURLEncoding when decoding base64 encoded login token
32366 (buengese)
32367
32368 • Implement cleanup (buengese)
32369
32370 • Update docs regarding cleanup, removed remains from old auth, and
32371 added warning about special mountpoints. (albertony)
32372
32373 • Mailru
32374
32375 • Describe 2FA requirements (valery1707)
32376
32377 • Onedrive
32378
32379 • Implement --onedrive-server-side-across-configs (Nick Craig-Wood)
32380
32381 • Add support for --header-upload and --header-download (Tim Gallant)
32382
32383 • Fix occasional 416 errors on multipart uploads (Nick Craig-Wood)
32384
32385 • Added maximum chunk size limit warning in the docs (Harry)
32386
32387 • Fix missing drive on config (Nick Craig-Wood)
32388
32389 • Make error quotaLimitReached to be fatal (harry)
32390
32391 • Opendrive
32392
32393 • Add support for --header-upload and --header-download (Tim Gallant)
32394
32395 • Pcloud
32396
32397 • Added support for interchangeable root folder for pCloud backend
32398 (Sunil Patra)
32399
32400 • Add support for --header-upload and --header-download (Tim Gallant)
32401
32402 • Fix initial config "Auth state doesn't match" message (Nick
32403 Craig-Wood)
32404
32405 • Premiumizeme
32406
32407 • Add support for --header-upload and --header-download (Tim Gallant)
32408
32409 • Prune unused functions (Lars Lehtonen)
32410
32411 • Putio
32412
32413 • Add support for --header-upload and --header-download (Nick
32414 Craig-Wood)
32415
32416 • Make downloading files use the rclone http Client (Nick Craig-Wood)
32417
32418 • Fix parsing of remotes with leading and trailing / (Nick
32419 Craig-Wood)
32420
32421 • Qingstor
32422
32423 • Make rclone cleanup remove pending multipart uploads older than 24h
32424 (Nick Craig-Wood)
32425
32426 • Try harder to cancel failed multipart uploads (Nick Craig-Wood)
32427
32428 • Prune multiUploader.list() (Lars Lehtonen)
32429
32430 • Lint fix (Lars Lehtonen)
32431
32432 • S3
32433
32434 • Add support for --header-upload and --header-download (Tim Gallant)
32435
32436 • Use memory pool for buffer allocations (Maciej Zimnoch)
32437
32438 • Add SSE-C support for AWS, Ceph, and MinIO (Jack Anderson)
32439
32440 • Fail fast multipart upload (Michał Matczuk)
32441
32442 • Report errors on bucket creation (mkdir) correctly (Nick
32443 Craig-Wood)
32444
32445 • Specify that Minio supports URL encoding in listings (Nick
32446 Craig-Wood)
32447
32448 • Added 500 as retryErrorCode (Michał Matczuk)
32449
32450 • Use --low-level-retries as the number of SDK retries (Aleksandar
32451 Janković)
32452
32453 • Fix multipart abort context (Aleksandar Jankovic)
32454
32455 • Replace deprecated session.New() with session.NewSession() (Lars
32456 Lehtonen)
32457
32458 • Use the provided size parameter when allocating a new memory pool
32459 (Joachim Brandon LeBlanc)
32460
32461 • Use rclone's low level retries instead of AWS SDK to fix listing
32462 retries (Nick Craig-Wood)
32463
32464 • Ignore directory markers at the root also (Nick Craig-Wood)
32465
32466 • Use single memory pool (Michał Matczuk)
32467
32468 • Do not resize buf on put to memBuf (Michał Matczuk)
32469
32470 • Improve docs for --s3-disable-checksum (Nick Craig-Wood)
32471
32472 • Don't leak memory or tokens in edge cases for multipart upload
32473 (Nick Craig-Wood)
32474
32475 • Seafile
32476
32477 • Implement 2FA (Fred)
32478
32479 • SFTP
32480
32481 • Added --sftp-pem-key to support inline key files (calisro)
32482
32483 • Fix post transfer copies failing with 0 size when using set_mod‐
32484 time=false (Nick Craig-Wood)
32485
32486 • Sharefile
32487
32488 • Add support for --header-upload and --header-download (Tim Gallant)
32489
32490 • Sugarsync
32491
32492 • Add support for --header-upload and --header-download (Tim Gallant)
32493
32494 • Swift
32495
32496 • Add support for --header-upload and --header-download (Nick
32497 Craig-Wood)
32498
32499 • Fix cosmetic issue in error message (Martin Michlmayr)
32500
32501 • Union
32502
32503 • Implement multiple writable remotes (Max Sum)
32504
32505 • Fix server-side copy (Max Sum)
32506
32507 • Implement ListR (Max Sum)
32508
32509 • Enable ListR when upstreams contain local (Max Sum)
32510
32511 • WebDAV
32512
32513 • Add support for --header-upload and --header-download (Tim Gallant)
32514
32515 • Fix X-OC-Mtime header for Transip compatibility (Nick Craig-Wood)
32516
32517 • Report full and consistent usage with about (Yves G)
32518
32519 • Yandex
32520
32521 • Add support for --header-upload and --header-download (Tim Gallant)
32522
32523 v1.51.0 - 2020-02-01
32524 • New backends
32525
32526 • Memory (https://rclone.org/memory/) (Nick Craig-Wood)
32527
32528 • Sugarsync (https://rclone.org/sugarsync/) (Nick Craig-Wood)
32529
32530 • New Features
32531
32532 • Adjust all backends to have --backend-encoding parameter (Nick
32533 Craig-Wood)
32534
32535 • this enables the encoding for special characters to be adjusted
32536 or disabled
32537
32538 • Add --max-duration flag to control the maximum duration of a trans‐
32539 fer session (boosh)
32540
32541 • Add --expect-continue-timeout flag, default 1s (Nick Craig-Wood)
32542
32543 • Add --no-check-dest flag for copying without testing the destina‐
32544 tion (Nick Craig-Wood)
32545
32546 • Implement --order-by flag to order transfers (Nick Craig-Wood)
32547
32548 • accounting
32549
32550 • Don't show entries in both transferring and checking (Nick
32551 Craig-Wood)
32552
32553 • Add option to delete stats (Aleksandar Jankovic)
32554
32555 • build
32556
32557 • Compress the test builds with gzip (Nick Craig-Wood)
32558
32559 • Implement a framework for starting test servers during tests
32560 (Nick Craig-Wood)
32561
32562 • cmd: Always print elapsed time to tenth place seconds in progress
32563 (Gary Kim)
32564
32565 • config
32566
32567 • Add --password-command to allow dynamic config password (Damon
32568 Permezel)
32569
32570 • Give config questions default values (Nick Craig-Wood)
32571
32572 • Check a remote exists when creating a new one (Nick Craig-Wood)
32573
32574 • copyurl: Add --stdout flag to write to stdout (Nick Craig-Wood)
32575
32576 • dedupe: Implement keep smallest too (Nick Craig-Wood)
32577
32578 • hashsum: Add flag --base64 flag (landall)
32579
32580 • lsf: Speed up on s3/swift/etc by not reading mimetype by default
32581 (Nick Craig-Wood)
32582
32583 • lsjson: Add --no-mimetype flag (Nick Craig-Wood)
32584
32585 • rc: Add methods to turn on blocking and mutex profiling (Nick
32586 Craig-Wood)
32587
32588 • rcd
32589
32590 • Adding group parameter to stats (Chaitanya)
32591
32592 • Move webgui apart; option to disable browser (Xiaoxing Ye)
32593
32594 • serve sftp: Add support for public key with auth proxy (Paul Tins‐
32595 ley)
32596
32597 • stats: Show deletes in stats and hide zero stats (anuar45)
32598
32599 • Bug Fixes
32600
32601 • accounting
32602
32603 • Fix error counter counting multiple times (Ankur Gupta)
32604
32605 • Fix error count shown as checks (Cnly)
32606
32607 • Clear finished transfer in stats-reset (Maciej Zimnoch)
32608
32609 • Added StatsInfo locking in statsGroups sum function (Michał
32610 Matczuk)
32611
32612 • asyncreader: Fix EOF error (buengese)
32613
32614 • check: Fix --one-way recursing more directories than it needs to
32615 (Nick Craig-Wood)
32616
32617 • chunkedreader: Disable hash calculation for first segment (Nick
32618 Craig-Wood)
32619
32620 • config
32621
32622 • Do not open browser on headless on drive/gcs/google photos (Xi‐
32623 aoxing Ye)
32624
32625 • SetValueAndSave ignore error if config section does not exist yet
32626 (buengese)
32627
32628 • cmd: Fix completion with an encrypted config (Danil Semelenov)
32629
32630 • dbhashsum: Stop it returning UNSUPPORTED on dropbox (Nick
32631 Craig-Wood)
32632
32633 • dedupe: Add missing modes to help string (Nick Craig-Wood)
32634
32635 • operations
32636
32637 • Fix dedupe continuing on errors like insufficientFilePersimmon
32638 (SezalAgrawal)
32639
32640 • Clear accounting before low level retry (Maciej Zimnoch)
32641
32642 • Write debug message when hashes could not be checked (Ole Schütt)
32643
32644 • Move interface assertion to tests to remove pflag dependency
32645 (Nick Craig-Wood)
32646
32647 • Make NewOverrideObjectInfo public and factor uses (Nick
32648 Craig-Wood)
32649
32650 • proxy: Replace use of bcrypt with sha256 (Nick Craig-Wood)
32651
32652 • vendor
32653
32654 • Update bazil.org/fuse to fix FreeBSD 12.1 (Nick Craig-Wood)
32655
32656 • Update github.com/t3rm1n4l/go-mega to fix mega "illegal base64
32657 data at input byte 22" (Nick Craig-Wood)
32658
32659 • Update termbox-go to fix ncdu command on FreeBSD (Kuang-che Wu)
32660
32661 • Update t3rm1n4l/go-mega - fixes mega: couldn't login: crypto/aes:
32662 invalid key size 0 (Nick Craig-Wood)
32663
32664 • Mount
32665
32666 • Enable async reads for a 20% speedup (Nick Craig-Wood)
32667
32668 • Replace use of WriteAt with Write for cache mode >= writes and
32669 O_APPEND (Brett Dutro)
32670
32671 • Make sure we call unmount when exiting (Nick Craig-Wood)
32672
32673 • Don't build on go1.10 as bazil/fuse no longer supports it (Nick
32674 Craig-Wood)
32675
32676 • When setting dates discard out of range dates (Nick Craig-Wood)
32677
32678 • VFS
32679
32680 • Add a newly created file straight into the directory (Nick
32681 Craig-Wood)
32682
32683 • Only calculate one hash for reads for a speedup (Nick Craig-Wood)
32684
32685 • Make ReadAt for non cached files work better with non-sequential
32686 reads (Nick Craig-Wood)
32687
32688 • Fix edge cases when reading ModTime from file (Nick Craig-Wood)
32689
32690 • Make sure existing files opened for write show correct size (Nick
32691 Craig-Wood)
32692
32693 • Don't cache the path in RW file objects to fix renaming (Nick
32694 Craig-Wood)
32695
32696 • Fix rename of open files when using the VFS cache (Nick Craig-Wood)
32697
32698 • When renaming files in the cache, rename the cache item in memory
32699 too (Nick Craig-Wood)
32700
32701 • Fix open file renaming on drive when using --vfs-cache-mode writes
32702 (Nick Craig-Wood)
32703
32704 • Fix incorrect modtime for mv into mount with --vfs-cache-modes
32705 writes (Nick Craig-Wood)
32706
32707 • On rename, rename in cache too if the file exists (Anagh Kumar
32708 Baranwal)
32709
32710 • Local
32711
32712 • Make source file being updated errors be NoLowLevelRetry errors
32713 (Nick Craig-Wood)
32714
32715 • Fix update of hidden files on Windows (Nick Craig-Wood)
32716
32717 • Cache
32718
32719 • Follow move of upstream library github.com/coreos/bbolt
32720 github.com/etcd-io/bbolt (Nick Craig-Wood)
32721
32722 • Fix fatal error: concurrent map writes (Nick Craig-Wood)
32723
32724 • Crypt
32725
32726 • Reorder the filename encryption options (Thomas Eales)
32727
32728 • Correctly handle trailing dot (buengese)
32729
32730 • Chunker
32731
32732 • Reduce length of temporary suffix (Ivan Andreev)
32733
32734 • Drive
32735
32736 • Add --drive-stop-on-upload-limit flag to stop syncs when upload
32737 limit reached (Nick Craig-Wood)
32738
32739 • Add --drive-use-shared-date to use date file was shared instead of
32740 modified date (Garry McNulty)
32741
32742 • Make sure invalid auth for teamdrives always reports an error (Nick
32743 Craig-Wood)
32744
32745 • Fix --fast-list when using appDataFolder (Nick Craig-Wood)
32746
32747 • Use multipart resumable uploads for streaming and uploads in mount
32748 (Nick Craig-Wood)
32749
32750 • Log an ERROR if an incomplete search is returned (Nick Craig-Wood)
32751
32752 • Hide dangerous config from the configurator (Nick Craig-Wood)
32753
32754 • Dropbox
32755
32756 • Treat insufficient_space errors as non retriable errors (Nick
32757 Craig-Wood)
32758
32759 • Jottacloud
32760
32761 • Use new auth method used by official client (buengese)
32762
32763 • Add URL to generate Login Token to config wizard (Nick Craig-Wood)
32764
32765 • Add support whitelabel versions (buengese)
32766
32767 • Koofr
32768
32769 • Use rclone HTTP client. (jaKa)
32770
32771 • Onedrive
32772
32773 • Add Sites.Read.All permission (Benjamin Richter)
32774
32775 • Add support "Retry-After" header (Motonori IWAMURO)
32776
32777 • Opendrive
32778
32779 • Implement --opendrive-chunk-size (Nick Craig-Wood)
32780
32781 • S3
32782
32783 • Re-implement multipart upload to fix memory issues (Nick
32784 Craig-Wood)
32785
32786 • Add --s3-copy-cutoff for size to switch to multipart copy (Nick
32787 Craig-Wood)
32788
32789 • Add new region Asia Pacific (Hong Kong) (Outvi V)
32790
32791 • Reduce memory usage streaming files by reducing max stream upload
32792 size (Nick Craig-Wood)
32793
32794 • Add --s3-list-chunk option for bucket listing (Thomas Kriechbaumer)
32795
32796 • Force path style bucket access to off for AWS deprecation (Nick
32797 Craig-Wood)
32798
32799 • Use AWS web identity role provider if available (Tennix)
32800
32801 • Add StackPath Object Storage Support (Dave Koston)
32802
32803 • Fix ExpiryWindow value (Aleksandar Jankovic)
32804
32805 • Fix DisableChecksum condition (Aleksandar Janković)
32806
32807 • Fix URL decoding of NextMarker (Nick Craig-Wood)
32808
32809 • SFTP
32810
32811 • Add --sftp-skip-links to skip symlinks and non regular files (Nick
32812 Craig-Wood)
32813
32814 • Retry Creation of Connection (Sebastian Brandt)
32815
32816 • Fix "failed to parse private key file: ssh: not an encrypted key"
32817 error (Nick Craig-Wood)
32818
32819 • Open files for update write only to fix AWS SFTP interop (Nick
32820 Craig-Wood)
32821
32822 • Swift
32823
32824 • Reserve segments of dynamic large object when delete objects in
32825 container what was enabled versioning. (Nguyễn Hữu Luân)
32826
32827 • Fix parsing of X-Object-Manifest (Nick Craig-Wood)
32828
32829 • Update OVH API endpoint (unbelauscht)
32830
32831 • WebDAV
32832
32833 • Make nextcloud only upload SHA1 checksums (Nick Craig-Wood)
32834
32835 • Fix case of "Bearer" in Authorization: header to agree with RFC
32836 (Nick Craig-Wood)
32837
32838 • Add Referer header to fix problems with WAFs (Nick Craig-Wood)
32839
32840 v1.50.2 - 2019-11-19
32841 • Bug Fixes
32842
32843 • accounting: Fix memory leak on retries operations (Nick Craig-Wood)
32844
32845 • Drive
32846
32847 • Fix listing of the root directory with drive.files scope (Nick
32848 Craig-Wood)
32849
32850 • Fix --drive-root-folder-id with team/shared drives (Nick
32851 Craig-Wood)
32852
32853 v1.50.1 - 2019-11-02
32854 • Bug Fixes
32855
32856 • hash: Fix accidentally changed hash names for DropboxHash and
32857 CRC-32 (Nick Craig-Wood)
32858
32859 • fshttp: Fix error reporting on tpslimit token bucket errors (Nick
32860 Craig-Wood)
32861
32862 • fshttp: Don't print token bucket errors on context cancelled (Nick
32863 Craig-Wood)
32864
32865 • Local
32866
32867 • Fix listings of . on Windows (Nick Craig-Wood)
32868
32869 • Onedrive
32870
32871 • Fix DirMove/Move after Onedrive change (Xiaoxing Ye)
32872
32873 v1.50.0 - 2019-10-26
32874 • New backends
32875
32876 • Citrix Sharefile (https://rclone.org/sharefile/) (Nick Craig-Wood)
32877
32878 • Chunker (https://rclone.org/chunker/) - an overlay backend to split
32879 files into smaller parts (Ivan Andreev)
32880
32881 • Mail.ru Cloud (https://rclone.org/mailru/) (Ivan Andreev)
32882
32883 • New Features
32884
32885 • encodings (Fabian Möller & Nick Craig-Wood)
32886
32887 • All backends now use file name encoding to ensure any file name
32888 can be written to any backend.
32889
32890 • See the restricted file name docs (https://rclone.org/over‐
32891 view/#restricted-filenames) for more info and the local backend
32892 docs (/local/#filenames).
32893
32894 • Some file names may look different in rclone if you are using any
32895 control characters in names or unicode FULLWIDTH symbols
32896 (https://en.wikipedia.org/wiki/Halfwidth_and_Full‐
32897 width_Forms_(Unicode_block)).
32898
32899 • build
32900
32901 • Update to use go1.13 for the build (Nick Craig-Wood)
32902
32903 • Drop support for go1.9 (Nick Craig-Wood)
32904
32905 • Build rclone with GitHub actions (Nick Craig-Wood)
32906
32907 • Convert python scripts to python3 (Nick Craig-Wood)
32908
32909 • Swap Azure/go-ansiterm for mattn/go-colorable (Nick Craig-Wood)
32910
32911 • Dockerfile fixes (Matei David)
32912
32913 • Add plugin support (https://github.com/rclone/rclone/blob/mas‐
32914 ter/CONTRIBUTING.md#writing-a-plugin) for backends and commands
32915 (Richard Patel)
32916
32917 • config
32918
32919 • Use alternating Red/Green in config to make more obvious (Nick
32920 Craig-Wood)
32921
32922 • contrib
32923
32924 • Add sample DLNA server Docker Compose manifest. (pataquets)
32925
32926 • Add sample WebDAV server Docker Compose manifest. (pataquets)
32927
32928 • copyurl
32929
32930 • Add --auto-filename flag for using file name from URL in destina‐
32931 tion path (Denis)
32932
32933 • serve dlna:
32934
32935 • Many compatibility improvements (Dan Walters)
32936
32937 • Support for external srt subtitles (Dan Walters)
32938
32939 • rc
32940
32941 • Added command core/quit (Saksham Khanna)
32942
32943 • Bug Fixes
32944
32945 • sync
32946
32947 • Make --update/-u not transfer files that haven't changed (Nick
32948 Craig-Wood)
32949
32950 • Free objects after they come out of the transfer pipe to save
32951 memory (Nick Craig-Wood)
32952
32953 • Fix --files-from without --no-traverse doing a recursive scan
32954 (Nick Craig-Wood)
32955
32956 • operations
32957
32958 • Fix accounting for server-side copies (Nick Craig-Wood)
32959
32960 • Display 'All duplicates removed' only if dedupe successful (Sezal
32961 Agrawal)
32962
32963 • Display 'Deleted X extra copies' only if dedupe successful (Sezal
32964 Agrawal)
32965
32966 • accounting
32967
32968 • Only allow up to 100 completed transfers in the accounting list
32969 to save memory (Nick Craig-Wood)
32970
32971 • Cull the old time ranges when possible to save memory (Nick
32972 Craig-Wood)
32973
32974 • Fix panic due to server-side copy fallback (Ivan Andreev)
32975
32976 • Fix memory leak noticeable for transfers of large numbers of ob‐
32977 jects (Nick Craig-Wood)
32978
32979 • Fix total duration calculation (Nick Craig-Wood)
32980
32981 • cmd
32982
32983 • Fix environment variables not setting command line flags (Nick
32984 Craig-Wood)
32985
32986 • Make autocomplete compatible with bash's posix mode for macOS
32987 (Danil Semelenov)
32988
32989 • Make --progress work in git bash on Windows (Nick Craig-Wood)
32990
32991 • Fix 'compopt: command not found' on autocomplete on macOS (Danil
32992 Semelenov)
32993
32994 • config
32995
32996 • Fix setting of non top level flags from environment variables
32997 (Nick Craig-Wood)
32998
32999 • Check config names more carefully and report errors (Nick
33000 Craig-Wood)
33001
33002 • Remove error: can't use --size-only and --ignore-size together.
33003 (Nick Craig-Wood)
33004
33005 • filter: Prevent mixing options when --files-from is in use (Michele
33006 Caci)
33007
33008 • serve sftp: Fix crash on unsupported operations (e.g. Readlink)
33009 (Nick Craig-Wood)
33010
33011 • Mount
33012
33013 • Allow files of unknown size to be read properly (Nick Craig-Wood)
33014
33015 • Skip tests on <= 2 CPUs to avoid lockup (Nick Craig-Wood)
33016
33017 • Fix panic on File.Open (Nick Craig-Wood)
33018
33019 • Fix "mount_fusefs: -o timeout=: option not supported" on FreeBSD
33020 (Nick Craig-Wood)
33021
33022 • Don't pass huge filenames (>4k) to FUSE as it can't cope (Nick
33023 Craig-Wood)
33024
33025 • VFS
33026
33027 • Add flag --vfs-case-insensitive for windows/macOS mounts (Ivan An‐
33028 dreev)
33029
33030 • Make objects of unknown size readable through the VFS (Nick
33031 Craig-Wood)
33032
33033 • Move writeback of dirty data out of close() method into its own
33034 method (FlushWrites) and remove close() call from Flush() (Brett
33035 Dutro)
33036
33037 • Stop empty dirs disappearing when renamed on bucket based remotes
33038 (Nick Craig-Wood)
33039
33040 • Stop change notify polling clearing so much of the directory cache
33041 (Nick Craig-Wood)
33042
33043 • Azure Blob
33044
33045 • Disable logging to the Windows event log (Nick Craig-Wood)
33046
33047 • B2
33048
33049 • Remove unverified: prefix on sha1 to improve interop (e.g. with
33050 CyberDuck) (Nick Craig-Wood)
33051
33052 • Box
33053
33054 • Add options to get access token via JWT auth (David)
33055
33056 • Drive
33057
33058 • Disable HTTP/2 by default to work around INTERNAL_ERROR problems
33059 (Nick Craig-Wood)
33060
33061 • Make sure that drive root ID is always canonical (Nick Craig-Wood)
33062
33063 • Fix --drive-shared-with-me from the root with lsand --fast-list
33064 (Nick Craig-Wood)
33065
33066 • Fix ChangeNotify polling for shared drives (Nick Craig-Wood)
33067
33068 • Fix change notify polling when using appDataFolder (Nick
33069 Craig-Wood)
33070
33071 • Dropbox
33072
33073 • Make disallowed filenames errors not retry (Nick Craig-Wood)
33074
33075 • Fix nil pointer exception on restricted files (Nick Craig-Wood)
33076
33077 • Fichier
33078
33079 • Fix accessing files > 2GB on 32 bit systems (Nick Craig-Wood)
33080
33081 • FTP
33082
33083 • Allow disabling EPSV mode (Jon Fautley)
33084
33085 • HTTP
33086
33087 • HEAD directory entries in parallel to speedup (Nick Craig-Wood)
33088
33089 • Add --http-no-head to stop rclone doing HEAD in listings (Nick
33090 Craig-Wood)
33091
33092 • Putio
33093
33094 • Add ability to resume uploads (Cenk Alti)
33095
33096 • S3
33097
33098 • Fix signature v2_auth headers (Anthony Rusdi)
33099
33100 • Fix encoding for control characters (Nick Craig-Wood)
33101
33102 • Only ask for URL encoded directory listings if we need them on Ceph
33103 (Nick Craig-Wood)
33104
33105 • Add option for multipart failure behaviour (Aleksandar Jankovic)
33106
33107 • Support for multipart copy (庄天翼)
33108
33109 • Fix nil pointer reference if no metadata returned for object (Nick
33110 Craig-Wood)
33111
33112 • SFTP
33113
33114 • Fix --sftp-ask-password trying to contact the ssh agent (Nick
33115 Craig-Wood)
33116
33117 • Fix hashes of files with backslashes (Nick Craig-Wood)
33118
33119 • Include more ciphers with --sftp-use-insecure-cipher (Carlos Fer‐
33120 reyra)
33121
33122 • WebDAV
33123
33124 • Parse and return Sharepoint error response (Henning Surmeier)
33125
33126 v1.49.5 - 2019-10-05
33127 • Bug Fixes
33128
33129 • Revert back to go1.12.x for the v1.49.x builds as go1.13.x was
33130 causing issues (Nick Craig-Wood)
33131
33132 • Fix rpm packages by using master builds of nfpm (Nick Craig-Wood)
33133
33134 • Fix macOS build after brew changes (Nick Craig-Wood)
33135
33136 v1.49.4 - 2019-09-29
33137 • Bug Fixes
33138
33139 • cmd/rcd: Address ZipSlip vulnerability (Richard Patel)
33140
33141 • accounting: Fix file handle leak on errors (Nick Craig-Wood)
33142
33143 • oauthutil: Fix security problem when running with two users on the
33144 same machine (Nick Craig-Wood)
33145
33146 • FTP
33147
33148 • Fix listing of an empty root returning: error dir not found (Nick
33149 Craig-Wood)
33150
33151 • S3
33152
33153 • Fix SetModTime on GLACIER/ARCHIVE objects and implement set/get
33154 tier (Nick Craig-Wood)
33155
33156 v1.49.3 - 2019-09-15
33157 • Bug Fixes
33158
33159 • accounting
33160
33161 • Fix total duration calculation (Aleksandar Jankovic)
33162
33163 • Fix "file already closed" on transfer retries (Nick Craig-Wood)
33164
33165 v1.49.2 - 2019-09-08
33166 • New Features
33167
33168 • build: Add Docker workflow support (Alfonso Montero)
33169
33170 • Bug Fixes
33171
33172 • accounting: Fix locking in Transfer to avoid deadlock with
33173 --progress (Nick Craig-Wood)
33174
33175 • docs: Fix template argument for mktemp in install.sh (Cnly)
33176
33177 • operations: Fix -u/--update with google photos / files of unknown
33178 size (Nick Craig-Wood)
33179
33180 • rc: Fix docs for config/create /update /password (Nick Craig-Wood)
33181
33182 • Google Cloud Storage
33183
33184 • Fix need for elevated permissions on SetModTime (Nick Craig-Wood)
33185
33186 v1.49.1 - 2019-08-28
33187 • Bug Fixes
33188
33189 • config: Fix generated passwords being stored as empty password
33190 (Nick Craig-Wood)
33191
33192 • rcd: Added missing parameter for web-gui info logs. (Chaitanya)
33193
33194 • Googlephotos
33195
33196 • Fix crash on error response (Nick Craig-Wood)
33197
33198 • Onedrive
33199
33200 • Fix crash on error response (Nick Craig-Wood)
33201
33202 v1.49.0 - 2019-08-26
33203 • New backends
33204
33205 • 1fichier (https://rclone.org/fichier/) (Laura Hausmann)
33206
33207 • Google Photos (https://rclone.org/googlephotos/) (Nick Craig-Wood)
33208
33209 • Putio (https://rclone.org/putio/) (Cenk Alti)
33210
33211 • premiumize.me (https://rclone.org/premiumizeme/) (Nick Craig-Wood)
33212
33213 • New Features
33214
33215 • Experimental web GUI (https://rclone.org/gui/) (Chaitanya Bankan‐
33216 hal)
33217
33218 • Implement --compare-dest & --copy-dest (yparitcher)
33219
33220 • Implement --suffix without --backup-dir for backup to current dir
33221 (yparitcher)
33222
33223 • config reconnect to re-login (re-run the oauth login) for the back‐
33224 end. (Nick Craig-Wood)
33225
33226 • config userinfo to discover which user you are logged in as. (Nick
33227 Craig-Wood)
33228
33229 • config disconnect to disconnect you (log out) from the backend.
33230 (Nick Craig-Wood)
33231
33232 • Add --use-json-log for JSON logging (justinalin)
33233
33234 • Add context propagation to rclone (Aleksandar Jankovic)
33235
33236 • Reworking internal statistics interfaces so they work with rc jobs
33237 (Aleksandar Jankovic)
33238
33239 • Add Higher units for ETA (AbelThar)
33240
33241 • Update rclone logos to new design (Andreas Chlupka)
33242
33243 • hash: Add CRC-32 support (Cenk Alti)
33244
33245 • help showbackend: Fixed advanced option category when there are no
33246 standard options (buengese)
33247
33248 • ncdu: Display/Copy to Clipboard Current Path (Gary Kim)
33249
33250 • operations:
33251
33252 • Run hashing operations in parallel (Nick Craig-Wood)
33253
33254 • Don't calculate checksums when using --ignore-checksum (Nick
33255 Craig-Wood)
33256
33257 • Check transfer hashes when using --size-only mode (Nick
33258 Craig-Wood)
33259
33260 • Disable multi thread copy for local to local copies (Nick
33261 Craig-Wood)
33262
33263 • Debug successful hashes as well as failures (Nick Craig-Wood)
33264
33265 • rc
33266
33267 • Add ability to stop async jobs (Aleksandar Jankovic)
33268
33269 • Return current settings if core/bwlimit called without parameters
33270 (Nick Craig-Wood)
33271
33272 • Rclone-WebUI integration with rclone (Chaitanya Bankanhal)
33273
33274 • Added command line parameter to control the cross origin resource
33275 sharing (CORS) in the rcd. (Security Improvement) (Chaitanya
33276 Bankanhal)
33277
33278 • Add anchor tags to the docs so links are consistent (Nick
33279 Craig-Wood)
33280
33281 • Remove _async key from input parameters after parsing so later
33282 operations won't get confused (buengese)
33283
33284 • Add call to clear stats (Aleksandar Jankovic)
33285
33286 • rcd
33287
33288 • Auto-login for web-gui (Chaitanya Bankanhal)
33289
33290 • Implement --baseurl for rcd and web-gui (Chaitanya Bankanhal)
33291
33292 • serve dlna
33293
33294 • Only select interfaces which can multicast for SSDP (Nick
33295 Craig-Wood)
33296
33297 • Add more builtin mime types to cover standard audio/video (Nick
33298 Craig-Wood)
33299
33300 • Fix missing mime types on Android causing missing videos (Nick
33301 Craig-Wood)
33302
33303 • serve ftp
33304
33305 • Refactor to bring into line with other serve commands (Nick
33306 Craig-Wood)
33307
33308 • Implement --auth-proxy (Nick Craig-Wood)
33309
33310 • serve http: Implement --baseurl (Nick Craig-Wood)
33311
33312 • serve restic: Implement --baseurl (Nick Craig-Wood)
33313
33314 • serve sftp
33315
33316 • Implement auth proxy (Nick Craig-Wood)
33317
33318 • Fix detection of whether server is authorized (Nick Craig-Wood)
33319
33320 • serve webdav
33321
33322 • Implement --baseurl (Nick Craig-Wood)
33323
33324 • Support --auth-proxy (Nick Craig-Wood)
33325
33326 • Bug Fixes
33327
33328 • Make "bad record MAC" a retriable error (Nick Craig-Wood)
33329
33330 • copyurl: Fix copying files that return HTTP errors (Nick
33331 Craig-Wood)
33332
33333 • march: Fix checking sub-directories when using --no-traverse
33334 (buengese)
33335
33336 • rc
33337
33338 • Fix unmarshalable http.AuthFn in options and put in test for mar‐
33339 shalability (Nick Craig-Wood)
33340
33341 • Move job expire flags to rc to fix initialization problem (Nick
33342 Craig-Wood)
33343
33344 • Fix --loopback with rc/list and others (Nick Craig-Wood)
33345
33346 • rcat: Fix slowdown on systems with multiple hashes (Nick
33347 Craig-Wood)
33348
33349 • rcd: Fix permissions problems on cache directory with web gui down‐
33350 load (Nick Craig-Wood)
33351
33352 • Mount
33353
33354 • Default --daemon-timout to 15 minutes on macOS and FreeBSD (Nick
33355 Craig-Wood)
33356
33357 • Update docs to show mounting from root OK for bucket based (Nick
33358 Craig-Wood)
33359
33360 • Remove nonseekable flag from write files (Nick Craig-Wood)
33361
33362 • VFS
33363
33364 • Make write without cache more efficient (Nick Craig-Wood)
33365
33366 • Fix --vfs-cache-mode minimal and writes ignoring cached files (Nick
33367 Craig-Wood)
33368
33369 • Local
33370
33371 • Add --local-case-sensitive and --local-case-insensitive (Nick
33372 Craig-Wood)
33373
33374 • Avoid polluting page cache when uploading local files to remote
33375 backends (Michał Matczuk)
33376
33377 • Don't calculate any hashes by default (Nick Craig-Wood)
33378
33379 • Fadvise run syscall on a dedicated go routine (Michał Matczuk)
33380
33381 • Azure Blob
33382
33383 • Azure Storage Emulator support (Sandeep)
33384
33385 • Updated config help details to remove connection string references
33386 (Sandeep)
33387
33388 • Make all operations work from the root (Nick Craig-Wood)
33389
33390 • B2
33391
33392 • Implement link sharing (yparitcher)
33393
33394 • Enable server-side copy to copy between buckets (Nick Craig-Wood)
33395
33396 • Make all operations work from the root (Nick Craig-Wood)
33397
33398 • Drive
33399
33400 • Fix server-side copy of big files (Nick Craig-Wood)
33401
33402 • Update API for teamdrive use (Nick Craig-Wood)
33403
33404 • Add error for purge with --drive-trashed-only (ginvine)
33405
33406 • Fichier
33407
33408 • Make FolderID int and adjust related code (buengese)
33409
33410 • Google Cloud Storage
33411
33412 • Reduce oauth scope requested as suggested by Google (Nick
33413 Craig-Wood)
33414
33415 • Make all operations work from the root (Nick Craig-Wood)
33416
33417 • HTTP
33418
33419 • Add --http-headers flag for setting arbitrary headers (Nick
33420 Craig-Wood)
33421
33422 • Jottacloud
33423
33424 • Use new api for retrieving internal username (buengese)
33425
33426 • Refactor configuration and minor cleanup (buengese)
33427
33428 • Koofr
33429
33430 • Support setting modification times on Koofr backend. (jaKa)
33431
33432 • Opendrive
33433
33434 • Refactor to use existing lib/rest facilities for uploads (Nick
33435 Craig-Wood)
33436
33437 • Qingstor
33438
33439 • Upgrade to v3 SDK and fix listing loop (Nick Craig-Wood)
33440
33441 • Make all operations work from the root (Nick Craig-Wood)
33442
33443 • S3
33444
33445 • Add INTELLIGENT_TIERING storage class (Matti Niemenmaa)
33446
33447 • Make all operations work from the root (Nick Craig-Wood)
33448
33449 • SFTP
33450
33451 • Add missing interface check and fix About (Nick Craig-Wood)
33452
33453 • Completely ignore all modtime checks if SetModTime=false (Jon Faut‐
33454 ley)
33455
33456 • Support md5/sha1 with rsync.net (Nick Craig-Wood)
33457
33458 • Save the md5/sha1 command in use to the config file for efficiency
33459 (Nick Craig-Wood)
33460
33461 • Opt-in support for diffie-hellman-group-exchange-sha256
33462 diffie-hellman-group-exchange-sha1 (Yi FU)
33463
33464 • Swift
33465
33466 • Use FixRangeOption to fix 0 length files via the VFS (Nick
33467 Craig-Wood)
33468
33469 • Fix upload when using no_chunk to return the correct size (Nick
33470 Craig-Wood)
33471
33472 • Make all operations work from the root (Nick Craig-Wood)
33473
33474 • Fix segments leak during failed large file uploads. (nguyenhuulu‐
33475 an434)
33476
33477 • WebDAV
33478
33479 • Add --webdav-bearer-token-command (Nick Craig-Wood)
33480
33481 • Refresh token when it expires with --webdav-bearer-token-command
33482 (Nick Craig-Wood)
33483
33484 • Add docs for using bearer_token_command with oidc-agent (Paul Mil‐
33485 lar)
33486
33487 v1.48.0 - 2019-06-15
33488 • New commands
33489
33490 • serve sftp: Serve an rclone remote over SFTP (Nick Craig-Wood)
33491
33492 • New Features
33493
33494 • Multi threaded downloads to local storage (Nick Craig-Wood)
33495
33496 • controlled with --multi-thread-cutoff and --multi-thread-streams
33497
33498 • Use rclone.conf from rclone executable directory to enable portable
33499 use (albertony)
33500
33501 • Allow sync of a file and a directory with the same name (forgems)
33502
33503 • this is common on bucket based remotes, e.g. s3, gcs
33504
33505 • Add --ignore-case-sync for forced case insensitivity (garry415)
33506
33507 • Implement --stats-one-line-date and --stats-one-line-date-format
33508 (Peter Berbec)
33509
33510 • Log an ERROR for all commands which exit with non-zero status (Nick
33511 Craig-Wood)
33512
33513 • Use go-homedir to read the home directory more reliably (Nick
33514 Craig-Wood)
33515
33516 • Enable creating encrypted config through external script invocation
33517 (Wojciech Smigielski)
33518
33519 • build: Drop support for go1.8 (Nick Craig-Wood)
33520
33521 • config: Make config create/update encrypt passwords where necessary
33522 (Nick Craig-Wood)
33523
33524 • copyurl: Honor --no-check-certificate (Stefan Breunig)
33525
33526 • install: Linux skip man pages if no mandb (didil)
33527
33528 • lsf: Support showing the Tier of the object (Nick Craig-Wood)
33529
33530 • lsjson
33531
33532 • Added EncryptedPath to output (calisro)
33533
33534 • Support showing the Tier of the object (Nick Craig-Wood)
33535
33536 • Add IsBucket field for bucket based remote listing of the root
33537 (Nick Craig-Wood)
33538
33539 • rc
33540
33541 • Add --loopback flag to run commands directly without a server
33542 (Nick Craig-Wood)
33543
33544 • Add operations/fsinfo: Return information about the remote (Nick
33545 Craig-Wood)
33546
33547 • Skip auth for OPTIONS request (Nick Craig-Wood)
33548
33549 • cmd/providers: Add DefaultStr, ValueStr and Type fields (Nick
33550 Craig-Wood)
33551
33552 • jobs: Make job expiry timeouts configurable (Aleksandar Jankovic)
33553
33554 • serve dlna reworked and improved (Dan Walters)
33555
33556 • serve ftp: add --ftp-public-ip flag to specify public IP (calistri)
33557
33558 • serve restic: Add support for --private-repos in serve restic (Flo‐
33559 rian Apolloner)
33560
33561 • serve webdav: Combine serve webdav and serve http (Gary Kim)
33562
33563 • size: Ignore negative sizes when calculating total (Garry McNulty)
33564
33565 • Bug Fixes
33566
33567 • Make move and copy individual files obey --backup-dir (Nick
33568 Craig-Wood)
33569
33570 • If --ignore-checksum is in effect, don't calculate checksum (Nick
33571 Craig-Wood)
33572
33573 • moveto: Fix case-insensitive same remote move (Gary Kim)
33574
33575 • rc: Fix serving bucket based objects with --rc-serve (Nick
33576 Craig-Wood)
33577
33578 • serve webdav: Fix serveDir not being updated with changes from web‐
33579 dav (Gary Kim)
33580
33581 • Mount
33582
33583 • Fix poll interval documentation (Animosity022)
33584
33585 • VFS
33586
33587 • Make WriteAt for non cached files work with non-sequential writes
33588 (Nick Craig-Wood)
33589
33590 • Local
33591
33592 • Only calculate the required hashes for big speedup (Nick
33593 Craig-Wood)
33594
33595 • Log errors when listing instead of returning an error (Nick
33596 Craig-Wood)
33597
33598 • Fix preallocate warning on Linux with ZFS (Nick Craig-Wood)
33599
33600 • Crypt
33601
33602 • Make rclone dedupe work through crypt (Nick Craig-Wood)
33603
33604 • Fix wrapping of ChangeNotify to decrypt directories properly (Nick
33605 Craig-Wood)
33606
33607 • Support PublicLink (rclone link) of underlying backend (Nick
33608 Craig-Wood)
33609
33610 • Implement Optional methods SetTier, GetTier (Nick Craig-Wood)
33611
33612 • B2
33613
33614 • Implement server-side copy (Nick Craig-Wood)
33615
33616 • Implement SetModTime (Nick Craig-Wood)
33617
33618 • Drive
33619
33620 • Fix move and copy from TeamDrive to GDrive (Fionera)
33621
33622 • Add notes that cleanup works in the background on drive (Nick
33623 Craig-Wood)
33624
33625 • Add --drive-server-side-across-configs to default back to old serv‐
33626 er-side copy semantics by default (Nick Craig-Wood)
33627
33628 • Add --drive-size-as-quota to show storage quota usage for file size
33629 (Garry McNulty)
33630
33631 • FTP
33632
33633 • Add FTP List timeout (Jeff Quinn)
33634
33635 • Add FTP over TLS support (Gary Kim)
33636
33637 • Add --ftp-no-check-certificate option for FTPS (Gary Kim)
33638
33639 • Google Cloud Storage
33640
33641 • Fix upload errors when uploading pre 1970 files (Nick Craig-Wood)
33642
33643 • Jottacloud
33644
33645 • Add support for selecting device and mountpoint. (buengese)
33646
33647 • Mega
33648
33649 • Add cleanup support (Gary Kim)
33650
33651 • Onedrive
33652
33653 • More accurately check if root is found (Cnly)
33654
33655 • S3
33656
33657 • Support S3 Accelerated endpoints with --s3-use-accelerate-endpoint
33658 (Nick Craig-Wood)
33659
33660 • Add config info for Wasabi's EU Central endpoint (Robert Marko)
33661
33662 • Make SetModTime work for GLACIER while syncing (Philip Harvey)
33663
33664 • SFTP
33665
33666 • Add About support (Gary Kim)
33667
33668 • Fix about parsing of df results so it can cope with -ve results
33669 (Nick Craig-Wood)
33670
33671 • Send custom client version and debug server version (Nick
33672 Craig-Wood)
33673
33674 • WebDAV
33675
33676 • Retry on 423 Locked errors (Nick Craig-Wood)
33677
33678 v1.47.0 - 2019-04-13
33679 • New backends
33680
33681 • Backend for Koofr cloud storage service. (jaKa)
33682
33683 • New Features
33684
33685 • Resume downloads if the reader fails in copy (Nick Craig-Wood)
33686
33687 • this means rclone will restart transfers if the source has an er‐
33688 ror
33689
33690 • this is most useful for downloads or cloud to cloud copies
33691
33692 • Use --fast-list for listing operations where it won't use more mem‐
33693 ory (Nick Craig-Wood)
33694
33695 • this should speed up the following operations on remotes which
33696 support ListR
33697
33698 • dedupe, serve restic lsf, ls, lsl, lsjson, lsd, md5sum, sha1sum,
33699 hashsum, size, delete, cat, settier
33700
33701 • use --disable ListR to get old behaviour if required
33702
33703 • Make --files-from traverse the destination unless --no-traverse is
33704 set (Nick Craig-Wood)
33705
33706 • this fixes --files-from with Google drive and excessive API use
33707 in general.
33708
33709 • Make server-side copy account bytes and obey --max-transfer (Nick
33710 Craig-Wood)
33711
33712 • Add --create-empty-src-dirs flag and default to not creating empty
33713 dirs (ishuah)
33714
33715 • Add client side TLS/SSL flags --ca-cert/--client-cert/--client-key
33716 (Nick Craig-Wood)
33717
33718 • Implement --suffix-keep-extension for use with --suffix (Nick
33719 Craig-Wood)
33720
33721 • build:
33722
33723 • Switch to semver compliant version tags to be go modules compli‐
33724 ant (Nick Craig-Wood)
33725
33726 • Update to use go1.12.x for the build (Nick Craig-Wood)
33727
33728 • serve dlna: Add connection manager service description to improve
33729 compatibility (Dan Walters)
33730
33731 • lsf: Add 'e' format to show encrypted names and 'o' for original
33732 IDs (Nick Craig-Wood)
33733
33734 • lsjson: Added --files-only and --dirs-only flags (calistri)
33735
33736 • rc: Implement operations/publiclink the equivalent of rclone link
33737 (Nick Craig-Wood)
33738
33739 • Bug Fixes
33740
33741 • accounting: Fix total ETA when --stats-unit bits is in effect (Nick
33742 Craig-Wood)
33743
33744 • Bash TAB completion
33745
33746 • Use private custom func to fix clash between rclone and kubectl
33747 (Nick Craig-Wood)
33748
33749 • Fix for remotes with underscores in their names (Six)
33750
33751 • Fix completion of remotes (Florian Gamböck)
33752
33753 • Fix autocompletion of remote paths with spaces (Danil Semelenov)
33754
33755 • serve dlna: Fix root XML service descriptor (Dan Walters)
33756
33757 • ncdu: Fix display corruption with Chinese characters (Nick
33758 Craig-Wood)
33759
33760 • Add SIGTERM to signals which run the exit handlers on unix (Nick
33761 Craig-Wood)
33762
33763 • rc: Reload filter when the options are set via the rc (Nick
33764 Craig-Wood)
33765
33766 • VFS / Mount
33767
33768 • Fix FreeBSD: Ignore Truncate if called with no readers and already
33769 the correct size (Nick Craig-Wood)
33770
33771 • Read directory and check for a file before mkdir (Nick Craig-Wood)
33772
33773 • Shorten the locking window for vfs/refresh (Nick Craig-Wood)
33774
33775 • Azure Blob
33776
33777 • Enable MD5 checksums when uploading files bigger than the "Cutoff"
33778 (Dr.Rx)
33779
33780 • Fix SAS URL support (Nick Craig-Wood)
33781
33782 • B2
33783
33784 • Allow manual configuration of backblaze downloadUrl (Vince)
33785
33786 • Ignore already_hidden error on remove (Nick Craig-Wood)
33787
33788 • Ignore malformed src_last_modified_millis (Nick Craig-Wood)
33789
33790 • Drive
33791
33792 • Add --skip-checksum-gphotos to ignore incorrect checksums on Google
33793 Photos (Nick Craig-Wood)
33794
33795 • Allow server-side move/copy between different remotes. (Fionera)
33796
33797 • Add docs on team drives and --fast-list eventual consistency (Nes‐
33798 tar47)
33799
33800 • Fix imports of text files (Nick Craig-Wood)
33801
33802 • Fix range requests on 0 length files (Nick Craig-Wood)
33803
33804 • Fix creation of duplicates with server-side copy (Nick Craig-Wood)
33805
33806 • Dropbox
33807
33808 • Retry blank errors to fix long listings (Nick Craig-Wood)
33809
33810 • FTP
33811
33812 • Add --ftp-concurrency to limit maximum number of connections (Nick
33813 Craig-Wood)
33814
33815 • Google Cloud Storage
33816
33817 • Fall back to default application credentials (marcintustin)
33818
33819 • Allow bucket policy only buckets (Nick Craig-Wood)
33820
33821 • HTTP
33822
33823 • Add --http-no-slash for websites with directories with no slashes
33824 (Nick Craig-Wood)
33825
33826 • Remove duplicates from listings (Nick Craig-Wood)
33827
33828 • Fix socket leak on 404 errors (Nick Craig-Wood)
33829
33830 • Jottacloud
33831
33832 • Fix token refresh (Sebastian Bünger)
33833
33834 • Add device registration (Oliver Heyme)
33835
33836 • Onedrive
33837
33838 • Implement graceful cancel of multipart uploads if rclone is inter‐
33839 rupted (Cnly)
33840
33841 • Always add trailing colon to path when addressing items, (Cnly)
33842
33843 • Return errors instead of panic for invalid uploads (Fabian Möller)
33844
33845 • S3
33846
33847 • Add support for "Glacier Deep Archive" storage class (Manu)
33848
33849 • Update Dreamhost endpoint (Nick Craig-Wood)
33850
33851 • Note incompatibility with CEPH Jewel (Nick Craig-Wood)
33852
33853 • SFTP
33854
33855 • Allow custom ssh client config (Alexandru Bumbacea)
33856
33857 • Swift
33858
33859 • Obey Retry-After to enable OVH restore from cold storage (Nick
33860 Craig-Wood)
33861
33862 • Work around token expiry on CEPH (Nick Craig-Wood)
33863
33864 • WebDAV
33865
33866 • Allow IsCollection property to be integer or boolean (Nick
33867 Craig-Wood)
33868
33869 • Fix race when creating directories (Nick Craig-Wood)
33870
33871 • Fix About/df when reading the available/total returns 0 (Nick
33872 Craig-Wood)
33873
33874 v1.46 - 2019-02-09
33875 • New backends
33876
33877 • Support Alibaba Cloud (Aliyun) OSS via the s3 backend (Nick
33878 Craig-Wood)
33879
33880 • New commands
33881
33882 • serve dlna: serves a remove via DLNA for the local network (ni‐
33883 colov)
33884
33885 • New Features
33886
33887 • copy, move: Restore deprecated --no-traverse flag (Nick Craig-Wood)
33888
33889 • This is useful for when transferring a small number of files into
33890 a large destination
33891
33892 • genautocomplete: Add remote path completion for bash completion
33893 (Christopher Peterson & Danil Semelenov)
33894
33895 • Buffer memory handling reworked to return memory to the OS better
33896 (Nick Craig-Wood)
33897
33898 • Buffer recycling library to replace sync.Pool
33899
33900 • Optionally use memory mapped memory for better memory shrinking
33901
33902 • Enable with --use-mmap if having memory problems - not default
33903 yet
33904
33905 • Parallelise reading of files specified by --files-from (Nick
33906 Craig-Wood)
33907
33908 • check: Add stats showing total files matched. (Dario Guzik)
33909
33910 • Allow rename/delete open files under Windows (Nick Craig-Wood)
33911
33912 • lsjson: Use exactly the correct number of decimal places in the
33913 seconds (Nick Craig-Wood)
33914
33915 • Add cookie support with cmdline switch --use-cookies for all HTTP
33916 based remotes (qip)
33917
33918 • Warn if --checksum is set but there are no hashes available (Nick
33919 Craig-Wood)
33920
33921 • Rework rate limiting (pacer) to be more accurate and allow bursting
33922 (Nick Craig-Wood)
33923
33924 • Improve error reporting for too many/few arguments in commands
33925 (Nick Craig-Wood)
33926
33927 • listremotes: Remove -l short flag as it conflicts with the new
33928 global flag (weetmuts)
33929
33930 • Make http serving with auth generate INFO messages on auth fail
33931 (Nick Craig-Wood)
33932
33933 • Bug Fixes
33934
33935 • Fix layout of stats (Nick Craig-Wood)
33936
33937 • Fix --progress crash under Windows Jenkins (Nick Craig-Wood)
33938
33939 • Fix transfer of google/onedrive docs by calling Rcat in Copy when
33940 size is -1 (Cnly)
33941
33942 • copyurl: Fix checking of --dry-run (Denis Skovpen)
33943
33944 • Mount
33945
33946 • Check that mountpoint and local directory to mount don't overlap
33947 (Nick Craig-Wood)
33948
33949 • Fix mount size under 32 bit Windows (Nick Craig-Wood)
33950
33951 • VFS
33952
33953 • Implement renaming of directories for backends without DirMove
33954 (Nick Craig-Wood)
33955
33956 • now all backends except b2 support renaming directories
33957
33958 • Implement --vfs-cache-max-size to limit the total size of the cache
33959 (Nick Craig-Wood)
33960
33961 • Add --dir-perms and --file-perms flags to set default permissions
33962 (Nick Craig-Wood)
33963
33964 • Fix deadlock on concurrent operations on a directory (Nick
33965 Craig-Wood)
33966
33967 • Fix deadlock between RWFileHandle.close and File.Remove (Nick
33968 Craig-Wood)
33969
33970 • Fix renaming/deleting open files with cache mode "writes" under
33971 Windows (Nick Craig-Wood)
33972
33973 • Fix panic on rename with --dry-run set (Nick Craig-Wood)
33974
33975 • Fix vfs/refresh with recurse=true needing the --fast-list flag
33976
33977 • Local
33978
33979 • Add support for -l/--links (symbolic link translation) (yair@uni‐
33980 corn)
33981
33982 • this works by showing links as link.rclonelink - see local back‐
33983 end docs for more info
33984
33985 • this errors if used with -L/--copy-links
33986
33987 • Fix renaming/deleting open files on Windows (Nick Craig-Wood)
33988
33989 • Crypt
33990
33991 • Check for maximum length before decrypting filename to fix panic
33992 (Garry McNulty)
33993
33994 • Azure Blob
33995
33996 • Allow building azureblob backend on *BSD (themylogin)
33997
33998 • Use the rclone HTTP client to support --dump headers, --tpslimit,
33999 etc. (Nick Craig-Wood)
34000
34001 • Use the s3 pacer for 0 delay in non error conditions (Nick
34002 Craig-Wood)
34003
34004 • Ignore directory markers (Nick Craig-Wood)
34005
34006 • Stop Mkdir attempting to create existing containers (Nick
34007 Craig-Wood)
34008
34009 • B2
34010
34011 • cleanup: will remove unfinished large files >24hrs old (Garry Mc‐
34012 Nulty)
34013
34014 • For a bucket limited application key check the bucket name (Nick
34015 Craig-Wood)
34016
34017 • before this, rclone would use the authorised bucket regardless of
34018 what you put on the command line
34019
34020 • Added --b2-disable-checksum flag (Wojciech Smigielski)
34021
34022 • this enables large files to be uploaded without a SHA-1 hash for
34023 speed reasons
34024
34025 • Drive
34026
34027 • Set default pacer to 100ms for 10 tps (Nick Craig-Wood)
34028
34029 • This fits the Google defaults much better and reduces the 403 er‐
34030 rors massively
34031
34032 • Add --drive-pacer-min-sleep and --drive-pacer-burst to control
34033 the pacer
34034
34035 • Improve ChangeNotify support for items with multiple parents (Fabi‐
34036 an Möller)
34037
34038 • Fix ListR for items with multiple parents - this fixes oddities
34039 with vfs/refresh (Fabian Möller)
34040
34041 • Fix using --drive-impersonate and appfolders (Nick Craig-Wood)
34042
34043 • Fix google docs in rclone mount for some (not all) applications
34044 (Nick Craig-Wood)
34045
34046 • Dropbox
34047
34048 • Retry-After support for Dropbox backend (Mathieu Carbou)
34049
34050 • FTP
34051
34052 • Wait for 60 seconds for a connection to Close then declare it dead
34053 (Nick Craig-Wood)
34054
34055 • helps with indefinite hangs on some FTP servers
34056
34057 • Google Cloud Storage
34058
34059 • Update google cloud storage endpoints (weetmuts)
34060
34061 • HTTP
34062
34063 • Add an example with username and password which is supported but
34064 wasn't documented (Nick Craig-Wood)
34065
34066 • Fix backend with --files-from and non-existent files (Nick
34067 Craig-Wood)
34068
34069 • Hubic
34070
34071 • Make error message more informative if authentication fails (Nick
34072 Craig-Wood)
34073
34074 • Jottacloud
34075
34076 • Resume and deduplication support (Oliver Heyme)
34077
34078 • Use token auth for all API requests Don't store password anymore
34079 (Sebastian Bünger)
34080
34081 • Add support for 2-factor authentication (Sebastian Bünger)
34082
34083 • Mega
34084
34085 • Implement v2 account login which fixes logins for newer Mega ac‐
34086 counts (Nick Craig-Wood)
34087
34088 • Return error if an unknown length file is attempted to be uploaded
34089 (Nick Craig-Wood)
34090
34091 • Add new error codes for better error reporting (Nick Craig-Wood)
34092
34093 • Onedrive
34094
34095 • Fix broken support for "shared with me" folders (Alex Chen)
34096
34097 • Fix root ID not normalised (Cnly)
34098
34099 • Return err instead of panic on unknown-sized uploads (Cnly)
34100
34101 • Qingstor
34102
34103 • Fix go routine leak on multipart upload errors (Nick Craig-Wood)
34104
34105 • Add upload chunk size/concurrency/cutoff control (Nick Craig-Wood)
34106
34107 • Default --qingstor-upload-concurrency to 1 to work around bug (Nick
34108 Craig-Wood)
34109
34110 • S3
34111
34112 • Implement --s3-upload-cutoff for single part uploads below this
34113 (Nick Craig-Wood)
34114
34115 • Change --s3-upload-concurrency default to 4 to increase performance
34116 (Nick Craig-Wood)
34117
34118 • Add --s3-bucket-acl to control bucket ACL (Nick Craig-Wood)
34119
34120 • Auto detect region for buckets on operation failure (Nick
34121 Craig-Wood)
34122
34123 • Add GLACIER storage class (William Cocker)
34124
34125 • Add Scaleway to s3 documentation (Rémy Léone)
34126
34127 • Add AWS endpoint eu-north-1 (weetmuts)
34128
34129 • SFTP
34130
34131 • Add support for PEM encrypted private keys (Fabian Möller)
34132
34133 • Add option to force the usage of an ssh-agent (Fabian Möller)
34134
34135 • Perform environment variable expansion on key-file (Fabian Möller)
34136
34137 • Fix rmdir on Windows based servers (e.g. CrushFTP) (Nick
34138 Craig-Wood)
34139
34140 • Fix rmdir deleting directory contents on some SFTP servers (Nick
34141 Craig-Wood)
34142
34143 • Fix error on dangling symlinks (Nick Craig-Wood)
34144
34145 • Swift
34146
34147 • Add --swift-no-chunk to disable segmented uploads in rcat/mount
34148 (Nick Craig-Wood)
34149
34150 • Introduce application credential auth support (kayrus)
34151
34152 • Fix memory usage by slimming Object (Nick Craig-Wood)
34153
34154 • Fix extra requests on upload (Nick Craig-Wood)
34155
34156 • Fix reauth on big files (Nick Craig-Wood)
34157
34158 • Union
34159
34160 • Fix poll-interval not working (Nick Craig-Wood)
34161
34162 • WebDAV
34163
34164 • Support About which means rclone mount will show the correct disk
34165 size (Nick Craig-Wood)
34166
34167 • Support MD5 and SHA1 hashes with Owncloud and Nextcloud (Nick
34168 Craig-Wood)
34169
34170 • Fail soft on time parsing errors (Nick Craig-Wood)
34171
34172 • Fix infinite loop on failed directory creation (Nick Craig-Wood)
34173
34174 • Fix identification of directories for Bitrix Site Manager (Nick
34175 Craig-Wood)
34176
34177 • Fix upload of 0 length files on some servers (Nick Craig-Wood)
34178
34179 • Fix if MKCOL fails with 423 Locked assume the directory exists
34180 (Nick Craig-Wood)
34181
34182 v1.45 - 2018-11-24
34183 • New backends
34184
34185 • The Yandex backend was re-written - see below for details (Sebas‐
34186 tian Bünger)
34187
34188 • New commands
34189
34190 • rcd: New command just to serve the remote control API (Nick
34191 Craig-Wood)
34192
34193 • New Features
34194
34195 • The remote control API (rc) was greatly expanded to allow full con‐
34196 trol over rclone (Nick Craig-Wood)
34197
34198 • sensitive operations require authorization or the --rc-no-auth
34199 flag
34200
34201 • config/* operations to configure rclone
34202
34203 • options/* for reading/setting command line flags
34204
34205 • operations/* for all low level operations, e.g. copy file, list
34206 directory
34207
34208 • sync/* for sync, copy and move
34209
34210 • --rc-files flag to serve files on the rc http server
34211
34212 • this is for building web native GUIs for rclone
34213
34214 • Optionally serving objects on the rc http server
34215
34216 • Ensure rclone fails to start up if the --rc port is in use al‐
34217 ready
34218
34219 • See the rc docs (https://rclone.org/rc/) for more info
34220
34221 • sync/copy/move
34222
34223 • Make --files-from only read the objects specified and don't scan
34224 directories (Nick Craig-Wood)
34225
34226 • This is a huge speed improvement for destinations with lots of
34227 files
34228
34229 • filter: Add --ignore-case flag (Nick Craig-Wood)
34230
34231 • ncdu: Add remove function ('d' key) (Henning Surmeier)
34232
34233 • rc command
34234
34235 • Add --json flag for structured JSON input (Nick Craig-Wood)
34236
34237 • Add --user and --pass flags and interpret --rc-user, --rc-pass,
34238 --rc-addr (Nick Craig-Wood)
34239
34240 • build
34241
34242 • Require go1.8 or later for compilation (Nick Craig-Wood)
34243
34244 • Enable softfloat on MIPS arch (Scott Edlund)
34245
34246 • Integration test framework revamped with a better report and bet‐
34247 ter retries (Nick Craig-Wood)
34248
34249 • Bug Fixes
34250
34251 • cmd: Make --progress update the stats correctly at the end (Nick
34252 Craig-Wood)
34253
34254 • config: Create config directory on save if it is missing (Nick
34255 Craig-Wood)
34256
34257 • dedupe: Check for existing filename before renaming a dupe file
34258 (ssaqua)
34259
34260 • move: Don't create directories with --dry-run (Nick Craig-Wood)
34261
34262 • operations: Fix Purge and Rmdirs when dir is not the root (Nick
34263 Craig-Wood)
34264
34265 • serve http/webdav/restic: Ensure rclone exits if the port is in use
34266 (Nick Craig-Wood)
34267
34268 • Mount
34269
34270 • Make --volname work for Windows and macOS (Nick Craig-Wood)
34271
34272 • Azure Blob
34273
34274 • Avoid context deadline exceeded error by setting a large TryTimeout
34275 value (brused27)
34276
34277 • Fix erroneous Rmdir error "directory not empty" (Nick Craig-Wood)
34278
34279 • Wait for up to 60s to create a just deleted container (Nick
34280 Craig-Wood)
34281
34282 • Dropbox
34283
34284 • Add dropbox impersonate support (Jake Coggiano)
34285
34286 • Jottacloud
34287
34288 • Fix bug in --fast-list handing of empty folders (albertony)
34289
34290 • Opendrive
34291
34292 • Fix transfer of files with + and & in (Nick Craig-Wood)
34293
34294 • Fix retries of upload chunks (Nick Craig-Wood)
34295
34296 • S3
34297
34298 • Set ACL for server-side copies to that provided by the user (Nick
34299 Craig-Wood)
34300
34301 • Fix role_arn, credential_source, ... (Erik Swanson)
34302
34303 • Add config info for Wasabi's US-West endpoint (Henry Ptasinski)
34304
34305 • SFTP
34306
34307 • Ensure file hash checking is really disabled (Jon Fautley)
34308
34309 • Swift
34310
34311 • Add pacer for retries to make swift more reliable (Nick Craig-Wood)
34312
34313 • WebDAV
34314
34315 • Add Content-Type to PUT requests (Nick Craig-Wood)
34316
34317 • Fix config parsing so --webdav-user and --webdav-pass flags work
34318 (Nick Craig-Wood)
34319
34320 • Add RFC3339 date format (Ralf Hemberger)
34321
34322 • Yandex
34323
34324 • The yandex backend was re-written (Sebastian Bünger)
34325
34326 • This implements low level retries (Sebastian Bünger)
34327
34328 • Copy, Move, DirMove, PublicLink and About optional interfaces
34329 (Sebastian Bünger)
34330
34331 • Improved general error handling (Sebastian Bünger)
34332
34333 • Removed ListR for now due to inconsistent behaviour (Sebastian
34334 Bünger)
34335
34336 v1.44 - 2018-10-15
34337 • New commands
34338
34339 • serve ftp: Add ftp server (Antoine GIRARD)
34340
34341 • settier: perform storage tier changes on supported remotes
34342 (sandeepkru)
34343
34344 • New Features
34345
34346 • Reworked command line help
34347
34348 • Make default help less verbose (Nick Craig-Wood)
34349
34350 • Split flags up into global and backend flags (Nick Craig-Wood)
34351
34352 • Implement specialised help for flags and backends (Nick
34353 Craig-Wood)
34354
34355 • Show URL of backend help page when starting config (Nick
34356 Craig-Wood)
34357
34358 • stats: Long names now split in center (Joanna Marek)
34359
34360 • Add --log-format flag for more control over log output (dcpu)
34361
34362 • rc: Add support for OPTIONS and basic CORS (frenos)
34363
34364 • stats: show FatalErrors and NoRetryErrors in stats (Cédric Connes)
34365
34366 • Bug Fixes
34367
34368 • Fix -P not ending with a new line (Nick Craig-Wood)
34369
34370 • config: don't create default config dir when user supplies --config
34371 (albertony)
34372
34373 • Don't print non-ASCII characters with --progress on windows (Nick
34374 Craig-Wood)
34375
34376 • Correct logs for excluded items (ssaqua)
34377
34378 • Mount
34379
34380 • Remove EXPERIMENTAL tags (Nick Craig-Wood)
34381
34382 • VFS
34383
34384 • Fix race condition detected by serve ftp tests (Nick Craig-Wood)
34385
34386 • Add vfs/poll-interval rc command (Fabian Möller)
34387
34388 • Enable rename for nearly all remotes using server-side Move or Copy
34389 (Nick Craig-Wood)
34390
34391 • Reduce directory cache cleared by poll-interval (Fabian Möller)
34392
34393 • Remove EXPERIMENTAL tags (Nick Craig-Wood)
34394
34395 • Local
34396
34397 • Skip bad symlinks in dir listing with -L enabled (Cédric Connes)
34398
34399 • Preallocate files on Windows to reduce fragmentation (Nick
34400 Craig-Wood)
34401
34402 • Preallocate files on linux with fallocate(2) (Nick Craig-Wood)
34403
34404 • Cache
34405
34406 • Add cache/fetch rc function (Fabian Möller)
34407
34408 • Fix worker scale down (Fabian Möller)
34409
34410 • Improve performance by not sending info requests for cached chunks
34411 (dcpu)
34412
34413 • Fix error return value of cache/fetch rc method (Fabian Möller)
34414
34415 • Documentation fix for cache-chunk-total-size (Anagh Kumar Baranwal)
34416
34417 • Preserve leading / in wrapped remote path (Fabian Möller)
34418
34419 • Add plex_insecure option to skip certificate validation (Fabian
34420 Möller)
34421
34422 • Remove entries that no longer exist in the source (dcpu)
34423
34424 • Crypt
34425
34426 • Preserve leading / in wrapped remote path (Fabian Möller)
34427
34428 • Alias
34429
34430 • Fix handling of Windows network paths (Nick Craig-Wood)
34431
34432 • Azure Blob
34433
34434 • Add --azureblob-list-chunk parameter (Santiago Rodríguez)
34435
34436 • Implemented settier command support on azureblob remote. (sandeep‐
34437 kru)
34438
34439 • Work around SDK bug which causes errors for chunk-sized files (Nick
34440 Craig-Wood)
34441
34442 • Box
34443
34444 • Implement link sharing. (Sebastian Bünger)
34445
34446 • Drive
34447
34448 • Add --drive-import-formats - google docs can now be imported (Fabi‐
34449 an Möller)
34450
34451 • Rewrite mime type and extension handling (Fabian Möller)
34452
34453 • Add document links (Fabian Möller)
34454
34455 • Add support for multipart document extensions (Fabian Möller)
34456
34457 • Add support for apps-script to json export (Fabian Möller)
34458
34459 • Fix escaped chars in documents during list (Fabian Möller)
34460
34461 • Add --drive-v2-download-min-size a workaround for slow downloads
34462 (Fabian Möller)
34463
34464 • Improve directory notifications in ChangeNotify (Fabian Möller)
34465
34466 • When listing team drives in config, continue on failure (Nick
34467 Craig-Wood)
34468
34469 • FTP
34470
34471 • Add a small pause after failed upload before deleting file (Nick
34472 Craig-Wood)
34473
34474 • Google Cloud Storage
34475
34476 • Fix service_account_file being ignored (Fabian Möller)
34477
34478 • Jottacloud
34479
34480 • Minor improvement in quota info (omit if unlimited) (albertony)
34481
34482 • Add --fast-list support (albertony)
34483
34484 • Add permanent delete support: --jottacloud-hard-delete (albertony)
34485
34486 • Add link sharing support (albertony)
34487
34488 • Fix handling of reserved characters. (Sebastian Bünger)
34489
34490 • Fix socket leak on Object.Remove (Nick Craig-Wood)
34491
34492 • Onedrive
34493
34494 • Rework to support Microsoft Graph (Cnly)
34495
34496 • NB this will require re-authenticating the remote
34497
34498 • Removed upload cutoff and always do session uploads (Oliver Heyme)
34499
34500 • Use single-part upload for empty files (Cnly)
34501
34502 • Fix new fields not saved when editing old config (Alex Chen)
34503
34504 • Fix sometimes special chars in filenames not replaced (Alex Chen)
34505
34506 • Ignore OneNote files by default (Alex Chen)
34507
34508 • Add link sharing support (jackyzy823)
34509
34510 • S3
34511
34512 • Use custom pacer, to retry operations when reasonable (Craig
34513 Miskell)
34514
34515 • Use configured server-side-encryption and storage class options
34516 when calling CopyObject() (Paul Kohout)
34517
34518 • Make --s3-v2-auth flag (Nick Craig-Wood)
34519
34520 • Fix v2 auth on files with spaces (Nick Craig-Wood)
34521
34522 • Union
34523
34524 • Implement union backend which reads from multiple backends (Felix
34525 Brucker)
34526
34527 • Implement optional interfaces (Move, DirMove, Copy, etc.) (Nick
34528 Craig-Wood)
34529
34530 • Fix ChangeNotify to support multiple remotes (Fabian Möller)
34531
34532 • Fix --backup-dir on union backend (Nick Craig-Wood)
34533
34534 • WebDAV
34535
34536 • Add another time format (Nick Craig-Wood)
34537
34538 • Add a small pause after failed upload before deleting file (Nick
34539 Craig-Wood)
34540
34541 • Add workaround for missing mtime (buergi)
34542
34543 • Sharepoint: Renew cookies after 12hrs (Henning Surmeier)
34544
34545 • Yandex
34546
34547 • Remove redundant nil checks (teresy)
34548
34549 v1.43.1 - 2018-09-07
34550 Point release to fix hubic and azureblob backends.
34551
34552 • Bug Fixes
34553
34554 • ncdu: Return error instead of log.Fatal in Show (Fabian Möller)
34555
34556 • cmd: Fix crash with --progress and --stats 0 (Nick Craig-Wood)
34557
34558 • docs: Tidy website display (Anagh Kumar Baranwal)
34559
34560 • Azure Blob:
34561
34562 • Fix multi-part uploads. (sandeepkru)
34563
34564 • Hubic
34565
34566 • Fix uploads (Nick Craig-Wood)
34567
34568 • Retry auth fetching if it fails to make hubic more reliable (Nick
34569 Craig-Wood)
34570
34571 v1.43 - 2018-09-01
34572 • New backends
34573
34574 • Jottacloud (Sebastian Bünger)
34575
34576 • New commands
34577
34578 • copyurl: copies a URL to a remote (Denis)
34579
34580 • New Features
34581
34582 • Reworked config for backends (Nick Craig-Wood)
34583
34584 • All backend config can now be supplied by command line, env var
34585 or config file
34586
34587 • Advanced section in the config wizard for the optional items
34588
34589 • A large step towards rclone backends being usable in other go
34590 software
34591
34592 • Allow on the fly remotes with :backend: syntax
34593
34594 • Stats revamp
34595
34596 • Add --progress/-P flag to show interactive progress (Nick
34597 Craig-Wood)
34598
34599 • Show the total progress of the sync in the stats (Nick
34600 Craig-Wood)
34601
34602 • Add --stats-one-line flag for single line stats (Nick Craig-Wood)
34603
34604 • Added weekday schedule into --bwlimit (Mateusz)
34605
34606 • lsjson: Add option to show the original object IDs (Fabian Möller)
34607
34608 • serve webdav: Make Content-Type without reading the file and add
34609 --etag-hash (Nick Craig-Wood)
34610
34611 • build
34612
34613 • Build macOS with native compiler (Nick Craig-Wood)
34614
34615 • Update to use go1.11 for the build (Nick Craig-Wood)
34616
34617 • rc
34618
34619 • Added core/stats to return the stats (reddi1)
34620
34621 • version --check: Prints the current release and beta versions (Nick
34622 Craig-Wood)
34623
34624 • Bug Fixes
34625
34626 • accounting
34627
34628 • Fix time to completion estimates (Nick Craig-Wood)
34629
34630 • Fix moving average speed for file stats (Nick Craig-Wood)
34631
34632 • config: Fix error reading password from piped input (Nick
34633 Craig-Wood)
34634
34635 • move: Fix --delete-empty-src-dirs flag to delete all empty dirs on
34636 move (ishuah)
34637
34638 • Mount
34639
34640 • Implement --daemon-timeout flag for OSXFUSE (Nick Craig-Wood)
34641
34642 • Fix mount --daemon not working with encrypted config (Alex Chen)
34643
34644 • Clip the number of blocks to 2^32-1 on macOS - fixes borg backup
34645 (Nick Craig-Wood)
34646
34647 • VFS
34648
34649 • Enable vfs-read-chunk-size by default (Fabian Möller)
34650
34651 • Add the vfs/refresh rc command (Fabian Möller)
34652
34653 • Add non recursive mode to vfs/refresh rc command (Fabian Möller)
34654
34655 • Try to seek buffer on read only files (Fabian Möller)
34656
34657 • Local
34658
34659 • Fix crash when deprecated --local-no-unicode-normalization is sup‐
34660 plied (Nick Craig-Wood)
34661
34662 • Fix mkdir error when trying to copy files to the root of a drive on
34663 windows (Nick Craig-Wood)
34664
34665 • Cache
34666
34667 • Fix nil pointer deref when using lsjson on cached directory (Nick
34668 Craig-Wood)
34669
34670 • Fix nil pointer deref for occasional crash on playback (Nick
34671 Craig-Wood)
34672
34673 • Crypt
34674
34675 • Fix accounting when checking hashes on upload (Nick Craig-Wood)
34676
34677 • Amazon Cloud Drive
34678
34679 • Make very clear in the docs that rclone has no ACD keys (Nick
34680 Craig-Wood)
34681
34682 • Azure Blob
34683
34684 • Add connection string and SAS URL auth (Nick Craig-Wood)
34685
34686 • List the container to see if it exists (Nick Craig-Wood)
34687
34688 • Port new Azure Blob Storage SDK (sandeepkru)
34689
34690 • Added blob tier, tier between Hot, Cool and Archive. (sandeepkru)
34691
34692 • Remove leading / from paths (Nick Craig-Wood)
34693
34694 • B2
34695
34696 • Support Application Keys (Nick Craig-Wood)
34697
34698 • Remove leading / from paths (Nick Craig-Wood)
34699
34700 • Box
34701
34702 • Fix upload of > 2GB files on 32 bit platforms (Nick Craig-Wood)
34703
34704 • Make --box-commit-retries flag defaulting to 100 to fix large up‐
34705 loads (Nick Craig-Wood)
34706
34707 • Drive
34708
34709 • Add --drive-keep-revision-forever flag (lewapm)
34710
34711 • Handle gdocs when filtering file names in list (Fabian Möller)
34712
34713 • Support using --fast-list for large speedups (Fabian Möller)
34714
34715 • FTP
34716
34717 • Fix Put mkParentDir failed: 521 for BunnyCDN (Nick Craig-Wood)
34718
34719 • Google Cloud Storage
34720
34721 • Fix index out of range error with --fast-list (Nick Craig-Wood)
34722
34723 • Jottacloud
34724
34725 • Fix MD5 error check (Oliver Heyme)
34726
34727 • Handle empty time values (Martin Polden)
34728
34729 • Calculate missing MD5s (Oliver Heyme)
34730
34731 • Docs, fixes and tests for MD5 calculation (Nick Craig-Wood)
34732
34733 • Add optional MimeTyper interface. (Sebastian Bünger)
34734
34735 • Implement optional About interface (for df support). (Sebastian
34736 Bünger)
34737
34738 • Mega
34739
34740 • Wait for events instead of arbitrary sleeping (Nick Craig-Wood)
34741
34742 • Add --mega-hard-delete flag (Nick Craig-Wood)
34743
34744 • Fix failed logins with upper case chars in email (Nick Craig-Wood)
34745
34746 • Onedrive
34747
34748 • Shared folder support (Yoni Jah)
34749
34750 • Implement DirMove (Cnly)
34751
34752 • Fix rmdir sometimes deleting directories with contents (Nick
34753 Craig-Wood)
34754
34755 • Pcloud
34756
34757 • Delete half uploaded files on upload error (Nick Craig-Wood)
34758
34759 • Qingstor
34760
34761 • Remove leading / from paths (Nick Craig-Wood)
34762
34763 • S3
34764
34765 • Fix index out of range error with --fast-list (Nick Craig-Wood)
34766
34767 • Add --s3-force-path-style (Nick Craig-Wood)
34768
34769 • Add support for KMS Key ID (bsteiss)
34770
34771 • Remove leading / from paths (Nick Craig-Wood)
34772
34773 • Swift
34774
34775 • Add storage_policy (Ruben Vandamme)
34776
34777 • Make it so just storage_url or auth_token can be overridden (Nick
34778 Craig-Wood)
34779
34780 • Fix server-side copy bug for unusual file names (Nick Craig-Wood)
34781
34782 • Remove leading / from paths (Nick Craig-Wood)
34783
34784 • WebDAV
34785
34786 • Ensure we call MKCOL with a URL with a trailing / for QNAP interop
34787 (Nick Craig-Wood)
34788
34789 • If root ends with / then don't check if it is a file (Nick
34790 Craig-Wood)
34791
34792 • Don't accept redirects when reading metadata (Nick Craig-Wood)
34793
34794 • Add bearer token (Macaroon) support for dCache (Nick Craig-Wood)
34795
34796 • Document dCache and Macaroons (Onno Zweers)
34797
34798 • Sharepoint recursion with different depth (Henning)
34799
34800 • Attempt to remove failed uploads (Nick Craig-Wood)
34801
34802 • Yandex
34803
34804 • Fix listing/deleting files in the root (Nick Craig-Wood)
34805
34806 v1.42 - 2018-06-16
34807 • New backends
34808
34809 • OpenDrive (Oliver Heyme, Jakub Karlicek, ncw)
34810
34811 • New commands
34812
34813 • deletefile command (Filip Bartodziej)
34814
34815 • New Features
34816
34817 • copy, move: Copy single files directly, don't use --files-from
34818 work-around
34819
34820 • this makes them much more efficient
34821
34822 • Implement --max-transfer flag to quit transferring at a limit
34823
34824 • make exit code 8 for --max-transfer exceeded
34825
34826 • copy: copy empty source directories to destination (Ishuah Kariuki)
34827
34828 • check: Add --one-way flag (Kasper Byrdal Nielsen)
34829
34830 • Add siginfo handler for macOS for ctrl-T stats (kubatasiemski)
34831
34832 • rc
34833
34834 • add core/gc to run a garbage collection on demand
34835
34836 • enable go profiling by default on the --rc port
34837
34838 • return error from remote on failure
34839
34840 • lsf
34841
34842 • Add --absolute flag to add a leading / onto path names
34843
34844 • Add --csv flag for compliant CSV output
34845
34846 • Add 'm' format specifier to show the MimeType
34847
34848 • Implement 'i' format for showing object ID
34849
34850 • lsjson
34851
34852 • Add MimeType to the output
34853
34854 • Add ID field to output to show Object ID
34855
34856 • Add --retries-sleep flag (Benjamin Joseph Dag)
34857
34858 • Oauth tidy up web page and error handling (Henning Surmeier)
34859
34860 • Bug Fixes
34861
34862 • Password prompt output with --log-file fixed for unix (Filip Bar‐
34863 todziej)
34864
34865 • Calculate ModifyWindow each time on the fly to fix various problems
34866 (Stefan Breunig)
34867
34868 • Mount
34869
34870 • Only print "File.rename error" if there actually is an error (Ste‐
34871 fan Breunig)
34872
34873 • Delay rename if file has open writers instead of failing outright
34874 (Stefan Breunig)
34875
34876 • Ensure atexit gets run on interrupt
34877
34878 • macOS enhancements
34879
34880 • Make --noappledouble --noapplexattr
34881
34882 • Add --volname flag and remove special chars from it
34883
34884 • Make Get/List/Set/Remove xattr return ENOSYS for efficiency
34885
34886 • Make --daemon work for macOS without CGO
34887
34888 • VFS
34889
34890 • Add --vfs-read-chunk-size and --vfs-read-chunk-size-limit (Fabian
34891 Möller)
34892
34893 • Fix ChangeNotify for new or changed folders (Fabian Möller)
34894
34895 • Local
34896
34897 • Fix symlink/junction point directory handling under Windows
34898
34899 • NB you will need to add -L to your command line to copy files
34900 with reparse points
34901
34902 • Cache
34903
34904 • Add non cached dirs on notifications (Remus Bunduc)
34905
34906 • Allow root to be expired from rc (Remus Bunduc)
34907
34908 • Clean remaining empty folders from temp upload path (Remus Bunduc)
34909
34910 • Cache lists using batch writes (Remus Bunduc)
34911
34912 • Use secure websockets for HTTPS Plex addresses (John Clayton)
34913
34914 • Reconnect plex websocket on failures (Remus Bunduc)
34915
34916 • Fix panic when running without plex configs (Remus Bunduc)
34917
34918 • Fix root folder caching (Remus Bunduc)
34919
34920 • Crypt
34921
34922 • Check the crypted hash of files when uploading for extra data secu‐
34923 rity
34924
34925 • Dropbox
34926
34927 • Make Dropbox for business folders accessible using an initial / in
34928 the path
34929
34930 • Google Cloud Storage
34931
34932 • Low level retry all operations if necessary
34933
34934 • Google Drive
34935
34936 • Add --drive-acknowledge-abuse to download flagged files
34937
34938 • Add --drive-alternate-export to fix large doc export
34939
34940 • Don't attempt to choose Team Drives when using rclone config create
34941
34942 • Fix change list polling with team drives
34943
34944 • Fix ChangeNotify for folders (Fabian Möller)
34945
34946 • Fix about (and df on a mount) for team drives
34947
34948 • Onedrive
34949
34950 • Errorhandler for onedrive for business requests (Henning Surmeier)
34951
34952 • S3
34953
34954 • Adjust upload concurrency with --s3-upload-concurrency (themylogin)
34955
34956 • Fix --s3-chunk-size which was always using the minimum
34957
34958 • SFTP
34959
34960 • Add --ssh-path-override flag (Piotr Oleszczyk)
34961
34962 • Fix slow downloads for long latency connections
34963
34964 • Webdav
34965
34966 • Add workarounds for biz.mail.ru
34967
34968 • Ignore Reason-Phrase in status line to fix 4shared (Rodrigo)
34969
34970 • Better error message generation
34971
34972 v1.41 - 2018-04-28
34973 • New backends
34974
34975 • Mega support added
34976
34977 • Webdav now supports SharePoint cookie authentication (hensur)
34978
34979 • New commands
34980
34981 • link: create public link to files and folders (Stefan Breunig)
34982
34983 • about: gets quota info from a remote (a-roussos, ncw)
34984
34985 • hashsum: a generic tool for any hash to produce md5sum like output
34986
34987 • New Features
34988
34989 • lsd: Add -R flag and fix and update docs for all ls commands
34990
34991 • ncdu: added a "refresh" key - CTRL-L (Keith Goldfarb)
34992
34993 • serve restic: Add append-only mode (Steve Kriss)
34994
34995 • serve restic: Disallow overwriting files in append-only mode (Alex‐
34996 ander Neumann)
34997
34998 • serve restic: Print actual listener address (Matt Holt)
34999
35000 • size: Add --json flag (Matthew Holt)
35001
35002 • sync: implement --ignore-errors (Mateusz Pabian)
35003
35004 • dedupe: Add dedupe largest functionality (Richard Yang)
35005
35006 • fs: Extend SizeSuffix to include TB and PB for rclone about
35007
35008 • fs: add --dump goroutines and --dump openfiles for debugging
35009
35010 • rc: implement core/memstats to print internal memory usage info
35011
35012 • rc: new call rc/pid (Michael P. Dubner)
35013
35014 • Compile
35015
35016 • Drop support for go1.6
35017
35018 • Release
35019
35020 • Fix make tarball (Chih-Hsuan Yen)
35021
35022 • Bug Fixes
35023
35024 • filter: fix --min-age and --max-age together check
35025
35026 • fs: limit MaxIdleConns and MaxIdleConnsPerHost in transport
35027
35028 • lsd,lsf: make sure all times we output are in local time
35029
35030 • rc: fix setting bwlimit to unlimited
35031
35032 • rc: take note of the --rc-addr flag too as per the docs
35033
35034 • Mount
35035
35036 • Use About to return the correct disk total/used/free (e.g. in df)
35037
35038 • Set --attr-timeout default to 1s - fixes:
35039
35040 • rclone using too much memory
35041
35042 • rclone not serving files to samba
35043
35044 • excessive time listing directories
35045
35046 • Fix df -i (upstream fix)
35047
35048 • VFS
35049
35050 • Filter files . and .. from directory listing
35051
35052 • Only make the VFS cache if --vfs-cache-mode > Off
35053
35054 • Local
35055
35056 • Add --local-no-check-updated to disable updated file checks
35057
35058 • Retry remove on Windows sharing violation error
35059
35060 • Cache
35061
35062 • Flush the memory cache after close
35063
35064 • Purge file data on notification
35065
35066 • Always forget parent dir for notifications
35067
35068 • Integrate with Plex websocket
35069
35070 • Add rc cache/stats (seuffert)
35071
35072 • Add info log on notification
35073
35074 • Box
35075
35076 • Fix failure reading large directories - parse file/directory size
35077 as float
35078
35079 • Dropbox
35080
35081 • Fix crypt+obfuscate on dropbox
35082
35083 • Fix repeatedly uploading the same files
35084
35085 • FTP
35086
35087 • Work around strange response from box FTP server
35088
35089 • More workarounds for FTP servers to fix mkParentDir error
35090
35091 • Fix no error on listing non-existent directory
35092
35093 • Google Cloud Storage
35094
35095 • Add service_account_credentials (Matt Holt)
35096
35097 • Detect bucket presence by listing it - minimises permissions needed
35098
35099 • Ignore zero length directory markers
35100
35101 • Google Drive
35102
35103 • Add service_account_credentials (Matt Holt)
35104
35105 • Fix directory move leaving a hardlinked directory behind
35106
35107 • Return proper google errors when Opening files
35108
35109 • When initialized with a filepath, optional features used incorrect
35110 root path (Stefan Breunig)
35111
35112 • HTTP
35113
35114 • Fix sync for servers which don't return Content-Length in HEAD
35115
35116 • Onedrive
35117
35118 • Add QuickXorHash support for OneDrive for business
35119
35120 • Fix socket leak in multipart session upload
35121
35122 • S3
35123
35124 • Look in S3 named profile files for credentials
35125
35126 • Add --s3-disable-checksum to disable checksum uploading (Chris Re‐
35127 dekop)
35128
35129 • Hierarchical configuration support (Giri Badanahatti)
35130
35131 • Add in config for all the supported S3 providers
35132
35133 • Add One Zone Infrequent Access storage class (Craig Rachel)
35134
35135 • Add --use-server-modtime support (Peter Baumgartner)
35136
35137 • Add --s3-chunk-size option to control multipart uploads
35138
35139 • Ignore zero length directory markers
35140
35141 • SFTP
35142
35143 • Update docs to match code, fix typos and clarify disable_hashcheck
35144 prompt (Michael G. Noll)
35145
35146 • Update docs with Synology quirks
35147
35148 • Fail soft with a debug on hash failure
35149
35150 • Swift
35151
35152 • Add --use-server-modtime support (Peter Baumgartner)
35153
35154 • Webdav
35155
35156 • Support SharePoint cookie authentication (hensur)
35157
35158 • Strip leading and trailing / off root
35159
35160 v1.40 - 2018-03-19
35161 • New backends
35162
35163 • Alias backend to create aliases for existing remote names (Fabian
35164 Möller)
35165
35166 • New commands
35167
35168 • lsf: list for parsing purposes (Jakub Tasiemski)
35169
35170 • by default this is a simple non recursive list of files and di‐
35171 rectories
35172
35173 • it can be configured to add more info in an easy to parse way
35174
35175 • serve restic: for serving a remote as a Restic REST endpoint
35176
35177 • This enables restic to use any backends that rclone can access
35178
35179 • Thanks Alexander Neumann for help, patches and review
35180
35181 • rc: enable the remote control of a running rclone
35182
35183 • The running rclone must be started with --rc and related flags.
35184
35185 • Currently there is support for bwlimit, and flushing for mount
35186 and cache.
35187
35188 • New Features
35189
35190 • --max-delete flag to add a delete threshold (Bjørn Erik Pedersen)
35191
35192 • All backends now support RangeOption for ranged Open
35193
35194 • cat: Use RangeOption for limited fetches to make more efficient
35195
35196 • cryptcheck: make reading of nonce more efficient with RangeOption
35197
35198 • serve http/webdav/restic
35199
35200 • support SSL/TLS
35201
35202 • add --user --pass and --htpasswd for authentication
35203
35204 • copy/move: detect file size change during copy/move and abort
35205 transfer (ishuah)
35206
35207 • cryptdecode: added option to return encrypted file names. (ishuah)
35208
35209 • lsjson: add --encrypted to show encrypted name (Jakub Tasiemski)
35210
35211 • Add --stats-file-name-length to specify the printed file name
35212 length for stats (Will Gunn)
35213
35214 • Compile
35215
35216 • Code base was shuffled and factored
35217
35218 • backends moved into a backend directory
35219
35220 • large packages split up
35221
35222 • See the CONTRIBUTING.md doc for info as to what lives where now
35223
35224 • Update to using go1.10 as the default go version
35225
35226 • Implement daily full integration tests (https://pub.rclone.org/in‐
35227 tegration-tests/)
35228
35229 • Release
35230
35231 • Include a source tarball and sign it and the binaries
35232
35233 • Sign the git tags as part of the release process
35234
35235 • Add .deb and .rpm packages as part of the build
35236
35237 • Make a beta release for all branches on the main repo (but not pull
35238 requests)
35239
35240 • Bug Fixes
35241
35242 • config: fixes errors on non existing config by loading config file
35243 only on first access
35244
35245 • config: retry saving the config after failure (Mateusz)
35246
35247 • sync: when using --backup-dir don't delete files if we can't set
35248 their modtime
35249
35250 • this fixes odd behaviour with Dropbox and --backup-dir
35251
35252 • fshttp: fix idle timeouts for HTTP connections
35253
35254 • serve http: fix serving files with : in - fixes
35255
35256 • Fix --exclude-if-present to ignore directories which it doesn't
35257 have permission for (Iakov Davydov)
35258
35259 • Make accounting work properly with crypt and b2
35260
35261 • remove --no-traverse flag because it is obsolete
35262
35263 • Mount
35264
35265 • Add --attr-timeout flag to control attribute caching in kernel
35266
35267 • this now defaults to 0 which is correct but less efficient
35268
35269 • see the mount docs (https://rclone.org/commands/rclone_mount/#at‐
35270 tribute-caching) for more info
35271
35272 • Add --daemon flag to allow mount to run in the background (ishuah)
35273
35274 • Fix: Return ENOSYS rather than EIO on attempted link
35275
35276 • This fixes FileZilla accessing an rclone mount served over sftp.
35277
35278 • Fix setting modtime twice
35279
35280 • Mount tests now run on CI for Linux (mount & cmount)/Mac/Windows
35281
35282 • Many bugs fixed in the VFS layer - see below
35283
35284 • VFS
35285
35286 • Many fixes for --vfs-cache-mode writes and above
35287
35288 • Update cached copy if we know it has changed (fixes stale data)
35289
35290 • Clean path names before using them in the cache
35291
35292 • Disable cache cleaner if --vfs-cache-poll-interval=0
35293
35294 • Fill and clean the cache immediately on startup
35295
35296 • Fix Windows opening every file when it stats the file
35297
35298 • Fix applying modtime for an open Write Handle
35299
35300 • Fix creation of files when truncating
35301
35302 • Write 0 bytes when flushing unwritten handles to avoid race condi‐
35303 tions in FUSE
35304
35305 • Downgrade "poll-interval is not supported" message to Info
35306
35307 • Make OpenFile and friends return EINVAL if O_RDONLY and O_TRUNC
35308
35309 • Local
35310
35311 • Downgrade "invalid cross-device link: trying copy" to debug
35312
35313 • Make DirMove return fs.ErrorCantDirMove to allow fallback to Copy
35314 for cross device
35315
35316 • Fix race conditions updating the hashes
35317
35318 • Cache
35319
35320 • Add support for polling - cache will update when remote changes on
35321 supported backends
35322
35323 • Reduce log level for Plex api
35324
35325 • Fix dir cache issue
35326
35327 • Implement --cache-db-wait-time flag
35328
35329 • Improve efficiency with RangeOption and RangeSeek
35330
35331 • Fix dirmove with temp fs enabled
35332
35333 • Notify vfs when using temp fs
35334
35335 • Offline uploading
35336
35337 • Remote control support for path flushing
35338
35339 • Amazon cloud drive
35340
35341 • Rclone no longer has any working keys - disable integration tests
35342
35343 • Implement DirChangeNotify to notify cache/vfs/mount of changes
35344
35345 • Azureblob
35346
35347 • Don't check for bucket/container presence if listing was OK
35348
35349 • this makes rclone do one less request per invocation
35350
35351 • Improve accounting for chunked uploads
35352
35353 • Backblaze B2
35354
35355 • Don't check for bucket/container presence if listing was OK
35356
35357 • this makes rclone do one less request per invocation
35358
35359 • Box
35360
35361 • Improve accounting for chunked uploads
35362
35363 • Dropbox
35364
35365 • Fix custom oauth client parameters
35366
35367 • Google Cloud Storage
35368
35369 • Don't check for bucket/container presence if listing was OK
35370
35371 • this makes rclone do one less request per invocation
35372
35373 • Google Drive
35374
35375 • Migrate to api v3 (Fabian Möller)
35376
35377 • Add scope configuration and root folder selection
35378
35379 • Add --drive-impersonate for service accounts
35380
35381 • thanks to everyone who tested, explored and contributed docs
35382
35383 • Add --drive-use-created-date to use created date as modified date
35384 (nbuchanan)
35385
35386 • Request the export formats only when required
35387
35388 • This makes rclone quicker when there are no google docs
35389
35390 • Fix finding paths with latin1 chars (a workaround for a drive bug)
35391
35392 • Fix copying of a single Google doc file
35393
35394 • Fix --drive-auth-owner-only to look in all directories
35395
35396 • HTTP
35397
35398 • Fix handling of directories with & in
35399
35400 • Onedrive
35401
35402 • Removed upload cutoff and always do session uploads
35403
35404 • this stops the creation of multiple versions on business onedrive
35405
35406 • Overwrite object size value with real size when reading file.
35407 (Victor)
35408
35409 • this fixes oddities when onedrive misreports the size of images
35410
35411 • Pcloud
35412
35413 • Remove unused chunked upload flag and code
35414
35415 • Qingstor
35416
35417 • Don't check for bucket/container presence if listing was OK
35418
35419 • this makes rclone do one less request per invocation
35420
35421 • S3
35422
35423 • Support hashes for multipart files (Chris Redekop)
35424
35425 • Initial support for IBM COS (S3) (Giri Badanahatti)
35426
35427 • Update docs to discourage use of v2 auth with CEPH and others
35428
35429 • Don't check for bucket/container presence if listing was OK
35430
35431 • this makes rclone do one less request per invocation
35432
35433 • Fix server-side copy and set modtime on files with + in
35434
35435 • SFTP
35436
35437 • Add option to disable remote hash check command execution (Jon
35438 Fautley)
35439
35440 • Add --sftp-ask-password flag to prompt for password when needed
35441 (Leo R. Lundgren)
35442
35443 • Add set_modtime configuration option
35444
35445 • Fix following of symlinks
35446
35447 • Fix reading config file outside of Fs setup
35448
35449 • Fix reading $USER in username fallback not $HOME
35450
35451 • Fix running under crontab - Use correct OS way of reading username
35452
35453 • Swift
35454
35455 • Fix refresh of authentication token
35456
35457 • in v1.39 a bug was introduced which ignored new tokens - this
35458 fixes it
35459
35460 • Fix extra HEAD transaction when uploading a new file
35461
35462 • Don't check for bucket/container presence if listing was OK
35463
35464 • this makes rclone do one less request per invocation
35465
35466 • Webdav
35467
35468 • Add new time formats to support mydrive.ch and others
35469
35470 v1.39 - 2017-12-23
35471 • New backends
35472
35473 • WebDAV
35474
35475 • tested with nextcloud, owncloud, put.io and others!
35476
35477 • Pcloud
35478
35479 • cache - wraps a cache around other backends (Remus Bunduc)
35480
35481 • useful in combination with mount
35482
35483 • NB this feature is in beta so use with care
35484
35485 • New commands
35486
35487 • serve command with subcommands:
35488
35489 • serve webdav: this implements a webdav server for any rclone re‐
35490 mote.
35491
35492 • serve http: command to serve a remote over HTTP
35493
35494 • config: add sub commands for full config file management
35495
35496 • create/delete/dump/edit/file/password/providers/show/update
35497
35498 • touch: to create or update the timestamp of a file (Jakub Tasiems‐
35499 ki)
35500
35501 • New Features
35502
35503 • curl install for rclone (Filip Bartodziej)
35504
35505 • --stats now shows percentage, size, rate and ETA in condensed form
35506 (Ishuah Kariuki)
35507
35508 • --exclude-if-present to exclude a directory if a file is present
35509 (Iakov Davydov)
35510
35511 • rmdirs: add --leave-root flag (lewapm)
35512
35513 • move: add --delete-empty-src-dirs flag to remove dirs after move
35514 (Ishuah Kariuki)
35515
35516 • Add --dump flag, introduce --dump requests, responses and remove
35517 --dump-auth, --dump-filters
35518
35519 • Obscure X-Auth-Token: from headers when dumping too
35520
35521 • Document and implement exit codes for different failure modes
35522 (Ishuah Kariuki)
35523
35524 • Compile
35525
35526 • Bug Fixes
35527
35528 • Retry lots more different types of errors to make multipart trans‐
35529 fers more reliable
35530
35531 • Save the config before asking for a token, fixes disappearing oauth
35532 config
35533
35534 • Warn the user if --include and --exclude are used together (Ernest
35535 Borowski)
35536
35537 • Fix duplicate files (e.g. on Google drive) causing spurious copies
35538
35539 • Allow trailing and leading whitespace for passwords (Jason Rose)
35540
35541 • ncdu: fix crashes on empty directories
35542
35543 • rcat: fix goroutine leak
35544
35545 • moveto/copyto: Fix to allow copying to the same name
35546
35547 • Mount
35548
35549 • --vfs-cache mode to make writes into mounts more reliable.
35550
35551 • this requires caching files on the disk (see --cache-dir)
35552
35553 • As this is a new feature, use with care
35554
35555 • Use sdnotify to signal systemd the mount is ready (Fabian Möller)
35556
35557 • Check if directory is not empty before mounting (Ernest Borowski)
35558
35559 • Local
35560
35561 • Add error message for cross file system moves
35562
35563 • Fix equality check for times
35564
35565 • Dropbox
35566
35567 • Rework multipart upload
35568
35569 • buffer the chunks when uploading large files so they can be re‐
35570 tried
35571
35572 • change default chunk size to 48MB now we are buffering them in
35573 memory
35574
35575 • retry every error after the first chunk is done successfully
35576
35577 • Fix error when renaming directories
35578
35579 • Swift
35580
35581 • Fix crash on bad authentication
35582
35583 • Google Drive
35584
35585 • Add service account support (Tim Cooijmans)
35586
35587 • S3
35588
35589 • Make it work properly with Digital Ocean Spaces (Andrew
35590 Starr-Bochicchio)
35591
35592 • Fix crash if a bad listing is received
35593
35594 • Add support for ECS task IAM roles (David Minor)
35595
35596 • Backblaze B2
35597
35598 • Fix multipart upload retries
35599
35600 • Fix --hard-delete to make it work 100% of the time
35601
35602 • Swift
35603
35604 • Allow authentication with storage URL and auth key (Giovanni Pizzi)
35605
35606 • Add new fields for swift configuration to support IBM Bluemix Swift
35607 (Pierre Carlson)
35608
35609 • Add OS_TENANT_ID and OS_USER_ID to config
35610
35611 • Allow configs with user id instead of user name
35612
35613 • Check if swift segments container exists before creating (John
35614 Leach)
35615
35616 • Fix memory leak in swift transfers (upstream fix)
35617
35618 • SFTP
35619
35620 • Add option to enable the use of aes128-cbc cipher (Jon Fautley)
35621
35622 • Amazon cloud drive
35623
35624 • Fix download of large files failing with "Only one auth mechanism
35625 allowed"
35626
35627 • crypt
35628
35629 • Option to encrypt directory names or leave them intact
35630
35631 • Implement DirChangeNotify (Fabian Möller)
35632
35633 • onedrive
35634
35635 • Add option to choose resourceURL during setup of OneDrive Business
35636 account if more than one is available for user
35637
35638 v1.38 - 2017-09-30
35639 • New backends
35640
35641 • Azure Blob Storage (thanks Andrei Dragomir)
35642
35643 • Box
35644
35645 • Onedrive for Business (thanks Oliver Heyme)
35646
35647 • QingStor from QingCloud (thanks wuyu)
35648
35649 • New commands
35650
35651 • rcat - read from standard input and stream upload
35652
35653 • tree - shows a nicely formatted recursive listing
35654
35655 • cryptdecode - decode crypted file names (thanks ishuah)
35656
35657 • config show - print the config file
35658
35659 • config file - print the config file location
35660
35661 • New Features
35662
35663 • Empty directories are deleted on sync
35664
35665 • dedupe - implement merging of duplicate directories
35666
35667 • check and cryptcheck made more consistent and use less memory
35668
35669 • cleanup for remaining remotes (thanks ishuah)
35670
35671 • --immutable for ensuring that files don't change (thanks Jacob Mc‐
35672 Namee)
35673
35674 • --user-agent option (thanks Alex McGrath Kraak)
35675
35676 • --disable flag to disable optional features
35677
35678 • --bind flag for choosing the local addr on outgoing connections
35679
35680 • Support for zsh auto-completion (thanks bpicode)
35681
35682 • Stop normalizing file names but do a normalized compare in sync
35683
35684 • Compile
35685
35686 • Update to using go1.9 as the default go version
35687
35688 • Remove snapd build due to maintenance problems
35689
35690 • Bug Fixes
35691
35692 • Improve retriable error detection which makes multipart uploads
35693 better
35694
35695 • Make check obey --ignore-size
35696
35697 • Fix bwlimit toggle in conjunction with schedules (thanks cbruegg)
35698
35699 • config ensures newly written config is on the same mount
35700
35701 • Local
35702
35703 • Revert to copy when moving file across file system boundaries
35704
35705 • --skip-links to suppress symlink warnings (thanks Zhiming Wang)
35706
35707 • Mount
35708
35709 • Re-use rcat internals to support uploads from all remotes
35710
35711 • Dropbox
35712
35713 • Fix "entry doesn't belong in directory" error
35714
35715 • Stop using deprecated API methods
35716
35717 • Swift
35718
35719 • Fix server-side copy to empty container with --fast-list
35720
35721 • Google Drive
35722
35723 • Change the default for --drive-use-trash to true
35724
35725 • S3
35726
35727 • Set session token when using STS (thanks Girish Ramakrishnan)
35728
35729 • Glacier docs and error messages (thanks Jan Varho)
35730
35731 • Read 1000 (not 1024) items in dir listings to fix Wasabi
35732
35733 • Backblaze B2
35734
35735 • Fix SHA1 mismatch when downloading files with no SHA1
35736
35737 • Calculate missing hashes on the fly instead of spooling
35738
35739 • --b2-hard-delete to permanently delete (not hide) files (thanks
35740 John Papandriopoulos)
35741
35742 • Hubic
35743
35744 • Fix creating containers - no longer have to use the default con‐
35745 tainer
35746
35747 • Swift
35748
35749 • Optionally configure from a standard set of OpenStack environment
35750 vars
35751
35752 • Add endpoint_type config
35753
35754 • Google Cloud Storage
35755
35756 • Fix bucket creation to work with limited permission users
35757
35758 • SFTP
35759
35760 • Implement connection pooling for multiple ssh connections
35761
35762 • Limit new connections per second
35763
35764 • Add support for MD5 and SHA1 hashes where available (thanks Chris‐
35765 tian Brüggemann)
35766
35767 • HTTP
35768
35769 • Fix URL encoding issues
35770
35771 • Fix directories with : in
35772
35773 • Fix panic with URL encoded content
35774
35775 v1.37 - 2017-07-22
35776 • New backends
35777
35778 • FTP - thanks to Antonio Messina
35779
35780 • HTTP - thanks to Vasiliy Tolstov
35781
35782 • New commands
35783
35784 • rclone ncdu - for exploring a remote with a text based user inter‐
35785 face.
35786
35787 • rclone lsjson - for listing with a machine readable output
35788
35789 • rclone dbhashsum - to show Dropbox style hashes of files (local or
35790 Dropbox)
35791
35792 • New Features
35793
35794 • Implement --fast-list flag
35795
35796 • This allows remotes to list recursively if they can
35797
35798 • This uses less transactions (important if you pay for them)
35799
35800 • This may or may not be quicker
35801
35802 • This will use more memory as it has to hold the listing in memory
35803
35804 • --old-sync-method deprecated - the remaining uses are covered by
35805 --fast-list
35806
35807 • This involved a major re-write of all the listing code
35808
35809 • Add --tpslimit and --tpslimit-burst to limit transactions per sec‐
35810 ond
35811
35812 • this is useful in conjunction with rclone mount to limit external
35813 apps
35814
35815 • Add --stats-log-level so can see --stats without -v
35816
35817 • Print password prompts to stderr - Hraban Luyat
35818
35819 • Warn about duplicate files when syncing
35820
35821 • Oauth improvements
35822
35823 • allow auth_url and token_url to be set in the config file
35824
35825 • Print redirection URI if using own credentials.
35826
35827 • Don't Mkdir at the start of sync to save transactions
35828
35829 • Compile
35830
35831 • Update build to go1.8.3
35832
35833 • Require go1.6 for building rclone
35834
35835 • Compile 386 builds with "GO386=387" for maximum compatibility
35836
35837 • Bug Fixes
35838
35839 • Fix menu selection when no remotes
35840
35841 • Config saving reworked to not kill the file if disk gets full
35842
35843 • Don't delete remote if name does not change while renaming
35844
35845 • moveto, copyto: report transfers and checks as per move and copy
35846
35847 • Local
35848
35849 • Add --local-no-unicode-normalization flag - Bob Potter
35850
35851 • Mount
35852
35853 • Now supported on Windows using cgofuse and WinFsp - thanks to Bill
35854 Zissimopoulos for much help
35855
35856 • Compare checksums on upload/download via FUSE
35857
35858 • Unmount when program ends with SIGINT (Ctrl+C) or SIGTERM - Jérôme
35859 Vizcaino
35860
35861 • On read only open of file, make open pending until first read
35862
35863 • Make --read-only reject modify operations
35864
35865 • Implement ModTime via FUSE for remotes that support it
35866
35867 • Allow modTime to be changed even before all writers are closed
35868
35869 • Fix panic on renames
35870
35871 • Fix hang on errored upload
35872
35873 • Crypt
35874
35875 • Report the name:root as specified by the user
35876
35877 • Add an "obfuscate" option for filename encryption - Stephen Harris
35878
35879 • Amazon Drive
35880
35881 • Fix initialization order for token renewer
35882
35883 • Remove revoked credentials, allow oauth proxy config and update
35884 docs
35885
35886 • B2
35887
35888 • Reduce minimum chunk size to 5MB
35889
35890 • Drive
35891
35892 • Add team drive support
35893
35894 • Reduce bandwidth by adding fields for partial responses - Martin
35895 Kristensen
35896
35897 • Implement --drive-shared-with-me flag to view shared with me files
35898 - Danny Tsai
35899
35900 • Add --drive-trashed-only to read only the files in the trash
35901
35902 • Remove obsolete --drive-full-list
35903
35904 • Add missing seek to start on retries of chunked uploads
35905
35906 • Fix stats accounting for upload
35907
35908 • Convert / in names to a unicode equivalent (/)
35909
35910 • Poll for Google Drive changes when mounted
35911
35912 • OneDrive
35913
35914 • Fix the uploading of files with spaces
35915
35916 • Fix initialization order for token renewer
35917
35918 • Display speeds accurately when uploading - Yoni Jah
35919
35920 • Swap to using http://localhost:53682/ as redirect URL - Michael
35921 Ledin
35922
35923 • Retry on token expired error, reset upload body on retry - Yoni Jah
35924
35925 • Google Cloud Storage
35926
35927 • Add ability to specify location and storage class via config and
35928 command line - thanks gdm85
35929
35930 • Create container if necessary on server-side copy
35931
35932 • Increase directory listing chunk to 1000 to increase performance
35933
35934 • Obtain a refresh token for GCS - Steven Lu
35935
35936 • Yandex
35937
35938 • Fix the name reported in log messages (was empty)
35939
35940 • Correct error return for listing empty directory
35941
35942 • Dropbox
35943
35944 • Rewritten to use the v2 API
35945
35946 • Now supports ModTime
35947
35948 • Can only set by uploading the file again
35949
35950 • If you uploaded with an old rclone, rclone may upload every‐
35951 thing again
35952
35953 • Use --size-only or --checksum to avoid this
35954
35955 • Now supports the Dropbox content hashing scheme
35956
35957 • Now supports low level retries
35958
35959 • S3
35960
35961 • Work around eventual consistency in bucket creation
35962
35963 • Create container if necessary on server-side copy
35964
35965 • Add us-east-2 (Ohio) and eu-west-2 (London) S3 regions - Zahiar
35966 Ahmed
35967
35968 • Swift, Hubic
35969
35970 • Fix zero length directory markers showing in the subdirectory list‐
35971 ing
35972
35973 • this caused lots of duplicate transfers
35974
35975 • Fix paged directory listings
35976
35977 • this caused duplicate directory errors
35978
35979 • Create container if necessary on server-side copy
35980
35981 • Increase directory listing chunk to 1000 to increase performance
35982
35983 • Make sensible error if the user forgets the container
35984
35985 • SFTP
35986
35987 • Add support for using ssh key files
35988
35989 • Fix under Windows
35990
35991 • Fix ssh agent on Windows
35992
35993 • Adapt to latest version of library - Igor Kharin
35994
35995 v1.36 - 2017-03-18
35996 • New Features
35997
35998 • SFTP remote (Jack Schmidt)
35999
36000 • Re-implement sync routine to work a directory at a time reducing
36001 memory usage
36002
36003 • Logging revamped to be more inline with rsync - now much quieter *
36004 -v only shows transfers * -vv is for full debug * --syslog to log
36005 to syslog on capable platforms
36006
36007 • Implement --backup-dir and --suffix
36008
36009 • Implement --track-renames (initial implementation by Bjørn Erik
36010 Pedersen)
36011
36012 • Add time-based bandwidth limits (Lukas Loesche)
36013
36014 • rclone cryptcheck: checks integrity of crypt remotes
36015
36016 • Allow all config file variables and options to be set from environ‐
36017 ment variables
36018
36019 • Add --buffer-size parameter to control buffer size for copy
36020
36021 • Make --delete-after the default
36022
36023 • Add --ignore-checksum flag (fixed by Hisham Zarka)
36024
36025 • rclone check: Add --download flag to check all the data, not just
36026 hashes
36027
36028 • rclone cat: add --head, --tail, --offset, --count and --discard
36029
36030 • rclone config: when choosing from a list, allow the value to be en‐
36031 tered too
36032
36033 • rclone config: allow rename and copy of remotes
36034
36035 • rclone obscure: for generating encrypted passwords for rclone's
36036 config (T.C. Ferguson)
36037
36038 • Comply with XDG Base Directory specification (Dario Giovannetti)
36039
36040 • this moves the default location of the config file in a backwards
36041 compatible way
36042
36043 • Release changes
36044
36045 • Ubuntu snap support (Dedsec1)
36046
36047 • Compile with go 1.8
36048
36049 • MIPS/Linux big and little endian support
36050
36051 • Bug Fixes
36052
36053 • Fix copyto copying things to the wrong place if the destination dir
36054 didn't exist
36055
36056 • Fix parsing of remotes in moveto and copyto
36057
36058 • Fix --delete-before deleting files on copy
36059
36060 • Fix --files-from with an empty file copying everything
36061
36062 • Fix sync: don't update mod times if --dry-run set
36063
36064 • Fix MimeType propagation
36065
36066 • Fix filters to add ** rules to directory rules
36067
36068 • Local
36069
36070 • Implement -L, --copy-links flag to allow rclone to follow symlinks
36071
36072 • Open files in write only mode so rclone can write to an rclone
36073 mount
36074
36075 • Fix unnormalised unicode causing problems reading directories
36076
36077 • Fix interaction between -x flag and --max-depth
36078
36079 • Mount
36080
36081 • Implement proper directory handling (mkdir, rmdir, renaming)
36082
36083 • Make include and exclude filters apply to mount
36084
36085 • Implement read and write async buffers - control with --buffer-size
36086
36087 • Fix fsync on for directories
36088
36089 • Fix retry on network failure when reading off crypt
36090
36091 • Crypt
36092
36093 • Add --crypt-show-mapping to show encrypted file mapping
36094
36095 • Fix crypt writer getting stuck in a loop
36096
36097 • IMPORTANT this bug had the potential to cause data corruption
36098 when
36099
36100 • reading data from a network based remote and
36101
36102 • writing to a crypt on Google Drive
36103
36104 • Use the cryptcheck command to validate your data if you are con‐
36105 cerned
36106
36107 • If syncing two crypt remotes, sync the unencrypted remote
36108
36109 • Amazon Drive
36110
36111 • Fix panics on Move (rename)
36112
36113 • Fix panic on token expiry
36114
36115 • B2
36116
36117 • Fix inconsistent listings and rclone check
36118
36119 • Fix uploading empty files with go1.8
36120
36121 • Constrain memory usage when doing multipart uploads
36122
36123 • Fix upload url not being refreshed properly
36124
36125 • Drive
36126
36127 • Fix Rmdir on directories with trashed files
36128
36129 • Fix "Ignoring unknown object" when downloading
36130
36131 • Add --drive-list-chunk
36132
36133 • Add --drive-skip-gdocs (Károly Oláh)
36134
36135 • OneDrive
36136
36137 • Implement Move
36138
36139 • Fix Copy
36140
36141 • Fix overwrite detection in Copy
36142
36143 • Fix waitForJob to parse errors correctly
36144
36145 • Use token renewer to stop auth errors on long uploads
36146
36147 • Fix uploading empty files with go1.8
36148
36149 • Google Cloud Storage
36150
36151 • Fix depth 1 directory listings
36152
36153 • Yandex
36154
36155 • Fix single level directory listing
36156
36157 • Dropbox
36158
36159 • Normalise the case for single level directory listings
36160
36161 • Fix depth 1 listing
36162
36163 • S3
36164
36165 • Added ca-central-1 region (Jon Yergatian)
36166
36167 v1.35 - 2017-01-02
36168 • New Features
36169
36170 • moveto and copyto commands for choosing a destination name on
36171 copy/move
36172
36173 • rmdirs command to recursively delete empty directories
36174
36175 • Allow repeated --include/--exclude/--filter options
36176
36177 • Only show transfer stats on commands which transfer stuff
36178
36179 • show stats on any command using the --stats flag
36180
36181 • Allow overlapping directories in move when server-side dir move is
36182 supported
36183
36184 • Add --stats-unit option - thanks Scott McGillivray
36185
36186 • Bug Fixes
36187
36188 • Fix the config file being overwritten when two rclone instances are
36189 running
36190
36191 • Make rclone lsd obey the filters properly
36192
36193 • Fix compilation on mips
36194
36195 • Fix not transferring files that don't differ in size
36196
36197 • Fix panic on nil retry/fatal error
36198
36199 • Mount
36200
36201 • Retry reads on error - should help with reliability a lot
36202
36203 • Report the modification times for directories from the remote
36204
36205 • Add bandwidth accounting and limiting (fixes --bwlimit)
36206
36207 • If --stats provided will show stats and which files are transfer‐
36208 ring
36209
36210 • Support R/W files if truncate is set.
36211
36212 • Implement statfs interface so df works
36213
36214 • Note that write is now supported on Amazon Drive
36215
36216 • Report number of blocks in a file - thanks Stefan Breunig
36217
36218 • Crypt
36219
36220 • Prevent the user pointing crypt at itself
36221
36222 • Fix failed to authenticate decrypted block errors
36223
36224 • these will now return the underlying unexpected EOF instead
36225
36226 • Amazon Drive
36227
36228 • Add support for server-side move and directory move - thanks Stefan
36229 Breunig
36230
36231 • Fix nil pointer deref on size attribute
36232
36233 • B2
36234
36235 • Use new prefix and delimiter parameters in directory listings
36236
36237 • This makes --max-depth 1 dir listings as used in mount much
36238 faster
36239
36240 • Reauth the account while doing uploads too - should help with token
36241 expiry
36242
36243 • Drive
36244
36245 • Make DirMove more efficient and complain about moving the root
36246
36247 • Create destination directory on Move()
36248
36249 v1.34 - 2016-11-06
36250 • New Features
36251
36252 • Stop single file and --files-from operations iterating through the
36253 source bucket.
36254
36255 • Stop removing failed upload to cloud storage remotes
36256
36257 • Make ContentType be preserved for cloud to cloud copies
36258
36259 • Add support to toggle bandwidth limits via SIGUSR2 - thanks Marco
36260 Paganini
36261
36262 • rclone check shows count of hashes that couldn't be checked
36263
36264 • rclone listremotes command
36265
36266 • Support linux/arm64 build - thanks Fredrik Fornwall
36267
36268 • Remove Authorization: lines from --dump-headers output
36269
36270 • Bug Fixes
36271
36272 • Ignore files with control characters in the names
36273
36274 • Fix rclone move command
36275
36276 • Delete src files which already existed in dst
36277
36278 • Fix deletion of src file when dst file older
36279
36280 • Fix rclone check on crypted file systems
36281
36282 • Make failed uploads not count as "Transferred"
36283
36284 • Make sure high level retries show with -q
36285
36286 • Use a vendor directory with godep for repeatable builds
36287
36288 • rclone mount - FUSE
36289
36290 • Implement FUSE mount options
36291
36292 • --no-modtime, --debug-fuse, --read-only, --allow-non-empty, --al‐
36293 low-root, --allow-other
36294
36295 • --default-permissions, --write-back-cache, --max-read-ahead,
36296 --umask, --uid, --gid
36297
36298 • Add --dir-cache-time to control caching of directory entries
36299
36300 • Implement seek for files opened for read (useful for video players)
36301
36302 • with -no-seek flag to disable
36303
36304 • Fix crash on 32 bit ARM (alignment of 64 bit counter)
36305
36306 • ...and many more internal fixes and improvements!
36307
36308 • Crypt
36309
36310 • Don't show encrypted password in configurator to stop confusion
36311
36312 • Amazon Drive
36313
36314 • New wait for upload option --acd-upload-wait-per-gb
36315
36316 • upload timeouts scale by file size and can be disabled
36317
36318 • Add 502 Bad Gateway to list of errors we retry
36319
36320 • Fix overwriting a file with a zero length file
36321
36322 • Fix ACD file size warning limit - thanks Felix Bünemann
36323
36324 • Local
36325
36326 • Unix: implement -x/--one-file-system to stay on a single file sys‐
36327 tem
36328
36329 • thanks Durval Menezes and Luiz Carlos Rumbelsperger Viana
36330
36331 • Windows: ignore the symlink bit on files
36332
36333 • Windows: Ignore directory based junction points
36334
36335 • B2
36336
36337 • Make sure each upload has at least one upload slot - fixes strange
36338 upload stats
36339
36340 • Fix uploads when using crypt
36341
36342 • Fix download of large files (sha1 mismatch)
36343
36344 • Return error when we try to create a bucket which someone else owns
36345
36346 • Update B2 docs with Data usage, and Crypt section - thanks Tomasz
36347 Mazur
36348
36349 • S3
36350
36351 • Command line and config file support for
36352
36353 • Setting/overriding ACL - thanks Radek Senfeld
36354
36355 • Setting storage class - thanks Asko Tamm
36356
36357 • Drive
36358
36359 • Make exponential backoff work exactly as per Google specification
36360
36361 • add .epub, .odp and .tsv as export formats.
36362
36363 • Swift
36364
36365 • Don't read metadata for directory marker objects
36366
36367 v1.33 - 2016-08-24
36368 • New Features
36369
36370 • Implement encryption
36371
36372 • data encrypted in NACL secretbox format
36373
36374 • with optional file name encryption
36375
36376 • New commands
36377
36378 • rclone mount - implements FUSE mounting of remotes (EXPERIMENTAL)
36379
36380 • works on Linux, FreeBSD and OS X (need testers for the last 2!)
36381
36382 • rclone cat - outputs remote file or files to the terminal
36383
36384 • rclone genautocomplete - command to make a bash completion script
36385 for rclone
36386
36387 • Editing a remote using rclone config now goes through the wizard
36388
36389 • Compile with go 1.7 - this fixes rclone on macOS Sierra and on 386
36390 processors
36391
36392 • Use cobra for sub commands and docs generation
36393
36394 • drive
36395
36396 • Document how to make your own client_id
36397
36398 • s3
36399
36400 • User-configurable Amazon S3 ACL (thanks Radek Šenfeld)
36401
36402 • b2
36403
36404 • Fix stats accounting for upload - no more jumping to 100% done
36405
36406 • On cleanup delete hide marker if it is the current file
36407
36408 • New B2 API endpoint (thanks Per Cederberg)
36409
36410 • Set maximum backoff to 5 Minutes
36411
36412 • onedrive
36413
36414 • Fix URL escaping in file names - e.g. uploading files with + in
36415 them.
36416
36417 • amazon cloud drive
36418
36419 • Fix token expiry during large uploads
36420
36421 • Work around 408 REQUEST_TIMEOUT and 504 GATEWAY_TIMEOUT errors
36422
36423 • local
36424
36425 • Fix filenames with invalid UTF-8 not being uploaded
36426
36427 • Fix problem with some UTF-8 characters on OS X
36428
36429 v1.32 - 2016-07-13
36430 • Backblaze B2
36431
36432 • Fix upload of files large files not in root
36433
36434 v1.31 - 2016-07-13
36435 • New Features
36436
36437 • Reduce memory on sync by about 50%
36438
36439 • Implement --no-traverse flag to stop copy traversing the destina‐
36440 tion remote.
36441
36442 • This can be used to reduce memory usage down to the smallest pos‐
36443 sible.
36444
36445 • Useful to copy a small number of files into a large destination
36446 folder.
36447
36448 • Implement cleanup command for emptying trash / removing old ver‐
36449 sions of files
36450
36451 • Currently B2 only
36452
36453 • Single file handling improved
36454
36455 • Now copied with --files-from
36456
36457 • Automatically sets --no-traverse when copying a single file
36458
36459 • Info on using installing with ansible - thanks Stefan Weichinger
36460
36461 • Implement --no-update-modtime flag to stop rclone fixing the remote
36462 modified times.
36463
36464 • Bug Fixes
36465
36466 • Fix move command - stop it running for overlapping Fses - this was
36467 causing data loss.
36468
36469 • Local
36470
36471 • Fix incomplete hashes - this was causing problems for B2.
36472
36473 • Amazon Drive
36474
36475 • Rename Amazon Cloud Drive to Amazon Drive - no changes to config
36476 file needed.
36477
36478 • Swift
36479
36480 • Add support for non-default project domain - thanks Antonio Messi‐
36481 na.
36482
36483 • S3
36484
36485 • Add instructions on how to use rclone with minio.
36486
36487 • Add ap-northeast-2 (Seoul) and ap-south-1 (Mumbai) regions.
36488
36489 • Skip setting the modified time for objects > 5GB as it isn't possi‐
36490 ble.
36491
36492 • Backblaze B2
36493
36494 • Add --b2-versions flag so old versions can be listed and retrieved.
36495
36496 • Treat 403 errors (e.g. cap exceeded) as fatal.
36497
36498 • Implement cleanup command for deleting old file versions.
36499
36500 • Make error handling compliant with B2 integrations notes.
36501
36502 • Fix handling of token expiry.
36503
36504 • Implement --b2-test-mode to set X-Bz-Test-Mode header.
36505
36506 • Set cutoff for chunked upload to 200MB as per B2 guidelines.
36507
36508 • Make upload multi-threaded.
36509
36510 • Dropbox
36511
36512 • Don't retry 461 errors.
36513
36514 v1.30 - 2016-06-18
36515 • New Features
36516
36517 • Directory listing code reworked for more features and better error
36518 reporting (thanks to Klaus Post for help). This enables
36519
36520 • Directory include filtering for efficiency
36521
36522 • --max-depth parameter
36523
36524 • Better error reporting
36525
36526 • More to come
36527
36528 • Retry more errors
36529
36530 • Add --ignore-size flag - for uploading images to onedrive
36531
36532 • Log -v output to stdout by default
36533
36534 • Display the transfer stats in more human readable form
36535
36536 • Make 0 size files specifiable with --max-size 0b
36537
36538 • Add b suffix so we can specify bytes in --bwlimit, --min-size, etc.
36539
36540 • Use "password:" instead of "password>" prompt - thanks Klaus Post
36541 and Leigh Klotz
36542
36543 • Bug Fixes
36544
36545 • Fix retry doing one too many retries
36546
36547 • Local
36548
36549 • Fix problems with OS X and UTF-8 characters
36550
36551 • Amazon Drive
36552
36553 • Check a file exists before uploading to help with 408 Conflict er‐
36554 rors
36555
36556 • Reauth on 401 errors - this has been causing a lot of problems
36557
36558 • Work around spurious 403 errors
36559
36560 • Restart directory listings on error
36561
36562 • Google Drive
36563
36564 • Check a file exists before uploading to help with duplicates
36565
36566 • Fix retry of multipart uploads
36567
36568 • Backblaze B2
36569
36570 • Implement large file uploading
36571
36572 • S3
36573
36574 • Add AES256 server-side encryption for - thanks Justin R. Wilson
36575
36576 • Google Cloud Storage
36577
36578 • Make sure we don't use conflicting content types on upload
36579
36580 • Add service account support - thanks Michal Witkowski
36581
36582 • Swift
36583
36584 • Add auth version parameter
36585
36586 • Add domain option for openstack (v3 auth) - thanks Fabian Ruff
36587
36588 v1.29 - 2016-04-18
36589 • New Features
36590
36591 • Implement -I, --ignore-times for unconditional upload
36592
36593 • Improve dedupecommand
36594
36595 • Now removes identical copies without asking
36596
36597 • Now obeys --dry-run
36598
36599 • Implement --dedupe-mode for non interactive running
36600
36601 • --dedupe-mode interactive - interactive the default.
36602
36603 • --dedupe-mode skip - removes identical files then skips any‐
36604 thing left.
36605
36606 • --dedupe-mode first - removes identical files then keeps the
36607 first one.
36608
36609 • --dedupe-mode newest - removes identical files then keeps the
36610 newest one.
36611
36612 • --dedupe-mode oldest - removes identical files then keeps the
36613 oldest one.
36614
36615 • --dedupe-mode rename - removes identical files then renames the
36616 rest to be different.
36617
36618 • Bug fixes
36619
36620 • Make rclone check obey the --size-only flag.
36621
36622 • Use "application/octet-stream" if discovered mime type is invalid.
36623
36624 • Fix missing "quit" option when there are no remotes.
36625
36626 • Google Drive
36627
36628 • Increase default chunk size to 8 MB - increases upload speed of big
36629 files
36630
36631 • Speed up directory listings and make more reliable
36632
36633 • Add missing retries for Move and DirMove - increases reliability
36634
36635 • Preserve mime type on file update
36636
36637 • Backblaze B2
36638
36639 • Enable mod time syncing
36640
36641 • This means that B2 will now check modification times
36642
36643 • It will upload new files to update the modification times
36644
36645 • (there isn't an API to just set the mod time.)
36646
36647 • If you want the old behaviour use --size-only.
36648
36649 • Update API to new version
36650
36651 • Fix parsing of mod time when not in metadata
36652
36653 • Swift/Hubic
36654
36655 • Don't return an MD5SUM for static large objects
36656
36657 • S3
36658
36659 • Fix uploading files bigger than 50GB
36660
36661 v1.28 - 2016-03-01
36662 • New Features
36663
36664 • Configuration file encryption - thanks Klaus Post
36665
36666 • Improve rclone config adding more help and making it easier to un‐
36667 derstand
36668
36669 • Implement -u/--update so creation times can be used on all remotes
36670
36671 • Implement --low-level-retries flag
36672
36673 • Optionally disable gzip compression on downloads with --no-gzip-en‐
36674 coding
36675
36676 • Bug fixes
36677
36678 • Don't make directories if --dry-run set
36679
36680 • Fix and document the move command
36681
36682 • Fix redirecting stderr on unix-like OSes when using --log-file
36683
36684 • Fix delete command to wait until all finished - fixes missing
36685 deletes.
36686
36687 • Backblaze B2
36688
36689 • Use one upload URL per go routine fixes more than one upload using
36690 auth token
36691
36692 • Add pacing, retries and reauthentication - fixes token expiry prob‐
36693 lems
36694
36695 • Upload without using a temporary file from local (and remotes which
36696 support SHA1)
36697
36698 • Fix reading metadata for all files when it shouldn't have been
36699
36700 • Drive
36701
36702 • Fix listing drive documents at root
36703
36704 • Disable copy and move for Google docs
36705
36706 • Swift
36707
36708 • Fix uploading of chunked files with non ASCII characters
36709
36710 • Allow setting of storage_url in the config - thanks Xavier Lucas
36711
36712 • S3
36713
36714 • Allow IAM role and credentials from environment variables - thanks
36715 Brian Stengaard
36716
36717 • Allow low privilege users to use S3 (check if directory exists dur‐
36718 ing Mkdir) - thanks Jakub Gedeon
36719
36720 • Amazon Drive
36721
36722 • Retry on more things to make directory listings more reliable
36723
36724 v1.27 - 2016-01-31
36725 • New Features
36726
36727 • Easier headless configuration with rclone authorize
36728
36729 • Add support for multiple hash types - we now check SHA1 as well as
36730 MD5 hashes.
36731
36732 • delete command which does obey the filters (unlike purge)
36733
36734 • dedupe command to deduplicate a remote. Useful with Google Drive.
36735
36736 • Add --ignore-existing flag to skip all files that exist on destina‐
36737 tion.
36738
36739 • Add --delete-before, --delete-during, --delete-after flags.
36740
36741 • Add --memprofile flag to debug memory use.
36742
36743 • Warn the user about files with same name but different case
36744
36745 • Make --include rules add their implicit exclude * at the end of the
36746 filter list
36747
36748 • Deprecate compiling with go1.3
36749
36750 • Amazon Drive
36751
36752 • Fix download of files > 10 GB
36753
36754 • Fix directory traversal ("Next token is expired") for large direc‐
36755 tory listings
36756
36757 • Remove 409 conflict from error codes we will retry - stops very
36758 long pauses
36759
36760 • Backblaze B2
36761
36762 • SHA1 hashes now checked by rclone core
36763
36764 • Drive
36765
36766 • Add --drive-auth-owner-only to only consider files owned by the us‐
36767 er - thanks Björn Harrtell
36768
36769 • Export Google documents
36770
36771 • Dropbox
36772
36773 • Make file exclusion error controllable with -q
36774
36775 • Swift
36776
36777 • Fix upload from unprivileged user.
36778
36779 • S3
36780
36781 • Fix updating of mod times of files with + in.
36782
36783 • Local
36784
36785 • Add local file system option to disable UNC on Windows.
36786
36787 v1.26 - 2016-01-02
36788 • New Features
36789
36790 • Yandex storage backend - thank you Dmitry Burdeev ("dibu")
36791
36792 • Implement Backblaze B2 storage backend
36793
36794 • Add --min-age and --max-age flags - thank you Adriano Aurélio
36795 Meirelles
36796
36797 • Make ls/lsl/md5sum/size/check obey includes and excludes
36798
36799 • Fixes
36800
36801 • Fix crash in http logging
36802
36803 • Upload releases to github too
36804
36805 • Swift
36806
36807 • Fix sync for chunked files
36808
36809 • OneDrive
36810
36811 • Re-enable server-side copy
36812
36813 • Don't mask HTTP error codes with JSON decode error
36814
36815 • S3
36816
36817 • Fix corrupting Content-Type on mod time update (thanks Joseph
36818 Spurrier)
36819
36820 v1.25 - 2015-11-14
36821 • New features
36822
36823 • Implement Hubic storage system
36824
36825 • Fixes
36826
36827 • Fix deletion of some excluded files without --delete-excluded
36828
36829 • This could have deleted files unexpectedly on sync
36830
36831 • Always check first with --dry-run!
36832
36833 • Swift
36834
36835 • Stop SetModTime losing metadata (e.g. X-Object-Manifest)
36836
36837 • This could have caused data loss for files > 5GB in size
36838
36839 • Use ContentType from Object to avoid lookups in listings
36840
36841 • OneDrive
36842
36843 • disable server-side copy as it seems to be broken at Microsoft
36844
36845 v1.24 - 2015-11-07
36846 • New features
36847
36848 • Add support for Microsoft OneDrive
36849
36850 • Add --no-check-certificate option to disable server certificate
36851 verification
36852
36853 • Add async readahead buffer for faster transfer of big files
36854
36855 • Fixes
36856
36857 • Allow spaces in remotes and check remote names for validity at cre‐
36858 ation time
36859
36860 • Allow '&' and disallow ':' in Windows filenames.
36861
36862 • Swift
36863
36864 • Ignore directory marker objects where appropriate - allows working
36865 with Hubic
36866
36867 • Don't delete the container if fs wasn't at root
36868
36869 • S3
36870
36871 • Don't delete the bucket if fs wasn't at root
36872
36873 • Google Cloud Storage
36874
36875 • Don't delete the bucket if fs wasn't at root
36876
36877 v1.23 - 2015-10-03
36878 • New features
36879
36880 • Implement rclone size for measuring remotes
36881
36882 • Fixes
36883
36884 • Fix headless config for drive and gcs
36885
36886 • Tell the user they should try again if the webserver method failed
36887
36888 • Improve output of --dump-headers
36889
36890 • S3
36891
36892 • Allow anonymous access to public buckets
36893
36894 • Swift
36895
36896 • Stop chunked operations logging "Failed to read info: Object Not
36897 Found"
36898
36899 • Use Content-Length on uploads for extra reliability
36900
36901 v1.22 - 2015-09-28
36902 • Implement rsync like include and exclude flags
36903
36904 • swift
36905
36906 • Support files > 5GB - thanks Sergey Tolmachev
36907
36908 v1.21 - 2015-09-22
36909 • New features
36910
36911 • Display individual transfer progress
36912
36913 • Make lsl output times in localtime
36914
36915 • Fixes
36916
36917 • Fix allowing user to override credentials again in Drive, GCS and
36918 ACD
36919
36920 • Amazon Drive
36921
36922 • Implement compliant pacing scheme
36923
36924 • Google Drive
36925
36926 • Make directory reads concurrent for increased speed.
36927
36928 v1.20 - 2015-09-15
36929 • New features
36930
36931 • Amazon Drive support
36932
36933 • Oauth support redone - fix many bugs and improve usability
36934
36935 • Use "golang.org/x/oauth2" as oauth library of choice
36936
36937 • Improve oauth usability for smoother initial signup
36938
36939 • drive, googlecloudstorage: optionally use auto config for the
36940 oauth token
36941
36942 • Implement --dump-headers and --dump-bodies debug flags
36943
36944 • Show multiple matched commands if abbreviation too short
36945
36946 • Implement server-side move where possible
36947
36948 • local
36949
36950 • Always use UNC paths internally on Windows - fixes a lot of bugs
36951
36952 • dropbox
36953
36954 • force use of our custom transport which makes timeouts work
36955
36956 • Thanks to Klaus Post for lots of help with this release
36957
36958 v1.19 - 2015-08-28
36959 • New features
36960
36961 • Server side copies for s3/swift/drive/dropbox/gcs
36962
36963 • Move command - uses server-side copies if it can
36964
36965 • Implement --retries flag - tries 3 times by default
36966
36967 • Build for plan9/amd64 and solaris/amd64 too
36968
36969 • Fixes
36970
36971 • Make a current version download with a fixed URL for scripting
36972
36973 • Ignore rmdir in limited fs rather than throwing error
36974
36975 • dropbox
36976
36977 • Increase chunk size to improve upload speeds massively
36978
36979 • Issue an error message when trying to upload bad file name
36980
36981 v1.18 - 2015-08-17
36982 • drive
36983
36984 • Add --drive-use-trash flag so rclone trashes instead of deletes
36985
36986 • Add "Forbidden to download" message for files with no downloadURL
36987
36988 • dropbox
36989
36990 • Remove datastore
36991
36992 • This was deprecated and it caused a lot of problems
36993
36994 • Modification times and MD5SUMs no longer stored
36995
36996 • Fix uploading files > 2GB
36997
36998 • s3
36999
37000 • use official AWS SDK from github.com/aws/aws-sdk-go
37001
37002 • NB will most likely require you to delete and recreate remote
37003
37004 • enable multipart upload which enables files > 5GB
37005
37006 • tested with Ceph / RadosGW / S3 emulation
37007
37008 • many thanks to Sam Liston and Brian Haymore at the Utah Center for
37009 High Performance Computing (https://www.chpc.utah.edu/) for a Ceph
37010 test account
37011
37012 • misc
37013
37014 • Show errors when reading the config file
37015
37016 • Do not print stats in quiet mode - thanks Leonid Shalupov
37017
37018 • Add FAQ
37019
37020 • Fix created directories not obeying umask
37021
37022 • Linux installation instructions - thanks Shimon Doodkin
37023
37024 v1.17 - 2015-06-14
37025 • dropbox: fix case insensitivity issues - thanks Leonid Shalupov
37026
37027 v1.16 - 2015-06-09
37028 • Fix uploading big files which was causing timeouts or panics
37029
37030 • Don't check md5sum after download with --size-only
37031
37032 v1.15 - 2015-06-06
37033 • Add --checksum flag to only discard transfers by MD5SUM - thanks Alex
37034 Couper
37035
37036 • Implement --size-only flag to sync on size not checksum & modtime
37037
37038 • Expand docs and remove duplicated information
37039
37040 • Document rclone's limitations with directories
37041
37042 • dropbox: update docs about case insensitivity
37043
37044 v1.14 - 2015-05-21
37045 • local: fix encoding of non utf-8 file names - fixes a duplicate file
37046 problem
37047
37048 • drive: docs about rate limiting
37049
37050 • google cloud storage: Fix compile after API change in
37051 "google.golang.org/api/storage/v1"
37052
37053 v1.13 - 2015-05-10
37054 • Revise documentation (especially sync)
37055
37056 • Implement --timeout and --conntimeout
37057
37058 • s3: ignore etags from multipart uploads which aren't md5sums
37059
37060 v1.12 - 2015-03-15
37061 • drive: Use chunked upload for files above a certain size
37062
37063 • drive: add --drive-chunk-size and --drive-upload-cutoff parameters
37064
37065 • drive: switch to insert from update when a failed copy deletes the
37066 upload
37067
37068 • core: Log duplicate files if they are detected
37069
37070 v1.11 - 2015-03-04
37071 • swift: add region parameter
37072
37073 • drive: fix crash on failed to update remote mtime
37074
37075 • In remote paths, change native directory separators to /
37076
37077 • Add synchronization to ls/lsl/lsd output to stop corruptions
37078
37079 • Ensure all stats/log messages to go stderr
37080
37081 • Add --log-file flag to log everything (including panics) to file
37082
37083 • Make it possible to disable stats printing with --stats=0
37084
37085 • Implement --bwlimit to limit data transfer bandwidth
37086
37087 v1.10 - 2015-02-12
37088 • s3: list an unlimited number of items
37089
37090 • Fix getting stuck in the configurator
37091
37092 v1.09 - 2015-02-07
37093 • windows: Stop drive letters (e.g. C:) getting mixed up with remotes
37094 (e.g. drive:)
37095
37096 • local: Fix directory separators on Windows
37097
37098 • drive: fix rate limit exceeded errors
37099
37100 v1.08 - 2015-02-04
37101 • drive: fix subdirectory listing to not list entire drive
37102
37103 • drive: Fix SetModTime
37104
37105 • dropbox: adapt code to recent library changes
37106
37107 v1.07 - 2014-12-23
37108 • google cloud storage: fix memory leak
37109
37110 v1.06 - 2014-12-12
37111 • Fix "Couldn't find home directory" on OSX
37112
37113 • swift: Add tenant parameter
37114
37115 • Use new location of Google API packages
37116
37117 v1.05 - 2014-08-09
37118 • Improved tests and consequently lots of minor fixes
37119
37120 • core: Fix race detected by go race detector
37121
37122 • core: Fixes after running errcheck
37123
37124 • drive: reset root directory on Rmdir and Purge
37125
37126 • fs: Document that Purger returns error on empty directory, test and
37127 fix
37128
37129 • google cloud storage: fix ListDir on subdirectory
37130
37131 • google cloud storage: re-read metadata in SetModTime
37132
37133 • s3: make reading metadata more reliable to work around eventual con‐
37134 sistency problems
37135
37136 • s3: strip trailing / from ListDir()
37137
37138 • swift: return directories without / in ListDir
37139
37140 v1.04 - 2014-07-21
37141 • google cloud storage: Fix crash on Update
37142
37143 v1.03 - 2014-07-20
37144 • swift, s3, dropbox: fix updated files being marked as corrupted
37145
37146 • Make compile with go 1.1 again
37147
37148 v1.02 - 2014-07-19
37149 • Implement Dropbox remote
37150
37151 • Implement Google Cloud Storage remote
37152
37153 • Verify Md5sums and Sizes after copies
37154
37155 • Remove times from "ls" command - lists sizes only
37156
37157 • Add add "lsl" - lists times and sizes
37158
37159 • Add "md5sum" command
37160
37161 v1.01 - 2014-07-04
37162 • drive: fix transfer of big files using up lots of memory
37163
37164 v1.00 - 2014-07-03
37165 • drive: fix whole second dates
37166
37167 v0.99 - 2014-06-26
37168 • Fix --dry-run not working
37169
37170 • Make compatible with go 1.1
37171
37172 v0.98 - 2014-05-30
37173 • s3: Treat missing Content-Length as 0 for some ceph installations
37174
37175 • rclonetest: add file with a space in
37176
37177 v0.97 - 2014-05-05
37178 • Implement copying of single files
37179
37180 • s3 & swift: support paths inside containers/buckets
37181
37182 v0.96 - 2014-04-24
37183 • drive: Fix multiple files of same name being created
37184
37185 • drive: Use o.Update and fs.Put to optimise transfers
37186
37187 • Add version number, -V and --version
37188
37189 v0.95 - 2014-03-28
37190 • rclone.org: website, docs and graphics
37191
37192 • drive: fix path parsing
37193
37194 v0.94 - 2014-03-27
37195 • Change remote format one last time
37196
37197 • GNU style flags
37198
37199 v0.93 - 2014-03-16
37200 • drive: store token in config file
37201
37202 • cross compile other versions
37203
37204 • set strict permissions on config file
37205
37206 v0.92 - 2014-03-15
37207 • Config fixes and --config option
37208
37209 v0.91 - 2014-03-15
37210 • Make config file
37211
37212 v0.90 - 2013-06-27
37213 • Project named rclone
37214
37215 v0.00 - 2012-11-18
37216 • Project started
37217
37219 Limitations
37220 Directory timestamps aren't preserved
37221 Rclone doesn't currently preserve the timestamps of directories. This
37222 is because rclone only really considers objects when syncing.
37223
37224 Rclone struggles with millions of files in a directory/bucket
37225 Currently rclone loads each directory/bucket entirely into memory be‐
37226 fore using it. Since each rclone object takes 0.5k-1k of memory this
37227 can take a very long time and use a large amount of memory.
37228
37229 Millions of files in a directory tends to occur on bucket-based remotes
37230 (e.g. S3 buckets) since those remotes do not segregate subdirectories
37231 within the bucket.
37232
37233 Bucket based remotes and folders
37234 Bucket based remotes (e.g. S3/GCS/Swift/B2) do not have a concept of
37235 directories. Rclone therefore cannot create directories in them which
37236 means that empty directories on a bucket based remote will tend to dis‐
37237 appear.
37238
37239 Some software creates empty keys ending in / as directory markers.
37240 Rclone doesn't do this as it potentially creates more objects and costs
37241 more. This ability may be added in the future (probably via a flag/op‐
37242 tion).
37243
37244 Bugs
37245 Bugs are stored in rclone's GitHub project:
37246
37247 • Reported bugs (https://github.com/rclone/rclone/is‐
37248 sues?q=is%3Aopen+is%3Aissue+label%3Abug)
37249
37250 • Known issues (https://github.com/rclone/rclone/is‐
37251 sues?q=is%3Aopen+is%3Aissue+milestone%3A%22Known+Problem%22)
37252
37253 Frequently Asked Questions
37254 Do all cloud storage systems support all rclone commands
37255 Yes they do. All the rclone commands (e.g. sync, copy, etc.) will
37256 work on all the remote storage systems.
37257
37258 Can I copy the config from one machine to another
37259 Sure! Rclone stores all of its config in a single file. If you want to
37260 find this file, run rclone config file which will tell you where it is.
37261
37262 See the remote setup docs (https://rclone.org/remote_setup/) for more
37263 info.
37264
37265 How do I configure rclone on a remote / headless box with no browser?
37266 This has now been documented in its own remote setup page
37267 (https://rclone.org/remote_setup/).
37268
37269 Can rclone sync directly from drive to s3
37270 Rclone can sync between two remote cloud storage systems just fine.
37271
37272 Note that it effectively downloads the file and uploads it again, so
37273 the node running rclone would need to have lots of bandwidth.
37274
37275 The syncs would be incremental (on a file by file basis).
37276
37277 Eg
37278
37279 rclone sync -i drive:Folder s3:bucket
37280
37281 Using rclone from multiple locations at the same time
37282 You can use rclone from multiple places at the same time if you choose
37283 different subdirectory for the output, e.g.
37284
37285 Server A> rclone sync -i /tmp/whatever remote:ServerA
37286 Server B> rclone sync -i /tmp/whatever remote:ServerB
37287
37288 If you sync to the same directory then you should use rclone copy oth‐
37289 erwise the two instances of rclone may delete each other's files, e.g.
37290
37291 Server A> rclone copy /tmp/whatever remote:Backup
37292 Server B> rclone copy /tmp/whatever remote:Backup
37293
37294 The file names you upload from Server A and Server B should be differ‐
37295 ent in this case, otherwise some file systems (e.g. Drive) may make
37296 duplicates.
37297
37298 Why doesn't rclone support partial transfers / binary diffs like rsync?
37299 Rclone stores each file you transfer as a native object on the remote
37300 cloud storage system. This means that you can see the files you upload
37301 as expected using alternative access methods (e.g. using the Google
37302 Drive web interface). There is a 1:1 mapping between files on your
37303 hard disk and objects created in the cloud storage system.
37304
37305 Cloud storage systems (at least none I've come across yet) don't sup‐
37306 port partially uploading an object. You can't take an existing object,
37307 and change some bytes in the middle of it.
37308
37309 It would be possible to make a sync system which stored binary diffs
37310 instead of whole objects like rclone does, but that would break the 1:1
37311 mapping of files on your hard disk to objects in the remote cloud stor‐
37312 age system.
37313
37314 All the cloud storage systems support partial downloads of content, so
37315 it would be possible to make partial downloads work. However to make
37316 this work efficiently this would require storing a significant amount
37317 of metadata, which breaks the desired 1:1 mapping of files to objects.
37318
37319 Can rclone do bi-directional sync?
37320 No, not at present. rclone only does uni-directional sync from A -> B.
37321 It may do in the future though since it has all the primitives - it
37322 just requires writing the algorithm to do it.
37323
37324 Can I use rclone with an HTTP proxy?
37325 Yes. rclone will follow the standard environment variables for prox‐
37326 ies, similar to cURL and other programs.
37327
37328 In general the variables are called http_proxy (for services reached
37329 over http) and https_proxy (for services reached over https). Most
37330 public services will be using https, but you may wish to set both.
37331
37332 The content of the variable is protocol://server:port. The protocol
37333 value is the one used to talk to the proxy server, itself, and is com‐
37334 monly either http or socks5.
37335
37336 Slightly annoyingly, there is no standard for the name; some applica‐
37337 tions may use http_proxy but another one HTTP_PROXY. The Go libraries
37338 used by rclone will try both variations, but you may wish to set all
37339 possibilities. So, on Linux, you may end up with code similar to
37340
37341 export http_proxy=http://proxyserver:12345
37342 export https_proxy=$http_proxy
37343 export HTTP_PROXY=$http_proxy
37344 export HTTPS_PROXY=$http_proxy
37345
37346 The NO_PROXY allows you to disable the proxy for specific hosts. Hosts
37347 must be comma separated, and can contain domains or parts. For in‐
37348 stance "foo.com" also matches "bar.foo.com".
37349
37350 e.g.
37351
37352 export no_proxy=localhost,127.0.0.0/8,my.host.name
37353 export NO_PROXY=$no_proxy
37354
37355 Note that the ftp backend does not support ftp_proxy yet.
37356
37357 Rclone gives x509: failed to load system roots and no roots provided error
37358 This means that rclone can't find the SSL root certificates. Likely
37359 you are running rclone on a NAS with a cut-down Linux OS, or possibly
37360 on Solaris.
37361
37362 Rclone (via the Go runtime) tries to load the root certificates from
37363 these places on Linux.
37364
37365 "/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
37366 "/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL
37367 "/etc/ssl/ca-bundle.pem", // OpenSUSE
37368 "/etc/pki/tls/cacert.pem", // OpenELEC
37369
37370 So doing something like this should fix the problem. It also sets the
37371 time which is important for SSL to work properly.
37372
37373 mkdir -p /etc/ssl/certs/
37374 curl -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
37375 ntpclient -s -h pool.ntp.org
37376
37377 The two environment variables SSL_CERT_FILE and SSL_CERT_DIR, mentioned
37378 in the x509 package (https://godoc.org/crypto/x509), provide an addi‐
37379 tional way to provide the SSL root certificates.
37380
37381 Note that you may need to add the --insecure option to the curl command
37382 line if it doesn't work without.
37383
37384 curl --insecure -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
37385
37386 Rclone gives Failed to load config file: function not implemented error
37387 Likely this means that you are running rclone on Linux version not sup‐
37388 ported by the go runtime, ie earlier than version 2.6.23.
37389
37390 See the system requirements section in the go install docs
37391 (https://golang.org/doc/install) for full details.
37392
37393 All my uploaded docx/xlsx/pptx files appear as archive/zip
37394 This is caused by uploading these files from a Windows computer which
37395 hasn't got the Microsoft Office suite installed. The easiest way to
37396 fix is to install the Word viewer and the Microsoft Office Compatibili‐
37397 ty Pack for Word, Excel, and PowerPoint 2007 and later versions' file
37398 formats
37399
37400 tcp lookup some.domain.com no such host
37401 This happens when rclone cannot resolve a domain. Please check that
37402 your DNS setup is generally working, e.g.
37403
37404 # both should print a long list of possible IP addresses
37405 dig www.googleapis.com # resolve using your default DNS
37406 dig www.googleapis.com @8.8.8.8 # resolve with Google's DNS server
37407
37408 If you are using systemd-resolved (default on Arch Linux), ensure it is
37409 at version 233 or higher. Previous releases contain a bug which causes
37410 not all domains to be resolved properly.
37411
37412 Additionally with the GODEBUG=netdns= environment variable the Go re‐
37413 solver decision can be influenced. This also allows to resolve certain
37414 issues with DNS resolution. See the name resolution section in the go
37415 docs (https://golang.org/pkg/net/#hdr-Name_Resolution).
37416
37417 The total size reported in the stats for a sync is wrong and keeps changing
37418 It is likely you have more than 10,000 files that need to be synced.
37419 By default rclone only gets 10,000 files ahead in a sync so as not to
37420 use up too much memory. You can change this default with the
37421 --max-backlog (https://rclone.org/docs/#max-backlog-n) flag.
37422
37423 Rclone is using too much memory or appears to have a memory leak
37424 Rclone is written in Go which uses a garbage collector. The default
37425 settings for the garbage collector mean that it runs when the heap size
37426 has doubled.
37427
37428 However it is possible to tune the garbage collector to use less memory
37429 by setting GOGC (https://dave.cheney.net/tag/gogc) to a lower value,
37430 say export GOGC=20. This will make the garbage collector work harder,
37431 reducing memory size at the expense of CPU usage.
37432
37433 The most common cause of rclone using lots of memory is a single direc‐
37434 tory with thousands or millions of files in. Rclone has to load this
37435 entirely into memory as rclone objects. Each rclone object takes
37436 0.5k-1k of memory.
37437
37438 License
37439 This is free software under the terms of MIT the license (check the
37440 COPYING file included with the source code).
37441
37442 Copyright (C) 2019 by Nick Craig-Wood https://www.craig-wood.com/nick/
37443
37444 Permission is hereby granted, free of charge, to any person obtaining a copy
37445 of this software and associated documentation files (the "Software"), to deal
37446 in the Software without restriction, including without limitation the rights
37447 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
37448 copies of the Software, and to permit persons to whom the Software is
37449 furnished to do so, subject to the following conditions:
37450
37451 The above copyright notice and this permission notice shall be included in
37452 all copies or substantial portions of the Software.
37453
37454 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37455 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
37456 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
37457 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37458 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
37459 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
37460 THE SOFTWARE.
37461
37462 Authors
37463 • Nick Craig-Wood <nick@craig-wood.com>
37464
37465 Contributors
37466 {{< rem email addresses removed from here need to be addeed to bin/.ig‐
37467 nore-emails to make sure update-authors.py doesn't immediately put them
37468 back in again. >}}
37469
37470 • Alex Couper <amcouper@gmail.com>
37471
37472 • Leonid Shalupov <leonid@shalupov.com> <shalupov@diverse.org.ru>
37473
37474 • Shimon Doodkin <helpmepro1@gmail.com>
37475
37476 • Colin Nicholson <colin@colinn.com>
37477
37478 • Klaus Post <klauspost@gmail.com>
37479
37480 • Sergey Tolmachev <tolsi.ru@gmail.com>
37481
37482 • Adriano Aurélio Meirelles <adriano@atinge.com>
37483
37484 • C. Bess <cbess@users.noreply.github.com>
37485
37486 • Dmitry Burdeev <dibu28@gmail.com>
37487
37488 • Joseph Spurrier <github@josephspurrier.com>
37489
37490 • Björn Harrtell <bjorn@wololo.org>
37491
37492 • Xavier Lucas <xavier.lucas@corp.ovh.com>
37493
37494 • Werner Beroux <werner@beroux.com>
37495
37496 • Brian Stengaard <brian@stengaard.eu>
37497
37498 • Jakub Gedeon <jgedeon@sofi.com>
37499
37500 • Jim Tittsler <jwt@onjapan.net>
37501
37502 • Michal Witkowski <michal@improbable.io>
37503
37504 • Fabian Ruff <fabian.ruff@sap.com>
37505
37506 • Leigh Klotz <klotz@quixey.com>
37507
37508 • Romain Lapray <lapray.romain@gmail.com>
37509
37510 • Justin R. Wilson <jrw972@gmail.com>
37511
37512 • Antonio Messina <antonio.s.messina@gmail.com>
37513
37514 • Stefan G. Weichinger <office@oops.co.at>
37515
37516 • Per Cederberg <cederberg@gmail.com>
37517
37518 • Radek Šenfeld <rush@logic.cz>
37519
37520 • Fredrik Fornwall <fredrik@fornwall.net>
37521
37522 • Asko Tamm <asko@deekit.net>
37523
37524 • xor-zz <xor@gstocco.com>
37525
37526 • Tomasz Mazur <tmazur90@gmail.com>
37527
37528 • Marco Paganini <paganini@paganini.net>
37529
37530 • Felix Bünemann <buenemann@louis.info>
37531
37532 • Durval Menezes <jmrclone@durval.com>
37533
37534 • Luiz Carlos Rumbelsperger Viana <maxd13_luiz_carlos@hotmail.com>
37535
37536 • Stefan Breunig <stefan-github@yrden.de>
37537
37538 • Alishan Ladhani <ali-l@users.noreply.github.com>
37539
37540 • 0xJAKE <0xJAKE@users.noreply.github.com>
37541
37542 • Thibault Molleman <thibaultmol@users.noreply.github.com>
37543
37544 • Scott McGillivray <scott.mcgillivray@gmail.com>
37545
37546 • Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
37547
37548 • Lukas Loesche <lukas@mesosphere.io>
37549
37550 • emyarod <allllaboutyou@gmail.com>
37551
37552 • T.C. Ferguson <tcf909@gmail.com>
37553
37554 • Brandur <brandur@mutelight.org>
37555
37556 • Dario Giovannetti <dev@dariogiovannetti.net>
37557
37558 • Károly Oláh <okaresz@aol.com>
37559
37560 • Jon Yergatian <jon@macfanatic.ca>
37561
37562 • Jack Schmidt <github@mowsey.org>
37563
37564 • Dedsec1 <Dedsec1@users.noreply.github.com>
37565
37566 • Hisham Zarka <hzarka@gmail.com>
37567
37568 • Jérôme Vizcaino <jerome.vizcaino@gmail.com>
37569
37570 • Mike Tesch <mjt6129@rit.edu>
37571
37572 • Marvin Watson <marvwatson@users.noreply.github.com>
37573
37574 • Danny Tsai <danny8376@gmail.com>
37575
37576 • Yoni Jah <yonjah+git@gmail.com> <yonjah+github@gmail.com>
37577
37578 • Stephen Harris <github@spuddy.org> <sweharris@users.nore‐
37579 ply.github.com>
37580
37581 • Ihor Dvoretskyi <ihor.dvoretskyi@gmail.com>
37582
37583 • Jon Craton <jncraton@gmail.com>
37584
37585 • Hraban Luyat <hraban@0brg.net>
37586
37587 • Michael Ledin <mledin89@gmail.com>
37588
37589 • Martin Kristensen <me@azgul.com>
37590
37591 • Too Much IO <toomuchio@users.noreply.github.com>
37592
37593 • Anisse Astier <anisse@astier.eu>
37594
37595 • Zahiar Ahmed <zahiar@live.com>
37596
37597 • Igor Kharin <igorkharin@gmail.com>
37598
37599 • Bill Zissimopoulos <billziss@navimatics.com>
37600
37601 • Bob Potter <bobby.potter@gmail.com>
37602
37603 • Steven Lu <tacticalazn@gmail.com>
37604
37605 • Sjur Fredriksen <sjurtf@ifi.uio.no>
37606
37607 • Ruwbin <hubus12345@gmail.com>
37608
37609 • Fabian Möller <fabianm88@gmail.com> <f.moeller@nynex.de>
37610
37611 • Edward Q. Bridges <github@eqbridges.com>
37612
37613 • Vasiliy Tolstov <v.tolstov@selfip.ru>
37614
37615 • Harshavardhana <harsha@minio.io>
37616
37617 • sainaen <sainaen@gmail.com>
37618
37619 • gdm85 <gdm85@users.noreply.github.com>
37620
37621 • Yaroslav Halchenko <debian@onerussian.com>
37622
37623 • John Papandriopoulos <jpap@users.noreply.github.com>
37624
37625 • Zhiming Wang <zmwangx@gmail.com>
37626
37627 • Andy Pilate <cubox@cubox.me>
37628
37629 • Oliver Heyme <olihey@googlemail.com> <olihey@users.nore‐
37630 ply.github.com> <de8olihe@lego.com>
37631
37632 • wuyu <wuyu@yunify.com>
37633
37634 • Andrei Dragomir <adragomi@adobe.com>
37635
37636 • Christian Brüggemann <mail@cbruegg.com>
37637
37638 • Alex McGrath Kraak <amkdude@gmail.com>
37639
37640 • bpicode <bjoern.pirnay@googlemail.com>
37641
37642 • Daniel Jagszent <daniel@jagszent.de>
37643
37644 • Josiah White <thegenius2009@gmail.com>
37645
37646 • Ishuah Kariuki <kariuki@ishuah.com> <ishuah91@gmail.com>
37647
37648 • Jan Varho <jan@varho.org>
37649
37650 • Girish Ramakrishnan <girish@cloudron.io>
37651
37652 • LingMan <LingMan@users.noreply.github.com>
37653
37654 • Jacob McNamee <jacobmcnamee@gmail.com>
37655
37656 • jersou <jertux@gmail.com>
37657
37658 • thierry <thierry@substantiel.fr>
37659
37660 • Simon Leinen <simon.leinen@gmail.com> <ubuntu@s3-test.novalocal>
37661
37662 • Dan Dascalescu <ddascalescu+github@gmail.com>
37663
37664 • Jason Rose <jason@jro.io>
37665
37666 • Andrew Starr-Bochicchio <a.starr.b@gmail.com>
37667
37668 • John Leach <john@johnleach.co.uk>
37669
37670 • Corban Raun <craun@instructure.com>
37671
37672 • Pierre Carlson <mpcarl@us.ibm.com>
37673
37674 • Ernest Borowski <er.borowski@gmail.com>
37675
37676 • Remus Bunduc <remus.bunduc@gmail.com>
37677
37678 • Iakov Davydov <iakov.davydov@unil.ch> <dav05.gith@myths.ru>
37679
37680 • Jakub Tasiemski <tasiemski@gmail.com>
37681
37682 • David Minor <dminor@saymedia.com>
37683
37684 • Tim Cooijmans <cooijmans.tim@gmail.com>
37685
37686 • Laurence <liuxy6@gmail.com>
37687
37688 • Giovanni Pizzi <gio.piz@gmail.com>
37689
37690 • Filip Bartodziej <filipbartodziej@gmail.com>
37691
37692 • Jon Fautley <jon@dead.li>
37693
37694 • lewapm <32110057+lewapm@users.noreply.github.com>
37695
37696 • Yassine Imounachen <yassine256@gmail.com>
37697
37698 • Chris Redekop <chris-redekop@users.noreply.github.com> <chris.re‐
37699 dekop@gmail.com>
37700
37701 • Jon Fautley <jon@adenoid.appstal.co.uk>
37702
37703 • Will Gunn <WillGunn@users.noreply.github.com>
37704
37705 • Lucas Bremgartner <lucas@bremis.ch>
37706
37707 • Jody Frankowski <jody.frankowski@gmail.com>
37708
37709 • Andreas Roussos <arouss1980@gmail.com>
37710
37711 • nbuchanan <nbuchanan@utah.gov>
37712
37713 • Durval Menezes <rclone@durval.com>
37714
37715 • Victor <vb-github@viblo.se>
37716
37717 • Mateusz <pabian.mateusz@gmail.com>
37718
37719 • Daniel Loader <spicypixel@gmail.com>
37720
37721 • David0rk <davidork@gmail.com>
37722
37723 • Alexander Neumann <alexander@bumpern.de>
37724
37725 • Giri Badanahatti <gbadanahatti@us.ibm.com@Giris-MacBook-Pro.local>
37726
37727 • Leo R. Lundgren <leo@finalresort.org>
37728
37729 • wolfv <wolfv6@users.noreply.github.com>
37730
37731 • Dave Pedu <dave@davepedu.com>
37732
37733 • Stefan Lindblom <lindblom@spotify.com>
37734
37735 • seuffert <oliver@seuffert.biz>
37736
37737 • gbadanahatti <37121690+gbadanahatti@users.noreply.github.com>
37738
37739 • Keith Goldfarb <barkofdelight@gmail.com>
37740
37741 • Steve Kriss <steve@heptio.com>
37742
37743 • Chih-Hsuan Yen <yan12125@gmail.com>
37744
37745 • Alexander Neumann <fd0@users.noreply.github.com>
37746
37747 • Matt Holt <mholt@users.noreply.github.com>
37748
37749 • Eri Bastos <bastos.eri@gmail.com>
37750
37751 • Michael P. Dubner <pywebmail@list.ru>
37752
37753 • Antoine GIRARD <sapk@users.noreply.github.com>
37754
37755 • Mateusz Piotrowski <mpp302@gmail.com>
37756
37757 • Animosity022 <animosity22@users.noreply.github.com> <earl.tex‐
37758 ter@gmail.com>
37759
37760 • Peter Baumgartner <pete@lincolnloop.com>
37761
37762 • Craig Rachel <craig@craigrachel.com>
37763
37764 • Michael G. Noll <miguno@users.noreply.github.com>
37765
37766 • hensur <me@hensur.de>
37767
37768 • Oliver Heyme <de8olihe@lego.com>
37769
37770 • Richard Yang <richard@yenforyang.com>
37771
37772 • Piotr Oleszczyk <piotr.oleszczyk@gmail.com>
37773
37774 • Rodrigo <rodarima@gmail.com>
37775
37776 • NoLooseEnds <NoLooseEnds@users.noreply.github.com>
37777
37778 • Jakub Karlicek <jakub@karlicek.me>
37779
37780 • John Clayton <john@codemonkeylabs.com>
37781
37782 • Kasper Byrdal Nielsen <byrdal76@gmail.com>
37783
37784 • Benjamin Joseph Dag <bjdag1234@users.noreply.github.com>
37785
37786 • themylogin <themylogin@gmail.com>
37787
37788 • Onno Zweers <onno.zweers@surfsara.nl>
37789
37790 • Jasper Lievisse Adriaanse <jasper@humppa.nl>
37791
37792 • sandeepkru <sandeep.ummadi@gmail.com> <sandeepkru@users.nore‐
37793 ply.github.com>
37794
37795 • HerrH <atomtigerzoo@users.noreply.github.com>
37796
37797 • Andrew <4030760+sparkyman215@users.noreply.github.com>
37798
37799 • dan smith <XX1011@gmail.com>
37800
37801 • Oleg Kovalov <iamolegkovalov@gmail.com>
37802
37803 • Ruben Vandamme <github-com-00ff86@vandamme.email>
37804
37805 • Cnly <minecnly@gmail.com>
37806
37807 • Andres Alvarez <1671935+kir4h@users.noreply.github.com>
37808
37809 • reddi1 <xreddi@gmail.com>
37810
37811 • Matt Tucker <matthewtckr@gmail.com>
37812
37813 • Sebastian Bünger <buengese@gmail.com> <buengese@protonmail.com>
37814
37815 • Martin Polden <mpolden@mpolden.no>
37816
37817 • Alex Chen <Cnly@users.noreply.github.com>
37818
37819 • Denis <deniskovpen@gmail.com>
37820
37821 • bsteiss <35940619+bsteiss@users.noreply.github.com>
37822
37823 • Cédric Connes <cedric.connes@gmail.com>
37824
37825 • Dr. Tobias Quathamer <toddy15@users.noreply.github.com>
37826
37827 • dcpu <42736967+dcpu@users.noreply.github.com>
37828
37829 • Sheldon Rupp <me@shel.io>
37830
37831 • albertony <12441419+albertony@users.noreply.github.com>
37832
37833 • cron410 <cron410@gmail.com>
37834
37835 • Anagh Kumar Baranwal <6824881+darthShadow@users.noreply.github.com>
37836
37837 • Felix Brucker <felix@felixbrucker.com>
37838
37839 • Santiago Rodríguez <scollazo@users.noreply.github.com>
37840
37841 • Craig Miskell <craig.miskell@fluxfederation.com>
37842
37843 • Antoine GIRARD <sapk@sapk.fr>
37844
37845 • Joanna Marek <joanna.marek@u2i.com>
37846
37847 • frenos <frenos@users.noreply.github.com>
37848
37849 • ssaqua <ssaqua@users.noreply.github.com>
37850
37851 • xnaas <me@xnaas.info>
37852
37853 • Frantisek Fuka <fuka@fuxoft.cz>
37854
37855 • Paul Kohout <pauljkohout@yahoo.com>
37856
37857 • dcpu <43330287+dcpu@users.noreply.github.com>
37858
37859 • jackyzy823 <jackyzy823@gmail.com>
37860
37861 • David Haguenauer <ml@kurokatta.org>
37862
37863 • teresy <hi.teresy@gmail.com>
37864
37865 • buergi <patbuergi@gmx.de>
37866
37867 • Florian Gamboeck <mail@floga.de>
37868
37869 • Ralf Hemberger <10364191+rhemberger@users.noreply.github.com>
37870
37871 • Scott Edlund <sedlund@users.noreply.github.com>
37872
37873 • Erik Swanson <erik@retailnext.net>
37874
37875 • Jake Coggiano <jake@stripe.com>
37876
37877 • brused27 <brused27@noemailaddress>
37878
37879 • Peter Kaminski <kaminski@istori.com>
37880
37881 • Henry Ptasinski <henry@logout.com>
37882
37883 • Alexander <kharkovalexander@gmail.com>
37884
37885 • Garry McNulty <garrmcnu@gmail.com>
37886
37887 • Mathieu Carbou <mathieu.carbou@gmail.com>
37888
37889 • Mark Otway <mark@otway.com>
37890
37891 • William Cocker <37018962+WilliamCocker@users.noreply.github.com>
37892
37893 • François Leurent <131.js@cloudyks.org>
37894
37895 • Arkadius Stefanski <arkste@gmail.com>
37896
37897 • Jay <dev@jaygoel.com>
37898
37899 • andrea rota <a@xelera.eu>
37900
37901 • nicolov <nicolov@users.noreply.github.com>
37902
37903 • Dario Guzik <dario@guzik.com.ar>
37904
37905 • qip <qip@users.noreply.github.com>
37906
37907 • yair@unicorn <yair@unicorn>
37908
37909 • Matt Robinson <brimstone@the.narro.ws>
37910
37911 • kayrus <kay.diam@gmail.com>
37912
37913 • Rémy Léone <remy.leone@gmail.com>
37914
37915 • Wojciech Smigielski <wojciech.hieronim.smigielski@gmail.com>
37916
37917 • weetmuts <oehrstroem@gmail.com>
37918
37919 • Jonathan <vanillajonathan@users.noreply.github.com>
37920
37921 • James Carpenter <orbsmiv@users.noreply.github.com>
37922
37923 • Vince <vince0villamora@gmail.com>
37924
37925 • Nestar47 <47841759+Nestar47@users.noreply.github.com>
37926
37927 • Six <brbsix@gmail.com>
37928
37929 • Alexandru Bumbacea <alexandru.bumbacea@booking.com>
37930
37931 • calisro <robert.calistri@gmail.com>
37932
37933 • Dr.Rx <david.rey@nventive.com>
37934
37935 • marcintustin <marcintustin@users.noreply.github.com>
37936
37937 • jaKa Močnik <jaka@koofr.net>
37938
37939 • Fionera <fionera@fionera.de>
37940
37941 • Dan Walters <dan@walters.io>
37942
37943 • Danil Semelenov <sgtpep@users.noreply.github.com>
37944
37945 • xopez <28950736+xopez@users.noreply.github.com>
37946
37947 • Ben Boeckel <mathstuf@gmail.com>
37948
37949 • Manu <manu@snapdragon.cc>
37950
37951 • Kyle E. Mitchell <kyle@kemitchell.com>
37952
37953 • Gary Kim <gary@garykim.dev>
37954
37955 • Jon <jonathn@github.com>
37956
37957 • Jeff Quinn <jeffrey.quinn@bluevoyant.com>
37958
37959 • Peter Berbec <peter@berbec.com>
37960
37961 • didil <1284255+didil@users.noreply.github.com>
37962
37963 • id01 <gaviniboom@gmail.com>
37964
37965 • Robert Marko <robimarko@gmail.com>
37966
37967 • Philip Harvey <32467456+pharveybattelle@users.noreply.github.com>
37968
37969 • JorisE <JorisE@users.noreply.github.com>
37970
37971 • garry415 <garry.415@gmail.com>
37972
37973 • forgems <forgems@gmail.com>
37974
37975 • Florian Apolloner <florian@apolloner.eu>
37976
37977 • Aleksandar Janković <office@ajankovic.com> <ajankovic@users.nore‐
37978 ply.github.com>
37979
37980 • Maran <maran@protonmail.com>
37981
37982 • nguyenhuuluan434 <nguyenhuuluan434@gmail.com>
37983
37984 • Laura Hausmann <zotan@zotan.pw> <laura@hausmann.dev>
37985
37986 • yparitcher <y@paritcher.com>
37987
37988 • AbelThar <abela.tharen@gmail.com>
37989
37990 • Matti Niemenmaa <matti.niemenmaa+git@iki.fi>
37991
37992 • Russell Davis <russelldavis@users.noreply.github.com>
37993
37994 • Yi FU <yi.fu@tink.se>
37995
37996 • Paul Millar <paul.millar@desy.de>
37997
37998 • justinalin <justinalin@qnap.com>
37999
38000 • EliEron <subanimehd@gmail.com>
38001
38002 • justina777 <chiahuei.lin@gmail.com>
38003
38004 • Chaitanya Bankanhal <bchaitanya15@gmail.com>
38005
38006 • Michał Matczuk <michal@scylladb.com>
38007
38008 • Macavirus <macavirus@zoho.com>
38009
38010 • Abhinav Sharma <abhi18av@users.noreply.github.com>
38011
38012 • ginvine <34869051+ginvine@users.noreply.github.com>
38013
38014 • Patrick Wang <mail6543210@yahoo.com.tw>
38015
38016 • Cenk Alti <cenkalti@gmail.com>
38017
38018 • Andreas Chlupka <andy@chlupka.com>
38019
38020 • Alfonso Montero <amontero@tinet.org>
38021
38022 • Ivan Andreev <ivandeex@gmail.com>
38023
38024 • David Baumgold <david@davidbaumgold.com>
38025
38026 • Lars Lehtonen <lars.lehtonen@gmail.com>
38027
38028 • Matei David <matei.david@gmail.com>
38029
38030 • David <david.bramwell@endemolshine.com>
38031
38032 • Anthony Rusdi <33247310+antrusd@users.noreply.github.com>
38033
38034 • Richard Patel <me@terorie.dev>
38035
38036 • 庄天翼 <zty0826@gmail.com>
38037
38038 • SwitchJS <dev@switchjs.com>
38039
38040 • Raphael <PowershellNinja@users.noreply.github.com>
38041
38042 • Sezal Agrawal <sezalagrawal@gmail.com>
38043
38044 • Tyler <TylerNakamura@users.noreply.github.com>
38045
38046 • Brett Dutro <brett.dutro@gmail.com>
38047
38048 • Vighnesh SK <booterror99@gmail.com>
38049
38050 • Arijit Biswas <dibbyo456@gmail.com>
38051
38052 • Michele Caci <michele.caci@gmail.com>
38053
38054 • AlexandrBoltris <ua2fgb@gmail.com>
38055
38056 • Bryce Larson <blarson@saltstack.com>
38057
38058 • Carlos Ferreyra <crypticmind@gmail.com>
38059
38060 • Saksham Khanna <sakshamkhanna@outlook.com>
38061
38062 • dausruddin <5763466+dausruddin@users.noreply.github.com>
38063
38064 • zero-24 <zero-24@users.noreply.github.com>
38065
38066 • Xiaoxing Ye <ye@xiaoxing.us>
38067
38068 • Barry Muldrey <barry@muldrey.net>
38069
38070 • Sebastian Brandt <sebastian.brandt@friday.de>
38071
38072 • Marco Molteni <marco.molteni@mailbox.org>
38073
38074 • Ankur Gupta <ankur0493@gmail.com> <7876747+ankur0493@users.nore‐
38075 ply.github.com>
38076
38077 • Maciej Zimnoch <maciej@scylladb.com>
38078
38079 • anuar45 <serdaliyev.anuar@gmail.com>
38080
38081 • Fernando <ferferga@users.noreply.github.com>
38082
38083 • David Cole <david.cole@sohonet.com>
38084
38085 • Wei He <git@weispot.com>
38086
38087 • Outvi V <19144373+outloudvi@users.noreply.github.com>
38088
38089 • Thomas Kriechbaumer <thomas@kriechbaumer.name>
38090
38091 • Tennix <tennix@users.noreply.github.com>
38092
38093 • Ole Schütt <ole@schuett.name>
38094
38095 • Kuang-che Wu <kcwu@csie.org>
38096
38097 • Thomas Eales <wingsuit@users.noreply.github.com>
38098
38099 • Paul Tinsley <paul.tinsley@vitalsource.com>
38100
38101 • Felix Hungenberg <git@shiftgeist.com>
38102
38103 • Benjamin Richter <github@dev.telepath.de>
38104
38105 • landall <cst_zf@qq.com>
38106
38107 • thestigma <thestigma@gmail.com>
38108
38109 • jtagcat <38327267+jtagcat@users.noreply.github.com>
38110
38111 • Damon Permezel <permezel@me.com>
38112
38113 • boosh <boosh@users.noreply.github.com>
38114
38115 • unbelauscht <58393353+unbelauscht@users.noreply.github.com>
38116
38117 • Motonori IWAMURO <vmi@nifty.com>
38118
38119 • Benjapol Worakan <benwrk@live.com>
38120
38121 • Dave Koston <dave.koston@stackpath.com>
38122
38123 • Durval Menezes <DurvalMenezes@users.noreply.github.com>
38124
38125 • Tim Gallant <me@timgallant.us>
38126
38127 • Frederick Zhang <frederick888@tsundere.moe>
38128
38129 • valery1707 <valery1707@gmail.com>
38130
38131 • Yves G <theYinYeti@yalis.fr>
38132
38133 • Shing Kit Chan <chanshingkit@gmail.com>
38134
38135 • Franklyn Tackitt <franklyn@tackitt.net>
38136
38137 • Robert-André Mauchin <zebob.m@gmail.com>
38138
38139 • evileye <48332831+ibiruai@users.noreply.github.com>
38140
38141 • Joachim Brandon LeBlanc <brandon@leblanc.codes>
38142
38143 • Patryk Jakuszew <patryk.jakuszew@gmail.com>
38144
38145 • fishbullet <shindu666@gmail.com>
38146
38147 • greatroar <@>
38148
38149 • Bernd Schoolmann <mail@quexten.com>
38150
38151 • Elan Ruusamäe <glen@pld-linux.org>
38152
38153 • Max Sum <max@lolyculture.com>
38154
38155 • Mark Spieth <mspieth@users.noreply.github.com>
38156
38157 • harry <me@harry.plus>
38158
38159 • Samantha McVey <samantham@posteo.net>
38160
38161 • Jack Anderson <jack.anderson@metaswitch.com>
38162
38163 • Michael G <draget@speciesm.net>
38164
38165 • Brandon Philips <brandon@ifup.org>
38166
38167 • Daven <dooven@users.noreply.github.com>
38168
38169 • Martin Stone <martin@d7415.co.uk>
38170
38171 • David Bramwell <13053834+dbramwell@users.noreply.github.com>
38172
38173 • Sunil Patra <snl_su@live.com>
38174
38175 • Adam Stroud <adam.stroud@gmail.com>
38176
38177 • Kush <kushsharma@users.noreply.github.com>
38178
38179 • Matan Rosenberg <matan129@gmail.com>
38180
38181 • gitch1 <63495046+gitch1@users.noreply.github.com>
38182
38183 • ElonH <elonhhuang@gmail.com>
38184
38185 • Fred <fred@creativeprojects.tech>
38186
38187 • Sébastien Gross <renard@users.noreply.github.com>
38188
38189 • Maxime Suret <11944422+msuret@users.noreply.github.com>
38190
38191 • Caleb Case <caleb@storj.io>
38192
38193 • Ben Zenker <imbenzenker@gmail.com>
38194
38195 • Martin Michlmayr <tbm@cyrius.com>
38196
38197 • Brandon McNama <bmcnama@pagerduty.com>
38198
38199 • Daniel Slyman <github@skylayer.eu>
38200
38201 • Alex Guerrero <guerrero@users.noreply.github.com>
38202
38203 • Matteo Pietro Dazzi <matteopietro.dazzi@gft.com>
38204
38205 • edwardxml <56691903+edwardxml@users.noreply.github.com>
38206
38207 • Roman Kredentser <shareed2k@gmail.com>
38208
38209 • Kamil Trzciński <ayufan@ayufan.eu>
38210
38211 • Zac Rubin <z-0@users.noreply.github.com>
38212
38213 • Vincent Feltz <psycho@feltzv.fr>
38214
38215 • Heiko Bornholdt <bornholdt@informatik.uni-hamburg.de>
38216
38217 • Matteo Pietro Dazzi <matteopietro.dazzi@gmail.com>
38218
38219 • jtagcat <gitlab@c7.ee>
38220
38221 • Petri Salminen <petri@salminen.dev>
38222
38223 • Tim Burke <tim.burke@gmail.com>
38224
38225 • Kai Lüke <kai@kinvolk.io>
38226
38227 • Garrett Squire <github@garrettsquire.com>
38228
38229 • Evan Harris <eharris@puremagic.com>
38230
38231 • Kevin <keyam@microsoft.com>
38232
38233 • Morten Linderud <morten@linderud.pw>
38234
38235 • Dmitry Ustalov <dmitry.ustalov@gmail.com>
38236
38237 • Jack <196648+jdeng@users.noreply.github.com>
38238
38239 • kcris <cristian.tarsoaga@gmail.com>
38240
38241 • tyhuber1 <68970760+tyhuber1@users.noreply.github.com>
38242
38243 • David Ibarra <david.ibarra@realty.com>
38244
38245 • Tim Gallant <tim@lilt.com>
38246
38247 • Kaloyan Raev <kaloyan@storj.io>
38248
38249 • Jay McEntire <jay.mcentire@gmail.com>
38250
38251 • Leo Luan <leoluan@us.ibm.com>
38252
38253 • aus <549081+aus@users.noreply.github.com>
38254
38255 • Aaron Gokaslan <agokaslan@fb.com>
38256
38257 • Egor Margineanu <egmar@users.noreply.github.com>
38258
38259 • Lucas Kanashiro <lucas.kanashiro@canonical.com>
38260
38261 • WarpedPixel <WarpedPixel@users.noreply.github.com>
38262
38263 • Sam Edwards <sam@samedwards.ca>
38264
38265 • wjielai <gouki0123@gmail.com>
38266
38267 • Muffin King <jinxz_k@live.com>
38268
38269 • Christopher Stewart <6573710+1f47a@users.noreply.github.com>
38270
38271 • Russell Cattelan <cattelan@digitalelves.com>
38272
38273 • gyutw <30371241+gyutw@users.noreply.github.com>
38274
38275 • Hekmon <edouardhur@gmail.com>
38276
38277 • LaSombra <lasombra@users.noreply.github.com>
38278
38279 • Dov Murik <dov.murik@gmail.com>
38280
38281 • Ameer Dawood <ameer1234567890@gmail.com>
38282
38283 • Dan Hipschman <dan.hipschman@opendoor.com>
38284
38285 • Josh Soref <jsoref@users.noreply.github.com>
38286
38287 • David <david@staron.nl>
38288
38289 • Ingo <ingo@hoffmann.cx>
38290
38291 • Adam Plánský <adamplansky@users.noreply.github.com> <adamplan‐
38292 sky@gmail.com>
38293
38294 • Manish Gupta <manishgupta.ait@gmail.com>
38295
38296 • Deepak Sah <sah.sslpu@gmail.com>
38297
38298 • Marcin Zelent <marcin@zelent.net>
38299
38300 • zhucan <zhucan.k8s@gmail.com>
38301
38302 • James Lim <james.lim@samsara.com>
38303
38304 • Laurens Janssen <BD69BM@insim.biz>
38305
38306 • Bob Bagwill <bobbagwill@gmail.com>
38307
38308 • Nathan Collins <colli372@msu.edu>
38309
38310 • lostheli
38311
38312 • kelv <kelvin@acks.org>
38313
38314 • Milly <milly.ca@gmail.com>
38315
38316 • gtorelly <gtorelly@gmail.com>
38317
38318 • Brad Ackerman <brad@facefault.org>
38319
38320 • Mitsuo Heijo <mitsuo.heijo@gmail.com>
38321
38322 • Claudio Bantaloukas <rockdreamer@gmail.com>
38323
38324 • Benjamin Gustin <gustin.ben@gmail.com>
38325
38326 • Ingo Weiss <ingo@redhat.com>
38327
38328 • Kerry Su <me@sshockwave.net>
38329
38330 • Ilyess Bachiri <ilyess.bachiri@sonder.com>
38331
38332 • Yury Stankevich <urykhy@gmail.com>
38333
38334 • kice <wslikerqs@gmail.com>
38335
38336 • Denis Neuling <denisneuling@gmail.com>
38337
38338 • Janne Johansson <icepic.dz@gmail.com>
38339
38340 • Patrik Nordlén <patriki@gmail.com>
38341
38342 • CokeMine <aptx4561@gmail.com>
38343
38344 • Sơn Trần-Nguyễn <github@sntran.com>
38345
38346 • lluuaapp <266615+lluuaapp@users.noreply.github.com>
38347
38348 • Zach Kipp <kipp.zach@gmail.com>
38349
38350 • Riccardo Iaconelli <riccardo@kde.org>
38351
38352 • Sakuragawa Misty <gyc990326@gmail.com>
38353
38354 • Nicolas Rueff <nicolas@rueff.fr>
38355
38356 • Pau Rodriguez-Estivill <prodrigestivill@gmail.com>
38357
38358 • Bob Pusateri <BobPusateri@users.noreply.github.com>
38359
38360 • Alex JOST <25005220+dimejo@users.noreply.github.com>
38361
38362 • Alexey Tabakman <samosad.ru@gmail.com>
38363
38364 • David Sze <sze.david@gmail.com>
38365
38366 • cynthia kwok <cynthia.m.kwok@gmail.com>
38367
38368 • Ankur Gupta <agupta@egnyte.com>
38369
38370 • Miron Veryanskiy <MironVeryanskiy@gmail.com>
38371
38372 • K265 <k.265@qq.com>
38373
38374 • Vesnyx <Vesnyx@users.noreply.github.com>
38375
38376 • Dmitry Chepurovskiy <me@dm3ch.net>
38377
38378 • Rauno Ots <rauno.ots@cgi.com>
38379
38380 • Georg Neugschwandtner <georg.neugschwandtner@gmx.net>
38381
38382 • pvalls <polvallsrue@gmail.com>
38383
38384 • Robert Thomas <31854736+wolveix@users.noreply.github.com>
38385
38386 • Romeo Kienzler <romeo.kienzler@gmail.com>
38387
38388 • tYYGH <tYYGH@users.noreply.github.com>
38389
38390 • georne <77802995+georne@users.noreply.github.com>
38391
38392 • Maxwell Calman <mcalman@MacBook-Pro.local>
38393
38394 • Naveen Honest Raj <naveendurai19@gmail.com>
38395
38396 • Lucas Messenger <lmesseng@cisco.com>
38397
38398 • Manish Kumar <krmanish260@gmail.com>
38399
38400 • x0b <x0bdev@gmail.com>
38401
38402 • CERN through the CS3MESH4EOSC Project
38403
38405 Forum
38406 Forum for questions and general discussion:
38407
38408 • https://forum.rclone.org
38409
38410 GitHub repository
38411 The project's repository is located at:
38412
38413 • https://github.com/rclone/rclone
38414
38415 There you can file bug reports or contribute with pull requests.
38416
38417 Twitter
38418 You can also follow me on twitter for rclone announcements:
38419
38420 • [@njcw](https://twitter.com/njcw)
38421
38422 Email
38423 Or if all else fails or you want to ask something private or confiden‐
38424 tial email Nick Craig-Wood (mailto:nick@craig-wood.com). Please don't
38425 email me requests for help - those are better directed to the forum.
38426 Thanks!
38427
38429 Nick Craig-Wood.
38430
38431
38432
38433User Manual Apr 26, 2021 rclone(1)