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 Script installation
268 To install rclone on Linux/macOS/BSD systems, run:
269
270 curl https://rclone.org/install.sh | sudo bash
271
272 For beta installation, run:
273
274 curl https://rclone.org/install.sh | sudo bash -s beta
275
276 Note that this script checks the version of rclone installed first and
277 won't re-download if not needed.
278
279 Linux installation from precompiled binary
280 Fetch and unpack
281
282 curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
283 unzip rclone-current-linux-amd64.zip
284 cd rclone-*-linux-amd64
285
286 Copy binary file
287
288 sudo cp rclone /usr/bin/
289 sudo chown root:root /usr/bin/rclone
290 sudo chmod 755 /usr/bin/rclone
291
292 Install manpage
293
294 sudo mkdir -p /usr/local/share/man/man1
295 sudo cp rclone.1 /usr/local/share/man/man1/
296 sudo mandb
297
298 Run rclone config to setup. See rclone config docs
299 (https://rclone.org/docs/) for more details.
300
301 rclone config
302
303 macOS installation with brew
304 brew install rclone
305
306 macOS installation from precompiled binary, using curl
307 To avoid problems with macOS gatekeeper enforcing the binary to be
308 signed and notarized it is enough to download with curl.
309
310 Download the latest version of rclone.
311
312 cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
313
314 Unzip the download and cd to the extracted folder.
315
316 unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
317
318 Move rclone to your $PATH. You will be prompted for your password.
319
320 sudo mkdir -p /usr/local/bin
321 sudo mv rclone /usr/local/bin/
322
323 (the mkdir command is safe to run, even if the directory already ex‐
324 ists).
325
326 Remove the leftover files.
327
328 cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
329
330 Run rclone config to setup. See rclone config docs
331 (https://rclone.org/docs/) for more details.
332
333 rclone config
334
335 macOS installation from precompiled binary, using a web browser
336 When downloading a binary with a web browser, the browser will set the
337 macOS gatekeeper quarantine attribute. Starting from Catalina, when
338 attempting to run rclone, a pop-up will appear saying:
339
340 “rclone” cannot be opened because the developer cannot be verified.
341 macOS cannot verify that this app is free from malware.
342
343 The simplest fix is to run
344
345 xattr -d com.apple.quarantine rclone
346
347 Install with docker
348 The rclone maintains a docker image for rclone (https://hub.dock‐
349 er.com/r/rclone/rclone). These images are autobuilt by docker hub from
350 the rclone source based on a minimal Alpine linux image.
351
352 The :latest tag will always point to the latest stable release. You
353 can use the :beta tag to get the latest build from master. You can al‐
354 so use version tags, e.g. :1.49.1, :1.49 or :1.
355
356 $ docker pull rclone/rclone:latest
357 latest: Pulling from rclone/rclone
358 Digest: sha256:0e0ced72671989bb837fea8e88578b3fc48371aa45d209663683e24cfdaa0e11
359 ...
360 $ docker run --rm rclone/rclone:latest version
361 rclone v1.49.1
362 - os/arch: linux/amd64
363 - go version: go1.12.9
364
365 There are a few command line options to consider when starting an
366 rclone Docker container from the rclone image.
367
368 · You need to mount the host rclone config dir at /config/rclone into
369 the Docker container. Due to the fact that rclone updates tokens in‐
370 side its config file, and that the update process involves a file re‐
371 name, you need to mount the whole host rclone config dir, not just
372 the single host rclone config file.
373
374 · You need to mount a host data dir at /data into the Docker container.
375
376 · By default, the rclone binary inside a Docker container runs with
377 UID=0 (root). As a result, all files created in a run will have
378 UID=0. If your config and data files reside on the host with a
379 non-root UID:GID, you need to pass these on the container start com‐
380 mand line.
381
382 · If you want to access the RC interface (either via the API or the Web
383 UI), it is required to set the --rc-addr to :5572 in order to connect
384 to it from outside the container. An explanation about why this is
385 necessary is present here (https://web.ar‐
386 chive.org/web/20200808071950/https://pythonspeed.com/articles/docker-
387 connection-refused/).
388
389 · NOTE: Users running this container with the docker network set to
390 host should probably set it to listen to localhost only, with
391 127.0.0.1:5572 as the value for --rc-addr
392
393 · It is possible to use rclone mount inside a userspace Docker contain‐
394 er, and expose the resulting fuse mount to the host. The exact dock‐
395 er run options to do that might vary slightly between hosts. See,
396 e.g. the discussion in this thread (https://github.com/moby/moby/is‐
397 sues/9448).
398
399 You also need to mount the host /etc/passwd and /etc/group for fuse
400 to work inside the container.
401
402 Here are some commands tested on an Ubuntu 18.04.3 host:
403
404 # config on host at ~/.config/rclone/rclone.conf
405 # data on host at ~/data
406
407 # make sure the config is ok by listing the remotes
408 docker run --rm \
409 --volume ~/.config/rclone:/config/rclone \
410 --volume ~/data:/data:shared \
411 --user $(id -u):$(id -g) \
412 rclone/rclone \
413 listremotes
414
415 # perform mount inside Docker container, expose result to host
416 mkdir -p ~/data/mount
417 docker run --rm \
418 --volume ~/.config/rclone:/config/rclone \
419 --volume ~/data:/data:shared \
420 --user $(id -u):$(id -g) \
421 --volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
422 --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
423 rclone/rclone \
424 mount dropbox:Photos /data/mount &
425 ls ~/data/mount
426 kill %1
427
428 Install from source
429 Make sure you have at least Go (https://golang.org/) 1.12 installed.
430 Download go (https://golang.org/dl/) if necessary. The latest release
431 is recommended. Then
432
433 git clone https://github.com/rclone/rclone.git
434 cd rclone
435 go build
436 ./rclone version
437
438 This will leave you a checked out version of rclone you can modify and
439 send pull requests with. If you use make instead of go build then the
440 rclone build will have the correct version information in it.
441
442 You can also build the latest stable rclone with:
443
444 go get github.com/rclone/rclone
445
446 or the latest version (equivalent to the beta) with
447
448 go get github.com/rclone/rclone@master
449
450 These will build the binary in $(go env GOPATH)/bin (~/go/bin/rclone by
451 default) after downloading the source to the go module cache. Note -
452 do not use the -u flag here. This causes go to try to update the de‐
453 pendencies that rclone uses and sometimes these don't work with the
454 current version of rclone.
455
456 Installation with Ansible
457 This can be done with Stefan Weichinger's ansible role
458 (https://github.com/stefangweichinger/ansible-rclone).
459
460 Instructions
461
462 1. git clone https://github.com/stefangweichinger/ansible-rclone.git
463 into your local roles-directory
464
465 2. add the role to the hosts you want rclone installed to:
466
467 - hosts: rclone-hosts
468 roles:
469 - rclone
470
471 Configure
472 First, you'll need to configure rclone. As the object storage systems
473 have quite complicated authentication these are kept in a config file.
474 (See the --config entry for how to find the config file and choose its
475 location.)
476
477 The easiest way to make the config is to run rclone with the config op‐
478 tion:
479
480 rclone config
481
482 See the following for detailed instructions for
483
484 · 1Fichier (https://rclone.org/fichier/)
485
486 · Alias (https://rclone.org/alias/)
487
488 · Amazon Drive (https://rclone.org/amazonclouddrive/)
489
490 · Amazon S3 (https://rclone.org/s3/)
491
492 · Backblaze B2 (https://rclone.org/b2/)
493
494 · Box (https://rclone.org/box/)
495
496 · Cache (https://rclone.org/cache/)
497
498 · Chunker (https://rclone.org/chunker/) - transparently splits large
499 files for other remotes
500
501 · Citrix ShareFile (https://rclone.org/sharefile/)
502
503 · Compress (https://rclone.org/compress/)
504
505 · Crypt (https://rclone.org/crypt/) - to encrypt other remotes
506
507 · DigitalOcean Spaces (https://rclone.org/s3/#digitalocean-spaces)
508
509 · Dropbox (https://rclone.org/dropbox/)
510
511 · Enterprise File Fabric (https://rclone.org/filefabric/)
512
513 · FTP (https://rclone.org/ftp/)
514
515 · Google Cloud Storage (https://rclone.org/googlecloudstorage/)
516
517 · Google Drive (https://rclone.org/drive/)
518
519 · Google Photos (https://rclone.org/googlephotos/)
520
521 · HDFS (https://rclone.org/hdfs/)
522
523 · HTTP (https://rclone.org/http/)
524
525 · Hubic (https://rclone.org/hubic/)
526
527 · Jottacloud / GetSky.no (https://rclone.org/jottacloud/)
528
529 · Koofr (https://rclone.org/koofr/)
530
531 · Mail.ru Cloud (https://rclone.org/mailru/)
532
533 · Mega (https://rclone.org/mega/)
534
535 · Memory (https://rclone.org/memory/)
536
537 · Microsoft Azure Blob Storage (https://rclone.org/azureblob/)
538
539 · Microsoft OneDrive (https://rclone.org/onedrive/)
540
541 · OpenStack Swift / Rackspace Cloudfiles / Memset Memstore
542 (https://rclone.org/swift/)
543
544 · OpenDrive (https://rclone.org/opendrive/)
545
546 · Pcloud (https://rclone.org/pcloud/)
547
548 · premiumize.me (https://rclone.org/premiumizeme/)
549
550 · put.io (https://rclone.org/putio/)
551
552 · QingStor (https://rclone.org/qingstor/)
553
554 · Seafile (https://rclone.org/seafile/)
555
556 · SFTP (https://rclone.org/sftp/)
557
558 · SugarSync (https://rclone.org/sugarsync/)
559
560 · Tardigrade (https://rclone.org/tardigrade/)
561
562 · Union (https://rclone.org/union/)
563
564 · WebDAV (https://rclone.org/webdav/)
565
566 · Yandex Disk (https://rclone.org/yandex/)
567
568 · Zoho WorkDrive (https://rclone.org/zoho/)
569
570 · The local filesystem (https://rclone.org/local/)
571
572 Usage
573 Rclone syncs a directory tree from one storage system to another.
574
575 Its syntax is like this
576
577 Syntax: [options] subcommand <parameters> <parameters...>
578
579 Source and destination paths are specified by the name you gave the
580 storage system in the config file then the sub path, e.g. "drive:my‐
581 folder" to look at "myfolder" in Google drive.
582
583 You can define as many storage paths as you like in the config file.
584
585 Please use the -i / --interactive flag while learning rclone to avoid
586 accidental data loss.
587
588 Subcommands
589 rclone uses a system of subcommands. For example
590
591 rclone ls remote:path # lists a remote
592 rclone copy /local/path remote:path # copies /local/path to the remote
593 rclone sync -i /local/path remote:path # syncs /local/path to the remote
594
596 Enter an interactive configuration session.
597
598 Synopsis
599 Enter an interactive configuration session where you can setup new re‐
600 motes and manage existing ones. You may also set or remove a password
601 to protect your configuration.
602
603 rclone config [flags]
604
605 Options
606 -h, --help help for config
607
608 See the global flags page (https://rclone.org/flags/) for global op‐
609 tions not listed here.
610
611 SEE ALSO
612 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
613 commands, flags and backends.
614
615 · rclone config create (https://rclone.org/commands/rclone_config_cre‐
616 ate/) - Create a new remote with name, type and options.
617
618 · rclone config delete (https://rclone.org/commands/rclone_con‐
619 fig_delete/) - Delete an existing remote name.
620
621 · rclone config disconnect (https://rclone.org/commands/rclone_con‐
622 fig_disconnect/) - Disconnects user from remote
623
624 · rclone config dump (https://rclone.org/commands/rclone_config_dump/)
625 - Dump the config file as JSON.
626
627 · rclone config edit (https://rclone.org/commands/rclone_config_edit/)
628 - Enter an interactive configuration session.
629
630 · rclone config file (https://rclone.org/commands/rclone_config_file/)
631 - Show path of configuration file in use.
632
633 · rclone config password (https://rclone.org/commands/rclone_con‐
634 fig_password/) - Update password in an existing remote.
635
636 · rclone config providers (https://rclone.org/commands/rclone_con‐
637 fig_providers/) - List in JSON format all the providers and options.
638
639 · rclone config reconnect (https://rclone.org/commands/rclone_con‐
640 fig_reconnect/) - Re-authenticates user with remote.
641
642 · rclone config show (https://rclone.org/commands/rclone_config_show/)
643 - Print (decrypted) config file, or the config for a single remote.
644
645 · rclone config update (https://rclone.org/commands/rclone_config_up‐
646 date/) - Update options in an existing remote.
647
648 · rclone config userinfo (https://rclone.org/commands/rclone_con‐
649 fig_userinfo/) - Prints info about logged in user of remote.
650
652 Copy files from source to dest, skipping already copied.
653
654 Synopsis
655 Copy the source to the destination. Doesn't transfer unchanged files,
656 testing by size and modification time or MD5SUM. Doesn't delete files
657 from the destination.
658
659 Note that it is always the contents of the directory that is synced,
660 not the directory so when source:path is a directory, it's the contents
661 of source:path that are copied, not the directory name and contents.
662
663 If dest:path doesn't exist, it is created and the source:path contents
664 go there.
665
666 For example
667
668 rclone copy source:sourcepath dest:destpath
669
670 Let's say there are two files in sourcepath
671
672 sourcepath/one.txt
673 sourcepath/two.txt
674
675 This copies them to
676
677 destpath/one.txt
678 destpath/two.txt
679
680 Not to
681
682 destpath/sourcepath/one.txt
683 destpath/sourcepath/two.txt
684
685 If you are familiar with rsync, rclone always works as if you had writ‐
686 ten a trailing / - meaning "copy the contents of this directory". This
687 applies to all commands and whether you are talking about the source or
688 destination.
689
690 See the --no-traverse (https://rclone.org/docs/#no-traverse) option for
691 controlling whether rclone lists the destination directory or not.
692 Supplying this option when copying a small number of files into a large
693 destination can speed transfers up greatly.
694
695 For example, if you have many files in /path/to/src but only a few of
696 them change every day, you can copy all the files which have changed
697 recently very efficiently like this:
698
699 rclone copy --max-age 24h --no-traverse /path/to/src remote:
700
701 Note: Use the -P/--progress flag to view real-time transfer statistics.
702
703 Note: Use the --dry-run or the --interactive/-i flag to test without
704 copying anything.
705
706 rclone copy source:path dest:path [flags]
707
708 Options
709 --create-empty-src-dirs Create empty source dirs on destination after copy
710 -h, --help help for copy
711
712 See the global flags page (https://rclone.org/flags/) for global op‐
713 tions not listed here.
714
715 SEE ALSO
716 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
717 commands, flags and backends.
718
720 Make source and dest identical, modifying destination only.
721
722 Synopsis
723 Sync the source to the destination, changing the destination only.
724 Doesn't transfer unchanged files, testing by size and modification time
725 or MD5SUM. Destination is updated to match source, including deleting
726 files if necessary.
727
728 Important: Since this can cause data loss, test first with the
729 --dry-run or the --interactive/-i flag.
730
731 rclone sync -i SOURCE remote:DESTINATION
732
733 Note that files in the destination won't be deleted if there were any
734 errors at any point.
735
736 It is always the contents of the directory that is synced, not the di‐
737 rectory so when source:path is a directory, it's the contents of
738 source:path that are copied, not the directory name and contents. See
739 extended explanation in the copy command above if unsure.
740
741 If dest:path doesn't exist, it is created and the source:path contents
742 go there.
743
744 Note: Use the -P/--progress flag to view real-time transfer statistics
745
746 rclone sync source:path dest:path [flags]
747
748 Options
749 --create-empty-src-dirs Create empty source dirs on destination after sync
750 -h, --help help for sync
751
752 See the global flags page (https://rclone.org/flags/) for global op‐
753 tions not listed here.
754
755 SEE ALSO
756 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
757 commands, flags and backends.
758
760 Move files from source to dest.
761
762 Synopsis
763 Moves the contents of the source directory to the destination directo‐
764 ry. Rclone will error if the source and destination overlap and the
765 remote does not support a server-side directory move operation.
766
767 If no filters are in use and if possible this will server-side move
768 source:path into dest:path. After this source:path will no longer ex‐
769 ist.
770
771 Otherwise for each file in source:path selected by the filters (if any)
772 this will move it into dest:path. If possible a server-side move will
773 be used, otherwise it will copy it (server-side if possible) into
774 dest:path then delete the original (if no errors on copy) in
775 source:path.
776
777 If you want to delete empty source directories after move, use the
778 --delete-empty-src-dirs flag.
779
780 See the --no-traverse (https://rclone.org/docs/#no-traverse) option for
781 controlling whether rclone lists the destination directory or not.
782 Supplying this option when moving a small number of files into a large
783 destination can speed transfers up greatly.
784
785 Important: Since this can cause data loss, test first with the
786 --dry-run or the --interactive/-i flag.
787
788 Note: Use the -P/--progress flag to view real-time transfer statistics.
789
790 rclone move source:path dest:path [flags]
791
792 Options
793 --create-empty-src-dirs Create empty source dirs on destination after move
794 --delete-empty-src-dirs Delete empty source dirs after move
795 -h, --help help for move
796
797 See the global flags page (https://rclone.org/flags/) for global op‐
798 tions not listed here.
799
800 SEE ALSO
801 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
802 commands, flags and backends.
803
805 Remove the files in path.
806
807 Synopsis
808 Remove the files in path. Unlike purge it obeys include/exclude fil‐
809 ters so can be used to selectively delete files.
810
811 rclone delete only deletes files but leaves the directory structure
812 alone. If you want to delete a directory and all of its contents use
813 the purge command.
814
815 If you supply the --rmdirs flag, it will remove all empty directories
816 along with it. You can also use the separate command rmdir or rmdirs
817 to delete empty directories only.
818
819 For example, to delete all files bigger than 100MBytes, you may first
820 want to check what would be deleted (use either):
821
822 rclone --min-size 100M lsl remote:path
823 rclone --dry-run --min-size 100M delete remote:path
824
825 Then proceed with the actual delete:
826
827 rclone --min-size 100M delete remote:path
828
829 That reads "delete everything with a minimum size of 100 MB", hence
830 delete all files bigger than 100MBytes.
831
832 Important: Since this can cause data loss, test first with the
833 --dry-run or the --interactive/-i flag.
834
835 rclone delete remote:path [flags]
836
837 Options
838 -h, --help help for delete
839 --rmdirs rmdirs removes empty directories but leaves root intact
840
841 See the global flags page (https://rclone.org/flags/) for global op‐
842 tions not listed here.
843
844 SEE ALSO
845 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
846 commands, flags and backends.
847
849 Remove the path and all of its contents.
850
851 Synopsis
852 Remove the path and all of its contents. Note that this does not obey
853 include/exclude filters - everything will be removed. Use the delete
854 command if you want to selectively delete files. To delete empty di‐
855 rectories only, use command rmdir or rmdirs.
856
857 Important: Since this can cause data loss, test first with the
858 --dry-run or the --interactive/-i flag.
859
860 rclone purge remote:path [flags]
861
862 Options
863 -h, --help help for purge
864
865 See the global flags page (https://rclone.org/flags/) for global op‐
866 tions not listed here.
867
868 SEE ALSO
869 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
870 commands, flags and backends.
871
873 Make the path if it doesn't already exist.
874
875 rclone mkdir remote:path [flags]
876
877 Options
878 -h, --help help for mkdir
879
880 See the global flags page (https://rclone.org/flags/) for global op‐
881 tions not listed here.
882
883 SEE ALSO
884 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
885 commands, flags and backends.
886
888 Remove the empty directory at path.
889
890 Synopsis
891 This removes empty directory given by path. Will not remove the path
892 if it has any objects in it, not even empty subdirectories. Use com‐
893 mand rmdirs (or delete with option --rmdirs) to do that.
894
895 To delete a path and any objects in it, use purge command.
896
897 rclone rmdir remote:path [flags]
898
899 Options
900 -h, --help help for rmdir
901
902 See the global flags page (https://rclone.org/flags/) for global op‐
903 tions not listed here.
904
905 SEE ALSO
906 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
907 commands, flags and backends.
908
910 Checks the files in the source and destination match.
911
912 Synopsis
913 Checks the files in the source and destination match. It compares
914 sizes and hashes (MD5 or SHA1) and logs a report of files which don't
915 match. It doesn't alter the source or destination.
916
917 If you supply the --size-only flag, it will only compare the sizes not
918 the hashes as well. Use this for a quick check.
919
920 If you supply the --download flag, it will download the data from both
921 remotes and check them against each other on the fly. This can be use‐
922 ful for remotes that don't support hashes or if you really want to
923 check all the data.
924
925 If you supply the --one-way flag, it will only check that files in the
926 source match the files in the destination, not the other way around.
927 This means that extra files in the destination that are not in the
928 source will not be detected.
929
930 The --differ, --missing-on-dst, --missing-on-src, --match and --error
931 flags write paths, one per line, to the file name (or stdout if it is
932 -) supplied. What they write is described in the help below. For ex‐
933 ample --differ will write all paths which are present on both the
934 source and destination but different.
935
936 The --combined flag will write a file (or stdout) which contains all
937 file paths with a symbol and then a space and then the path to tell you
938 what happened to it. These are reminiscent of diff files.
939
940 · = path means path was found in source and destination and was identi‐
941 cal
942
943 · - path means path was missing on the source, so only in the destina‐
944 tion
945
946 · + path means path was missing on the destination, so only in the
947 source
948
949 · * path means path was present in source and destination but differ‐
950 ent.
951
952 · ! path means there was an error reading or hashing the source or
953 dest.
954
955 rclone check source:path dest:path [flags]
956
957 Options
958 --combined string Make a combined report of changes to this file
959 --differ string Report all non-matching files to this file
960 --download Check by downloading rather than with hash.
961 --error string Report all files with errors (hashing or reading) to this file
962 -h, --help help for check
963 --match string Report all matching files to this file
964 --missing-on-dst string Report all files missing from the destination to this file
965 --missing-on-src string Report all files missing from the source to this file
966 --one-way Check one way only, source files must exist on remote
967
968 See the global flags page (https://rclone.org/flags/) for global op‐
969 tions not listed here.
970
971 SEE ALSO
972 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
973 commands, flags and backends.
974
976 List the objects in the path with size and path.
977
978 Synopsis
979 Lists the objects in the source path to standard output in a human
980 readable format with size and path. Recurses by default.
981
982 Eg
983
984 $ rclone ls swift:bucket
985 60295 bevajer5jef
986 90613 canole
987 94467 diwogej7
988 37600 fubuwic
989
990 Any of the filtering options can be applied to this command.
991
992 There are several related list commands
993
994 · ls to list size and path of objects only
995
996 · lsl to list modification time, size and path of objects only
997
998 · lsd to list directories only
999
1000 · lsf to list objects and directories in easy to parse format
1001
1002 · lsjson to list objects and directories in JSON format
1003
1004 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1005 human and machine readable. lsjson is designed to be machine readable.
1006
1007 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1008 recursion.
1009
1010 The other list commands lsd,lsf,lsjson do not recurse by default - use
1011 -R to make them recurse.
1012
1013 Listing a non existent directory will produce an error except for re‐
1014 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1015 bucket based remotes).
1016
1017 rclone ls remote:path [flags]
1018
1019 Options
1020 -h, --help help for ls
1021
1022 See the global flags page (https://rclone.org/flags/) for global op‐
1023 tions not listed here.
1024
1025 SEE ALSO
1026 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1027 commands, flags and backends.
1028
1030 List all directories/containers/buckets in the path.
1031
1032 Synopsis
1033 Lists the directories in the source path to standard output. Does not
1034 recurse by default. Use the -R flag to recurse.
1035
1036 This command lists the total size of the directory (if known, -1 if
1037 not), the modification time (if known, the current time if not), the
1038 number of objects in the directory (if known, -1 if not) and the name
1039 of the directory, Eg
1040
1041 $ rclone lsd swift:
1042 494000 2018-04-26 08:43:20 10000 10000files
1043 65 2018-04-26 08:43:20 1 1File
1044
1045 Or
1046
1047 $ rclone lsd drive:test
1048 -1 2016-10-17 17:41:53 -1 1000files
1049 -1 2017-01-03 14:40:54 -1 2500files
1050 -1 2017-07-08 14:39:28 -1 4000files
1051
1052 If you just want the directory names use "rclone lsf --dirs-only".
1053
1054 Any of the filtering options can be applied to this command.
1055
1056 There are several related list commands
1057
1058 · ls to list size and path of objects only
1059
1060 · lsl to list modification time, size and path of objects only
1061
1062 · lsd to list directories only
1063
1064 · lsf to list objects and directories in easy to parse format
1065
1066 · lsjson to list objects and directories in JSON format
1067
1068 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1069 human and machine readable. lsjson is designed to be machine readable.
1070
1071 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1072 recursion.
1073
1074 The other list commands lsd,lsf,lsjson do not recurse by default - use
1075 -R to make them recurse.
1076
1077 Listing a non existent directory will produce an error except for re‐
1078 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1079 bucket based remotes).
1080
1081 rclone lsd remote:path [flags]
1082
1083 Options
1084 -h, --help help for lsd
1085 -R, --recursive Recurse into the listing.
1086
1087 See the global flags page (https://rclone.org/flags/) for global op‐
1088 tions not listed here.
1089
1090 SEE ALSO
1091 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1092 commands, flags and backends.
1093
1095 List the objects in path with modification time, size and path.
1096
1097 Synopsis
1098 Lists the objects in the source path to standard output in a human
1099 readable format with modification time, size and path. Recurses by de‐
1100 fault.
1101
1102 Eg
1103
1104 $ rclone lsl swift:bucket
1105 60295 2016-06-25 18:55:41.062626927 bevajer5jef
1106 90613 2016-06-25 18:55:43.302607074 canole
1107 94467 2016-06-25 18:55:43.046609333 diwogej7
1108 37600 2016-06-25 18:55:40.814629136 fubuwic
1109
1110 Any of the filtering options can be applied to this command.
1111
1112 There are several related list commands
1113
1114 · ls to list size and path of objects only
1115
1116 · lsl to list modification time, size and path of objects only
1117
1118 · lsd to list directories only
1119
1120 · lsf to list objects and directories in easy to parse format
1121
1122 · lsjson to list objects and directories in JSON format
1123
1124 ls,lsl,lsd are designed to be human readable. lsf is designed to be
1125 human and machine readable. lsjson is designed to be machine readable.
1126
1127 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
1128 recursion.
1129
1130 The other list commands lsd,lsf,lsjson do not recurse by default - use
1131 -R to make them recurse.
1132
1133 Listing a non existent directory will produce an error except for re‐
1134 motes which can't have empty directories (e.g. s3, swift, or gcs - the
1135 bucket based remotes).
1136
1137 rclone lsl remote:path [flags]
1138
1139 Options
1140 -h, --help help for lsl
1141
1142 See the global flags page (https://rclone.org/flags/) for global op‐
1143 tions not listed here.
1144
1145 SEE ALSO
1146 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1147 commands, flags and backends.
1148
1150 Produces an md5sum file for all the objects in the path.
1151
1152 Synopsis
1153 Produces an md5sum file for all the objects in the path. This is in
1154 the same format as the standard md5sum tool produces.
1155
1156 By default, the hash is requested from the remote. If MD5 is not sup‐
1157 ported by the remote, no hash will be returned. With the download
1158 flag, the file will be downloaded from the remote and hashed locally
1159 enabling MD5 for any remote.
1160
1161 rclone md5sum remote:path [flags]
1162
1163 Options
1164 --base64 Output base64 encoded hashsum
1165 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
1166 -h, --help help for md5sum
1167 --output-file string Output hashsums to a file rather than the terminal
1168
1169 See the global flags page (https://rclone.org/flags/) for global op‐
1170 tions not listed here.
1171
1172 SEE ALSO
1173 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1174 commands, flags and backends.
1175
1177 Produces an sha1sum file for all the objects in the path.
1178
1179 Synopsis
1180 Produces an sha1sum file for all the objects in the path. This is in
1181 the same format as the standard sha1sum tool produces.
1182
1183 By default, the hash is requested from the remote. If SHA-1 is not
1184 supported by the remote, no hash will be returned. With the download
1185 flag, the file will be downloaded from the remote and hashed locally
1186 enabling SHA-1 for any remote.
1187
1188 rclone sha1sum remote:path [flags]
1189
1190 Options
1191 --base64 Output base64 encoded hashsum
1192 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
1193 -h, --help help for sha1sum
1194 --output-file string Output hashsums to a file rather than the terminal
1195
1196 See the global flags page (https://rclone.org/flags/) for global op‐
1197 tions not listed here.
1198
1199 SEE ALSO
1200 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1201 commands, flags and backends.
1202
1204 Prints the total size and number of objects in remote:path.
1205
1206 rclone size remote:path [flags]
1207
1208 Options
1209 -h, --help help for size
1210 --json format output as JSON
1211
1212 See the global flags page (https://rclone.org/flags/) for global op‐
1213 tions not listed here.
1214
1215 SEE ALSO
1216 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1217 commands, flags and backends.
1218
1220 Show the version number.
1221
1222 Synopsis
1223 Show the version number, the go version and the architecture.
1224
1225 Eg
1226
1227 $ rclone version
1228 rclone v1.41
1229 - os/arch: linux/amd64
1230 - go version: go1.10
1231
1232 If you supply the --check flag, then it will do an online check to com‐
1233 pare your version with the latest release and the latest beta.
1234
1235 $ rclone version --check
1236 yours: 1.42.0.6
1237 latest: 1.42 (released 2018-06-16)
1238 beta: 1.42.0.5 (released 2018-06-17)
1239
1240 Or
1241
1242 $ rclone version --check
1243 yours: 1.41
1244 latest: 1.42 (released 2018-06-16)
1245 upgrade: https://downloads.rclone.org/v1.42
1246 beta: 1.42.0.5 (released 2018-06-17)
1247 upgrade: https://beta.rclone.org/v1.42-005-g56e1e820
1248
1249 rclone version [flags]
1250
1251 Options
1252 --check Check for new version.
1253 -h, --help help for version
1254
1255 See the global flags page (https://rclone.org/flags/) for global op‐
1256 tions not listed here.
1257
1258 SEE ALSO
1259 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1260 commands, flags and backends.
1261
1263 Clean up the remote if possible.
1264
1265 Synopsis
1266 Clean up the remote if possible. Empty the trash or delete old file
1267 versions. Not supported by all remotes.
1268
1269 rclone cleanup remote:path [flags]
1270
1271 Options
1272 -h, --help help for cleanup
1273
1274 See the global flags page (https://rclone.org/flags/) for global op‐
1275 tions not listed here.
1276
1277 SEE ALSO
1278 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1279 commands, flags and backends.
1280
1282 Interactively find duplicate filenames and delete/rename them.
1283
1284 Synopsis
1285 By default dedupe interactively finds files with duplicate names and
1286 offers to delete all but one or rename them to be different. This is
1287 known as deduping by name.
1288
1289 Deduping by name is only useful with backends like Google Drive which
1290 can have duplicate file names. It can be run on wrapping backends
1291 (e.g. crypt) if they wrap a backend which supports duplicate file
1292 names.
1293
1294 However if --by-hash is passed in then dedupe will find files with du‐
1295 plicate hashes instead which will work on any backend which supports at
1296 least one hash. This can be used to find files with duplicate content.
1297 This is known as deduping by hash.
1298
1299 If deduping by name, first rclone will merge directories with the same
1300 name. It will do this iteratively until all the identically named di‐
1301 rectories have been merged.
1302
1303 Next, if deduping by name, for every group of duplicate file names /
1304 hashes, it will delete all but one identical files it finds without
1305 confirmation. This means that for most duplicated files the dedupe
1306 command will not be interactive.
1307
1308 dedupe considers files to be identical if they have the same file path
1309 and the same hash. If the backend does not support hashes (e.g. crypt
1310 wrapping Google Drive) then they will never be found to be identical.
1311 If you use the --size-only flag then files will be considered identical
1312 if they have the same size (any hash will be ignored). This can be
1313 useful on crypt backends which do not support hashes.
1314
1315 Next rclone will resolve the remaining duplicates. Exactly which ac‐
1316 tion is taken depends on the dedupe mode. By default rclone will in‐
1317 teractively query the user for each one.
1318
1319 Important: Since this can cause data loss, test first with the
1320 --dry-run or the --interactive/-i flag.
1321
1322 Here is an example run.
1323
1324 Before - with duplicates
1325
1326 $ rclone lsl drive:dupes
1327 6048320 2016-03-05 16:23:16.798000000 one.txt
1328 6048320 2016-03-05 16:23:11.775000000 one.txt
1329 564374 2016-03-05 16:23:06.731000000 one.txt
1330 6048320 2016-03-05 16:18:26.092000000 one.txt
1331 6048320 2016-03-05 16:22:46.185000000 two.txt
1332 1744073 2016-03-05 16:22:38.104000000 two.txt
1333 564374 2016-03-05 16:22:52.118000000 two.txt
1334
1335 Now the dedupe session
1336
1337 $ rclone dedupe drive:dupes
1338 2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode.
1339 one.txt: Found 4 files with duplicate names
1340 one.txt: Deleting 2/3 identical duplicates (MD5 "1eedaa9fe86fd4b8632e2ac549403b36")
1341 one.txt: 2 duplicates remain
1342 1: 6048320 bytes, 2016-03-05 16:23:16.798000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
1343 2: 564374 bytes, 2016-03-05 16:23:06.731000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
1344 s) Skip and do nothing
1345 k) Keep just one (choose which in next step)
1346 r) Rename all to be different (by changing file.jpg to file-1.jpg)
1347 s/k/r> k
1348 Enter the number of the file to keep> 1
1349 one.txt: Deleted 1 extra copies
1350 two.txt: Found 3 files with duplicate names
1351 two.txt: 3 duplicates remain
1352 1: 564374 bytes, 2016-03-05 16:22:52.118000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
1353 2: 6048320 bytes, 2016-03-05 16:22:46.185000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
1354 3: 1744073 bytes, 2016-03-05 16:22:38.104000000, MD5 851957f7fb6f0bc4ce76be966d336802
1355 s) Skip and do nothing
1356 k) Keep just one (choose which in next step)
1357 r) Rename all to be different (by changing file.jpg to file-1.jpg)
1358 s/k/r> r
1359 two-1.txt: renamed from: two.txt
1360 two-2.txt: renamed from: two.txt
1361 two-3.txt: renamed from: two.txt
1362
1363 The result being
1364
1365 $ rclone lsl drive:dupes
1366 6048320 2016-03-05 16:23:16.798000000 one.txt
1367 564374 2016-03-05 16:22:52.118000000 two-1.txt
1368 6048320 2016-03-05 16:22:46.185000000 two-2.txt
1369 1744073 2016-03-05 16:22:38.104000000 two-3.txt
1370
1371 Dedupe can be run non interactively using the --dedupe-mode flag or by
1372 using an extra parameter with the same value
1373
1374 · --dedupe-mode interactive - interactive as above.
1375
1376 · --dedupe-mode skip - removes identical files then skips anything
1377 left.
1378
1379 · --dedupe-mode first - removes identical files then keeps the first
1380 one.
1381
1382 · --dedupe-mode newest - removes identical files then keeps the newest
1383 one.
1384
1385 · --dedupe-mode oldest - removes identical files then keeps the oldest
1386 one.
1387
1388 · --dedupe-mode largest - removes identical files then keeps the
1389 largest one.
1390
1391 · --dedupe-mode smallest - removes identical files then keeps the
1392 smallest one.
1393
1394 · --dedupe-mode rename - removes identical files then renames the rest
1395 to be different.
1396
1397 · --dedupe-mode list - lists duplicate dirs and files only and changes
1398 nothing.
1399
1400 For example to rename all the identically named photos in your Google
1401 Photos directory, do
1402
1403 rclone dedupe --dedupe-mode rename "drive:Google Photos"
1404
1405 Or
1406
1407 rclone dedupe rename "drive:Google Photos"
1408
1409 rclone dedupe [mode] remote:path [flags]
1410
1411 Options
1412 --by-hash Find indentical hashes rather than names
1413 --dedupe-mode string Dedupe mode interactive|skip|first|newest|oldest|largest|smallest|rename. (default "interactive")
1414 -h, --help help for dedupe
1415
1416 See the global flags page (https://rclone.org/flags/) for global op‐
1417 tions not listed here.
1418
1419 SEE ALSO
1420 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1421 commands, flags and backends.
1422
1424 Get quota information from the remote.
1425
1426 Synopsis
1427 rclone aboutprints quota information about a remote to standard output.
1428 The output is typically used, free, quota and trash contents.
1429
1430 E.g. Typical output fromrclone about remote:is:
1431
1432 Total: 17G
1433 Used: 7.444G
1434 Free: 1.315G
1435 Trashed: 100.000M
1436 Other: 8.241G
1437
1438 Where the fields are:
1439
1440 · Total: total size available.
1441
1442 · Used: total size used
1443
1444 · Free: total space available to this user.
1445
1446 · Trashed: total space used by trash
1447
1448 · Other: total amount in other storage (e.g. Gmail, Google Photos)
1449
1450 · Objects: total number of objects in the storage
1451
1452 Not all backends print all fields. Information is not included if it
1453 is not provided by a backend. Where the value is unlimited it is omit‐
1454 ted.
1455
1456 Applying a --full flag to the command prints the bytes in full, e.g.
1457
1458 Total: 18253611008
1459 Used: 7993453766
1460 Free: 1411001220
1461 Trashed: 104857602
1462 Other: 8849156022
1463
1464 A --jsonflag generates conveniently computer readable output, e.g.
1465
1466 {
1467 "total": 18253611008,
1468 "used": 7993453766,
1469 "trashed": 104857602,
1470 "other": 8849156022,
1471 "free": 1411001220
1472 }
1473
1474 Not all backends support the rclone about command.
1475
1476 See List of backends that do not support about
1477 (https://rclone.org/overview/#optional-features)
1478
1479 rclone about remote: [flags]
1480
1481 Options
1482 --full Full numbers instead of SI units
1483 -h, --help help for about
1484 --json Format output as JSON
1485
1486 See the global flags page (https://rclone.org/flags/) for global op‐
1487 tions not listed here.
1488
1489 SEE ALSO
1490 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1491 commands, flags and backends.
1492
1494 Remote authorization.
1495
1496 Synopsis
1497 Remote authorization. Used to authorize a remote or headless rclone
1498 from a machine with a browser - use as instructed by rclone config.
1499
1500 Use the --auth-no-open-browser to prevent rclone to open auth link in
1501 default browser automatically.
1502
1503 rclone authorize [flags]
1504
1505 Options
1506 --auth-no-open-browser Do not automatically open auth link in default browser
1507 -h, --help help for authorize
1508
1509 See the global flags page (https://rclone.org/flags/) for global op‐
1510 tions not listed here.
1511
1512 SEE ALSO
1513 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1514 commands, flags and backends.
1515
1517 Run a backend specific command.
1518
1519 Synopsis
1520 This runs a backend specific command. The commands themselves (except
1521 for "help" and "features") are defined by the backends and you should
1522 see the backend docs for definitions.
1523
1524 You can discover what commands a backend implements by using
1525
1526 rclone backend help remote:
1527 rclone backend help <backendname>
1528
1529 You can also discover information about the backend using (see opera‐
1530 tions/fsinfo (https://rclone.org/rc/#operations/fsinfo) in the remote
1531 control docs for more info).
1532
1533 rclone backend features remote:
1534
1535 Pass options to the backend command with -o. This should be key=value
1536 or key, e.g.:
1537
1538 rclone backend stats remote:path stats -o format=json -o long
1539
1540 Pass arguments to the backend by placing them on the end of the line
1541
1542 rclone backend cleanup remote:path file1 file2 file3
1543
1544 Note to run these commands on a running backend then see backend/com‐
1545 mand (https://rclone.org/rc/#backend/command) in the rc docs.
1546
1547 rclone backend <command> remote:path [opts] <args> [flags]
1548
1549 Options
1550 -h, --help help for backend
1551 --json Always output in JSON format.
1552 -o, --option stringArray Option in the form name=value or name.
1553
1554 See the global flags page (https://rclone.org/flags/) for global op‐
1555 tions not listed here.
1556
1557 SEE ALSO
1558 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1559 commands, flags and backends.
1560
1562 Concatenates any files and sends them to stdout.
1563
1564 Synopsis
1565 rclone cat sends any files to standard output.
1566
1567 You can use it like this to output a single file
1568
1569 rclone cat remote:path/to/file
1570
1571 Or like this to output any file in dir or its subdirectories.
1572
1573 rclone cat remote:path/to/dir
1574
1575 Or like this to output any .txt files in dir or its subdirectories.
1576
1577 rclone --include "*.txt" cat remote:path/to/dir
1578
1579 Use the --head flag to print characters only at the start, --tail for
1580 the end and --offset and --count to print a section in the middle.
1581 Note that if offset is negative it will count from the end, so --offset
1582 -1 --count 1 is equivalent to --tail 1.
1583
1584 rclone cat remote:path [flags]
1585
1586 Options
1587 --count int Only print N characters. (default -1)
1588 --discard Discard the output instead of printing.
1589 --head int Only print the first N characters.
1590 -h, --help help for cat
1591 --offset int Start printing at offset N (or from end if -ve).
1592 --tail int Only print the last N characters.
1593
1594 See the global flags page (https://rclone.org/flags/) for global op‐
1595 tions not listed here.
1596
1597 SEE ALSO
1598 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1599 commands, flags and backends.
1600
1602 Create a new remote with name, type and options.
1603
1604 Synopsis
1605 Create a new remote of name with type and options. The options should
1606 be passed in pairs of key value.
1607
1608 For example to make a swift remote of name myremote using auto config
1609 you would do:
1610
1611 rclone config create myremote swift env_auth true
1612
1613 Note that if the config process would normally ask a question the de‐
1614 fault is taken. Each time that happens rclone will print a message
1615 saying how to affect the value taken.
1616
1617 If any of the parameters passed is a password field, then rclone will
1618 automatically obscure them if they aren't already obscured before
1619 putting them in the config file.
1620
1621 NB If the password parameter is 22 characters or longer and consists
1622 only of base64 characters then rclone can get confused about whether
1623 the password is already obscured or not and put unobscured passwords
1624 into the config file. If you want to be 100% certain that the pass‐
1625 words get obscured then use the "--obscure" flag, or if you are 100%
1626 certain you are already passing obscured passwords then use "--no-ob‐
1627 scure". You can also set obscured passwords using the "rclone config
1628 password" command.
1629
1630 So for example if you wanted to configure a Google Drive remote but us‐
1631 ing remote authorization you would do this:
1632
1633 rclone config create mydrive drive config_is_local false
1634
1635 rclone config create `name` `type` [`key` `value`]* [flags]
1636
1637 Options
1638 -h, --help help for create
1639 --no-obscure Force any passwords not to be obscured.
1640 --obscure Force any passwords to be obscured.
1641
1642 See the global flags page (https://rclone.org/flags/) for global op‐
1643 tions not listed here.
1644
1645 SEE ALSO
1646 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1647 interactive configuration session.
1648
1650 Delete an existing remote name.
1651
1652 rclone config delete `name` [flags]
1653
1654 Options
1655 -h, --help help for delete
1656
1657 See the global flags page (https://rclone.org/flags/) for global op‐
1658 tions not listed here.
1659
1660 SEE ALSO
1661 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1662 interactive configuration session.
1663
1665 Disconnects user from remote
1666
1667 Synopsis
1668 This disconnects the remote: passed in to the cloud storage system.
1669
1670 This normally means revoking the oauth token.
1671
1672 To reconnect use "rclone config reconnect".
1673
1674 rclone config disconnect remote: [flags]
1675
1676 Options
1677 -h, --help help for disconnect
1678
1679 See the global flags page (https://rclone.org/flags/) for global op‐
1680 tions not listed here.
1681
1682 SEE ALSO
1683 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1684 interactive configuration session.
1685
1687 Dump the config file as JSON.
1688
1689 rclone config dump [flags]
1690
1691 Options
1692 -h, --help help for dump
1693
1694 See the global flags page (https://rclone.org/flags/) for global op‐
1695 tions not listed here.
1696
1697 SEE ALSO
1698 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1699 interactive configuration session.
1700
1702 Enter an interactive configuration session.
1703
1704 Synopsis
1705 Enter an interactive configuration session where you can setup new re‐
1706 motes and manage existing ones. You may also set or remove a password
1707 to protect your configuration.
1708
1709 rclone config edit [flags]
1710
1711 Options
1712 -h, --help help for edit
1713
1714 See the global flags page (https://rclone.org/flags/) for global op‐
1715 tions not listed here.
1716
1717 SEE ALSO
1718 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1719 interactive configuration session.
1720
1722 Show path of configuration file in use.
1723
1724 rclone config file [flags]
1725
1726 Options
1727 -h, --help help for file
1728
1729 See the global flags page (https://rclone.org/flags/) for global op‐
1730 tions not listed here.
1731
1732 SEE ALSO
1733 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1734 interactive configuration session.
1735
1737 Update password in an existing remote.
1738
1739 Synopsis
1740 Update an existing remote's password. The password should be passed in
1741 pairs of key value.
1742
1743 For example to set password of a remote of name myremote you would do:
1744
1745 rclone config password myremote fieldname mypassword
1746
1747 This command is obsolete now that "config update" and "config create"
1748 both support obscuring passwords directly.
1749
1750 rclone config password `name` [`key` `value`]+ [flags]
1751
1752 Options
1753 -h, --help help for password
1754
1755 See the global flags page (https://rclone.org/flags/) for global op‐
1756 tions not listed here.
1757
1758 SEE ALSO
1759 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1760 interactive configuration session.
1761
1763 List in JSON format all the providers and options.
1764
1765 rclone config providers [flags]
1766
1767 Options
1768 -h, --help help for providers
1769
1770 See the global flags page (https://rclone.org/flags/) for global op‐
1771 tions not listed here.
1772
1773 SEE ALSO
1774 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1775 interactive configuration session.
1776
1778 Re-authenticates user with remote.
1779
1780 Synopsis
1781 This reconnects remote: passed in to the cloud storage system.
1782
1783 To disconnect the remote use "rclone config disconnect".
1784
1785 This normally means going through the interactive oauth flow again.
1786
1787 rclone config reconnect remote: [flags]
1788
1789 Options
1790 -h, --help help for reconnect
1791
1792 See the global flags page (https://rclone.org/flags/) for global op‐
1793 tions not listed here.
1794
1795 SEE ALSO
1796 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1797 interactive configuration session.
1798
1800 Print (decrypted) config file, or the config for a single remote.
1801
1802 rclone config show [<remote>] [flags]
1803
1804 Options
1805 -h, --help help for show
1806
1807 See the global flags page (https://rclone.org/flags/) for global op‐
1808 tions not listed here.
1809
1810 SEE ALSO
1811 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1812 interactive configuration session.
1813
1815 Update options in an existing remote.
1816
1817 Synopsis
1818 Update an existing remote's options. The options should be passed in
1819 in pairs of key value.
1820
1821 For example to update the env_auth field of a remote of name myremote
1822 you would do:
1823
1824 rclone config update myremote swift env_auth true
1825
1826 If any of the parameters passed is a password field, then rclone will
1827 automatically obscure them if they aren't already obscured before
1828 putting them in the config file.
1829
1830 NB If the password parameter is 22 characters or longer and consists
1831 only of base64 characters then rclone can get confused about whether
1832 the password is already obscured or not and put unobscured passwords
1833 into the config file. If you want to be 100% certain that the pass‐
1834 words get obscured then use the "--obscure" flag, or if you are 100%
1835 certain you are already passing obscured passwords then use "--no-ob‐
1836 scure". You can also set obscured passwords using the "rclone config
1837 password" command.
1838
1839 If the remote uses OAuth the token will be updated, if you don't re‐
1840 quire this add an extra parameter thus:
1841
1842 rclone config update myremote swift env_auth true config_refresh_token false
1843
1844 rclone config update `name` [`key` `value`]+ [flags]
1845
1846 Options
1847 -h, --help help for update
1848 --no-obscure Force any passwords not to be obscured.
1849 --obscure Force any passwords to be obscured.
1850
1851 See the global flags page (https://rclone.org/flags/) for global op‐
1852 tions not listed here.
1853
1854 SEE ALSO
1855 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1856 interactive configuration session.
1857
1859 Prints info about logged in user of remote.
1860
1861 Synopsis
1862 This prints the details of the person logged in to the cloud storage
1863 system.
1864
1865 rclone config userinfo remote: [flags]
1866
1867 Options
1868 -h, --help help for userinfo
1869 --json Format output as JSON
1870
1871 See the global flags page (https://rclone.org/flags/) for global op‐
1872 tions not listed here.
1873
1874 SEE ALSO
1875 · rclone config (https://rclone.org/commands/rclone_config/) - Enter an
1876 interactive configuration session.
1877
1879 Copy files from source to dest, skipping already copied.
1880
1881 Synopsis
1882 If source:path is a file or directory then it copies it to a file or
1883 directory named dest:path.
1884
1885 This can be used to upload single files to other than their current
1886 name. If the source is a directory then it acts exactly like the copy
1887 command.
1888
1889 So
1890
1891 rclone copyto src dst
1892
1893 where src and dst are rclone paths, either remote:path or /path/to/lo‐
1894 cal or C:.
1895
1896 This will:
1897
1898 if src is file
1899 copy it to dst, overwriting an existing file if it exists
1900 if src is directory
1901 copy it to dst, overwriting existing files if they exist
1902 see copy command for full details
1903
1904 This doesn't transfer unchanged files, testing by size and modification
1905 time or MD5SUM. It doesn't delete files from the destination.
1906
1907 Note: Use the -P/--progress flag to view real-time transfer statistics
1908
1909 rclone copyto source:path dest:path [flags]
1910
1911 Options
1912 -h, --help help for copyto
1913
1914 See the global flags page (https://rclone.org/flags/) for global op‐
1915 tions not listed here.
1916
1917 SEE ALSO
1918 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1919 commands, flags and backends.
1920
1922 Copy url content to dest.
1923
1924 Synopsis
1925 Download a URL's content and copy it to the destination without saving
1926 it in temporary storage.
1927
1928 Setting --auto-filename will cause the file name to be retrieved from
1929 the from URL (after any redirections) and used in the destination path.
1930
1931 Setting --no-clobber will prevent overwriting file on the destination
1932 if there is one with the same name.
1933
1934 Setting --stdout or making the output file name "-" will cause the out‐
1935 put to be written to standard output.
1936
1937 rclone copyurl https://example.com dest:path [flags]
1938
1939 Options
1940 -a, --auto-filename Get the file name from the URL and use it for destination file path
1941 -h, --help help for copyurl
1942 --no-clobber Prevent overwriting file with same name
1943 --stdout Write the output to stdout rather than a file
1944
1945 See the global flags page (https://rclone.org/flags/) for global op‐
1946 tions not listed here.
1947
1948 SEE ALSO
1949 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
1950 commands, flags and backends.
1951
1953 Cryptcheck checks the integrity of a crypted remote.
1954
1955 Synopsis
1956 rclone cryptcheck checks a remote against a crypted remote. This is
1957 the equivalent of running rclone check, but able to check the checksums
1958 of the crypted remote.
1959
1960 For it to work the underlying remote of the cryptedremote must support
1961 some kind of checksum.
1962
1963 It works by reading the nonce from each file on the cryptedremote: and
1964 using that to encrypt each file on the remote:. It then checks the
1965 checksum of the underlying file on the cryptedremote: against the
1966 checksum of the file it has just encrypted.
1967
1968 Use it like this
1969
1970 rclone cryptcheck /path/to/files encryptedremote:path
1971
1972 You can use it like this also, but that will involve downloading all
1973 the files in remote:path.
1974
1975 rclone cryptcheck remote:path encryptedremote:path
1976
1977 After it has run it will log the status of the encryptedremote:.
1978
1979 If you supply the --one-way flag, it will only check that files in the
1980 source match the files in the destination, not the other way around.
1981 This means that extra files in the destination that are not in the
1982 source will not be detected.
1983
1984 The --differ, --missing-on-dst, --missing-on-src, --match and --error
1985 flags write paths, one per line, to the file name (or stdout if it is
1986 -) supplied. What they write is described in the help below. For ex‐
1987 ample --differ will write all paths which are present on both the
1988 source and destination but different.
1989
1990 The --combined flag will write a file (or stdout) which contains all
1991 file paths with a symbol and then a space and then the path to tell you
1992 what happened to it. These are reminiscent of diff files.
1993
1994 · = path means path was found in source and destination and was identi‐
1995 cal
1996
1997 · - path means path was missing on the source, so only in the destina‐
1998 tion
1999
2000 · + path means path was missing on the destination, so only in the
2001 source
2002
2003 · * path means path was present in source and destination but differ‐
2004 ent.
2005
2006 · ! path means there was an error reading or hashing the source or
2007 dest.
2008
2009 rclone cryptcheck remote:path cryptedremote:path [flags]
2010
2011 Options
2012 --combined string Make a combined report of changes to this file
2013 --differ string Report all non-matching files to this file
2014 --error string Report all files with errors (hashing or reading) to this file
2015 -h, --help help for cryptcheck
2016 --match string Report all matching files to this file
2017 --missing-on-dst string Report all files missing from the destination to this file
2018 --missing-on-src string Report all files missing from the source to this file
2019 --one-way Check one way only, source files must exist on remote
2020
2021 See the global flags page (https://rclone.org/flags/) for global op‐
2022 tions not listed here.
2023
2024 SEE ALSO
2025 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2026 commands, flags and backends.
2027
2029 Cryptdecode returns unencrypted file names.
2030
2031 Synopsis
2032 rclone cryptdecode returns unencrypted file names when provided with a
2033 list of encrypted file names. List limit is 10 items.
2034
2035 If you supply the --reverse flag, it will return encrypted file names.
2036
2037 use it like this
2038
2039 rclone cryptdecode encryptedremote: encryptedfilename1 encryptedfilename2
2040
2041 rclone cryptdecode --reverse encryptedremote: filename1 filename2
2042
2043 Another way to accomplish this is by using the rclone backend encode
2044 (or decode)command. See the documentation on the crypt overlay for
2045 more info.
2046
2047 rclone cryptdecode encryptedremote: encryptedfilename [flags]
2048
2049 Options
2050 -h, --help help for cryptdecode
2051 --reverse Reverse cryptdecode, encrypts filenames
2052
2053 See the global flags page (https://rclone.org/flags/) for global op‐
2054 tions not listed here.
2055
2056 SEE ALSO
2057 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2058 commands, flags and backends.
2059
2061 Remove a single file from remote.
2062
2063 Synopsis
2064 Remove a single file from remote. Unlike delete it cannot be used to
2065 remove a directory and it doesn't obey include/exclude filters - if the
2066 specified file exists, it will always be removed.
2067
2068 rclone deletefile remote:path [flags]
2069
2070 Options
2071 -h, --help help for deletefile
2072
2073 See the global flags page (https://rclone.org/flags/) for global op‐
2074 tions not listed here.
2075
2076 SEE ALSO
2077 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2078 commands, flags and backends.
2079
2081 Output completion script for a given shell.
2082
2083 Synopsis
2084 Generates a shell completion script for rclone. Run with --help to
2085 list the supported shells.
2086
2087 Options
2088 -h, --help help for genautocomplete
2089
2090 See the global flags page (https://rclone.org/flags/) for global op‐
2091 tions not listed here.
2092
2093 SEE ALSO
2094 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2095 commands, flags and backends.
2096
2097 · rclone genautocomplete bash (https://rclone.org/commands/rclone_ge‐
2098 nautocomplete_bash/) - Output bash completion script for rclone.
2099
2100 · rclone genautocomplete fish (https://rclone.org/commands/rclone_ge‐
2101 nautocomplete_fish/) - Output fish completion script for rclone.
2102
2103 · rclone genautocomplete zsh (https://rclone.org/commands/rclone_genau‐
2104 tocomplete_zsh/) - Output zsh completion script for rclone.
2105
2107 Output bash completion script for rclone.
2108
2109 Synopsis
2110 Generates a bash shell autocompletion script for rclone.
2111
2112 This writes to /etc/bash_completion.d/rclone by default so will proba‐
2113 bly need to be run with sudo or as root, e.g.
2114
2115 sudo rclone genautocomplete bash
2116
2117 Logout and login again to use the autocompletion scripts, or source
2118 them directly
2119
2120 . /etc/bash_completion
2121
2122 If you supply a command line argument the script will be written there.
2123
2124 If output_file is "-", then the output will be written to stdout.
2125
2126 rclone genautocomplete bash [output_file] [flags]
2127
2128 Options
2129 -h, --help help for bash
2130
2131 See the global flags page (https://rclone.org/flags/) for global op‐
2132 tions not listed here.
2133
2134 SEE ALSO
2135 · rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2136 complete/) - Output completion script for a given shell.
2137
2139 Output fish completion script for rclone.
2140
2141 Synopsis
2142 Generates a fish autocompletion script for rclone.
2143
2144 This writes to /etc/fish/completions/rclone.fish by default so will
2145 probably need to be run with sudo or as root, e.g.
2146
2147 sudo rclone genautocomplete fish
2148
2149 Logout and login again to use the autocompletion scripts, or source
2150 them directly
2151
2152 . /etc/fish/completions/rclone.fish
2153
2154 If you supply a command line argument the script will be written there.
2155
2156 If output_file is "-", then the output will be written to stdout.
2157
2158 rclone genautocomplete fish [output_file] [flags]
2159
2160 Options
2161 -h, --help help for fish
2162
2163 See the global flags page (https://rclone.org/flags/) for global op‐
2164 tions not listed here.
2165
2166 SEE ALSO
2167 · rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2168 complete/) - Output completion script for a given shell.
2169
2171 Output zsh completion script for rclone.
2172
2173 Synopsis
2174 Generates a zsh autocompletion script for rclone.
2175
2176 This writes to /usr/share/zsh/vendor-completions/_rclone by default so
2177 will probably need to be run with sudo or as root, e.g.
2178
2179 sudo rclone genautocomplete zsh
2180
2181 Logout and login again to use the autocompletion scripts, or source
2182 them directly
2183
2184 autoload -U compinit && compinit
2185
2186 If you supply a command line argument the script will be written there.
2187
2188 If output_file is "-", then the output will be written to stdout.
2189
2190 rclone genautocomplete zsh [output_file] [flags]
2191
2192 Options
2193 -h, --help help for zsh
2194
2195 See the global flags page (https://rclone.org/flags/) for global op‐
2196 tions not listed here.
2197
2198 SEE ALSO
2199 · rclone genautocomplete (https://rclone.org/commands/rclone_genauto‐
2200 complete/) - Output completion script for a given shell.
2201
2203 Output markdown docs for rclone to the directory supplied.
2204
2205 Synopsis
2206 This produces markdown docs for the rclone commands to the directory
2207 supplied. These are in a format suitable for hugo to render into the
2208 rclone.org website.
2209
2210 rclone gendocs output_directory [flags]
2211
2212 Options
2213 -h, --help help for gendocs
2214
2215 See the global flags page (https://rclone.org/flags/) for global op‐
2216 tions not listed here.
2217
2218 SEE ALSO
2219 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2220 commands, flags and backends.
2221
2223 Produces a hashsum file for all the objects in the path.
2224
2225 Synopsis
2226 Produces a hash file for all the objects in the path using the hash
2227 named. The output is in the same format as the standard md5sum/sha1sum
2228 tool.
2229
2230 By default, the hash is requested from the remote. If the hash is not
2231 supported by the remote, no hash will be returned. With the download
2232 flag, the file will be downloaded from the remote and hashed locally
2233 enabling any hash for any remote.
2234
2235 Run without a hash to see the list of all supported hashes, e.g.
2236
2237 $ rclone hashsum
2238 Supported hashes are:
2239 * MD5
2240 * SHA-1
2241 * DropboxHash
2242 * QuickXorHash
2243
2244 Then
2245
2246 $ rclone hashsum MD5 remote:path
2247
2248 rclone hashsum <hash> remote:path [flags]
2249
2250 Options
2251 --base64 Output base64 encoded hashsum
2252 --download Download the file and hash it locally; if this flag is not specified, the hash is requested from the remote
2253 -h, --help help for hashsum
2254 --output-file string Output hashsums to a file rather than the terminal
2255
2256 See the global flags page (https://rclone.org/flags/) for global op‐
2257 tions not listed here.
2258
2259 SEE ALSO
2260 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2261 commands, flags and backends.
2262
2264 Generate public link to file/folder.
2265
2266 Synopsis
2267 rclone link will create, retrieve or remove a public link to the given
2268 file or folder.
2269
2270 rclone link remote:path/to/file
2271 rclone link remote:path/to/folder/
2272 rclone link --unlink remote:path/to/folder/
2273 rclone link --expire 1d remote:path/to/file
2274
2275 If you supply the --expire flag, it will set the expiration time other‐
2276 wise it will use the default (100 years). Note not all backends sup‐
2277 port the --expire flag - if the backend doesn't support it then the
2278 link returned won't expire.
2279
2280 Use the --unlink flag to remove existing public links to the file or
2281 folder. Note not all backends support "--unlink" flag - those that
2282 don't will just ignore it.
2283
2284 If successful, the last line of the output will contain the link. Ex‐
2285 act capabilities depend on the remote, but the link will always by de‐
2286 fault be created with the least constraints – e.g. no expiry, no pass‐
2287 word protection, accessible without account.
2288
2289 rclone link remote:path [flags]
2290
2291 Options
2292 --expire Duration The amount of time that the link will be valid (default 100y)
2293 -h, --help help for link
2294 --unlink Remove existing public link to file/folder
2295
2296 See the global flags page (https://rclone.org/flags/) for global op‐
2297 tions not listed here.
2298
2299 SEE ALSO
2300 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2301 commands, flags and backends.
2302
2304 List all the remotes in the config file.
2305
2306 Synopsis
2307 rclone listremotes lists all the available remotes from the config
2308 file.
2309
2310 When uses with the -l flag it lists the types too.
2311
2312 rclone listremotes [flags]
2313
2314 Options
2315 -h, --help help for listremotes
2316 --long Show the type as well as names.
2317
2318 See the global flags page (https://rclone.org/flags/) for global op‐
2319 tions not listed here.
2320
2321 SEE ALSO
2322 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2323 commands, flags and backends.
2324
2326 List directories and objects in remote:path formatted for parsing.
2327
2328 Synopsis
2329 List the contents of the source path (directories and objects) to stan‐
2330 dard output in a form which is easy to parse by scripts. By default
2331 this will just be the names of the objects and directories, one per
2332 line. The directories will have a / suffix.
2333
2334 Eg
2335
2336 $ rclone lsf swift:bucket
2337 bevajer5jef
2338 canole
2339 diwogej7
2340 ferejej3gux/
2341 fubuwic
2342
2343 Use the --format option to control what gets listed. By default this
2344 is just the path, but you can use these parameters to control the out‐
2345 put:
2346
2347 p - path
2348 s - size
2349 t - modification time
2350 h - hash
2351 i - ID of object
2352 o - Original ID of underlying object
2353 m - MimeType of object if known
2354 e - encrypted name
2355 T - tier of storage if known, e.g. "Hot" or "Cool"
2356
2357 So if you wanted the path, size and modification time, you would use
2358 --format "pst", or maybe --format "tsp" to put the path last.
2359
2360 Eg
2361
2362 $ rclone lsf --format "tsp" swift:bucket
2363 2016-06-25 18:55:41;60295;bevajer5jef
2364 2016-06-25 18:55:43;90613;canole
2365 2016-06-25 18:55:43;94467;diwogej7
2366 2018-04-26 08:50:45;0;ferejej3gux/
2367 2016-06-25 18:55:40;37600;fubuwic
2368
2369 If you specify "h" in the format you will get the MD5 hash by default,
2370 use the "--hash" flag to change which hash you want. Note that this
2371 can be returned as an empty string if it isn't available on the object
2372 (and for directories), "ERROR" if there was an error reading it from
2373 the object and "UNSUPPORTED" if that object does not support that hash
2374 type.
2375
2376 For example to emulate the md5sum command you can use
2377
2378 rclone lsf -R --hash MD5 --format hp --separator " " --files-only .
2379
2380 Eg
2381
2382 $ rclone lsf -R --hash MD5 --format hp --separator " " --files-only swift:bucket
2383 7908e352297f0f530b84a756f188baa3 bevajer5jef
2384 cd65ac234e6fea5925974a51cdd865cc canole
2385 03b5341b4f234b9d984d03ad076bae91 diwogej7
2386 8fd37c3810dd660778137ac3a66cc06d fubuwic
2387 99713e14a4c4ff553acaf1930fad985b gixacuh7ku
2388
2389 (Though "rclone md5sum ." is an easier way of typing this.)
2390
2391 By default the separator is ";" this can be changed with the --separa‐
2392 tor flag. Note that separators aren't escaped in the path so putting
2393 it last is a good strategy.
2394
2395 Eg
2396
2397 $ rclone lsf --separator "," --format "tshp" swift:bucket
2398 2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
2399 2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole
2400 2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7
2401 2018-04-26 08:52:53,0,,ferejej3gux/
2402 2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic
2403
2404 You can output in CSV standard format. This will escape things in " if
2405 they contain ,
2406
2407 Eg
2408
2409 $ rclone lsf --csv --files-only --format ps remote:path
2410 test.log,22355
2411 test.sh,449
2412 "this file contains a comma, in the file name.txt",6
2413
2414 Note that the --absolute parameter is useful for making lists of files
2415 to pass to an rclone copy with the --files-from-raw flag.
2416
2417 For example to find all the files modified within one day and copy
2418 those only (without traversing the whole directory structure):
2419
2420 rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
2421 rclone copy --files-from-raw new_files /path/to/local remote:path
2422
2423 Any of the filtering options can be applied to this command.
2424
2425 There are several related list commands
2426
2427 · ls to list size and path of objects only
2428
2429 · lsl to list modification time, size and path of objects only
2430
2431 · lsd to list directories only
2432
2433 · lsf to list objects and directories in easy to parse format
2434
2435 · lsjson to list objects and directories in JSON format
2436
2437 ls,lsl,lsd are designed to be human readable. lsf is designed to be
2438 human and machine readable. lsjson is designed to be machine readable.
2439
2440 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
2441 recursion.
2442
2443 The other list commands lsd,lsf,lsjson do not recurse by default - use
2444 -R to make them recurse.
2445
2446 Listing a non existent directory will produce an error except for re‐
2447 motes which can't have empty directories (e.g. s3, swift, or gcs - the
2448 bucket based remotes).
2449
2450 rclone lsf remote:path [flags]
2451
2452 Options
2453 --absolute Put a leading / in front of path names.
2454 --csv Output in CSV format.
2455 -d, --dir-slash Append a slash to directory names. (default true)
2456 --dirs-only Only list directories.
2457 --files-only Only list files.
2458 -F, --format string Output format - see help for details (default "p")
2459 --hash h Use this hash when h is used in the format MD5|SHA-1|DropboxHash (default "MD5")
2460 -h, --help help for lsf
2461 -R, --recursive Recurse into the listing.
2462 -s, --separator string Separator for the items in the format. (default ";")
2463
2464 See the global flags page (https://rclone.org/flags/) for global op‐
2465 tions not listed here.
2466
2467 SEE ALSO
2468 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2469 commands, flags and backends.
2470
2472 List directories and objects in the path in JSON format.
2473
2474 Synopsis
2475 List directories and objects in the path in JSON format.
2476
2477 The output is an array of Items, where each Item looks like this
2478
2479 { "Hashes" : { "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f",
2480 "MD5" : "b1946ac92492d2347c6235b4d2611184", "DropboxHash" :
2481 "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc" },
2482 "ID": "y2djkhiujf83u33", "OrigID": "UYOJVTUW00Q1RzTDA", "IsBucket" :
2483 false, "IsDir" : false, "MimeType" : "application/octet-stream", "Mod‐
2484 Time" : "2017-05-31T16:15:57.034468261+01:00", "Name" : "file.txt",
2485 "Encrypted" : "v0qpsdq8anpci8n929v3uu9338", "EncryptedPath" :
2486 "kja9098349023498/v0qpsdq8anpci8n929v3uu9338", "Path" :
2487 "full/path/goes/here/file.txt", "Size" : 6, "Tier" : "hot", }
2488
2489 If --hash is not specified the Hashes property won't be emitted. The
2490 types of hash can be specified with the --hash-type parameter (which
2491 may be repeated). If --hash-type is set then it implies --hash.
2492
2493 If --no-modtime is specified then ModTime will be blank. This can
2494 speed things up on remotes where reading the ModTime takes an extra re‐
2495 quest (e.g. s3, swift).
2496
2497 If --no-mimetype is specified then MimeType will be blank. This can
2498 speed things up on remotes where reading the MimeType takes an extra
2499 request (e.g. s3, swift).
2500
2501 If --encrypted is not specified the Encrypted won't be emitted.
2502
2503 If --dirs-only is not specified files in addition to directories are
2504 returned
2505
2506 If --files-only is not specified directories in addition to the files
2507 will be returned.
2508
2509 The Path field will only show folders below the remote path being list‐
2510 ed. If "remote:path" contains the file "subfolder/file.txt", the Path
2511 for "file.txt" will be "subfolder/file.txt", not "remote:path/subfold‐
2512 er/file.txt". When used without --recursive the Path will always be
2513 the same as Name.
2514
2515 If the directory is a bucket in a bucket based backend, then "IsBucket"
2516 will be set to true. This key won't be present unless it is "true".
2517
2518 The time is in RFC3339 format with up to nanosecond precision. The
2519 number of decimal digits in the seconds will depend on the precision
2520 that the remote can hold the times, so if times are accurate to the
2521 nearest millisecond (e.g. Google Drive) then 3 digits will always be
2522 shown ("2017-05-31T16:15:57.034+01:00") whereas if the times are accu‐
2523 rate to the nearest second (Dropbox, Box, WebDav, etc.) no digits will
2524 be shown ("2017-05-31T16:15:57+01:00").
2525
2526 The whole output can be processed as a JSON blob, or alternatively it
2527 can be processed line by line as each item is written one to a line.
2528
2529 Any of the filtering options can be applied to this command.
2530
2531 There are several related list commands
2532
2533 · ls to list size and path of objects only
2534
2535 · lsl to list modification time, size and path of objects only
2536
2537 · lsd to list directories only
2538
2539 · lsf to list objects and directories in easy to parse format
2540
2541 · lsjson to list objects and directories in JSON format
2542
2543 ls,lsl,lsd are designed to be human readable. lsf is designed to be
2544 human and machine readable. lsjson is designed to be machine readable.
2545
2546 Note that ls and lsl recurse by default - use --max-depth 1 to stop the
2547 recursion.
2548
2549 The other list commands lsd,lsf,lsjson do not recurse by default - use
2550 -R to make them recurse.
2551
2552 Listing a non existent directory will produce an error except for re‐
2553 motes which can't have empty directories (e.g. s3, swift, or gcs - the
2554 bucket based remotes).
2555
2556 rclone lsjson remote:path [flags]
2557
2558 Options
2559 --dirs-only Show only directories in the listing.
2560 -M, --encrypted Show the encrypted names.
2561 --files-only Show only files in the listing.
2562 --hash Include hashes in the output (may take longer).
2563 --hash-type stringArray Show only this hash type (may be repeated).
2564 -h, --help help for lsjson
2565 --no-mimetype Don't read the mime type (can speed things up).
2566 --no-modtime Don't read the modification time (can speed things up).
2567 --original Show the ID of the underlying Object.
2568 -R, --recursive Recurse into the listing.
2569
2570 See the global flags page (https://rclone.org/flags/) for global op‐
2571 tions not listed here.
2572
2573 SEE ALSO
2574 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
2575 commands, flags and backends.
2576
2578 Mount the remote as file system on a mountpoint.
2579
2580 Synopsis
2581 rclone mount allows Linux, FreeBSD, macOS and Windows to mount any of
2582 Rclone's cloud storage systems as a file system with FUSE.
2583
2584 First set up your remote using rclone config. Check it works with
2585 rclone ls etc.
2586
2587 On Linux and OSX, you can either run mount in foreground mode or back‐
2588 ground (daemon) mode. Mount runs in foreground mode by default, use
2589 the --daemon flag to specify background mode. You can only run mount
2590 in foreground mode on Windows.
2591
2592 On Linux/macOS/FreeBSD start the mount like this, where /path/to/lo‐
2593 cal/mount is an empty existing directory:
2594
2595 rclone mount remote:path/to/files /path/to/local/mount
2596
2597 On Windows you can start a mount in different ways. See below for de‐
2598 tails. The following examples will mount to an automatically assigned
2599 drive, to specific drive letter X:, to path C:\path\to\nonexistent\di‐
2600 rectory (which must be non-existent subdirectory of an existing parent
2601 directory or drive, and is not supported when mounting as a network
2602 drive), and the last example will mount as network share \\cloud\remote
2603 and map it to an automatically assigned drive:
2604
2605 rclone mount remote:path/to/files *
2606 rclone mount remote:path/to/files X:
2607 rclone mount remote:path/to/files C:\path\to\nonexistent\directory
2608 rclone mount remote:path/to/files \\cloud\remote
2609
2610 When the program ends while in foreground mode, either via Ctrl+C or
2611 receiving a SIGINT or SIGTERM signal, the mount should be automatically
2612 stopped.
2613
2614 When running in background mode the user will have to stop the mount
2615 manually:
2616
2617 # Linux
2618 fusermount -u /path/to/local/mount
2619 # OS X
2620 umount /path/to/local/mount
2621
2622 The umount operation can fail, for example when the mountpoint is busy.
2623 When that happens, it is the user's responsibility to stop the mount
2624 manually.
2625
2626 The size of the mounted file system will be set according to informa‐
2627 tion retrieved from the remote, the same as returned by the rclone
2628 about (https://rclone.org/commands/rclone_about/) command. Remotes
2629 with unlimited storage may report the used size only, then an addition‐
2630 al 1PB of free space is assumed. If the remote does not support
2631 (https://rclone.org/overview/#optional-features) the about feature at
2632 all, then 1PB is set as both the total and the free size.
2633
2634 Note: As of rclone 1.52.2, rclone mount now requires Go version 1.13 or
2635 newer on some platforms depending on the underlying FUSE library in
2636 use.
2637
2638 Installing on Windows
2639 To run rclone mount on Windows, you will need to download and install
2640 WinFsp (http://www.secfs.net/winfsp/).
2641
2642 WinFsp (https://github.com/billziss-gh/winfsp) is an open source Win‐
2643 dows File System Proxy which makes it easy to write user space file
2644 systems for Windows. It provides a FUSE emulation layer which rclone
2645 uses combination with cgofuse (https://github.com/billziss-gh/cgofuse).
2646 Both of these packages are by Bill Zissimopoulos who was very helpful
2647 during the implementation of rclone mount for Windows.
2648
2649 Mounting modes on windows
2650 Unlike other operating systems, Microsoft Windows provides a different
2651 filesystem type for network and fixed drives. It optimises access on
2652 the assumption fixed disk drives are fast and reliable, while network
2653 drives have relatively high latency and less reliability. Some set‐
2654 tings can also be differentiated between the two types, for example
2655 that Windows Explorer should just display icons and not create preview
2656 thumbnails for image and video files on network drives.
2657
2658 In most cases, rclone will mount the remote as a normal, fixed disk
2659 drive by default. However, you can also choose to mount it as a remote
2660 network drive, often described as a network share. If you mount an
2661 rclone remote using the default, fixed drive mode and experience unex‐
2662 pected program errors, freezes or other issues, consider mounting as a
2663 network drive instead.
2664
2665 When mounting as a fixed disk drive you can either mount to an unused
2666 drive letter, or to a path - which must be non-existent subdirectory of
2667 an existing parent directory or drive. Using the special value * will
2668 tell rclone to automatically assign the next available drive letter,
2669 starting with Z: and moving backward. Examples:
2670
2671 rclone mount remote:path/to/files *
2672 rclone mount remote:path/to/files X:
2673 rclone mount remote:path/to/files C:\path\to\nonexistent\directory
2674 rclone mount remote:path/to/files X:
2675
2676 Option --volname can be used to set a custom volume name for the mount‐
2677 ed file system. The default is to use the remote name and path.
2678
2679 To mount as network drive, you can add option --network-mode to your
2680 mount command. Mounting to a directory path is not supported in this
2681 mode, it is a limitation Windows imposes on junctions, so the remote
2682 must always be mounted to a drive letter.
2683
2684 rclone mount remote:path/to/files X: --network-mode
2685
2686 A volume name specified with --volname will be used to create the net‐
2687 work share path. A complete UNC path, such as \\cloud\remote, option‐
2688 ally with path \\cloud\remote\madeup\path, will be used as is. Any
2689 other string will be used as the share part, after a default prefix
2690 \\server\. If no volume name is specified then \\server\share will be
2691 used. You must make sure the volume name is unique when you are mount‐
2692 ing more than one drive, or else the mount command will fail. The
2693 share name will treated as the volume label for the mapped drive, shown
2694 in Windows Explorer etc, while the complete \\server\share will be re‐
2695 ported as the remote UNC path by net use etc, just like a normal net‐
2696 work drive mapping.
2697
2698 If you specify a full network share UNC path with --volname, this will
2699 implicitely set the --network-mode option, so the following two exam‐
2700 ples have same result:
2701
2702 rclone mount remote:path/to/files X: --network-mode
2703 rclone mount remote:path/to/files X: --volname \\server\share
2704
2705 You may also specify the network share UNC path as the mountpoint it‐
2706 self. Then rclone will automatically assign a drive letter, same as
2707 with * and use that as mountpoint, and instead use the UNC path speci‐
2708 fied as the volume name, as if it were specified with the --volname op‐
2709 tion. This will also implicitely set the --network-mode option. This
2710 means the following two examples have same result:
2711
2712 rclone mount remote:path/to/files \\cloud\remote
2713 rclone mount remote:path/to/files * --volname \\cloud\remote
2714
2715 There is yet another way to enable network mode, and to set the share
2716 path, and that is to pass the "native" libfuse/WinFsp option directly:
2717 --fuse-flag --VolumePrefix=\server\share. Note that the path must be
2718 with just a single backslash prefix in this case.
2719
2720 Note: In previous versions of rclone this was the only supported
2721 method.
2722
2723 Read more about drive mapping (https://en.wikipedia.org/wiki/Drive_map‐
2724 ping)
2725
2726 See also Limitations section below.
2727
2728 Windows filesystem permissions
2729 The FUSE emulation layer on Windows must convert between the
2730 POSIX-based permission model used in FUSE, and the permission model
2731 used in Windows, based on access-control lists (ACL).
2732
2733 The mounted filesystem will normally get three entries in its ac‐
2734 cess-control list (ACL), representing permissions for the POSIX permis‐
2735 sion scopes: Owner, group and others. By default, the owner and group
2736 will be taken from the current user, and the built-in group "Everyone"
2737 will be used to represent others. The user/group can be customized
2738 with FUSE options "UserName" and "GroupName", e.g. -o UserName=user123
2739 -o GroupName="Authenticated Users".
2740
2741 The permissions on each entry will be set according to options
2742 --dir-perms and --file-perms, which takes a value in traditional numer‐
2743 ic notation (https://en.wikipedia.org/wiki/File-system_permissions#Nu‐
2744 meric_notation), where the default corresponds to --file-perms 0666
2745 --dir-perms 0777.
2746
2747 Note that the mapping of permissions is not always trivial, and the re‐
2748 sult you see in Windows Explorer may not be exactly like you expected.
2749 For example, when setting a value that includes write access, this will
2750 be mapped to individual permissions "write attributes", "write data"
2751 and "append data", but not "write extended attributes" (WinFsp does not
2752 support extended attributes, see this (https://github.com/billziss-
2753 gh/winfsp/wiki/NTFS-Compatibility)). Windows will then show this as
2754 basic permission "Special" instead of "Write", because "Write" includes
2755 the "write extended attributes" permission.
2756
2757 Windows caveats
2758 Note that drives created as Administrator are not visible by other ac‐
2759 counts (including the account that was elevated as Administrator). So
2760 if you start a Windows drive from an Administrative Command Prompt and
2761 then try to access the same drive from Explorer (which does not run as
2762 Administrator), you will not be able to see the new drive.
2763
2764 The easiest way around this is to start the drive from a normal command
2765 prompt. It is also possible to start a drive from the SYSTEM account
2766 (using the WinFsp.Launcher infrastructure (https://github.com/billziss-
2767 gh/winfsp/wiki/WinFsp-Service-Architecture)) which creates drives ac‐
2768 cessible for everyone on the system or alternatively using the nssm
2769 service manager (https://nssm.cc/usage).
2770
2771 Limitations
2772 Without the use of --vfs-cache-mode this can only write files sequen‐
2773 tially, it can only seek when reading. This means that many applica‐
2774 tions won't work with their files on an rclone mount without
2775 --vfs-cache-mode writes or --vfs-cache-mode full. See the File Caching
2776 section for more info.
2777
2778 The bucket based remotes (e.g. Swift, S3, Google Compute Storage, B2,
2779 Hubic) do not support the concept of empty directories, so empty direc‐
2780 tories will have a tendency to disappear once they fall out of the di‐
2781 rectory cache.
2782
2783 Only supported on Linux, FreeBSD, OS X and Windows at the moment.
2784
2785 rclone mount vs rclone sync/copy
2786 File systems expect things to be 100% reliable, whereas cloud storage
2787 systems are a long way from 100% reliable. The rclone sync/copy com‐
2788 mands cope with this with lots of retries. However rclone mount can't
2789 use retries in the same way without making local copies of the uploads.
2790 Look at the file caching for solutions to make mount more reliable.
2791
2792 Attribute caching
2793 You can use the flag --attr-timeout to set the time the kernel caches
2794 the attributes (size, modification time, etc.) for directory entries.
2795
2796 The default is 1s which caches files just long enough to avoid too many
2797 callbacks to rclone from the kernel.
2798
2799 In theory 0s should be the correct value for filesystems which can
2800 change outside the control of the kernel. However this causes quite a
2801 few problems such as rclone using too much memory
2802 (https://github.com/rclone/rclone/issues/2157), rclone not serving
2803 files to samba (https://forum.rclone.org/t/rclone-1-39-vs-1-40-mount-
2804 issue/5112) and excessive time listing directories
2805 (https://github.com/rclone/rclone/issues/2095#issuecomment-371141147).
2806
2807 The kernel can cache the info about a file for the time given by --at‐
2808 tr-timeout. You may see corruption if the remote file changes length
2809 during this window. It will show up as either a truncated file or a
2810 file with garbage on the end. With --attr-timeout 1s this is very un‐
2811 likely but not impossible. The higher you set --attr-timeout the more
2812 likely it is. The default setting of "1s" is the lowest setting which
2813 mitigates the problems above.
2814
2815 If you set it higher (10s or 1m say) then the kernel will call back to
2816 rclone less often making it more efficient, however there is more
2817 chance of the corruption issue above.
2818
2819 If files don't change on the remote outside of the control of rclone
2820 then there is no chance of corruption.
2821
2822 This is the same as setting the attr_timeout option in mount.fuse.
2823
2824 Filters
2825 Note that all the rclone filters can be used to select a subset of the
2826 files to be visible in the mount.
2827
2828 systemd
2829 When running rclone mount as a systemd service, it is possible to use
2830 Type=notify. In this case the service will enter the started state af‐
2831 ter the mountpoint has been successfully set up. Units having the
2832 rclone mount service specified as a requirement will see all files and
2833 folders immediately in this mode.
2834
2835 chunked reading
2836 --vfs-read-chunk-size will enable reading the source objects in parts.
2837 This can reduce the used download quota for some remotes by requesting
2838 only chunks from the remote that are actually read at the cost of an
2839 increased number of requests.
2840
2841 When --vfs-read-chunk-size-limit is also specified and greater than
2842 --vfs-read-chunk-size, the chunk size for each open file will get dou‐
2843 bled for each chunk read, until the specified value is reached. A val‐
2844 ue of -1 will disable the limit and the chunk size will grow indefi‐
2845 nitely.
2846
2847 With --vfs-read-chunk-size 100M and --vfs-read-chunk-size-limit 0 the
2848 following parts will be downloaded: 0-100M, 100M-200M, 200M-300M,
2849 300M-400M and so on. When --vfs-read-chunk-size-limit 500M is speci‐
2850 fied, the result would be 0-100M, 100M-300M, 300M-700M, 700M-1200M,
2851 1200M-1700M and so on.
2852
2853 VFS - Virtual File System
2854 This command uses the VFS layer. This adapts the cloud storage objects
2855 that rclone uses into something which looks much more like a disk fil‐
2856 ing system.
2857
2858 Cloud storage objects have lots of properties which aren't like disk
2859 files - you can't extend them or write to the middle of them, so the
2860 VFS layer has to deal with that. Because there is no one right way of
2861 doing this there are various options explained below.
2862
2863 The VFS layer also implements a directory cache - this caches info
2864 about files and directories (but not the data) in memory.
2865
2866 VFS Directory Cache
2867 Using the --dir-cache-time flag, you can control how long a directory
2868 should be considered up to date and not refreshed from the backend.
2869 Changes made through the mount will appear immediately or invalidate
2870 the cache.
2871
2872 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
2873 --poll-interval duration Time to wait between polling for changes.
2874
2875 However, changes made directly on the cloud storage by the web inter‐
2876 face or a different copy of rclone will only be picked up once the di‐
2877 rectory cache expires if the backend configured does not support
2878 polling for changes. If the backend supports polling, changes will be
2879 picked up within the polling interval.
2880
2881 You can send a SIGHUP signal to rclone for it to flush all directory
2882 caches, regardless of how old they are. Assuming only one rclone in‐
2883 stance is running, you can reset the cache like this:
2884
2885 kill -SIGHUP $(pidof rclone)
2886
2887 If you configure rclone with a remote control (/rc) then you can use
2888 rclone rc to flush the whole directory cache:
2889
2890 rclone rc vfs/forget
2891
2892 Or individual files or directories:
2893
2894 rclone rc vfs/forget file=path/to/file dir=path/to/dir
2895
2896 VFS File Buffering
2897 The --buffer-size flag determines the amount of memory, that will be
2898 used to buffer data in advance.
2899
2900 Each open file will try to keep the specified amount of data in memory
2901 at all times. The buffered data is bound to one open file and won't be
2902 shared.
2903
2904 This flag is a upper limit for the used memory per open file. The buf‐
2905 fer will only use memory for data that is downloaded but not not yet
2906 read. If the buffer is empty, only a small amount of memory will be
2907 used.
2908
2909 The maximum memory used by rclone for buffering can be up to --buf‐
2910 fer-size * open files.
2911
2912 VFS File Caching
2913 These flags control the VFS file caching options. File caching is nec‐
2914 essary to make the VFS layer appear compatible with a normal file sys‐
2915 tem. It can be disabled at the cost of some compatibility.
2916
2917 For example you'll need to enable VFS caching if you want to read and
2918 write simultaneously to a file. See below for more details.
2919
2920 Note that the VFS cache is separate from the cache backend and you may
2921 find that you need one or the other or both.
2922
2923 --cache-dir string Directory rclone will use for caching.
2924 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
2925 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
2926 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
2927 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
2928 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
2929
2930 If run with -vv rclone will print the location of the file cache. The
2931 files are stored in the user cache file area which is OS dependent but
2932 can be controlled with --cache-dir or setting the appropriate environ‐
2933 ment variable.
2934
2935 The cache has 4 different modes selected by --vfs-cache-mode. The
2936 higher the cache mode the more compatible rclone becomes at the cost of
2937 using disk space.
2938
2939 Note that files are written back to the remote only when they are
2940 closed and if they haven't been accessed for --vfs-write-back second.
2941 If rclone is quit or dies with files that haven't been uploaded, these
2942 will be uploaded next time rclone is run with the same flags.
2943
2944 If using --vfs-cache-max-size note that the cache may exceed this size
2945 for two reasons. Firstly because it is only checked every
2946 --vfs-cache-poll-interval. Secondly because open files cannot be
2947 evicted from the cache.
2948
2949 --vfs-cache-mode off
2950 In this mode (the default) the cache will read directly from the remote
2951 and write directly to the remote without caching anything on disk.
2952
2953 This will mean some operations are not possible
2954
2955 · Files can't be opened for both read AND write
2956
2957 · Files opened for write can't be seeked
2958
2959 · Existing files opened for write must have O_TRUNC set
2960
2961 · Files open for read with O_TRUNC will be opened write only
2962
2963 · Files open for write only will behave as if O_TRUNC was supplied
2964
2965 · Open modes O_APPEND, O_TRUNC are ignored
2966
2967 · If an upload fails it can't be retried
2968
2969 --vfs-cache-mode minimal
2970 This is very similar to "off" except that files opened for read AND
2971 write will be buffered to disk. This means that files opened for write
2972 will be a lot more compatible, but uses the minimal disk space.
2973
2974 These operations are not possible
2975
2976 · Files opened for write only can't be seeked
2977
2978 · Existing files opened for write must have O_TRUNC set
2979
2980 · Files opened for write only will ignore O_APPEND, O_TRUNC
2981
2982 · If an upload fails it can't be retried
2983
2984 --vfs-cache-mode writes
2985 In this mode files opened for read only are still read directly from
2986 the remote, write only and read/write files are buffered to disk first.
2987
2988 This mode should support all normal file system operations.
2989
2990 If an upload fails it will be retried at exponentially increasing in‐
2991 tervals up to 1 minute.
2992
2993 --vfs-cache-mode full
2994 In this mode all reads and writes are buffered to and from disk. When
2995 data is read from the remote this is buffered to disk as well.
2996
2997 In this mode the files in the cache will be sparse files and rclone
2998 will keep track of which bits of the files it has downloaded.
2999
3000 So if an application only reads the starts of each file, then rclone
3001 will only buffer the start of the file. These files will appear to be
3002 their full size in the cache, but they will be sparse files with only
3003 the data that has been downloaded present in them.
3004
3005 This mode should support all normal file system operations and is oth‐
3006 erwise identical to --vfs-cache-mode writes.
3007
3008 When reading a file rclone will read --buffer-size plus
3009 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
3010 whereas the --vfs-read-ahead is buffered on disk.
3011
3012 When using this mode it is recommended that --buffer-size is not set
3013 too big and --vfs-read-ahead is set large if required.
3014
3015 IMPORTANT not all file systems support sparse files. In particular
3016 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
3017 ry is on a filesystem which doesn't support sparse files and it will
3018 log an ERROR message if one is detected.
3019
3020 VFS Performance
3021 These flags may be used to enable/disable features of the VFS for per‐
3022 formance or other reasons.
3023
3024 In particular S3 and Swift benefit hugely from the --no-modtime flag
3025 (or use --use-server-modtime for a slightly different effect) as each
3026 read of the modification time takes a transaction.
3027
3028 --no-checksum Don't compare checksums on up/download.
3029 --no-modtime Don't read/write the modification time (can speed things up).
3030 --no-seek Don't allow seeking in files.
3031 --read-only Mount read-only.
3032
3033 When rclone reads files from a remote it reads them in chunks. This
3034 means that rather than requesting the whole file rclone reads the chunk
3035 specified. This is advantageous because some cloud providers account
3036 for reads being all the data requested, not all the data delivered.
3037
3038 Rclone will keep doubling the chunk size requested starting at
3039 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
3040 less it is set to "off" in which case there will be no limit.
3041
3042 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3043 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
3044
3045 Sometimes rclone is delivered reads or writes out of order. Rather
3046 than seeking rclone will wait a short time for the in sequence read or
3047 write to come in. These flags only come into effect when not using an
3048 on disk cache file.
3049
3050 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
3051 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
3052
3053 When using VFS write caching (--vfs-cache-mode with value writes or
3054 full), the global flag --transfers can be set to adjust the number of
3055 parallel uploads of modified files from cache (the related global flag
3056 --checkers have no effect on mount).
3057
3058 --transfers int Number of file transfers to run in parallel. (default 4)
3059
3060 VFS Case Sensitivity
3061 Linux file systems are case-sensitive: two files can differ only by
3062 case, and the exact case must be used when opening a file.
3063
3064 File systems in modern Windows are case-insensitive but case-preserv‐
3065 ing: although existing files can be opened using any case, the exact
3066 case used to create the file is preserved and available for programs to
3067 query. It is not allowed for two files in the same directory to differ
3068 only by case.
3069
3070 Usually file systems on macOS are case-insensitive. It is possible to
3071 make macOS file systems case-sensitive but that is not the default
3072
3073 The --vfs-case-insensitive mount flag controls how rclone handles these
3074 two cases. If its value is "false", rclone passes file names to the
3075 mounted file system as-is. If the flag is "true" (or appears without a
3076 value on command line), rclone may perform a "fixup" as explained be‐
3077 low.
3078
3079 The user may specify a file name to open/delete/rename/etc with a case
3080 different than what is stored on mounted file system. If an argument
3081 refers to an existing file with exactly the same name, then the case of
3082 the existing file on the disk will be used. However, if a file name
3083 with exactly the same name is not found but a name differing only by
3084 case exists, rclone will transparently fixup the name. This fixup hap‐
3085 pens only when an existing file is requested. Case sensitivity of file
3086 names created anew by rclone is controlled by an underlying mounted
3087 file system.
3088
3089 Note that case sensitivity of the operating system running rclone (the
3090 target) may differ from case sensitivity of a file system mounted by
3091 rclone (the source). The flag controls whether "fixup" is performed to
3092 satisfy the target.
3093
3094 If the flag is not provided on the command line, then its default value
3095 depends on the operating system where rclone runs: "true" on Windows
3096 and macOS, "false" otherwise. If the flag is provided without a value,
3097 then it is "true".
3098
3099 rclone mount remote:path /path/to/mountpoint [flags]
3100
3101 Options
3102 --allow-non-empty Allow mounting over a non-empty directory. Not supported on Windows.
3103 --allow-other Allow access to other users. Not supported on Windows.
3104 --allow-root Allow access to root user. Not supported on Windows.
3105 --async-read Use asynchronous reads. Not supported on Windows. (default true)
3106 --attr-timeout duration Time for which file/directory attributes are cached. (default 1s)
3107 --daemon Run mount as a daemon (background mode). Not supported on Windows.
3108 --daemon-timeout duration Time limit for rclone to respond to kernel. Not supported on Windows.
3109 --debug-fuse Debug the FUSE internals - needs -v.
3110 --default-permissions Makes kernel enforce access control based on the file mode. Not supported on Windows.
3111 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3112 --dir-perms FileMode Directory permissions (default 0777)
3113 --file-perms FileMode File permissions (default 0666)
3114 --fuse-flag stringArray Flags or arguments to be passed direct to libfuse/WinFsp. Repeat if required.
3115 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
3116 -h, --help help for mount
3117 --max-read-ahead SizeSuffix The number of bytes that can be prefetched for sequential reads. Not supported on Windows. (default 128k)
3118 --network-mode Mount as remote network drive, instead of fixed disk drive. Supported on Windows only
3119 --no-checksum Don't compare checksums on up/download.
3120 --no-modtime Don't read/write the modification time (can speed things up).
3121 --no-seek Don't allow seeking in files.
3122 --noappledouble Ignore Apple Double (._) and .DS_Store files. Supported on OSX only. (default true)
3123 --noapplexattr Ignore all "com.apple.*" extended attributes. Supported on OSX only.
3124 -o, --option stringArray Option for libfuse/WinFsp. Repeat if required.
3125 --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)
3126 --read-only Mount read-only.
3127 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
3128 --umask int Override the permission bits set by the filesystem. Not supported on Windows.
3129 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3130 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3131 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3132 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3133 --vfs-case-insensitive If a file name not found, find a case insensitive match.
3134 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
3135 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3136 --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)
3137 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
3138 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
3139 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
3140 --volname string Set the volume name. Supported on Windows and OSX only.
3141 --write-back-cache Makes kernel buffer writes before sending them to rclone. Without this, writethrough caching is used. Not supported on Windows.
3142
3143 See the global flags page (https://rclone.org/flags/) for global op‐
3144 tions not listed here.
3145
3146 SEE ALSO
3147 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3148 commands, flags and backends.
3149
3151 Move file or directory from source to dest.
3152
3153 Synopsis
3154 If source:path is a file or directory then it moves it to a file or di‐
3155 rectory named dest:path.
3156
3157 This can be used to rename files or upload single files to other than
3158 their existing name. If the source is a directory then it acts exactly
3159 like the move command.
3160
3161 So
3162
3163 rclone moveto src dst
3164
3165 where src and dst are rclone paths, either remote:path or /path/to/lo‐
3166 cal or C:.
3167
3168 This will:
3169
3170 if src is file
3171 move it to dst, overwriting an existing file if it exists
3172 if src is directory
3173 move it to dst, overwriting existing files if they exist
3174 see move command for full details
3175
3176 This doesn't transfer unchanged files, testing by size and modification
3177 time or MD5SUM. src will be deleted on successful transfer.
3178
3179 Important: Since this can cause data loss, test first with the
3180 --dry-run or the --interactive/-i flag.
3181
3182 Note: Use the -P/--progress flag to view real-time transfer statistics.
3183
3184 rclone moveto source:path dest:path [flags]
3185
3186 Options
3187 -h, --help help for moveto
3188
3189 See the global flags page (https://rclone.org/flags/) for global op‐
3190 tions not listed here.
3191
3192 SEE ALSO
3193 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3194 commands, flags and backends.
3195
3197 Explore a remote with a text based user interface.
3198
3199 Synopsis
3200 This displays a text based user interface allowing the navigation of a
3201 remote. It is most useful for answering the question - "What is using
3202 all my disk space?".
3203
3204 To make the user interface it first scans the entire remote given and
3205 builds an in memory representation. rclone ncdu can be used during
3206 this scanning phase and you will see it building up the directory
3207 structure as it goes along.
3208
3209 Here are the keys - press '?' to toggle the help on and off
3210
3211 ↑,↓ or k,j to Move
3212 →,l to enter
3213 ←,h to return
3214 c toggle counts
3215 g toggle graph
3216 a toggle average size in directory
3217 n,s,C,A sort by name,size,count,average size
3218 d delete file/directory
3219 y copy current path to clipboard
3220 Y display current path
3221 ^L refresh screen
3222 ? to toggle help on and off
3223 q/ESC/c-C to quit
3224
3225 This an homage to the ncdu tool (https://dev.yorhel.nl/ncdu) but for
3226 rclone remotes. It is missing lots of features at the moment but is
3227 useful as it stands.
3228
3229 Note that it might take some time to delete big files/folders. The UI
3230 won't respond in the meantime since the deletion is done synchronously.
3231
3232 rclone ncdu remote:path [flags]
3233
3234 Options
3235 -h, --help help for ncdu
3236
3237 See the global flags page (https://rclone.org/flags/) for global op‐
3238 tions not listed here.
3239
3240 SEE ALSO
3241 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3242 commands, flags and backends.
3243
3245 Obscure password for use in the rclone config file.
3246
3247 Synopsis
3248 In the rclone config file, human readable passwords are obscured. Ob‐
3249 scuring them is done by encrypting them and writing them out in base64.
3250 This is not a secure way of encrypting these passwords as rclone can
3251 decrypt them - it is to prevent "eyedropping" - namely someone seeing a
3252 password in the rclone config file by accident.
3253
3254 Many equally important things (like access tokens) are not obscured in
3255 the config file. However it is very hard to shoulder surf a 64 charac‐
3256 ter hex token.
3257
3258 This command can also accept a password through STDIN instead of an ar‐
3259 gument by passing a hyphen as an argument. This will use the first
3260 line of STDIN as the password not including the trailing newline.
3261
3262 echo "secretpassword" | rclone obscure -
3263
3264 If there is no data on STDIN to read, rclone obscure will default to
3265 obfuscating the hyphen itself.
3266
3267 If you want to encrypt the config file then please use config file en‐
3268 cryption - see rclone config (https://rclone.org/commands/rclone_con‐
3269 fig/) for more info.
3270
3271 rclone obscure password [flags]
3272
3273 Options
3274 -h, --help help for obscure
3275
3276 See the global flags page (https://rclone.org/flags/) for global op‐
3277 tions not listed here.
3278
3279 SEE ALSO
3280 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3281 commands, flags and backends.
3282
3284 Run a command against a running rclone.
3285
3286 Synopsis
3287 This runs a command against a running rclone. Use the --url flag to
3288 specify an non default URL to connect on. This can be either a ":port"
3289 which is taken to mean "http://localhost:port" or a "host:port" which
3290 is taken to mean "http://host:port"
3291
3292 A username and password can be passed in with --user and --pass.
3293
3294 Note that --rc-addr, --rc-user, --rc-pass will be read also for --url,
3295 --user, --pass.
3296
3297 Arguments should be passed in as parameter=value.
3298
3299 The result will be returned as a JSON object by default.
3300
3301 The --json parameter can be used to pass in a JSON blob as an input in‐
3302 stead of key=value arguments. This is the only way of passing in more
3303 complicated values.
3304
3305 The -o/--opt option can be used to set a key "opt" with key, value op‐
3306 tions in the form "-o key=value" or "-o key". It can be repeated as
3307 many times as required. This is useful for rc commands which take the
3308 "opt" parameter which by convention is a dictionary of strings.
3309
3310 -o key=value -o key2
3311
3312 Will place this in the "opt" value
3313
3314 {"key":"value", "key2","")
3315
3316 The -a/--arg option can be used to set strings in the "arg" value. It
3317 can be repeated as many times as required. This is useful for rc com‐
3318 mands which take the "arg" parameter which by convention is a list of
3319 strings.
3320
3321 -a value -a value2
3322
3323 Will place this in the "arg" value
3324
3325 ["value", "value2"]
3326
3327 Use --loopback to connect to the rclone instance running "rclone rc".
3328 This is very useful for testing commands without having to run an
3329 rclone rc server, e.g.:
3330
3331 rclone rc --loopback operations/about fs=/
3332
3333 Use "rclone rc" to see a list of all possible commands.
3334
3335 rclone rc commands parameter [flags]
3336
3337 Options
3338 -a, --arg stringArray Argument placed in the "arg" array.
3339 -h, --help help for rc
3340 --json string Input JSON - use instead of key=value args.
3341 --loopback If set connect to this rclone instance not via HTTP.
3342 --no-output If set, don't output the JSON result.
3343 -o, --opt stringArray Option in the form name=value or name placed in the "opt" array.
3344 --pass string Password to use to connect to rclone remote control.
3345 --url string URL to connect to rclone remote control. (default "http://localhost:5572/")
3346 --user string Username to use to rclone remote control.
3347
3348 See the global flags page (https://rclone.org/flags/) for global op‐
3349 tions not listed here.
3350
3351 SEE ALSO
3352 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3353 commands, flags and backends.
3354
3356 Copies standard input to file on remote.
3357
3358 Synopsis
3359 rclone rcat reads from standard input (stdin) and copies it to a single
3360 remote file.
3361
3362 echo "hello world" | rclone rcat remote:path/to/file
3363 ffmpeg - | rclone rcat remote:path/to/file
3364
3365 If the remote file already exists, it will be overwritten.
3366
3367 rcat will try to upload small files in a single request, which is usu‐
3368 ally more efficient than the streaming/chunked upload endpoints, which
3369 use multiple requests. Exact behaviour depends on the remote. What is
3370 considered a small file may be set through --streaming-upload-cutoff.
3371 Uploading only starts after the cutoff is reached or if the file ends
3372 before that. The data must fit into RAM. The cutoff needs to be small
3373 enough to adhere the limits of your remote, please see there. General‐
3374 ly speaking, setting this cutoff too high will decrease your perfor‐
3375 mance.
3376
3377 Note that the upload can also not be retried because the data is not
3378 kept around until the upload succeeds. If you need to transfer a lot
3379 of data, you're better off caching locally and then rclone move it to
3380 the destination.
3381
3382 rclone rcat remote:path [flags]
3383
3384 Options
3385 -h, --help help for rcat
3386
3387 See the global flags page (https://rclone.org/flags/) for global op‐
3388 tions not listed here.
3389
3390 SEE ALSO
3391 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3392 commands, flags and backends.
3393
3395 Run rclone listening to remote control commands only.
3396
3397 Synopsis
3398 This runs rclone so that it only listens to remote control commands.
3399
3400 This is useful if you are controlling rclone via the rc API.
3401
3402 If you pass in a path to a directory, rclone will serve that directory
3403 for GET requests on the URL passed in. It will also open the URL in
3404 the browser when rclone is run.
3405
3406 See the rc documentation (https://rclone.org/rc/) for more info on the
3407 rc flags.
3408
3409 rclone rcd <path to files to serve>* [flags]
3410
3411 Options
3412 -h, --help help for rcd
3413
3414 See the global flags page (https://rclone.org/flags/) for global op‐
3415 tions not listed here.
3416
3417 SEE ALSO
3418 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3419 commands, flags and backends.
3420
3422 Remove empty directories under the path.
3423
3424 Synopsis
3425 This recursively removes any empty directories (including directories
3426 that only contain empty directories), that it finds under the path.
3427 The root path itself will also be removed if it is empty, unless you
3428 supply the --leave-root flag.
3429
3430 Use command rmdir to delete just the empty directory given by path, not
3431 recurse.
3432
3433 This is useful for tidying up remotes that rclone has left a lot of
3434 empty directories in. For example the delete command will delete files
3435 but leave the directory structure (unless used with option --rmdirs).
3436
3437 To delete a path and any objects in it, use purge command.
3438
3439 rclone rmdirs remote:path [flags]
3440
3441 Options
3442 -h, --help help for rmdirs
3443 --leave-root Do not remove root directory if empty
3444
3445 See the global flags page (https://rclone.org/flags/) for global op‐
3446 tions not listed here.
3447
3448 SEE ALSO
3449 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3450 commands, flags and backends.
3451
3453 Serve a remote over a protocol.
3454
3455 Synopsis
3456 rclone serve is used to serve a remote over a given protocol. This
3457 command requires the use of a subcommand to specify the protocol, e.g.
3458
3459 rclone serve http remote:
3460
3461 Each subcommand has its own options which you can see in their help.
3462
3463 rclone serve <protocol> [opts] <remote> [flags]
3464
3465 Options
3466 -h, --help help for serve
3467
3468 See the global flags page (https://rclone.org/flags/) for global op‐
3469 tions not listed here.
3470
3471 SEE ALSO
3472 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
3473 commands, flags and backends.
3474
3475 · rclone serve dlna (https://rclone.org/commands/rclone_serve_dlna/) -
3476 Serve remote:path over DLNA
3477
3478 · rclone serve ftp (https://rclone.org/commands/rclone_serve_ftp/) -
3479 Serve remote:path over FTP.
3480
3481 · rclone serve http (https://rclone.org/commands/rclone_serve_http/) -
3482 Serve the remote over HTTP.
3483
3484 · rclone serve restic (https://rclone.org/com‐
3485 mands/rclone_serve_restic/) - Serve the remote for restic's REST API.
3486
3487 · rclone serve sftp (https://rclone.org/commands/rclone_serve_sftp/) -
3488 Serve the remote over SFTP.
3489
3490 · rclone serve webdav (https://rclone.org/commands/rclone_serve_web‐
3491 dav/) - Serve remote:path over webdav.
3492
3494 Serve remote:path over DLNA
3495
3496 Synopsis
3497 rclone serve dlna is a DLNA media server for media stored in an rclone
3498 remote. Many devices, such as the Xbox and PlayStation, can automati‐
3499 cally discover this server in the LAN and play audio/video from it.
3500 VLC is also supported. Service discovery uses UDP multicast packets
3501 (SSDP) and will thus only work on LANs.
3502
3503 Rclone will list all files present in the remote, without filtering
3504 based on media formats or file extensions. Additionally, there is no
3505 media transcoding support. This means that some players might show
3506 files that they are not able to play back correctly.
3507
3508 Server options
3509 Use --addr to specify which IP address and port the server should lis‐
3510 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
3511
3512 Use --name to choose the friendly server name, which is by default
3513 "rclone (hostname)".
3514
3515 Use --log-trace in conjunction with -vv to enable additional debug log‐
3516 ging of all UPNP traffic.
3517
3518 VFS - Virtual File System
3519 This command uses the VFS layer. This adapts the cloud storage objects
3520 that rclone uses into something which looks much more like a disk fil‐
3521 ing system.
3522
3523 Cloud storage objects have lots of properties which aren't like disk
3524 files - you can't extend them or write to the middle of them, so the
3525 VFS layer has to deal with that. Because there is no one right way of
3526 doing this there are various options explained below.
3527
3528 The VFS layer also implements a directory cache - this caches info
3529 about files and directories (but not the data) in memory.
3530
3531 VFS Directory Cache
3532 Using the --dir-cache-time flag, you can control how long a directory
3533 should be considered up to date and not refreshed from the backend.
3534 Changes made through the mount will appear immediately or invalidate
3535 the cache.
3536
3537 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3538 --poll-interval duration Time to wait between polling for changes.
3539
3540 However, changes made directly on the cloud storage by the web inter‐
3541 face or a different copy of rclone will only be picked up once the di‐
3542 rectory cache expires if the backend configured does not support
3543 polling for changes. If the backend supports polling, changes will be
3544 picked up within the polling interval.
3545
3546 You can send a SIGHUP signal to rclone for it to flush all directory
3547 caches, regardless of how old they are. Assuming only one rclone in‐
3548 stance is running, you can reset the cache like this:
3549
3550 kill -SIGHUP $(pidof rclone)
3551
3552 If you configure rclone with a remote control (/rc) then you can use
3553 rclone rc to flush the whole directory cache:
3554
3555 rclone rc vfs/forget
3556
3557 Or individual files or directories:
3558
3559 rclone rc vfs/forget file=path/to/file dir=path/to/dir
3560
3561 VFS File Buffering
3562 The --buffer-size flag determines the amount of memory, that will be
3563 used to buffer data in advance.
3564
3565 Each open file will try to keep the specified amount of data in memory
3566 at all times. The buffered data is bound to one open file and won't be
3567 shared.
3568
3569 This flag is a upper limit for the used memory per open file. The buf‐
3570 fer will only use memory for data that is downloaded but not not yet
3571 read. If the buffer is empty, only a small amount of memory will be
3572 used.
3573
3574 The maximum memory used by rclone for buffering can be up to --buf‐
3575 fer-size * open files.
3576
3577 VFS File Caching
3578 These flags control the VFS file caching options. File caching is nec‐
3579 essary to make the VFS layer appear compatible with a normal file sys‐
3580 tem. It can be disabled at the cost of some compatibility.
3581
3582 For example you'll need to enable VFS caching if you want to read and
3583 write simultaneously to a file. See below for more details.
3584
3585 Note that the VFS cache is separate from the cache backend and you may
3586 find that you need one or the other or both.
3587
3588 --cache-dir string Directory rclone will use for caching.
3589 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3590 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3591 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3592 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3593 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
3594
3595 If run with -vv rclone will print the location of the file cache. The
3596 files are stored in the user cache file area which is OS dependent but
3597 can be controlled with --cache-dir or setting the appropriate environ‐
3598 ment variable.
3599
3600 The cache has 4 different modes selected by --vfs-cache-mode. The
3601 higher the cache mode the more compatible rclone becomes at the cost of
3602 using disk space.
3603
3604 Note that files are written back to the remote only when they are
3605 closed and if they haven't been accessed for --vfs-write-back second.
3606 If rclone is quit or dies with files that haven't been uploaded, these
3607 will be uploaded next time rclone is run with the same flags.
3608
3609 If using --vfs-cache-max-size note that the cache may exceed this size
3610 for two reasons. Firstly because it is only checked every
3611 --vfs-cache-poll-interval. Secondly because open files cannot be
3612 evicted from the cache.
3613
3614 --vfs-cache-mode off
3615 In this mode (the default) the cache will read directly from the remote
3616 and write directly to the remote without caching anything on disk.
3617
3618 This will mean some operations are not possible
3619
3620 · Files can't be opened for both read AND write
3621
3622 · Files opened for write can't be seeked
3623
3624 · Existing files opened for write must have O_TRUNC set
3625
3626 · Files open for read with O_TRUNC will be opened write only
3627
3628 · Files open for write only will behave as if O_TRUNC was supplied
3629
3630 · Open modes O_APPEND, O_TRUNC are ignored
3631
3632 · If an upload fails it can't be retried
3633
3634 --vfs-cache-mode minimal
3635 This is very similar to "off" except that files opened for read AND
3636 write will be buffered to disk. This means that files opened for write
3637 will be a lot more compatible, but uses the minimal disk space.
3638
3639 These operations are not possible
3640
3641 · Files opened for write only can't be seeked
3642
3643 · Existing files opened for write must have O_TRUNC set
3644
3645 · Files opened for write only will ignore O_APPEND, O_TRUNC
3646
3647 · If an upload fails it can't be retried
3648
3649 --vfs-cache-mode writes
3650 In this mode files opened for read only are still read directly from
3651 the remote, write only and read/write files are buffered to disk first.
3652
3653 This mode should support all normal file system operations.
3654
3655 If an upload fails it will be retried at exponentially increasing in‐
3656 tervals up to 1 minute.
3657
3658 --vfs-cache-mode full
3659 In this mode all reads and writes are buffered to and from disk. When
3660 data is read from the remote this is buffered to disk as well.
3661
3662 In this mode the files in the cache will be sparse files and rclone
3663 will keep track of which bits of the files it has downloaded.
3664
3665 So if an application only reads the starts of each file, then rclone
3666 will only buffer the start of the file. These files will appear to be
3667 their full size in the cache, but they will be sparse files with only
3668 the data that has been downloaded present in them.
3669
3670 This mode should support all normal file system operations and is oth‐
3671 erwise identical to --vfs-cache-mode writes.
3672
3673 When reading a file rclone will read --buffer-size plus
3674 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
3675 whereas the --vfs-read-ahead is buffered on disk.
3676
3677 When using this mode it is recommended that --buffer-size is not set
3678 too big and --vfs-read-ahead is set large if required.
3679
3680 IMPORTANT not all file systems support sparse files. In particular
3681 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
3682 ry is on a filesystem which doesn't support sparse files and it will
3683 log an ERROR message if one is detected.
3684
3685 VFS Performance
3686 These flags may be used to enable/disable features of the VFS for per‐
3687 formance or other reasons.
3688
3689 In particular S3 and Swift benefit hugely from the --no-modtime flag
3690 (or use --use-server-modtime for a slightly different effect) as each
3691 read of the modification time takes a transaction.
3692
3693 --no-checksum Don't compare checksums on up/download.
3694 --no-modtime Don't read/write the modification time (can speed things up).
3695 --no-seek Don't allow seeking in files.
3696 --read-only Mount read-only.
3697
3698 When rclone reads files from a remote it reads them in chunks. This
3699 means that rather than requesting the whole file rclone reads the chunk
3700 specified. This is advantageous because some cloud providers account
3701 for reads being all the data requested, not all the data delivered.
3702
3703 Rclone will keep doubling the chunk size requested starting at
3704 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
3705 less it is set to "off" in which case there will be no limit.
3706
3707 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3708 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
3709
3710 Sometimes rclone is delivered reads or writes out of order. Rather
3711 than seeking rclone will wait a short time for the in sequence read or
3712 write to come in. These flags only come into effect when not using an
3713 on disk cache file.
3714
3715 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
3716 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
3717
3718 When using VFS write caching (--vfs-cache-mode with value writes or
3719 full), the global flag --transfers can be set to adjust the number of
3720 parallel uploads of modified files from cache (the related global flag
3721 --checkers have no effect on mount).
3722
3723 --transfers int Number of file transfers to run in parallel. (default 4)
3724
3725 VFS Case Sensitivity
3726 Linux file systems are case-sensitive: two files can differ only by
3727 case, and the exact case must be used when opening a file.
3728
3729 File systems in modern Windows are case-insensitive but case-preserv‐
3730 ing: although existing files can be opened using any case, the exact
3731 case used to create the file is preserved and available for programs to
3732 query. It is not allowed for two files in the same directory to differ
3733 only by case.
3734
3735 Usually file systems on macOS are case-insensitive. It is possible to
3736 make macOS file systems case-sensitive but that is not the default
3737
3738 The --vfs-case-insensitive mount flag controls how rclone handles these
3739 two cases. If its value is "false", rclone passes file names to the
3740 mounted file system as-is. If the flag is "true" (or appears without a
3741 value on command line), rclone may perform a "fixup" as explained be‐
3742 low.
3743
3744 The user may specify a file name to open/delete/rename/etc with a case
3745 different than what is stored on mounted file system. If an argument
3746 refers to an existing file with exactly the same name, then the case of
3747 the existing file on the disk will be used. However, if a file name
3748 with exactly the same name is not found but a name differing only by
3749 case exists, rclone will transparently fixup the name. This fixup hap‐
3750 pens only when an existing file is requested. Case sensitivity of file
3751 names created anew by rclone is controlled by an underlying mounted
3752 file system.
3753
3754 Note that case sensitivity of the operating system running rclone (the
3755 target) may differ from case sensitivity of a file system mounted by
3756 rclone (the source). The flag controls whether "fixup" is performed to
3757 satisfy the target.
3758
3759 If the flag is not provided on the command line, then its default value
3760 depends on the operating system where rclone runs: "true" on Windows
3761 and macOS, "false" otherwise. If the flag is provided without a value,
3762 then it is "true".
3763
3764 rclone serve dlna remote:path [flags]
3765
3766 Options
3767 --addr string ip:port or :port to bind the DLNA http server to. (default ":7879")
3768 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3769 --dir-perms FileMode Directory permissions (default 0777)
3770 --file-perms FileMode File permissions (default 0666)
3771 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
3772 -h, --help help for dlna
3773 --log-trace enable trace logging of SOAP traffic
3774 --name string name of DLNA server
3775 --no-checksum Don't compare checksums on up/download.
3776 --no-modtime Don't read/write the modification time (can speed things up).
3777 --no-seek Don't allow seeking in files.
3778 --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)
3779 --read-only Mount read-only.
3780 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
3781 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
3782 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3783 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3784 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3785 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3786 --vfs-case-insensitive If a file name not found, find a case insensitive match.
3787 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
3788 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
3789 --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)
3790 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
3791 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
3792 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
3793
3794 See the global flags page (https://rclone.org/flags/) for global op‐
3795 tions not listed here.
3796
3797 SEE ALSO
3798 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
3799 remote over a protocol.
3800
3802 Serve remote:path over FTP.
3803
3804 Synopsis
3805 rclone serve ftp implements a basic ftp server to serve the remote over
3806 FTP protocol. This can be viewed with a ftp client or you can make a
3807 remote of type ftp to read and write it.
3808
3809 Server options
3810 Use --addr to specify which IP address and port the server should lis‐
3811 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
3812 By default it only listens on localhost. You can use port :0 to let
3813 the OS choose an available port.
3814
3815 If you set --addr to listen on a public or LAN accessible IP address
3816 then using Authentication is advised - see the next section for info.
3817
3818 Authentication
3819 By default this will serve files without needing a login.
3820
3821 You can set a single username and password with the --user and --pass
3822 flags.
3823
3824 VFS - Virtual File System
3825 This command uses the VFS layer. This adapts the cloud storage objects
3826 that rclone uses into something which looks much more like a disk fil‐
3827 ing system.
3828
3829 Cloud storage objects have lots of properties which aren't like disk
3830 files - you can't extend them or write to the middle of them, so the
3831 VFS layer has to deal with that. Because there is no one right way of
3832 doing this there are various options explained below.
3833
3834 The VFS layer also implements a directory cache - this caches info
3835 about files and directories (but not the data) in memory.
3836
3837 VFS Directory Cache
3838 Using the --dir-cache-time flag, you can control how long a directory
3839 should be considered up to date and not refreshed from the backend.
3840 Changes made through the mount will appear immediately or invalidate
3841 the cache.
3842
3843 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
3844 --poll-interval duration Time to wait between polling for changes.
3845
3846 However, changes made directly on the cloud storage by the web inter‐
3847 face or a different copy of rclone will only be picked up once the di‐
3848 rectory cache expires if the backend configured does not support
3849 polling for changes. If the backend supports polling, changes will be
3850 picked up within the polling interval.
3851
3852 You can send a SIGHUP signal to rclone for it to flush all directory
3853 caches, regardless of how old they are. Assuming only one rclone in‐
3854 stance is running, you can reset the cache like this:
3855
3856 kill -SIGHUP $(pidof rclone)
3857
3858 If you configure rclone with a remote control (/rc) then you can use
3859 rclone rc to flush the whole directory cache:
3860
3861 rclone rc vfs/forget
3862
3863 Or individual files or directories:
3864
3865 rclone rc vfs/forget file=path/to/file dir=path/to/dir
3866
3867 VFS File Buffering
3868 The --buffer-size flag determines the amount of memory, that will be
3869 used to buffer data in advance.
3870
3871 Each open file will try to keep the specified amount of data in memory
3872 at all times. The buffered data is bound to one open file and won't be
3873 shared.
3874
3875 This flag is a upper limit for the used memory per open file. The buf‐
3876 fer will only use memory for data that is downloaded but not not yet
3877 read. If the buffer is empty, only a small amount of memory will be
3878 used.
3879
3880 The maximum memory used by rclone for buffering can be up to --buf‐
3881 fer-size * open files.
3882
3883 VFS File Caching
3884 These flags control the VFS file caching options. File caching is nec‐
3885 essary to make the VFS layer appear compatible with a normal file sys‐
3886 tem. It can be disabled at the cost of some compatibility.
3887
3888 For example you'll need to enable VFS caching if you want to read and
3889 write simultaneously to a file. See below for more details.
3890
3891 Note that the VFS cache is separate from the cache backend and you may
3892 find that you need one or the other or both.
3893
3894 --cache-dir string Directory rclone will use for caching.
3895 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
3896 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
3897 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
3898 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
3899 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
3900
3901 If run with -vv rclone will print the location of the file cache. The
3902 files are stored in the user cache file area which is OS dependent but
3903 can be controlled with --cache-dir or setting the appropriate environ‐
3904 ment variable.
3905
3906 The cache has 4 different modes selected by --vfs-cache-mode. The
3907 higher the cache mode the more compatible rclone becomes at the cost of
3908 using disk space.
3909
3910 Note that files are written back to the remote only when they are
3911 closed and if they haven't been accessed for --vfs-write-back second.
3912 If rclone is quit or dies with files that haven't been uploaded, these
3913 will be uploaded next time rclone is run with the same flags.
3914
3915 If using --vfs-cache-max-size note that the cache may exceed this size
3916 for two reasons. Firstly because it is only checked every
3917 --vfs-cache-poll-interval. Secondly because open files cannot be
3918 evicted from the cache.
3919
3920 --vfs-cache-mode off
3921 In this mode (the default) the cache will read directly from the remote
3922 and write directly to the remote without caching anything on disk.
3923
3924 This will mean some operations are not possible
3925
3926 · Files can't be opened for both read AND write
3927
3928 · Files opened for write can't be seeked
3929
3930 · Existing files opened for write must have O_TRUNC set
3931
3932 · Files open for read with O_TRUNC will be opened write only
3933
3934 · Files open for write only will behave as if O_TRUNC was supplied
3935
3936 · Open modes O_APPEND, O_TRUNC are ignored
3937
3938 · If an upload fails it can't be retried
3939
3940 --vfs-cache-mode minimal
3941 This is very similar to "off" except that files opened for read AND
3942 write will be buffered to disk. This means that files opened for write
3943 will be a lot more compatible, but uses the minimal disk space.
3944
3945 These operations are not possible
3946
3947 · Files opened for write only can't be seeked
3948
3949 · Existing files opened for write must have O_TRUNC set
3950
3951 · Files opened for write only will ignore O_APPEND, O_TRUNC
3952
3953 · If an upload fails it can't be retried
3954
3955 --vfs-cache-mode writes
3956 In this mode files opened for read only are still read directly from
3957 the remote, write only and read/write files are buffered to disk first.
3958
3959 This mode should support all normal file system operations.
3960
3961 If an upload fails it will be retried at exponentially increasing in‐
3962 tervals up to 1 minute.
3963
3964 --vfs-cache-mode full
3965 In this mode all reads and writes are buffered to and from disk. When
3966 data is read from the remote this is buffered to disk as well.
3967
3968 In this mode the files in the cache will be sparse files and rclone
3969 will keep track of which bits of the files it has downloaded.
3970
3971 So if an application only reads the starts of each file, then rclone
3972 will only buffer the start of the file. These files will appear to be
3973 their full size in the cache, but they will be sparse files with only
3974 the data that has been downloaded present in them.
3975
3976 This mode should support all normal file system operations and is oth‐
3977 erwise identical to --vfs-cache-mode writes.
3978
3979 When reading a file rclone will read --buffer-size plus
3980 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
3981 whereas the --vfs-read-ahead is buffered on disk.
3982
3983 When using this mode it is recommended that --buffer-size is not set
3984 too big and --vfs-read-ahead is set large if required.
3985
3986 IMPORTANT not all file systems support sparse files. In particular
3987 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
3988 ry is on a filesystem which doesn't support sparse files and it will
3989 log an ERROR message if one is detected.
3990
3991 VFS Performance
3992 These flags may be used to enable/disable features of the VFS for per‐
3993 formance or other reasons.
3994
3995 In particular S3 and Swift benefit hugely from the --no-modtime flag
3996 (or use --use-server-modtime for a slightly different effect) as each
3997 read of the modification time takes a transaction.
3998
3999 --no-checksum Don't compare checksums on up/download.
4000 --no-modtime Don't read/write the modification time (can speed things up).
4001 --no-seek Don't allow seeking in files.
4002 --read-only Mount read-only.
4003
4004 When rclone reads files from a remote it reads them in chunks. This
4005 means that rather than requesting the whole file rclone reads the chunk
4006 specified. This is advantageous because some cloud providers account
4007 for reads being all the data requested, not all the data delivered.
4008
4009 Rclone will keep doubling the chunk size requested starting at
4010 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
4011 less it is set to "off" in which case there will be no limit.
4012
4013 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4014 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
4015
4016 Sometimes rclone is delivered reads or writes out of order. Rather
4017 than seeking rclone will wait a short time for the in sequence read or
4018 write to come in. These flags only come into effect when not using an
4019 on disk cache file.
4020
4021 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
4022 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
4023
4024 When using VFS write caching (--vfs-cache-mode with value writes or
4025 full), the global flag --transfers can be set to adjust the number of
4026 parallel uploads of modified files from cache (the related global flag
4027 --checkers have no effect on mount).
4028
4029 --transfers int Number of file transfers to run in parallel. (default 4)
4030
4031 VFS Case Sensitivity
4032 Linux file systems are case-sensitive: two files can differ only by
4033 case, and the exact case must be used when opening a file.
4034
4035 File systems in modern Windows are case-insensitive but case-preserv‐
4036 ing: although existing files can be opened using any case, the exact
4037 case used to create the file is preserved and available for programs to
4038 query. It is not allowed for two files in the same directory to differ
4039 only by case.
4040
4041 Usually file systems on macOS are case-insensitive. It is possible to
4042 make macOS file systems case-sensitive but that is not the default
4043
4044 The --vfs-case-insensitive mount flag controls how rclone handles these
4045 two cases. If its value is "false", rclone passes file names to the
4046 mounted file system as-is. If the flag is "true" (or appears without a
4047 value on command line), rclone may perform a "fixup" as explained be‐
4048 low.
4049
4050 The user may specify a file name to open/delete/rename/etc with a case
4051 different than what is stored on mounted file system. If an argument
4052 refers to an existing file with exactly the same name, then the case of
4053 the existing file on the disk will be used. However, if a file name
4054 with exactly the same name is not found but a name differing only by
4055 case exists, rclone will transparently fixup the name. This fixup hap‐
4056 pens only when an existing file is requested. Case sensitivity of file
4057 names created anew by rclone is controlled by an underlying mounted
4058 file system.
4059
4060 Note that case sensitivity of the operating system running rclone (the
4061 target) may differ from case sensitivity of a file system mounted by
4062 rclone (the source). The flag controls whether "fixup" is performed to
4063 satisfy the target.
4064
4065 If the flag is not provided on the command line, then its default value
4066 depends on the operating system where rclone runs: "true" on Windows
4067 and macOS, "false" otherwise. If the flag is provided without a value,
4068 then it is "true".
4069
4070 Auth Proxy
4071 If you supply the parameter --auth-proxy /path/to/program then rclone
4072 will use that program to generate backends on the fly which then are
4073 used to authenticate incoming requests. This uses a simple JSON based
4074 protocol with input on STDIN and output on STDOUT.
4075
4076 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
4077 er, if --auth-proxy is set the authorized keys option will be ignored.
4078
4079 There is an example program bin/test_proxy.py
4080 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
4081 rclone source code.
4082
4083 The program's job is to take a user and pass on the input and turn
4084 those into the config for a backend on STDOUT in JSON format. This
4085 config will have any default parameters for the backend added, but it
4086 won't use configuration from environment variables or command line op‐
4087 tions - it is the job of the proxy program to make a complete config.
4088
4089 This config generated must have this extra parameter - _root - root to
4090 use for the backend
4091
4092 And it may have this parameter - _obscure - comma separated strings for
4093 parameters to obscure
4094
4095 If password authentication was used by the client, input to the proxy
4096 process (on STDIN) would look similar to this:
4097
4098 {
4099 "user": "me",
4100 "pass": "mypassword"
4101 }
4102
4103 If public-key authentication was used by the client, input to the proxy
4104 process (on STDIN) would look similar to this:
4105
4106 {
4107 "user": "me",
4108 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
4109 }
4110
4111 And as an example return this on STDOUT
4112
4113 {
4114 "type": "sftp",
4115 "_root": "",
4116 "_obscure": "pass",
4117 "user": "me",
4118 "pass": "mypassword",
4119 "host": "sftp.example.com"
4120 }
4121
4122 This would mean that an SFTP backend would be created on the fly for
4123 the user and pass/public_key returned in the output to the host given.
4124 Note that since _obscure is set to pass, rclone will obscure the pass
4125 parameter before creating the backend (which is required for sftp back‐
4126 ends).
4127
4128 The program can manipulate the supplied user in any way, for example to
4129 make proxy to many different sftp backends, you could make the user be
4130 user@example.com and then set the host to example.com in the output and
4131 the user to user. For security you'd probably want to restrict the
4132 host to a limited list.
4133
4134 Note that an internal cache is keyed on user so only use that for con‐
4135 figuration, don't use pass or public_key. This also means that if a
4136 user's password or public-key is changed the cache will need to expire
4137 (which takes 5 mins) before it takes effect.
4138
4139 This can be used to build general purpose proxies to any kind of back‐
4140 end that rclone supports.
4141
4142 rclone serve ftp remote:path [flags]
4143
4144 Options
4145 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:2121")
4146 --auth-proxy string A program to use to create the backend from the auth.
4147 --cert string TLS PEM key (concatenation of certificate and CA certificate)
4148 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
4149 --dir-perms FileMode Directory permissions (default 0777)
4150 --file-perms FileMode File permissions (default 0666)
4151 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
4152 -h, --help help for ftp
4153 --key string TLS PEM Private key
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 --pass string Password for authentication. (empty value allow every password)
4158 --passive-port string Passive port range to use. (default "30000-32000")
4159 --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)
4160 --public-ip string Public IP address to advertise for passive connections.
4161 --read-only Mount read-only.
4162 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
4163 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
4164 --user string User name for authentication. (default "anonymous")
4165 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4166 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4167 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4168 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4169 --vfs-case-insensitive If a file name not found, find a case insensitive match.
4170 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
4171 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4172 --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)
4173 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
4174 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
4175 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
4176
4177 See the global flags page (https://rclone.org/flags/) for global op‐
4178 tions not listed here.
4179
4180 SEE ALSO
4181 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
4182 remote over a protocol.
4183
4185 Serve the remote over HTTP.
4186
4187 Synopsis
4188 rclone serve http implements a basic web server to serve the remote
4189 over HTTP. This can be viewed in a web browser or you can make a re‐
4190 mote of type http read from it.
4191
4192 You can use the filter flags (e.g. --include, --exclude) to control
4193 what is served.
4194
4195 The server will log errors. Use -v to see access logs.
4196
4197 --bwlimit will be respected for file transfers. Use --stats to control
4198 the stats printing.
4199
4200 Server options
4201 Use --addr to specify which IP address and port the server should lis‐
4202 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
4203 By default it only listens on localhost. You can use port :0 to let
4204 the OS choose an available port.
4205
4206 If you set --addr to listen on a public or LAN accessible IP address
4207 then using Authentication is advised - see the next section for info.
4208
4209 --server-read-timeout and --server-write-timeout can be used to control
4210 the timeouts on the server. Note that this is the total time for a
4211 transfer.
4212
4213 --max-header-bytes controls the maximum number of bytes the server will
4214 accept in the HTTP header.
4215
4216 --baseurl controls the URL prefix that rclone serves from. By default
4217 rclone will serve from the root. If you used --baseurl "/rclone" then
4218 rclone would serve from a URL starting with "/rclone/". This is useful
4219 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
4220 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
4221 "/rclone" and --baseurl "/rclone/" are all treated identically.
4222
4223 --template allows a user to specify a custom markup template for http
4224 and webdav serve functions. The server exports the following markup to
4225 be used within the template to server pages:
4226
4227 Parameter Description
4228 ──────────────────────────────────────────────────────────────────────────
4229 .Name The full path of a file/directory.
4230 .Title Directory listing of .Name
4231 .Sort The current sort used. This is
4232 changeable via ?sort= parameter
4233 Sort Options:
4234 namedirfirst,name,size,time (de‐
4235 fault namedirfirst)
4236 .Order The current ordering used. This is
4237 changeable via ?order= parameter
4238 Order Options: asc,desc (default
4239 asc)
4240 .Query Currently unused.
4241 .Breadcrumb Allows for creating a relative nav‐
4242 igation
4243 -- .Link The relative to the root link of
4244 the Text.
4245 -- .Text The Name of the directory.
4246 .Entries Information about a specific
4247 file/directory.
4248 -- .URL The 'url' of an entry.
4249 -- .Leaf Currently same as 'URL' but intend‐
4250 ed to be 'just' the name.
4251 -- .IsDir Boolean for if an entry is a direc‐
4252 tory or not.
4253 -- .Size Size in Bytes of the entry.
4254 -- .ModTime The UTC timestamp of an entry.
4255
4256 Authentication
4257 By default this will serve files without needing a login.
4258
4259 You can either use an htpasswd file which can take lots of users, or
4260 set a single username and password with the --user and --pass flags.
4261
4262 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
4263 in standard apache format and supports MD5, SHA1 and BCrypt for basic
4264 authentication. Bcrypt is recommended.
4265
4266 To create an htpasswd file:
4267
4268 touch htpasswd
4269 htpasswd -B htpasswd user
4270 htpasswd -B htpasswd anotherUser
4271
4272 The password file can be updated while rclone is running.
4273
4274 Use --realm to set the authentication realm.
4275
4276 SSL/TLS
4277 By default this will serve over http. If you want you can serve over
4278 https. You will need to supply the --cert and --key flags. If you
4279 wish to do client side certificate validation then you will need to
4280 supply --client-ca also.
4281
4282 --cert should be either a PEM encoded certificate or a concatenation of
4283 that with the CA certificate. --key should be the PEM encoded private
4284 key and --client-ca should be the PEM encoded client certificate au‐
4285 thority certificate.
4286
4287 VFS - Virtual File System
4288 This command uses the VFS layer. This adapts the cloud storage objects
4289 that rclone uses into something which looks much more like a disk fil‐
4290 ing system.
4291
4292 Cloud storage objects have lots of properties which aren't like disk
4293 files - you can't extend them or write to the middle of them, so the
4294 VFS layer has to deal with that. Because there is no one right way of
4295 doing this there are various options explained below.
4296
4297 The VFS layer also implements a directory cache - this caches info
4298 about files and directories (but not the data) in memory.
4299
4300 VFS Directory Cache
4301 Using the --dir-cache-time flag, you can control how long a directory
4302 should be considered up to date and not refreshed from the backend.
4303 Changes made through the mount will appear immediately or invalidate
4304 the cache.
4305
4306 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
4307 --poll-interval duration Time to wait between polling for changes.
4308
4309 However, changes made directly on the cloud storage by the web inter‐
4310 face or a different copy of rclone will only be picked up once the di‐
4311 rectory cache expires if the backend configured does not support
4312 polling for changes. If the backend supports polling, changes will be
4313 picked up within the polling interval.
4314
4315 You can send a SIGHUP signal to rclone for it to flush all directory
4316 caches, regardless of how old they are. Assuming only one rclone in‐
4317 stance is running, you can reset the cache like this:
4318
4319 kill -SIGHUP $(pidof rclone)
4320
4321 If you configure rclone with a remote control (/rc) then you can use
4322 rclone rc to flush the whole directory cache:
4323
4324 rclone rc vfs/forget
4325
4326 Or individual files or directories:
4327
4328 rclone rc vfs/forget file=path/to/file dir=path/to/dir
4329
4330 VFS File Buffering
4331 The --buffer-size flag determines the amount of memory, that will be
4332 used to buffer data in advance.
4333
4334 Each open file will try to keep the specified amount of data in memory
4335 at all times. The buffered data is bound to one open file and won't be
4336 shared.
4337
4338 This flag is a upper limit for the used memory per open file. The buf‐
4339 fer will only use memory for data that is downloaded but not not yet
4340 read. If the buffer is empty, only a small amount of memory will be
4341 used.
4342
4343 The maximum memory used by rclone for buffering can be up to --buf‐
4344 fer-size * open files.
4345
4346 VFS File Caching
4347 These flags control the VFS file caching options. File caching is nec‐
4348 essary to make the VFS layer appear compatible with a normal file sys‐
4349 tem. It can be disabled at the cost of some compatibility.
4350
4351 For example you'll need to enable VFS caching if you want to read and
4352 write simultaneously to a file. See below for more details.
4353
4354 Note that the VFS cache is separate from the cache backend and you may
4355 find that you need one or the other or both.
4356
4357 --cache-dir string Directory rclone will use for caching.
4358 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4359 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4360 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4361 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4362 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
4363
4364 If run with -vv rclone will print the location of the file cache. The
4365 files are stored in the user cache file area which is OS dependent but
4366 can be controlled with --cache-dir or setting the appropriate environ‐
4367 ment variable.
4368
4369 The cache has 4 different modes selected by --vfs-cache-mode. The
4370 higher the cache mode the more compatible rclone becomes at the cost of
4371 using disk space.
4372
4373 Note that files are written back to the remote only when they are
4374 closed and if they haven't been accessed for --vfs-write-back second.
4375 If rclone is quit or dies with files that haven't been uploaded, these
4376 will be uploaded next time rclone is run with the same flags.
4377
4378 If using --vfs-cache-max-size note that the cache may exceed this size
4379 for two reasons. Firstly because it is only checked every
4380 --vfs-cache-poll-interval. Secondly because open files cannot be
4381 evicted from the cache.
4382
4383 --vfs-cache-mode off
4384 In this mode (the default) the cache will read directly from the remote
4385 and write directly to the remote without caching anything on disk.
4386
4387 This will mean some operations are not possible
4388
4389 · Files can't be opened for both read AND write
4390
4391 · Files opened for write can't be seeked
4392
4393 · Existing files opened for write must have O_TRUNC set
4394
4395 · Files open for read with O_TRUNC will be opened write only
4396
4397 · Files open for write only will behave as if O_TRUNC was supplied
4398
4399 · Open modes O_APPEND, O_TRUNC are ignored
4400
4401 · If an upload fails it can't be retried
4402
4403 --vfs-cache-mode minimal
4404 This is very similar to "off" except that files opened for read AND
4405 write will be buffered to disk. This means that files opened for write
4406 will be a lot more compatible, but uses the minimal disk space.
4407
4408 These operations are not possible
4409
4410 · Files opened for write only can't be seeked
4411
4412 · Existing files opened for write must have O_TRUNC set
4413
4414 · Files opened for write only will ignore O_APPEND, O_TRUNC
4415
4416 · If an upload fails it can't be retried
4417
4418 --vfs-cache-mode writes
4419 In this mode files opened for read only are still read directly from
4420 the remote, write only and read/write files are buffered to disk first.
4421
4422 This mode should support all normal file system operations.
4423
4424 If an upload fails it will be retried at exponentially increasing in‐
4425 tervals up to 1 minute.
4426
4427 --vfs-cache-mode full
4428 In this mode all reads and writes are buffered to and from disk. When
4429 data is read from the remote this is buffered to disk as well.
4430
4431 In this mode the files in the cache will be sparse files and rclone
4432 will keep track of which bits of the files it has downloaded.
4433
4434 So if an application only reads the starts of each file, then rclone
4435 will only buffer the start of the file. These files will appear to be
4436 their full size in the cache, but they will be sparse files with only
4437 the data that has been downloaded present in them.
4438
4439 This mode should support all normal file system operations and is oth‐
4440 erwise identical to --vfs-cache-mode writes.
4441
4442 When reading a file rclone will read --buffer-size plus
4443 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
4444 whereas the --vfs-read-ahead is buffered on disk.
4445
4446 When using this mode it is recommended that --buffer-size is not set
4447 too big and --vfs-read-ahead is set large if required.
4448
4449 IMPORTANT not all file systems support sparse files. In particular
4450 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
4451 ry is on a filesystem which doesn't support sparse files and it will
4452 log an ERROR message if one is detected.
4453
4454 VFS Performance
4455 These flags may be used to enable/disable features of the VFS for per‐
4456 formance or other reasons.
4457
4458 In particular S3 and Swift benefit hugely from the --no-modtime flag
4459 (or use --use-server-modtime for a slightly different effect) as each
4460 read of the modification time takes a transaction.
4461
4462 --no-checksum Don't compare checksums on up/download.
4463 --no-modtime Don't read/write the modification time (can speed things up).
4464 --no-seek Don't allow seeking in files.
4465 --read-only Mount read-only.
4466
4467 When rclone reads files from a remote it reads them in chunks. This
4468 means that rather than requesting the whole file rclone reads the chunk
4469 specified. This is advantageous because some cloud providers account
4470 for reads being all the data requested, not all the data delivered.
4471
4472 Rclone will keep doubling the chunk size requested starting at
4473 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
4474 less it is set to "off" in which case there will be no limit.
4475
4476 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4477 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
4478
4479 Sometimes rclone is delivered reads or writes out of order. Rather
4480 than seeking rclone will wait a short time for the in sequence read or
4481 write to come in. These flags only come into effect when not using an
4482 on disk cache file.
4483
4484 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
4485 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
4486
4487 When using VFS write caching (--vfs-cache-mode with value writes or
4488 full), the global flag --transfers can be set to adjust the number of
4489 parallel uploads of modified files from cache (the related global flag
4490 --checkers have no effect on mount).
4491
4492 --transfers int Number of file transfers to run in parallel. (default 4)
4493
4494 VFS Case Sensitivity
4495 Linux file systems are case-sensitive: two files can differ only by
4496 case, and the exact case must be used when opening a file.
4497
4498 File systems in modern Windows are case-insensitive but case-preserv‐
4499 ing: although existing files can be opened using any case, the exact
4500 case used to create the file is preserved and available for programs to
4501 query. It is not allowed for two files in the same directory to differ
4502 only by case.
4503
4504 Usually file systems on macOS are case-insensitive. It is possible to
4505 make macOS file systems case-sensitive but that is not the default
4506
4507 The --vfs-case-insensitive mount flag controls how rclone handles these
4508 two cases. If its value is "false", rclone passes file names to the
4509 mounted file system as-is. If the flag is "true" (or appears without a
4510 value on command line), rclone may perform a "fixup" as explained be‐
4511 low.
4512
4513 The user may specify a file name to open/delete/rename/etc with a case
4514 different than what is stored on mounted file system. If an argument
4515 refers to an existing file with exactly the same name, then the case of
4516 the existing file on the disk will be used. However, if a file name
4517 with exactly the same name is not found but a name differing only by
4518 case exists, rclone will transparently fixup the name. This fixup hap‐
4519 pens only when an existing file is requested. Case sensitivity of file
4520 names created anew by rclone is controlled by an underlying mounted
4521 file system.
4522
4523 Note that case sensitivity of the operating system running rclone (the
4524 target) may differ from case sensitivity of a file system mounted by
4525 rclone (the source). The flag controls whether "fixup" is performed to
4526 satisfy the target.
4527
4528 If the flag is not provided on the command line, then its default value
4529 depends on the operating system where rclone runs: "true" on Windows
4530 and macOS, "false" otherwise. If the flag is provided without a value,
4531 then it is "true".
4532
4533 rclone serve http remote:path [flags]
4534
4535 Options
4536 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
4537 --baseurl string Prefix for URLs - leave blank for root.
4538 --cert string SSL PEM key (concatenation of certificate and CA certificate)
4539 --client-ca string Client certificate authority to verify clients with
4540 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
4541 --dir-perms FileMode Directory permissions (default 0777)
4542 --file-perms FileMode File permissions (default 0666)
4543 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
4544 -h, --help help for http
4545 --htpasswd string htpasswd file - if not provided no authentication is done
4546 --key string SSL PEM Private key
4547 --max-header-bytes int Maximum size of request header (default 4096)
4548 --no-checksum Don't compare checksums on up/download.
4549 --no-modtime Don't read/write the modification time (can speed things up).
4550 --no-seek Don't allow seeking in files.
4551 --pass string Password for authentication.
4552 --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)
4553 --read-only Mount read-only.
4554 --realm string realm for authentication (default "rclone")
4555 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
4556 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
4557 --template string User Specified Template.
4558 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
4559 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
4560 --user string User name for authentication.
4561 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4562 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4563 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4564 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4565 --vfs-case-insensitive If a file name not found, find a case insensitive match.
4566 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
4567 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
4568 --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)
4569 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
4570 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
4571 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
4572
4573 See the global flags page (https://rclone.org/flags/) for global op‐
4574 tions not listed here.
4575
4576 SEE ALSO
4577 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
4578 remote over a protocol.
4579
4581 Serve the remote for restic's REST API.
4582
4583 Synopsis
4584 rclone serve restic implements restic's REST backend API over HTTP.
4585 This allows restic to use rclone as a data storage mechanism for cloud
4586 providers that restic does not support directly.
4587
4588 Restic (https://restic.net/) is a command line program for doing back‐
4589 ups.
4590
4591 The server will log errors. Use -v to see access logs.
4592
4593 --bwlimit will be respected for file transfers. Use --stats to control
4594 the stats printing.
4595
4596 Setting up rclone for use by restic
4597 First set up a remote for your chosen cloud provider
4598 (https://rclone.org/docs/#configure).
4599
4600 Once you have set up the remote, check it is working with, for example
4601 "rclone lsd remote:". You may have called the remote something other
4602 than "remote:" - just substitute whatever you called it in the follow‐
4603 ing instructions.
4604
4605 Now start the rclone restic server
4606
4607 rclone serve restic -v remote:backup
4608
4609 Where you can replace "backup" in the above by whatever path in the re‐
4610 mote you wish to use.
4611
4612 By default this will serve on "localhost:8080" you can change this with
4613 use of the "--addr" flag.
4614
4615 You might wish to start this server on boot.
4616
4617 Adding --cache-objects=false will cause rclone to stop caching objects
4618 returned from the List call. Caching is normally desirable as it
4619 speeds up downloading objects, saves transactions and uses very little
4620 memory.
4621
4622 Setting up restic to use rclone
4623 Now you can follow the restic instructions (http://restic.readthedo‐
4624 cs.io/en/latest/030_preparing_a_new_repo.html#rest-server) on setting
4625 up restic.
4626
4627 Note that you will need restic 0.8.2 or later to interoperate with
4628 rclone.
4629
4630 For the example above you will want to use "http://localhost:8080/" as
4631 the URL for the REST server.
4632
4633 For example:
4634
4635 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/
4636 $ export RESTIC_PASSWORD=yourpassword
4637 $ restic init
4638 created restic backend 8b1a4b56ae at rest:http://localhost:8080/
4639
4640 Please note that knowledge of your password is required to access
4641 the repository. Losing your password means that your data is
4642 irrecoverably lost.
4643 $ restic backup /path/to/files/to/backup
4644 scan [/path/to/files/to/backup]
4645 scanned 189 directories, 312 files in 0:00
4646 [0:00] 100.00% 38.128 MiB / 38.128 MiB 501 / 501 items 0 errors ETA 0:00
4647 duration: 0:00
4648 snapshot 45c8fdd8 saved
4649
4650 Multiple repositories
4651 Note that you can use the endpoint to host multiple repositories. Do
4652 this by adding a directory name or path after the URL. Note that these
4653 must end with /. Eg
4654
4655 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user1repo/
4656 # backup user1 stuff
4657 $ export RESTIC_REPOSITORY=rest:http://localhost:8080/user2repo/
4658 # backup user2 stuff
4659
4660 Private repositories
4661 The "--private-repos" flag can be used to limit users to repositories
4662 starting with a path of /<username>/.
4663
4664 Server options
4665 Use --addr to specify which IP address and port the server should lis‐
4666 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
4667 By default it only listens on localhost. You can use port :0 to let
4668 the OS choose an available port.
4669
4670 If you set --addr to listen on a public or LAN accessible IP address
4671 then using Authentication is advised - see the next section for info.
4672
4673 --server-read-timeout and --server-write-timeout can be used to control
4674 the timeouts on the server. Note that this is the total time for a
4675 transfer.
4676
4677 --max-header-bytes controls the maximum number of bytes the server will
4678 accept in the HTTP header.
4679
4680 --baseurl controls the URL prefix that rclone serves from. By default
4681 rclone will serve from the root. If you used --baseurl "/rclone" then
4682 rclone would serve from a URL starting with "/rclone/". This is useful
4683 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
4684 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
4685 "/rclone" and --baseurl "/rclone/" are all treated identically.
4686
4687 --template allows a user to specify a custom markup template for http
4688 and webdav serve functions. The server exports the following markup to
4689 be used within the template to server pages:
4690
4691 Parameter Description
4692 ──────────────────────────────────────────────────────────────────────────
4693 .Name The full path of a file/directory.
4694 .Title Directory listing of .Name
4695 .Sort The current sort used. This is
4696 changeable via ?sort= parameter
4697 Sort Options:
4698 namedirfirst,name,size,time (de‐
4699 fault namedirfirst)
4700 .Order The current ordering used. This is
4701 changeable via ?order= parameter
4702 Order Options: asc,desc (default
4703 asc)
4704 .Query Currently unused.
4705 .Breadcrumb Allows for creating a relative nav‐
4706 igation
4707 -- .Link The relative to the root link of
4708 the Text.
4709 -- .Text The Name of the directory.
4710 .Entries Information about a specific
4711 file/directory.
4712 -- .URL The 'url' of an entry.
4713 -- .Leaf Currently same as 'URL' but intend‐
4714 ed to be 'just' the name.
4715 -- .IsDir Boolean for if an entry is a direc‐
4716 tory or not.
4717 -- .Size Size in Bytes of the entry.
4718 -- .ModTime The UTC timestamp of an entry.
4719
4720 Authentication
4721 By default this will serve files without needing a login.
4722
4723 You can either use an htpasswd file which can take lots of users, or
4724 set a single username and password with the --user and --pass flags.
4725
4726 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
4727 in standard apache format and supports MD5, SHA1 and BCrypt for basic
4728 authentication. Bcrypt is recommended.
4729
4730 To create an htpasswd file:
4731
4732 touch htpasswd
4733 htpasswd -B htpasswd user
4734 htpasswd -B htpasswd anotherUser
4735
4736 The password file can be updated while rclone is running.
4737
4738 Use --realm to set the authentication realm.
4739
4740 SSL/TLS
4741 By default this will serve over http. If you want you can serve over
4742 https. You will need to supply the --cert and --key flags. If you
4743 wish to do client side certificate validation then you will need to
4744 supply --client-ca also.
4745
4746 --cert should be either a PEM encoded certificate or a concatenation of
4747 that with the CA certificate. --key should be the PEM encoded private
4748 key and --client-ca should be the PEM encoded client certificate au‐
4749 thority certificate.
4750
4751 rclone serve restic remote:path [flags]
4752
4753 Options
4754 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
4755 --append-only disallow deletion of repository data
4756 --baseurl string Prefix for URLs - leave blank for root.
4757 --cache-objects cache listed objects (default true)
4758 --cert string SSL PEM key (concatenation of certificate and CA certificate)
4759 --client-ca string Client certificate authority to verify clients with
4760 -h, --help help for restic
4761 --htpasswd string htpasswd file - if not provided no authentication is done
4762 --key string SSL PEM Private key
4763 --max-header-bytes int Maximum size of request header (default 4096)
4764 --pass string Password for authentication.
4765 --private-repos users can only access their private repo
4766 --realm string realm for authentication (default "rclone")
4767 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
4768 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
4769 --stdio run an HTTP2 server on stdin/stdout
4770 --template string User Specified Template.
4771 --user string User name for authentication.
4772
4773 See the global flags page (https://rclone.org/flags/) for global op‐
4774 tions not listed here.
4775
4776 SEE ALSO
4777 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
4778 remote over a protocol.
4779
4781 Serve the remote over SFTP.
4782
4783 Synopsis
4784 rclone serve sftp implements an SFTP server to serve the remote over
4785 SFTP. This can be used with an SFTP client or you can make a remote of
4786 type sftp to use with it.
4787
4788 You can use the filter flags (e.g. --include, --exclude) to control
4789 what is served.
4790
4791 The server will log errors. Use -v to see access logs.
4792
4793 --bwlimit will be respected for file transfers. Use --stats to control
4794 the stats printing.
4795
4796 You must provide some means of authentication, either with --us‐
4797 er/--pass, an authorized keys file (specify location with --autho‐
4798 rized-keys - the default is the same as ssh), an --auth-proxy, or set
4799 the --no-auth flag for no authentication when logging in.
4800
4801 Note that this also implements a small number of shell commands so that
4802 it can provide md5sum/sha1sum/df information for the rclone sftp back‐
4803 end. This means that is can support SHA1SUMs, MD5SUMs and the about
4804 command when paired with the rclone sftp backend.
4805
4806 If you don't supply a --key then rclone will generate one and cache it
4807 for later use.
4808
4809 By default the server binds to localhost:2022 - if you want it to be
4810 reachable externally then supply "--addr :2022" for example.
4811
4812 Note that the default of "--vfs-cache-mode off" is fine for the rclone
4813 sftp backend, but it may not be with other SFTP clients.
4814
4815 VFS - Virtual File System
4816 This command uses the VFS layer. This adapts the cloud storage objects
4817 that rclone uses into something which looks much more like a disk fil‐
4818 ing system.
4819
4820 Cloud storage objects have lots of properties which aren't like disk
4821 files - you can't extend them or write to the middle of them, so the
4822 VFS layer has to deal with that. Because there is no one right way of
4823 doing this there are various options explained below.
4824
4825 The VFS layer also implements a directory cache - this caches info
4826 about files and directories (but not the data) in memory.
4827
4828 VFS Directory Cache
4829 Using the --dir-cache-time flag, you can control how long a directory
4830 should be considered up to date and not refreshed from the backend.
4831 Changes made through the mount will appear immediately or invalidate
4832 the cache.
4833
4834 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
4835 --poll-interval duration Time to wait between polling for changes.
4836
4837 However, changes made directly on the cloud storage by the web inter‐
4838 face or a different copy of rclone will only be picked up once the di‐
4839 rectory cache expires if the backend configured does not support
4840 polling for changes. If the backend supports polling, changes will be
4841 picked up within the polling interval.
4842
4843 You can send a SIGHUP signal to rclone for it to flush all directory
4844 caches, regardless of how old they are. Assuming only one rclone in‐
4845 stance is running, you can reset the cache like this:
4846
4847 kill -SIGHUP $(pidof rclone)
4848
4849 If you configure rclone with a remote control (/rc) then you can use
4850 rclone rc to flush the whole directory cache:
4851
4852 rclone rc vfs/forget
4853
4854 Or individual files or directories:
4855
4856 rclone rc vfs/forget file=path/to/file dir=path/to/dir
4857
4858 VFS File Buffering
4859 The --buffer-size flag determines the amount of memory, that will be
4860 used to buffer data in advance.
4861
4862 Each open file will try to keep the specified amount of data in memory
4863 at all times. The buffered data is bound to one open file and won't be
4864 shared.
4865
4866 This flag is a upper limit for the used memory per open file. The buf‐
4867 fer will only use memory for data that is downloaded but not not yet
4868 read. If the buffer is empty, only a small amount of memory will be
4869 used.
4870
4871 The maximum memory used by rclone for buffering can be up to --buf‐
4872 fer-size * open files.
4873
4874 VFS File Caching
4875 These flags control the VFS file caching options. File caching is nec‐
4876 essary to make the VFS layer appear compatible with a normal file sys‐
4877 tem. It can be disabled at the cost of some compatibility.
4878
4879 For example you'll need to enable VFS caching if you want to read and
4880 write simultaneously to a file. See below for more details.
4881
4882 Note that the VFS cache is separate from the cache backend and you may
4883 find that you need one or the other or both.
4884
4885 --cache-dir string Directory rclone will use for caching.
4886 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
4887 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
4888 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
4889 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
4890 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
4891
4892 If run with -vv rclone will print the location of the file cache. The
4893 files are stored in the user cache file area which is OS dependent but
4894 can be controlled with --cache-dir or setting the appropriate environ‐
4895 ment variable.
4896
4897 The cache has 4 different modes selected by --vfs-cache-mode. The
4898 higher the cache mode the more compatible rclone becomes at the cost of
4899 using disk space.
4900
4901 Note that files are written back to the remote only when they are
4902 closed and if they haven't been accessed for --vfs-write-back second.
4903 If rclone is quit or dies with files that haven't been uploaded, these
4904 will be uploaded next time rclone is run with the same flags.
4905
4906 If using --vfs-cache-max-size note that the cache may exceed this size
4907 for two reasons. Firstly because it is only checked every
4908 --vfs-cache-poll-interval. Secondly because open files cannot be
4909 evicted from the cache.
4910
4911 --vfs-cache-mode off
4912 In this mode (the default) the cache will read directly from the remote
4913 and write directly to the remote without caching anything on disk.
4914
4915 This will mean some operations are not possible
4916
4917 · Files can't be opened for both read AND write
4918
4919 · Files opened for write can't be seeked
4920
4921 · Existing files opened for write must have O_TRUNC set
4922
4923 · Files open for read with O_TRUNC will be opened write only
4924
4925 · Files open for write only will behave as if O_TRUNC was supplied
4926
4927 · Open modes O_APPEND, O_TRUNC are ignored
4928
4929 · If an upload fails it can't be retried
4930
4931 --vfs-cache-mode minimal
4932 This is very similar to "off" except that files opened for read AND
4933 write will be buffered to disk. This means that files opened for write
4934 will be a lot more compatible, but uses the minimal disk space.
4935
4936 These operations are not possible
4937
4938 · Files opened for write only can't be seeked
4939
4940 · Existing files opened for write must have O_TRUNC set
4941
4942 · Files opened for write only will ignore O_APPEND, O_TRUNC
4943
4944 · If an upload fails it can't be retried
4945
4946 --vfs-cache-mode writes
4947 In this mode files opened for read only are still read directly from
4948 the remote, write only and read/write files are buffered to disk first.
4949
4950 This mode should support all normal file system operations.
4951
4952 If an upload fails it will be retried at exponentially increasing in‐
4953 tervals up to 1 minute.
4954
4955 --vfs-cache-mode full
4956 In this mode all reads and writes are buffered to and from disk. When
4957 data is read from the remote this is buffered to disk as well.
4958
4959 In this mode the files in the cache will be sparse files and rclone
4960 will keep track of which bits of the files it has downloaded.
4961
4962 So if an application only reads the starts of each file, then rclone
4963 will only buffer the start of the file. These files will appear to be
4964 their full size in the cache, but they will be sparse files with only
4965 the data that has been downloaded present in them.
4966
4967 This mode should support all normal file system operations and is oth‐
4968 erwise identical to --vfs-cache-mode writes.
4969
4970 When reading a file rclone will read --buffer-size plus
4971 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
4972 whereas the --vfs-read-ahead is buffered on disk.
4973
4974 When using this mode it is recommended that --buffer-size is not set
4975 too big and --vfs-read-ahead is set large if required.
4976
4977 IMPORTANT not all file systems support sparse files. In particular
4978 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
4979 ry is on a filesystem which doesn't support sparse files and it will
4980 log an ERROR message if one is detected.
4981
4982 VFS Performance
4983 These flags may be used to enable/disable features of the VFS for per‐
4984 formance or other reasons.
4985
4986 In particular S3 and Swift benefit hugely from the --no-modtime flag
4987 (or use --use-server-modtime for a slightly different effect) as each
4988 read of the modification time takes a transaction.
4989
4990 --no-checksum Don't compare checksums on up/download.
4991 --no-modtime Don't read/write the modification time (can speed things up).
4992 --no-seek Don't allow seeking in files.
4993 --read-only Mount read-only.
4994
4995 When rclone reads files from a remote it reads them in chunks. This
4996 means that rather than requesting the whole file rclone reads the chunk
4997 specified. This is advantageous because some cloud providers account
4998 for reads being all the data requested, not all the data delivered.
4999
5000 Rclone will keep doubling the chunk size requested starting at
5001 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
5002 less it is set to "off" in which case there will be no limit.
5003
5004 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
5005 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
5006
5007 Sometimes rclone is delivered reads or writes out of order. Rather
5008 than seeking rclone will wait a short time for the in sequence read or
5009 write to come in. These flags only come into effect when not using an
5010 on disk cache file.
5011
5012 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
5013 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
5014
5015 When using VFS write caching (--vfs-cache-mode with value writes or
5016 full), the global flag --transfers can be set to adjust the number of
5017 parallel uploads of modified files from cache (the related global flag
5018 --checkers have no effect on mount).
5019
5020 --transfers int Number of file transfers to run in parallel. (default 4)
5021
5022 VFS Case Sensitivity
5023 Linux file systems are case-sensitive: two files can differ only by
5024 case, and the exact case must be used when opening a file.
5025
5026 File systems in modern Windows are case-insensitive but case-preserv‐
5027 ing: although existing files can be opened using any case, the exact
5028 case used to create the file is preserved and available for programs to
5029 query. It is not allowed for two files in the same directory to differ
5030 only by case.
5031
5032 Usually file systems on macOS are case-insensitive. It is possible to
5033 make macOS file systems case-sensitive but that is not the default
5034
5035 The --vfs-case-insensitive mount flag controls how rclone handles these
5036 two cases. If its value is "false", rclone passes file names to the
5037 mounted file system as-is. If the flag is "true" (or appears without a
5038 value on command line), rclone may perform a "fixup" as explained be‐
5039 low.
5040
5041 The user may specify a file name to open/delete/rename/etc with a case
5042 different than what is stored on mounted file system. If an argument
5043 refers to an existing file with exactly the same name, then the case of
5044 the existing file on the disk will be used. However, if a file name
5045 with exactly the same name is not found but a name differing only by
5046 case exists, rclone will transparently fixup the name. This fixup hap‐
5047 pens only when an existing file is requested. Case sensitivity of file
5048 names created anew by rclone is controlled by an underlying mounted
5049 file system.
5050
5051 Note that case sensitivity of the operating system running rclone (the
5052 target) may differ from case sensitivity of a file system mounted by
5053 rclone (the source). The flag controls whether "fixup" is performed to
5054 satisfy the target.
5055
5056 If the flag is not provided on the command line, then its default value
5057 depends on the operating system where rclone runs: "true" on Windows
5058 and macOS, "false" otherwise. If the flag is provided without a value,
5059 then it is "true".
5060
5061 Auth Proxy
5062 If you supply the parameter --auth-proxy /path/to/program then rclone
5063 will use that program to generate backends on the fly which then are
5064 used to authenticate incoming requests. This uses a simple JSON based
5065 protocol with input on STDIN and output on STDOUT.
5066
5067 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
5068 er, if --auth-proxy is set the authorized keys option will be ignored.
5069
5070 There is an example program bin/test_proxy.py
5071 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
5072 rclone source code.
5073
5074 The program's job is to take a user and pass on the input and turn
5075 those into the config for a backend on STDOUT in JSON format. This
5076 config will have any default parameters for the backend added, but it
5077 won't use configuration from environment variables or command line op‐
5078 tions - it is the job of the proxy program to make a complete config.
5079
5080 This config generated must have this extra parameter - _root - root to
5081 use for the backend
5082
5083 And it may have this parameter - _obscure - comma separated strings for
5084 parameters to obscure
5085
5086 If password authentication was used by the client, input to the proxy
5087 process (on STDIN) would look similar to this:
5088
5089 {
5090 "user": "me",
5091 "pass": "mypassword"
5092 }
5093
5094 If public-key authentication was used by the client, input to the proxy
5095 process (on STDIN) would look similar to this:
5096
5097 {
5098 "user": "me",
5099 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
5100 }
5101
5102 And as an example return this on STDOUT
5103
5104 {
5105 "type": "sftp",
5106 "_root": "",
5107 "_obscure": "pass",
5108 "user": "me",
5109 "pass": "mypassword",
5110 "host": "sftp.example.com"
5111 }
5112
5113 This would mean that an SFTP backend would be created on the fly for
5114 the user and pass/public_key returned in the output to the host given.
5115 Note that since _obscure is set to pass, rclone will obscure the pass
5116 parameter before creating the backend (which is required for sftp back‐
5117 ends).
5118
5119 The program can manipulate the supplied user in any way, for example to
5120 make proxy to many different sftp backends, you could make the user be
5121 user@example.com and then set the host to example.com in the output and
5122 the user to user. For security you'd probably want to restrict the
5123 host to a limited list.
5124
5125 Note that an internal cache is keyed on user so only use that for con‐
5126 figuration, don't use pass or public_key. This also means that if a
5127 user's password or public-key is changed the cache will need to expire
5128 (which takes 5 mins) before it takes effect.
5129
5130 This can be used to build general purpose proxies to any kind of back‐
5131 end that rclone supports.
5132
5133 rclone serve sftp remote:path [flags]
5134
5135 Options
5136 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:2022")
5137 --auth-proxy string A program to use to create the backend from the auth.
5138 --authorized-keys string Authorized keys file (default "~/.ssh/authorized_keys")
5139 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
5140 --dir-perms FileMode Directory permissions (default 0777)
5141 --file-perms FileMode File permissions (default 0666)
5142 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
5143 -h, --help help for sftp
5144 --key stringArray SSH private host key file (Can be multi-valued, leave blank to auto generate)
5145 --no-auth Allow connections with no authentication if set.
5146 --no-checksum Don't compare checksums on up/download.
5147 --no-modtime Don't read/write the modification time (can speed things up).
5148 --no-seek Don't allow seeking in files.
5149 --pass string Password for authentication.
5150 --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)
5151 --read-only Mount read-only.
5152 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
5153 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
5154 --user string User name for authentication.
5155 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
5156 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
5157 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5158 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
5159 --vfs-case-insensitive If a file name not found, find a case insensitive match.
5160 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
5161 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
5162 --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)
5163 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
5164 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
5165 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
5166
5167 See the global flags page (https://rclone.org/flags/) for global op‐
5168 tions not listed here.
5169
5170 SEE ALSO
5171 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
5172 remote over a protocol.
5173
5175 Serve remote:path over webdav.
5176
5177 Synopsis
5178 rclone serve webdav implements a basic webdav server to serve the re‐
5179 mote over HTTP via the webdav protocol. This can be viewed with a web‐
5180 dav client, through a web browser, or you can make a remote of type
5181 webdav to read and write it.
5182
5183 Webdav options
5184 --etag-hash
5185 This controls the ETag header. Without this flag the ETag will be
5186 based on the ModTime and Size of the object.
5187
5188 If this flag is set to "auto" then rclone will choose the first sup‐
5189 ported hash on the backend or you can use a named hash such as "MD5" or
5190 "SHA-1".
5191
5192 Use "rclone hashsum" to see the full list.
5193
5194 Server options
5195 Use --addr to specify which IP address and port the server should lis‐
5196 ten on, e.g. --addr 1.2.3.4:8000 or --addr :8080 to listen to all IPs.
5197 By default it only listens on localhost. You can use port :0 to let
5198 the OS choose an available port.
5199
5200 If you set --addr to listen on a public or LAN accessible IP address
5201 then using Authentication is advised - see the next section for info.
5202
5203 --server-read-timeout and --server-write-timeout can be used to control
5204 the timeouts on the server. Note that this is the total time for a
5205 transfer.
5206
5207 --max-header-bytes controls the maximum number of bytes the server will
5208 accept in the HTTP header.
5209
5210 --baseurl controls the URL prefix that rclone serves from. By default
5211 rclone will serve from the root. If you used --baseurl "/rclone" then
5212 rclone would serve from a URL starting with "/rclone/". This is useful
5213 if you wish to proxy rclone serve. Rclone automatically inserts lead‐
5214 ing and trailing "/" on --baseurl, so --baseurl "rclone", --baseurl
5215 "/rclone" and --baseurl "/rclone/" are all treated identically.
5216
5217 --template allows a user to specify a custom markup template for http
5218 and webdav serve functions. The server exports the following markup to
5219 be used within the template to server pages:
5220
5221 Parameter Description
5222 ──────────────────────────────────────────────────────────────────────────
5223 .Name The full path of a file/directory.
5224 .Title Directory listing of .Name
5225 .Sort The current sort used. This is
5226 changeable via ?sort= parameter
5227 Sort Options:
5228 namedirfirst,name,size,time (de‐
5229 fault namedirfirst)
5230 .Order The current ordering used. This is
5231 changeable via ?order= parameter
5232 Order Options: asc,desc (default
5233 asc)
5234 .Query Currently unused.
5235 .Breadcrumb Allows for creating a relative nav‐
5236 igation
5237
5238 -- .Link The relative to the root link of
5239 the Text.
5240 -- .Text The Name of the directory.
5241 .Entries Information about a specific
5242 file/directory.
5243 -- .URL The 'url' of an entry.
5244 -- .Leaf Currently same as 'URL' but intend‐
5245 ed to be 'just' the name.
5246 -- .IsDir Boolean for if an entry is a direc‐
5247 tory or not.
5248 -- .Size Size in Bytes of the entry.
5249 -- .ModTime The UTC timestamp of an entry.
5250
5251 Authentication
5252 By default this will serve files without needing a login.
5253
5254 You can either use an htpasswd file which can take lots of users, or
5255 set a single username and password with the --user and --pass flags.
5256
5257 Use --htpasswd /path/to/htpasswd to provide an htpasswd file. This is
5258 in standard apache format and supports MD5, SHA1 and BCrypt for basic
5259 authentication. Bcrypt is recommended.
5260
5261 To create an htpasswd file:
5262
5263 touch htpasswd
5264 htpasswd -B htpasswd user
5265 htpasswd -B htpasswd anotherUser
5266
5267 The password file can be updated while rclone is running.
5268
5269 Use --realm to set the authentication realm.
5270
5271 SSL/TLS
5272 By default this will serve over http. If you want you can serve over
5273 https. You will need to supply the --cert and --key flags. If you
5274 wish to do client side certificate validation then you will need to
5275 supply --client-ca also.
5276
5277 --cert should be either a PEM encoded certificate or a concatenation of
5278 that with the CA certificate. --key should be the PEM encoded private
5279 key and --client-ca should be the PEM encoded client certificate au‐
5280 thority certificate.
5281
5282 VFS - Virtual File System
5283 This command uses the VFS layer. This adapts the cloud storage objects
5284 that rclone uses into something which looks much more like a disk fil‐
5285 ing system.
5286
5287 Cloud storage objects have lots of properties which aren't like disk
5288 files - you can't extend them or write to the middle of them, so the
5289 VFS layer has to deal with that. Because there is no one right way of
5290 doing this there are various options explained below.
5291
5292 The VFS layer also implements a directory cache - this caches info
5293 about files and directories (but not the data) in memory.
5294
5295 VFS Directory Cache
5296 Using the --dir-cache-time flag, you can control how long a directory
5297 should be considered up to date and not refreshed from the backend.
5298 Changes made through the mount will appear immediately or invalidate
5299 the cache.
5300
5301 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
5302 --poll-interval duration Time to wait between polling for changes.
5303
5304 However, changes made directly on the cloud storage by the web inter‐
5305 face or a different copy of rclone will only be picked up once the di‐
5306 rectory cache expires if the backend configured does not support
5307 polling for changes. If the backend supports polling, changes will be
5308 picked up within the polling interval.
5309
5310 You can send a SIGHUP signal to rclone for it to flush all directory
5311 caches, regardless of how old they are. Assuming only one rclone in‐
5312 stance is running, you can reset the cache like this:
5313
5314 kill -SIGHUP $(pidof rclone)
5315
5316 If you configure rclone with a remote control (/rc) then you can use
5317 rclone rc to flush the whole directory cache:
5318
5319 rclone rc vfs/forget
5320
5321 Or individual files or directories:
5322
5323 rclone rc vfs/forget file=path/to/file dir=path/to/dir
5324
5325 VFS File Buffering
5326 The --buffer-size flag determines the amount of memory, that will be
5327 used to buffer data in advance.
5328
5329 Each open file will try to keep the specified amount of data in memory
5330 at all times. The buffered data is bound to one open file and won't be
5331 shared.
5332
5333 This flag is a upper limit for the used memory per open file. The buf‐
5334 fer will only use memory for data that is downloaded but not not yet
5335 read. If the buffer is empty, only a small amount of memory will be
5336 used.
5337
5338 The maximum memory used by rclone for buffering can be up to --buf‐
5339 fer-size * open files.
5340
5341 VFS File Caching
5342 These flags control the VFS file caching options. File caching is nec‐
5343 essary to make the VFS layer appear compatible with a normal file sys‐
5344 tem. It can be disabled at the cost of some compatibility.
5345
5346 For example you'll need to enable VFS caching if you want to read and
5347 write simultaneously to a file. See below for more details.
5348
5349 Note that the VFS cache is separate from the cache backend and you may
5350 find that you need one or the other or both.
5351
5352 --cache-dir string Directory rclone will use for caching.
5353 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5354 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
5355 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
5356 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
5357 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
5358
5359 If run with -vv rclone will print the location of the file cache. The
5360 files are stored in the user cache file area which is OS dependent but
5361 can be controlled with --cache-dir or setting the appropriate environ‐
5362 ment variable.
5363
5364 The cache has 4 different modes selected by --vfs-cache-mode. The
5365 higher the cache mode the more compatible rclone becomes at the cost of
5366 using disk space.
5367
5368 Note that files are written back to the remote only when they are
5369 closed and if they haven't been accessed for --vfs-write-back second.
5370 If rclone is quit or dies with files that haven't been uploaded, these
5371 will be uploaded next time rclone is run with the same flags.
5372
5373 If using --vfs-cache-max-size note that the cache may exceed this size
5374 for two reasons. Firstly because it is only checked every
5375 --vfs-cache-poll-interval. Secondly because open files cannot be
5376 evicted from the cache.
5377
5378 --vfs-cache-mode off
5379 In this mode (the default) the cache will read directly from the remote
5380 and write directly to the remote without caching anything on disk.
5381
5382 This will mean some operations are not possible
5383
5384 · Files can't be opened for both read AND write
5385
5386 · Files opened for write can't be seeked
5387
5388 · Existing files opened for write must have O_TRUNC set
5389
5390 · Files open for read with O_TRUNC will be opened write only
5391
5392 · Files open for write only will behave as if O_TRUNC was supplied
5393
5394 · Open modes O_APPEND, O_TRUNC are ignored
5395
5396 · If an upload fails it can't be retried
5397
5398 --vfs-cache-mode minimal
5399 This is very similar to "off" except that files opened for read AND
5400 write will be buffered to disk. This means that files opened for write
5401 will be a lot more compatible, but uses the minimal disk space.
5402
5403 These operations are not possible
5404
5405 · Files opened for write only can't be seeked
5406
5407 · Existing files opened for write must have O_TRUNC set
5408
5409 · Files opened for write only will ignore O_APPEND, O_TRUNC
5410
5411 · If an upload fails it can't be retried
5412
5413 --vfs-cache-mode writes
5414 In this mode files opened for read only are still read directly from
5415 the remote, write only and read/write files are buffered to disk first.
5416
5417 This mode should support all normal file system operations.
5418
5419 If an upload fails it will be retried at exponentially increasing in‐
5420 tervals up to 1 minute.
5421
5422 --vfs-cache-mode full
5423 In this mode all reads and writes are buffered to and from disk. When
5424 data is read from the remote this is buffered to disk as well.
5425
5426 In this mode the files in the cache will be sparse files and rclone
5427 will keep track of which bits of the files it has downloaded.
5428
5429 So if an application only reads the starts of each file, then rclone
5430 will only buffer the start of the file. These files will appear to be
5431 their full size in the cache, but they will be sparse files with only
5432 the data that has been downloaded present in them.
5433
5434 This mode should support all normal file system operations and is oth‐
5435 erwise identical to --vfs-cache-mode writes.
5436
5437 When reading a file rclone will read --buffer-size plus
5438 --vfs-read-ahead bytes ahead. The --buffer-size is buffered in memory
5439 whereas the --vfs-read-ahead is buffered on disk.
5440
5441 When using this mode it is recommended that --buffer-size is not set
5442 too big and --vfs-read-ahead is set large if required.
5443
5444 IMPORTANT not all file systems support sparse files. In particular
5445 FAT/exFAT do not. Rclone will perform very badly if the cache directo‐
5446 ry is on a filesystem which doesn't support sparse files and it will
5447 log an ERROR message if one is detected.
5448
5449 VFS Performance
5450 These flags may be used to enable/disable features of the VFS for per‐
5451 formance or other reasons.
5452
5453 In particular S3 and Swift benefit hugely from the --no-modtime flag
5454 (or use --use-server-modtime for a slightly different effect) as each
5455 read of the modification time takes a transaction.
5456
5457 --no-checksum Don't compare checksums on up/download.
5458 --no-modtime Don't read/write the modification time (can speed things up).
5459 --no-seek Don't allow seeking in files.
5460 --read-only Mount read-only.
5461
5462 When rclone reads files from a remote it reads them in chunks. This
5463 means that rather than requesting the whole file rclone reads the chunk
5464 specified. This is advantageous because some cloud providers account
5465 for reads being all the data requested, not all the data delivered.
5466
5467 Rclone will keep doubling the chunk size requested starting at
5468 --vfs-read-chunk-size with a maximum of --vfs-read-chunk-size-limit un‐
5469 less it is set to "off" in which case there will be no limit.
5470
5471 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
5472 --vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default "off")
5473
5474 Sometimes rclone is delivered reads or writes out of order. Rather
5475 than seeking rclone will wait a short time for the in sequence read or
5476 write to come in. These flags only come into effect when not using an
5477 on disk cache file.
5478
5479 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
5480 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
5481
5482 When using VFS write caching (--vfs-cache-mode with value writes or
5483 full), the global flag --transfers can be set to adjust the number of
5484 parallel uploads of modified files from cache (the related global flag
5485 --checkers have no effect on mount).
5486
5487 --transfers int Number of file transfers to run in parallel. (default 4)
5488
5489 VFS Case Sensitivity
5490 Linux file systems are case-sensitive: two files can differ only by
5491 case, and the exact case must be used when opening a file.
5492
5493 File systems in modern Windows are case-insensitive but case-preserv‐
5494 ing: although existing files can be opened using any case, the exact
5495 case used to create the file is preserved and available for programs to
5496 query. It is not allowed for two files in the same directory to differ
5497 only by case.
5498
5499 Usually file systems on macOS are case-insensitive. It is possible to
5500 make macOS file systems case-sensitive but that is not the default
5501
5502 The --vfs-case-insensitive mount flag controls how rclone handles these
5503 two cases. If its value is "false", rclone passes file names to the
5504 mounted file system as-is. If the flag is "true" (or appears without a
5505 value on command line), rclone may perform a "fixup" as explained be‐
5506 low.
5507
5508 The user may specify a file name to open/delete/rename/etc with a case
5509 different than what is stored on mounted file system. If an argument
5510 refers to an existing file with exactly the same name, then the case of
5511 the existing file on the disk will be used. However, if a file name
5512 with exactly the same name is not found but a name differing only by
5513 case exists, rclone will transparently fixup the name. This fixup hap‐
5514 pens only when an existing file is requested. Case sensitivity of file
5515 names created anew by rclone is controlled by an underlying mounted
5516 file system.
5517
5518 Note that case sensitivity of the operating system running rclone (the
5519 target) may differ from case sensitivity of a file system mounted by
5520 rclone (the source). The flag controls whether "fixup" is performed to
5521 satisfy the target.
5522
5523 If the flag is not provided on the command line, then its default value
5524 depends on the operating system where rclone runs: "true" on Windows
5525 and macOS, "false" otherwise. If the flag is provided without a value,
5526 then it is "true".
5527
5528 Auth Proxy
5529 If you supply the parameter --auth-proxy /path/to/program then rclone
5530 will use that program to generate backends on the fly which then are
5531 used to authenticate incoming requests. This uses a simple JSON based
5532 protocol with input on STDIN and output on STDOUT.
5533
5534 PLEASE NOTE: --auth-proxy and --authorized-keys cannot be used togeth‐
5535 er, if --auth-proxy is set the authorized keys option will be ignored.
5536
5537 There is an example program bin/test_proxy.py
5538 (https://github.com/rclone/rclone/blob/master/test_proxy.py) in the
5539 rclone source code.
5540
5541 The program's job is to take a user and pass on the input and turn
5542 those into the config for a backend on STDOUT in JSON format. This
5543 config will have any default parameters for the backend added, but it
5544 won't use configuration from environment variables or command line op‐
5545 tions - it is the job of the proxy program to make a complete config.
5546
5547 This config generated must have this extra parameter - _root - root to
5548 use for the backend
5549
5550 And it may have this parameter - _obscure - comma separated strings for
5551 parameters to obscure
5552
5553 If password authentication was used by the client, input to the proxy
5554 process (on STDIN) would look similar to this:
5555
5556 {
5557 "user": "me",
5558 "pass": "mypassword"
5559 }
5560
5561 If public-key authentication was used by the client, input to the proxy
5562 process (on STDIN) would look similar to this:
5563
5564 {
5565 "user": "me",
5566 "public_key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDuwESFdAe14hVS6omeyX7edc...JQdf"
5567 }
5568
5569 And as an example return this on STDOUT
5570
5571 {
5572 "type": "sftp",
5573 "_root": "",
5574 "_obscure": "pass",
5575 "user": "me",
5576 "pass": "mypassword",
5577 "host": "sftp.example.com"
5578 }
5579
5580 This would mean that an SFTP backend would be created on the fly for
5581 the user and pass/public_key returned in the output to the host given.
5582 Note that since _obscure is set to pass, rclone will obscure the pass
5583 parameter before creating the backend (which is required for sftp back‐
5584 ends).
5585
5586 The program can manipulate the supplied user in any way, for example to
5587 make proxy to many different sftp backends, you could make the user be
5588 user@example.com and then set the host to example.com in the output and
5589 the user to user. For security you'd probably want to restrict the
5590 host to a limited list.
5591
5592 Note that an internal cache is keyed on user so only use that for con‐
5593 figuration, don't use pass or public_key. This also means that if a
5594 user's password or public-key is changed the cache will need to expire
5595 (which takes 5 mins) before it takes effect.
5596
5597 This can be used to build general purpose proxies to any kind of back‐
5598 end that rclone supports.
5599
5600 rclone serve webdav remote:path [flags]
5601
5602 Options
5603 --addr string IPaddress:Port or :Port to bind server to. (default "localhost:8080")
5604 --auth-proxy string A program to use to create the backend from the auth.
5605 --baseurl string Prefix for URLs - leave blank for root.
5606 --cert string SSL PEM key (concatenation of certificate and CA certificate)
5607 --client-ca string Client certificate authority to verify clients with
5608 --dir-cache-time duration Time to cache directory entries for. (default 5m0s)
5609 --dir-perms FileMode Directory permissions (default 0777)
5610 --disable-dir-list Disable HTML directory list on GET request for a directory
5611 --etag-hash string Which hash to use for the ETag, or auto or blank for off
5612 --file-perms FileMode File permissions (default 0666)
5613 --gid uint32 Override the gid field set by the filesystem. Not supported on Windows. (default 1000)
5614 -h, --help help for webdav
5615 --htpasswd string htpasswd file - if not provided no authentication is done
5616 --key string SSL PEM Private key
5617 --max-header-bytes int Maximum size of request header (default 4096)
5618 --no-checksum Don't compare checksums on up/download.
5619 --no-modtime Don't read/write the modification time (can speed things up).
5620 --no-seek Don't allow seeking in files.
5621 --pass string Password for authentication.
5622 --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)
5623 --read-only Mount read-only.
5624 --realm string realm for authentication (default "rclone")
5625 --server-read-timeout duration Timeout for server reading data (default 1h0m0s)
5626 --server-write-timeout duration Timeout for server writing data (default 1h0m0s)
5627 --template string User Specified Template.
5628 --uid uint32 Override the uid field set by the filesystem. Not supported on Windows. (default 1000)
5629 --umask int Override the permission bits set by the filesystem. Not supported on Windows. (default 2)
5630 --user string User name for authentication.
5631 --vfs-cache-max-age duration Max age of objects in the cache. (default 1h0m0s)
5632 --vfs-cache-max-size SizeSuffix Max total size of objects in the cache. (default off)
5633 --vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
5634 --vfs-cache-poll-interval duration Interval to poll the cache for stale objects. (default 1m0s)
5635 --vfs-case-insensitive If a file name not found, find a case insensitive match.
5636 --vfs-read-ahead SizeSuffix Extra read ahead over --buffer-size when using cache-mode full.
5637 --vfs-read-chunk-size SizeSuffix Read the source objects in chunks. (default 128M)
5638 --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)
5639 --vfs-read-wait duration Time to wait for in-sequence read before seeking. (default 20ms)
5640 --vfs-write-back duration Time to writeback files after last use when using cache. (default 5s)
5641 --vfs-write-wait duration Time to wait for in-sequence write before giving error. (default 1s)
5642
5643 See the global flags page (https://rclone.org/flags/) for global op‐
5644 tions not listed here.
5645
5646 SEE ALSO
5647 · rclone serve (https://rclone.org/commands/rclone_serve/) - Serve a
5648 remote over a protocol.
5649
5651 Changes storage class/tier of objects in remote.
5652
5653 Synopsis
5654 rclone settier changes storage tier or class at remote if supported.
5655 Few cloud storage services provides different storage classes on ob‐
5656 jects, for example AWS S3 and Glacier, Azure Blob storage - Hot, Cool
5657 and Archive, Google Cloud Storage, Regional Storage, Nearline, Coldline
5658 etc.
5659
5660 Note that, certain tier changes make objects not available to access
5661 immediately. For example tiering to archive in azure blob storage
5662 makes objects in frozen state, user can restore by setting tier to
5663 Hot/Cool, similarly S3 to Glacier makes object inaccessible.true
5664
5665 You can use it to tier single object
5666
5667 rclone settier Cool remote:path/file
5668
5669 Or use rclone filters to set tier on only specific files
5670
5671 rclone --include "*.txt" settier Hot remote:path/dir
5672
5673 Or just provide remote directory and all files in directory will be
5674 tiered
5675
5676 rclone settier tier remote:path/dir
5677
5678 rclone settier tier remote:path [flags]
5679
5680 Options
5681 -h, --help help for settier
5682
5683 See the global flags page (https://rclone.org/flags/) for global op‐
5684 tions not listed here.
5685
5686 SEE ALSO
5687 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
5688 commands, flags and backends.
5689
5691 Create new file or change file modification time.
5692
5693 Synopsis
5694 Set the modification time on object(s) as specified by remote:path to
5695 have the current time.
5696
5697 If remote:path does not exist then a zero sized object will be created
5698 unless the --no-create flag is provided.
5699
5700 If --timestamp is used then it will set the modification time to that
5701 time instead of the current time. Times may be specified as one of:
5702
5703 · 'YYMMDD' - e.g. 17.10.30
5704
5705 · 'YYYY-MM-DDTHH:MM:SS' - e.g. 2006-01-02T15:04:05
5706
5707 · 'YYYY-MM-DDTHH:MM:SS.SSS' - e.g. 2006-01-02T15:04:05.123456789
5708
5709 Note that --timestamp is in UTC if you want local time then add the
5710 --localtime flag.
5711
5712 rclone touch remote:path [flags]
5713
5714 Options
5715 -h, --help help for touch
5716 --localtime Use localtime for timestamp, not UTC.
5717 -C, --no-create Do not create the file if it does not exist.
5718 -t, --timestamp string Use specified time instead of the current time of day.
5719
5720 See the global flags page (https://rclone.org/flags/) for global op‐
5721 tions not listed here.
5722
5723 SEE ALSO
5724 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
5725 commands, flags and backends.
5726
5728 List the contents of the remote in a tree like fashion.
5729
5730 Synopsis
5731 rclone tree lists the contents of a remote in a similar way to the unix
5732 tree command.
5733
5734 For example
5735
5736 $ rclone tree remote:path
5737 /
5738 ├── file1
5739 ├── file2
5740 ├── file3
5741 └── subdir
5742 ├── file4
5743 └── file5
5744
5745 1 directories, 5 files
5746
5747 You can use any of the filtering options with the tree command (e.g.
5748 --include and --exclude). You can also use --fast-list.
5749
5750 The tree command has many options for controlling the listing which are
5751 compatible with the tree command. Note that not all of them have short
5752 options as they conflict with rclone's short options.
5753
5754 rclone tree remote:path [flags]
5755
5756 Options
5757 -a, --all All files are listed (list . files too).
5758 -C, --color Turn colorization on always.
5759 -d, --dirs-only List directories only.
5760 --dirsfirst List directories before files (-U disables).
5761 --full-path Print the full path prefix for each file.
5762 -h, --help help for tree
5763 --human Print the size in a more human readable way.
5764 --level int Descend only level directories deep.
5765 -D, --modtime Print the date of last modification.
5766 --noindent Don't print indentation lines.
5767 --noreport Turn off file/directory count at end of tree listing.
5768 -o, --output string Output to file instead of stdout.
5769 -p, --protections Print the protections for each file.
5770 -Q, --quote Quote filenames with double quotes.
5771 -s, --size Print the size in bytes of each file.
5772 --sort string Select sort: name,version,size,mtime,ctime.
5773 --sort-ctime Sort files by last status change time.
5774 -t, --sort-modtime Sort files by last modification time.
5775 -r, --sort-reverse Reverse the order of the sort.
5776 -U, --unsorted Leave files unsorted.
5777 --version Sort files alphanumerically by version.
5778
5779 See the global flags page (https://rclone.org/flags/) for global op‐
5780 tions not listed here.
5781
5782 SEE ALSO
5783 · rclone (https://rclone.org/commands/rclone/) - Show help for rclone
5784 commands, flags and backends.
5785
5786 Copying single files
5787 rclone normally syncs or copies directories. However, if the source
5788 remote points to a file, rclone will just copy that file. The destina‐
5789 tion remote must point to a directory - rclone will give the error
5790 Failed to create file system for "remote:file": is a file not a direc‐
5791 tory if it isn't.
5792
5793 For example, suppose you have a remote with a file in called test.jpg,
5794 then you could copy just that file like this
5795
5796 rclone copy remote:test.jpg /tmp/download
5797
5798 The file test.jpg will be placed inside /tmp/download.
5799
5800 This is equivalent to specifying
5801
5802 rclone copy --files-from /tmp/files remote: /tmp/download
5803
5804 Where /tmp/files contains the single line
5805
5806 test.jpg
5807
5808 It is recommended to use copy when copying individual files, not sync.
5809 They have pretty much the same effect but copy will use a lot less mem‐
5810 ory.
5811
5812 Syntax of remote paths
5813 The syntax of the paths passed to the rclone command are as follows.
5814
5815 /path/to/dir
5816 This refers to the local file system.
5817
5818 On Windows only \ may be used instead of / in local paths only, non lo‐
5819 cal paths must use /.
5820
5821 These paths needn't start with a leading / - if they don't then they
5822 will be relative to the current directory.
5823
5824 remote:path/to/dir
5825 This refers to a directory path/to/dir on remote: as defined in the
5826 config file (configured with rclone config).
5827
5828 remote:/path/to/dir
5829 On most backends this is refers to the same directory as re‐
5830 mote:path/to/dir and that format should be preferred. On a very small
5831 number of remotes (FTP, SFTP, Dropbox for business) this will refer to
5832 a different directory. On these, paths without a leading / will refer
5833 to your "home" directory and paths with a leading / will refer to the
5834 root.
5835
5836 :backend:path/to/dir
5837 This is an advanced form for creating remotes on the fly. backend
5838 should be the name or prefix of a backend (the type in the config file)
5839 and all the configuration for the backend should be provided on the
5840 command line (or in environment variables).
5841
5842 Here are some examples:
5843
5844 rclone lsd --http-url https://pub.rclone.org :http:
5845
5846 To list all the directories in the root of https://pub.rclone.org/.
5847
5848 rclone lsf --http-url https://example.com :http:path/to/dir
5849
5850 To list files and directories in https://example.com/path/to/dir/
5851
5852 rclone copy --http-url https://example.com :http:path/to/dir /tmp/dir
5853
5854 To copy files and directories in https://example.com/path/to/dir to
5855 /tmp/dir.
5856
5857 rclone copy --sftp-host example.com :sftp:path/to/dir /tmp/dir
5858
5859 To copy files and directories from example.com in the relative directo‐
5860 ry path/to/dir to /tmp/dir using sftp.
5861
5862 Valid remote names
5863 · Remote names may only contain 0-9, A-Z ,a-z ,_ , - and space.
5864
5865 · Remote names may not start with -.
5866
5867 Quoting and the shell
5868 When you are typing commands to your computer you are using something
5869 called the command line shell. This interprets various characters in
5870 an OS specific way.
5871
5872 Here are some gotchas which may help users unfamiliar with the shell
5873 rules
5874
5875 Linux / OSX
5876 If your names have spaces or shell metacharacters (e.g. *, ?, $, ', ",
5877 etc.) then you must quote them. Use single quotes ' by default.
5878
5879 rclone copy 'Important files?' remote:backup
5880
5881 If you want to send a ' you will need to use ", e.g.
5882
5883 rclone copy "O'Reilly Reviews" remote:backup
5884
5885 The rules for quoting metacharacters are complicated and if you want
5886 the full details you'll have to consult the manual page for your shell.
5887
5888 Windows
5889 If your names have spaces in you need to put them in ", e.g.
5890
5891 rclone copy "E:\folder name\folder name\folder name" remote:backup
5892
5893 If you are using the root directory on its own then don't quote it (see
5894 #464 (https://github.com/rclone/rclone/issues/464) for why), e.g.
5895
5896 rclone copy E:\ remote:backup
5897
5898 Copying files or directories with : in the names
5899 rclone uses : to mark a remote name. This is, however, a valid file‐
5900 name component in non-Windows OSes. The remote name parser will only
5901 search for a : up to the first / so if you need to act on a file or di‐
5902 rectory like this then use the full path starting with a /, or use ./
5903 as a current directory prefix.
5904
5905 So to sync a directory called sync:me to a remote called remote: use
5906
5907 rclone sync -i ./sync:me remote:path
5908
5909 or
5910
5911 rclone sync -i /full/path/to/sync:me remote:path
5912
5913 Server Side Copy
5914 Most remotes (but not all - see the overview (https://rclone.org/over‐
5915 view/#optional-features)) support server-side copy.
5916
5917 This means if you want to copy one folder to another then rclone won't
5918 download all the files and re-upload them; it will instruct the server
5919 to copy them in place.
5920
5921 Eg
5922
5923 rclone copy s3:oldbucket s3:newbucket
5924
5925 Will copy the contents of oldbucket to newbucket without downloading
5926 and re-uploading.
5927
5928 Remotes which don't support server-side copy will download and re-up‐
5929 load in this case.
5930
5931 Server side copies are used with sync and copy and will be identified
5932 in the log when using the -v flag. The move command may also use them
5933 if remote doesn't support server-side move directly. This is done by
5934 issuing a server-side copy then a delete which is much quicker than a
5935 download and re-upload.
5936
5937 Server side copies will only be attempted if the remote names are the
5938 same.
5939
5940 This can be used when scripting to make aged backups efficiently, e.g.
5941
5942 rclone sync -i remote:current-backup remote:previous-backup
5943 rclone sync -i /path/to/files remote:current-backup
5944
5945 Options
5946 Rclone has a number of options to control its behaviour.
5947
5948 Options that take parameters can have the values passed in two ways,
5949 --option=value or --option value. However boolean (true/false) options
5950 behave slightly differently to the other options in that --boolean sets
5951 the option to true and the absence of the flag sets it to false. It is
5952 also possible to specify --boolean=false or --boolean=true. Note that
5953 --boolean false is not valid - this is parsed as --boolean and the
5954 false is parsed as an extra command line argument for rclone.
5955
5956 Options which use TIME use the go time parser. A duration string is a
5957 possibly signed sequence of decimal numbers, each with optional frac‐
5958 tion and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid
5959 time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
5960
5961 Options which use SIZE use kByte by default. However, a suffix of b
5962 for bytes, k for kBytes, M for MBytes, G for GBytes, T for TBytes and P
5963 for PBytes may be used. These are the binary units, e.g. 1, 2**10,
5964 2**20, 2**30 respectively.
5965
5966 --backup-dir=DIR
5967 When using sync, copy or move any files which would have been overwrit‐
5968 ten or deleted are moved in their original hierarchy into this directo‐
5969 ry.
5970
5971 If --suffix is set, then the moved files will have the suffix added to
5972 them. If there is a file with the same path (after the suffix has been
5973 added) in DIR, then it will be overwritten.
5974
5975 The remote in use must support server-side move or copy and you must
5976 use the same remote as the destination of the sync. The backup direc‐
5977 tory must not overlap the destination directory.
5978
5979 For example
5980
5981 rclone sync -i /path/to/local remote:current --backup-dir remote:old
5982
5983 will sync /path/to/local to remote:current, but for any files which
5984 would have been updated or deleted will be stored in remote:old.
5985
5986 If running rclone from a script you might want to use today's date as
5987 the directory name passed to --backup-dir to store the old files, or
5988 you might want to pass --suffix with today's date.
5989
5990 See --compare-dest and --copy-dest.
5991
5992 --bind string
5993 Local address to bind to for outgoing connections. This can be an IPv4
5994 address (1.2.3.4), an IPv6 address (1234::789A) or host name. If the
5995 host name doesn't resolve or resolves to more than one IP address it
5996 will give an error.
5997
5998 --bwlimit=BANDWIDTH_SPEC
5999 This option controls the bandwidth limit. For example
6000
6001 --bwlimit 10M
6002
6003 would mean limit the upload and download bandwidth to 10 Mbyte/s. NB
6004 this is bytes per second not bits per second. To use a single limit,
6005 specify the desired bandwidth in kBytes/s, or use a suffix b|k|M|G.
6006 The default is 0 which means to not limit bandwidth.
6007
6008 The upload and download bandwidth can be specified seperately, as
6009 --bwlimit UP:DOWN, so
6010
6011 --bwlimit 10M:100k
6012
6013 would mean limit the upload bandwidth to 10 Mbyte/s and the download
6014 bandwidth to 100 kByte/s. Either limit can be "off" meaning no limit,
6015 so to just limit the upload bandwidth you would use
6016
6017 --bwlimit 10M:off
6018
6019 this would limit the upload bandwidth to 10MByte/s but the download
6020 bandwidth would be unlimited.
6021
6022 When specified as above the bandwidth limits last for the duration of
6023 run of the rclone binary.
6024
6025 It is also possible to specify a "timetable" of limits, which will
6026 cause certain limits to be applied at certain times. To specify a
6027 timetable, format your entries as WEEKDAY-HH:MM,BANDWIDTH WEEK‐
6028 DAY-HH:MM,BANDWIDTH... where: WEEKDAY is optional element.
6029
6030 · BANDWIDTH can be a single number, e.g.100k or a pair of numbers for
6031 upload:download, e.g.10M:1M.
6032
6033 · WEEKDAY can be written as the whole word or only using the first 3
6034 characters. It is optional.
6035
6036 · HH:MM is an hour from 00:00 to 23:59.
6037
6038 An example of a typical timetable to avoid link saturation during day‐
6039 time working hours could be:
6040
6041 --bwlimit "08:00,512k 12:00,10M 13:00,512k 18:00,30M 23:00,off"
6042
6043 In this example, the transfer bandwidth will be set to 512kBytes/sec at
6044 8am every day. At noon, it will rise to 10Mbytes/s, and drop back to
6045 512kBytes/sec at 1pm. At 6pm, the bandwidth limit will be set to
6046 30MBytes/s, and at 11pm it will be completely disabled (full speed).
6047 Anything between 11pm and 8am will remain unlimited.
6048
6049 An example of timetable with WEEKDAY could be:
6050
6051 --bwlimit "Mon-00:00,512 Fri-23:59,10M Sat-10:00,1M Sun-20:00,off"
6052
6053 It means that, the transfer bandwidth will be set to 512kBytes/sec on
6054 Monday. It will rise to 10Mbytes/s before the end of Friday. At 10:00
6055 on Saturday it will be set to 1Mbyte/s. From 20:00 on Sunday it will
6056 be unlimited.
6057
6058 Timeslots without WEEKDAY are extended to the whole week. So this ex‐
6059 ample:
6060
6061 --bwlimit "Mon-00:00,512 12:00,1M Sun-20:00,off"
6062
6063 Is equivalent to this:
6064
6065 --bwlimit "Mon-00:00,512Mon-12:00,1M Tue-12:00,1M Wed-12:00,1M
6066 Thu-12:00,1M Fri-12:00,1M Sat-12:00,1M Sun-12:00,1M Sun-20:00,off"
6067
6068 Bandwidth limit apply to the data transfer for all backends. For most
6069 backends the directory listing bandwidth is also included (exceptions
6070 being the non HTTP backends, ftp, sftp and tardigrade).
6071
6072 Note that the units are Bytes/s, not Bits/s. Typically connections are
6073 measured in Bits/s - to convert divide by 8. For example, let's say
6074 you have a 10 Mbit/s connection and you wish rclone to use half of it -
6075 5 Mbit/s. This is 5/8 = 0.625MByte/s so you would use a --bwlimit
6076 0.625M parameter for rclone.
6077
6078 On Unix systems (Linux, macOS, ...) the bandwidth limiter can be tog‐
6079 gled by sending a SIGUSR2 signal to rclone. This allows to remove the
6080 limitations of a long running rclone transfer and to restore it back to
6081 the value specified with --bwlimit quickly when needed. Assuming there
6082 is only one rclone instance running, you can toggle the limiter like
6083 this:
6084
6085 kill -SIGUSR2 $(pidof rclone)
6086
6087 If you configure rclone with a remote control (/rc) then you can use
6088 change the bwlimit dynamically:
6089
6090 rclone rc core/bwlimit rate=1M
6091
6092 --bwlimit-file=BANDWIDTH_SPEC
6093 This option controls per file bandwidth limit. For the options see the
6094 --bwlimit flag.
6095
6096 For example use this to allow no transfers to be faster than 1MByte/s
6097
6098 --bwlimit-file 1M
6099
6100 This can be used in conjunction with --bwlimit.
6101
6102 Note that if a schedule is provided the file will use the schedule in
6103 effect at the start of the transfer.
6104
6105 --buffer-size=SIZE
6106 Use this sized buffer to speed up file transfers. Each --transfer will
6107 use this much memory for buffering.
6108
6109 When using mount or cmount each open file descriptor will use this much
6110 memory for buffering. See the mount (https://rclone.org/com‐
6111 mands/rclone_mount/#file-buffering) documentation for more details.
6112
6113 Set to 0 to disable the buffering for the minimum memory usage.
6114
6115 Note that the memory allocation of the buffers is influenced by the
6116 --use-mmap flag.
6117
6118 --check-first
6119 If this flag is set then in a sync, copy or move, rclone will do all
6120 the checks to see whether files need to be transferred before doing any
6121 of the transfers. Normally rclone would start running transfers as
6122 soon as possible.
6123
6124 This flag can be useful on IO limited systems where transfers interfere
6125 with checking.
6126
6127 It can also be useful to ensure perfect ordering when using --order-by.
6128
6129 Using this flag can use more memory as it effectively sets --max-back‐
6130 log to infinite. This means that all the info on the objects to trans‐
6131 fer is held in memory before the transfers start.
6132
6133 --checkers=N
6134 The number of checkers to run in parallel. Checkers do the equality
6135 checking of files during a sync. For some storage systems (e.g. S3,
6136 Swift, Dropbox) this can take a significant amount of time so they are
6137 run in parallel.
6138
6139 The default is to run 8 checkers in parallel.
6140
6141 -c, --checksum
6142 Normally rclone will look at modification time and size of files to see
6143 if they are equal. If you set this flag then rclone will check the
6144 file hash and size to determine if files are equal.
6145
6146 This is useful when the remote doesn't support setting modified time
6147 and a more accurate sync is desired than just checking the file size.
6148
6149 This is very useful when transferring between remotes which store the
6150 same hash type on the object, e.g. Drive and Swift. For details of
6151 which remotes support which hash type see the table in the overview
6152 section (https://rclone.org/overview/).
6153
6154 Eg rclone --checksum sync s3:/bucket swift:/bucket would run much
6155 quicker than without the --checksum flag.
6156
6157 When using this flag, rclone won't update mtimes of remote files if
6158 they are incorrect as it would normally.
6159
6160 --compare-dest=DIR
6161 When using sync, copy or move DIR is checked in addition to the desti‐
6162 nation for files. If a file identical to the source is found that file
6163 is NOT copied from source. This is useful to copy just files that have
6164 changed since the last backup.
6165
6166 You must use the same remote as the destination of the sync. The com‐
6167 pare directory must not overlap the destination directory.
6168
6169 See --copy-dest and --backup-dir.
6170
6171 --config=CONFIG_FILE
6172 Specify the location of the rclone config file.
6173
6174 Normally the config file is in your home directory as a file called
6175 .config/rclone/rclone.conf (or .rclone.conf if created with an older
6176 version). If $XDG_CONFIG_HOME is set it will be at $XDG_CON‐
6177 FIG_HOME/rclone/rclone.conf.
6178
6179 If there is a file rclone.conf in the same directory as the rclone exe‐
6180 cutable it will be preferred. This file must be created manually for
6181 Rclone to use it, it will never be created automatically.
6182
6183 If you run rclone config file you will see where the default location
6184 is for you.
6185
6186 Use this flag to override the config location, e.g. rclone --con‐
6187 fig=".myconfig" .config.
6188
6189 --contimeout=TIME
6190 Set the connection timeout. This should be in go time format which
6191 looks like 5s for 5 seconds, 10m for 10 minutes, or 3h30m.
6192
6193 The connection timeout is the amount of time rclone will wait for a
6194 connection to go through to a remote object storage system. It is 1m
6195 by default.
6196
6197 --copy-dest=DIR
6198 When using sync, copy or move DIR is checked in addition to the desti‐
6199 nation for files. If a file identical to the source is found that file
6200 is server-side copied from DIR to the destination. This is useful for
6201 incremental backup.
6202
6203 The remote in use must support server-side copy and you must use the
6204 same remote as the destination of the sync. The compare directory must
6205 not overlap the destination directory.
6206
6207 See --compare-dest and --backup-dir.
6208
6209 --dedupe-mode MODE
6210 Mode to run dedupe command in. One of interactive, skip, first, new‐
6211 est, oldest, rename. The default is interactive. See the dedupe com‐
6212 mand for more information as to what these options mean.
6213
6214 --disable FEATURE,FEATURE,...
6215 This disables a comma separated list of optional features. For example
6216 to disable server-side move and server-side copy use:
6217
6218 --disable move,copy
6219
6220 The features can be put in any case.
6221
6222 To see a list of which features can be disabled use:
6223
6224 --disable help
6225
6226 See the overview features (https://rclone.org/overview/#features) and
6227 optional features (https://rclone.org/overview/#optional-features) to
6228 get an idea of which feature does what.
6229
6230 This flag can be useful for debugging and in exceptional circumstances
6231 (e.g. Google Drive limiting the total volume of Server Side Copies to
6232 100GB/day).
6233
6234 -n, --dry-run
6235 Do a trial run with no permanent changes. Use this to see what rclone
6236 would do without actually doing it. Useful when setting up the sync
6237 command which deletes files in the destination.
6238
6239 --expect-continue-timeout=TIME
6240 This specifies the amount of time to wait for a server's first response
6241 headers after fully writing the request headers if the request has an
6242 "Expect: 100-continue" header. Not all backends support using this.
6243
6244 Zero means no timeout and causes the body to be sent immediately, with‐
6245 out waiting for the server to approve. This time does not include the
6246 time to send the request header.
6247
6248 The default is 1s. Set to 0 to disable.
6249
6250 --error-on-no-transfer
6251 By default, rclone will exit with return code 0 if there were no er‐
6252 rors.
6253
6254 This option allows rclone to return exit code 9 if no files were trans‐
6255 ferred between the source and destination. This allows using rclone in
6256 scripts, and triggering follow-on actions if data was copied, or skip‐
6257 ping if not.
6258
6259 NB: Enabling this option turns a usually non-fatal error into a poten‐
6260 tially fatal one - please check and adjust your scripts accordingly!
6261
6262 --header
6263 Add an HTTP header for all transactions. The flag can be repeated to
6264 add multiple headers.
6265
6266 If you want to add headers only for uploads use --header-upload and if
6267 you want to add headers only for downloads use --header-download.
6268
6269 This flag is supported for all HTTP based backends even those not sup‐
6270 ported by --header-upload and --header-download so may be used as a
6271 workaround for those with care.
6272
6273 rclone ls remote:test --header "X-Rclone: Foo" --header "X-LetMeIn: Yes"
6274
6275 --header-download
6276 Add an HTTP header for all download transactions. The flag can be re‐
6277 peated to add multiple headers.
6278
6279 rclone sync -i s3:test/src ~/dst --header-download "X-Amz-Meta-Test: Foo" --header-download "X-Amz-Meta-Test2: Bar"
6280
6281 See the GitHub issue here (https://github.com/rclone/rclone/issues/59)
6282 for currently supported backends.
6283
6284 --header-upload
6285 Add an HTTP header for all upload transactions. The flag can be re‐
6286 peated to add multiple headers.
6287
6288 rclone sync -i ~/src s3:test/dst --header-upload "Content-Disposition: attachment; filename='cool.html'" --header-upload "X-Amz-Meta-Test: FooBar"
6289
6290 See the GitHub issue here (https://github.com/rclone/rclone/issues/59)
6291 for currently supported backends.
6292
6293 --ignore-case-sync
6294 Using this option will cause rclone to ignore the case of the files
6295 when synchronizing so files will not be copied/synced when the existing
6296 filenames are the same, even if the casing is different.
6297
6298 --ignore-checksum
6299 Normally rclone will check that the checksums of transferred files
6300 match, and give an error "corrupted on transfer" if they don't.
6301
6302 You can use this option to skip that check. You should only use it if
6303 you have had the "corrupted on transfer" error message and you are sure
6304 you might want to transfer potentially corrupted data.
6305
6306 --ignore-existing
6307 Using this option will make rclone unconditionally skip all files that
6308 exist on the destination, no matter the content of these files.
6309
6310 While this isn't a generally recommended option, it can be useful in
6311 cases where your files change due to encryption. However, it cannot
6312 correct partial transfers in case a transfer was interrupted.
6313
6314 --ignore-size
6315 Normally rclone will look at modification time and size of files to see
6316 if they are equal. If you set this flag then rclone will check only
6317 the modification time. If --checksum is set then it only checks the
6318 checksum.
6319
6320 It will also cause rclone to skip verifying the sizes are the same af‐
6321 ter transfer.
6322
6323 This can be useful for transferring files to and from OneDrive which
6324 occasionally misreports the size of image files (see #399
6325 (https://github.com/rclone/rclone/issues/399) for more info).
6326
6327 -I, --ignore-times
6328 Using this option will cause rclone to unconditionally upload all files
6329 regardless of the state of files on the destination.
6330
6331 Normally rclone would skip any files that have the same modification
6332 time and are the same size (or have the same checksum if using --check‐
6333 sum).
6334
6335 --immutable
6336 Treat source and destination files as immutable and disallow modifica‐
6337 tion.
6338
6339 With this option set, files will be created and deleted as requested,
6340 but existing files will never be updated. If an existing file does not
6341 match between the source and destination, rclone will give the error
6342 Source and destination exist but do not match: immutable file modified.
6343
6344 Note that only commands which transfer files (e.g. sync, copy, move)
6345 are affected by this behavior, and only modification is disallowed.
6346 Files may still be deleted explicitly (e.g. delete, purge) or implic‐
6347 itly (e.g. sync, move). Use copy --immutable if it is desired to
6348 avoid deletion as well as modification.
6349
6350 This can be useful as an additional layer of protection for immutable
6351 or append-only data sets (notably backup archives), where modification
6352 implies corruption and should not be propagated.
6353
6354 -i / --interactive
6355 This flag can be used to tell rclone that you wish a manual confirma‐
6356 tion before destructive operations.
6357
6358 It is recommended that you use this flag while learning rclone espe‐
6359 cially with rclone sync.
6360
6361 For example
6362
6363 $ rclone delete -i /tmp/dir
6364 rclone: delete "important-file.txt"?
6365 y) Yes, this is OK (default)
6366 n) No, skip this
6367 s) Skip all delete operations with no more questions
6368 !) Do all delete operations with no more questions
6369 q) Exit rclone now.
6370 y/n/s/!/q> n
6371
6372 The options mean
6373
6374 · y: Yes, this operation should go ahead. You can also press Return
6375 for this to happen. You'll be asked every time unless you choose s
6376 or !.
6377
6378 · n: No, do not do this operation. You'll be asked every time unless
6379 you choose s or !.
6380
6381 · s: Skip all the following operations of this type with no more ques‐
6382 tions. This takes effect until rclone exits. If there are any dif‐
6383 ferent kind of operations you'll be prompted for them.
6384
6385 · !: Do all the following operations with no more questions. Useful if
6386 you've decided that you don't mind rclone doing that kind of opera‐
6387 tion. This takes effect until rclone exits . If there are any dif‐
6388 ferent kind of operations you'll be prompted for them.
6389
6390 · q: Quit rclone now, just in case!
6391
6392 --leave-root
6393 During rmdirs it will not remove root directory, even if it's empty.
6394
6395 --log-file=FILE
6396 Log all of rclone's output to FILE. This is not active by default.
6397 This can be useful for tracking down problems with syncs in combination
6398 with the -v flag. See the Logging section for more info.
6399
6400 If FILE exists then rclone will append to it.
6401
6402 Note that if you are using the logrotate program to manage rclone's
6403 logs, then you should use the copytruncate option as rclone doesn't
6404 have a signal to rotate logs.
6405
6406 --log-format LIST
6407 Comma separated list of log format options. date, time, microseconds,
6408 longfile, shortfile, UTC. The default is "date,time".
6409
6410 --log-level LEVEL
6411 This sets the log level for rclone. The default log level is NOTICE.
6412
6413 DEBUG is equivalent to -vv. It outputs lots of debug info - useful for
6414 bug reports and really finding out what rclone is doing.
6415
6416 INFO is equivalent to -v. It outputs information about each transfer
6417 and prints stats once a minute by default.
6418
6419 NOTICE is the default log level if no logging flags are supplied. It
6420 outputs very little when things are working normally. It outputs warn‐
6421 ings and significant events.
6422
6423 ERROR is equivalent to -q. It only outputs error messages.
6424
6425 --use-json-log
6426 This switches the log format to JSON for rclone. The fields of json
6427 log are level, msg, source, time.
6428
6429 --low-level-retries NUMBER
6430 This controls the number of low level retries rclone does.
6431
6432 A low level retry is used to retry a failing operation - typically one
6433 HTTP request. This might be uploading a chunk of a big file for exam‐
6434 ple. You will see low level retries in the log with the -v flag.
6435
6436 This shouldn't need to be changed from the default in normal opera‐
6437 tions. However, if you get a lot of low level retries you may wish to
6438 reduce the value so rclone moves on to a high level retry (see the
6439 --retries flag) quicker.
6440
6441 Disable low level retries with --low-level-retries 1.
6442
6443 --max-backlog=N
6444 This is the maximum allowable backlog of files in a sync/copy/move
6445 queued for being checked or transferred.
6446
6447 This can be set arbitrarily large. It will only use memory when the
6448 queue is in use. Note that it will use in the order of N kB of memory
6449 when the backlog is in use.
6450
6451 Setting this large allows rclone to calculate how many files are pend‐
6452 ing more accurately, give a more accurate estimated finish time and
6453 make --order-by work more accurately.
6454
6455 Setting this small will make rclone more synchronous to the listings of
6456 the remote which may be desirable.
6457
6458 Setting this to a negative number will make the backlog as large as
6459 possible.
6460
6461 --max-delete=N
6462 This tells rclone not to delete more than N files. If that limit is
6463 exceeded then a fatal error will be generated and rclone will stop the
6464 operation in progress.
6465
6466 --max-depth=N
6467 This modifies the recursion depth for all the commands except purge.
6468
6469 So if you do rclone --max-depth 1 ls remote:path you will see only the
6470 files in the top level directory. Using --max-depth 2 means you will
6471 see all the files in first two directory levels and so on.
6472
6473 For historical reasons the lsd command defaults to using a --max-depth
6474 of 1 - you can override this with the command line flag.
6475
6476 You can use this command to disable recursion (with --max-depth 1).
6477
6478 Note that if you use this with sync and --delete-excluded the files not
6479 recursed through are considered excluded and will be deleted on the
6480 destination. Test first with --dry-run if you are not sure what will
6481 happen.
6482
6483 --max-duration=TIME
6484 Rclone will stop scheduling new transfers when it has run for the dura‐
6485 tion specified.
6486
6487 Defaults to off.
6488
6489 When the limit is reached any existing transfers will complete.
6490
6491 Rclone won't exit with an error if the transfer limit is reached.
6492
6493 --max-transfer=SIZE
6494 Rclone will stop transferring when it has reached the size specified.
6495 Defaults to off.
6496
6497 When the limit is reached all transfers will stop immediately.
6498
6499 Rclone will exit with exit code 8 if the transfer limit is reached.
6500
6501 --cutoff-mode=hard|soft|cautious
6502 This modifies the behavior of --max-transfer Defaults to --cut‐
6503 off-mode=hard.
6504
6505 Specifying --cutoff-mode=hard will stop transferring immediately when
6506 Rclone reaches the limit.
6507
6508 Specifying --cutoff-mode=soft will stop starting new transfers when
6509 Rclone reaches the limit.
6510
6511 Specifying --cutoff-mode=cautious will try to prevent Rclone from
6512 reaching the limit.
6513
6514 --modify-window=TIME
6515 When checking whether a file has been modified, this is the maximum al‐
6516 lowed time difference that a file can have and still be considered
6517 equivalent.
6518
6519 The default is 1ns unless this is overridden by a remote. For example
6520 OS X only stores modification times to the nearest second so if you are
6521 reading and writing to an OS X filing system this will be 1s by de‐
6522 fault.
6523
6524 This command line flag allows you to override that computed default.
6525
6526 --multi-thread-cutoff=SIZE
6527 When downloading files to the local backend above this size, rclone
6528 will use multiple threads to download the file (default 250M).
6529
6530 Rclone preallocates the file (using fallocate(FALLOC_FL_KEEP_SIZE) on
6531 unix or NTSetInformationFile on Windows both of which takes no time)
6532 then each thread writes directly into the file at the correct place.
6533 This means that rclone won't create fragmented or sparse files and
6534 there won't be any assembly time at the end of the transfer.
6535
6536 The number of threads used to download is controlled by --mul‐
6537 ti-thread-streams.
6538
6539 Use -vv if you wish to see info about the threads.
6540
6541 This will work with the sync/copy/move commands and friends copy‐
6542 to/moveto. Multi thread downloads will be used with rclone mount and
6543 rclone serve if --vfs-cache-mode is set to writes or above.
6544
6545 NB that this only works for a local destination but will work with any
6546 source.
6547
6548 NB that multi thread copies are disabled for local to local copies as
6549 they are faster without unless --multi-thread-streams is set explicit‐
6550 ly.
6551
6552 NB on Windows using multi-thread downloads will cause the resulting
6553 files to be sparse (https://en.wikipedia.org/wiki/Sparse_file). Use
6554 --local-no-sparse to disable sparse files (which may cause long delays
6555 at the start of downloads) or disable multi-thread downloads with
6556 --multi-thread-streams 0
6557
6558 --multi-thread-streams=N
6559 When using multi thread downloads (see above --multi-thread-cutoff)
6560 this sets the maximum number of streams to use. Set to 0 to disable
6561 multi thread downloads (Default 4).
6562
6563 Exactly how many streams rclone uses for the download depends on the
6564 size of the file. To calculate the number of download streams Rclone
6565 divides the size of the file by the --multi-thread-cutoff and rounds
6566 up, up to the maximum set with --multi-thread-streams.
6567
6568 So if --multi-thread-cutoff 250MB and --multi-thread-streams 4 are in
6569 effect (the defaults):
6570
6571 · 0MB..250MB files will be downloaded with 1 stream
6572
6573 · 250MB..500MB files will be downloaded with 2 streams
6574
6575 · 500MB..750MB files will be downloaded with 3 streams
6576
6577 · 750MB+ files will be downloaded with 4 streams
6578
6579 --no-check-dest
6580 The --no-check-dest can be used with move or copy and it causes rclone
6581 not to check the destination at all when copying files.
6582
6583 This means that:
6584
6585 · the destination is not listed minimising the API calls
6586
6587 · files are always transferred
6588
6589 · this can cause duplicates on remotes which allow it (e.g. Google
6590 Drive)
6591
6592 · --retries 1 is recommended otherwise you'll transfer everything again
6593 on a retry
6594
6595 This flag is useful to minimise the transactions if you know that none
6596 of the files are on the destination.
6597
6598 This is a specialized flag which should be ignored by most users!
6599
6600 --no-gzip-encoding
6601 Don't set Accept-Encoding: gzip. This means that rclone won't ask the
6602 server for compressed files automatically. Useful if you've set the
6603 server to return files with Content-Encoding: gzip but you uploaded
6604 compressed files.
6605
6606 There is no need to set this in normal operation, and doing so will de‐
6607 crease the network transfer efficiency of rclone.
6608
6609 --no-traverse
6610 The --no-traverse flag controls whether the destination file system is
6611 traversed when using the copy or move commands. --no-traverse is not
6612 compatible with sync and will be ignored if you supply it with sync.
6613
6614 If you are only copying a small number of files (or are filtering most
6615 of the files) and/or have a large number of files on the destination
6616 then --no-traverse will stop rclone listing the destination and save
6617 time.
6618
6619 However, if you are copying a large number of files, especially if you
6620 are doing a copy where lots of the files under consideration haven't
6621 changed and won't need copying then you shouldn't use --no-traverse.
6622
6623 See rclone copy (https://rclone.org/commands/rclone_copy/) for an exam‐
6624 ple of how to use it.
6625
6626 --no-unicode-normalization
6627 Don't normalize unicode characters in filenames during the sync rou‐
6628 tine.
6629
6630 Sometimes, an operating system will store filenames containing unicode
6631 parts in their decomposed form (particularly macOS). Some cloud stor‐
6632 age systems will then recompose the unicode, resulting in duplicate
6633 files if the data is ever copied back to a local filesystem.
6634
6635 Using this flag will disable that functionality, treating each unicode
6636 character as unique. For example, by default é and é will be normal‐
6637 ized into the same character. With --no-unicode-normalization they
6638 will be treated as unique characters.
6639
6640 --no-update-modtime
6641 When using this flag, rclone won't update modification times of remote
6642 files if they are incorrect as it would normally.
6643
6644 This can be used if the remote is being synced with another tool also
6645 (e.g. the Google Drive client).
6646
6647 --order-by string
6648 The --order-by flag controls the order in which files in the backlog
6649 are processed in rclone sync, rclone copy and rclone move.
6650
6651 The order by string is constructed like this. The first part describes
6652 what aspect is being measured:
6653
6654 · size - order by the size of the files
6655
6656 · name - order by the full path of the files
6657
6658 · modtime - order by the modification date of the files
6659
6660 This can have a modifier appended with a comma:
6661
6662 · ascending or asc - order so that the smallest (or oldest) is pro‐
6663 cessed first
6664
6665 · descending or desc - order so that the largest (or newest) is pro‐
6666 cessed first
6667
6668 · mixed - order so that the smallest is processed first for some
6669 threads and the largest for others
6670
6671 If the modifier is mixed then it can have an optional percentage (which
6672 defaults to 50), e.g. size,mixed,25 which means that 25% of the
6673 threads should be taking the smallest items and 75% the largest. The
6674 threads which take the smallest first will always take the smallest
6675 first and likewise the largest first threads. The mixed mode can be
6676 useful to minimise the transfer time when you are transferring a mix‐
6677 ture of large and small files - the large files are guaranteed upload
6678 threads and bandwidth and the small files will be processed continuous‐
6679 ly.
6680
6681 If no modifier is supplied then the order is ascending.
6682
6683 For example
6684
6685 · --order-by size,desc - send the largest files first
6686
6687 · --order-by modtime,ascending - send the oldest files first
6688
6689 · --order-by name - send the files with alphabetically by path first
6690
6691 If the --order-by flag is not supplied or it is supplied with an empty
6692 string then the default ordering will be used which is as scanned.
6693 With --checkers 1 this is mostly alphabetical, however with the default
6694 --checkers 8 it is somewhat random.
6695
6696 Limitations
6697 The --order-by flag does not do a separate pass over the data. This
6698 means that it may transfer some files out of the order specified if
6699
6700 · there are no files in the backlog or the source has not been fully
6701 scanned yet
6702
6703 · there are more than --max-backlog files in the backlog
6704
6705 Rclone will do its best to transfer the best file it has so in practice
6706 this should not cause a problem. Think of --order-by as being more of
6707 a best efforts flag rather than a perfect ordering.
6708
6709 If you want perfect ordering then you will need to specify
6710 --check-first which will find all the files which need transferring
6711 first before transferring any.
6712
6713 --password-command SpaceSepList
6714 This flag supplies a program which should supply the config password
6715 when run. This is an alternative to rclone prompting for the password
6716 or setting the RCLONE_CONFIG_PASS variable.
6717
6718 The argument to this should be a command with a space separated list of
6719 arguments. If one of the arguments has a space in then enclose it in
6720 ", if you want a literal " in an argument then enclose the argument in
6721 " and double the ". See CSV encoding (https://godoc.org/encoding/csv)
6722 for more info.
6723
6724 Eg
6725
6726 --password-command echo hello
6727 --password-command echo "hello with space"
6728 --password-command echo "hello with ""quotes"" and space"
6729
6730 See the Configuration Encryption for more info.
6731
6732 See a Windows PowerShell example on the Wiki
6733 (https://github.com/rclone/rclone/wiki/Windows-Powershell-use-rclone-
6734 password-command-for-Config-file-password).
6735
6736 -P, --progress
6737 This flag makes rclone update the stats in a static block in the termi‐
6738 nal providing a realtime overview of the transfer.
6739
6740 Any log messages will scroll above the static block. Log messages will
6741 push the static block down to the bottom of the terminal where it will
6742 stay.
6743
6744 Normally this is updated every 500mS but this period can be overridden
6745 with the --stats flag.
6746
6747 This can be used with the --stats-one-line flag for a simpler display.
6748
6749 Note: On Windows until this bug (https://github.com/Azure/go-an‐
6750 siterm/issues/26) is fixed all non-ASCII characters will be replaced
6751 with . when --progress is in use.
6752
6753 --progress-terminal-title
6754 This flag, when used with -P/--progress, will print the string ETA: %s
6755 to the terminal title.
6756
6757 -q, --quiet
6758 This flag will limit rclone's output to error messages only.
6759
6760 --refresh-times
6761 The --refresh-times flag can be used to update modification times of
6762 existing files when they are out of sync on backends which don't sup‐
6763 port hashes.
6764
6765 This is useful if you uploaded files with the incorrect timestamps and
6766 you now wish to correct them.
6767
6768 This flag is only useful for destinations which don't support hashes
6769 (e.g. crypt).
6770
6771 This can be used any of the sync commands sync, copy or move.
6772
6773 To use this flag you will need to be doing a modification time sync (so
6774 not using --size-only or --checksum). The flag will have no effect
6775 when using --size-only or --checksum.
6776
6777 If this flag is used when rclone comes to upload a file it will check
6778 to see if there is an existing file on the destination. If this file
6779 matches the source with size (and checksum if available) but has a dif‐
6780 fering timestamp then instead of re-uploading it, rclone will update
6781 the timestamp on the destination file. If the checksum does not match
6782 rclone will upload the new file. If the checksum is absent (e.g. on a
6783 crypt backend) then rclone will update the timestamp.
6784
6785 Note that some remotes can't set the modification time without re-up‐
6786 loading the file so this flag is less useful on them.
6787
6788 Normally if you are doing a modification time sync rclone will update
6789 modification times without --refresh-times provided that the remote
6790 supports checksums and the checksums match on the file. However if the
6791 checksums are absent then rclone will upload the file rather than set‐
6792 ting the timestamp as this is the safe behaviour.
6793
6794 --retries int
6795 Retry the entire sync if it fails this many times it fails (default 3).
6796
6797 Some remotes can be unreliable and a few retries help pick up the files
6798 which didn't get transferred because of errors.
6799
6800 Disable retries with --retries 1.
6801
6802 --retries-sleep=TIME
6803 This sets the interval between each retry specified by --retries
6804
6805 The default is 0. Use 0 to disable.
6806
6807 --size-only
6808 Normally rclone will look at modification time and size of files to see
6809 if they are equal. If you set this flag then rclone will check only
6810 the size.
6811
6812 This can be useful transferring files from Dropbox which have been mod‐
6813 ified by the desktop sync client which doesn't set checksums of modifi‐
6814 cation times in the same way as rclone.
6815
6816 --stats=TIME
6817 Commands which transfer data (sync, copy, copyto, move, moveto) will
6818 print data transfer stats at regular intervals to show their progress.
6819
6820 This sets the interval.
6821
6822 The default is 1m. Use 0 to disable.
6823
6824 If you set the stats interval then all commands can show stats. This
6825 can be useful when running other commands, check or mount for example.
6826
6827 Stats are logged at INFO level by default which means they won't show
6828 at default log level NOTICE. Use --stats-log-level NOTICE or -v to
6829 make them show. See the Logging section for more info on log levels.
6830
6831 Note that on macOS you can send a SIGINFO (which is normally ctrl-T in
6832 the terminal) to make the stats print immediately.
6833
6834 --stats-file-name-length integer
6835 By default, the --stats output will truncate file names and paths
6836 longer than 40 characters. This is equivalent to providing
6837 --stats-file-name-length 40. Use --stats-file-name-length 0 to disable
6838 any truncation of file names printed by stats.
6839
6840 --stats-log-level string
6841 Log level to show --stats output at. This can be DEBUG, INFO, NOTICE,
6842 or ERROR. The default is INFO. This means at the default level of
6843 logging which is NOTICE the stats won't show - if you want them to then
6844 use --stats-log-level NOTICE. See the Logging section for more info on
6845 log levels.
6846
6847 --stats-one-line
6848 When this is specified, rclone condenses the stats into a single line
6849 showing the most important stats only.
6850
6851 --stats-one-line-date
6852 When this is specified, rclone enables the single-line stats and
6853 prepends the display with a date string. The default is 2006/01/02
6854 15:04:05 -
6855
6856 --stats-one-line-date-format
6857 When this is specified, rclone enables the single-line stats and
6858 prepends the display with a user-supplied date string. The date string
6859 MUST be enclosed in quotes. Follow golang specs
6860 (https://golang.org/pkg/time/#Time.Format) for date formatting syntax.
6861
6862 --stats-unit=bits|bytes
6863 By default, data transfer rates will be printed in bytes/second.
6864
6865 This option allows the data rate to be printed in bits/second.
6866
6867 Data transfer volume will still be reported in bytes.
6868
6869 The rate is reported as a binary unit, not SI unit. So 1 Mbit/s equals
6870 1,048,576 bits/s and not 1,000,000 bits/s.
6871
6872 The default is bytes.
6873
6874 --suffix=SUFFIX
6875 When using sync, copy or move any files which would have been overwrit‐
6876 ten or deleted will have the suffix added to them. If there is a file
6877 with the same path (after the suffix has been added), then it will be
6878 overwritten.
6879
6880 The remote in use must support server-side move or copy and you must
6881 use the same remote as the destination of the sync.
6882
6883 This is for use with files to add the suffix in the current directory
6884 or with --backup-dir. See --backup-dir for more info.
6885
6886 For example
6887
6888 rclone copy -i /path/to/local/file remote:current --suffix .bak
6889
6890 will copy /path/to/local to remote:current, but for any files which
6891 would have been updated or deleted have .bak added.
6892
6893 If using rclone sync with --suffix and without --backup-dir then it is
6894 recommended to put a filter rule in excluding the suffix otherwise the
6895 sync will delete the backup files.
6896
6897 rclone sync -i /path/to/local/file remote:current --suffix .bak --exclude "*.bak"
6898
6899 --suffix-keep-extension
6900 When using --suffix, setting this causes rclone put the SUFFIX before
6901 the extension of the files that it backs up rather than after.
6902
6903 So let's say we had --suffix -2019-01-01, without the flag file.txt
6904 would be backed up to file.txt-2019-01-01 and with the flag it would be
6905 backed up to file-2019-01-01.txt. This can be helpful to make sure the
6906 suffixed files can still be opened.
6907
6908 --syslog
6909 On capable OSes (not Windows or Plan9) send all log output to syslog.
6910
6911 This can be useful for running rclone in a script or rclone mount.
6912
6913 --syslog-facility string
6914 If using --syslog this sets the syslog facility (e.g. KERN, USER).
6915 See man syslog for a list of possible facilities. The default facility
6916 is DAEMON.
6917
6918 --tpslimit float
6919 Limit transactions per second to this number. Default is 0 which is
6920 used to mean unlimited transactions per second.
6921
6922 A transaction is roughly defined as an API call; its exact meaning will
6923 depend on the backend. For HTTP based backends it is an HTTP
6924 PUT/GET/POST/etc and its response. For FTP/SFTP it is a round trip
6925 transaction over TCP.
6926
6927 For example to limit rclone to 10 transactions per second use --tpslim‐
6928 it 10, or to 1 transaction every 2 seconds use --tpslimit 0.5.
6929
6930 Use this when the number of transactions per second from rclone is
6931 causing a problem with the cloud storage provider (e.g. getting you
6932 banned or rate limited).
6933
6934 This can be very useful for rclone mount to control the behaviour of
6935 applications using it.
6936
6937 This limit applies to all HTTP based backends and to the FTP and SFTP
6938 backends. It does not apply to the local backend or the Tardigrade
6939 backend.
6940
6941 See also --tpslimit-burst.
6942
6943 --tpslimit-burst int
6944 Max burst of transactions for --tpslimit (default 1).
6945
6946 Normally --tpslimit will do exactly the number of transaction per sec‐
6947 ond specified. However if you supply --tps-burst then rclone can save
6948 up some transactions from when it was idle giving a burst of up to the
6949 parameter supplied.
6950
6951 For example if you provide --tpslimit-burst 10 then if rclone has been
6952 idle for more than 10*--tpslimit then it can do 10 transactions very
6953 quickly before they are limited again.
6954
6955 This may be used to increase performance of --tpslimit without changing
6956 the long term average number of transactions per second.
6957
6958 --track-renames
6959 By default, rclone doesn't keep track of renamed files, so if you re‐
6960 name a file locally then sync it to a remote, rclone will delete the
6961 old file on the remote and upload a new copy.
6962
6963 If you use this flag, and the remote supports server-side copy or serv‐
6964 er-side move, and the source and destination have a compatible hash,
6965 then this will track renames during sync operations and perform renam‐
6966 ing server-side.
6967
6968 Files will be matched by size and hash - if both match then a rename
6969 will be considered.
6970
6971 If the destination does not support server-side copy or move, rclone
6972 will fall back to the default behaviour and log an error level message
6973 to the console.
6974
6975 Encrypted destinations are not currently supported by --track-renames
6976 if --track-renames-strategy includes hash.
6977
6978 Note that --track-renames is incompatible with --no-traverse and that
6979 it uses extra memory to keep track of all the rename candidates.
6980
6981 Note also that --track-renames is incompatible with --delete-before and
6982 will select --delete-after instead of --delete-during.
6983
6984 --track-renames-strategy (hash,modtime,leaf,size)
6985 This option changes the matching criteria for --track-renames.
6986
6987 The matching is controlled by a comma separated selection of these to‐
6988 kens:
6989
6990 · modtime - the modification time of the file - not supported on all
6991 backends
6992
6993 · hash - the hash of the file contents - not supported on all backends
6994
6995 · leaf - the name of the file not including its directory name
6996
6997 · size - the size of the file (this is always enabled)
6998
6999 So using --track-renames-strategy modtime,leaf would match files based
7000 on modification time, the leaf of the file name and the size only.
7001
7002 Using --track-renames-strategy modtime or leaf can enable --track-re‐
7003 names support for encrypted destinations.
7004
7005 If nothing is specified, the default option is matching by hashes.
7006
7007 Note that the hash strategy is not supported with encrypted destina‐
7008 tions.
7009
7010 --delete-(before,during,after)
7011 This option allows you to specify when files on your destination are
7012 deleted when you sync folders.
7013
7014 Specifying the value --delete-before will delete all files present on
7015 the destination, but not on the source before starting the transfer of
7016 any new or updated files. This uses two passes through the file sys‐
7017 tems, one for the deletions and one for the copies.
7018
7019 Specifying --delete-during will delete files while checking and upload‐
7020 ing files. This is the fastest option and uses the least memory.
7021
7022 Specifying --delete-after (the default value) will delay deletion of
7023 files until all new/updated files have been successfully transferred.
7024 The files to be deleted are collected in the copy pass then deleted af‐
7025 ter the copy pass has completed successfully. The files to be deleted
7026 are held in memory so this mode may use more memory. This is the
7027 safest mode as it will only delete files if there have been no errors
7028 subsequent to that. If there have been errors before the deletions
7029 start then you will get the message not deleting files as there were IO
7030 errors.
7031
7032 --fast-list
7033 When doing anything which involves a directory listing (e.g. sync,
7034 copy, ls - in fact nearly every command), rclone normally lists a di‐
7035 rectory and processes it before using more directory lists to process
7036 any subdirectories. This can be parallelised and works very quickly
7037 using the least amount of memory.
7038
7039 However, some remotes have a way of listing all files beneath a direc‐
7040 tory in one (or a small number) of transactions. These tend to be the
7041 bucket based remotes (e.g. S3, B2, GCS, Swift, Hubic).
7042
7043 If you use the --fast-list flag then rclone will use this method for
7044 listing directories. This will have the following consequences for the
7045 listing:
7046
7047 · It will use fewer transactions (important if you pay for them)
7048
7049 · It will use more memory. Rclone has to load the whole listing into
7050 memory.
7051
7052 · It may be faster because it uses fewer transactions
7053
7054 · It may be slower because it can't be parallelized
7055
7056 rclone should always give identical results with and without
7057 --fast-list.
7058
7059 If you pay for transactions and can fit your entire sync listing into
7060 memory then --fast-list is recommended. If you have a very big sync to
7061 do then don't use --fast-list otherwise you will run out of memory.
7062
7063 If you use --fast-list on a remote which doesn't support it, then
7064 rclone will just ignore it.
7065
7066 --timeout=TIME
7067 This sets the IO idle timeout. If a transfer has started but then be‐
7068 comes idle for this long it is considered broken and disconnected.
7069
7070 The default is 5m. Set to 0 to disable.
7071
7072 --transfers=N
7073 The number of file transfers to run in parallel. It can sometimes be
7074 useful to set this to a smaller number if the remote is giving a lot of
7075 timeouts or bigger if you have lots of bandwidth and a fast remote.
7076
7077 The default is to run 4 file transfers in parallel.
7078
7079 -u, --update
7080 This forces rclone to skip any files which exist on the destination and
7081 have a modified time that is newer than the source file.
7082
7083 This can be useful when transferring to a remote which doesn't support
7084 mod times directly (or when using --use-server-modtime to avoid extra
7085 API calls) as it is more accurate than a --size-only check and faster
7086 than using --checksum.
7087
7088 If an existing destination file has a modification time equal (within
7089 the computed modify window precision) to the source file's, it will be
7090 updated if the sizes are different. If --checksum is set then rclone
7091 will update the destination if the checksums differ too.
7092
7093 If an existing destination file is older than the source file then it
7094 will be updated if the size or checksum differs from the source file.
7095
7096 On remotes which don't support mod time directly (or when using
7097 --use-server-modtime) the time checked will be the uploaded time. This
7098 means that if uploading to one of these remotes, rclone will skip any
7099 files which exist on the destination and have an uploaded time that is
7100 newer than the modification time of the source file.
7101
7102 --use-mmap
7103 If this flag is set then rclone will use anonymous memory allocated by
7104 mmap on Unix based platforms and VirtualAlloc on Windows for its trans‐
7105 fer buffers (size controlled by --buffer-size). Memory allocated like
7106 this does not go on the Go heap and can be returned to the OS immedi‐
7107 ately when it is finished with.
7108
7109 If this flag is not set then rclone will allocate and free the buffers
7110 using the Go memory allocator which may use more memory as memory pages
7111 are returned less aggressively to the OS.
7112
7113 It is possible this does not work well on all platforms so it is dis‐
7114 abled by default; in the future it may be enabled by default.
7115
7116 --use-server-modtime
7117 Some object-store backends (e.g, Swift, S3) do not preserve file modi‐
7118 fication times (modtime). On these backends, rclone stores the origi‐
7119 nal modtime as additional metadata on the object. By default it will
7120 make an API call to retrieve the metadata when the modtime is needed by
7121 an operation.
7122
7123 Use this flag to disable the extra API call and rely instead on the
7124 server's modified time. In cases such as a local to remote sync using
7125 --update, knowing the local file is newer than the time it was last up‐
7126 loaded to the remote is sufficient. In those cases, this flag can
7127 speed up the process and reduce the number of API calls necessary.
7128
7129 Using this flag on a sync operation without also using --update would
7130 cause all files modified at any time other than the last upload time to
7131 be uploaded again, which is probably not what you want.
7132
7133 -v, -vv, --verbose
7134 With -v rclone will tell you about each file that is transferred and a
7135 small number of significant events.
7136
7137 With -vv rclone will become very verbose telling you about every file
7138 it considers and transfers. Please send bug reports with a log with
7139 this setting.
7140
7141 -V, --version
7142 Prints the version number
7143
7144 SSL/TLS options
7145 The outgoing SSL/TLS connections rclone makes can be controlled with
7146 these options. For example this can be very useful with the HTTP or
7147 WebDAV backends. Rclone HTTP servers have their own set of configura‐
7148 tion for SSL/TLS which you can find in their documentation.
7149
7150 --ca-cert string
7151 This loads the PEM encoded certificate authority certificate and uses
7152 it to verify the certificates of the servers rclone connects to.
7153
7154 If you have generated certificates signed with a local CA then you will
7155 need this flag to connect to servers using those certificates.
7156
7157 --client-cert string
7158 This loads the PEM encoded client side certificate.
7159
7160 This is used for mutual TLS authentication
7161 (https://en.wikipedia.org/wiki/Mutual_authentication).
7162
7163 The --client-key flag is required too when using this.
7164
7165 --client-key string
7166 This loads the PEM encoded client side private key used for mutual TLS
7167 authentication. Used in conjunction with --client-cert.
7168
7169 --no-check-certificate=true/false
7170 --no-check-certificate controls whether a client verifies the server's
7171 certificate chain and host name. If --no-check-certificate is true,
7172 TLS accepts any certificate presented by the server and any host name
7173 in that certificate. In this mode, TLS is susceptible to
7174 man-in-the-middle attacks.
7175
7176 This option defaults to false.
7177
7178 This should be used only for testing.
7179
7180 Configuration Encryption
7181 Your configuration file contains information for logging in to your
7182 cloud services. This means that you should keep your .rclone.conf file
7183 in a secure location.
7184
7185 If you are in an environment where that isn't possible, you can add a
7186 password to your configuration. This means that you will have to sup‐
7187 ply the password every time you start rclone.
7188
7189 To add a password to your rclone configuration, execute rclone config.
7190
7191 >rclone config
7192 Current remotes:
7193
7194 e) Edit existing remote
7195 n) New remote
7196 d) Delete remote
7197 s) Set configuration password
7198 q) Quit config
7199 e/n/d/s/q>
7200
7201 Go into s, Set configuration password:
7202
7203 e/n/d/s/q> s
7204 Your configuration is not encrypted.
7205 If you add a password, you will protect your login information to cloud services.
7206 a) Add Password
7207 q) Quit to main menu
7208 a/q> a
7209 Enter NEW configuration password:
7210 password:
7211 Confirm NEW password:
7212 password:
7213 Password set
7214 Your configuration is encrypted.
7215 c) Change Password
7216 u) Unencrypt configuration
7217 q) Quit to main menu
7218 c/u/q>
7219
7220 Your configuration is now encrypted, and every time you start rclone
7221 you will have to supply the password. See below for details. In the
7222 same menu, you can change the password or completely remove encryption
7223 from your configuration.
7224
7225 There is no way to recover the configuration if you lose your password.
7226
7227 rclone uses nacl secretbox (https://godoc.org/golang.org/x/crypto/na‐
7228 cl/secretbox) which in turn uses XSalsa20 and Poly1305 to encrypt and
7229 authenticate your configuration with secret-key cryptography. The
7230 password is SHA-256 hashed, which produces the key for secretbox. The
7231 hashed password is not stored.
7232
7233 While this provides very good security, we do not recommend storing
7234 your encrypted rclone configuration in public if it contains sensitive
7235 information, maybe except if you use a very strong password.
7236
7237 If it is safe in your environment, you can set the RCLONE_CONFIG_PASS
7238 environment variable to contain your password, in which case it will be
7239 used for decrypting the configuration.
7240
7241 You can set this for a session from a script. For unix like systems
7242 save this to a file called set-rclone-password:
7243
7244 #!/bin/echo Source this file don't run it
7245
7246 read -s RCLONE_CONFIG_PASS
7247 export RCLONE_CONFIG_PASS
7248
7249 Then source the file when you want to use it. From the shell you would
7250 do source set-rclone-password. It will then ask you for the password
7251 and set it in the environment variable.
7252
7253 An alternate means of supplying the password is to provide a script
7254 which will retrieve the password and print on standard output. This
7255 script should have a fully specified path name and not rely on any en‐
7256 vironment variables. The script is supplied either via --password-com‐
7257 mand="..." command line argument or via the RCLONE_PASSWORD_COMMAND en‐
7258 vironment variable.
7259
7260 One useful example of this is using the passwordstore application to
7261 retrieve the password:
7262
7263 export RCLONE_PASSWORD_COMMAND="pass rclone/config"
7264
7265 If the passwordstore password manager holds the password for the rclone
7266 configuration, using the script method means the password is primarily
7267 protected by the passwordstore system, and is never embedded in the
7268 clear in scripts, nor available for examination using the standard com‐
7269 mands available. It is quite possible with long running rclone ses‐
7270 sions for copies of passwords to be innocently captured in log files or
7271 terminal scroll buffers, etc. Using the script method of supplying the
7272 password enhances the security of the config password considerably.
7273
7274 If you are running rclone inside a script, unless you are using the
7275 --password-command method, you might want to disable password prompts.
7276 To do that, pass the parameter --ask-password=false to rclone. This
7277 will make rclone fail instead of asking for a password if RCLONE_CON‐
7278 FIG_PASS doesn't contain a valid password, and --password-command has
7279 not been supplied.
7280
7281 Developer options
7282 These options are useful when developing or debugging rclone. There
7283 are also some more remote specific options which aren't documented here
7284 which are used for testing. These start with remote name e.g.
7285 --drive-test-option - see the docs for the remote in question.
7286
7287 --cpuprofile=FILE
7288 Write CPU profile to file. This can be analysed with go tool pprof.
7289
7290 --dump flag,flag,flag
7291 The --dump flag takes a comma separated list of flags to dump info
7292 about.
7293
7294 Note that some headers including Accept-Encoding as shown may not be
7295 correct in the request and the response may not show Content-Encoding
7296 if the go standard libraries auto gzip encoding was in effect. In this
7297 case the body of the request will be gunzipped before showing it.
7298
7299 The available flags are:
7300
7301 --dump headers
7302 Dump HTTP headers with Authorization: lines removed. May still contain
7303 sensitive info. Can be very verbose. Useful for debugging only.
7304
7305 Use --dump auth if you do want the Authorization: headers.
7306
7307 --dump bodies
7308 Dump HTTP headers and bodies - may contain sensitive info. Can be very
7309 verbose. Useful for debugging only.
7310
7311 Note that the bodies are buffered in memory so don't use this for enor‐
7312 mous files.
7313
7314 --dump requests
7315 Like --dump bodies but dumps the request bodies and the response head‐
7316 ers. Useful for debugging download problems.
7317
7318 --dump responses
7319 Like --dump bodies but dumps the response bodies and the request head‐
7320 ers. Useful for debugging upload problems.
7321
7322 --dump auth
7323 Dump HTTP headers - will contain sensitive info such as Authorization:
7324 headers - use --dump headers to dump without Authorization: headers.
7325 Can be very verbose. Useful for debugging only.
7326
7327 --dump filters
7328 Dump the filters to the output. Useful to see exactly what include and
7329 exclude options are filtering on.
7330
7331 --dump goroutines
7332 This dumps a list of the running go-routines at the end of the command
7333 to standard output.
7334
7335 --dump openfiles
7336 This dumps a list of the open files at the end of the command. It uses
7337 the lsof command to do that so you'll need that installed to use it.
7338
7339 --memprofile=FILE
7340 Write memory profile to file. This can be analysed with go tool pprof.
7341
7342 Filtering
7343 For the filtering options
7344
7345 · --delete-excluded
7346
7347 · --filter
7348
7349 · --filter-from
7350
7351 · --exclude
7352
7353 · --exclude-from
7354
7355 · --include
7356
7357 · --include-from
7358
7359 · --files-from
7360
7361 · --files-from-raw
7362
7363 · --min-size
7364
7365 · --max-size
7366
7367 · --min-age
7368
7369 · --max-age
7370
7371 · --dump filters
7372
7373 See the filtering section (https://rclone.org/filtering/).
7374
7375 Remote control
7376 For the remote control options and for instructions on how to remote
7377 control rclone
7378
7379 · --rc
7380
7381 · and anything starting with --rc-
7382
7383 See the remote control section (https://rclone.org/rc/).
7384
7385 Logging
7386 rclone has 4 levels of logging, ERROR, NOTICE, INFO and DEBUG.
7387
7388 By default, rclone logs to standard error. This means you can redirect
7389 standard error and still see the normal output of rclone commands (e.g.
7390 rclone ls).
7391
7392 By default, rclone will produce Error and Notice level messages.
7393
7394 If you use the -q flag, rclone will only produce Error messages.
7395
7396 If you use the -v flag, rclone will produce Error, Notice and Info mes‐
7397 sages.
7398
7399 If you use the -vv flag, rclone will produce Error, Notice, Info and
7400 Debug messages.
7401
7402 You can also control the log levels with the --log-level flag.
7403
7404 If you use the --log-file=FILE option, rclone will redirect Error, Info
7405 and Debug messages along with standard error to FILE.
7406
7407 If you use the --syslog flag then rclone will log to syslog and the
7408 --syslog-facility control which facility it uses.
7409
7410 Rclone prefixes all log messages with their level in capitals, e.g.
7411 INFO which makes it easy to grep the log file for different kinds of
7412 information.
7413
7414 Exit Code
7415 If any errors occur during the command execution, rclone will exit with
7416 a non-zero exit code. This allows scripts to detect when rclone opera‐
7417 tions have failed.
7418
7419 During the startup phase, rclone will exit immediately if an error is
7420 detected in the configuration. There will always be a log message im‐
7421 mediately before exiting.
7422
7423 When rclone is running it will accumulate errors as it goes along, and
7424 only exit with a non-zero exit code if (after retries) there were still
7425 failed transfers. For every error counted there will be a high priori‐
7426 ty log message (visible with -q) showing the message and which file
7427 caused the problem. A high priority message is also shown when start‐
7428 ing a retry so the user can see that any previous error messages may
7429 not be valid after the retry. If rclone has done a retry it will log a
7430 high priority message if the retry was successful.
7431
7432 List of exit codes
7433 · 0 - success
7434
7435 · 1 - Syntax or usage error
7436
7437 · 2 - Error not otherwise categorised
7438
7439 · 3 - Directory not found
7440
7441 · 4 - File not found
7442
7443 · 5 - Temporary error (one that more retries might fix) (Retry errors)
7444
7445 · 6 - Less serious errors (like 461 errors from dropbox) (NoRetry er‐
7446 rors)
7447
7448 · 7 - Fatal error (one that more retries won't fix, like account sus‐
7449 pended) (Fatal errors)
7450
7451 · 8 - Transfer exceeded - limit set by --max-transfer reached
7452
7453 · 9 - Operation successful, but no files transferred
7454
7455 Environment Variables
7456 Rclone can be configured entirely using environment variables. These
7457 can be used to set defaults for options or config file entries.
7458
7459 Options
7460 Every option in rclone can have its default set by environment vari‐
7461 able.
7462
7463 To find the name of the environment variable, first, take the long op‐
7464 tion name, strip the leading --, change - to _, make upper case and
7465 prepend RCLONE_.
7466
7467 For example, to always set --stats 5s, set the environment variable
7468 RCLONE_STATS=5s. If you set stats on the command line this will over‐
7469 ride the environment variable setting.
7470
7471 Or to always use the trash in drive --drive-use-trash, set
7472 RCLONE_DRIVE_USE_TRASH=true.
7473
7474 The same parser is used for the options and the environment variables
7475 so they take exactly the same form.
7476
7477 Config file
7478 You can set defaults for values in the config file on an individual re‐
7479 mote basis. If you want to use this feature, you will need to discover
7480 the name of the config items that you want. The easiest way is to run
7481 through rclone config by hand, then look in the config file to see what
7482 the values are (the config file can be found by looking at the help for
7483 --config in rclone help).
7484
7485 To find the name of the environment variable, you need to set, take
7486 RCLONE_CONFIG_ + name of remote + _ + name of config file option and
7487 make it all uppercase.
7488
7489 For example, to configure an S3 remote named mys3: without a config
7490 file (using unix ways of setting environment variables):
7491
7492 $ export RCLONE_CONFIG_MYS3_TYPE=s3
7493 $ export RCLONE_CONFIG_MYS3_ACCESS_KEY_ID=XXX
7494 $ export RCLONE_CONFIG_MYS3_SECRET_ACCESS_KEY=XXX
7495 $ rclone lsd MYS3:
7496 -1 2016-09-21 12:54:21 -1 my-bucket
7497 $ rclone listremotes | grep mys3
7498 mys3:
7499
7500 Note that if you want to create a remote using environment variables
7501 you must create the ..._TYPE variable as above.
7502
7503 Precedence
7504 The various different methods of backend configuration are read in this
7505 order and the first one with a value is used.
7506
7507 · Flag values as supplied on the command line, e.g. --drive-use-trash.
7508
7509 · Remote specific environment vars, e.g. RCLONE_CONFIG_MYRE‐
7510 MOTE_USE_TRASH (see above).
7511
7512 · Backend specific environment vars, e.g. RCLONE_DRIVE_USE_TRASH.
7513
7514 · Config file, e.g. use_trash = false.
7515
7516 · Default values, e.g. true - these can't be changed.
7517
7518 So if both --drive-use-trash is supplied on the config line and an en‐
7519 vironment variable RCLONE_DRIVE_USE_TRASH is set, the command line flag
7520 will take preference.
7521
7522 For non backend configuration the order is as follows:
7523
7524 · Flag values as supplied on the command line, e.g. --stats 5s.
7525
7526 · Environment vars, e.g. RCLONE_STATS=5s.
7527
7528 · Default values, e.g. 1m - these can't be changed.
7529
7530 Other environment variables
7531 · RCLONE_CONFIG_PASS set to contain your config file password (see Con‐
7532 figuration Encryption section)
7533
7534 · HTTP_PROXY, HTTPS_PROXY and NO_PROXY (or the lowercase versions
7535 thereof).
7536
7537 · HTTPS_PROXY takes precedence over HTTP_PROXY for https requests.
7538
7539 · The environment values may be either a complete URL or a
7540 "host[:port]" for, in which case the "http" scheme is assumed.
7541
7542 · RCLONE_CONFIG_DIR - rclone sets this variable for use in config files
7543 and sub processes to point to the directory holding the config file.
7544
7546 Some of the configurations (those involving oauth2) require an Internet
7547 connected web browser.
7548
7549 If you are trying to set rclone up on a remote or headless box with no
7550 browser available on it (e.g. a NAS or a server in a datacenter) then
7551 you will need to use an alternative means of configuration. There are
7552 two ways of doing it, described below.
7553
7554 Configuring using rclone authorize
7555 On the headless box run rclone config but answer N to the Use auto con‐
7556 fig? question.
7557
7558 ...
7559 Remote config
7560 Use auto config?
7561 * Say Y if not sure
7562 * Say N if you are working on a remote or headless machine
7563 y) Yes (default)
7564 n) No
7565 y/n> n
7566 For this to work, you will need rclone available on a machine that has
7567 a web browser available.
7568
7569 For more help and alternate methods see: https://rclone.org/remote_setup/
7570
7571 Execute the following on the machine with the web browser (same rclone
7572 version recommended):
7573
7574 rclone authorize "amazon cloud drive"
7575
7576 Then paste the result below:
7577 result>
7578
7579 Then on your main desktop machine
7580
7581 rclone authorize "amazon cloud drive"
7582 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
7583 Log in and authorize rclone for access
7584 Waiting for code...
7585 Got code
7586 Paste the following into your remote machine --->
7587 SECRET_TOKEN
7588 <---End paste
7589
7590 Then back to the headless box, paste in the code
7591
7592 result> SECRET_TOKEN
7593 --------------------
7594 [acd12]
7595 client_id =
7596 client_secret =
7597 token = SECRET_TOKEN
7598 --------------------
7599 y) Yes this is OK
7600 e) Edit this remote
7601 d) Delete this remote
7602 y/e/d>
7603
7604 Configuring by copying the config file
7605 Rclone stores all of its config in a single configuration file. This
7606 can easily be copied to configure a remote rclone.
7607
7608 So first configure rclone on your desktop machine with
7609
7610 rclone config
7611
7612 to set up the config file.
7613
7614 Find the config file by running rclone config file, for example
7615
7616 $ rclone config file
7617 Configuration file is stored at:
7618 /home/user/.rclone.conf
7619
7620 Now transfer it to the remote box (scp, cut paste, ftp, sftp, etc.) and
7621 place it in the correct place (use rclone config file on the remote box
7622 to find out where).
7623
7625 Filter flags determine which files rclone sync, move, ls, lsl, md5sum,
7626 sha1sum, size, delete, check and similar commands apply to.
7627
7628 They are specified in terms of path/file name patterns; path/file
7629 lists; file age and size, or presence of a file in a directory. Bucket
7630 based remotes without the concept of directory apply filters to object
7631 key, age and size in an analogous way.
7632
7633 Rclone purge does not obey filters.
7634
7635 To test filters without risk of damage to data, apply them to rclone
7636 ls, or with the --dry-run and -vv flags.
7637
7638 Rclone filter patterns can only be used in filter command line options,
7639 not in the specification of a remote.
7640
7641 E.g. rclone copy "remote:dir*.jpg" /path/to/dir does not have a filter
7642 effect. rclone copy remote:dir /path/to/dir --include "*.jpg" does.
7643
7644 Important Avoid mixing any two of --include..., --exclude... or --fil‐
7645 ter... flags in an rclone command. The results may not be what you ex‐
7646 pect. Instead use a --filter... flag.
7647
7648 Patterns for matching path/file names
7649 Pattern syntax
7650 Rclone matching rules follow a glob style:
7651
7652 `*` matches any sequence of non-separator (`/`) characters
7653 `**` matches any sequence of characters including `/` separators
7654 `?` matches any single non-separator (`/`) character
7655 `[` [ `!` ] { character-range } `]`
7656 character class (must be non-empty)
7657 `{` pattern-list `}`
7658 pattern alternatives
7659 c matches character c (c != `*`, `**`, `?`, `\`, `[`, `{`, `}`)
7660 `\` c matches character c
7661
7662 character-range:
7663
7664 c matches character c (c != `\\`, `-`, `]`)
7665 `\` c matches character c
7666 lo `-` hi matches character c for lo <= c <= hi
7667
7668 pattern-list:
7669
7670 pattern { `,` pattern }
7671 comma-separated (without spaces) patterns
7672
7673 character classes (see Go regular expression reference
7674 (https://golang.org/pkg/regexp/syntax/)) include:
7675
7676 Named character classes (e.g. [\d], [^\d], [\D], [^\D])
7677 Perl character classes (e.g. \s, \S, \w, \W)
7678 ASCII character classes (e.g. [[:alnum:]], [[:alpha:]], [[:punct:]], [[:xdigit:]])
7679
7680 If the filter pattern starts with a / then it only matches at the top
7681 level of the directory tree, relative to the root of the remote (not
7682 necessarily the root of the drive). If it does not start with / then
7683 it is matched starting at the end of the path/file name but it only
7684 matches a complete path element - it must match from a / separator or
7685 the beginning of the path/file.
7686
7687 file.jpg - matches "file.jpg"
7688 - matches "directory/file.jpg"
7689 - doesn't match "afile.jpg"
7690 - doesn't match "directory/afile.jpg"
7691 /file.jpg - matches "file.jpg" in the root directory of the remote
7692 - doesn't match "afile.jpg"
7693 - doesn't match "directory/file.jpg"
7694
7695 Important Use / in path/file name patterns and not \ even if running on
7696 Microsoft Windows.
7697
7698 Simple patterns are case sensitive unless the --ignore-case flag is
7699 used.
7700
7701 Without --ignore-case (default)
7702
7703 potato - matches "potato"
7704 - doesn't match "POTATO"
7705
7706 With --ignore-case
7707
7708 potato - matches "potato"
7709 - matches "POTATO"
7710
7711 How filter rules are applied to files
7712 Rclone path / file name filters are made up of one or more of the fol‐
7713 lowing flags:
7714
7715 · --include
7716
7717 · --include-from
7718
7719 · --exclude
7720
7721 · --exclude-from
7722
7723 · --filter
7724
7725 · --filter-from
7726
7727 There can be more than one instance of individual flags.
7728
7729 Rclone internally uses a combined list of all the include and exclude
7730 rules. The order in which rules are processed can influence the result
7731 of the filter.
7732
7733 All flags of the same type are processed together in the order above,
7734 regardless of what order the different types of flags are included on
7735 the command line.
7736
7737 Multiple instances of the same flag are processed from left to right
7738 according to their position in the command line.
7739
7740 To mix up the order of processing includes and excludes use --filter...
7741 flags.
7742
7743 Within --include-from, --exclude-from and --filter-from flags rules are
7744 processed from top to bottom of the referenced file..
7745
7746 If there is an --include or --include-from flag specified, rclone im‐
7747 plies a - ** rule which it adds to the bottom of the internal rule
7748 list. Specifying a + rule with a --filter... flag does not imply that
7749 rule.
7750
7751 Each path/file name passed through rclone is matched against the com‐
7752 bined filter list. At first match to a rule the path/file name is in‐
7753 cluded or excluded and no further filter rules are processed for that
7754 path/file.
7755
7756 If rclone does not find a match, after testing against all rules (in‐
7757 cluding the implied rule if appropriate), the path/file name is includ‐
7758 ed.
7759
7760 Any path/file included at that stage is processed by the rclone com‐
7761 mand.
7762
7763 --files-from and --files-from-raw flags over-ride and cannot be com‐
7764 bined with other filter options.
7765
7766 To see the internal combined rule list, in regular expression form, for
7767 a command add the --dump filters flag. Running an rclone command with
7768 --dump filters and -vv flags lists the internal filter elements and
7769 shows how they are applied to each source path/file. There is not cur‐
7770 rently a means provided to pass regular expression filter options into
7771 rclone directly though character class filter rules contain character
7772 classes. Go regular expression reference (https://golang.org/pkg/reg‐
7773 exp/syntax/)
7774
7775 How filter rules are applied to directories
7776 Rclone commands filter, and are applied to, path/file names not direc‐
7777 tories. The entire contents of a directory can be matched to a filter
7778 by the pattern directory/* or recursively by directory/**.
7779
7780 Directory filter rules are defined with a closing / separator.
7781
7782 E.g. /directory/subdirectory/ is an rclone directory filter rule.
7783
7784 Rclone commands can use directory filter rules to determine whether
7785 they recurse into subdirectories. This potentially optimises access to
7786 a remote by avoiding listing unnecessary directories. Whether optimi‐
7787 sation is desirable depends on the specific filter rules and source re‐
7788 mote content.
7789
7790 Optimisation occurs if either:
7791
7792 · A source remote does not support the rclone ListR primitive. local,
7793 sftp, Microsoft OneDrive and WebDav do not support ListR. Google
7794 Drive and most bucket type storage do. Full list
7795 (https://rclone.org/overview/#optional-features)
7796
7797 · On other remotes, if the rclone command is not naturally recursive,
7798 provided it is not run with the --fast-list flag. ls, lsf -R and
7799 size are recursive but sync, copy and move are not.
7800
7801 · Whenever the --disable ListR flag is applied to an rclone command.
7802
7803 Rclone commands imply directory filter rules from path/file filter
7804 rules. To view the directory filter rules rclone has implied for a
7805 command specify the --dump filters flag.
7806
7807 E.g. for an include rule
7808
7809 /a/*.jpg
7810
7811 Rclone implies the directory include rule
7812
7813 /a/
7814
7815 Directory filter rules specified in an rclone command can limit the
7816 scope of an rclone command but path/file filters still have to be spec‐
7817 ified.
7818
7819 E.g. rclone ls remote: --include /directory/ will not match any files.
7820 Because it is an --include option the --exclude ** rule is implied, and
7821 the \directory\ pattern serves only to optimise access to the remote by
7822 ignoring everything outside of that directory.
7823
7824 E.g. rclone ls remote: --filter-from filter-list.txt with a file fil‐
7825 ter-list.txt:
7826
7827 - /dir1/
7828 - /dir2/
7829 + *.pdf
7830 - **
7831
7832 All files in directories dir1 or dir2 or their subdirectories are com‐
7833 pletely excluded from the listing. Only files of suffix 'pdf in the
7834 root of remote: or its subdirectories are listed. The - ** rule pre‐
7835 vents listing of any path/files not previously matched by the rules
7836 above.
7837
7838 Option exclude-if-present creates a directory exclude rule based on the
7839 presence of a file in a directory and takes precedence over other
7840 rclone directory filter rules.
7841
7842 --exclude - Exclude files matching pattern
7843 Excludes path/file names from an rclone command based on a single ex‐
7844 clude rule.
7845
7846 This flag can be repeated. See above for the order filter flags are
7847 processed in.
7848
7849 --exclude should not be used with --include, --include-from, --filter
7850 or --filter-from flags.
7851
7852 --exclude has no effect when combined with --files-from or
7853 --files-from-raw flags.
7854
7855 E.g. rclone ls remote: --exclude *.bak excludes all .bak files from
7856 listing.
7857
7858 E.g. rclone size remote: "--exclude /dir/**" returns the total size of
7859 all files on remote: excluding those in root directory dir and sub di‐
7860 rectories.
7861
7862 E.g. on Microsoft Windows rclone ls remote: --exclude
7863 "*\[{JP,KR,HK}\]*" lists the files in remote: with [JP] or [KR] or [HK]
7864 in their name. The single quotes prevent the shell from interpreting
7865 the \ characters. The \ characters escape the [ and ] so ran clone
7866 filter treats them literally rather than as a character-range. The {
7867 and } define an rclone pattern list. For other operating systems sin‐
7868 gle quotes are required ie rclone ls remote: --exclude
7869 '*\[{JP,KR,HK}\]*'
7870
7871 --exclude-from - Read exclude patterns from file
7872 Excludes path/file names from an rclone command based on rules in a
7873 named file. The file contains a list of remarks and pattern rules.
7874
7875 For an example exclude-file.txt:
7876
7877 # a sample exclude rule file
7878 *.bak
7879 file2.jpg
7880
7881 rclone ls remote: --exclude-from exclude-file.txt lists the files on
7882 remote: except those named file2.jpg or with a suffix .bak. That is
7883 equivalent to rclone ls remote: --exclude file2.jpg --exclude "*.bak".
7884
7885 This flag can be repeated. See above for the order filter flags are
7886 processed in.
7887
7888 The --exclude-from flag is useful where multiple exclude filter rules
7889 are applied to an rclone command.
7890
7891 --exclude-from should not be used with --include, --include-from,
7892 --filter or --filter-from flags.
7893
7894 --exclude-from has no effect when combined with --files-from or
7895 --files-from-raw flags.
7896
7897 --exclude-from followed by - reads filter rules from standard input.
7898
7899 --include - Include files matching pattern
7900 Adds a single include rule based on path/file names to an rclone com‐
7901 mand.
7902
7903 This flag can be repeated. See above for the order filter flags are
7904 processed in.
7905
7906 --include has no effect when combined with --files-from or
7907 --files-from-raw flags.
7908
7909 --include implies --exclude ** at the end of an rclone internal filter
7910 list. Therefore if you mix --include and --include-from flags with
7911 --exclude, --exclude-from, --filter or --filter-from, you must use in‐
7912 clude rules for all the files you want in the include statement. For
7913 more flexibility use the --filter-from flag.
7914
7915 E.g. rclone ls remote: --include "*.{png,jpg}" lists the files on re‐
7916 mote: with suffix .png and .jpg. All other files are excluded.
7917
7918 E.g. multiple rclone copy commands can be combined with --include and
7919 a pattern-list.
7920
7921 rclone copy /vol1/A remote:A
7922 rclone copy /vol1/B remote:B
7923
7924 is equivalent to:
7925
7926 rclone copy /vol1 remote: --include "{A,B}/**"
7927
7928 E.g. rclone ls remote:/wheat --include "??[^[:punct:]]*" lists the
7929 files remote: directory wheat (and subdirectories) whose third charac‐
7930 ter is not punctuation. This example uses an ASCII character class
7931 (https://golang.org/pkg/regexp/syntax/).
7932
7933 --include-from - Read include patterns from file
7934 Adds path/file names to an rclone command based on rules in a named
7935 file. The file contains a list of remarks and pattern rules.
7936
7937 For an example include-file.txt:
7938
7939 # a sample include rule file
7940 *.jpg
7941 file2.avi
7942
7943 rclone ls remote: --include-from include-file.txt lists the files on
7944 remote: with name file2.avi or suffix .jpg. That is equivalent to
7945 rclone ls remote: --include file2.avi --include "*.jpg".
7946
7947 This flag can be repeated. See above for the order filter flags are
7948 processed in.
7949
7950 The --include-from flag is useful where multiple include filter rules
7951 are applied to an rclone command.
7952
7953 --include-from implies --exclude ** at the end of an rclone internal
7954 filter list. Therefore if you mix --include and --include-from flags
7955 with --exclude, --exclude-from, --filter or --filter-from, you must use
7956 include rules for all the files you want in the include statement. For
7957 more flexibility use the --filter-from flag.
7958
7959 --exclude-from has no effect when combined with --files-from or
7960 --files-from-raw flags.
7961
7962 --exclude-from followed by - reads filter rules from standard input.
7963
7964 --filter - Add a file-filtering rule
7965 Specifies path/file names to an rclone command, based on a single in‐
7966 clude or exclude rule, in + or - format.
7967
7968 This flag can be repeated. See above for the order filter flags are
7969 processed in.
7970
7971 --filter + differs from --include. In the case of --include rclone im‐
7972 plies an --exclude * rule which it adds to the bottom of the internal
7973 rule list. --filter...+ does not imply that rule.
7974
7975 --filter has no effect when combined with --files-from or
7976 --files-from-raw flags.
7977
7978 --filter should not be used with --include, --include-from, --exclude
7979 or --exclude-from flags.
7980
7981 E.g. rclone ls remote: --filter "- *.bak" excludes all .bak files from
7982 a list of remote:.
7983
7984 --filter-from - Read filtering patterns from a file
7985 Adds path/file names to an rclone command based on rules in a named
7986 file. The file contains a list of remarks and pattern rules. Include
7987 rules start with + and exclude rules with -. ! clears existing rules.
7988 Rules are processed in the order they are defined.
7989
7990 This flag can be repeated. See above for the order filter flags are
7991 processed in.
7992
7993 Arrange the order of filter rules with the most restrictive first and
7994 work down.
7995
7996 E.g. For filter-file.txt:
7997
7998 # a sample filter rule file
7999 - secret*.jpg
8000 + *.jpg
8001 + *.png
8002 + file2.avi
8003 - /dir/Trash/**
8004 + /dir/**
8005 # exclude everything else
8006 - *
8007
8008 rclone ls remote: --filter-from filter-file.txt lists the path/files on
8009 remote: including all jpg and png files, excluding any matching se‐
8010 cret*.jpg and including file2.avi. It also includes everything in the
8011 directory dir at the root of remote, except remote:dir/Trash which it
8012 excludes. Everything else is excluded.
8013
8014 E.g. for an alternative filter-file.txt:
8015
8016 - secret*.jpg
8017 + *.jpg
8018 + *.png
8019 + file2.avi
8020 - *
8021
8022 Files file1.jpg, file3.png and file2.avi are listed whilst secret17.jpg
8023 and files without the suffix .jpgor.png` are excluded.
8024
8025 E.g. for an alternative filter-file.txt:
8026
8027 + *.jpg
8028 + *.gif
8029 !
8030 + 42.doc
8031 - *
8032
8033 Only file 42.doc is listed. Prior rules are cleared by the !.
8034
8035 --files-from - Read list of source-file names
8036 Adds path/files to an rclone command from a list in a named file.
8037 Rclone processes the path/file names in the order of the list, and no
8038 others.
8039
8040 Other filter flags (--include, --include-from, --exclude, --ex‐
8041 clude-from, --filter and --filter-from) are ignored when --files-from
8042 is used.
8043
8044 --files-from expects a list of files as its input. Leading or trailing
8045 whitespace is stripped from the input lines. Lines starting with # or
8046 ; are ignored.
8047
8048 Rclone commands with a --files-from flag traverse the remote, treating
8049 the names in --files-from as a set of filters.
8050
8051 If the --no-traverse and --files-from flags are used together an rclone
8052 command does not traverse the remote. Instead it addresses each
8053 path/file named in the file individually. For each path/file name,
8054 that requires typically 1 API call. This can be efficient for a short
8055 --files-from list and a remote containing many files.
8056
8057 Rclone commands do not error if any names in the --files-from file are
8058 missing from the source remote.
8059
8060 The --files-from flag can be repeated in a single rclone command to
8061 read path/file names from more than one file. The files are read from
8062 left to right along the command line.
8063
8064 Paths within the --files-from file are interpreted as starting with the
8065 root specified in the rclone command. Leading / separators are ig‐
8066 nored. See --files-from-raw if you need the input to be processed in a
8067 raw manner.
8068
8069 E.g. for a file files-from.txt:
8070
8071 # comment
8072 file1.jpg
8073 subdir/file2.jpg
8074
8075 rclone copy --files-from files-from.txt /home/me/pics remote:pics
8076 copies the following, if they exist, and only those files.
8077
8078 /home/me/pics/file1.jpg → remote:pics/file1.jpg
8079 /home/me/pics/subdir/file2.jpg → remote:pics/subdir/file2.jpg
8080
8081 E.g. to copy the following files referenced by their absolute paths:
8082
8083 /home/user1/42
8084 /home/user1/dir/ford
8085 /home/user2/prefect
8086
8087 First find a common subdirectory - in this case /home and put the re‐
8088 maining files in files-from.txt with or without leading /, e.g.
8089
8090 user1/42
8091 user1/dir/ford
8092 user2/prefect
8093
8094 Then copy these to a remote:
8095
8096 rclone copy --files-from files-from.txt /home remote:backup
8097
8098 The three files are transferred as follows:
8099
8100 /home/user1/42 → remote:backup/user1/important
8101 /home/user1/dir/ford → remote:backup/user1/dir/file
8102 /home/user2/prefect → remote:backup/user2/stuff
8103
8104 Alternatively if / is chosen as root files-from.txt would be:
8105
8106 /home/user1/42
8107 /home/user1/dir/ford
8108 /home/user2/prefect
8109
8110 The copy command would be:
8111
8112 rclone copy --files-from files-from.txt / remote:backup
8113
8114 Then there will be an extra home directory on the remote:
8115
8116 /home/user1/42 → remote:backup/home/user1/42
8117 /home/user1/dir/ford → remote:backup/home/user1/dir/ford
8118 /home/user2/prefect → remote:backup/home/user2/prefect
8119
8120 --files-from-raw - Read list of source-file names without any processing
8121 This flag is the same as --files-from except that input is read in a
8122 raw manner. Lines with leading / trailing whitespace, and lines start‐
8123 ing with ; or # are read without any processing. rclone lsf
8124 (https://rclone.org/commands/rclone_lsf/) has a compatible format that
8125 can be used to export file lists from remotes for input to
8126 --files-from-raw.
8127
8128 --ignore-case - make searches case insensitive
8129 By default rclone filter patterns are case sensitive. The --ig‐
8130 nore-case flag makes all of the filters patterns on the command line
8131 case insensitive.
8132
8133 E.g. --include "zaphod.txt" does not match a file Zaphod.txt. With
8134 --ignore-case a match is made.
8135
8136 Quoting shell metacharacters
8137 Rclone commands with filter patterns containing shell metacharacters
8138 may not as work as expected in your shell and may require quoting.
8139
8140 E.g. linux, OSX (* metacharacter)
8141
8142 · --include \*.jpg
8143
8144 · --include '*.jpg'
8145
8146 · --include='*.jpg'
8147
8148 Microsoft Windows expansion is done by the command, not shell, so --in‐
8149 clude *.jpg does not require quoting.
8150
8151 If the rclone error Command .... needs .... arguments maximum: you pro‐
8152 vided .... non flag arguments: is encountered, the cause is commonly
8153 spaces within the name of a remote or flag value. The fix then is to
8154 quote values containing spaces.
8155
8156 Other filters
8157 --min-size - Don't transfer any file smaller than this
8158 Controls the minimum size file within the scope of an rclone command.
8159 Default units are kBytes but abbreviations k, M, or G are valid.
8160
8161 E.g. rclone ls remote: --min-size 50k lists files on remote: of
8162 50kByte size or larger.
8163
8164 --max-size - Don't transfer any file larger than this
8165 Controls the maximum size file within the scope of an rclone command.
8166 Default units are kBytes but abbreviations k, M, or G are valid.
8167
8168 E.g. rclone ls remote: --max-size 1G lists files on remote: of 1GByte
8169 size or smaller.
8170
8171 --max-age - Don't transfer any file older than this
8172 Controls the maximum age of files within the scope of an rclone com‐
8173 mand. Default units are seconds or the following abbreviations are
8174 valid:
8175
8176 · ms - Milliseconds
8177
8178 · s - Seconds
8179
8180 · m - Minutes
8181
8182 · h - Hours
8183
8184 · d - Days
8185
8186 · w - Weeks
8187
8188 · M - Months
8189
8190 · y - Years
8191
8192 --max-age can also be specified as an absolute time in the following
8193 formats:
8194
8195 · RFC3339 - e.g. "2006-01-02T15:04:05Z07:00"
8196
8197 · ISO8601 Date and time, local timezone - "2006-01-02T15:04:05"
8198
8199 · ISO8601 Date and time, local timezone - "2006-01-02 15:04:05"
8200
8201 · ISO8601 Date - "2006-01-02" (YYYY-MM-DD)
8202
8203 --max-age applies only to files and not to directories.
8204
8205 E.g. rclone ls remote: --max-age 2d lists files on remote: of 2 days
8206 old or less.
8207
8208 --min-age - Don't transfer any file younger than this
8209 Controls the minimum age of files within the scope of an rclone com‐
8210 mand. (see --max-age for valid formats)
8211
8212 --min-age applies only to files and not to directories.
8213
8214 E.g. rclone ls remote: --min-age 2d lists files on remote: of 2 days
8215 old or more.
8216
8217 Other flags
8218 --delete-excluded - Delete files on dest excluded from sync
8219 Important this flag is dangerous to your data - use with --dry-run and
8220 -v first.
8221
8222 In conjunction with rclone sync the `--delete-excluded deletes any
8223 files on the destination which are excluded from the command.
8224
8225 E.g. the scope of rclone sync -i A: B: can be restricted:
8226
8227 rclone --min-size 50k --delete-excluded sync A: B:
8228
8229 All files on B: which are less than 50 kBytes are deleted because they
8230 are excluded from the rclone sync command.
8231
8232 --dump filters - dump the filters to the output
8233 Dumps the defined filters to standard output in regular expression for‐
8234 mat.
8235
8236 Useful for debugging.
8237
8238 Exclude directory based on a file
8239 The --exclude-if-present flag controls whether a directory is within
8240 the scope of an rclone command based on the presence of a named file
8241 within it.
8242
8243 This flag has a priority over other filter flags.
8244
8245 E.g. for the following directory structure:
8246
8247 dir1/file1
8248 dir1/dir2/file2
8249 dir1/dir2/dir3/file3
8250 dir1/dir2/dir3/.ignore
8251
8252 The command rclone ls --exclude-if-present .ignore dir1 does not list
8253 dir3, file3 or .ignore.
8254
8255 --exclude-if-present can only be used once in an rclone command.
8256
8257 Common pitfalls
8258 The most frequent filter support issues on the rclone forum
8259 (https://https://forum.rclone.org/) are:
8260
8261 · Not using paths relative to the root of the remote
8262
8263 · Not using / to match from the root of a remote
8264
8265 · Not using ** to match the contents of a directory
8266
8268 Rclone can serve a web based GUI (graphical user interface). This is
8269 somewhat experimental at the moment so things may be subject to change.
8270
8271 Run this command in a terminal and rclone will download and then dis‐
8272 play the GUI in a web browser.
8273
8274 rclone rcd --rc-web-gui
8275
8276 This will produce logs like this and rclone needs to continue to run to
8277 serve the GUI:
8278
8279 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
8280 2019/08/25 11:40:14 NOTICE: Downloading webgui binary. Please wait. [Size: 3813937, Path : /home/USER/.cache/rclone/webgui/v0.0.6.zip]
8281 2019/08/25 11:40:16 NOTICE: Unzipping
8282 2019/08/25 11:40:16 NOTICE: Serving remote control on http://127.0.0.1:5572/
8283
8284 This assumes you are running rclone locally on your machine. It is
8285 possible to separate the rclone and the GUI - see below for details.
8286
8287 If you wish to check for updates then you can add --rc-web-gui-update
8288 to the command line.
8289
8290 If you find your GUI broken, you may force it to update by add
8291 --rc-web-gui-force-update.
8292
8293 By default, rclone will open your browser. Add
8294 --rc-web-gui-no-open-browser to disable this feature.
8295
8296 Using the GUI
8297 Once the GUI opens, you will be looking at the dashboard which has an
8298 overall overview.
8299
8300 On the left hand side you will see a series of view buttons you can
8301 click on:
8302
8303 · Dashboard - main overview
8304
8305 · Configs - examine and create new configurations
8306
8307 · Explorer - view, download and upload files to the cloud storage sys‐
8308 tems
8309
8310 · Backend - view or alter the backend config
8311
8312 · Log out
8313
8314 (More docs and walkthrough video to come!)
8315
8316 How it works
8317 When you run the rclone rcd --rc-web-gui this is what happens
8318
8319 · Rclone starts but only runs the remote control API ("rc").
8320
8321 · The API is bound to localhost with an auto generated username and
8322 password.
8323
8324 · If the API bundle is missing then rclone will download it.
8325
8326 · rclone will start serving the files from the API bundle over the same
8327 port as the API
8328
8329 · rclone will open the browser with a login_token so it can log
8330 straight in.
8331
8332 Advanced use
8333 The rclone rcd may use any of the flags documented on the rc page
8334 (https://rclone.org/rc/#supported-parameters).
8335
8336 The flag --rc-web-gui is shorthand for
8337
8338 · Download the web GUI if necessary
8339
8340 · Check we are using some authentication
8341
8342 · --rc-user gui
8343
8344 · --rc-pass <random password>
8345
8346 · --rc-serve
8347
8348 These flags can be overridden as desired.
8349
8350 See also the rclone rcd documentation (https://rclone.org/com‐
8351 mands/rclone_rcd/).
8352
8353 Example: Running a public GUI
8354 For example the GUI could be served on a public port over SSL using an
8355 htpasswd file using the following flags:
8356
8357 · --rc-web-gui
8358
8359 · --rc-addr :443
8360
8361 · --rc-htpasswd /path/to/htpasswd
8362
8363 · --rc-cert /path/to/ssl.crt
8364
8365 · --rc-key /path/to/ssl.key
8366
8367 Example: Running a GUI behind a proxy
8368 If you want to run the GUI behind a proxy at /rclone you could use
8369 these flags:
8370
8371 · --rc-web-gui
8372
8373 · --rc-baseurl rclone
8374
8375 · --rc-htpasswd /path/to/htpasswd
8376
8377 Or instead of htpasswd if you just want a single user and password:
8378
8379 · --rc-user me
8380
8381 · --rc-pass mypassword
8382
8383 Project
8384 The GUI is being developed in the: rclone/rclone-webui-react repository
8385 (https://github.com/rclone/rclone-webui-react).
8386
8387 Bug reports and contributions are very welcome :-)
8388
8389 If you have questions then please ask them on the rclone forum
8390 (https://forum.rclone.org/).
8391
8393 If rclone is run with the --rc flag then it starts an HTTP server which
8394 can be used to remote control rclone using its API.
8395
8396 You can either use the rclone rc command to access the API or use HTTP
8397 directly.
8398
8399 If you just want to run a remote control then see the rcd command
8400 (https://rclone.org/commands/rclone_rcd/).
8401
8402 Supported parameters
8403 --rc
8404 Flag to start the http server listen on remote requests
8405
8406 --rc-addr=IP
8407 IPaddress:Port or :Port to bind server to. (default "localhost:5572")
8408
8409 --rc-cert=KEY
8410 SSL PEM key (concatenation of certificate and CA certificate)
8411
8412 --rc-client-ca=PATH
8413 Client certificate authority to verify clients with
8414
8415 --rc-htpasswd=PATH
8416 htpasswd file - if not provided no authentication is done
8417
8418 --rc-key=PATH
8419 SSL PEM Private key
8420
8421 --rc-max-header-bytes=VALUE
8422 Maximum size of request header (default 4096)
8423
8424 --rc-user=VALUE
8425 User name for authentication.
8426
8427 --rc-pass=VALUE
8428 Password for authentication.
8429
8430 --rc-realm=VALUE
8431 Realm for authentication (default "rclone")
8432
8433 --rc-server-read-timeout=DURATION
8434 Timeout for server reading data (default 1h0m0s)
8435
8436 --rc-server-write-timeout=DURATION
8437 Timeout for server writing data (default 1h0m0s)
8438
8439 --rc-serve
8440 Enable the serving of remote objects via the HTTP interface. This
8441 means objects will be accessible at http://127.0.0.1:5572/ by default,
8442 so you can browse to http://127.0.0.1:5572/ or http://127.0.0.1:5572/*
8443 to see a listing of the remotes. Objects may be requested from remotes
8444 using this syntax http://127.0.0.1:5572/[remote:path]/path/to/object
8445
8446 Default Off.
8447
8448 --rc-files /path/to/directory
8449 Path to local files to serve on the HTTP server.
8450
8451 If this is set then rclone will serve the files in that directory. It
8452 will also open the root in the web browser if specified. This is for
8453 implementing browser based GUIs for rclone functions.
8454
8455 If --rc-user or --rc-pass is set then the URL that is opened will have
8456 the authorization in the URL in the http://user:pass@localhost/ style.
8457
8458 Default Off.
8459
8460 --rc-enable-metrics
8461 Enable OpenMetrics/Prometheus compatible endpoint at /metrics.
8462
8463 Default Off.
8464
8465 --rc-web-gui
8466 Set this flag to serve the default web gui on the same port as rclone.
8467
8468 Default Off.
8469
8470 --rc-allow-origin
8471 Set the allowed Access-Control-Allow-Origin for rc requests.
8472
8473 Can be used with --rc-web-gui if the rclone is running on different IP
8474 than the web-gui.
8475
8476 Default is IP address on which rc is running.
8477
8478 --rc-web-fetch-url
8479 Set the URL to fetch the rclone-web-gui files from.
8480
8481 Default https://api.github.com/repos/rclone/rclone-webui-react/releas‐
8482 es/latest.
8483
8484 --rc-web-gui-update
8485 Set this flag to check and update rclone-webui-react from the
8486 rc-web-fetch-url.
8487
8488 Default Off.
8489
8490 --rc-web-gui-force-update
8491 Set this flag to force update rclone-webui-react from the
8492 rc-web-fetch-url.
8493
8494 Default Off.
8495
8496 --rc-web-gui-no-open-browser
8497 Set this flag to disable opening browser automatically when using
8498 web-gui.
8499
8500 Default Off.
8501
8502 --rc-job-expire-duration=DURATION
8503 Expire finished async jobs older than DURATION (default 60s).
8504
8505 --rc-job-expire-interval=DURATION
8506 Interval duration to check for expired async jobs (default 10s).
8507
8508 --rc-no-auth
8509 By default rclone will require authorisation to have been set up on the
8510 rc interface in order to use any methods which access any rclone re‐
8511 motes. Eg operations/list is denied as it involved creating a remote
8512 as is sync/copy.
8513
8514 If this is set then no authorisation will be required on the server to
8515 use these methods. The alternative is to use --rc-user and --rc-pass
8516 and use these credentials in the request.
8517
8518 Default Off.
8519
8520 Accessing the remote control via the rclone rc command
8521 Rclone itself implements the remote control protocol in its rclone rc
8522 command.
8523
8524 You can use it like this
8525
8526 $ rclone rc rc/noop param1=one param2=two
8527 {
8528 "param1": "one",
8529 "param2": "two"
8530 }
8531
8532 Run rclone rc on its own to see the help for the installed remote con‐
8533 trol commands.
8534
8535 JSON input
8536 rclone rc also supports a --json flag which can be used to send more
8537 complicated input parameters.
8538
8539 $ rclone rc --json '{ "p1": [1,"2",null,4], "p2": { "a":1, "b":2 } }' rc/noop
8540 {
8541 "p1": [
8542 1,
8543 "2",
8544 null,
8545 4
8546 ],
8547 "p2": {
8548 "a": 1,
8549 "b": 2
8550 }
8551 }
8552
8553 If the parameter being passed is an object then it can be passed as a
8554 JSON string rather than using the --json flag which simplifies the com‐
8555 mand line.
8556
8557 rclone rc operations/list fs=/tmp remote=test opt='{"showHash": true}'
8558
8559 Rather than
8560
8561 rclone rc operations/list --json '{"fs": "/tmp", "remote": "test", "opt": {"showHash": true}}'
8562
8563 Special parameters
8564 The rc interface supports some special parameters which apply to all
8565 commands. These start with _ to show they are different.
8566
8567 Running asynchronous jobs with _async = true
8568 Each rc call is classified as a job and it is assigned its own id. By
8569 default jobs are executed immediately as they are created or syn‐
8570 chronously.
8571
8572 If _async has a true value when supplied to an rc call then it will re‐
8573 turn immediately with a job id and the task will be run in the back‐
8574 ground. The job/status call can be used to get information of the
8575 background job. The job can be queried for up to 1 minute after it has
8576 finished.
8577
8578 It is recommended that potentially long running jobs, e.g. sync/sync,
8579 sync/copy, sync/move, operations/purge are run with the _async flag to
8580 avoid any potential problems with the HTTP request and response timing
8581 out.
8582
8583 Starting a job with the _async flag:
8584
8585 $ rclone rc --json '{ "p1": [1,"2",null,4], "p2": { "a":1, "b":2 }, "_async": true }' rc/noop
8586 {
8587 "jobid": 2
8588 }
8589
8590 Query the status to see if the job has finished. For more information
8591 on the meaning of these return parameters see the job/status call.
8592
8593 $ rclone rc --json '{ "jobid":2 }' job/status
8594 {
8595 "duration": 0.000124163,
8596 "endTime": "2018-10-27T11:38:07.911245881+01:00",
8597 "error": "",
8598 "finished": true,
8599 "id": 2,
8600 "output": {
8601 "_async": true,
8602 "p1": [
8603 1,
8604 "2",
8605 null,
8606 4
8607 ],
8608 "p2": {
8609 "a": 1,
8610 "b": 2
8611 }
8612 },
8613 "startTime": "2018-10-27T11:38:07.911121728+01:00",
8614 "success": true
8615 }
8616
8617 job/list can be used to show the running or recently completed jobs
8618
8619 $ rclone rc job/list
8620 {
8621 "jobids": [
8622 2
8623 ]
8624 }
8625
8626 Assigning operations to groups with _group = value
8627 Each rc call has its own stats group for tracking its metrics. By de‐
8628 fault grouping is done by the composite group name from prefix job/ and
8629 id of the job like so job/1.
8630
8631 If _group has a value then stats for that request will be grouped under
8632 that value. This allows caller to group stats under their own name.
8633
8634 Stats for specific group can be accessed by passing group to
8635 core/stats:
8636
8637 $ rclone rc --json '{ "group": "job/1" }' core/stats
8638 {
8639 "speed": 12345
8640 ...
8641 }
8642
8643 Supported commands
8644 backend/command: Runs a backend command.
8645 This takes the following parameters
8646
8647 · command - a string with the command name
8648
8649 · fs - a remote name string e.g. "drive:"
8650
8651 · arg - a list of arguments for the backend command
8652
8653 · opt - a map of string to string of options
8654
8655 Returns
8656
8657 · result - result from the backend command
8658
8659 For example
8660
8661 rclone rc backend/command command=noop fs=. -o echo=yes -o blue -a path1 -a path2
8662
8663 Returns
8664
8665 {
8666 "result": {
8667 "arg": [
8668 "path1",
8669 "path2"
8670 ],
8671 "name": "noop",
8672 "opt": {
8673 "blue": "",
8674 "echo": "yes"
8675 }
8676 }
8677 }
8678
8679 Note that this is the direct equivalent of using this "backend" com‐
8680 mand:
8681
8682 rclone backend noop . -o echo=yes -o blue path1 path2
8683
8684 Note that arguments must be preceded by the "-a" flag
8685
8686 See the backend (https://rclone.org/commands/rclone_backend/) command
8687 for more information.
8688
8689 Authentication is required for this call.
8690
8691 cache/expire: Purge a remote from cache
8692 Purge a remote from the cache backend. Supports either a directory or
8693 a file. Params: - remote = path to remote (required) - withData =
8694 true/false to delete cached data (chunks) as well (optional)
8695
8696 Eg
8697
8698 rclone rc cache/expire remote=path/to/sub/folder/
8699 rclone rc cache/expire remote=/ withData=true
8700
8701 cache/fetch: Fetch file chunks
8702 Ensure the specified file chunks are cached on disk.
8703
8704 The chunks= parameter specifies the file chunks to check. It takes a
8705 comma separated list of array slice indices. The slice indices are
8706 similar to Python slices: start[:end]
8707
8708 start is the 0 based chunk number from the beginning of the file to
8709 fetch inclusive. end is 0 based chunk number from the beginning of the
8710 file to fetch exclusive. Both values can be negative, in which case
8711 they count from the back of the file. The value "-5:" represents the
8712 last 5 chunks of a file.
8713
8714 Some valid examples are: ":5,-5:" -> the first and last five chunks
8715 "0,-2" -> the first and the second last chunk "0:10" -> the first ten
8716 chunks
8717
8718 Any parameter with a key that starts with "file" can be used to specify
8719 files to fetch, e.g.
8720
8721 rclone rc cache/fetch chunks=0 file=hello file2=home/goodbye
8722
8723 File names will automatically be encrypted when the a crypt remote is
8724 used on top of the cache.
8725
8726 cache/stats: Get cache stats
8727 Show statistics for the cache remote.
8728
8729 config/create: create the config for a remote.
8730 This takes the following parameters
8731
8732 · name - name of remote
8733
8734 · parameters - a map of { "key": "value" } pairs
8735
8736 · type - type of the new remote
8737
8738 · obscure - optional bool - forces obscuring of passwords
8739
8740 · noObscure - optional bool - forces passwords not to be obscured
8741
8742 See the config create command (https://rclone.org/commands/rclone_con‐
8743 fig_create/) command for more information on the above.
8744
8745 Authentication is required for this call.
8746
8747 config/delete: Delete a remote in the config file.
8748 Parameters:
8749
8750 · name - name of remote to delete
8751
8752 See the config delete command (https://rclone.org/commands/rclone_con‐
8753 fig_delete/) command for more information on the above.
8754
8755 Authentication is required for this call.
8756
8757 config/dump: Dumps the config file.
8758 Returns a JSON object: - key: value
8759
8760 Where keys are remote names and values are the config parameters.
8761
8762 See the config dump command (https://rclone.org/commands/rclone_con‐
8763 fig_dump/) command for more information on the above.
8764
8765 Authentication is required for this call.
8766
8767 config/get: Get a remote in the config file.
8768 Parameters:
8769
8770 · name - name of remote to get
8771
8772 See the config dump command (https://rclone.org/commands/rclone_con‐
8773 fig_dump/) command for more information on the above.
8774
8775 Authentication is required for this call.
8776
8777 config/listremotes: Lists the remotes in the config file.
8778 Returns - remotes - array of remote names
8779
8780 See the listremotes command (https://rclone.org/com‐
8781 mands/rclone_listremotes/) command for more information on the above.
8782
8783 Authentication is required for this call.
8784
8785 config/password: password the config for a remote.
8786 This takes the following parameters
8787
8788 · name - name of remote
8789
8790 · parameters - a map of { "key": "value" } pairs
8791
8792 See the config password command (https://rclone.org/com‐
8793 mands/rclone_config_password/) command for more information on the
8794 above.
8795
8796 Authentication is required for this call.
8797
8798 config/providers: Shows how providers are configured in the config file.
8799 Returns a JSON object: - providers - array of objects
8800
8801 See the config providers command (https://rclone.org/com‐
8802 mands/rclone_config_providers/) command for more information on the
8803 above.
8804
8805 Authentication is required for this call.
8806
8807 config/update: update the config for a remote.
8808 This takes the following parameters
8809
8810 · name - name of remote
8811
8812 · parameters - a map of { "key": "value" } pairs
8813
8814 · obscure - optional bool - forces obscuring of passwords
8815
8816 · noObscure - optional bool - forces passwords not to be obscured
8817
8818 See the config update command (https://rclone.org/commands/rclone_con‐
8819 fig_update/) command for more information on the above.
8820
8821 Authentication is required for this call.
8822
8823 core/bwlimit: Set the bandwidth limit.
8824 This sets the bandwidth limit to the string passed in. This should be
8825 a single bandwidth limit entry or a pair of upload:download bandwidth.
8826
8827 Eg
8828
8829 rclone rc core/bwlimit rate=off
8830 {
8831 "bytesPerSecond": -1,
8832 "bytesPerSecondTx": -1,
8833 "bytesPerSecondRx": -1,
8834 "rate": "off"
8835 }
8836 rclone rc core/bwlimit rate=1M
8837 {
8838 "bytesPerSecond": 1048576,
8839 "bytesPerSecondTx": 1048576,
8840 "bytesPerSecondRx": 1048576,
8841 "rate": "1M"
8842 }
8843 rclone rc core/bwlimit rate=1M:100k
8844 {
8845 "bytesPerSecond": 1048576,
8846 "bytesPerSecondTx": 1048576,
8847 "bytesPerSecondRx": 131072,
8848 "rate": "1M"
8849 }
8850
8851 If the rate parameter is not supplied then the bandwidth is queried
8852
8853 rclone rc core/bwlimit
8854 {
8855 "bytesPerSecond": 1048576,
8856 "bytesPerSecondTx": 1048576,
8857 "bytesPerSecondRx": 1048576,
8858 "rate": "1M"
8859 }
8860
8861 The format of the parameter is exactly the same as passed to --bwlimit
8862 except only one bandwidth may be specified.
8863
8864 In either case "rate" is returned as a human readable string, and
8865 "bytesPerSecond" is returned as a number.
8866
8867 core/command: Run a rclone terminal command over rc.
8868 This takes the following parameters
8869
8870 · command - a string with the command name
8871
8872 · arg - a list of arguments for the backend command
8873
8874 · opt - a map of string to string of options
8875
8876 · returnType - one of ("COMBINED_OUTPUT", "STREAM", "STREAM_ONLY_STD‐
8877 OUT", "STREAM_ONLY_STDERR")
8878
8879 · defaults to "COMBINED_OUTPUT" if not set
8880
8881 · the STREAM returnTypes will write the output to the body of the
8882 HTTP message
8883
8884 · the COMBINED_OUTPUT will write the output to the "result" parameter
8885
8886 Returns
8887
8888 · result - result from the backend command
8889
8890 · only set when using returnType "COMBINED_OUTPUT"
8891
8892 · error - set if rclone exits with an error code
8893
8894 · returnType - one of ("COMBINED_OUTPUT", "STREAM", "STREAM_ONLY_STD‐
8895 OUT", "STREAM_ONLY_STDERR")
8896
8897 For example
8898
8899 rclone rc core/command command=ls -a mydrive:/ -o max-depth=1
8900 rclone rc core/command -a ls -a mydrive:/ -o max-depth=1
8901
8902 Returns
8903
8904 {
8905 "error": false,
8906 "result": "<Raw command line output>"
8907 }
8908
8909 OR
8910 {
8911 "error": true,
8912 "result": "<Raw command line output>"
8913 }
8914
8915 Authentication is required for this call.
8916
8917 core/gc: Runs a garbage collection.
8918 This tells the go runtime to do a garbage collection run. It isn't
8919 necessary to call this normally, but it can be useful for debugging
8920 memory problems.
8921
8922 core/group-list: Returns list of stats.
8923 This returns list of stats groups currently in memory.
8924
8925 Returns the following values:
8926
8927 {
8928 "groups": an array of group names:
8929 [
8930 "group1",
8931 "group2",
8932 ...
8933 ]
8934 }
8935
8936 core/memstats: Returns the memory statistics
8937 This returns the memory statistics of the running program. What the
8938 values mean are explained in the go docs: https://golang.org/pkg/run‐
8939 time/#MemStats
8940
8941 The most interesting values for most people are:
8942
8943 · HeapAlloc: This is the amount of memory rclone is actually using
8944
8945 · HeapSys: This is the amount of memory rclone has obtained from the OS
8946
8947 · Sys: this is the total amount of memory requested from the OS
8948
8949 · It is virtual memory so may include unused memory
8950
8951 core/obscure: Obscures a string passed in.
8952 Pass a clear string and rclone will obscure it for the config file: -
8953 clear - string
8954
8955 Returns - obscured - string
8956
8957 core/pid: Return PID of current process
8958 This returns PID of current process. Useful for stopping rclone
8959 process.
8960
8961 core/quit: Terminates the app.
8962 (optional) Pass an exit code to be used for terminating the app: - ex‐
8963 itCode - int
8964
8965 core/stats: Returns stats about current transfers.
8966 This returns all available stats:
8967
8968 rclone rc core/stats
8969
8970 If group is not provided then summed up stats for all groups will be
8971 returned.
8972
8973 Parameters
8974
8975 · group - name of the stats group (string)
8976
8977 Returns the following values:
8978
8979 {
8980 "speed": average speed in bytes/sec since start of the process,
8981 "bytes": total transferred bytes since the start of the process,
8982 "errors": number of errors,
8983 "fatalError": whether there has been at least one FatalError,
8984 "retryError": whether there has been at least one non-NoRetryError,
8985 "checks": number of checked files,
8986 "transfers": number of transferred files,
8987 "deletes" : number of deleted files,
8988 "renames" : number of renamed files,
8989 "transferTime" : total time spent on running jobs,
8990 "elapsedTime": time in seconds since the start of the process,
8991 "lastError": last occurred error,
8992 "transferring": an array of currently active file transfers:
8993 [
8994 {
8995 "bytes": total transferred bytes for this file,
8996 "eta": estimated time in seconds until file transfer completion
8997 "name": name of the file,
8998 "percentage": progress of the file transfer in percent,
8999 "speed": average speed over the whole transfer in bytes/sec,
9000 "speedAvg": current speed in bytes/sec as an exponentially weighted moving average,
9001 "size": size of the file in bytes
9002 }
9003 ],
9004 "checking": an array of names of currently active file checks
9005 []
9006 }
9007
9008 Values for "transferring", "checking" and "lastError" are only assigned
9009 if data is available. The value for "eta" is null if an eta cannot be
9010 determined.
9011
9012 core/stats-delete: Delete stats group.
9013 This deletes entire stats group
9014
9015 Parameters
9016
9017 · group - name of the stats group (string)
9018
9019 core/stats-reset: Reset stats.
9020 This clears counters, errors and finished transfers for all stats or
9021 specific stats group if group is provided.
9022
9023 Parameters
9024
9025 · group - name of the stats group (string)
9026
9027 core/transferred: Returns stats about completed transfers.
9028 This returns stats about completed transfers:
9029
9030 rclone rc core/transferred
9031
9032 If group is not provided then completed transfers for all groups will
9033 be returned.
9034
9035 Note only the last 100 completed transfers are returned.
9036
9037 Parameters
9038
9039 · group - name of the stats group (string)
9040
9041 Returns the following values:
9042
9043 {
9044 "transferred": an array of completed transfers (including failed ones):
9045 [
9046 {
9047 "name": name of the file,
9048 "size": size of the file in bytes,
9049 "bytes": total transferred bytes for this file,
9050 "checked": if the transfer is only checked (skipped, deleted),
9051 "timestamp": integer representing millisecond unix epoch,
9052 "error": string description of the error (empty if successful),
9053 "jobid": id of the job that this transfer belongs to
9054 }
9055 ]
9056 }
9057
9058 core/version: Shows the current version of rclone and the go runtime.
9059 This shows the current version of go and the go runtime
9060
9061 · version - rclone version, e.g. "v1.53.0"
9062
9063 · decomposed - version number as [major, minor, patch]
9064
9065 · isGit - boolean - true if this was compiled from the git version
9066
9067 · isBeta - boolean - true if this is a beta version
9068
9069 · os - OS in use as according to Go
9070
9071 · arch - cpu architecture in use according to Go
9072
9073 · goVersion - version of Go runtime in use
9074
9075 debug/set-block-profile-rate: Set runtime.SetBlockProfileRate for blocking
9076 profiling.
9077 SetBlockProfileRate controls the fraction of goroutine blocking events
9078 that are reported in the blocking profile. The profiler aims to sample
9079 an average of one blocking event per rate nanoseconds spent blocked.
9080
9081 To include every blocking event in the profile, pass rate = 1. To turn
9082 off profiling entirely, pass rate <= 0.
9083
9084 After calling this you can use this to see the blocking profile:
9085
9086 go tool pprof http://localhost:5572/debug/pprof/block
9087
9088 Parameters
9089
9090 · rate - int
9091
9092 debug/set-mutex-profile-fraction: Set runtime.SetMutexProfileFraction for
9093 mutex profiling.
9094 SetMutexProfileFraction controls the fraction of mutex contention
9095 events that are reported in the mutex profile. On average 1/rate
9096 events are reported. The previous rate is returned.
9097
9098 To turn off profiling entirely, pass rate 0. To just read the current
9099 rate, pass rate < 0. (For n>1 the details of sampling may change.)
9100
9101 Once this is set you can look use this to profile the mutex contention:
9102
9103 go tool pprof http://localhost:5572/debug/pprof/mutex
9104
9105 Parameters
9106
9107 · rate - int
9108
9109 Results
9110
9111 · previousRate - int
9112
9113 job/list: Lists the IDs of the running jobs
9114 Parameters - None
9115
9116 Results
9117
9118 · jobids - array of integer job ids
9119
9120 job/status: Reads the status of the job ID
9121 Parameters
9122
9123 · jobid - id of the job (integer)
9124
9125 Results
9126
9127 · finished - boolean
9128
9129 · duration - time in seconds that the job ran for
9130
9131 · endTime - time the job finished (e.g.
9132 "2018-10-26T18:50:20.528746884+01:00")
9133
9134 · error - error from the job or empty string for no error
9135
9136 · finished - boolean whether the job has finished or not
9137
9138 · id - as passed in above
9139
9140 · startTime - time the job started (e.g.
9141 "2018-10-26T18:50:20.528336039+01:00")
9142
9143 · success - boolean - true for success false otherwise
9144
9145 · output - output of the job as would have been returned if called syn‐
9146 chronously
9147
9148 · progress - output of the progress related to the underlying job
9149
9150 job/stop: Stop the running job
9151 Parameters
9152
9153 · jobid - id of the job (integer)
9154
9155 mount/listmounts: Show current mount points
9156 This shows currently mounted points, which can be used for performing
9157 an unmount
9158
9159 This takes no parameters and returns
9160
9161 · mountPoints: list of current mount points
9162
9163 Eg
9164
9165 rclone rc mount/listmounts
9166
9167 Authentication is required for this call.
9168
9169 mount/mount: Create a new mount point
9170 rclone allows Linux, FreeBSD, macOS and Windows to mount any of
9171 Rclone's cloud storage systems as a file system with FUSE.
9172
9173 If no mountType is provided, the priority is given as follows: 1.
9174 mount 2.cmount 3.mount2
9175
9176 This takes the following parameters
9177
9178 · fs - a remote path to be mounted (required)
9179
9180 · mountPoint: valid path on the local machine (required)
9181
9182 · mountType: One of the values (mount, cmount, mount2) specifies the
9183 mount implementation to use
9184
9185 · mountOpt: a JSON object with Mount options in.
9186
9187 · vfsOpt: a JSON object with VFS options in.
9188
9189 Eg
9190
9191 rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint
9192 rclone rc mount/mount fs=mydrive: mountPoint=/home/<user>/mountPoint mountType=mount
9193 rclone rc mount/mount fs=TestDrive: mountPoint=/mnt/tmp vfsOpt='{"CacheMode": 2}' mountOpt='{"AllowOther": true}'
9194
9195 The vfsOpt are as described in options/get and can be seen in the the
9196 "vfs" section when running and the mountOpt can be seen in the "mount"
9197 section.
9198
9199 rclone rc options/get
9200
9201 Authentication is required for this call.
9202
9203 mount/types: Show all possible mount types
9204 This shows all possible mount types and returns them as a list.
9205
9206 This takes no parameters and returns
9207
9208 · mountTypes: list of mount types
9209
9210 The mount types are strings like "mount", "mount2", "cmount" and can be
9211 passed to mount/mount as the mountType parameter.
9212
9213 Eg
9214
9215 rclone rc mount/types
9216
9217 Authentication is required for this call.
9218
9219 mount/unmount: Unmount selected active mount
9220 rclone allows Linux, FreeBSD, macOS and Windows to mount any of
9221 Rclone's cloud storage systems as a file system with FUSE.
9222
9223 This takes the following parameters
9224
9225 · mountPoint: valid path on the local machine where the mount was cre‐
9226 ated (required)
9227
9228 Eg
9229
9230 rclone rc mount/unmount mountPoint=/home/<user>/mountPoint
9231
9232 Authentication is required for this call.
9233
9234 mount/unmountall: Show current mount points
9235 This shows currently mounted points, which can be used for performing
9236 an unmount
9237
9238 This takes no parameters and returns error if unmount does not succeed.
9239
9240 Eg
9241
9242 rclone rc mount/unmountall
9243
9244 Authentication is required for this call.
9245
9246 operations/about: Return the space used on the remote
9247 This takes the following parameters
9248
9249 · fs - a remote name string e.g. "drive:"
9250
9251 The result is as returned from rclone about --json
9252
9253 See the about command (https://rclone.org/commands/rclone_size/) com‐
9254 mand for more information on the above.
9255
9256 Authentication is required for this call.
9257
9258 operations/cleanup: Remove trashed files in the remote or path
9259 This takes the following parameters
9260
9261 · fs - a remote name string e.g. "drive:"
9262
9263 See the cleanup command (https://rclone.org/commands/rclone_cleanup/)
9264 command for more information on the above.
9265
9266 Authentication is required for this call.
9267
9268 operations/copyfile: Copy a file from source remote to destination remote
9269 This takes the following parameters
9270
9271 · srcFs - a remote name string e.g. "drive:" for the source
9272
9273 · srcRemote - a path within that remote e.g. "file.txt" for the source
9274
9275 · dstFs - a remote name string e.g. "drive2:" for the destination
9276
9277 · dstRemote - a path within that remote e.g. "file2.txt" for the des‐
9278 tination
9279
9280 Authentication is required for this call.
9281
9282 operations/copyurl: Copy the URL to the object
9283 This takes the following parameters
9284
9285 · fs - a remote name string e.g. "drive:"
9286
9287 · remote - a path within that remote e.g. "dir"
9288
9289 · url - string, URL to read from
9290
9291 · autoFilename - boolean, set to true to retrieve destination file name
9292 from url See the copyurl command (https://rclone.org/com‐
9293 mands/rclone_copyurl/) command for more information on the above.
9294
9295 Authentication is required for this call.
9296
9297 operations/delete: Remove files in the path
9298 This takes the following parameters
9299
9300 · fs - a remote name string e.g. "drive:"
9301
9302 See the delete command (https://rclone.org/commands/rclone_delete/)
9303 command for more information on the above.
9304
9305 Authentication is required for this call.
9306
9307 operations/deletefile: Remove the single file pointed to
9308 This takes the following parameters
9309
9310 · fs - a remote name string e.g. "drive:"
9311
9312 · remote - a path within that remote e.g. "dir"
9313
9314 See the deletefile command (https://rclone.org/commands/rclone_delete‐
9315 file/) command for more information on the above.
9316
9317 Authentication is required for this call.
9318
9319 operations/fsinfo: Return information about the remote
9320 This takes the following parameters
9321
9322 · fs - a remote name string e.g. "drive:"
9323
9324 This returns info about the remote passed in;
9325
9326 {
9327 // optional features and whether they are available or not
9328 "Features": {
9329 "About": true,
9330 "BucketBased": false,
9331 "CanHaveEmptyDirectories": true,
9332 "CaseInsensitive": false,
9333 "ChangeNotify": false,
9334 "CleanUp": false,
9335 "Copy": false,
9336 "DirCacheFlush": false,
9337 "DirMove": true,
9338 "DuplicateFiles": false,
9339 "GetTier": false,
9340 "ListR": false,
9341 "MergeDirs": false,
9342 "Move": true,
9343 "OpenWriterAt": true,
9344 "PublicLink": false,
9345 "Purge": true,
9346 "PutStream": true,
9347 "PutUnchecked": false,
9348 "ReadMimeType": false,
9349 "ServerSideAcrossConfigs": false,
9350 "SetTier": false,
9351 "SetWrapper": false,
9352 "UnWrap": false,
9353 "WrapFs": false,
9354 "WriteMimeType": false
9355 },
9356 // Names of hashes available
9357 "Hashes": [
9358 "MD5",
9359 "SHA-1",
9360 "DropboxHash",
9361 "QuickXorHash"
9362 ],
9363 "Name": "local", // Name as created
9364 "Precision": 1, // Precision of timestamps in ns
9365 "Root": "/", // Path as created
9366 "String": "Local file system at /" // how the remote will appear in logs
9367 }
9368
9369 This command does not have a command line equivalent so use this in‐
9370 stead:
9371
9372 rclone rc --loopback operations/fsinfo fs=remote:
9373
9374 operations/list: List the given remote and path in JSON format
9375 This takes the following parameters
9376
9377 · fs - a remote name string e.g. "drive:"
9378
9379 · remote - a path within that remote e.g. "dir"
9380
9381 · opt - a dictionary of options to control the listing (optional)
9382
9383 · recurse - If set recurse directories
9384
9385 · noModTime - If set return modification time
9386
9387 · showEncrypted - If set show decrypted names
9388
9389 · showOrigIDs - If set show the IDs for each item if known
9390
9391 · showHash - If set return a dictionary of hashes
9392
9393 The result is
9394
9395 · list
9396
9397 · This is an array of objects as described in the lsjson command
9398
9399 See the lsjson command (https://rclone.org/commands/rclone_lsjson/) for
9400 more information on the above and examples.
9401
9402 Authentication is required for this call.
9403
9404 operations/mkdir: Make a destination directory or container
9405 This takes the following parameters
9406
9407 · fs - a remote name string e.g. "drive:"
9408
9409 · remote - a path within that remote e.g. "dir"
9410
9411 See the mkdir command (https://rclone.org/commands/rclone_mkdir/) com‐
9412 mand for more information on the above.
9413
9414 Authentication is required for this call.
9415
9416 operations/movefile: Move a file from source remote to destination remote
9417 This takes the following parameters
9418
9419 · srcFs - a remote name string e.g. "drive:" for the source
9420
9421 · srcRemote - a path within that remote e.g. "file.txt" for the source
9422
9423 · dstFs - a remote name string e.g. "drive2:" for the destination
9424
9425 · dstRemote - a path within that remote e.g. "file2.txt" for the des‐
9426 tination
9427
9428 Authentication is required for this call.
9429
9430 operations/publiclink: Create or retrieve a public link to the given file
9431 or folder.
9432 This takes the following parameters
9433
9434 · fs - a remote name string e.g. "drive:"
9435
9436 · remote - a path within that remote e.g. "dir"
9437
9438 · unlink - boolean - if set removes the link rather than adding it (op‐
9439 tional)
9440
9441 · expire - string - the expiry time of the link e.g. "1d" (optional)
9442
9443 Returns
9444
9445 · url - URL of the resource
9446
9447 See the link command (https://rclone.org/commands/rclone_link/) command
9448 for more information on the above.
9449
9450 Authentication is required for this call.
9451
9452 operations/purge: Remove a directory or container and all of its contents
9453 This takes the following parameters
9454
9455 · fs - a remote name string e.g. "drive:"
9456
9457 · remote - a path within that remote e.g. "dir"
9458
9459 See the purge command (https://rclone.org/commands/rclone_purge/) com‐
9460 mand for more information on the above.
9461
9462 Authentication is required for this call.
9463
9464 operations/rmdir: Remove an empty directory or container
9465 This takes the following parameters
9466
9467 · fs - a remote name string e.g. "drive:"
9468
9469 · remote - a path within that remote e.g. "dir"
9470
9471 See the rmdir command (https://rclone.org/commands/rclone_rmdir/) com‐
9472 mand for more information on the above.
9473
9474 Authentication is required for this call.
9475
9476 operations/rmdirs: Remove all the empty directories in the path
9477 This takes the following parameters
9478
9479 · fs - a remote name string e.g. "drive:"
9480
9481 · remote - a path within that remote e.g. "dir"
9482
9483 · leaveRoot - boolean, set to true not to delete the root
9484
9485 See the rmdirs command (https://rclone.org/commands/rclone_rmdirs/)
9486 command for more information on the above.
9487
9488 Authentication is required for this call.
9489
9490 operations/size: Count the number of bytes and files in remote
9491 This takes the following parameters
9492
9493 · fs - a remote name string e.g. "drive:path/to/dir"
9494
9495 Returns
9496
9497 · count - number of files
9498
9499 · bytes - number of bytes in those files
9500
9501 See the size command (https://rclone.org/commands/rclone_size/) command
9502 for more information on the above.
9503
9504 Authentication is required for this call.
9505
9506 operations/uploadfile: Upload file using multiform/form-data
9507 This takes the following parameters
9508
9509 · fs - a remote name string e.g. "drive:"
9510
9511 · remote - a path within that remote e.g. "dir"
9512
9513 · each part in body represents a file to be uploaded See the uploadfile
9514 command (https://rclone.org/commands/rclone_uploadfile/) command for
9515 more information on the above.
9516
9517 Authentication is required for this call.
9518
9519 options/blocks: List all the option blocks
9520 Returns - options - a list of the options block names
9521
9522 options/get: Get all the options
9523 Returns an object where keys are option block names and values are an
9524 object with the current option values in.
9525
9526 This shows the internal names of the option within rclone which should
9527 map to the external options very easily with a few exceptions.
9528
9529 options/set: Set an option
9530 Parameters
9531
9532 · option block name containing an object with
9533
9534 · key: value
9535
9536 Repeated as often as required.
9537
9538 Only supply the options you wish to change. If an option is unknown it
9539 will be silently ignored. Not all options will have an effect when
9540 changed like this.
9541
9542 For example:
9543
9544 This sets DEBUG level logs (-vv)
9545
9546 rclone rc options/set --json '{"main": {"LogLevel": 8}}'
9547
9548 And this sets INFO level logs (-v)
9549
9550 rclone rc options/set --json '{"main": {"LogLevel": 7}}'
9551
9552 And this sets NOTICE level logs (normal without -v)
9553
9554 rclone rc options/set --json '{"main": {"LogLevel": 6}}'
9555
9556 pluginsctl/addPlugin: Add a plugin using url
9557 used for adding a plugin to the webgui
9558
9559 This takes the following parameters
9560
9561 · url: http url of the github repo where the plugin is hosted
9562 (http://github.com/rclone/rclone-webui-react)
9563
9564 Eg
9565
9566 rclone rc pluginsctl/addPlugin
9567
9568 Authentication is required for this call.
9569
9570 pluginsctl/getPluginsForType: Get plugins with type criteria
9571 This shows all possible plugins by a mime type
9572
9573 This takes the following parameters
9574
9575 · type: supported mime type by a loaded plugin e.g. (video/mp4, au‐
9576 dio/mp3)
9577
9578 · pluginType: filter plugins based on their type e.g. (DASHBOARD,
9579 FILE_HANDLER, TERMINAL)
9580
9581 and returns
9582
9583 · loadedPlugins: list of current production plugins
9584
9585 · testPlugins: list of temporarily loaded development plugins, usually
9586 running on a different server.
9587
9588 Eg
9589
9590 rclone rc pluginsctl/getPluginsForType type=video/mp4
9591
9592 Authentication is required for this call.
9593
9594 pluginsctl/listPlugins: Get the list of currently loaded plugins
9595 This allows you to get the currently enabled plugins and their details.
9596
9597 This takes no parameters and returns
9598
9599 · loadedPlugins: list of current production plugins
9600
9601 · testPlugins: list of temporarily loaded development plugins, usually
9602 running on a different server.
9603
9604 Eg
9605
9606 rclone rc pluginsctl/listPlugins
9607
9608 Authentication is required for this call.
9609
9610 pluginsctl/listTestPlugins: Show currently loaded test plugins
9611 allows listing of test plugins with the rclone.test set to true in
9612 package.json of the plugin
9613
9614 This takes no parameters and returns
9615
9616 · loadedTestPlugins: list of currently available test plugins
9617
9618 Eg
9619
9620 rclone rc pluginsctl/listTestPlugins
9621
9622 Authentication is required for this call.
9623
9624 pluginsctl/removePlugin: Remove a loaded plugin
9625 This allows you to remove a plugin using it's name
9626
9627 This takes parameters
9628
9629 · name: name of the plugin in the format author/plugin_name
9630
9631 Eg
9632
9633 rclone rc pluginsctl/removePlugin name=rclone/video-plugin
9634
9635 Authentication is required for this call.
9636
9637 pluginsctl/removeTestPlugin: Remove a test plugin
9638 This allows you to remove a plugin using it's name
9639
9640 This takes the following parameters
9641
9642 · name: name of the plugin in the format author/plugin_name
9643
9644 Eg
9645
9646 rclone rc pluginsctl/removeTestPlugin name=rclone/rclone-webui-react
9647
9648 Authentication is required for this call.
9649
9650 rc/error: This returns an error
9651 This returns an error with the input as part of its error string. Use‐
9652 ful for testing error handling.
9653
9654 rc/list: List all the registered remote control commands
9655 This lists all the registered remote control commands as a JSON map in
9656 the commands response.
9657
9658 rc/noop: Echo the input to the output parameters
9659 This echoes the input parameters to the output parameters for testing
9660 purposes. It can be used to check that rclone is still alive and to
9661 check that parameter passing is working properly.
9662
9663 rc/noopauth: Echo the input to the output parameters requiring auth
9664 This echoes the input parameters to the output parameters for testing
9665 purposes. It can be used to check that rclone is still alive and to
9666 check that parameter passing is working properly.
9667
9668 Authentication is required for this call.
9669
9670 sync/copy: copy a directory from source remote to destination remote
9671 This takes the following parameters
9672
9673 · srcFs - a remote name string e.g. "drive:src" for the source
9674
9675 · dstFs - a remote name string e.g. "drive:dst" for the destination
9676
9677 See the copy command (https://rclone.org/commands/rclone_copy/) command
9678 for more information on the above.
9679
9680 Authentication is required for this call.
9681
9682 sync/move: move a directory from source remote to destination remote
9683 This takes the following parameters
9684
9685 · srcFs - a remote name string e.g. "drive:src" for the source
9686
9687 · dstFs - a remote name string e.g. "drive:dst" for the destination
9688
9689 · deleteEmptySrcDirs - delete empty src directories if set
9690
9691 See the move command (https://rclone.org/commands/rclone_move/) command
9692 for more information on the above.
9693
9694 Authentication is required for this call.
9695
9696 sync/sync: sync a directory from source remote to destination remote
9697 This takes the following parameters
9698
9699 · srcFs - a remote name string e.g. "drive:src" for the source
9700
9701 · dstFs - a remote name string e.g. "drive:dst" for the destination
9702
9703 See the sync command (https://rclone.org/commands/rclone_sync/) command
9704 for more information on the above.
9705
9706 Authentication is required for this call.
9707
9708 vfs/forget: Forget files or directories in the directory cache.
9709 This forgets the paths in the directory cache causing them to be
9710 re-read from the remote when needed.
9711
9712 If no paths are passed in then it will forget all the paths in the di‐
9713 rectory cache.
9714
9715 rclone rc vfs/forget
9716
9717 Otherwise pass files or dirs in as file=path or dir=path. Any parame‐
9718 ter key starting with file will forget that file and any starting with
9719 dir will forget that dir, e.g.
9720
9721 rclone rc vfs/forget file=hello file2=goodbye dir=home/junk
9722
9723 This command takes an "fs" parameter. If this parameter is not sup‐
9724 plied and if there is only one VFS in use then that VFS will be used.
9725 If there is more than one VFS in use then the "fs" parameter must be
9726 supplied.
9727
9728 vfs/list: List active VFSes.
9729 This lists the active VFSes.
9730
9731 It returns a list under the key "vfses" where the values are the VFS
9732 names that could be passed to the other VFS commands in the "fs" param‐
9733 eter.
9734
9735 vfs/poll-interval: Get the status or update the value of the poll-interval
9736 option.
9737 Without any parameter given this returns the current status of the
9738 poll-interval setting.
9739
9740 When the interval=duration parameter is set, the poll-interval value is
9741 updated and the polling function is notified. Setting interval=0 dis‐
9742 ables poll-interval.
9743
9744 rclone rc vfs/poll-interval interval=5m
9745
9746 The timeout=duration parameter can be used to specify a time to wait
9747 for the current poll function to apply the new value. If timeout is
9748 less or equal 0, which is the default, wait indefinitely.
9749
9750 The new poll-interval value will only be active when the timeout is not
9751 reached.
9752
9753 If poll-interval is updated or disabled temporarily, some changes might
9754 not get picked up by the polling function, depending on the used re‐
9755 mote.
9756
9757 This command takes an "fs" parameter. If this parameter is not sup‐
9758 plied and if there is only one VFS in use then that VFS will be used.
9759 If there is more than one VFS in use then the "fs" parameter must be
9760 supplied.
9761
9762 vfs/refresh: Refresh the directory cache.
9763 This reads the directories for the specified paths and freshens the di‐
9764 rectory cache.
9765
9766 If no paths are passed in then it will refresh the root directory.
9767
9768 rclone rc vfs/refresh
9769
9770 Otherwise pass directories in as dir=path. Any parameter key starting
9771 with dir will refresh that directory, e.g.
9772
9773 rclone rc vfs/refresh dir=home/junk dir2=data/misc
9774
9775 If the parameter recursive=true is given the whole directory tree will
9776 get refreshed. This refresh will use --fast-list if enabled.
9777
9778 This command takes an "fs" parameter. If this parameter is not sup‐
9779 plied and if there is only one VFS in use then that VFS will be used.
9780 If there is more than one VFS in use then the "fs" parameter must be
9781 supplied.
9782
9783 Accessing the remote control via HTTP
9784 Rclone implements a simple HTTP based protocol.
9785
9786 Each endpoint takes an JSON object and returns a JSON object or an er‐
9787 ror. The JSON objects are essentially a map of string names to values.
9788
9789 All calls must made using POST.
9790
9791 The input objects can be supplied using URL parameters, POST parameters
9792 or by supplying "Content-Type: application/json" and a JSON blob in the
9793 body. There are examples of these below using curl.
9794
9795 The response will be a JSON blob in the body of the response. This is
9796 formatted to be reasonably human readable.
9797
9798 Error returns
9799 If an error occurs then there will be an HTTP error status (e.g. 500)
9800 and the body of the response will contain a JSON encoded error object,
9801 e.g.
9802
9803 {
9804 "error": "Expecting string value for key \"remote\" (was float64)",
9805 "input": {
9806 "fs": "/tmp",
9807 "remote": 3
9808 },
9809 "status": 400
9810 "path": "operations/rmdir",
9811 }
9812
9813 The keys in the error response are - error - error string - input - the
9814 input parameters to the call - status - the HTTP status code - path -
9815 the path of the call
9816
9817 CORS
9818 The sever implements basic CORS support and allows all origins for
9819 that. The response to a preflight OPTIONS request will echo the re‐
9820 quested "Access-Control-Request-Headers" back.
9821
9822 Using POST with URL parameters only
9823 curl -X POST 'http://localhost:5572/rc/noop?potato=1&sausage=2'
9824
9825 Response
9826
9827 {
9828 "potato": "1",
9829 "sausage": "2"
9830 }
9831
9832 Here is what an error response looks like:
9833
9834 curl -X POST 'http://localhost:5572/rc/error?potato=1&sausage=2'
9835
9836 {
9837 "error": "arbitrary error on input map[potato:1 sausage:2]",
9838 "input": {
9839 "potato": "1",
9840 "sausage": "2"
9841 }
9842 }
9843
9844 Note that curl doesn't return errors to the shell unless you use the -f
9845 option
9846
9847 $ curl -f -X POST 'http://localhost:5572/rc/error?potato=1&sausage=2'
9848 curl: (22) The requested URL returned error: 400 Bad Request
9849 $ echo $?
9850 22
9851
9852 Using POST with a form
9853 curl --data "potato=1" --data "sausage=2" http://localhost:5572/rc/noop
9854
9855 Response
9856
9857 {
9858 "potato": "1",
9859 "sausage": "2"
9860 }
9861
9862 Note that you can combine these with URL parameters too with the POST
9863 parameters taking precedence.
9864
9865 curl --data "potato=1" --data "sausage=2" "http://localhost:5572/rc/noop?rutabaga=3&sausage=4"
9866
9867 Response
9868
9869 {
9870 "potato": "1",
9871 "rutabaga": "3",
9872 "sausage": "4"
9873 }
9874
9875 Using POST with a JSON blob
9876 curl -H "Content-Type: application/json" -X POST -d '{"potato":2,"sausage":1}' http://localhost:5572/rc/noop
9877
9878 response
9879
9880 {
9881 "password": "xyz",
9882 "username": "xyz"
9883 }
9884
9885 This can be combined with URL parameters too if required. The JSON
9886 blob takes precedence.
9887
9888 curl -H "Content-Type: application/json" -X POST -d '{"potato":2,"sausage":1}' 'http://localhost:5572/rc/noop?rutabaga=3&potato=4'
9889
9890 {
9891 "potato": 2,
9892 "rutabaga": "3",
9893 "sausage": 1
9894 }
9895
9896 Debugging rclone with pprof
9897 If you use the --rc flag this will also enable the use of the go pro‐
9898 filing tools on the same port.
9899
9900 To use these, first install go (https://golang.org/doc/install).
9901
9902 Debugging memory use
9903 To profile rclone's memory use you can run:
9904
9905 go tool pprof -web http://localhost:5572/debug/pprof/heap
9906
9907 This should open a page in your browser showing what is using what mem‐
9908 ory.
9909
9910 You can also use the -text flag to produce a textual summary
9911
9912 $ go tool pprof -text http://localhost:5572/debug/pprof/heap
9913 Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total
9914 flat flat% sum% cum cum%
9915 1024.03kB 66.62% 66.62% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.addDecoderNode
9916 513kB 33.38% 100% 513kB 33.38% net/http.newBufioWriterSize
9917 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/all.init
9918 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/serve.init
9919 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/cmd/serve/restic.init
9920 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2.init
9921 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.init
9922 0 0% 100% 1024.03kB 66.62% github.com/rclone/rclone/vendor/golang.org/x/net/http2/hpack.init.0
9923 0 0% 100% 1024.03kB 66.62% main.init
9924 0 0% 100% 513kB 33.38% net/http.(*conn).readRequest
9925 0 0% 100% 513kB 33.38% net/http.(*conn).serve
9926 0 0% 100% 1024.03kB 66.62% runtime.main
9927
9928 Debugging go routine leaks
9929 Memory leaks are most often caused by go routine leaks keeping memory
9930 alive which should have been garbage collected.
9931
9932 See all active go routines using
9933
9934 curl http://localhost:5572/debug/pprof/goroutine?debug=1
9935
9936 Or go to http://localhost:5572/debug/pprof/goroutine?debug=1 in your
9937 browser.
9938
9939 Other profiles to look at
9940 You can see a summary of profiles available at http://local‐
9941 host:5572/debug/pprof/
9942
9943 Here is how to use some of them:
9944
9945 · Memory: go tool pprof http://localhost:5572/debug/pprof/heap
9946
9947 · Go routines: curl http://localhost:5572/debug/pprof/goroutine?debug=1
9948
9949 · 30-second CPU profile: go tool pprof http://localhost:5572/de‐
9950 bug/pprof/profile
9951
9952 · 5-second execution trace: wget http://localhost:5572/de‐
9953 bug/pprof/trace?seconds=5
9954
9955 · Goroutine blocking profile
9956
9957 · Enable first with: rclone rc debug/set-block-profile-rate rate=1
9958 (docs)
9959
9960 · go tool pprof http://localhost:5572/debug/pprof/block
9961
9962 · Contended mutexes:
9963
9964 · Enable first with: rclone rc debug/set-mutex-profile-fraction
9965 rate=1 (docs)
9966
9967 · go tool pprof http://localhost:5572/debug/pprof/mutex
9968
9969 See the net/http/pprof docs (https://golang.org/pkg/net/http/pprof/)
9970 for more info on how to use the profiling and for a general overview
9971 see the Go team's blog post on profiling go programs
9972 (https://blog.golang.org/profiling-go-programs).
9973
9974 The profiling hook is zero overhead unless it is used (https://stack‐
9975 overflow.com/q/26545159/164234).
9976
9978 Each cloud storage system is slightly different. Rclone attempts to
9979 provide a unified interface to them, but some underlying differences
9980 show through.
9981
9982 Features
9983 Here is an overview of the major features of each cloud storage system.
9984
9985 Name Hash ModTime Case Insen‐ Duplicate MIME Type
9986 sitive Files
9987 ──────────────────────────────────────────────────────────────────────────
9988 1Fichier Whirlpool No No Yes R
9989 Amazon MD5 No Yes No R
9990 Drive
9991 Amazon S3 MD5 Yes No No R/W
9992 Backblaze SHA1 Yes No No R/W
9993 B2
9994 Box SHA1 Yes Yes No -
9995 Citrix MD5 Yes Yes No -
9996 ShareFile
9997 Dropbox DBHASH ¹ Yes Yes No -
9998 Enterprise - Yes Yes No R/W
9999 File Fabric
10000 FTP - No No No -
10001 Google MD5 Yes No No R/W
10002 Cloud Stor‐
10003 age
10004 Google MD5 Yes No Yes R/W
10005 Drive
10006 Google Pho‐ - No No Yes R
10007 tos
10008 HDFS - Yes No No -
10009 HTTP - No No No R
10010 Hubic MD5 Yes No No R/W
10011 Jottacloud MD5 Yes Yes No R
10012 Koofr MD5 No Yes No -
10013 Mail.ru Mailru ⁶ Yes Yes No -
10014 Cloud
10015 Mega - No No Yes -
10016 Memory MD5 Yes No No -
10017 Microsoft MD5 Yes No No R/W
10018 Azure Blob
10019 Storage
10020 Microsoft SHA1 ⁵ Yes Yes No R
10021 OneDrive
10022 OpenDrive MD5 Yes Yes Partial ⁸ -
10023 OpenStack MD5 Yes No No R/W
10024 Swift
10025 pCloud MD5, SHA1 ⁷ Yes No No W
10026 premiu‐ - No Yes No R
10027 mize.me
10028 put.io CRC-32 Yes No Yes R
10029 QingStor MD5 No No No R/W
10030 Seafile - No No No -
10031 SFTP MD5, SHA1 ² Yes Depends No -
10032 SugarSync - No No No -
10033 Tardigrade - Yes No No -
10034
10035 WebDAV MD5, SHA1 ³ Yes ⁴ Depends No -
10036 Yandex Disk MD5 Yes No No R
10037 Zoho Work‐ - No No No -
10038 Drive
10039 The local All Yes Depends No -
10040 filesystem
10041
10042 Notes
10043 ¹ Dropbox supports its own custom hash (https://www.dropbox.com/devel‐
10044 opers/reference/content-hash). This is an SHA256 sum of all the 4MB
10045 block SHA256s.
10046
10047 ² SFTP supports checksums if the same login has shell access and md5sum
10048 or sha1sum as well as echo are in the remote's PATH.
10049
10050 ³ WebDAV supports hashes when used with Owncloud and Nextcloud only.
10051
10052 ⁴ WebDAV supports modtimes when used with Owncloud and Nextcloud only.
10053
10054 ⁵ Microsoft OneDrive Personal supports SHA1 hashes, whereas OneDrive
10055 for business and SharePoint server support Microsoft's own QuickXorHash
10056 (https://docs.microsoft.com/en-us/onedrive/developer/code-snip‐
10057 pets/quickxorhash).
10058
10059 ⁶ Mail.ru uses its own modified SHA1 hash
10060
10061 ⁷ pCloud only supports SHA1 (not MD5) in its EU region
10062
10063 ⁸ Opendrive does not support creation of duplicate files using their
10064 web client interface or other stock clients, but the underlying storage
10065 platform has been determined to allow duplicate files, and it is possi‐
10066 ble to create them with rclone. It may be that this is a mistake or an
10067 unsupported feature.
10068
10069 Hash
10070 The cloud storage system supports various hash types of the objects.
10071 The hashes are used when transferring data as an integrity check and
10072 can be specifically used with the --checksum flag in syncs and in the
10073 check command.
10074
10075 To use the verify checksums when transferring between cloud storage
10076 systems they must support a common hash type.
10077
10078 ModTime
10079 The cloud storage system supports setting modification times on ob‐
10080 jects. If it does then this enables a using the modification times as
10081 part of the sync. If not then only the size will be checked by de‐
10082 fault, though the MD5SUM can be checked with the --checksum flag.
10083
10084 All cloud storage systems support some kind of date on the object and
10085 these will be set when transferring from the cloud storage system.
10086
10087 Case Insensitive
10088 If a cloud storage systems is case sensitive then it is possible to
10089 have two files which differ only in case, e.g. file.txt and FILE.txt.
10090 If a cloud storage system is case insensitive then that isn't possible.
10091
10092 This can cause problems when syncing between a case insensitive system
10093 and a case sensitive system. The symptom of this is that no matter how
10094 many times you run the sync it never completes fully.
10095
10096 The local filesystem and SFTP may or may not be case sensitive depend‐
10097 ing on OS.
10098
10099 · Windows - usually case insensitive, though case is preserved
10100
10101 · OSX - usually case insensitive, though it is possible to format case
10102 sensitive
10103
10104 · Linux - usually case sensitive, but there are case insensitive file
10105 systems (e.g. FAT formatted USB keys)
10106
10107 Most of the time this doesn't cause any problems as people tend to
10108 avoid files whose name differs only by case even on case sensitive sys‐
10109 tems.
10110
10111 Duplicate files
10112 If a cloud storage system allows duplicate files then it can have two
10113 objects with the same name.
10114
10115 This confuses rclone greatly when syncing - use the rclone dedupe com‐
10116 mand to rename or remove duplicates.
10117
10118 Restricted filenames
10119 Some cloud storage systems might have restrictions on the characters
10120 that are usable in file or directory names. When rclone detects such a
10121 name during a file upload, it will transparently replace the restricted
10122 characters with similar looking Unicode characters.
10123
10124 This process is designed to avoid ambiguous file names as much as pos‐
10125 sible and allow to move files between many cloud storage systems trans‐
10126 parently.
10127
10128 The name shown by rclone to the user or during log output will only
10129 contain a minimal set of replaced characters to ensure correct format‐
10130 ting and not necessarily the actual name used on the cloud storage.
10131
10132 This transformation is reversed when downloading a file or parsing
10133 rclone arguments. For example, when uploading a file named my
10134 file?.txt to Onedrive will be displayed as my file?.txt on the console,
10135 but stored as my file?.txt (the ? gets replaced by the similar looking
10136 ? character) to Onedrive. The reverse transformation allows to read a
10137 fileunusual/name.txt from Google Drive, by passing the name unusu‐
10138 al/name.txt (the / needs to be replaced by the similar looking /
10139 character) on the command line.
10140
10141 Default restricted characters
10142 The table below shows the characters that are replaced by default.
10143
10144 When a replacement character is found in a filename, this character
10145 will be escaped with the ‛ character to avoid ambiguous file names.
10146 (e.g. a file named ␀.txt would shown as ‛␀.txt)
10147
10148 Each cloud storage backend can use a different set of characters, which
10149 will be specified in the documentation for each backend.
10150
10151 Character Value Replacement
10152 ────────────────────────────────
10153 NUL 0x00 ␀
10154 SOH 0x01 ␁
10155 STX 0x02 ␂
10156 ETX 0x03 ␃
10157 EOT 0x04 ␄
10158 ENQ 0x05 ␅
10159 ACK 0x06 ␆
10160 BEL 0x07 ␇
10161 BS 0x08 ␈
10162 HT 0x09 ␉
10163 LF 0x0A ␊
10164 VT 0x0B ␋
10165 FF 0x0C ␌
10166 CR 0x0D ␍
10167 SO 0x0E ␎
10168 SI 0x0F ␏
10169 DLE 0x10 ␐
10170 DC1 0x11 ␑
10171 DC2 0x12 ␒
10172 DC3 0x13 ␓
10173 DC4 0x14 ␔
10174 NAK 0x15 ␕
10175 SYN 0x16 ␖
10176 ETB 0x17 ␗
10177 CAN 0x18 ␘
10178 EM 0x19 ␙
10179 SUB 0x1A ␚
10180 ESC 0x1B ␛
10181 FS 0x1C ␜
10182 GS 0x1D ␝
10183 RS 0x1E ␞
10184 US 0x1F ␟
10185 / 0x2F /
10186 DEL 0x7F ␡
10187
10188 The default encoding will also encode these file names as they are
10189 problematic with many cloud storage systems.
10190
10191 File name Replacement
10192 ────────────────────────
10193 . .
10194 .. ..
10195
10196 Invalid UTF-8 bytes
10197 Some backends only support a sequence of well formed UTF-8 bytes as
10198 file or directory names.
10199
10200 In this case all invalid UTF-8 bytes will be replaced with a quoted
10201 representation of the byte value to allow uploading a file to such a
10202 backend. For example, the invalid byte 0xFE will be encoded as ‛FE.
10203
10204 A common source of invalid UTF-8 bytes are local filesystems, that
10205 store names in a different encoding than UTF-8 or UTF-16, like latin1.
10206 See the local filenames (https://rclone.org/local/#filenames) section
10207 for details.
10208
10209 Encoding option
10210 Most backends have an encoding options, specified as a flag --back‐
10211 end-encoding where backend is the name of the backend, or as a config
10212 parameter encoding (you'll need to select the Advanced config in rclone
10213 config to see it).
10214
10215 This will have default value which encodes and decodes characters in
10216 such a way as to preserve the maximum number of characters (see above).
10217
10218 However this can be incorrect in some scenarios, for example if you
10219 have a Windows file system with characters such as * and ? that you
10220 want to remain as those characters on the remote rather than being
10221 translated to * and ?.
10222
10223 The --backend-encoding flags allow you to change that. You can disable
10224 the encoding completely with --backend-encoding None or set encoding =
10225 None in the config file.
10226
10227 Encoding takes a comma separated list of encodings. You can see the
10228 list of all available characters by passing an invalid value to this
10229 flag, e.g. --local-encoding "help" and rclone help flags encoding will
10230 show you the defaults for the backends.
10231
10232 Encoding Characters
10233 ───────────────────────────────────────────
10234 Asterisk *
10235 BackQuote `
10236 BackSlash \
10237 Colon :
10238 CrLf CR 0x0D, LF 0x0A
10239 Ctl All control characters
10240 0x00-0x1F
10241 Del DEL 0x7F
10242
10243 Dollar $
10244 Dot .
10245 DoubleQuote "
10246 Hash #
10247 InvalidUtf8 An invalid UTF-8 character
10248 (e.g. latin1)
10249 LeftCrLfHtVt CR 0x0D, LF 0x0A,HT 0x09,
10250 VT 0x0B on the left of a
10251 string
10252 LeftPeriod . on the left of a string
10253 LeftSpace SPACE on the left of a
10254 string
10255 LeftTilde ~ on the left of a string
10256 LtGt <, >
10257 None No characters are encoded
10258 Percent %
10259 Pipe |
10260 Question ?
10261 RightCrLfHtVt CR 0x0D, LF 0x0A, HT 0x09,
10262 VT 0x0B on the right of a
10263 string
10264 RightPeriod . on the right of a string
10265 RightSpace SPACE on the right of a
10266 string
10267 SingleQuote '
10268 Slash /
10269
10270 To take a specific example, the FTP backend's default encoding is
10271
10272 --ftp-encoding "Slash,Del,Ctl,RightSpace,Dot"
10273
10274 However, let's say the FTP server is running on Windows and can't have
10275 any of the invalid Windows characters in file names. You are backing
10276 up Linux servers to this FTP server which do have those characters in
10277 file names. So you would add the Windows set which are
10278
10279 Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot
10280
10281 to the existing ones, giving:
10282
10283 Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot,Del,RightSpace
10284
10285 This can be specified using the --ftp-encoding flag or using an encod‐
10286 ing parameter in the config file.
10287
10288 Or let's say you have a Windows server but you want to preserve * and
10289 ?, you would then have this as the encoding (the Windows encoding mi‐
10290 nus Asterisk and Question).
10291
10292 Slash,LtGt,DoubleQuote,Colon,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot
10293
10294 This can be specified using the --local-encoding flag or using an en‐
10295 coding parameter in the config file.
10296
10297 MIME Type
10298 MIME types (also known as media types) classify types of documents us‐
10299 ing a simple text classification, e.g. text/html or application/pdf.
10300
10301 Some cloud storage systems support reading (R) the MIME type of objects
10302 and some support writing (W) the MIME type of objects.
10303
10304 The MIME type can be important if you are serving files directly to
10305 HTTP from the storage system.
10306
10307 If you are copying from a remote which supports reading (R) to a remote
10308 which supports writing (W) then rclone will preserve the MIME types.
10309 Otherwise they will be guessed from the extension, or the remote itself
10310 may assign the MIME type.
10311
10312 Optional Features
10313 All rclone remotes support a base command set. Other features depend
10314 upon backend specific capabilities.
10315
10316 Name Purge Copy Move DirMove CleanUp ListR StreamU‐ LinkShar‐ About Empty‐
10317 pload ing Dir
10318 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
10319 1Fichi‐ No No No No No No No No No Yes
10320 er
10321 Amazon Yes No Yes Yes No #575 No No No #2178 No Yes
10322 Drive (https://github.com/rclone/rclone/is‐ (https://github.com/rclone/rclone/is‐
10323 sues/575) sues/2178)
10324 Amazon No Yes No No Yes Yes Yes No #2178 No No
10325 S3 (https://github.com/rclone/rclone/is‐
10326 sues/2178)
10327 Back‐ No Yes No No Yes Yes Yes Yes No No
10328 blaze
10329 B2
10330 Box Yes Yes Yes Yes Yes ‡‡ No Yes Yes No Yes
10331 Citrix Yes Yes Yes Yes No No Yes No No Yes
10332 Share‐
10333 File
10334 Dropbox Yes Yes Yes Yes No #575 No Yes Yes Yes Yes
10335 (https://github.com/rclone/rclone/is‐
10336 sues/575)
10337 Enter‐ Yes Yes Yes Yes No No No No No Yes
10338 prise
10339 File
10340 Fabric
10341 FTP No No Yes Yes No No Yes No #2178 No Yes
10342 (https://github.com/rclone/rclone/is‐
10343 sues/2178)
10344
10345
10346
10347 Google Yes Yes No No No Yes Yes No #2178 No No
10348 Cloud (https://github.com/rclone/rclone/is‐
10349 Storage sues/2178)
10350 Google Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
10351 Drive
10352 Google No No No No No No No No No No
10353 Photos
10354 HDFS Yes No No No No No Yes No Yes Yes
10355 HTTP No No No No No No No No #2178 No Yes
10356 (https://github.com/rclone/rclone/is‐
10357 sues/2178)
10358 Hubic Yes † Yes No No No Yes Yes No #2178 Yes No
10359 (https://github.com/rclone/rclone/is‐
10360 sues/2178)
10361 Jotta‐ Yes Yes Yes Yes Yes Yes No Yes Yes Yes
10362 cloud
10363 Mail.ru Yes Yes Yes Yes Yes No No Yes Yes Yes
10364 Cloud
10365 Mega Yes No Yes Yes Yes No No No #2178 Yes Yes
10366 (https://github.com/rclone/rclone/is‐
10367 sues/2178)
10368 Memory No Yes No No No Yes Yes No No No
10369 Micro‐ Yes Yes No No No Yes Yes No #2178 No No
10370 soft (https://github.com/rclone/rclone/is‐
10371 Azure sues/2178)
10372 Blob
10373 Storage
10374 Micro‐ Yes Yes Yes Yes Yes No No Yes Yes Yes
10375 soft
10376 OneDrive
10377 Open‐ Yes Yes Yes Yes No No No No No Yes
10378 Drive
10379 Open‐ Yes † Yes No No No Yes Yes No #2178 Yes No
10380 Stack (https://github.com/rclone/rclone/is‐
10381 Swift sues/2178)
10382 pCloud Yes Yes Yes Yes Yes No No Yes Yes Yes
10383 premiu‐ Yes No Yes Yes No No No Yes Yes Yes
10384 mize.me
10385 put.io Yes No Yes Yes Yes No Yes No #2178 Yes Yes
10386 (https://github.com/rclone/rclone/is‐
10387 sues/2178)
10388 QingStor No Yes No No Yes Yes No No #2178 No No
10389 (https://github.com/rclone/rclone/is‐
10390 sues/2178)
10391 Seafile Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
10392 SFTP No No Yes Yes No No Yes No #2178 Yes Yes
10393 (https://github.com/rclone/rclone/is‐
10394 sues/2178)
10395 Sug‐ Yes Yes Yes Yes No No Yes Yes No Yes
10396 arSync
10397 Tardi‐ Yes † No No No No Yes Yes No No No
10398 grade
10399 WebDAV Yes Yes Yes Yes No No Yes ‡ No #2178 Yes Yes
10400 (https://github.com/rclone/rclone/is‐
10401 sues/2178)
10402 Yandex Yes Yes Yes Yes Yes No Yes Yes Yes Yes
10403 Disk
10404 Zoho Yes Yes Yes Yes No No No No Yes Yes
10405 Work‐
10406 Drive
10407 The lo‐ Yes No Yes Yes No No Yes No Yes Yes
10408 cal
10409 filesys‐
10410 tem
10411
10412 Purge
10413 This deletes a directory quicker than just deleting all the files in
10414 the directory.
10415
10416 † Note Swift, Hubic, and Tardigrade implement this in order to delete
10417 directory markers but they don't actually have a quicker way of delet‐
10418 ing files other than deleting them individually.
10419
10420 ‡ StreamUpload is not supported with Nextcloud
10421
10422 Copy
10423 Used when copying an object to and from the same remote. This known as
10424 a server-side copy so you can copy a file without downloading it and
10425 uploading it again. It is used if you use rclone copy or rclone move
10426 if the remote doesn't support Move directly.
10427
10428 If the server doesn't support Copy directly then for copy operations
10429 the file is downloaded then re-uploaded.
10430
10431 Move
10432 Used when moving/renaming an object on the same remote. This is known
10433 as a server-side move of a file. This is used in rclone move if the
10434 server doesn't support DirMove.
10435
10436 If the server isn't capable of Move then rclone simulates it with Copy
10437 then delete. If the server doesn't support Copy then rclone will down‐
10438 load the file and re-upload it.
10439
10440 DirMove
10441 This is used to implement rclone move to move a directory if possible.
10442 If it isn't then it will use Move on each file (which falls back to
10443 Copy then download and upload - see Move section).
10444
10445 CleanUp
10446 This is used for emptying the trash for a remote by rclone cleanup.
10447
10448 If the server can't do CleanUp then rclone cleanup will return an er‐
10449 ror.
10450
10451 ‡‡ Note that while Box implements this it has to delete every file in‐
10452 dividually so it will be slower than emptying the trash via the WebUI
10453
10454 ListR
10455 The remote supports a recursive list to list all the contents beneath a
10456 directory quickly. This enables the --fast-list flag to work. See the
10457 rclone docs (https://rclone.org/docs/#fast-list) for more details.
10458
10459 StreamUpload
10460 Some remotes allow files to be uploaded without knowing the file size
10461 in advance. This allows certain operations to work without spooling
10462 the file to local disk first, e.g. rclone rcat.
10463
10464 LinkSharing
10465 Sets the necessary permissions on a file or folder and prints a link
10466 that allows others to access them, even if they don't have an account
10467 on the particular cloud provider.
10468
10469 About
10470 Rclone about prints quota information for a remote. Typical output in‐
10471 cludes bytes used, free, quota and in trash.
10472
10473 If a remote lacks about capability rclone about remote:returns an er‐
10474 ror.
10475
10476 Backends without about capability cannot determine free space for an
10477 rclone mount, or use policy mfs (most free space) as a member of an
10478 rclone union remote.
10479
10480 See rclone about command (https://rclone.org/commands/rclone_about/)
10481
10482 EmptyDir
10483 The remote supports empty directories. See Limitations
10484 (https://rclone.org/bugs/#limitations) for details. Most Object/Bucket
10485 based remotes do not support this.
10486
10488 This describes the global flags available to every rclone command split
10489 into two groups, non backend and backend flags.
10490
10491 Non Backend Flags
10492 These flags are available for every command.
10493
10494 --ask-password Allow prompt for password for encrypted configuration. (default true)
10495 --auto-confirm If enabled, do not request console confirmation.
10496 --backup-dir string Make backups into hierarchy based in DIR.
10497 --bind string Local address to bind to for outgoing connections, IPv4, IPv6 or name.
10498 --buffer-size SizeSuffix In memory buffer size when reading files for each --transfer. (default 16M)
10499 --bwlimit BwTimetable Bandwidth limit in kBytes/s, or use suffix b|k|M|G or a full timetable.
10500 --bwlimit-file BwTimetable Bandwidth limit per file in kBytes/s, or use suffix b|k|M|G or a full timetable.
10501 --ca-cert string CA certificate used to verify servers
10502 --cache-dir string Directory rclone will use for caching. (default "$HOME/.cache/rclone")
10503 --check-first Do all the checks before starting transfers.
10504 --checkers int Number of checkers to run in parallel. (default 8)
10505 -c, --checksum Skip based on checksum (if available) & size, not mod-time & size
10506 --client-cert string Client SSL certificate (PEM) for mutual TLS auth
10507 --client-key string Client SSL private key (PEM) for mutual TLS auth
10508 --compare-dest string Include additional server-side path during comparison.
10509 --config string Config file. (default "$HOME/.config/rclone/rclone.conf")
10510 --contimeout duration Connect timeout (default 1m0s)
10511 --copy-dest string Implies --compare-dest but also copies files from path into destination.
10512 --cpuprofile string Write cpu profile to file
10513 --cutoff-mode string Mode to stop transfers when reaching the max transfer limit HARD|SOFT|CAUTIOUS (default "HARD")
10514 --delete-after When synchronizing, delete files on destination after transferring (default)
10515 --delete-before When synchronizing, delete files on destination before transferring
10516 --delete-during When synchronizing, delete files during transfer
10517 --delete-excluded Delete files on dest excluded from sync
10518 --disable string Disable a comma separated list of features. Use help to see a list.
10519 -n, --dry-run Do a trial run with no permanent changes
10520 --dump DumpFlags List of items to dump from: headers,bodies,requests,responses,auth,filters,goroutines,openfiles
10521 --dump-bodies Dump HTTP headers and bodies - may contain sensitive info
10522 --dump-headers Dump HTTP headers - may contain sensitive info
10523 --error-on-no-transfer Sets exit code 9 if no files are transferred, useful in scripts
10524 --exclude stringArray Exclude files matching pattern
10525 --exclude-from stringArray Read exclude patterns from file (use - to read from stdin)
10526 --exclude-if-present string Exclude directories if filename is present
10527 --expect-continue-timeout duration Timeout when using expect / 100-continue in HTTP (default 1s)
10528 --fast-list Use recursive list if available. Uses more memory but fewer transactions.
10529 --files-from stringArray Read list of source-file names from file (use - to read from stdin)
10530 --files-from-raw stringArray Read list of source-file names from file without any processing of lines (use - to read from stdin)
10531 -f, --filter stringArray Add a file-filtering rule
10532 --filter-from stringArray Read filtering patterns from a file (use - to read from stdin)
10533 --header stringArray Set HTTP header for all transactions
10534 --header-download stringArray Set HTTP header for download transactions
10535 --header-upload stringArray Set HTTP header for upload transactions
10536 --ignore-case Ignore case in filters (case insensitive)
10537 --ignore-case-sync Ignore case when synchronizing
10538 --ignore-checksum Skip post copy check of checksums.
10539 --ignore-errors delete even if there are I/O errors
10540 --ignore-existing Skip all files that exist on destination
10541 --ignore-size Ignore size when skipping use mod-time or checksum.
10542 -I, --ignore-times Don't skip files that match size and time - transfer all files
10543 --immutable Do not modify files. Fail if existing files have been modified.
10544 --include stringArray Include files matching pattern
10545 --include-from stringArray Read include patterns from file (use - to read from stdin)
10546 -i, --interactive Enable interactive mode
10547 --log-file string Log everything to this file
10548 --log-format string Comma separated list of log format options (default "date,time")
10549 --log-level string Log level DEBUG|INFO|NOTICE|ERROR (default "NOTICE")
10550 --log-systemd Activate systemd integration for the logger.
10551 --low-level-retries int Number of low level retries to do. (default 10)
10552 --max-age Duration Only transfer files younger than this in s or suffix ms|s|m|h|d|w|M|y (default off)
10553 --max-backlog int Maximum number of objects in sync or check backlog. (default 10000)
10554 --max-delete int When synchronizing, limit the number of deletes (default -1)
10555 --max-depth int If set limits the recursion depth to this. (default -1)
10556 --max-duration duration Maximum duration rclone will transfer data for.
10557 --max-size SizeSuffix Only transfer files smaller than this in k or suffix b|k|M|G (default off)
10558 --max-stats-groups int Maximum number of stats groups to keep in memory. On max oldest is discarded. (default 1000)
10559 --max-transfer SizeSuffix Maximum size of data to transfer. (default off)
10560 --memprofile string Write memory profile to file
10561 --min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
10562 --min-size SizeSuffix Only transfer files bigger than this in k or suffix b|k|M|G (default off)
10563 --modify-window duration Max time diff to be considered the same (default 1ns)
10564 --multi-thread-cutoff SizeSuffix Use multi-thread downloads for files above this size. (default 250M)
10565 --multi-thread-streams int Max number of streams to use for multi-thread downloads. (default 4)
10566 --no-check-certificate Do not verify the server SSL certificate. Insecure.
10567 --no-check-dest Don't check the destination, copy regardless.
10568 --no-console Hide console window. Supported on Windows only.
10569 --no-gzip-encoding Don't set Accept-Encoding: gzip.
10570 --no-traverse Don't traverse destination file system on copy.
10571 --no-unicode-normalization Don't normalize unicode characters in filenames.
10572 --no-update-modtime Don't update destination mod-time if files identical.
10573 --order-by string Instructions on how to order the transfers, e.g. 'size,descending'
10574 --password-command SpaceSepList Command for supplying password for encrypted configuration.
10575 -P, --progress Show progress during transfer.
10576 --progress-terminal-title Show progress on the terminal title. Requires -P/--progress.
10577 -q, --quiet Print as little stuff as possible
10578 --rc Enable the remote control server.
10579 --rc-addr string IPaddress:Port or :Port to bind server to. (default "localhost:5572")
10580 --rc-allow-origin string Set the allowed origin for CORS.
10581 --rc-baseurl string Prefix for URLs - leave blank for root.
10582 --rc-cert string SSL PEM key (concatenation of certificate and CA certificate)
10583 --rc-client-ca string Client certificate authority to verify clients with
10584 --rc-enable-metrics Enable prometheus metrics on /metrics
10585 --rc-files string Path to local files to serve on the HTTP server.
10586 --rc-htpasswd string htpasswd file - if not provided no authentication is done
10587 --rc-job-expire-duration duration expire finished async jobs older than this value (default 1m0s)
10588 --rc-job-expire-interval duration interval to check for expired async jobs (default 10s)
10589 --rc-key string SSL PEM Private key
10590 --rc-max-header-bytes int Maximum size of request header (default 4096)
10591 --rc-no-auth Don't require auth for certain methods.
10592 --rc-pass string Password for authentication.
10593 --rc-realm string realm for authentication (default "rclone")
10594 --rc-serve Enable the serving of remote objects.
10595 --rc-server-read-timeout duration Timeout for server reading data (default 1h0m0s)
10596 --rc-server-write-timeout duration Timeout for server writing data (default 1h0m0s)
10597 --rc-template string User Specified Template.
10598 --rc-user string User name for authentication.
10599 --rc-web-fetch-url string URL to fetch the releases for webgui. (default "https://api.github.com/repos/rclone/rclone-webui-react/releases/latest")
10600 --rc-web-gui Launch WebGUI on localhost
10601 --rc-web-gui-force-update Force update to latest version of web gui
10602 --rc-web-gui-no-open-browser Don't open the browser automatically
10603 --rc-web-gui-update Check and update to latest version of web gui
10604 --refresh-times Refresh the modtime of remote files.
10605 --retries int Retry operations this many times if they fail (default 3)
10606 --retries-sleep duration Interval between retrying operations if they fail, e.g 500ms, 60s, 5m. (0 to disable)
10607 --size-only Skip based on size only, not mod-time or checksum
10608 --stats duration Interval between printing stats, e.g 500ms, 60s, 5m. (0 to disable) (default 1m0s)
10609 --stats-file-name-length int Max file name length in stats. 0 for no limit (default 45)
10610 --stats-log-level string Log level to show --stats output DEBUG|INFO|NOTICE|ERROR (default "INFO")
10611 --stats-one-line Make the stats fit on one line.
10612 --stats-one-line-date Enables --stats-one-line and add current date/time prefix.
10613 --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
10614 --stats-unit string Show data rate in stats as either 'bits' or 'bytes'/s (default "bytes")
10615 --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)
10616 --suffix string Suffix to add to changed files.
10617 --suffix-keep-extension Preserve the extension when using --suffix.
10618 --syslog Use Syslog for logging
10619 --syslog-facility string Facility for syslog, e.g. KERN,USER,... (default "DAEMON")
10620 --timeout duration IO idle timeout (default 5m0s)
10621 --tpslimit float Limit HTTP transactions per second to this.
10622 --tpslimit-burst int Max burst of transactions for --tpslimit. (default 1)
10623 --track-renames When synchronizing, track file renames and do a server-side move if possible
10624 --track-renames-strategy string Strategies to use when synchronizing using track-renames hash|modtime|leaf (default "hash")
10625 --transfers int Number of file transfers to run in parallel. (default 4)
10626 -u, --update Skip files that are newer on the destination.
10627 --use-cookies Enable session cookiejar.
10628 --use-json-log Use json log format.
10629 --use-mmap Use mmap allocator (see docs).
10630 --use-server-modtime Use server modified time instead of object metadata
10631 --user-agent string Set the user-agent to a specified string. The default is rclone/ version (default "rclone/v1.54.0")
10632 -v, --verbose count Print lots more stuff (repeat for more)
10633
10634 Backend Flags
10635 These flags are available for every command. They control the backends
10636 and may be set in the config file.
10637
10638 --acd-auth-url string Auth server URL.
10639 --acd-client-id string OAuth Client Id
10640 --acd-client-secret string OAuth Client Secret
10641 --acd-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
10642 --acd-templink-threshold SizeSuffix Files >= this size will be downloaded via their tempLink. (default 9G)
10643 --acd-token string OAuth Access Token as a JSON blob.
10644 --acd-token-url string Token server url.
10645 --acd-upload-wait-per-gb Duration Additional time per GB to wait after a failed complete upload to see if it appears. (default 3m0s)
10646 --alias-remote string Remote or path to alias.
10647 --azureblob-access-tier string Access tier of blob: hot, cool or archive.
10648 --azureblob-account string Storage Account Name (leave blank to use SAS URL or Emulator)
10649 --azureblob-archive-tier-delete Delete archive tier blobs before overwriting.
10650 --azureblob-chunk-size SizeSuffix Upload chunk size (<= 100MB). (default 4M)
10651 --azureblob-disable-checksum Don't store MD5 checksum with object metadata.
10652 --azureblob-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8)
10653 --azureblob-endpoint string Endpoint for the service
10654 --azureblob-key string Storage Account Key (leave blank to use SAS URL or Emulator)
10655 --azureblob-list-chunk int Size of blob list. (default 5000)
10656 --azureblob-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed. (default 1m0s)
10657 --azureblob-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool.
10658 --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.
10659 --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.
10660 --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.
10661 --azureblob-sas-url string SAS URL for container level access only
10662 --azureblob-service-principal-file string Path to file containing credentials for use with a service principal.
10663 --azureblob-upload-cutoff string Cutoff for switching to chunked upload (<= 256MB). (Deprecated)
10664 --azureblob-use-emulator Uses local storage emulator if provided as 'true' (leave blank if using real azure storage endpoint)
10665 --azureblob-use-msi Use a managed service identity to authenticate (only works in Azure)
10666 --b2-account string Account ID or Application Key ID
10667 --b2-chunk-size SizeSuffix Upload chunk size. Must fit in memory. (default 96M)
10668 --b2-copy-cutoff SizeSuffix Cutoff for switching to multipart copy (default 4G)
10669 --b2-disable-checksum Disable checksums for large (> upload cutoff) files
10670 --b2-download-auth-duration Duration Time before the authorization token will expire in s or suffix ms|s|m|h|d. (default 1w)
10671 --b2-download-url string Custom endpoint for downloads.
10672 --b2-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
10673 --b2-endpoint string Endpoint for the service.
10674 --b2-hard-delete Permanently delete files on remote removal, otherwise hide files.
10675 --b2-key string Application Key
10676 --b2-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed. (default 1m0s)
10677 --b2-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool.
10678 --b2-test-mode string A flag string for X-Bz-Test-Mode header for debugging.
10679 --b2-upload-cutoff SizeSuffix Cutoff for switching to chunked upload. (default 200M)
10680 --b2-versions Include old versions in directory listings.
10681 --box-access-token string Box App Primary Access Token
10682 --box-auth-url string Auth server URL.
10683 --box-box-config-file string Box App config.json location
10684 --box-box-sub-type string (default "user")
10685 --box-client-id string OAuth Client Id
10686 --box-client-secret string OAuth Client Secret
10687 --box-commit-retries int Max number of times to try committing a multipart file. (default 100)
10688 --box-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot)
10689 --box-root-folder-id string Fill in for rclone to use a non root folder as its starting point.
10690 --box-token string OAuth Access Token as a JSON blob.
10691 --box-token-url string Token server url.
10692 --box-upload-cutoff SizeSuffix Cutoff for switching to multipart upload (>= 50MB). (default 50M)
10693 --cache-chunk-clean-interval Duration How often should the cache perform cleanups of the chunk storage. (default 1m0s)
10694 --cache-chunk-no-memory Disable the in-memory cache for storing chunks during streaming.
10695 --cache-chunk-path string Directory to cache chunk files. (default "$HOME/.cache/rclone/cache-backend")
10696 --cache-chunk-size SizeSuffix The size of a chunk (partial file data). (default 5M)
10697 --cache-chunk-total-size SizeSuffix The total size that the chunks can take up on the local disk. (default 10G)
10698 --cache-db-path string Directory to store file structure metadata DB. (default "$HOME/.cache/rclone/cache-backend")
10699 --cache-db-purge Clear all the cached data for this remote on start.
10700 --cache-db-wait-time Duration How long to wait for the DB to be available - 0 is unlimited (default 1s)
10701 --cache-info-age Duration How long to cache file structure information (directory listings, file size, times, etc.). (default 6h0m0s)
10702 --cache-plex-insecure string Skip all certificate verification when connecting to the Plex server
10703 --cache-plex-password string The password of the Plex user (obscured)
10704 --cache-plex-url string The URL of the Plex server
10705 --cache-plex-username string The username of the Plex user
10706 --cache-read-retries int How many times to retry a read from a cache storage. (default 10)
10707 --cache-remote string Remote to cache.
10708 --cache-rps int Limits the number of requests per second to the source FS (-1 to disable) (default -1)
10709 --cache-tmp-upload-path string Directory to keep temporary files until they are uploaded.
10710 --cache-tmp-wait-time Duration How long should files be stored in local cache before being uploaded (default 15s)
10711 --cache-workers int How many workers should run in parallel to download chunks. (default 4)
10712 --cache-writes Cache file data on writes through the FS
10713 --chunker-chunk-size SizeSuffix Files larger than chunk size will be split in chunks. (default 2G)
10714 --chunker-fail-hard Choose how chunker should handle files with missing or invalid chunks.
10715 --chunker-hash-type string Choose how chunker handles hash sums. All modes but "none" require metadata. (default "md5")
10716 --chunker-remote string Remote to chunk/unchunk.
10717 --compress-level int GZIP compression level (-2 to 9). (default -1)
10718 --compress-mode string Compression mode. (default "gzip")
10719 --compress-ram-cache-limit SizeSuffix Some remotes don't allow the upload of files with unknown size. (default 20M)
10720 --compress-remote string Remote to compress.
10721 -L, --copy-links Follow symlinks and copy the pointed to item.
10722 --crypt-directory-name-encryption Option to either encrypt directory names or leave them intact. (default true)
10723 --crypt-filename-encryption string How to encrypt the filenames. (default "standard")
10724 --crypt-password string Password or pass phrase for encryption. (obscured)
10725 --crypt-password2 string Password or pass phrase for salt. Optional but recommended. (obscured)
10726 --crypt-remote string Remote to encrypt/decrypt.
10727 --crypt-server-side-across-configs Allow server-side operations (e.g. copy) to work across different crypt configs.
10728 --crypt-show-mapping For all files listed show how the names encrypt.
10729 --drive-acknowledge-abuse Set to allow files which return cannotDownloadAbusiveFile to be downloaded.
10730 --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.
10731 --drive-auth-owner-only Only consider files owned by the authenticated user.
10732 --drive-auth-url string Auth server URL.
10733 --drive-chunk-size SizeSuffix Upload chunk size. Must a power of 2 >= 256k. (default 8M)
10734 --drive-client-id string Google Application Client Id
10735 --drive-client-secret string OAuth Client Secret
10736 --drive-disable-http2 Disable drive using http2 (default true)
10737 --drive-encoding MultiEncoder This sets the encoding for the backend. (default InvalidUtf8)
10738 --drive-export-formats string Comma separated list of preferred formats for downloading Google docs. (default "docx,xlsx,pptx,svg")
10739 --drive-formats string Deprecated: see export_formats
10740 --drive-impersonate string Impersonate this user when using a service account.
10741 --drive-import-formats string Comma separated list of preferred formats for uploading Google docs.
10742 --drive-keep-revision-forever Keep new head revision of each file forever.
10743 --drive-list-chunk int Size of listing chunk 100-1000. 0 to disable. (default 1000)
10744 --drive-pacer-burst int Number of API calls to allow without sleeping. (default 100)
10745 --drive-pacer-min-sleep Duration Minimum time to sleep between API calls. (default 100ms)
10746 --drive-root-folder-id string ID of the root folder
10747 --drive-scope string Scope that rclone should use when requesting access from drive.
10748 --drive-server-side-across-configs Allow server-side operations (e.g. copy) to work across different drive configs.
10749 --drive-service-account-credentials string Service Account Credentials JSON blob
10750 --drive-service-account-file string Service Account Credentials JSON file path
10751 --drive-shared-with-me Only show files that are shared with me.
10752 --drive-size-as-quota Show sizes as storage quota usage, not actual size.
10753 --drive-skip-checksum-gphotos Skip MD5 checksum on Google photos and videos only.
10754 --drive-skip-gdocs Skip google documents in all listings.
10755 --drive-skip-shortcuts If set skip shortcut files
10756 --drive-starred-only Only show files that are starred.
10757 --drive-stop-on-download-limit Make download limit errors be fatal
10758 --drive-stop-on-upload-limit Make upload limit errors be fatal
10759 --drive-team-drive string ID of the Team Drive
10760 --drive-token string OAuth Access Token as a JSON blob.
10761 --drive-token-url string Token server url.
10762 --drive-trashed-only Only show files that are in the trash.
10763 --drive-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 8M)
10764 --drive-use-created-date Use file created date instead of modified date.,
10765 --drive-use-shared-date Use date file was shared instead of modified date.
10766 --drive-use-trash Send files to the trash instead of deleting permanently. (default true)
10767 --drive-v2-download-min-size SizeSuffix If Object's are greater, use drive v2 API to download. (default off)
10768 --dropbox-auth-url string Auth server URL.
10769 --dropbox-chunk-size SizeSuffix Upload chunk size. (< 150M). (default 48M)
10770 --dropbox-client-id string OAuth Client Id
10771 --dropbox-client-secret string OAuth Client Secret
10772 --dropbox-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot)
10773 --dropbox-impersonate string Impersonate this user when using a business account.
10774 --dropbox-shared-files Instructs rclone to work on individual shared files.
10775 --dropbox-shared-folders Instructs rclone to work on shared folders.
10776 --dropbox-token string OAuth Access Token as a JSON blob.
10777 --dropbox-token-url string Token server url.
10778 --fichier-api-key string Your API Key, get it from https://1fichier.com/console/params.pl
10779 --fichier-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,SingleQuote,BackQuote,Dollar,BackSlash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot)
10780 --fichier-shared-folder string If you want to download a shared folder, add this parameter
10781 --filefabric-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,InvalidUtf8,Dot)
10782 --filefabric-permanent-token string Permanent Authentication Token
10783 --filefabric-root-folder-id string ID of the root folder
10784 --filefabric-token string Session Token
10785 --filefabric-token-expiry string Token expiry time
10786 --filefabric-url string URL of the Enterprise File Fabric to connect to
10787 --filefabric-version string Version read from the file fabric
10788 --ftp-concurrency int Maximum number of FTP simultaneous connections, 0 for unlimited
10789 --ftp-disable-epsv Disable using EPSV even if server advertises support
10790 --ftp-disable-mlsd Disable using MLSD even if server advertises support
10791 --ftp-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,RightSpace,Dot)
10792 --ftp-explicit-tls Use Explicit FTPS (FTP over TLS)
10793 --ftp-host string FTP host to connect to
10794 --ftp-no-check-certificate Do not verify the TLS certificate of the server
10795 --ftp-pass string FTP password (obscured)
10796 --ftp-port string FTP port, leave blank to use default (21)
10797 --ftp-tls Use Implicit FTPS (FTP over TLS)
10798 --ftp-user string FTP username, leave blank for current username, $USER
10799 --gcs-anonymous Access public buckets and objects without credentials
10800 --gcs-auth-url string Auth server URL.
10801 --gcs-bucket-acl string Access Control List for new buckets.
10802 --gcs-bucket-policy-only Access checks should use bucket-level IAM policies.
10803 --gcs-client-id string OAuth Client Id
10804 --gcs-client-secret string OAuth Client Secret
10805 --gcs-encoding MultiEncoder This sets the encoding for the backend. (default Slash,CrLf,InvalidUtf8,Dot)
10806 --gcs-location string Location for the newly created buckets.
10807 --gcs-object-acl string Access Control List for new objects.
10808 --gcs-project-number string Project number.
10809 --gcs-service-account-file string Service Account Credentials JSON file path
10810 --gcs-storage-class string The storage class to use when storing objects in Google Cloud Storage.
10811 --gcs-token string OAuth Access Token as a JSON blob.
10812 --gcs-token-url string Token server url.
10813 --gphotos-auth-url string Auth server URL.
10814 --gphotos-client-id string OAuth Client Id
10815 --gphotos-client-secret string OAuth Client Secret
10816 --gphotos-include-archived Also view and download archived media.
10817 --gphotos-read-only Set to make the Google Photos backend read only.
10818 --gphotos-read-size Set to read the size of media items.
10819 --gphotos-start-year int Year limits the photos to be downloaded to those which are uploaded after the given year (default 2000)
10820 --gphotos-token string OAuth Access Token as a JSON blob.
10821 --gphotos-token-url string Token server url.
10822 --hdfs-data-transfer-protection string Kerberos data transfer protection: authentication|integrity|privacy
10823 --hdfs-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Colon,Del,Ctl,InvalidUtf8,Dot)
10824 --hdfs-namenode string hadoop name node and port
10825 --hdfs-service-principal-name string Kerberos service principal name for the namenode
10826 --hdfs-username string hadoop user name
10827 --http-headers CommaSepList Set HTTP headers for all transactions
10828 --http-no-head Don't use HEAD requests to find file sizes in dir listing
10829 --http-no-slash Set this if the site doesn't end directories with /
10830 --http-url string URL of http host to connect to
10831 --hubic-auth-url string Auth server URL.
10832 --hubic-chunk-size SizeSuffix Above this size files will be chunked into a _segments container. (default 5G)
10833 --hubic-client-id string OAuth Client Id
10834 --hubic-client-secret string OAuth Client Secret
10835 --hubic-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8)
10836 --hubic-no-chunk Don't chunk files during streaming upload.
10837 --hubic-token string OAuth Access Token as a JSON blob.
10838 --hubic-token-url string Token server url.
10839 --jottacloud-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Del,Ctl,InvalidUtf8,Dot)
10840 --jottacloud-hard-delete Delete files permanently rather than putting them into the trash.
10841 --jottacloud-md5-memory-limit SizeSuffix Files bigger than this will be cached on disk to calculate the MD5 if required. (default 10M)
10842 --jottacloud-trashed-only Only show files that are in the trash.
10843 --jottacloud-upload-resume-limit SizeSuffix Files bigger than this can be resumed if the upload fail's. (default 10M)
10844 --koofr-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
10845 --koofr-endpoint string The Koofr API endpoint to use (default "https://app.koofr.net")
10846 --koofr-mountid string Mount ID of the mount to use. If omitted, the primary mount is used.
10847 --koofr-password string Your Koofr password for rclone (generate one at https://app.koofr.net/app/admin/preferences/password) (obscured)
10848 --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)
10849 --koofr-user string Your Koofr user name
10850 -l, --links Translate symlinks to/from regular files with a '.rclonelink' extension
10851 --local-case-insensitive Force the filesystem to report itself as case insensitive
10852 --local-case-sensitive Force the filesystem to report itself as case sensitive.
10853 --local-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Dot)
10854 --local-no-check-updated Don't check to see if the files change during upload
10855 --local-no-set-modtime Disable setting modtime
10856 --local-no-sparse Disable sparse files for multi-thread downloads
10857 --local-no-unicode-normalization Don't apply unicode normalization to paths and filenames (Deprecated)
10858 --local-nounc string Disable UNC (long path names) conversion on Windows
10859 --local-zero-size-links Assume the Stat size of links is zero (and read them instead)
10860 --mailru-check-hash What should copy do if file checksum is mismatched or invalid (default true)
10861 --mailru-encoding MultiEncoder This sets the encoding for the backend. (default Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Del,Ctl,InvalidUtf8,Dot)
10862 --mailru-pass string Password (obscured)
10863 --mailru-speedup-enable Skip full upload if there is another file with same data hash. (default true)
10864 --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")
10865 --mailru-speedup-max-disk SizeSuffix This option allows you to disable speedup (put by hash) for large files (default 3G)
10866 --mailru-speedup-max-memory SizeSuffix Files larger than the size given below will always be hashed on disk. (default 32M)
10867 --mailru-user string User name (usually email)
10868 --mega-debug Output more debug from Mega.
10869 --mega-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
10870 --mega-hard-delete Delete files permanently rather than putting them into the trash.
10871 --mega-pass string Password. (obscured)
10872 --mega-user string User name
10873 -x, --one-file-system Don't cross filesystem boundaries (unix/macOS only).
10874 --onedrive-auth-url string Auth server URL.
10875 --onedrive-chunk-size SizeSuffix Chunk size to upload files with - must be multiple of 320k (327,680 bytes). (default 10M)
10876 --onedrive-client-id string OAuth Client Id
10877 --onedrive-client-secret string OAuth Client Secret
10878 --onedrive-drive-id string The ID of the drive to use
10879 --onedrive-drive-type string The type of the drive ( personal | business | documentLibrary )
10880 --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)
10881 --onedrive-expose-onenote-files Set to make OneNote files show up in directory listings.
10882 --onedrive-link-password string Set the password for links created by the link command.
10883 --onedrive-link-scope string Set the scope of the links created by the link command. (default "anonymous")
10884 --onedrive-link-type string Set the type of the links created by the link command. (default "view")
10885 --onedrive-no-versions Remove all versions on modifying operations
10886 --onedrive-region string Choose national cloud region for OneDrive. (default "global")
10887 --onedrive-server-side-across-configs Allow server-side operations (e.g. copy) to work across different onedrive configs.
10888 --onedrive-token string OAuth Access Token as a JSON blob.
10889 --onedrive-token-url string Token server url.
10890 --opendrive-chunk-size SizeSuffix Files will be uploaded in chunks this size. (default 10M)
10891 --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)
10892 --opendrive-password string Password. (obscured)
10893 --opendrive-username string Username
10894 --pcloud-auth-url string Auth server URL.
10895 --pcloud-client-id string OAuth Client Id
10896 --pcloud-client-secret string OAuth Client Secret
10897 --pcloud-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
10898 --pcloud-hostname string Hostname to connect to. (default "api.pcloud.com")
10899 --pcloud-root-folder-id string Fill in for rclone to use a non root folder as its starting point. (default "d0")
10900 --pcloud-token string OAuth Access Token as a JSON blob.
10901 --pcloud-token-url string Token server url.
10902 --premiumizeme-encoding MultiEncoder This sets the encoding for the backend. (default Slash,DoubleQuote,BackSlash,Del,Ctl,InvalidUtf8,Dot)
10903 --putio-encoding MultiEncoder This sets the encoding for the backend. (default Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot)
10904 --qingstor-access-key-id string QingStor Access Key ID
10905 --qingstor-chunk-size SizeSuffix Chunk size to use for uploading. (default 4M)
10906 --qingstor-connection-retries int Number of connection retries. (default 3)
10907 --qingstor-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Ctl,InvalidUtf8)
10908 --qingstor-endpoint string Enter an endpoint URL to connection QingStor API.
10909 --qingstor-env-auth Get QingStor credentials from runtime. Only applies if access_key_id and secret_access_key is blank.
10910 --qingstor-secret-access-key string QingStor Secret Access Key (password)
10911 --qingstor-upload-concurrency int Concurrency for multipart uploads. (default 1)
10912 --qingstor-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200M)
10913 --qingstor-zone string Zone to connect to.
10914 --s3-access-key-id string AWS Access Key ID.
10915 --s3-acl string Canned ACL used when creating buckets and storing or copying objects.
10916 --s3-bucket-acl string Canned ACL used when creating buckets.
10917 --s3-chunk-size SizeSuffix Chunk size to use for uploading. (default 5M)
10918 --s3-copy-cutoff SizeSuffix Cutoff for switching to multipart copy (default 4.656G)
10919 --s3-disable-checksum Don't store MD5 checksum with object metadata
10920 --s3-disable-http2 Disable usage of http2 for S3 backends
10921 --s3-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8,Dot)
10922 --s3-endpoint string Endpoint for S3 API.
10923 --s3-env-auth Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
10924 --s3-force-path-style If true use path style access if false use virtual hosted style. (default true)
10925 --s3-leave-parts-on-error If true avoid calling abort upload on a failure, leaving all successfully uploaded parts on S3 for manual recovery.
10926 --s3-list-chunk int Size of listing chunk (response list for each ListObject S3 request). (default 1000)
10927 --s3-location-constraint string Location constraint - must be set to match the Region.
10928 --s3-max-upload-parts int Maximum number of parts in a multipart upload. (default 10000)
10929 --s3-memory-pool-flush-time Duration How often internal memory buffer pools will be flushed. (default 1m0s)
10930 --s3-memory-pool-use-mmap Whether to use mmap buffers in internal memory pool.
10931 --s3-no-check-bucket If set, don't attempt to check the bucket exists or create it
10932 --s3-no-head If set, don't HEAD uploaded objects to check integrity
10933 --s3-profile string Profile to use in the shared credentials file
10934 --s3-provider string Choose your S3 provider.
10935 --s3-region string Region to connect to.
10936 --s3-requester-pays Enables requester pays option when interacting with S3 bucket.
10937 --s3-secret-access-key string AWS Secret Access Key (password)
10938 --s3-server-side-encryption string The server-side encryption algorithm used when storing this object in S3.
10939 --s3-session-token string An AWS session token
10940 --s3-shared-credentials-file string Path to the shared credentials file
10941 --s3-sse-customer-algorithm string If using SSE-C, the server-side encryption algorithm used when storing this object in S3.
10942 --s3-sse-customer-key string If using SSE-C you must provide the secret encryption key used to encrypt/decrypt your data.
10943 --s3-sse-customer-key-md5 string If using SSE-C you may provide the secret encryption key MD5 checksum (optional).
10944 --s3-sse-kms-key-id string If using KMS ID you must provide the ARN of Key.
10945 --s3-storage-class string The storage class to use when storing new objects in S3.
10946 --s3-upload-concurrency int Concurrency for multipart uploads. (default 4)
10947 --s3-upload-cutoff SizeSuffix Cutoff for switching to chunked upload (default 200M)
10948 --s3-use-accelerate-endpoint If true use the AWS S3 accelerated endpoint.
10949 --s3-v2-auth If true use v2 authentication.
10950 --seafile-2fa Two-factor authentication ('true' if the account has 2FA enabled)
10951 --seafile-create-library Should rclone create a library if it doesn't exist
10952 --seafile-encoding MultiEncoder This sets the encoding for the backend. (default Slash,DoubleQuote,BackSlash,Ctl,InvalidUtf8)
10953 --seafile-library string Name of the library. Leave blank to access all non-encrypted libraries.
10954 --seafile-library-key string Library password (for encrypted libraries only). Leave blank if you pass it through the command line. (obscured)
10955 --seafile-pass string Password (obscured)
10956 --seafile-url string URL of seafile host to connect to
10957 --seafile-user string User name (usually email address)
10958 --sftp-ask-password Allow asking for SFTP password when needed.
10959 --sftp-disable-hashcheck Disable the execution of SSH commands to determine if remote file hashing is available.
10960 --sftp-host string SSH host to connect to
10961 --sftp-key-file string Path to PEM-encoded private key file, leave blank or set key-use-agent to use ssh-agent.
10962 --sftp-key-file-pass string The passphrase to decrypt the PEM-encoded private key file. (obscured)
10963 --sftp-key-pem string Raw PEM-encoded private key, If specified, will override key_file parameter.
10964 --sftp-key-use-agent When set forces the usage of the ssh-agent.
10965 --sftp-known-hosts-file string Optional path to known_hosts file.
10966 --sftp-md5sum-command string The command used to read md5 hashes. Leave blank for autodetect.
10967 --sftp-pass string SSH password, leave blank to use ssh-agent. (obscured)
10968 --sftp-path-override string Override path used by SSH connection.
10969 --sftp-port string SSH port, leave blank to use default (22)
10970 --sftp-pubkey-file string Optional path to public key file.
10971 --sftp-server-command string Specifies the path or command to run a sftp server on the remote host.
10972 --sftp-set-modtime Set the modified time on the remote if set. (default true)
10973 --sftp-sha1sum-command string The command used to read sha1 hashes. Leave blank for autodetect.
10974 --sftp-skip-links Set to skip any symlinks and any other non regular files.
10975 --sftp-subsystem string Specifies the SSH2 subsystem on the remote host. (default "sftp")
10976 --sftp-use-fstat If set use fstat instead of stat
10977 --sftp-use-insecure-cipher Enable the use of insecure ciphers and key exchange methods.
10978 --sftp-user string SSH username, leave blank for current username, $USER
10979 --sharefile-chunk-size SizeSuffix Upload chunk size. Must a power of 2 >= 256k. (default 64M)
10980 --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)
10981 --sharefile-endpoint string Endpoint for API calls.
10982 --sharefile-root-folder-id string ID of the root folder
10983 --sharefile-upload-cutoff SizeSuffix Cutoff for switching to multipart upload. (default 128M)
10984 --skip-links Don't warn about skipped symlinks.
10985 --sugarsync-access-key-id string Sugarsync Access Key ID.
10986 --sugarsync-app-id string Sugarsync App ID.
10987 --sugarsync-authorization string Sugarsync authorization
10988 --sugarsync-authorization-expiry string Sugarsync authorization expiry
10989 --sugarsync-deleted-id string Sugarsync deleted folder id
10990 --sugarsync-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Ctl,InvalidUtf8,Dot)
10991 --sugarsync-hard-delete Permanently delete files if true
10992 --sugarsync-private-access-key string Sugarsync Private Access Key
10993 --sugarsync-refresh-token string Sugarsync refresh token
10994 --sugarsync-root-id string Sugarsync root id
10995 --sugarsync-user string Sugarsync user
10996 --swift-application-credential-id string Application Credential ID (OS_APPLICATION_CREDENTIAL_ID)
10997 --swift-application-credential-name string Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME)
10998 --swift-application-credential-secret string Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET)
10999 --swift-auth string Authentication URL for server (OS_AUTH_URL).
11000 --swift-auth-token string Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
11001 --swift-auth-version int AuthVersion - optional - set to (1,2,3) if your auth URL has no version (ST_AUTH_VERSION)
11002 --swift-chunk-size SizeSuffix Above this size files will be chunked into a _segments container. (default 5G)
11003 --swift-domain string User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
11004 --swift-encoding MultiEncoder This sets the encoding for the backend. (default Slash,InvalidUtf8)
11005 --swift-endpoint-type string Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE) (default "public")
11006 --swift-env-auth Get swift credentials from environment variables in standard OpenStack form.
11007 --swift-key string API key or password (OS_PASSWORD).
11008 --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.
11009 --swift-no-chunk Don't chunk files during streaming upload.
11010 --swift-region string Region name - optional (OS_REGION_NAME)
11011 --swift-storage-policy string The storage policy to use when creating a new container
11012 --swift-storage-url string Storage URL - optional (OS_STORAGE_URL)
11013 --swift-tenant string Tenant name - optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME)
11014 --swift-tenant-domain string Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
11015 --swift-tenant-id string Tenant ID - optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID)
11016 --swift-user string User name to log in (OS_USERNAME).
11017 --swift-user-id string User ID to log in - optional - most swift systems use user and leave this blank (v3 auth) (OS_USER_ID).
11018 --tardigrade-access-grant string Access Grant.
11019 --tardigrade-api-key string API Key.
11020 --tardigrade-passphrase string Encryption Passphrase. To access existing objects enter passphrase used for uploading.
11021 --tardigrade-provider string Choose an authentication method. (default "existing")
11022 --tardigrade-satellite-address <nodeid>@<address>:<port> Satellite Address. Custom satellite address should match the format: <nodeid>@<address>:<port>. (default "us-central-1.tardigrade.io")
11023 --union-action-policy string Policy to choose upstream on ACTION category. (default "epall")
11024 --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)
11025 --union-create-policy string Policy to choose upstream on CREATE category. (default "epmfs")
11026 --union-search-policy string Policy to choose upstream on SEARCH category. (default "ff")
11027 --union-upstreams string List of space separated upstreams.
11028 --webdav-bearer-token string Bearer token instead of user/pass (e.g. a Macaroon)
11029 --webdav-bearer-token-command string Command to run to get a bearer token
11030 --webdav-pass string Password. (obscured)
11031 --webdav-url string URL of http host to connect to
11032 --webdav-user string User name
11033 --webdav-vendor string Name of the Webdav site/service/software you are using
11034 --yandex-auth-url string Auth server URL.
11035 --yandex-client-id string OAuth Client Id
11036 --yandex-client-secret string OAuth Client Secret
11037 --yandex-encoding MultiEncoder This sets the encoding for the backend. (default Slash,Del,Ctl,InvalidUtf8,Dot)
11038 --yandex-token string OAuth Access Token as a JSON blob.
11039 --yandex-token-url string Token server url.
11040 --zoho-encoding MultiEncoder This sets the encoding for the backend. (default Del,Ctl,InvalidUtf8)
11041 --zoho-region string Zoho region to connect to. You'll have to use the region you organization is registered in.
11042
11043 1Fichier
11044 This is a backend for the 1fichier (https://1fichier.com) cloud storage
11045 service. Note that a Premium subscription is required to use the API.
11046
11047 Paths are specified as remote:path
11048
11049 Paths may be as deep as required, e.g. remote:directory/subdirectory.
11050
11051 The initial setup for 1Fichier involves getting the API key from the
11052 website which you need to do in your browser.
11053
11054 Here is an example of how to make a remote called remote. First run:
11055
11056 rclone config
11057
11058 This will guide you through an interactive setup process:
11059
11060 No remotes found - make a new one
11061 n) New remote
11062 s) Set configuration password
11063 q) Quit config
11064 n/s/q> n
11065 name> remote
11066 Type of storage to configure.
11067 Enter a string value. Press Enter for the default ("").
11068 Choose a number from below, or type in your own value
11069 [snip]
11070 XX / 1Fichier
11071 \ "fichier"
11072 [snip]
11073 Storage> fichier
11074 ** See help for fichier backend at: https://rclone.org/fichier/ **
11075
11076 Your API Key, get it from https://1fichier.com/console/params.pl
11077 Enter a string value. Press Enter for the default ("").
11078 api_key> example_key
11079
11080 Edit advanced config? (y/n)
11081 y) Yes
11082 n) No
11083 y/n>
11084 Remote config
11085 --------------------
11086 [remote]
11087 type = fichier
11088 api_key = example_key
11089 --------------------
11090 y) Yes this is OK
11091 e) Edit this remote
11092 d) Delete this remote
11093 y/e/d> y
11094
11095 Once configured you can then use rclone like this,
11096
11097 List directories in top level of your 1Fichier account
11098
11099 rclone lsd remote:
11100
11101 List all the files in your 1Fichier account
11102
11103 rclone ls remote:
11104
11105 To copy a local directory to a 1Fichier directory called backup
11106
11107 rclone copy /home/source remote:backup
11108
11109 Modified time and hashes
11110 1Fichier does not support modification times. It supports the
11111 Whirlpool hash algorithm.
11112
11113 Duplicated files
11114 1Fichier can have two files with exactly the same name and path (unlike
11115 a normal file system).
11116
11117 Duplicated files cause problems with the syncing and you will see mes‐
11118 sages in the log about duplicates.
11119
11120 Restricted filename characters
11121 In addition to the default restricted characters set
11122 (https://rclone.org/overview/#restricted-characters) the following
11123 characters are also replaced:
11124
11125 Character Value Replacement
11126 ────────────────────────────────
11127 \ 0x5C \
11128 < 0x3C <
11129 > 0x3E >
11130 " 0x22 "
11131 $ 0x24 $
11132 ` 0x60 `
11133 ' 0x27 '
11134
11135 File names can also not start or end with the following characters.
11136 These only get replaced if they are the first or last character in the
11137 name:
11138
11139 Character Value Replacement
11140 ────────────────────────────────
11141 SP 0x20 ␠
11142
11143 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
11144 view/#invalid-utf8), as they can't be used in JSON strings.
11145
11146 Standard Options
11147 Here are the standard options specific to fichier (1Fichier).
11148
11149 --fichier-api-key
11150 Your API Key, get it from https://1fichier.com/console/params.pl
11151
11152 · Config: api_key
11153
11154 · Env Var: RCLONE_FICHIER_API_KEY
11155
11156 · Type: string
11157
11158 · Default: ""
11159
11160 Advanced Options
11161 Here are the advanced options specific to fichier (1Fichier).
11162
11163 --fichier-shared-folder
11164 If you want to download a shared folder, add this parameter
11165
11166 · Config: shared_folder
11167
11168 · Env Var: RCLONE_FICHIER_SHARED_FOLDER
11169
11170 · Type: string
11171
11172 · Default: ""
11173
11174 --fichier-encoding
11175 This sets the encoding for the backend.
11176
11177 See: the encoding section in the overview (https://rclone.org/over‐
11178 view/#encoding) for more info.
11179
11180 · Config: encoding
11181
11182 · Env Var: RCLONE_FICHIER_ENCODING
11183
11184 · Type: MultiEncoder
11185
11186 · Default: Slash,LtGt,DoubleQuote,SingleQuote,BackQuote,Dollar,Back‐
11187 Slash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot
11188
11189 Limitations
11190 rclone about is not supported by the 1Fichier backend. Backends with‐
11191 out this capability cannot determine free space for an rclone mount or
11192 use policy mfs (most free space) as a member of an rclone union remote.
11193
11194 See List of backends that do not support rclone about
11195 (https://rclone.org/overview/#optional-features) See rclone about
11196 (https://rclone.org/commands/rclone_about/)
11197
11198 Alias
11199 The alias remote provides a new name for another remote.
11200
11201 Paths may be as deep as required or a local path, e.g. remote:directo‐
11202 ry/subdirectory or /directory/subdirectory.
11203
11204 During the initial setup with rclone config you will specify the target
11205 remote. The target remote can either be a local path or another re‐
11206 mote.
11207
11208 Subfolders can be used in target remote. Assume an alias remote named
11209 backup with the target mydrive:private/backup. Invoking rclone mkdir
11210 backup:desktop is exactly the same as invoking rclone mkdir my‐
11211 drive:private/backup/desktop.
11212
11213 There will be no special handling of paths containing .. segments.
11214 Invoking rclone mkdir backup:../desktop is exactly the same as invoking
11215 rclone mkdir mydrive:private/backup/../desktop. The empty path is not
11216 allowed as a remote. To alias the current directory use . instead.
11217
11218 Here is an example of how to make an alias called remote for local
11219 folder. First run:
11220
11221 rclone config
11222
11223 This will guide you through an interactive setup process:
11224
11225 No remotes found - make a new one
11226 n) New remote
11227 s) Set configuration password
11228 q) Quit config
11229 n/s/q> n
11230 name> remote
11231 Type of storage to configure.
11232 Choose a number from below, or type in your own value
11233 [snip]
11234 XX / Alias for an existing remote
11235 \ "alias"
11236 [snip]
11237 Storage> alias
11238 Remote or path to alias.
11239 Can be "myremote:path/to/dir", "myremote:bucket", "myremote:" or "/local/path".
11240 remote> /mnt/storage/backup
11241 Remote config
11242 --------------------
11243 [remote]
11244 remote = /mnt/storage/backup
11245 --------------------
11246 y) Yes this is OK
11247 e) Edit this remote
11248 d) Delete this remote
11249 y/e/d> y
11250 Current remotes:
11251
11252 Name Type
11253 ==== ====
11254 remote alias
11255
11256 e) Edit existing remote
11257 n) New remote
11258 d) Delete remote
11259 r) Rename remote
11260 c) Copy remote
11261 s) Set configuration password
11262 q) Quit config
11263 e/n/d/r/c/s/q> q
11264
11265 Once configured you can then use rclone like this,
11266
11267 List directories in top level in /mnt/storage/backup
11268
11269 rclone lsd remote:
11270
11271 List all the files in /mnt/storage/backup
11272
11273 rclone ls remote:
11274
11275 Copy another local directory to the alias directory called source
11276
11277 rclone copy /home/source remote:source
11278
11279 Standard Options
11280 Here are the standard options specific to alias (Alias for an existing
11281 remote).
11282
11283 --alias-remote
11284 Remote or path to alias. Can be "myremote:path/to/dir", "myre‐
11285 mote:bucket", "myremote:" or "/local/path".
11286
11287 · Config: remote
11288
11289 · Env Var: RCLONE_ALIAS_REMOTE
11290
11291 · Type: string
11292
11293 · Default: ""
11294
11295 Amazon Drive
11296 Amazon Drive, formerly known as Amazon Cloud Drive, is a cloud storage
11297 service run by Amazon for consumers.
11298
11299 Status
11300 Important: rclone supports Amazon Drive only if you have your own set
11301 of API keys. Unfortunately the Amazon Drive developer program
11302 (https://developer.amazon.com/amazon-drive) is now closed to new en‐
11303 tries so if you don't already have your own set of keys you will not be
11304 able to use rclone with Amazon Drive.
11305
11306 For the history on why rclone no longer has a set of Amazon Drive API
11307 keys see the forum (https://forum.rclone.org/t/rclone-has-been-banned-
11308 from-amazon-drive/2314).
11309
11310 If you happen to know anyone who works at Amazon then please ask them
11311 to re-instate rclone into the Amazon Drive developer program - thanks!
11312
11313 Setup
11314 The initial setup for Amazon Drive involves getting a token from Amazon
11315 which you need to do in your browser. rclone config walks you through
11316 it.
11317
11318 The configuration process for Amazon Drive may involve using an oauth
11319 proxy (https://github.com/ncw/oauthproxy). This is used to keep the
11320 Amazon credentials out of the source code. The proxy runs in Google's
11321 very secure App Engine environment and doesn't store any credentials
11322 which pass through it.
11323
11324 Since rclone doesn't currently have its own Amazon Drive credentials so
11325 you will either need to have your own client_id and client_secret with
11326 Amazon Drive, or use a third party oauth proxy in which case you will
11327 need to enter client_id, client_secret, auth_url and token_url.
11328
11329 Note also if you are not using Amazon's auth_url and token_url, (ie you
11330 filled in something for those) then if setting up on a remote machine
11331 you can only use the copying the config method of configuration
11332 (https://rclone.org/remote_setup/#configuring-by-copying-the-config-
11333 file) - rclone authorize will not work.
11334
11335 Here is an example of how to make a remote called remote. First run:
11336
11337 rclone config
11338
11339 This will guide you through an interactive setup process:
11340
11341 No remotes found - make a new one
11342 n) New remote
11343 r) Rename remote
11344 c) Copy remote
11345 s) Set configuration password
11346 q) Quit config
11347 n/r/c/s/q> n
11348 name> remote
11349 Type of storage to configure.
11350 Choose a number from below, or type in your own value
11351 [snip]
11352 XX / Amazon Drive
11353 \ "amazon cloud drive"
11354 [snip]
11355 Storage> amazon cloud drive
11356 Amazon Application Client Id - required.
11357 client_id> your client ID goes here
11358 Amazon Application Client Secret - required.
11359 client_secret> your client secret goes here
11360 Auth server URL - leave blank to use Amazon's.
11361 auth_url> Optional auth URL
11362 Token server url - leave blank to use Amazon's.
11363 token_url> Optional token URL
11364 Remote config
11365 Make sure your Redirect URL is set to "http://127.0.0.1:53682/" in your custom config.
11366 Use auto config?
11367 * Say Y if not sure
11368 * Say N if you are working on a remote or headless machine
11369 y) Yes
11370 n) No
11371 y/n> y
11372 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
11373 Log in and authorize rclone for access
11374 Waiting for code...
11375 Got code
11376 --------------------
11377 [remote]
11378 client_id = your client ID goes here
11379 client_secret = your client secret goes here
11380 auth_url = Optional auth URL
11381 token_url = Optional token URL
11382 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxx","token_type":"bearer","refresh_token":"xxxxxxxxxxxxxxxxxx","expiry":"2015-09-06T16:07:39.658438471+01:00"}
11383 --------------------
11384 y) Yes this is OK
11385 e) Edit this remote
11386 d) Delete this remote
11387 y/e/d> y
11388
11389 See the remote setup docs (https://rclone.org/remote_setup/) for how to
11390 set it up on a machine with no Internet browser available.
11391
11392 Note that rclone runs a webserver on your local machine to collect the
11393 token as returned from Amazon. This only runs from the moment it opens
11394 your browser to the moment you get back the verification code. This is
11395 on http://127.0.0.1:53682/ and this it may require you to unblock it
11396 temporarily if you are running a host firewall.
11397
11398 Once configured you can then use rclone like this,
11399
11400 List directories in top level of your Amazon Drive
11401
11402 rclone lsd remote:
11403
11404 List all the files in your Amazon Drive
11405
11406 rclone ls remote:
11407
11408 To copy a local directory to an Amazon Drive directory called backup
11409
11410 rclone copy /home/source remote:backup
11411
11412 Modified time and MD5SUMs
11413 Amazon Drive doesn't allow modification times to be changed via the API
11414 so these won't be accurate or used for syncing.
11415
11416 It does store MD5SUMs so for a more accurate sync, you can use the
11417 --checksum flag.
11418
11419 Restricted filename characters
11420 Character Value Replacement
11421 ────────────────────────────────
11422 NUL 0x00 ␀
11423 / 0x2F /
11424
11425 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
11426 view/#invalid-utf8), as they can't be used in JSON strings.
11427
11428 Deleting files
11429 Any files you delete with rclone will end up in the trash. Amazon
11430 don't provide an API to permanently delete files, nor to empty the
11431 trash, so you will have to do that with one of Amazon's apps or via the
11432 Amazon Drive website. As of November 17, 2016, files are automatically
11433 deleted by Amazon from the trash after 30 days.
11434
11435 Using with non .com Amazon accounts
11436 Let's say you usually use amazon.co.uk. When you authenticate with
11437 rclone it will take you to an amazon.com page to log in. Your ama‐
11438 zon.co.uk email and password should work here just fine.
11439
11440 Standard Options
11441 Here are the standard options specific to amazon cloud drive (Amazon
11442 Drive).
11443
11444 --acd-client-id
11445 OAuth Client Id Leave blank normally.
11446
11447 · Config: client_id
11448
11449 · Env Var: RCLONE_ACD_CLIENT_ID
11450
11451 · Type: string
11452
11453 · Default: ""
11454
11455 --acd-client-secret
11456 OAuth Client Secret Leave blank normally.
11457
11458 · Config: client_secret
11459
11460 · Env Var: RCLONE_ACD_CLIENT_SECRET
11461
11462 · Type: string
11463
11464 · Default: ""
11465
11466 Advanced Options
11467 Here are the advanced options specific to amazon cloud drive (Amazon
11468 Drive).
11469
11470 --acd-token
11471 OAuth Access Token as a JSON blob.
11472
11473 · Config: token
11474
11475 · Env Var: RCLONE_ACD_TOKEN
11476
11477 · Type: string
11478
11479 · Default: ""
11480
11481 --acd-auth-url
11482 Auth server URL. Leave blank to use the provider defaults.
11483
11484 · Config: auth_url
11485
11486 · Env Var: RCLONE_ACD_AUTH_URL
11487
11488 · Type: string
11489
11490 · Default: ""
11491
11492 --acd-token-url
11493 Token server url. Leave blank to use the provider defaults.
11494
11495 · Config: token_url
11496
11497 · Env Var: RCLONE_ACD_TOKEN_URL
11498
11499 · Type: string
11500
11501 · Default: ""
11502
11503 --acd-checkpoint
11504 Checkpoint for internal polling (debug).
11505
11506 · Config: checkpoint
11507
11508 · Env Var: RCLONE_ACD_CHECKPOINT
11509
11510 · Type: string
11511
11512 · Default: ""
11513
11514 --acd-upload-wait-per-gb
11515 Additional time per GB to wait after a failed complete upload to see if
11516 it appears.
11517
11518 Sometimes Amazon Drive gives an error when a file has been fully up‐
11519 loaded but the file appears anyway after a little while. This happens
11520 sometimes for files over 1GB in size and nearly every time for files
11521 bigger than 10GB. This parameter controls the time rclone waits for
11522 the file to appear.
11523
11524 The default value for this parameter is 3 minutes per GB, so by default
11525 it will wait 3 minutes for every GB uploaded to see if the file ap‐
11526 pears.
11527
11528 You can disable this feature by setting it to 0. This may cause con‐
11529 flict errors as rclone retries the failed upload but the file will most
11530 likely appear correctly eventually.
11531
11532 These values were determined empirically by observing lots of uploads
11533 of big files for a range of file sizes.
11534
11535 Upload with the "-v" flag to see more info about what rclone is doing
11536 in this situation.
11537
11538 · Config: upload_wait_per_gb
11539
11540 · Env Var: RCLONE_ACD_UPLOAD_WAIT_PER_GB
11541
11542 · Type: Duration
11543
11544 · Default: 3m0s
11545
11546 --acd-templink-threshold
11547 Files >= this size will be downloaded via their tempLink.
11548
11549 Files this size or more will be downloaded via their "tempLink". This
11550 is to work around a problem with Amazon Drive which blocks downloads of
11551 files bigger than about 10GB. The default for this is 9GB which
11552 shouldn't need to be changed.
11553
11554 To download files above this threshold, rclone requests a "tempLink"
11555 which downloads the file through a temporary URL directly from the un‐
11556 derlying S3 storage.
11557
11558 · Config: templink_threshold
11559
11560 · Env Var: RCLONE_ACD_TEMPLINK_THRESHOLD
11561
11562 · Type: SizeSuffix
11563
11564 · Default: 9G
11565
11566 --acd-encoding
11567 This sets the encoding for the backend.
11568
11569 See: the encoding section in the overview (https://rclone.org/over‐
11570 view/#encoding) for more info.
11571
11572 · Config: encoding
11573
11574 · Env Var: RCLONE_ACD_ENCODING
11575
11576 · Type: MultiEncoder
11577
11578 · Default: Slash,InvalidUtf8,Dot
11579
11580 Limitations
11581 Note that Amazon Drive is case insensitive so you can't have a file
11582 called "Hello.doc" and one called "hello.doc".
11583
11584 Amazon Drive has rate limiting so you may notice errors in the sync
11585 (429 errors). rclone will automatically retry the sync up to 3 times
11586 by default (see --retries flag) which should hopefully work around this
11587 problem.
11588
11589 Amazon Drive has an internal limit of file sizes that can be uploaded
11590 to the service. This limit is not officially published, but all files
11591 larger than this will fail.
11592
11593 At the time of writing (Jan 2016) is in the area of 50GB per file.
11594 This means that larger files are likely to fail.
11595
11596 Unfortunately there is no way for rclone to see that this failure is
11597 because of file size, so it will retry the operation, as any other
11598 failure. To avoid this problem, use --max-size 50000M option to limit
11599 the maximum size of uploaded files. Note that --max-size does not
11600 split files into segments, it only ignores files over this size.
11601
11602 rclone about is not supported by the Amazon Drive backend. Backends
11603 without this capability cannot determine free space for an rclone mount
11604 or use policy mfs (most free space) as a member of an rclone union re‐
11605 mote.
11606
11607 See List of backends that do not support rclone about
11608 (https://rclone.org/overview/#optional-features) See rclone about
11609 (https://rclone.org/commands/rclone_about/)
11610
11611 Amazon S3 Storage Providers
11612 The S3 backend can be used with a number of different providers:
11613
11614 · AWS S3
11615
11616 · Alibaba Cloud (Aliyun) Object Storage System (OSS)
11617
11618 · Ceph
11619
11620 · DigitalOcean Spaces
11621
11622 · Dreamhost
11623
11624 · IBM COS S3
11625
11626 · Minio
11627
11628 · Scaleway
11629
11630 · StackPath
11631
11632 · Tencent Cloud Object Storage (COS)
11633
11634 · Wasabi
11635
11636 Paths are specified as remote:bucket (or remote: for the lsd command.)
11637 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
11638
11639 Once you have made a remote (see the provider specific section above)
11640 you can use it like this:
11641
11642 See all buckets
11643
11644 rclone lsd remote:
11645
11646 Make a new bucket
11647
11648 rclone mkdir remote:bucket
11649
11650 List the contents of a bucket
11651
11652 rclone ls remote:bucket
11653
11654 Sync /home/local/directory to the remote bucket, deleting any excess
11655 files in the bucket.
11656
11657 rclone sync -i /home/local/directory remote:bucket
11658
11659 AWS S3
11660 Here is an example of making an s3 configuration. First run
11661
11662 rclone config
11663
11664 This will guide you through an interactive setup process.
11665
11666 No remotes found - make a new one
11667 n) New remote
11668 s) Set configuration password
11669 q) Quit config
11670 n/s/q> n
11671 name> remote
11672 Type of storage to configure.
11673 Choose a number from below, or type in your own value
11674 [snip]
11675 XX / Amazon S3 Compliant Storage Providers including AWS, Ceph, Dreamhost, IBM COS, Minio, and Tencent COS
11676 \ "s3"
11677 [snip]
11678 Storage> s3
11679 Choose your S3 provider.
11680 Choose a number from below, or type in your own value
11681 1 / Amazon Web Services (AWS) S3
11682 \ "AWS"
11683 2 / Ceph Object Storage
11684 \ "Ceph"
11685 3 / Digital Ocean Spaces
11686 \ "DigitalOcean"
11687 4 / Dreamhost DreamObjects
11688 \ "Dreamhost"
11689 5 / IBM COS S3
11690 \ "IBMCOS"
11691 6 / Minio Object Storage
11692 \ "Minio"
11693 7 / Wasabi Object Storage
11694 \ "Wasabi"
11695 8 / Any other S3 compatible provider
11696 \ "Other"
11697 provider> 1
11698 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.
11699 Choose a number from below, or type in your own value
11700 1 / Enter AWS credentials in the next step
11701 \ "false"
11702 2 / Get AWS credentials from the environment (env vars or IAM)
11703 \ "true"
11704 env_auth> 1
11705 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
11706 access_key_id> XXX
11707 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
11708 secret_access_key> YYY
11709 Region to connect to.
11710 Choose a number from below, or type in your own value
11711 / The default endpoint - a good choice if you are unsure.
11712 1 | US Region, Northern Virginia, or Pacific Northwest.
11713 | Leave location constraint empty.
11714 \ "us-east-1"
11715 / US East (Ohio) Region
11716 2 | Needs location constraint us-east-2.
11717 \ "us-east-2"
11718 / US West (Oregon) Region
11719 3 | Needs location constraint us-west-2.
11720 \ "us-west-2"
11721 / US West (Northern California) Region
11722 4 | Needs location constraint us-west-1.
11723 \ "us-west-1"
11724 / Canada (Central) Region
11725 5 | Needs location constraint ca-central-1.
11726 \ "ca-central-1"
11727 / EU (Ireland) Region
11728 6 | Needs location constraint EU or eu-west-1.
11729 \ "eu-west-1"
11730 / EU (London) Region
11731 7 | Needs location constraint eu-west-2.
11732 \ "eu-west-2"
11733 / EU (Frankfurt) Region
11734 8 | Needs location constraint eu-central-1.
11735 \ "eu-central-1"
11736 / Asia Pacific (Singapore) Region
11737 9 | Needs location constraint ap-southeast-1.
11738 \ "ap-southeast-1"
11739 / Asia Pacific (Sydney) Region
11740 10 | Needs location constraint ap-southeast-2.
11741 \ "ap-southeast-2"
11742 / Asia Pacific (Tokyo) Region
11743 11 | Needs location constraint ap-northeast-1.
11744 \ "ap-northeast-1"
11745 / Asia Pacific (Seoul)
11746 12 | Needs location constraint ap-northeast-2.
11747 \ "ap-northeast-2"
11748 / Asia Pacific (Mumbai)
11749 13 | Needs location constraint ap-south-1.
11750 \ "ap-south-1"
11751 / Asia Pacific (Hong Kong) Region
11752 14 | Needs location constraint ap-east-1.
11753 \ "ap-east-1"
11754 / South America (Sao Paulo) Region
11755 15 | Needs location constraint sa-east-1.
11756 \ "sa-east-1"
11757 region> 1
11758 Endpoint for S3 API.
11759 Leave blank if using AWS to use the default endpoint for the region.
11760 endpoint>
11761 Location constraint - must be set to match the Region. Used when creating buckets only.
11762 Choose a number from below, or type in your own value
11763 1 / Empty for US Region, Northern Virginia, or Pacific Northwest.
11764 \ ""
11765 2 / US East (Ohio) Region.
11766 \ "us-east-2"
11767 3 / US West (Oregon) Region.
11768 \ "us-west-2"
11769 4 / US West (Northern California) Region.
11770 \ "us-west-1"
11771 5 / Canada (Central) Region.
11772 \ "ca-central-1"
11773 6 / EU (Ireland) Region.
11774 \ "eu-west-1"
11775 7 / EU (London) Region.
11776 \ "eu-west-2"
11777 8 / EU Region.
11778 \ "EU"
11779 9 / Asia Pacific (Singapore) Region.
11780 \ "ap-southeast-1"
11781 10 / Asia Pacific (Sydney) Region.
11782 \ "ap-southeast-2"
11783 11 / Asia Pacific (Tokyo) Region.
11784 \ "ap-northeast-1"
11785 12 / Asia Pacific (Seoul)
11786 \ "ap-northeast-2"
11787 13 / Asia Pacific (Mumbai)
11788 \ "ap-south-1"
11789 14 / Asia Pacific (Hong Kong)
11790 \ "ap-east-1"
11791 15 / South America (Sao Paulo) Region.
11792 \ "sa-east-1"
11793 location_constraint> 1
11794 Canned ACL used when creating buckets and/or storing objects in S3.
11795 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
11796 Choose a number from below, or type in your own value
11797 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
11798 \ "private"
11799 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
11800 \ "public-read"
11801 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
11802 3 | Granting this on a bucket is generally not recommended.
11803 \ "public-read-write"
11804 4 / Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ access.
11805 \ "authenticated-read"
11806 / Object owner gets FULL_CONTROL. Bucket owner gets READ access.
11807 5 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
11808 \ "bucket-owner-read"
11809 / Both the object owner and the bucket owner get FULL_CONTROL over the object.
11810 6 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
11811 \ "bucket-owner-full-control"
11812 acl> 1
11813 The server-side encryption algorithm used when storing this object in S3.
11814 Choose a number from below, or type in your own value
11815 1 / None
11816 \ ""
11817 2 / AES256
11818 \ "AES256"
11819 server_side_encryption> 1
11820 The storage class to use when storing objects in S3.
11821 Choose a number from below, or type in your own value
11822 1 / Default
11823 \ ""
11824 2 / Standard storage class
11825 \ "STANDARD"
11826 3 / Reduced redundancy storage class
11827 \ "REDUCED_REDUNDANCY"
11828 4 / Standard Infrequent Access storage class
11829 \ "STANDARD_IA"
11830 5 / One Zone Infrequent Access storage class
11831 \ "ONEZONE_IA"
11832 6 / Glacier storage class
11833 \ "GLACIER"
11834 7 / Glacier Deep Archive storage class
11835 \ "DEEP_ARCHIVE"
11836 8 / Intelligent-Tiering storage class
11837 \ "INTELLIGENT_TIERING"
11838 storage_class> 1
11839 Remote config
11840 --------------------
11841 [remote]
11842 type = s3
11843 provider = AWS
11844 env_auth = false
11845 access_key_id = XXX
11846 secret_access_key = YYY
11847 region = us-east-1
11848 endpoint =
11849 location_constraint =
11850 acl = private
11851 server_side_encryption =
11852 storage_class =
11853 --------------------
11854 y) Yes this is OK
11855 e) Edit this remote
11856 d) Delete this remote
11857 y/e/d>
11858
11859 Modified time
11860 The modified time is stored as metadata on the object as
11861 X-Amz-Meta-Mtime as floating point since the epoch accurate to 1 ns.
11862
11863 If the modification time needs to be updated rclone will attempt to
11864 perform a server side copy to update the modification if the object can
11865 be copied in a single part. In the case the object is larger than 5Gb
11866 or is in Glacier or Glacier Deep Archive storage the object will be up‐
11867 loaded rather than copied.
11868
11869 Note that reading this from the object takes an additional HEAD request
11870 as the metadata isn't returned in object listings.
11871
11872 Reducing costs
11873 Avoiding HEAD requests to read the modification time
11874 By default rclone will use the modification time of objects stored in
11875 S3 for syncing. This is stored in object metadata which unfortunately
11876 takes an extra HEAD request to read which can be expensive (in time and
11877 money).
11878
11879 The modification time is used by default for all operations that re‐
11880 quire checking the time a file was last updated. It allows rclone to
11881 treat the remote more like a true filesystem, but it is inefficient on
11882 S3 because it requires an extra API call to retrieve the metadata.
11883
11884 The extra API calls can be avoided when syncing (using rclone sync or
11885 rclone copy) in a few different ways, each with its own tradeoffs.
11886
11887 · --size-only
11888
11889 · Only checks the size of files.
11890
11891 · Uses no extra transactions.
11892
11893 · If the file doesn't change size then rclone won't detect it has
11894 changed.
11895
11896 · rclone sync --size-only /path/to/source s3:bucket
11897
11898 · --checksum
11899
11900 · Checks the size and MD5 checksum of files.
11901
11902 · Uses no extra transactions.
11903
11904 · The most accurate detection of changes possible.
11905
11906 · Will cause the source to read an MD5 checksum which, if it is a lo‐
11907 cal disk, will cause lots of disk activity.
11908
11909 · If the source and destination are both S3 this is the recommended
11910 flag to use for maximum efficiency.
11911
11912 · rclone sync --checksum /path/to/source s3:bucket
11913
11914 · --update --use-server-modtime
11915
11916 · Uses no extra transactions.
11917
11918 · Modification time becomes the time the object was uploaded.
11919
11920 · For many operations this is sufficient to determine if it needs up‐
11921 loading.
11922
11923 · Using --update along with --use-server-modtime, avoids the extra
11924 API call and uploads files whose local modification time is newer
11925 than the time it was last uploaded.
11926
11927 · Files created with timestamps in the past will be missed by the
11928 sync.
11929
11930 · rclone sync --update --use-server-modtime /path/to/source s3:bucket
11931
11932 These flags can and should be used in combination with --fast-list -
11933 see below.
11934
11935 If using rclone mount or any command using the VFS (eg rclone serve)
11936 commands then you might want to consider using the VFS flag --no-mod‐
11937 time which will stop rclone reading the modification time for every ob‐
11938 ject. You could also use --use-server-modtime if you are happy with
11939 the modification times of the objects being the time of upload.
11940
11941 Avoiding GET requests to read directory listings
11942 Rclone's default directory traversal is to process each directory indi‐
11943 vidually. This takes one API call per directory. Using the
11944 --fast-list flag will read all info about the the objects into memory
11945 first using a smaller number of API calls (one per 1000 objects). See
11946 the rclone docs (https://rclone.org/docs/#fast-list) for more details.
11947
11948 rclone sync --fast-list --checksum /path/to/source s3:bucket
11949
11950 --fast-list trades off API transactions for memory use. As a rough
11951 guide rclone uses 1k of memory per object stored, so using --fast-list
11952 on a sync of a million objects will use roughly 1 GB of RAM.
11953
11954 If you are only copying a small number of files into a big repository
11955 then using --no-traverse is a good idea. This finds objects directly
11956 instead of through directory listings. You can do a "top-up" sync very
11957 cheaply by using --max-age and --no-traverse to copy only recent files,
11958 eg
11959
11960 rclone copy --min-age 24h --no-traverse /path/to/source s3:bucket
11961
11962 You'd then do a full rclone sync less often.
11963
11964 Note that --fast-list isn't required in the top-up sync.
11965
11966 Hashes
11967 For small objects which weren't uploaded as multipart uploads (objects
11968 sized below --s3-upload-cutoff if uploaded with rclone) rclone uses the
11969 ETag: header as an MD5 checksum.
11970
11971 However for objects which were uploaded as multipart uploads or with
11972 server side encryption (SSE-AWS or SSE-C) the ETag header is no longer
11973 the MD5 sum of the data, so rclone adds an additional piece of metadata
11974 X-Amz-Meta-Md5chksum which is a base64 encoded MD5 hash (in the same
11975 format as is required for Content-MD5).
11976
11977 For large objects, calculating this hash can take some time so the ad‐
11978 dition of this hash can be disabled with --s3-disable-checksum. This
11979 will mean that these objects do not have an MD5 checksum.
11980
11981 Note that reading this from the object takes an additional HEAD request
11982 as the metadata isn't returned in object listings.
11983
11984 Cleanup
11985 If you run rclone cleanup s3:bucket then it will remove all pending
11986 multipart uploads older than 24 hours. You can use the -i flag to see
11987 exactly what it will do. If you want more control over the expiry date
11988 then run rclone backend cleanup s3:bucket -o max-age=1h to expire all
11989 uploads older than one hour. You can use rclone backend list-multi‐
11990 part-uploads s3:bucket to see the pending multipart uploads.
11991
11992 Restricted filename characters
11993 S3 allows any valid UTF-8 string as a key.
11994
11995 Invalid UTF-8 bytes will be replaced (https://rclone.org/overview/#in‐
11996 valid-utf8), as they can't be used in XML.
11997
11998 The following characters are replaced since these are problematic when
11999 dealing with the REST API:
12000
12001 Character Value Replacement
12002 ────────────────────────────────
12003 NUL 0x00 ␀
12004 / 0x2F /
12005
12006 The encoding will also encode these file names as they don't seem to
12007 work with the SDK properly:
12008
12009 File name Replacement
12010 ────────────────────────
12011 . .
12012 .. ..
12013
12014 Multipart uploads
12015 rclone supports multipart uploads with S3 which means that it can up‐
12016 load files bigger than 5GB.
12017
12018 Note that files uploaded both with multipart upload and through crypt
12019 remotes do not have MD5 sums.
12020
12021 rclone switches from single part uploads to multipart uploads at the
12022 point specified by --s3-upload-cutoff. This can be a maximum of 5GB
12023 and a minimum of 0 (ie always upload multipart files).
12024
12025 The chunk sizes used in the multipart upload are specified by
12026 --s3-chunk-size and the number of chunks uploaded concurrently is spec‐
12027 ified by --s3-upload-concurrency.
12028
12029 Multipart uploads will use --transfers * --s3-upload-concurrency *
12030 --s3-chunk-size extra memory. Single part uploads to not use extra
12031 memory.
12032
12033 Single part transfers can be faster than multipart transfers or slower
12034 depending on your latency from S3 - the more latency, the more likely
12035 single part transfers will be faster.
12036
12037 Increasing --s3-upload-concurrency will increase throughput (8 would be
12038 a sensible value) and increasing --s3-chunk-size also increases
12039 throughput (16M would be sensible). Increasing either of these will
12040 use more memory. The default values are high enough to gain most of
12041 the possible performance without using too much memory.
12042
12043 Buckets and Regions
12044 With Amazon S3 you can list buckets (rclone lsd) using any region, but
12045 you can only access the content of a bucket from the region it was cre‐
12046 ated in. If you attempt to access a bucket from the wrong region, you
12047 will get an error, incorrect region, the bucket is not in 'XXX' region.
12048
12049 Authentication
12050 There are a number of ways to supply rclone with a set of AWS creden‐
12051 tials, with and without using the environment.
12052
12053 The different authentication methods are tried in this order:
12054
12055 · Directly in the rclone configuration file (env_auth = false in the
12056 config file):
12057
12058 · access_key_id and secret_access_key are required.
12059
12060 · session_token can be optionally set when using AWS STS.
12061
12062 · Runtime configuration (env_auth = true in the config file):
12063
12064 · Export the following environment variables before running rclone:
12065
12066 · Access Key ID: AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY
12067
12068 · Secret Access Key: AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY
12069
12070 · Session Token: AWS_SESSION_TOKEN (optional)
12071
12072 · Or, use a named profile (https://docs.aws.amazon.com/cli/lat‐
12073 est/userguide/cli-multiple-profiles.html):
12074
12075 · Profile files are standard files used by AWS CLI tools
12076
12077 · By default it will use the profile in your home directory (e.g.
12078 ~/.aws/credentials on unix based systems) file and the "default"
12079 profile, to change set these environment variables:
12080
12081 · AWS_SHARED_CREDENTIALS_FILE to control which file.
12082
12083 · AWS_PROFILE to control which profile to use.
12084
12085 · Or, run rclone in an ECS task with an IAM role (AWS only).
12086
12087 · Or, run rclone on an EC2 instance with an IAM role (AWS only).
12088
12089 · Or, run rclone in an EKS pod with an IAM role that is associated
12090 with a service account (AWS only).
12091
12092 If none of these option actually end up providing rclone with AWS cre‐
12093 dentials then S3 interaction will be non-authenticated (see below).
12094
12095 S3 Permissions
12096 When using the sync subcommand of rclone the following minimum permis‐
12097 sions are required to be available on the bucket being written to:
12098
12099 · ListBucket
12100
12101 · DeleteObject
12102
12103 · GetObject
12104
12105 · PutObject
12106
12107 · PutObjectACL
12108
12109 When using the lsd subcommand, the ListAllMyBuckets permission is re‐
12110 quired.
12111
12112 Example policy:
12113
12114 {
12115 "Version": "2012-10-17",
12116 "Statement": [
12117 {
12118 "Effect": "Allow",
12119 "Principal": {
12120 "AWS": "arn:aws:iam::USER_SID:user/USER_NAME"
12121 },
12122 "Action": [
12123 "s3:ListBucket",
12124 "s3:DeleteObject",
12125 "s3:GetObject",
12126 "s3:PutObject",
12127 "s3:PutObjectAcl"
12128 ],
12129 "Resource": [
12130 "arn:aws:s3:::BUCKET_NAME/*",
12131 "arn:aws:s3:::BUCKET_NAME"
12132 ]
12133 },
12134 {
12135 "Effect": "Allow",
12136 "Action": "s3:ListAllMyBuckets",
12137 "Resource": "arn:aws:s3:::*"
12138 }
12139 ]
12140 }
12141
12142 Notes on above:
12143
12144 1. This is a policy that can be used when creating bucket. It assumes
12145 that USER_NAME has been created.
12146
12147 2. The Resource entry must include both resource ARNs, as one implies
12148 the bucket and the other implies the bucket's objects.
12149
12150 For reference, here's an Ansible script
12151 (https://gist.github.com/ebridges/ebfc9042dd7c756cd101cfa807b7ae2b)
12152 that will generate one or more buckets that will work with rclone sync.
12153
12154 Key Management System (KMS)
12155 If you are using server-side encryption with KMS then you must make
12156 sure rclone is configured with server_side_encryption = aws:kms other‐
12157 wise you will find you can't transfer small objects - these will create
12158 checksum errors.
12159
12160 Glacier and Glacier Deep Archive
12161 You can upload objects using the glacier storage class or transition
12162 them to glacier using a lifecycle policy (http://docs.aws.ama‐
12163 zon.com/AmazonS3/latest/user-guide/create-lifecycle.html). The bucket
12164 can still be synced or copied into normally, but if rclone tries to ac‐
12165 cess data from the glacier storage class you will see an error like be‐
12166 low.
12167
12168 2017/09/11 19:07:43 Failed to sync: failed to open source object: Object in GLACIER, restore first: path/to/file
12169
12170 In this case you need to restore (http://docs.aws.amazon.com/Ama‐
12171 zonS3/latest/user-guide/restore-archived-objects.html) the object(s) in
12172 question before using rclone.
12173
12174 Note that rclone only speaks the S3 API it does not speak the Glacier
12175 Vault API, so rclone cannot directly access Glacier Vaults.
12176
12177 Standard Options
12178 Here are the standard options specific to s3 (Amazon S3 Compliant Stor‐
12179 age Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost,
12180 IBM COS, Minio, and Tencent COS).
12181
12182 --s3-provider
12183 Choose your S3 provider.
12184
12185 · Config: provider
12186
12187 · Env Var: RCLONE_S3_PROVIDER
12188
12189 · Type: string
12190
12191 · Default: ""
12192
12193 · Examples:
12194
12195 · "AWS"
12196
12197 · Amazon Web Services (AWS) S3
12198
12199 · "Alibaba"
12200
12201 · Alibaba Cloud Object Storage System (OSS) formerly Aliyun
12202
12203 · "Ceph"
12204
12205 · Ceph Object Storage
12206
12207 · "DigitalOcean"
12208
12209 · Digital Ocean Spaces
12210
12211 · "Dreamhost"
12212
12213 · Dreamhost DreamObjects
12214
12215 · "IBMCOS"
12216
12217 · IBM COS S3
12218
12219 · "Minio"
12220
12221 · Minio Object Storage
12222
12223 · "Netease"
12224
12225 · Netease Object Storage (NOS)
12226
12227 · "Scaleway"
12228
12229 · Scaleway Object Storage
12230
12231 · "StackPath"
12232
12233 · StackPath Object Storage
12234
12235 · "TencentCOS"
12236
12237 · Tencent Cloud Object Storage (COS)
12238
12239 · "Wasabi"
12240
12241 · Wasabi Object Storage
12242
12243 · "Other"
12244
12245 · Any other S3 compatible provider
12246
12247 --s3-env-auth
12248 Get AWS credentials from runtime (environment variables or EC2/ECS meta
12249 data if no env vars). Only applies if access_key_id and secret_ac‐
12250 cess_key is blank.
12251
12252 · Config: env_auth
12253
12254 · Env Var: RCLONE_S3_ENV_AUTH
12255
12256 · Type: bool
12257
12258 · Default: false
12259
12260 · Examples:
12261
12262 · "false"
12263
12264 · Enter AWS credentials in the next step
12265
12266 · "true"
12267
12268 · Get AWS credentials from the environment (env vars or IAM)
12269
12270 --s3-access-key-id
12271 AWS Access Key ID. Leave blank for anonymous access or runtime creden‐
12272 tials.
12273
12274 · Config: access_key_id
12275
12276 · Env Var: RCLONE_S3_ACCESS_KEY_ID
12277
12278 · Type: string
12279
12280 · Default: ""
12281
12282 --s3-secret-access-key
12283 AWS Secret Access Key (password) Leave blank for anonymous access or
12284 runtime credentials.
12285
12286 · Config: secret_access_key
12287
12288 · Env Var: RCLONE_S3_SECRET_ACCESS_KEY
12289
12290 · Type: string
12291
12292 · Default: ""
12293
12294 --s3-region
12295 Region to connect to.
12296
12297 · Config: region
12298
12299 · Env Var: RCLONE_S3_REGION
12300
12301 · Type: string
12302
12303 · Default: ""
12304
12305 · Examples:
12306
12307 · "us-east-1"
12308
12309 · The default endpoint - a good choice if you are unsure.
12310
12311 · US Region, Northern Virginia, or Pacific Northwest.
12312
12313 · Leave location constraint empty.
12314
12315 · "us-east-2"
12316
12317 · US East (Ohio) Region
12318
12319 · Needs location constraint us-east-2.
12320
12321 · "us-west-1"
12322
12323 · US West (Northern California) Region
12324
12325 · Needs location constraint us-west-1.
12326
12327 · "us-west-2"
12328
12329 · US West (Oregon) Region
12330
12331 · Needs location constraint us-west-2.
12332
12333 · "ca-central-1"
12334
12335 · Canada (Central) Region
12336
12337 · Needs location constraint ca-central-1.
12338
12339 · "eu-west-1"
12340
12341 · EU (Ireland) Region
12342
12343 · Needs location constraint EU or eu-west-1.
12344
12345 · "eu-west-2"
12346
12347 · EU (London) Region
12348
12349 · Needs location constraint eu-west-2.
12350
12351 · "eu-west-3"
12352
12353 · EU (Paris) Region
12354
12355 · Needs location constraint eu-west-3.
12356
12357 · "eu-north-1"
12358
12359 · EU (Stockholm) Region
12360
12361 · Needs location constraint eu-north-1.
12362
12363 · "eu-south-1"
12364
12365 · EU (Milan) Region
12366
12367 · Needs location constraint eu-south-1.
12368
12369 · "eu-central-1"
12370
12371 · EU (Frankfurt) Region
12372
12373 · Needs location constraint eu-central-1.
12374
12375 · "ap-southeast-1"
12376
12377 · Asia Pacific (Singapore) Region
12378
12379 · Needs location constraint ap-southeast-1.
12380
12381 · "ap-southeast-2"
12382
12383 · Asia Pacific (Sydney) Region
12384
12385 · Needs location constraint ap-southeast-2.
12386
12387 · "ap-northeast-1"
12388
12389 · Asia Pacific (Tokyo) Region
12390
12391 · Needs location constraint ap-northeast-1.
12392
12393 · "ap-northeast-2"
12394
12395 · Asia Pacific (Seoul)
12396
12397 · Needs location constraint ap-northeast-2.
12398
12399 · "ap-northeast-3"
12400
12401 · Asia Pacific (Osaka-Local)
12402
12403 · Needs location constraint ap-northeast-3.
12404
12405 · "ap-south-1"
12406
12407 · Asia Pacific (Mumbai)
12408
12409 · Needs location constraint ap-south-1.
12410
12411 · "ap-east-1"
12412
12413 · Asia Pacific (Hong Kong) Region
12414
12415 · Needs location constraint ap-east-1.
12416
12417 · "sa-east-1"
12418
12419 · South America (Sao Paulo) Region
12420
12421 · Needs location constraint sa-east-1.
12422
12423 · "me-south-1"
12424
12425 · Middle East (Bahrain) Region
12426
12427 · Needs location constraint me-south-1.
12428
12429 · "af-south-1"
12430
12431 · Africa (Cape Town) Region
12432
12433 · Needs location constraint af-south-1.
12434
12435 · "cn-north-1"
12436
12437 · China (Beijing) Region
12438
12439 · Needs location constraint cn-north-1.
12440
12441 · "cn-northwest-1"
12442
12443 · China (Ningxia) Region
12444
12445 · Needs location constraint cn-northwest-1.
12446
12447 · "us-gov-east-1"
12448
12449 · AWS GovCloud (US-East) Region
12450
12451 · Needs location constraint us-gov-east-1.
12452
12453 · "us-gov-west-1"
12454
12455 · AWS GovCloud (US) Region
12456
12457 · Needs location constraint us-gov-west-1.
12458
12459 --s3-region
12460 Region to connect to.
12461
12462 · Config: region
12463
12464 · Env Var: RCLONE_S3_REGION
12465
12466 · Type: string
12467
12468 · Default: ""
12469
12470 · Examples:
12471
12472 · "nl-ams"
12473
12474 · Amsterdam, The Netherlands
12475
12476 · "fr-par"
12477
12478 · Paris, France
12479
12480 --s3-region
12481 Region to connect to. Leave blank if you are using an S3 clone and you
12482 don't have a region.
12483
12484 · Config: region
12485
12486 · Env Var: RCLONE_S3_REGION
12487
12488 · Type: string
12489
12490 · Default: ""
12491
12492 · Examples:
12493
12494 · ""
12495
12496 · Use this if unsure. Will use v4 signatures and an empty region.
12497
12498 · "other-v2-signature"
12499
12500 · Use this only if v4 signatures don't work, e.g. pre Jewel/v10
12501 CEPH.
12502
12503 --s3-endpoint
12504 Endpoint for S3 API. Leave blank if using AWS to use the default end‐
12505 point for the region.
12506
12507 · Config: endpoint
12508
12509 · Env Var: RCLONE_S3_ENDPOINT
12510
12511 · Type: string
12512
12513 · Default: ""
12514
12515 --s3-endpoint
12516 Endpoint for IBM COS S3 API. Specify if using an IBM COS On Premise.
12517
12518 · Config: endpoint
12519
12520 · Env Var: RCLONE_S3_ENDPOINT
12521
12522 · Type: string
12523
12524 · Default: ""
12525
12526 · Examples:
12527
12528 · "s3.us.cloud-object-storage.appdomain.cloud"
12529
12530 · US Cross Region Endpoint
12531
12532 · "s3.dal.us.cloud-object-storage.appdomain.cloud"
12533
12534 · US Cross Region Dallas Endpoint
12535
12536 · "s3.wdc.us.cloud-object-storage.appdomain.cloud"
12537
12538 · US Cross Region Washington DC Endpoint
12539
12540 · "s3.sjc.us.cloud-object-storage.appdomain.cloud"
12541
12542 · US Cross Region San Jose Endpoint
12543
12544 · "s3.private.us.cloud-object-storage.appdomain.cloud"
12545
12546 · US Cross Region Private Endpoint
12547
12548 · "s3.private.dal.us.cloud-object-storage.appdomain.cloud"
12549
12550 · US Cross Region Dallas Private Endpoint
12551
12552 · "s3.private.wdc.us.cloud-object-storage.appdomain.cloud"
12553
12554 · US Cross Region Washington DC Private Endpoint
12555
12556 · "s3.private.sjc.us.cloud-object-storage.appdomain.cloud"
12557
12558 · US Cross Region San Jose Private Endpoint
12559
12560 · "s3.us-east.cloud-object-storage.appdomain.cloud"
12561
12562 · US Region East Endpoint
12563
12564 · "s3.private.us-east.cloud-object-storage.appdomain.cloud"
12565
12566 · US Region East Private Endpoint
12567
12568 · "s3.us-south.cloud-object-storage.appdomain.cloud"
12569
12570 · US Region South Endpoint
12571
12572 · "s3.private.us-south.cloud-object-storage.appdomain.cloud"
12573
12574 · US Region South Private Endpoint
12575
12576 · "s3.eu.cloud-object-storage.appdomain.cloud"
12577
12578 · EU Cross Region Endpoint
12579
12580 · "s3.fra.eu.cloud-object-storage.appdomain.cloud"
12581
12582 · EU Cross Region Frankfurt Endpoint
12583
12584 · "s3.mil.eu.cloud-object-storage.appdomain.cloud"
12585
12586 · EU Cross Region Milan Endpoint
12587
12588 · "s3.ams.eu.cloud-object-storage.appdomain.cloud"
12589
12590 · EU Cross Region Amsterdam Endpoint
12591
12592 · "s3.private.eu.cloud-object-storage.appdomain.cloud"
12593
12594 · EU Cross Region Private Endpoint
12595
12596 · "s3.private.fra.eu.cloud-object-storage.appdomain.cloud"
12597
12598 · EU Cross Region Frankfurt Private Endpoint
12599
12600 · "s3.private.mil.eu.cloud-object-storage.appdomain.cloud"
12601
12602 · EU Cross Region Milan Private Endpoint
12603
12604 · "s3.private.ams.eu.cloud-object-storage.appdomain.cloud"
12605
12606 · EU Cross Region Amsterdam Private Endpoint
12607
12608 · "s3.eu-gb.cloud-object-storage.appdomain.cloud"
12609
12610 · Great Britain Endpoint
12611
12612 · "s3.private.eu-gb.cloud-object-storage.appdomain.cloud"
12613
12614 · Great Britain Private Endpoint
12615
12616 · "s3.eu-de.cloud-object-storage.appdomain.cloud"
12617
12618 · EU Region DE Endpoint
12619
12620 · "s3.private.eu-de.cloud-object-storage.appdomain.cloud"
12621
12622 · EU Region DE Private Endpoint
12623
12624 · "s3.ap.cloud-object-storage.appdomain.cloud"
12625
12626 · APAC Cross Regional Endpoint
12627
12628 · "s3.tok.ap.cloud-object-storage.appdomain.cloud"
12629
12630 · APAC Cross Regional Tokyo Endpoint
12631
12632 · "s3.hkg.ap.cloud-object-storage.appdomain.cloud"
12633
12634 · APAC Cross Regional HongKong Endpoint
12635
12636 · "s3.seo.ap.cloud-object-storage.appdomain.cloud"
12637
12638 · APAC Cross Regional Seoul Endpoint
12639
12640 · "s3.private.ap.cloud-object-storage.appdomain.cloud"
12641
12642 · APAC Cross Regional Private Endpoint
12643
12644 · "s3.private.tok.ap.cloud-object-storage.appdomain.cloud"
12645
12646 · APAC Cross Regional Tokyo Private Endpoint
12647
12648 · "s3.private.hkg.ap.cloud-object-storage.appdomain.cloud"
12649
12650 · APAC Cross Regional HongKong Private Endpoint
12651
12652 · "s3.private.seo.ap.cloud-object-storage.appdomain.cloud"
12653
12654 · APAC Cross Regional Seoul Private Endpoint
12655
12656 · "s3.jp-tok.cloud-object-storage.appdomain.cloud"
12657
12658 · APAC Region Japan Endpoint
12659
12660 · "s3.private.jp-tok.cloud-object-storage.appdomain.cloud"
12661
12662 · APAC Region Japan Private Endpoint
12663
12664 · "s3.au-syd.cloud-object-storage.appdomain.cloud"
12665
12666 · APAC Region Australia Endpoint
12667
12668 · "s3.private.au-syd.cloud-object-storage.appdomain.cloud"
12669
12670 · APAC Region Australia Private Endpoint
12671
12672 · "s3.ams03.cloud-object-storage.appdomain.cloud"
12673
12674 · Amsterdam Single Site Endpoint
12675
12676 · "s3.private.ams03.cloud-object-storage.appdomain.cloud"
12677
12678 · Amsterdam Single Site Private Endpoint
12679
12680 · "s3.che01.cloud-object-storage.appdomain.cloud"
12681
12682 · Chennai Single Site Endpoint
12683
12684 · "s3.private.che01.cloud-object-storage.appdomain.cloud"
12685
12686 · Chennai Single Site Private Endpoint
12687
12688 · "s3.mel01.cloud-object-storage.appdomain.cloud"
12689
12690 · Melbourne Single Site Endpoint
12691
12692 · "s3.private.mel01.cloud-object-storage.appdomain.cloud"
12693
12694 · Melbourne Single Site Private Endpoint
12695
12696 · "s3.osl01.cloud-object-storage.appdomain.cloud"
12697
12698 · Oslo Single Site Endpoint
12699
12700 · "s3.private.osl01.cloud-object-storage.appdomain.cloud"
12701
12702 · Oslo Single Site Private Endpoint
12703
12704 · "s3.tor01.cloud-object-storage.appdomain.cloud"
12705
12706 · Toronto Single Site Endpoint
12707
12708 · "s3.private.tor01.cloud-object-storage.appdomain.cloud"
12709
12710 · Toronto Single Site Private Endpoint
12711
12712 · "s3.seo01.cloud-object-storage.appdomain.cloud"
12713
12714 · Seoul Single Site Endpoint
12715
12716 · "s3.private.seo01.cloud-object-storage.appdomain.cloud"
12717
12718 · Seoul Single Site Private Endpoint
12719
12720 · "s3.mon01.cloud-object-storage.appdomain.cloud"
12721
12722 · Montreal Single Site Endpoint
12723
12724 · "s3.private.mon01.cloud-object-storage.appdomain.cloud"
12725
12726 · Montreal Single Site Private Endpoint
12727
12728 · "s3.mex01.cloud-object-storage.appdomain.cloud"
12729
12730 · Mexico Single Site Endpoint
12731
12732 · "s3.private.mex01.cloud-object-storage.appdomain.cloud"
12733
12734 · Mexico Single Site Private Endpoint
12735
12736 · "s3.sjc04.cloud-object-storage.appdomain.cloud"
12737
12738 · San Jose Single Site Endpoint
12739
12740 · "s3.private.sjc04.cloud-object-storage.appdomain.cloud"
12741
12742 · San Jose Single Site Private Endpoint
12743
12744 · "s3.mil01.cloud-object-storage.appdomain.cloud"
12745
12746 · Milan Single Site Endpoint
12747
12748 · "s3.private.mil01.cloud-object-storage.appdomain.cloud"
12749
12750 · Milan Single Site Private Endpoint
12751
12752 · "s3.hkg02.cloud-object-storage.appdomain.cloud"
12753
12754 · Hong Kong Single Site Endpoint
12755
12756 · "s3.private.hkg02.cloud-object-storage.appdomain.cloud"
12757
12758 · Hong Kong Single Site Private Endpoint
12759
12760 · "s3.par01.cloud-object-storage.appdomain.cloud"
12761
12762 · Paris Single Site Endpoint
12763
12764 · "s3.private.par01.cloud-object-storage.appdomain.cloud"
12765
12766 · Paris Single Site Private Endpoint
12767
12768 · "s3.sng01.cloud-object-storage.appdomain.cloud"
12769
12770 · Singapore Single Site Endpoint
12771
12772 · "s3.private.sng01.cloud-object-storage.appdomain.cloud"
12773
12774 · Singapore Single Site Private Endpoint
12775
12776 --s3-endpoint
12777 Endpoint for OSS API.
12778
12779 · Config: endpoint
12780
12781 · Env Var: RCLONE_S3_ENDPOINT
12782
12783 · Type: string
12784
12785 · Default: ""
12786
12787 · Examples:
12788
12789 · "oss-cn-hangzhou.aliyuncs.com"
12790
12791 · East China 1 (Hangzhou)
12792
12793 · "oss-cn-shanghai.aliyuncs.com"
12794
12795 · East China 2 (Shanghai)
12796
12797 · "oss-cn-qingdao.aliyuncs.com"
12798
12799 · North China 1 (Qingdao)
12800
12801 · "oss-cn-beijing.aliyuncs.com"
12802
12803 · North China 2 (Beijing)
12804
12805 · "oss-cn-zhangjiakou.aliyuncs.com"
12806
12807 · North China 3 (Zhangjiakou)
12808
12809 · "oss-cn-huhehaote.aliyuncs.com"
12810
12811 · North China 5 (Huhehaote)
12812
12813 · "oss-cn-shenzhen.aliyuncs.com"
12814
12815 · South China 1 (Shenzhen)
12816
12817 · "oss-cn-hongkong.aliyuncs.com"
12818
12819 · Hong Kong (Hong Kong)
12820
12821 · "oss-us-west-1.aliyuncs.com"
12822
12823 · US West 1 (Silicon Valley)
12824
12825 · "oss-us-east-1.aliyuncs.com"
12826
12827 · US East 1 (Virginia)
12828
12829 · "oss-ap-southeast-1.aliyuncs.com"
12830
12831 · Southeast Asia Southeast 1 (Singapore)
12832
12833 · "oss-ap-southeast-2.aliyuncs.com"
12834
12835 · Asia Pacific Southeast 2 (Sydney)
12836
12837 · "oss-ap-southeast-3.aliyuncs.com"
12838
12839 · Southeast Asia Southeast 3 (Kuala Lumpur)
12840
12841 · "oss-ap-southeast-5.aliyuncs.com"
12842
12843 · Asia Pacific Southeast 5 (Jakarta)
12844
12845 · "oss-ap-northeast-1.aliyuncs.com"
12846
12847 · Asia Pacific Northeast 1 (Japan)
12848
12849 · "oss-ap-south-1.aliyuncs.com"
12850
12851 · Asia Pacific South 1 (Mumbai)
12852
12853 · "oss-eu-central-1.aliyuncs.com"
12854
12855 · Central Europe 1 (Frankfurt)
12856
12857 · "oss-eu-west-1.aliyuncs.com"
12858
12859 · West Europe (London)
12860
12861 · "oss-me-east-1.aliyuncs.com"
12862
12863 · Middle East 1 (Dubai)
12864
12865 --s3-endpoint
12866 Endpoint for Scaleway Object Storage.
12867
12868 · Config: endpoint
12869
12870 · Env Var: RCLONE_S3_ENDPOINT
12871
12872 · Type: string
12873
12874 · Default: ""
12875
12876 · Examples:
12877
12878 · "s3.nl-ams.scw.cloud"
12879
12880 · Amsterdam Endpoint
12881
12882 · "s3.fr-par.scw.cloud"
12883
12884 · Paris Endpoint
12885
12886 --s3-endpoint
12887 Endpoint for StackPath Object Storage.
12888
12889 · Config: endpoint
12890
12891 · Env Var: RCLONE_S3_ENDPOINT
12892
12893 · Type: string
12894
12895 · Default: ""
12896
12897 · Examples:
12898
12899 · "s3.us-east-2.stackpathstorage.com"
12900
12901 · US East Endpoint
12902
12903 · "s3.us-west-1.stackpathstorage.com"
12904
12905 · US West Endpoint
12906
12907 · "s3.eu-central-1.stackpathstorage.com"
12908
12909 · EU Endpoint
12910
12911 --s3-endpoint
12912 Endpoint for Tencent COS API.
12913
12914 · Config: endpoint
12915
12916 · Env Var: RCLONE_S3_ENDPOINT
12917
12918 · Type: string
12919
12920 · Default: ""
12921
12922 · Examples:
12923
12924 · "cos.ap-beijing.myqcloud.com"
12925
12926 · Beijing Region.
12927
12928 · "cos.ap-nanjing.myqcloud.com"
12929
12930 · Nanjing Region.
12931
12932 · "cos.ap-shanghai.myqcloud.com"
12933
12934 · Shanghai Region.
12935
12936 · "cos.ap-guangzhou.myqcloud.com"
12937
12938 · Guangzhou Region.
12939
12940 · "cos.ap-nanjing.myqcloud.com"
12941
12942 · Nanjing Region.
12943
12944 · "cos.ap-chengdu.myqcloud.com"
12945
12946 · Chengdu Region.
12947
12948 · "cos.ap-chongqing.myqcloud.com"
12949
12950 · Chongqing Region.
12951
12952 · "cos.ap-hongkong.myqcloud.com"
12953
12954 · Hong Kong (China) Region.
12955
12956 · "cos.ap-singapore.myqcloud.com"
12957
12958 · Singapore Region.
12959
12960 · "cos.ap-mumbai.myqcloud.com"
12961
12962 · Mumbai Region.
12963
12964 · "cos.ap-seoul.myqcloud.com"
12965
12966 · Seoul Region.
12967
12968 · "cos.ap-bangkok.myqcloud.com"
12969
12970 · Bangkok Region.
12971
12972 · "cos.ap-tokyo.myqcloud.com"
12973
12974 · Tokyo Region.
12975
12976 · "cos.na-siliconvalley.myqcloud.com"
12977
12978 · Silicon Valley Region.
12979
12980 · "cos.na-ashburn.myqcloud.com"
12981
12982 · Virginia Region.
12983
12984 · "cos.na-toronto.myqcloud.com"
12985
12986 · Toronto Region.
12987
12988 · "cos.eu-frankfurt.myqcloud.com"
12989
12990 · Frankfurt Region.
12991
12992 · "cos.eu-moscow.myqcloud.com"
12993
12994 · Moscow Region.
12995
12996 · "cos.accelerate.myqcloud.com"
12997
12998 · Use Tencent COS Accelerate Endpoint.
12999
13000 --s3-endpoint
13001 Endpoint for S3 API. Required when using an S3 clone.
13002
13003 · Config: endpoint
13004
13005 · Env Var: RCLONE_S3_ENDPOINT
13006
13007 · Type: string
13008
13009 · Default: ""
13010
13011 · Examples:
13012
13013 · "objects-us-east-1.dream.io"
13014
13015 · Dream Objects endpoint
13016
13017 · "nyc3.digitaloceanspaces.com"
13018
13019 · Digital Ocean Spaces New York 3
13020
13021 · "ams3.digitaloceanspaces.com"
13022
13023 · Digital Ocean Spaces Amsterdam 3
13024
13025 · "sgp1.digitaloceanspaces.com"
13026
13027 · Digital Ocean Spaces Singapore 1
13028
13029 · "s3.wasabisys.com"
13030
13031 · Wasabi US East endpoint
13032
13033 · "s3.us-west-1.wasabisys.com"
13034
13035 · Wasabi US West endpoint
13036
13037 · "s3.eu-central-1.wasabisys.com"
13038
13039 · Wasabi EU Central endpoint
13040
13041 --s3-location-constraint
13042 Location constraint - must be set to match the Region. Used when cre‐
13043 ating buckets only.
13044
13045 · Config: location_constraint
13046
13047 · Env Var: RCLONE_S3_LOCATION_CONSTRAINT
13048
13049 · Type: string
13050
13051 · Default: ""
13052
13053 · Examples:
13054
13055 · ""
13056
13057 · Empty for US Region, Northern Virginia, or Pacific Northwest.
13058
13059 · "us-east-2"
13060
13061 · US East (Ohio) Region.
13062
13063 · "us-west-1"
13064
13065 · US West (Northern California) Region.
13066
13067 · "us-west-2"
13068
13069 · US West (Oregon) Region.
13070
13071 · "ca-central-1"
13072
13073 · Canada (Central) Region.
13074
13075 · "eu-west-1"
13076
13077 · EU (Ireland) Region.
13078
13079 · "eu-west-2"
13080
13081 · EU (London) Region.
13082
13083 · "eu-west-3"
13084
13085 · EU (Paris) Region.
13086
13087 · "eu-north-1"
13088
13089 · EU (Stockholm) Region.
13090
13091 · "eu-south-1"
13092
13093 · EU (Milan) Region.
13094
13095 · "EU"
13096
13097 · EU Region.
13098
13099 · "ap-southeast-1"
13100
13101 · Asia Pacific (Singapore) Region.
13102
13103 · "ap-southeast-2"
13104
13105 · Asia Pacific (Sydney) Region.
13106
13107 · "ap-northeast-1"
13108
13109 · Asia Pacific (Tokyo) Region.
13110
13111 · "ap-northeast-2"
13112
13113 · Asia Pacific (Seoul) Region.
13114
13115 · "ap-northeast-3"
13116
13117 · Asia Pacific (Osaka-Local) Region.
13118
13119 · "ap-south-1"
13120
13121 · Asia Pacific (Mumbai) Region.
13122
13123 · "ap-east-1"
13124
13125 · Asia Pacific (Hong Kong) Region.
13126
13127 · "sa-east-1"
13128
13129 · South America (Sao Paulo) Region.
13130
13131 · "me-south-1"
13132
13133 · Middle East (Bahrain) Region.
13134
13135 · "af-south-1"
13136
13137 · Africa (Cape Town) Region.
13138
13139 · "cn-north-1"
13140
13141 · China (Beijing) Region
13142
13143 · "cn-northwest-1"
13144
13145 · China (Ningxia) Region.
13146
13147 · "us-gov-east-1"
13148
13149 · AWS GovCloud (US-East) Region.
13150
13151 · "us-gov-west-1"
13152
13153 · AWS GovCloud (US) Region.
13154
13155 --s3-location-constraint
13156 Location constraint - must match endpoint when using IBM Cloud Public.
13157 For on-prem COS, do not make a selection from this list, hit enter
13158
13159 · Config: location_constraint
13160
13161 · Env Var: RCLONE_S3_LOCATION_CONSTRAINT
13162
13163 · Type: string
13164
13165 · Default: ""
13166
13167 · Examples:
13168
13169 · "us-standard"
13170
13171 · US Cross Region Standard
13172
13173 · "us-vault"
13174
13175 · US Cross Region Vault
13176
13177 · "us-cold"
13178
13179 · US Cross Region Cold
13180
13181 · "us-flex"
13182
13183 · US Cross Region Flex
13184
13185 · "us-east-standard"
13186
13187 · US East Region Standard
13188
13189 · "us-east-vault"
13190
13191 · US East Region Vault
13192
13193 · "us-east-cold"
13194
13195 · US East Region Cold
13196
13197 · "us-east-flex"
13198
13199 · US East Region Flex
13200
13201 · "us-south-standard"
13202
13203 · US South Region Standard
13204
13205 · "us-south-vault"
13206
13207 · US South Region Vault
13208
13209 · "us-south-cold"
13210
13211 · US South Region Cold
13212
13213 · "us-south-flex"
13214
13215 · US South Region Flex
13216
13217 · "eu-standard"
13218
13219 · EU Cross Region Standard
13220
13221 · "eu-vault"
13222
13223 · EU Cross Region Vault
13224
13225 · "eu-cold"
13226
13227 · EU Cross Region Cold
13228
13229 · "eu-flex"
13230
13231 · EU Cross Region Flex
13232
13233 · "eu-gb-standard"
13234
13235 · Great Britain Standard
13236
13237 · "eu-gb-vault"
13238
13239 · Great Britain Vault
13240
13241 · "eu-gb-cold"
13242
13243 · Great Britain Cold
13244
13245 · "eu-gb-flex"
13246
13247 · Great Britain Flex
13248
13249 · "ap-standard"
13250
13251 · APAC Standard
13252
13253 · "ap-vault"
13254
13255 · APAC Vault
13256
13257 · "ap-cold"
13258
13259 · APAC Cold
13260
13261 · "ap-flex"
13262
13263 · APAC Flex
13264
13265 · "mel01-standard"
13266
13267 · Melbourne Standard
13268
13269 · "mel01-vault"
13270
13271 · Melbourne Vault
13272
13273 · "mel01-cold"
13274
13275 · Melbourne Cold
13276
13277 · "mel01-flex"
13278
13279 · Melbourne Flex
13280
13281 · "tor01-standard"
13282
13283 · Toronto Standard
13284
13285 · "tor01-vault"
13286
13287 · Toronto Vault
13288
13289 · "tor01-cold"
13290
13291 · Toronto Cold
13292
13293 · "tor01-flex"
13294
13295 · Toronto Flex
13296
13297 --s3-location-constraint
13298 Location constraint - must be set to match the Region. Leave blank if
13299 not sure. Used when creating buckets only.
13300
13301 · Config: location_constraint
13302
13303 · Env Var: RCLONE_S3_LOCATION_CONSTRAINT
13304
13305 · Type: string
13306
13307 · Default: ""
13308
13309 --s3-acl
13310 Canned ACL used when creating buckets and storing or copying objects.
13311
13312 This ACL is used for creating objects and if bucket_acl isn't set, for
13313 creating buckets too.
13314
13315 For more info visit https://docs.aws.amazon.com/AmazonS3/lat‐
13316 est/dev/acl-overview.html#canned-acl
13317
13318 Note that this ACL is applied when server-side copying objects as S3
13319 doesn't copy the ACL from the source but rather writes a fresh one.
13320
13321 · Config: acl
13322
13323 · Env Var: RCLONE_S3_ACL
13324
13325 · Type: string
13326
13327 · Default: ""
13328
13329 · Examples:
13330
13331 · "default"
13332
13333 · Owner gets Full_CONTROL. No one else has access rights (de‐
13334 fault).
13335
13336 · "private"
13337
13338 · Owner gets FULL_CONTROL. No one else has access rights (de‐
13339 fault).
13340
13341 · "public-read"
13342
13343 · Owner gets FULL_CONTROL. The AllUsers group gets READ access.
13344
13345 · "public-read-write"
13346
13347 · Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
13348 access.
13349
13350 · Granting this on a bucket is generally not recommended.
13351
13352 · "authenticated-read"
13353
13354 · Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
13355 access.
13356
13357 · "bucket-owner-read"
13358
13359 · Object owner gets FULL_CONTROL. Bucket owner gets READ access.
13360
13361 · If you specify this canned ACL when creating a bucket, Amazon S3
13362 ignores it.
13363
13364 · "bucket-owner-full-control"
13365
13366 · Both the object owner and the bucket owner get FULL_CONTROL over
13367 the object.
13368
13369 · If you specify this canned ACL when creating a bucket, Amazon S3
13370 ignores it.
13371
13372 · "private"
13373
13374 · Owner gets FULL_CONTROL. No one else has access rights (de‐
13375 fault). This acl is available on IBM Cloud (Infra), IBM Cloud
13376 (Storage), On-Premise COS
13377
13378 · "public-read"
13379
13380 · Owner gets FULL_CONTROL. The AllUsers group gets READ access.
13381 This acl is available on IBM Cloud (Infra), IBM Cloud (Storage),
13382 On-Premise IBM COS
13383
13384 · "public-read-write"
13385
13386 · Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
13387 access. This acl is available on IBM Cloud (Infra), On-Premise
13388 IBM COS
13389
13390 · "authenticated-read"
13391
13392 · Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
13393 access. Not supported on Buckets. This acl is available on IBM
13394 Cloud (Infra) and On-Premise IBM COS
13395
13396 --s3-server-side-encryption
13397 The server-side encryption algorithm used when storing this object in
13398 S3.
13399
13400 · Config: server_side_encryption
13401
13402 · Env Var: RCLONE_S3_SERVER_SIDE_ENCRYPTION
13403
13404 · Type: string
13405
13406 · Default: ""
13407
13408 · Examples:
13409
13410 · ""
13411
13412 · None
13413
13414 · "AES256"
13415
13416 · AES256
13417
13418 · "aws:kms"
13419
13420 · aws:kms
13421
13422 --s3-sse-kms-key-id
13423 If using KMS ID you must provide the ARN of Key.
13424
13425 · Config: sse_kms_key_id
13426
13427 · Env Var: RCLONE_S3_SSE_KMS_KEY_ID
13428
13429 · Type: string
13430
13431 · Default: ""
13432
13433 · Examples:
13434
13435 · ""
13436
13437 · None
13438
13439 · "arn:aws:kms:us-east-1:*"
13440
13441 · arn:aws:kms:*
13442
13443 --s3-storage-class
13444 The storage class to use when storing new objects in S3.
13445
13446 · Config: storage_class
13447
13448 · Env Var: RCLONE_S3_STORAGE_CLASS
13449
13450 · Type: string
13451
13452 · Default: ""
13453
13454 · Examples:
13455
13456 · ""
13457
13458 · Default
13459
13460 · "STANDARD"
13461
13462 · Standard storage class
13463
13464 · "REDUCED_REDUNDANCY"
13465
13466 · Reduced redundancy storage class
13467
13468 · "STANDARD_IA"
13469
13470 · Standard Infrequent Access storage class
13471
13472 · "ONEZONE_IA"
13473
13474 · One Zone Infrequent Access storage class
13475
13476 · "GLACIER"
13477
13478 · Glacier storage class
13479
13480 · "DEEP_ARCHIVE"
13481
13482 · Glacier Deep Archive storage class
13483
13484 · "INTELLIGENT_TIERING"
13485
13486 · Intelligent-Tiering storage class
13487
13488 --s3-storage-class
13489 The storage class to use when storing new objects in OSS.
13490
13491 · Config: storage_class
13492
13493 · Env Var: RCLONE_S3_STORAGE_CLASS
13494
13495 · Type: string
13496
13497 · Default: ""
13498
13499 · Examples:
13500
13501 · ""
13502
13503 · Default
13504
13505 · "STANDARD"
13506
13507 · Standard storage class
13508
13509 · "GLACIER"
13510
13511 · Archive storage mode.
13512
13513 · "STANDARD_IA"
13514
13515 · Infrequent access storage mode.
13516
13517 --s3-storage-class
13518 The storage class to use when storing new objects in Tencent COS.
13519
13520 · Config: storage_class
13521
13522 · Env Var: RCLONE_S3_STORAGE_CLASS
13523
13524 · Type: string
13525
13526 · Default: ""
13527
13528 · Examples:
13529
13530 · ""
13531
13532 · Default
13533
13534 · "STANDARD"
13535
13536 · Standard storage class
13537
13538 · "ARCHIVE"
13539
13540 · Archive storage mode.
13541
13542 · "STANDARD_IA"
13543
13544 · Infrequent access storage mode.
13545
13546 --s3-storage-class
13547 The storage class to use when storing new objects in S3.
13548
13549 · Config: storage_class
13550
13551 · Env Var: RCLONE_S3_STORAGE_CLASS
13552
13553 · Type: string
13554
13555 · Default: ""
13556
13557 · Examples:
13558
13559 · ""
13560
13561 · Default
13562
13563 · "STANDARD"
13564
13565 · The Standard class for any upload; suitable for on-demand content
13566 like streaming or CDN.
13567
13568 · "GLACIER"
13569
13570 · Archived storage; prices are lower, but it needs to be restored
13571 first to be accessed.
13572
13573 Advanced Options
13574 Here are the advanced options specific to s3 (Amazon S3 Compliant Stor‐
13575 age Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost,
13576 IBM COS, Minio, and Tencent COS).
13577
13578 --s3-bucket-acl
13579 Canned ACL used when creating buckets.
13580
13581 For more info visit https://docs.aws.amazon.com/AmazonS3/lat‐
13582 est/dev/acl-overview.html#canned-acl
13583
13584 Note that this ACL is applied when only when creating buckets. If it
13585 isn't set then "acl" is used instead.
13586
13587 · Config: bucket_acl
13588
13589 · Env Var: RCLONE_S3_BUCKET_ACL
13590
13591 · Type: string
13592
13593 · Default: ""
13594
13595 · Examples:
13596
13597 · "private"
13598
13599 · Owner gets FULL_CONTROL. No one else has access rights (de‐
13600 fault).
13601
13602 · "public-read"
13603
13604 · Owner gets FULL_CONTROL. The AllUsers group gets READ access.
13605
13606 · "public-read-write"
13607
13608 · Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE
13609 access.
13610
13611 · Granting this on a bucket is generally not recommended.
13612
13613 · "authenticated-read"
13614
13615 · Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ
13616 access.
13617
13618 --s3-requester-pays
13619 Enables requester pays option when interacting with S3 bucket.
13620
13621 · Config: requester_pays
13622
13623 · Env Var: RCLONE_S3_REQUESTER_PAYS
13624
13625 · Type: bool
13626
13627 · Default: false
13628
13629 --s3-sse-customer-algorithm
13630 If using SSE-C, the server-side encryption algorithm used when storing
13631 this object in S3.
13632
13633 · Config: sse_customer_algorithm
13634
13635 · Env Var: RCLONE_S3_SSE_CUSTOMER_ALGORITHM
13636
13637 · Type: string
13638
13639 · Default: ""
13640
13641 · Examples:
13642
13643 · ""
13644
13645 · None
13646
13647 · "AES256"
13648
13649 · AES256
13650
13651 --s3-sse-customer-key
13652 If using SSE-C you must provide the secret encryption key used to en‐
13653 crypt/decrypt your data.
13654
13655 · Config: sse_customer_key
13656
13657 · Env Var: RCLONE_S3_SSE_CUSTOMER_KEY
13658
13659 · Type: string
13660
13661 · Default: ""
13662
13663 · Examples:
13664
13665 · ""
13666
13667 · None
13668
13669 --s3-sse-customer-key-md5
13670 If using SSE-C you may provide the secret encryption key MD5 checksum
13671 (optional).
13672
13673 If you leave it blank, this is calculated automatically from the
13674 sse_customer_key provided.
13675
13676 · Config: sse_customer_key_md5
13677
13678 · Env Var: RCLONE_S3_SSE_CUSTOMER_KEY_MD5
13679
13680 · Type: string
13681
13682 · Default: ""
13683
13684 · Examples:
13685
13686 · ""
13687
13688 · None
13689
13690 --s3-upload-cutoff
13691 Cutoff for switching to chunked upload
13692
13693 Any files larger than this will be uploaded in chunks of chunk_size.
13694 The minimum is 0 and the maximum is 5GB.
13695
13696 · Config: upload_cutoff
13697
13698 · Env Var: RCLONE_S3_UPLOAD_CUTOFF
13699
13700 · Type: SizeSuffix
13701
13702 · Default: 200M
13703
13704 --s3-chunk-size
13705 Chunk size to use for uploading.
13706
13707 When uploading files larger than upload_cutoff or files with unknown
13708 size (e.g. from "rclone rcat" or uploaded with "rclone mount" or
13709 google photos or google docs) they will be uploaded as multipart up‐
13710 loads using this chunk size.
13711
13712 Note that "--s3-upload-concurrency" chunks of this size are buffered in
13713 memory per transfer.
13714
13715 If you are transferring large files over high-speed links and you have
13716 enough memory, then increasing this will speed up the transfers.
13717
13718 Rclone will automatically increase the chunk size when uploading a
13719 large file of known size to stay below the 10,000 chunks limit.
13720
13721 Files of unknown size are uploaded with the configured chunk_size.
13722 Since the default chunk size is 5MB and there can be at most 10,000
13723 chunks, this means that by default the maximum size of a file you can
13724 stream upload is 48GB. If you wish to stream upload larger files then
13725 you will need to increase chunk_size.
13726
13727 · Config: chunk_size
13728
13729 · Env Var: RCLONE_S3_CHUNK_SIZE
13730
13731 · Type: SizeSuffix
13732
13733 · Default: 5M
13734
13735 --s3-max-upload-parts
13736 Maximum number of parts in a multipart upload.
13737
13738 This option defines the maximum number of multipart chunks to use when
13739 doing a multipart upload.
13740
13741 This can be useful if a service does not support the AWS S3 specifica‐
13742 tion of 10,000 chunks.
13743
13744 Rclone will automatically increase the chunk size when uploading a
13745 large file of a known size to stay below this number of chunks limit.
13746
13747 · Config: max_upload_parts
13748
13749 · Env Var: RCLONE_S3_MAX_UPLOAD_PARTS
13750
13751 · Type: int
13752
13753 · Default: 10000
13754
13755 --s3-copy-cutoff
13756 Cutoff for switching to multipart copy
13757
13758 Any files larger than this that need to be server-side copied will be
13759 copied in chunks of this size.
13760
13761 The minimum is 0 and the maximum is 5GB.
13762
13763 · Config: copy_cutoff
13764
13765 · Env Var: RCLONE_S3_COPY_CUTOFF
13766
13767 · Type: SizeSuffix
13768
13769 · Default: 4.656G
13770
13771 --s3-disable-checksum
13772 Don't store MD5 checksum with object metadata
13773
13774 Normally rclone will calculate the MD5 checksum of the input before up‐
13775 loading it so it can add it to metadata on the object. This is great
13776 for data integrity checking but can cause long delays for large files
13777 to start uploading.
13778
13779 · Config: disable_checksum
13780
13781 · Env Var: RCLONE_S3_DISABLE_CHECKSUM
13782
13783 · Type: bool
13784
13785 · Default: false
13786
13787 --s3-shared-credentials-file
13788 Path to the shared credentials file
13789
13790 If env_auth = true then rclone can use a shared credentials file.
13791
13792 If this variable is empty rclone will look for the "AWS_SHARED_CREDEN‐
13793 TIALS_FILE" env variable. If the env value is empty it will default to
13794 the current user's home directory.
13795
13796 Linux/OSX: "$HOME/.aws/credentials"
13797 Windows: "%USERPROFILE%\.aws\credentials"
13798
13799 · Config: shared_credentials_file
13800
13801 · Env Var: RCLONE_S3_SHARED_CREDENTIALS_FILE
13802
13803 · Type: string
13804
13805 · Default: ""
13806
13807 --s3-profile
13808 Profile to use in the shared credentials file
13809
13810 If env_auth = true then rclone can use a shared credentials file. This
13811 variable controls which profile is used in that file.
13812
13813 If empty it will default to the environment variable "AWS_PROFILE" or
13814 "default" if that environment variable is also not set.
13815
13816 · Config: profile
13817
13818 · Env Var: RCLONE_S3_PROFILE
13819
13820 · Type: string
13821
13822 · Default: ""
13823
13824 --s3-session-token
13825 An AWS session token
13826
13827 · Config: session_token
13828
13829 · Env Var: RCLONE_S3_SESSION_TOKEN
13830
13831 · Type: string
13832
13833 · Default: ""
13834
13835 --s3-upload-concurrency
13836 Concurrency for multipart uploads.
13837
13838 This is the number of chunks of the same file that are uploaded concur‐
13839 rently.
13840
13841 If you are uploading small numbers of large files over high-speed links
13842 and these uploads do not fully utilize your bandwidth, then increasing
13843 this may help to speed up the transfers.
13844
13845 · Config: upload_concurrency
13846
13847 · Env Var: RCLONE_S3_UPLOAD_CONCURRENCY
13848
13849 · Type: int
13850
13851 · Default: 4
13852
13853 --s3-force-path-style
13854 If true use path style access if false use virtual hosted style.
13855
13856 If this is true (the default) then rclone will use path style access,
13857 if false then rclone will use virtual path style. See the AWS S3 docs
13858 (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#ac‐
13859 cess-bucket-intro) for more info.
13860
13861 Some providers (e.g. AWS, Aliyun OSS, Netease COS, or Tencent COS) re‐
13862 quire this set to false - rclone will do this automatically based on
13863 the provider setting.
13864
13865 · Config: force_path_style
13866
13867 · Env Var: RCLONE_S3_FORCE_PATH_STYLE
13868
13869 · Type: bool
13870
13871 · Default: true
13872
13873 --s3-v2-auth
13874 If true use v2 authentication.
13875
13876 If this is false (the default) then rclone will use v4 authentication.
13877 If it is set then rclone will use v2 authentication.
13878
13879 Use this only if v4 signatures don't work, e.g. pre Jewel/v10 CEPH.
13880
13881 · Config: v2_auth
13882
13883 · Env Var: RCLONE_S3_V2_AUTH
13884
13885 · Type: bool
13886
13887 · Default: false
13888
13889 --s3-use-accelerate-endpoint
13890 If true use the AWS S3 accelerated endpoint.
13891
13892 See: AWS S3 Transfer acceleration (https://docs.aws.amazon.com/Ama‐
13893 zonS3/latest/dev/transfer-acceleration-examples.html)
13894
13895 · Config: use_accelerate_endpoint
13896
13897 · Env Var: RCLONE_S3_USE_ACCELERATE_ENDPOINT
13898
13899 · Type: bool
13900
13901 · Default: false
13902
13903 --s3-leave-parts-on-error
13904 If true avoid calling abort upload on a failure, leaving all success‐
13905 fully uploaded parts on S3 for manual recovery.
13906
13907 It should be set to true for resuming uploads across different ses‐
13908 sions.
13909
13910 WARNING: Storing parts of an incomplete multipart upload counts towards
13911 space usage on S3 and will add additional costs if not cleaned up.
13912
13913 · Config: leave_parts_on_error
13914
13915 · Env Var: RCLONE_S3_LEAVE_PARTS_ON_ERROR
13916
13917 · Type: bool
13918
13919 · Default: false
13920
13921 --s3-list-chunk
13922 Size of listing chunk (response list for each ListObject S3 request).
13923
13924 This option is also known as "MaxKeys", "max-items", or "page-size"
13925 from the AWS S3 specification. Most services truncate the response
13926 list to 1000 objects even if requested more than that. In AWS S3 this
13927 is a global maximum and cannot be changed, see AWS S3
13928 (https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html). In
13929 Ceph, this can be increased with the "rgw list buckets max chunk" op‐
13930 tion.
13931
13932 · Config: list_chunk
13933
13934 · Env Var: RCLONE_S3_LIST_CHUNK
13935
13936 · Type: int
13937
13938 · Default: 1000
13939
13940 --s3-no-check-bucket
13941 If set, don't attempt to check the bucket exists or create it
13942
13943 This can be useful when trying to minimise the number of transactions
13944 rclone does if you know the bucket exists already.
13945
13946 It can also be needed if the user you are using does not have bucket
13947 creation permissions. Before v1.52.0 this would have passed silently
13948 due to a bug.
13949
13950 · Config: no_check_bucket
13951
13952 · Env Var: RCLONE_S3_NO_CHECK_BUCKET
13953
13954 · Type: bool
13955
13956 · Default: false
13957
13958 --s3-no-head
13959 If set, don't HEAD uploaded objects to check integrity
13960
13961 This can be useful when trying to minimise the number of transactions
13962 rclone does.
13963
13964 Setting it means that if rclone receives a 200 OK message after upload‐
13965 ing an object with PUT then it will assume that it got uploaded proper‐
13966 ly.
13967
13968 In particular it will assume:
13969
13970 · the metadata, including modtime, storage class and content type was
13971 as uploaded
13972
13973 · the size was as uploaded
13974
13975 It reads the following items from the response for a single part PUT:
13976
13977 · the MD5SUM
13978
13979 · The uploaded date
13980
13981 For multipart uploads these items aren't read.
13982
13983 If an source object of unknown length is uploaded then rclone will do a
13984 HEAD request.
13985
13986 Setting this flag increases the chance for undetected upload failures,
13987 in particular an incorrect size, so it isn't recommended for normal op‐
13988 eration. In practice the chance of an undetected upload failure is
13989 very small even with this flag.
13990
13991 · Config: no_head
13992
13993 · Env Var: RCLONE_S3_NO_HEAD
13994
13995 · Type: bool
13996
13997 · Default: false
13998
13999 --s3-encoding
14000 This sets the encoding for the backend.
14001
14002 See: the encoding section in the overview (https://rclone.org/over‐
14003 view/#encoding) for more info.
14004
14005 · Config: encoding
14006
14007 · Env Var: RCLONE_S3_ENCODING
14008
14009 · Type: MultiEncoder
14010
14011 · Default: Slash,InvalidUtf8,Dot
14012
14013 --s3-memory-pool-flush-time
14014 How often internal memory buffer pools will be flushed. Uploads which
14015 requires additional buffers (f.e multipart) will use memory pool for
14016 allocations. This option controls how often unused buffers will be re‐
14017 moved from the pool.
14018
14019 · Config: memory_pool_flush_time
14020
14021 · Env Var: RCLONE_S3_MEMORY_POOL_FLUSH_TIME
14022
14023 · Type: Duration
14024
14025 · Default: 1m0s
14026
14027 --s3-memory-pool-use-mmap
14028 Whether to use mmap buffers in internal memory pool.
14029
14030 · Config: memory_pool_use_mmap
14031
14032 · Env Var: RCLONE_S3_MEMORY_POOL_USE_MMAP
14033
14034 · Type: bool
14035
14036 · Default: false
14037
14038 --s3-disable-http2
14039 Disable usage of http2 for S3 backends
14040
14041 There is currently an unsolved issue with the s3 (specifically minio)
14042 backend and HTTP/2. HTTP/2 is enabled by default for the s3 backend
14043 but can be disabled here. When the issue is solved this flag will be
14044 removed.
14045
14046 See: https://github.com/rclone/rclone/issues/4673,
14047 https://github.com/rclone/rclone/issues/3631
14048
14049 · Config: disable_http2
14050
14051 · Env Var: RCLONE_S3_DISABLE_HTTP2
14052
14053 · Type: bool
14054
14055 · Default: false
14056
14057 Backend commands
14058 Here are the commands specific to the s3 backend.
14059
14060 Run them with
14061
14062 rclone backend COMMAND remote:
14063
14064 The help below will explain what arguments each command takes.
14065
14066 See the "rclone backend" command (https://rclone.org/com‐
14067 mands/rclone_backend/) for more info on how to pass options and argu‐
14068 ments.
14069
14070 These can be run on a running backend using the rc command backend/com‐
14071 mand (https://rclone.org/rc/#backend/command).
14072
14073 restore
14074 Restore objects from GLACIER to normal storage
14075
14076 rclone backend restore remote: [options] [<arguments>+]
14077
14078 This command can be used to restore one or more objects from GLACIER to
14079 normal storage.
14080
14081 Usage Examples:
14082
14083 rclone backend restore s3:bucket/path/to/object [-o priority=PRIORITY] [-o lifetime=DAYS]
14084 rclone backend restore s3:bucket/path/to/directory [-o priority=PRIORITY] [-o lifetime=DAYS]
14085 rclone backend restore s3:bucket [-o priority=PRIORITY] [-o lifetime=DAYS]
14086
14087 This flag also obeys the filters. Test first with -i/--interactive or
14088 --dry-run flags
14089
14090 rclone -i backend restore --include "*.txt" s3:bucket/path -o priority=Standard
14091
14092 All the objects shown will be marked for restore, then
14093
14094 rclone backend restore --include "*.txt" s3:bucket/path -o priority=Standard
14095
14096 It returns a list of status dictionaries with Remote and Status keys.
14097 The Status will be OK if it was successful or an error message if not.
14098
14099 [
14100 {
14101 "Status": "OK",
14102 "Path": "test.txt"
14103 },
14104 {
14105 "Status": "OK",
14106 "Path": "test/file4.txt"
14107 }
14108 ]
14109
14110 Options:
14111
14112 · "description": The optional description for the job.
14113
14114 · "lifetime": Lifetime of the active copy in days
14115
14116 · "priority": Priority of restore: Standard|Expedited|Bulk
14117
14118 list-multipart-uploads
14119 List the unfinished multipart uploads
14120
14121 rclone backend list-multipart-uploads remote: [options] [<arguments>+]
14122
14123 This command lists the unfinished multipart uploads in JSON format.
14124
14125 rclone backend list-multipart s3:bucket/path/to/object
14126
14127 It returns a dictionary of buckets with values as lists of unfinished
14128 multipart uploads.
14129
14130 You can call it with no bucket in which case it lists all bucket, with
14131 a bucket or with a bucket and path.
14132
14133 {
14134 "rclone": [
14135 {
14136 "Initiated": "2020-06-26T14:20:36Z",
14137 "Initiator": {
14138 "DisplayName": "XXX",
14139 "ID": "arn:aws:iam::XXX:user/XXX"
14140 },
14141 "Key": "KEY",
14142 "Owner": {
14143 "DisplayName": null,
14144 "ID": "XXX"
14145 },
14146 "StorageClass": "STANDARD",
14147 "UploadId": "XXX"
14148 }
14149 ],
14150 "rclone-1000files": [],
14151 "rclone-dst": []
14152 }
14153
14154 cleanup
14155 Remove unfinished multipart uploads.
14156
14157 rclone backend cleanup remote: [options] [<arguments>+]
14158
14159 This command removes unfinished multipart uploads of age greater than
14160 max-age which defaults to 24 hours.
14161
14162 Note that you can use -i/--dry-run with this command to see what it
14163 would do.
14164
14165 rclone backend cleanup s3:bucket/path/to/object
14166 rclone backend cleanup -o max-age=7w s3:bucket/path/to/object
14167
14168 Durations are parsed as per the rest of rclone, 2h, 7d, 7w etc.
14169
14170 Options:
14171
14172 · "max-age": Max age of upload to delete
14173
14174 Anonymous access to public buckets
14175 If you want to use rclone to access a public bucket, configure with a
14176 blank access_key_id and secret_access_key. Your config should end up
14177 looking like this:
14178
14179 [anons3]
14180 type = s3
14181 provider = AWS
14182 env_auth = false
14183 access_key_id =
14184 secret_access_key =
14185 region = us-east-1
14186 endpoint =
14187 location_constraint =
14188 acl = private
14189 server_side_encryption =
14190 storage_class =
14191
14192 Then use it as normal with the name of the public bucket, e.g.
14193
14194 rclone lsd anons3:1000genomes
14195
14196 You will be able to list and copy data but not upload it.
14197
14198 Ceph
14199 Ceph (https://ceph.com/) is an open source unified, distributed storage
14200 system designed for excellent performance, reliability and scalability.
14201 It has an S3 compatible object storage interface.
14202
14203 To use rclone with Ceph, configure as above but leave the region blank
14204 and set the endpoint. You should end up with something like this in
14205 your config:
14206
14207 [ceph]
14208 type = s3
14209 provider = Ceph
14210 env_auth = false
14211 access_key_id = XXX
14212 secret_access_key = YYY
14213 region =
14214 endpoint = https://ceph.endpoint.example.com
14215 location_constraint =
14216 acl =
14217 server_side_encryption =
14218 storage_class =
14219
14220 If you are using an older version of CEPH, e.g. 10.2.x Jewel, then you
14221 may need to supply the parameter --s3-upload-cutoff 0 or put this in
14222 the config file as upload_cutoff 0 to work around a bug which causes
14223 uploading of small files to fail.
14224
14225 Note also that Ceph sometimes puts / in the passwords it gives users.
14226 If you read the secret access key using the command line tools you will
14227 get a JSON blob with the / escaped as \/. Make sure you only write /
14228 in the secret access key.
14229
14230 Eg the dump from Ceph looks something like this (irrelevant keys re‐
14231 moved).
14232
14233 {
14234 "user_id": "xxx",
14235 "display_name": "xxxx",
14236 "keys": [
14237 {
14238 "user": "xxx",
14239 "access_key": "xxxxxx",
14240 "secret_key": "xxxxxx\/xxxx"
14241 }
14242 ],
14243 }
14244
14245 Because this is a json dump, it is encoding the / as \/, so if you use
14246 the secret key as xxxxxx/xxxx it will work fine.
14247
14248 Dreamhost
14249 Dreamhost DreamObjects (https://www.dreamhost.com/cloud/storage/) is an
14250 object storage system based on CEPH.
14251
14252 To use rclone with Dreamhost, configure as above but leave the region
14253 blank and set the endpoint. You should end up with something like this
14254 in your config:
14255
14256 [dreamobjects]
14257 type = s3
14258 provider = DreamHost
14259 env_auth = false
14260 access_key_id = your_access_key
14261 secret_access_key = your_secret_key
14262 region =
14263 endpoint = objects-us-west-1.dream.io
14264 location_constraint =
14265 acl = private
14266 server_side_encryption =
14267 storage_class =
14268
14269 DigitalOcean Spaces
14270 Spaces (https://www.digitalocean.com/products/object-storage/) is an
14271 S3-interoperable (https://developers.digitalocean.com/documenta‐
14272 tion/spaces/) object storage service from cloud provider DigitalOcean.
14273
14274 To connect to DigitalOcean Spaces you will need an access key and se‐
14275 cret key. These can be retrieved on the "Applications & API
14276 (https://cloud.digitalocean.com/settings/api/tokens)" page of the Digi‐
14277 talOcean control panel. They will be needed when prompted by rclone
14278 config for your access_key_id and secret_access_key.
14279
14280 When prompted for a region or location_constraint, press enter to use
14281 the default value. The region must be included in the endpoint setting
14282 (e.g. nyc3.digitaloceanspaces.com). The default values can be used
14283 for other settings.
14284
14285 Going through the whole process of creating a new remote by running
14286 rclone config, each prompt should be answered as shown below:
14287
14288 Storage> s3
14289 env_auth> 1
14290 access_key_id> YOUR_ACCESS_KEY
14291 secret_access_key> YOUR_SECRET_KEY
14292 region>
14293 endpoint> nyc3.digitaloceanspaces.com
14294 location_constraint>
14295 acl>
14296 storage_class>
14297
14298 The resulting configuration file should look like:
14299
14300 [spaces]
14301 type = s3
14302 provider = DigitalOcean
14303 env_auth = false
14304 access_key_id = YOUR_ACCESS_KEY
14305 secret_access_key = YOUR_SECRET_KEY
14306 region =
14307 endpoint = nyc3.digitaloceanspaces.com
14308 location_constraint =
14309 acl =
14310 server_side_encryption =
14311 storage_class =
14312
14313 Once configured, you can create a new Space and begin copying files.
14314 For example:
14315
14316 rclone mkdir spaces:my-new-space
14317 rclone copy /path/to/files spaces:my-new-space
14318
14319 IBM COS (S3)
14320 Information stored with IBM Cloud Object Storage is encrypted and dis‐
14321 persed across multiple geographic locations, and accessed through an
14322 implementation of the S3 API. This service makes use of the distrib‐
14323 uted storage technologies provided by IBM’s Cloud Object Storage System
14324 (formerly Cleversafe). For more information visit:
14325 (http://www.ibm.com/cloud/object-storage)
14326
14327 To configure access to IBM COS S3, follow the steps below:
14328
14329 1. Run rclone config and select n for a new remote.
14330
14331 2018/02/14 14:13:11 NOTICE: Config file "C:\\Users\\a\\.config\\rclone\\rclone.conf" not found - using defaults
14332 No remotes found - make a new one
14333 n) New remote
14334 s) Set configuration password
14335 q) Quit config
14336 n/s/q> n
14337
14338 2. Enter the name for the configuration
14339
14340 name> <YOUR NAME>
14341
14342 3. Select "s3" storage.
14343
14344 Choose a number from below, or type in your own value
14345 1 / Alias for an existing remote
14346 \ "alias"
14347 2 / Amazon Drive
14348 \ "amazon cloud drive"
14349 3 / Amazon S3 Complaint Storage Providers (Dreamhost, Ceph, Minio, IBM COS)
14350 \ "s3"
14351 4 / Backblaze B2
14352 \ "b2"
14353 [snip]
14354 23 / http Connection
14355 \ "http"
14356 Storage> 3
14357
14358 4. Select IBM COS as the S3 Storage Provider.
14359
14360 Choose the S3 provider.
14361 Choose a number from below, or type in your own value
14362 1 / Choose this option to configure Storage to AWS S3
14363 \ "AWS"
14364 2 / Choose this option to configure Storage to Ceph Systems
14365 \ "Ceph"
14366 3 / Choose this option to configure Storage to Dreamhost
14367 \ "Dreamhost"
14368 4 / Choose this option to the configure Storage to IBM COS S3
14369 \ "IBMCOS"
14370 5 / Choose this option to the configure Storage to Minio
14371 \ "Minio"
14372 Provider>4
14373
14374 5. Enter the Access Key and Secret.
14375
14376 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
14377 access_key_id> <>
14378 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
14379 secret_access_key> <>
14380
14381 6. Specify the endpoint for IBM COS. For Public IBM COS, choose from
14382 the option below. For On Premise IBM COS, enter an endpoint ad‐
14383 dress.
14384
14385 Endpoint for IBM COS S3 API.
14386 Specify if using an IBM COS On Premise.
14387 Choose a number from below, or type in your own value
14388 1 / US Cross Region Endpoint
14389 \ "s3-api.us-geo.objectstorage.softlayer.net"
14390 2 / US Cross Region Dallas Endpoint
14391 \ "s3-api.dal.us-geo.objectstorage.softlayer.net"
14392 3 / US Cross Region Washington DC Endpoint
14393 \ "s3-api.wdc-us-geo.objectstorage.softlayer.net"
14394 4 / US Cross Region San Jose Endpoint
14395 \ "s3-api.sjc-us-geo.objectstorage.softlayer.net"
14396 5 / US Cross Region Private Endpoint
14397 \ "s3-api.us-geo.objectstorage.service.networklayer.com"
14398 6 / US Cross Region Dallas Private Endpoint
14399 \ "s3-api.dal-us-geo.objectstorage.service.networklayer.com"
14400 7 / US Cross Region Washington DC Private Endpoint
14401 \ "s3-api.wdc-us-geo.objectstorage.service.networklayer.com"
14402 8 / US Cross Region San Jose Private Endpoint
14403 \ "s3-api.sjc-us-geo.objectstorage.service.networklayer.com"
14404 9 / US Region East Endpoint
14405 \ "s3.us-east.objectstorage.softlayer.net"
14406 10 / US Region East Private Endpoint
14407 \ "s3.us-east.objectstorage.service.networklayer.com"
14408 11 / US Region South Endpoint
14409 [snip]
14410 34 / Toronto Single Site Private Endpoint
14411 \ "s3.tor01.objectstorage.service.networklayer.com"
14412 endpoint>1
14413
14414 7. Specify a IBM COS Location Constraint. The location constraint must
14415 match endpoint when using IBM Cloud Public. For on-prem COS, do not
14416 make a selection from this list, hit enter
14417
14418 1 / US Cross Region Standard
14419 \ "us-standard"
14420 2 / US Cross Region Vault
14421 \ "us-vault"
14422 3 / US Cross Region Cold
14423 \ "us-cold"
14424 4 / US Cross Region Flex
14425 \ "us-flex"
14426 5 / US East Region Standard
14427 \ "us-east-standard"
14428 6 / US East Region Vault
14429 \ "us-east-vault"
14430 7 / US East Region Cold
14431 \ "us-east-cold"
14432 8 / US East Region Flex
14433 \ "us-east-flex"
14434 9 / US South Region Standard
14435 \ "us-south-standard"
14436 10 / US South Region Vault
14437 \ "us-south-vault"
14438 [snip]
14439 32 / Toronto Flex
14440 \ "tor01-flex"
14441 location_constraint>1
14442
14443 9. Specify a canned ACL. IBM Cloud (Storage) supports "public-read"
14444 and "private". IBM Cloud(Infra) supports all the canned ACLs.
14445 On-Premise COS supports all the canned ACLs.
14446
14447 Canned ACL used when creating buckets and/or storing objects in S3.
14448 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
14449 Choose a number from below, or type in your own value
14450 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
14451 \ "private"
14452 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
14453 \ "public-read"
14454 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
14455 \ "public-read-write"
14456 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
14457 \ "authenticated-read"
14458 acl> 1
14459
14460 12. Review the displayed configuration and accept to save the "remote"
14461 then quit. The config file should look like this
14462
14463 [xxx]
14464 type = s3
14465 Provider = IBMCOS
14466 access_key_id = xxx
14467 secret_access_key = yyy
14468 endpoint = s3-api.us-geo.objectstorage.softlayer.net
14469 location_constraint = us-standard
14470 acl = private
14471
14472 13. Execute rclone commands
14473
14474 1) Create a bucket.
14475 rclone mkdir IBM-COS-XREGION:newbucket
14476 2) List available buckets.
14477 rclone lsd IBM-COS-XREGION:
14478 -1 2017-11-08 21:16:22 -1 test
14479 -1 2018-02-14 20:16:39 -1 newbucket
14480 3) List contents of a bucket.
14481 rclone ls IBM-COS-XREGION:newbucket
14482 18685952 test.exe
14483 4) Copy a file from local to remote.
14484 rclone copy /Users/file.txt IBM-COS-XREGION:newbucket
14485 5) Copy a file from remote to local.
14486 rclone copy IBM-COS-XREGION:newbucket/file.txt .
14487 6) Delete a file on remote.
14488 rclone delete IBM-COS-XREGION:newbucket/file.txt
14489
14490 Minio
14491 Minio (https://minio.io/) is an object storage server built for cloud
14492 application developers and devops.
14493
14494 It is very easy to install and provides an S3 compatible server which
14495 can be used by rclone.
14496
14497 To use it, install Minio following the instructions here
14498 (https://docs.minio.io/docs/minio-quickstart-guide).
14499
14500 When it configures itself Minio will print something like this
14501
14502 Endpoint: http://192.168.1.106:9000 http://172.23.0.1:9000
14503 AccessKey: USWUXHGYZQYFYFFIT3RE
14504 SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
14505 Region: us-east-1
14506 SQS ARNs: arn:minio:sqs:us-east-1:1:redis arn:minio:sqs:us-east-1:2:redis
14507
14508 Browser Access:
14509 http://192.168.1.106:9000 http://172.23.0.1:9000
14510
14511 Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
14512 $ mc config host add myminio http://192.168.1.106:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
14513
14514 Object API (Amazon S3 compatible):
14515 Go: https://docs.minio.io/docs/golang-client-quickstart-guide
14516 Java: https://docs.minio.io/docs/java-client-quickstart-guide
14517 Python: https://docs.minio.io/docs/python-client-quickstart-guide
14518 JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
14519 .NET: https://docs.minio.io/docs/dotnet-client-quickstart-guide
14520
14521 Drive Capacity: 26 GiB Free, 165 GiB Total
14522
14523 These details need to go into rclone config like this. Note that it is
14524 important to put the region in as stated above.
14525
14526 env_auth> 1
14527 access_key_id> USWUXHGYZQYFYFFIT3RE
14528 secret_access_key> MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
14529 region> us-east-1
14530 endpoint> http://192.168.1.106:9000
14531 location_constraint>
14532 server_side_encryption>
14533
14534 Which makes the config file look like this
14535
14536 [minio]
14537 type = s3
14538 provider = Minio
14539 env_auth = false
14540 access_key_id = USWUXHGYZQYFYFFIT3RE
14541 secret_access_key = MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
14542 region = us-east-1
14543 endpoint = http://192.168.1.106:9000
14544 location_constraint =
14545 server_side_encryption =
14546
14547 So once set up, for example to copy files into a bucket
14548
14549 rclone copy /path/to/files minio:bucket
14550
14551 Scaleway
14552 Scaleway (https://www.scaleway.com/object-storage/) The Object Storage
14553 platform allows you to store anything from backups, logs and web assets
14554 to documents and photos. Files can be dropped from the Scaleway con‐
14555 sole or transferred through our API and CLI or using any S3-compatible
14556 tool.
14557
14558 Scaleway provides an S3 interface which can be configured for use with
14559 rclone like this:
14560
14561 [scaleway]
14562 type = s3
14563 provider = Scaleway
14564 env_auth = false
14565 endpoint = s3.nl-ams.scw.cloud
14566 access_key_id = SCWXXXXXXXXXXXXXX
14567 secret_access_key = 1111111-2222-3333-44444-55555555555555
14568 region = nl-ams
14569 location_constraint =
14570 acl = private
14571 server_side_encryption =
14572 storage_class =
14573
14574 Wasabi
14575 Wasabi (https://wasabi.com) is a cloud-based object storage service for
14576 a broad range of applications and use cases. Wasabi is designed for
14577 individuals and organizations that require a high-performance, reli‐
14578 able, and secure data storage infrastructure at minimal cost.
14579
14580 Wasabi provides an S3 interface which can be configured for use with
14581 rclone like this.
14582
14583 No remotes found - make a new one
14584 n) New remote
14585 s) Set configuration password
14586 n/s> n
14587 name> wasabi
14588 Type of storage to configure.
14589 Choose a number from below, or type in your own value
14590 [snip]
14591 XX / Amazon S3 (also Dreamhost, Ceph, Minio)
14592 \ "s3"
14593 [snip]
14594 Storage> s3
14595 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.
14596 Choose a number from below, or type in your own value
14597 1 / Enter AWS credentials in the next step
14598 \ "false"
14599 2 / Get AWS credentials from the environment (env vars or IAM)
14600 \ "true"
14601 env_auth> 1
14602 AWS Access Key ID - leave blank for anonymous access or runtime credentials.
14603 access_key_id> YOURACCESSKEY
14604 AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
14605 secret_access_key> YOURSECRETACCESSKEY
14606 Region to connect to.
14607 Choose a number from below, or type in your own value
14608 / The default endpoint - a good choice if you are unsure.
14609 1 | US Region, Northern Virginia, or Pacific Northwest.
14610 | Leave location constraint empty.
14611 \ "us-east-1"
14612 [snip]
14613 region> us-east-1
14614 Endpoint for S3 API.
14615 Leave blank if using AWS to use the default endpoint for the region.
14616 Specify if using an S3 clone such as Ceph.
14617 endpoint> s3.wasabisys.com
14618 Location constraint - must be set to match the Region. Used when creating buckets only.
14619 Choose a number from below, or type in your own value
14620 1 / Empty for US Region, Northern Virginia, or Pacific Northwest.
14621 \ ""
14622 [snip]
14623 location_constraint>
14624 Canned ACL used when creating buckets and/or storing objects in S3.
14625 For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
14626 Choose a number from below, or type in your own value
14627 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
14628 \ "private"
14629 [snip]
14630 acl>
14631 The server-side encryption algorithm used when storing this object in S3.
14632 Choose a number from below, or type in your own value
14633 1 / None
14634 \ ""
14635 2 / AES256
14636 \ "AES256"
14637 server_side_encryption>
14638 The storage class to use when storing objects in S3.
14639 Choose a number from below, or type in your own value
14640 1 / Default
14641 \ ""
14642 2 / Standard storage class
14643 \ "STANDARD"
14644 3 / Reduced redundancy storage class
14645 \ "REDUCED_REDUNDANCY"
14646 4 / Standard Infrequent Access storage class
14647 \ "STANDARD_IA"
14648 storage_class>
14649 Remote config
14650 --------------------
14651 [wasabi]
14652 env_auth = false
14653 access_key_id = YOURACCESSKEY
14654 secret_access_key = YOURSECRETACCESSKEY
14655 region = us-east-1
14656 endpoint = s3.wasabisys.com
14657 location_constraint =
14658 acl =
14659 server_side_encryption =
14660 storage_class =
14661 --------------------
14662 y) Yes this is OK
14663 e) Edit this remote
14664 d) Delete this remote
14665 y/e/d> y
14666
14667 This will leave the config file looking like this.
14668
14669 [wasabi]
14670 type = s3
14671 provider = Wasabi
14672 env_auth = false
14673 access_key_id = YOURACCESSKEY
14674 secret_access_key = YOURSECRETACCESSKEY
14675 region =
14676 endpoint = s3.wasabisys.com
14677 location_constraint =
14678 acl =
14679 server_side_encryption =
14680 storage_class =
14681
14682 Alibaba OSS
14683 Here is an example of making an Alibaba Cloud (Aliyun) OSS
14684 (https://www.alibabacloud.com/product/oss/) configuration. First run:
14685
14686 rclone config
14687
14688 This will guide you through an interactive setup process.
14689
14690 No remotes found - make a new one
14691 n) New remote
14692 s) Set configuration password
14693 q) Quit config
14694 n/s/q> n
14695 name> oss
14696 Type of storage to configure.
14697 Enter a string value. Press Enter for the default ("").
14698 Choose a number from below, or type in your own value
14699 [snip]
14700 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, and Tencent COS
14701 \ "s3"
14702 [snip]
14703 Storage> s3
14704 Choose your S3 provider.
14705 Enter a string value. Press Enter for the default ("").
14706 Choose a number from below, or type in your own value
14707 1 / Amazon Web Services (AWS) S3
14708 \ "AWS"
14709 2 / Alibaba Cloud Object Storage System (OSS) formerly Aliyun
14710 \ "Alibaba"
14711 3 / Ceph Object Storage
14712 \ "Ceph"
14713 [snip]
14714 provider> Alibaba
14715 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
14716 Only applies if access_key_id and secret_access_key is blank.
14717 Enter a boolean value (true or false). Press Enter for the default ("false").
14718 Choose a number from below, or type in your own value
14719 1 / Enter AWS credentials in the next step
14720 \ "false"
14721 2 / Get AWS credentials from the environment (env vars or IAM)
14722 \ "true"
14723 env_auth> 1
14724 AWS Access Key ID.
14725 Leave blank for anonymous access or runtime credentials.
14726 Enter a string value. Press Enter for the default ("").
14727 access_key_id> accesskeyid
14728 AWS Secret Access Key (password)
14729 Leave blank for anonymous access or runtime credentials.
14730 Enter a string value. Press Enter for the default ("").
14731 secret_access_key> secretaccesskey
14732 Endpoint for OSS API.
14733 Enter a string value. Press Enter for the default ("").
14734 Choose a number from below, or type in your own value
14735 1 / East China 1 (Hangzhou)
14736 \ "oss-cn-hangzhou.aliyuncs.com"
14737 2 / East China 2 (Shanghai)
14738 \ "oss-cn-shanghai.aliyuncs.com"
14739 3 / North China 1 (Qingdao)
14740 \ "oss-cn-qingdao.aliyuncs.com"
14741 [snip]
14742 endpoint> 1
14743 Canned ACL used when creating buckets and storing or copying objects.
14744
14745 Note that this ACL is applied when server-side copying objects as S3
14746 doesn't copy the ACL from the source but rather writes a fresh one.
14747 Enter a string value. Press Enter for the default ("").
14748 Choose a number from below, or type in your own value
14749 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
14750 \ "private"
14751 2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
14752 \ "public-read"
14753 / Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
14754 [snip]
14755 acl> 1
14756 The storage class to use when storing new objects in OSS.
14757 Enter a string value. Press Enter for the default ("").
14758 Choose a number from below, or type in your own value
14759 1 / Default
14760 \ ""
14761 2 / Standard storage class
14762 \ "STANDARD"
14763 3 / Archive storage mode.
14764 \ "GLACIER"
14765 4 / Infrequent access storage mode.
14766 \ "STANDARD_IA"
14767 storage_class> 1
14768 Edit advanced config? (y/n)
14769 y) Yes
14770 n) No
14771 y/n> n
14772 Remote config
14773 --------------------
14774 [oss]
14775 type = s3
14776 provider = Alibaba
14777 env_auth = false
14778 access_key_id = accesskeyid
14779 secret_access_key = secretaccesskey
14780 endpoint = oss-cn-hangzhou.aliyuncs.com
14781 acl = private
14782 storage_class = Standard
14783 --------------------
14784 y) Yes this is OK
14785 e) Edit this remote
14786 d) Delete this remote
14787 y/e/d> y
14788
14789 Tencent COS
14790 Tencent Cloud Object Storage (COS) (https://intl.cloud.ten‐
14791 cent.com/product/cos) is a distributed storage service offered by Ten‐
14792 cent Cloud for unstructured data. It is secure, stable, massive, con‐
14793 venient, low-delay and low-cost.
14794
14795 To configure access to Tencent COS, follow the steps below:
14796
14797 1. Run rclone config and select n for a new remote.
14798
14799 rclone config
14800 No remotes found - make a new one
14801 n) New remote
14802 s) Set configuration password
14803 q) Quit config
14804 n/s/q> n
14805
14806 2. Give the name of the configuration. For example, name it 'cos'.
14807
14808 name> cos
14809
14810 3. Select s3 storage.
14811
14812 Choose a number from below, or type in your own value
14813 1 / 1Fichier
14814 \ "fichier"
14815 2 / Alias for an existing remote
14816 \ "alias"
14817 3 / Amazon Drive
14818 \ "amazon cloud drive"
14819 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, and Tencent COS
14820 \ "s3"
14821 [snip]
14822 Storage> s3
14823
14824 4. Select TencentCOS provider.
14825
14826 Choose a number from below, or type in your own value
14827 1 / Amazon Web Services (AWS) S3
14828 \ "AWS"
14829 [snip]
14830 11 / Tencent Cloud Object Storage (COS)
14831 \ "TencentCOS"
14832 [snip]
14833 provider> TencentCOS
14834
14835 5. Enter your SecretId and SecretKey of Tencent Cloud.
14836
14837 Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
14838 Only applies if access_key_id and secret_access_key is blank.
14839 Enter a boolean value (true or false). Press Enter for the default ("false").
14840 Choose a number from below, or type in your own value
14841 1 / Enter AWS credentials in the next step
14842 \ "false"
14843 2 / Get AWS credentials from the environment (env vars or IAM)
14844 \ "true"
14845 env_auth> 1
14846 AWS Access Key ID.
14847 Leave blank for anonymous access or runtime credentials.
14848 Enter a string value. Press Enter for the default ("").
14849 access_key_id> AKIDxxxxxxxxxx
14850 AWS Secret Access Key (password)
14851 Leave blank for anonymous access or runtime credentials.
14852 Enter a string value. Press Enter for the default ("").
14853 secret_access_key> xxxxxxxxxxx
14854
14855 6. Select endpoint for Tencent COS. This is the standard endpoint for
14856 different region.
14857
14858 1 / Beijing Region.
14859 \ "cos.ap-beijing.myqcloud.com"
14860 2 / Nanjing Region.
14861 \ "cos.ap-nanjing.myqcloud.com"
14862 3 / Shanghai Region.
14863 \ "cos.ap-shanghai.myqcloud.com"
14864 4 / Guangzhou Region.
14865 \ "cos.ap-guangzhou.myqcloud.com"
14866 [snip]
14867 endpoint> 4
14868
14869 7. Choose acl and storage class.
14870
14871 Note that this ACL is applied when server-side copying objects as S3
14872 doesn't copy the ACL from the source but rather writes a fresh one.
14873 Enter a string value. Press Enter for the default ("").
14874 Choose a number from below, or type in your own value
14875 1 / Owner gets Full_CONTROL. No one else has access rights (default).
14876 \ "default"
14877 [snip]
14878 acl> 1
14879 The storage class to use when storing new objects in Tencent COS.
14880 Enter a string value. Press Enter for the default ("").
14881 Choose a number from below, or type in your own value
14882 1 / Default
14883 \ ""
14884 [snip]
14885 storage_class> 1
14886 Edit advanced config? (y/n)
14887 y) Yes
14888 n) No (default)
14889 y/n> n
14890 Remote config
14891 --------------------
14892 [cos]
14893 type = s3
14894 provider = TencentCOS
14895 env_auth = false
14896 access_key_id = xxx
14897 secret_access_key = xxx
14898 endpoint = cos.ap-guangzhou.myqcloud.com
14899 acl = default
14900 --------------------
14901 y) Yes this is OK (default)
14902 e) Edit this remote
14903 d) Delete this remote
14904 y/e/d> y
14905 Current remotes:
14906
14907 Name Type
14908 ==== ====
14909 cos s3
14910
14911 Netease NOS
14912 For Netease NOS configure as per the configurator rclone config setting
14913 the provider Netease. This will automatically set force_path_style =
14914 false which is necessary for it to run properly.
14915
14916 Limitations
14917 rclone about is not supported by the S3 backend. Backends without this
14918 capability cannot determine free space for an rclone mount or use poli‐
14919 cy mfs (most free space) as a member of an rclone union remote.
14920
14921 See List of backends that do not support rclone about
14922 (https://rclone.org/overview/#optional-features) See rclone about
14923 (https://rclone.org/commands/rclone_about/)
14924
14925 Backblaze B2
14926 B2 is Backblaze's cloud storage system (https://www.backblaze.com/b2/).
14927
14928 Paths are specified as remote:bucket (or remote: for the lsd command.)
14929 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
14930
14931 Here is an example of making a b2 configuration. First run
14932
14933 rclone config
14934
14935 This will guide you through an interactive setup process. To authenti‐
14936 cate you will either need your Account ID (a short hex number) and Mas‐
14937 ter Application Key (a long hex number) OR an Application Key, which is
14938 the recommended method. See below for further details on generating
14939 and using an Application Key.
14940
14941 No remotes found - make a new one
14942 n) New remote
14943 q) Quit config
14944 n/q> n
14945 name> remote
14946 Type of storage to configure.
14947 Choose a number from below, or type in your own value
14948 [snip]
14949 XX / Backblaze B2
14950 \ "b2"
14951 [snip]
14952 Storage> b2
14953 Account ID or Application Key ID
14954 account> 123456789abc
14955 Application Key
14956 key> 0123456789abcdef0123456789abcdef0123456789
14957 Endpoint for the service - leave blank normally.
14958 endpoint>
14959 Remote config
14960 --------------------
14961 [remote]
14962 account = 123456789abc
14963 key = 0123456789abcdef0123456789abcdef0123456789
14964 endpoint =
14965 --------------------
14966 y) Yes this is OK
14967 e) Edit this remote
14968 d) Delete this remote
14969 y/e/d> y
14970
14971 This remote is called remote and can now be used like this
14972
14973 See all buckets
14974
14975 rclone lsd remote:
14976
14977 Create a new bucket
14978
14979 rclone mkdir remote:bucket
14980
14981 List the contents of a bucket
14982
14983 rclone ls remote:bucket
14984
14985 Sync /home/local/directory to the remote bucket, deleting any excess
14986 files in the bucket.
14987
14988 rclone sync -i /home/local/directory remote:bucket
14989
14990 Application Keys
14991 B2 supports multiple Application Keys for different access permission
14992 to B2 Buckets (https://www.backblaze.com/b2/docs/applica‐
14993 tion_keys.html).
14994
14995 You can use these with rclone too; you will need to use rclone version
14996 1.43 or later.
14997
14998 Follow Backblaze's docs to create an Application Key with the required
14999 permission and add the applicationKeyId as the account and the Applica‐
15000 tion Key itself as the key.
15001
15002 Note that you must put the applicationKeyId as the account – you can't
15003 use the master Account ID. If you try then B2 will return 401 errors.
15004
15005 --fast-list
15006 This remote supports --fast-list which allows you to use fewer transac‐
15007 tions in exchange for more memory. See the rclone docs
15008 (https://rclone.org/docs/#fast-list) for more details.
15009
15010 Modified time
15011 The modified time is stored as metadata on the object as X-Bz-In‐
15012 fo-src_last_modified_millis as milliseconds since 1970-01-01 in the
15013 Backblaze standard. Other tools should be able to use this as a modi‐
15014 fied time.
15015
15016 Modified times are used in syncing and are fully supported. Note that
15017 if a modification time needs to be updated on an object then it will
15018 create a new version of the object.
15019
15020 Restricted filename characters
15021 In addition to the default restricted characters set
15022 (https://rclone.org/overview/#restricted-characters) the following
15023 characters are also replaced:
15024
15025 Character Value Replacement
15026 ────────────────────────────────
15027 \ 0x5C \
15028
15029 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
15030 view/#invalid-utf8), as they can't be used in JSON strings.
15031
15032 Note that in 2020-05 Backblaze started allowing characters in file
15033 names. Rclone hasn't changed its encoding as this could cause syncs to
15034 re-transfer files. If you want rclone not to replace then see the
15035 --b2-encoding flag below and remove the BackSlash from the string.
15036 This can be set in the config.
15037
15038 SHA1 checksums
15039 The SHA1 checksums of the files are checked on upload and download and
15040 will be used in the syncing process.
15041
15042 Large files (bigger than the limit in --b2-upload-cutoff) which are up‐
15043 loaded in chunks will store their SHA1 on the object as X-Bz-In‐
15044 fo-large_file_sha1 as recommended by Backblaze.
15045
15046 For a large file to be uploaded with an SHA1 checksum, the source needs
15047 to support SHA1 checksums. The local disk supports SHA1 checksums so
15048 large file transfers from local disk will have an SHA1. See the over‐
15049 view (https://rclone.org/overview/#features) for exactly which remotes
15050 support SHA1.
15051
15052 Sources which don't support SHA1, in particular crypt will upload large
15053 files without SHA1 checksums. This may be fixed in the future (see
15054 #1767 (https://github.com/rclone/rclone/issues/1767)).
15055
15056 Files sizes below --b2-upload-cutoff will always have an SHA1 regard‐
15057 less of the source.
15058
15059 Transfers
15060 Backblaze recommends that you do lots of transfers simultaneously for
15061 maximum speed. In tests from my SSD equipped laptop the optimum set‐
15062 ting is about --transfers 32 though higher numbers may be used for a
15063 slight speed improvement. The optimum number for you may vary depend‐
15064 ing on your hardware, how big the files are, how much you want to load
15065 your computer, etc. The default of --transfers 4 is definitely too low
15066 for Backblaze B2 though.
15067
15068 Note that uploading big files (bigger than 200 MB by default) will use
15069 a 96 MB RAM buffer by default. There can be at most --transfers of
15070 these in use at any moment, so this sets the upper limit on the memory
15071 used.
15072
15073 Versions
15074 When rclone uploads a new version of a file it creates a new version of
15075 it (https://www.backblaze.com/b2/docs/file_versions.html). Likewise
15076 when you delete a file, the old version will be marked hidden and still
15077 be available. Conversely, you may opt in to a "hard delete" of files
15078 with the --b2-hard-delete flag which would permanently remove the file
15079 instead of hiding it.
15080
15081 Old versions of files, where available, are visible using the --b2-ver‐
15082 sions flag.
15083
15084 NB Note that --b2-versions does not work with crypt at the moment #1627
15085 (https://github.com/rclone/rclone/issues/1627). Using --backup-dir
15086 (https://rclone.org/docs/#backup-dir-dir) with rclone is the recommend‐
15087 ed way of working around this.
15088
15089 If you wish to remove all the old versions then you can use the rclone
15090 cleanup remote:bucket command which will delete all the old versions of
15091 files, leaving the current ones intact. You can also supply a path and
15092 only old versions under that path will be deleted, e.g. rclone cleanup
15093 remote:bucket/path/to/stuff.
15094
15095 Note that cleanup will remove partially uploaded files from the bucket
15096 if they are more than a day old.
15097
15098 When you purge a bucket, the current and the old versions will be
15099 deleted then the bucket will be deleted.
15100
15101 However delete will cause the current versions of the files to become
15102 hidden old versions.
15103
15104 Here is a session showing the listing and retrieval of an old version
15105 followed by a cleanup of the old versions.
15106
15107 Show current version and all the versions with --b2-versions flag.
15108
15109 $ rclone -q ls b2:cleanup-test
15110 9 one.txt
15111
15112 $ rclone -q --b2-versions ls b2:cleanup-test
15113 9 one.txt
15114 8 one-v2016-07-04-141032-000.txt
15115 16 one-v2016-07-04-141003-000.txt
15116 15 one-v2016-07-02-155621-000.txt
15117
15118 Retrieve an old version
15119
15120 $ rclone -q --b2-versions copy b2:cleanup-test/one-v2016-07-04-141003-000.txt /tmp
15121
15122 $ ls -l /tmp/one-v2016-07-04-141003-000.txt
15123 -rw-rw-r-- 1 ncw ncw 16 Jul 2 17:46 /tmp/one-v2016-07-04-141003-000.txt
15124
15125 Clean up all the old versions and show that they've gone.
15126
15127 $ rclone -q cleanup b2:cleanup-test
15128
15129 $ rclone -q ls b2:cleanup-test
15130 9 one.txt
15131
15132 $ rclone -q --b2-versions ls b2:cleanup-test
15133 9 one.txt
15134
15135 Data usage
15136 It is useful to know how many requests are sent to the server in dif‐
15137 ferent scenarios.
15138
15139 All copy commands send the following 4 requests:
15140
15141 /b2api/v1/b2_authorize_account
15142 /b2api/v1/b2_create_bucket
15143 /b2api/v1/b2_list_buckets
15144 /b2api/v1/b2_list_file_names
15145
15146 The b2_list_file_names request will be sent once for every 1k files in
15147 the remote path, providing the checksum and modification time of the
15148 listed files. As of version 1.33 issue #818
15149 (https://github.com/rclone/rclone/issues/818) causes extra requests to
15150 be sent when using B2 with Crypt. When a copy operation does not re‐
15151 quire any files to be uploaded, no more requests will be sent.
15152
15153 Uploading files that do not require chunking, will send 2 requests per
15154 file upload:
15155
15156 /b2api/v1/b2_get_upload_url
15157 /b2api/v1/b2_upload_file/
15158
15159 Uploading files requiring chunking, will send 2 requests (one each to
15160 start and finish the upload) and another 2 requests for each chunk:
15161
15162 /b2api/v1/b2_start_large_file
15163 /b2api/v1/b2_get_upload_part_url
15164 /b2api/v1/b2_upload_part/
15165 /b2api/v1/b2_finish_large_file
15166
15167 Versions
15168 Versions can be viewed with the --b2-versions flag. When it is set
15169 rclone will show and act on older versions of files. For example
15170
15171 Listing without --b2-versions
15172
15173 $ rclone -q ls b2:cleanup-test
15174 9 one.txt
15175
15176 And with
15177
15178 $ rclone -q --b2-versions ls b2:cleanup-test
15179 9 one.txt
15180 8 one-v2016-07-04-141032-000.txt
15181 16 one-v2016-07-04-141003-000.txt
15182 15 one-v2016-07-02-155621-000.txt
15183
15184 Showing that the current version is unchanged but older versions can be
15185 seen. These have the UTC date that they were uploaded to the server to
15186 the nearest millisecond appended to them.
15187
15188 Note that when using --b2-versions no file write operations are permit‐
15189 ted, so you can't upload files or delete them.
15190
15191 B2 and rclone link
15192 Rclone supports generating file share links for private B2 buckets.
15193 They can either be for a file for example:
15194
15195 ./rclone link B2:bucket/path/to/file.txt
15196 https://f002.backblazeb2.com/file/bucket/path/to/file.txt?Authorization=xxxxxxxx
15197
15198 or if run on a directory you will get:
15199
15200 ./rclone link B2:bucket/path
15201 https://f002.backblazeb2.com/file/bucket/path?Authorization=xxxxxxxx
15202
15203 you can then use the authorization token (the part of the url from the
15204 ?Authorization= on) on any file path under that directory. For exam‐
15205 ple:
15206
15207 https://f002.backblazeb2.com/file/bucket/path/to/file1?Authorization=xxxxxxxx
15208 https://f002.backblazeb2.com/file/bucket/path/file2?Authorization=xxxxxxxx
15209 https://f002.backblazeb2.com/file/bucket/path/folder/file3?Authorization=xxxxxxxx
15210
15211 Standard Options
15212 Here are the standard options specific to b2 (Backblaze B2).
15213
15214 --b2-account
15215 Account ID or Application Key ID
15216
15217 · Config: account
15218
15219 · Env Var: RCLONE_B2_ACCOUNT
15220
15221 · Type: string
15222
15223 · Default: ""
15224
15225 --b2-key
15226 Application Key
15227
15228 · Config: key
15229
15230 · Env Var: RCLONE_B2_KEY
15231
15232 · Type: string
15233
15234 · Default: ""
15235
15236 --b2-hard-delete
15237 Permanently delete files on remote removal, otherwise hide files.
15238
15239 · Config: hard_delete
15240
15241 · Env Var: RCLONE_B2_HARD_DELETE
15242
15243 · Type: bool
15244
15245 · Default: false
15246
15247 Advanced Options
15248 Here are the advanced options specific to b2 (Backblaze B2).
15249
15250 --b2-endpoint
15251 Endpoint for the service. Leave blank normally.
15252
15253 · Config: endpoint
15254
15255 · Env Var: RCLONE_B2_ENDPOINT
15256
15257 · Type: string
15258
15259 · Default: ""
15260
15261 --b2-test-mode
15262 A flag string for X-Bz-Test-Mode header for debugging.
15263
15264 This is for debugging purposes only. Setting it to one of the strings
15265 below will cause b2 to return specific errors:
15266
15267 · "fail_some_uploads"
15268
15269 · "expire_some_account_authorization_tokens"
15270
15271 · "force_cap_exceeded"
15272
15273 These will be set in the "X-Bz-Test-Mode" header which is documented in
15274 the b2 integrations checklist (https://www.backblaze.com/b2/docs/inte‐
15275 gration_checklist.html).
15276
15277 · Config: test_mode
15278
15279 · Env Var: RCLONE_B2_TEST_MODE
15280
15281 · Type: string
15282
15283 · Default: ""
15284
15285 --b2-versions
15286 Include old versions in directory listings. Note that when using this
15287 no file write operations are permitted, so you can't upload files or
15288 delete them.
15289
15290 · Config: versions
15291
15292 · Env Var: RCLONE_B2_VERSIONS
15293
15294 · Type: bool
15295
15296 · Default: false
15297
15298 --b2-upload-cutoff
15299 Cutoff for switching to chunked upload.
15300
15301 Files above this size will be uploaded in chunks of "--b2-chunk-size".
15302
15303 This value should be set no larger than 4.657GiB (== 5GB).
15304
15305 · Config: upload_cutoff
15306
15307 · Env Var: RCLONE_B2_UPLOAD_CUTOFF
15308
15309 · Type: SizeSuffix
15310
15311 · Default: 200M
15312
15313 --b2-copy-cutoff
15314 Cutoff for switching to multipart copy
15315
15316 Any files larger than this that need to be server-side copied will be
15317 copied in chunks of this size.
15318
15319 The minimum is 0 and the maximum is 4.6GB.
15320
15321 · Config: copy_cutoff
15322
15323 · Env Var: RCLONE_B2_COPY_CUTOFF
15324
15325 · Type: SizeSuffix
15326
15327 · Default: 4G
15328
15329 --b2-chunk-size
15330 Upload chunk size. Must fit in memory.
15331
15332 When uploading large files, chunk the file into this size. Note that
15333 these chunks are buffered in memory and there might a maximum of
15334 "--transfers" chunks in progress at once. 5,000,000 Bytes is the mini‐
15335 mum size.
15336
15337 · Config: chunk_size
15338
15339 · Env Var: RCLONE_B2_CHUNK_SIZE
15340
15341 · Type: SizeSuffix
15342
15343 · Default: 96M
15344
15345 --b2-disable-checksum
15346 Disable checksums for large (> upload cutoff) files
15347
15348 Normally rclone will calculate the SHA1 checksum of the input before
15349 uploading it so it can add it to metadata on the object. This is great
15350 for data integrity checking but can cause long delays for large files
15351 to start uploading.
15352
15353 · Config: disable_checksum
15354
15355 · Env Var: RCLONE_B2_DISABLE_CHECKSUM
15356
15357 · Type: bool
15358
15359 · Default: false
15360
15361 --b2-download-url
15362 Custom endpoint for downloads.
15363
15364 This is usually set to a Cloudflare CDN URL as Backblaze offers free
15365 egress for data downloaded through the Cloudflare network. Rclone
15366 works with private buckets by sending an "Authorization" header. If
15367 the custom endpoint rewrites the requests for authentication, e.g., in
15368 Cloudflare Workers, this header needs to be handled properly. Leave
15369 blank if you want to use the endpoint provided by Backblaze.
15370
15371 · Config: download_url
15372
15373 · Env Var: RCLONE_B2_DOWNLOAD_URL
15374
15375 · Type: string
15376
15377 · Default: ""
15378
15379 --b2-download-auth-duration
15380 Time before the authorization token will expire in s or suffix
15381 ms|s|m|h|d.
15382
15383 The duration before the download authorization token will expire. The
15384 minimum value is 1 second. The maximum value is one week.
15385
15386 · Config: download_auth_duration
15387
15388 · Env Var: RCLONE_B2_DOWNLOAD_AUTH_DURATION
15389
15390 · Type: Duration
15391
15392 · Default: 1w
15393
15394 --b2-memory-pool-flush-time
15395 How often internal memory buffer pools will be flushed. Uploads which
15396 requires additional buffers (f.e multipart) will use memory pool for
15397 allocations. This option controls how often unused buffers will be re‐
15398 moved from the pool.
15399
15400 · Config: memory_pool_flush_time
15401
15402 · Env Var: RCLONE_B2_MEMORY_POOL_FLUSH_TIME
15403
15404 · Type: Duration
15405
15406 · Default: 1m0s
15407
15408 --b2-memory-pool-use-mmap
15409 Whether to use mmap buffers in internal memory pool.
15410
15411 · Config: memory_pool_use_mmap
15412
15413 · Env Var: RCLONE_B2_MEMORY_POOL_USE_MMAP
15414
15415 · Type: bool
15416
15417 · Default: false
15418
15419 --b2-encoding
15420 This sets the encoding for the backend.
15421
15422 See: the encoding section in the overview (https://rclone.org/over‐
15423 view/#encoding) for more info.
15424
15425 · Config: encoding
15426
15427 · Env Var: RCLONE_B2_ENCODING
15428
15429 · Type: MultiEncoder
15430
15431 · Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
15432
15433 Limitations
15434 rclone about is not supported by the B2 backend. Backends without this
15435 capability cannot determine free space for an rclone mount or use poli‐
15436 cy mfs (most free space) as a member of an rclone union remote.
15437
15438 See List of backends that do not support rclone about
15439 (https://rclone.org/overview/#optional-features) See rclone about
15440 (https://rclone.org/commands/rclone_about/)
15441
15442 Box
15443 Paths are specified as remote:path
15444
15445 Paths may be as deep as required, e.g. remote:directory/subdirectory.
15446
15447 The initial setup for Box involves getting a token from Box which you
15448 can do either in your browser, or with a config.json downloaded from
15449 Box to use JWT authentication. rclone config walks you through it.
15450
15451 Here is an example of how to make a remote called remote. First run:
15452
15453 rclone config
15454
15455 This will guide you through an interactive setup process:
15456
15457 No remotes found - make a new one
15458 n) New remote
15459 s) Set configuration password
15460 q) Quit config
15461 n/s/q> n
15462 name> remote
15463 Type of storage to configure.
15464 Choose a number from below, or type in your own value
15465 [snip]
15466 XX / Box
15467 \ "box"
15468 [snip]
15469 Storage> box
15470 Box App Client Id - leave blank normally.
15471 client_id>
15472 Box App Client Secret - leave blank normally.
15473 client_secret>
15474 Box App config.json location
15475 Leave blank normally.
15476 Enter a string value. Press Enter for the default ("").
15477 box_config_file>
15478 Box App Primary Access Token
15479 Leave blank normally.
15480 Enter a string value. Press Enter for the default ("").
15481 access_token>
15482
15483 Enter a string value. Press Enter for the default ("user").
15484 Choose a number from below, or type in your own value
15485 1 / Rclone should act on behalf of a user
15486 \ "user"
15487 2 / Rclone should act on behalf of a service account
15488 \ "enterprise"
15489 box_sub_type>
15490 Remote config
15491 Use auto config?
15492 * Say Y if not sure
15493 * Say N if you are working on a remote or headless machine
15494 y) Yes
15495 n) No
15496 y/n> y
15497 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
15498 Log in and authorize rclone for access
15499 Waiting for code...
15500 Got code
15501 --------------------
15502 [remote]
15503 client_id =
15504 client_secret =
15505 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"XXX"}
15506 --------------------
15507 y) Yes this is OK
15508 e) Edit this remote
15509 d) Delete this remote
15510 y/e/d> y
15511
15512 See the remote setup docs (https://rclone.org/remote_setup/) for how to
15513 set it up on a machine with no Internet browser available.
15514
15515 Note that rclone runs a webserver on your local machine to collect the
15516 token as returned from Box. This only runs from the moment it opens
15517 your browser to the moment you get back the verification code. This is
15518 on http://127.0.0.1:53682/ and this it may require you to unblock it
15519 temporarily if you are running a host firewall.
15520
15521 Once configured you can then use rclone like this,
15522
15523 List directories in top level of your Box
15524
15525 rclone lsd remote:
15526
15527 List all the files in your Box
15528
15529 rclone ls remote:
15530
15531 To copy a local directory to an Box directory called backup
15532
15533 rclone copy /home/source remote:backup
15534
15535 Using rclone with an Enterprise account with SSO
15536 If you have an "Enterprise" account type with Box with single sign on
15537 (SSO), you need to create a password to use Box with rclone. This can
15538 be done at your Enterprise Box account by going to Settings, "Account"
15539 Tab, and then set the password in the "Authentication" field.
15540
15541 Once you have done this, you can setup your Enterprise Box account us‐
15542 ing the same procedure detailed above in the, using the password you
15543 have just set.
15544
15545 Invalid refresh token
15546 According to the box docs (https://develop‐
15547 er.box.com/v2.0/docs/oauth-20#section-6-using-the-access-and-refresh-
15548 tokens):
15549
15550 Each refresh_token is valid for one use in 60 days.
15551
15552 This means that if you
15553
15554 · Don't use the box remote for 60 days
15555
15556 · Copy the config file with a box refresh token in and use it in two
15557 places
15558
15559 · Get an error on a token refresh
15560
15561 then rclone will return an error which includes the text Invalid re‐
15562 fresh token.
15563
15564 To fix this you will need to use oauth2 again to update the refresh to‐
15565 ken. You can use the methods in the remote setup docs
15566 (https://rclone.org/remote_setup/), bearing in mind that if you use the
15567 copy the config file method, you should not use that remote on the com‐
15568 puter you did the authentication on.
15569
15570 Here is how to do it.
15571
15572 $ rclone config
15573 Current remotes:
15574
15575 Name Type
15576 ==== ====
15577 remote box
15578
15579 e) Edit existing remote
15580 n) New remote
15581 d) Delete remote
15582 r) Rename remote
15583 c) Copy remote
15584 s) Set configuration password
15585 q) Quit config
15586 e/n/d/r/c/s/q> e
15587 Choose a number from below, or type in an existing value
15588 1 > remote
15589 remote> remote
15590 --------------------
15591 [remote]
15592 type = box
15593 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"2017-07-08T23:40:08.059167677+01:00"}
15594 --------------------
15595 Edit remote
15596 Value "client_id" = ""
15597 Edit? (y/n)>
15598 y) Yes
15599 n) No
15600 y/n> n
15601 Value "client_secret" = ""
15602 Edit? (y/n)>
15603 y) Yes
15604 n) No
15605 y/n> n
15606 Remote config
15607 Already have a token - refresh?
15608 y) Yes
15609 n) No
15610 y/n> y
15611 Use auto config?
15612 * Say Y if not sure
15613 * Say N if you are working on a remote or headless machine
15614 y) Yes
15615 n) No
15616 y/n> y
15617 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
15618 Log in and authorize rclone for access
15619 Waiting for code...
15620 Got code
15621 --------------------
15622 [remote]
15623 type = box
15624 token = {"access_token":"YYY","token_type":"bearer","refresh_token":"YYY","expiry":"2017-07-23T12:22:29.259137901+01:00"}
15625 --------------------
15626 y) Yes this is OK
15627 e) Edit this remote
15628 d) Delete this remote
15629 y/e/d> y
15630
15631 Modified time and hashes
15632 Box allows modification times to be set on objects accurate to 1 sec‐
15633 ond. These will be used to detect whether objects need syncing or not.
15634
15635 Box supports SHA1 type hashes, so you can use the --checksum flag.
15636
15637 Restricted filename characters
15638 In addition to the default restricted characters set
15639 (https://rclone.org/overview/#restricted-characters) the following
15640 characters are also replaced:
15641
15642 Character Value Replacement
15643 ────────────────────────────────
15644 \ 0x5C \
15645
15646 File names can also not end with the following characters. These only
15647 get replaced if they are the last character in the name:
15648
15649 Character Value Replacement
15650 ────────────────────────────────
15651 SP 0x20 ␠
15652
15653 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
15654 view/#invalid-utf8), as they can't be used in JSON strings.
15655
15656 Transfers
15657 For files above 50MB rclone will use a chunked transfer. Rclone will
15658 upload up to --transfers chunks at the same time (shared among all the
15659 multipart uploads). Chunks are buffered in memory and are normally 8MB
15660 so increasing --transfers will increase memory use.
15661
15662 Deleting files
15663 Depending on the enterprise settings for your user, the item will ei‐
15664 ther be actually deleted from Box or moved to the trash.
15665
15666 Emptying the trash is supported via the rclone however cleanup command
15667 however this deletes every trashed file and folder individually so it
15668 may take a very long time. Emptying the trash via the WebUI does not
15669 have this limitation so it is advised to empty the trash via the WebUI.
15670
15671 Root folder ID
15672 You can set the root_folder_id for rclone. This is the directory
15673 (identified by its Folder ID) that rclone considers to be the root of
15674 your Box drive.
15675
15676 Normally you will leave this blank and rclone will determine the cor‐
15677 rect root to use itself.
15678
15679 However you can set this to restrict rclone to a specific folder hier‐
15680 archy.
15681
15682 In order to do this you will have to find the Folder ID of the directo‐
15683 ry you wish rclone to display. This will be the last segment of the
15684 URL when you open the relevant folder in the Box web interface.
15685
15686 So if the folder you want rclone to use has a URL which looks like
15687 https://app.box.com/folder/11xxxxxxxxx8 in the browser, then you use
15688 11xxxxxxxxx8 as the root_folder_id in the config.
15689
15690 Standard Options
15691 Here are the standard options specific to box (Box).
15692
15693 --box-client-id
15694 OAuth Client Id Leave blank normally.
15695
15696 · Config: client_id
15697
15698 · Env Var: RCLONE_BOX_CLIENT_ID
15699
15700 · Type: string
15701
15702 · Default: ""
15703
15704 --box-client-secret
15705 OAuth Client Secret Leave blank normally.
15706
15707 · Config: client_secret
15708
15709 · Env Var: RCLONE_BOX_CLIENT_SECRET
15710
15711 · Type: string
15712
15713 · Default: ""
15714
15715 --box-box-config-file
15716 Box App config.json location Leave blank normally.
15717
15718 Leading ~ will be expanded in the file name as will environment vari‐
15719 ables such as ${RCLONE_CONFIG_DIR}.
15720
15721 · Config: box_config_file
15722
15723 · Env Var: RCLONE_BOX_BOX_CONFIG_FILE
15724
15725 · Type: string
15726
15727 · Default: ""
15728
15729 --box-access-token
15730 Box App Primary Access Token Leave blank normally.
15731
15732 · Config: access_token
15733
15734 · Env Var: RCLONE_BOX_ACCESS_TOKEN
15735
15736 · Type: string
15737
15738 · Default: ""
15739
15740 --box-box-sub-type
15741 · Config: box_sub_type
15742
15743 · Env Var: RCLONE_BOX_BOX_SUB_TYPE
15744
15745 · Type: string
15746
15747 · Default: "user"
15748
15749 · Examples:
15750
15751 · "user"
15752
15753 · Rclone should act on behalf of a user
15754
15755 · "enterprise"
15756
15757 · Rclone should act on behalf of a service account
15758
15759 Advanced Options
15760 Here are the advanced options specific to box (Box).
15761
15762 --box-token
15763 OAuth Access Token as a JSON blob.
15764
15765 · Config: token
15766
15767 · Env Var: RCLONE_BOX_TOKEN
15768
15769 · Type: string
15770
15771 · Default: ""
15772
15773 --box-auth-url
15774 Auth server URL. Leave blank to use the provider defaults.
15775
15776 · Config: auth_url
15777
15778 · Env Var: RCLONE_BOX_AUTH_URL
15779
15780 · Type: string
15781
15782 · Default: ""
15783
15784 --box-token-url
15785 Token server url. Leave blank to use the provider defaults.
15786
15787 · Config: token_url
15788
15789 · Env Var: RCLONE_BOX_TOKEN_URL
15790
15791 · Type: string
15792
15793 · Default: ""
15794
15795 --box-root-folder-id
15796 Fill in for rclone to use a non root folder as its starting point.
15797
15798 · Config: root_folder_id
15799
15800 · Env Var: RCLONE_BOX_ROOT_FOLDER_ID
15801
15802 · Type: string
15803
15804 · Default: "0"
15805
15806 --box-upload-cutoff
15807 Cutoff for switching to multipart upload (>= 50MB).
15808
15809 · Config: upload_cutoff
15810
15811 · Env Var: RCLONE_BOX_UPLOAD_CUTOFF
15812
15813 · Type: SizeSuffix
15814
15815 · Default: 50M
15816
15817 --box-commit-retries
15818 Max number of times to try committing a multipart file.
15819
15820 · Config: commit_retries
15821
15822 · Env Var: RCLONE_BOX_COMMIT_RETRIES
15823
15824 · Type: int
15825
15826 · Default: 100
15827
15828 --box-encoding
15829 This sets the encoding for the backend.
15830
15831 See: the encoding section in the overview (https://rclone.org/over‐
15832 view/#encoding) for more info.
15833
15834 · Config: encoding
15835
15836 · Env Var: RCLONE_BOX_ENCODING
15837
15838 · Type: MultiEncoder
15839
15840 · Default: Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot
15841
15842 Limitations
15843 Note that Box is case insensitive so you can't have a file called "Hel‐
15844 lo.doc" and one called "hello.doc".
15845
15846 Box file names can't have the \ character in. rclone maps this to and
15847 from an identical looking unicode equivalent \ (U+FF3C Fullwidth Re‐
15848 verse Solidus).
15849
15850 Box only supports filenames up to 255 characters in length.
15851
15852 rclone about is not supported by the Box backend. Backends without
15853 this capability cannot determine free space for an rclone mount or use
15854 policy mfs (most free space) as a member of an rclone union remote.
15855
15856 See List of backends that do not support rclone about
15857 (https://rclone.org/overview/#optional-features) See rclone about
15858 (https://rclone.org/commands/rclone_about/)
15859
15860 Cache (BETA)
15861 The cache remote wraps another existing remote and stores file struc‐
15862 ture and its data for long running tasks like rclone mount.
15863
15864 Status
15865 The cache backend code is working but it currently doesn't have a main‐
15866 tainer so there are outstanding bugs
15867 (https://github.com/rclone/rclone/issues?q=is%3Aopen+is%3Aissue+la‐
15868 bel%3Abug+label%3A%22Remote%3A+Cache%22) which aren't getting fixed.
15869
15870 The cache backend is due to be phased out in favour of the VFS caching
15871 layer eventually which is more tightly integrated into rclone.
15872
15873 Until this happens we recommend only using the cache backend if you
15874 find you can't work without it. There are many docs online describing
15875 the use of the cache backend to minimize API hits and by-and-large
15876 these are out of date and the cache backend isn't needed in those sce‐
15877 narios any more.
15878
15879 Setup
15880 To get started you just need to have an existing remote which can be
15881 configured with cache.
15882
15883 Here is an example of how to make a remote called test-cache. First
15884 run:
15885
15886 rclone config
15887
15888 This will guide you through an interactive setup process:
15889
15890 No remotes found - make a new one
15891 n) New remote
15892 r) Rename remote
15893 c) Copy remote
15894 s) Set configuration password
15895 q) Quit config
15896 n/r/c/s/q> n
15897 name> test-cache
15898 Type of storage to configure.
15899 Choose a number from below, or type in your own value
15900 [snip]
15901 XX / Cache a remote
15902 \ "cache"
15903 [snip]
15904 Storage> cache
15905 Remote to cache.
15906 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
15907 "myremote:bucket" or maybe "myremote:" (not recommended).
15908 remote> local:/test
15909 Optional: The URL of the Plex server
15910 plex_url> http://127.0.0.1:32400
15911 Optional: The username of the Plex user
15912 plex_username> dummyusername
15913 Optional: The password of the Plex user
15914 y) Yes type in my own password
15915 g) Generate random password
15916 n) No leave this optional password blank
15917 y/g/n> y
15918 Enter the password:
15919 password:
15920 Confirm the password:
15921 password:
15922 The size of a chunk. Lower value good for slow connections but can affect seamless reading.
15923 Default: 5M
15924 Choose a number from below, or type in your own value
15925 1 / 1MB
15926 \ "1m"
15927 2 / 5 MB
15928 \ "5M"
15929 3 / 10 MB
15930 \ "10M"
15931 chunk_size> 2
15932 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.
15933 Accepted units are: "s", "m", "h".
15934 Default: 5m
15935 Choose a number from below, or type in your own value
15936 1 / 1 hour
15937 \ "1h"
15938 2 / 24 hours
15939 \ "24h"
15940 3 / 24 hours
15941 \ "48h"
15942 info_age> 2
15943 The maximum size of stored chunks. When the storage grows beyond this size, the oldest chunks will be deleted.
15944 Default: 10G
15945 Choose a number from below, or type in your own value
15946 1 / 500 MB
15947 \ "500M"
15948 2 / 1 GB
15949 \ "1G"
15950 3 / 10 GB
15951 \ "10G"
15952 chunk_total_size> 3
15953 Remote config
15954 --------------------
15955 [test-cache]
15956 remote = local:/test
15957 plex_url = http://127.0.0.1:32400
15958 plex_username = dummyusername
15959 plex_password = *** ENCRYPTED ***
15960 chunk_size = 5M
15961 info_age = 48h
15962 chunk_total_size = 10G
15963
15964 You can then use it like this,
15965
15966 List directories in top level of your drive
15967
15968 rclone lsd test-cache:
15969
15970 List all the files in your drive
15971
15972 rclone ls test-cache:
15973
15974 To start a cached mount
15975
15976 rclone mount --allow-other test-cache: /var/tmp/test-cache
15977
15978 Write Features
15979 Offline uploading
15980 In an effort to make writing through cache more reliable, the backend
15981 now supports this feature which can be activated by specifying a
15982 cache-tmp-upload-path.
15983
15984 A files goes through these states when using this feature:
15985
15986 1. An upload is started (usually by copying a file on the cache remote)
15987
15988 2. When the copy to the temporary location is complete the file is part
15989 of the cached remote and looks and behaves like any other file
15990 (reading included)
15991
15992 3. After cache-tmp-wait-time passes and the file is next in line,
15993 rclone move is used to move the file to the cloud provider
15994
15995 4. Reading the file still works during the upload but most modifica‐
15996 tions on it will be prohibited
15997
15998 5. Once the move is complete the file is unlocked for modifications as
15999 it becomes as any other regular file
16000
16001 6. If the file is being read through cache when it's actually deleted
16002 from the temporary path then cache will simply swap the source to
16003 the cloud provider without interrupting the reading (small blip can
16004 happen though)
16005
16006 Files are uploaded in sequence and only one file is uploaded at a time.
16007 Uploads will be stored in a queue and be processed based on the order
16008 they were added. The queue and the temporary storage is persistent
16009 across restarts but can be cleared on startup with the --cache-db-purge
16010 flag.
16011
16012 Write Support
16013 Writes are supported through cache. One caveat is that a mounted cache
16014 remote does not add any retry or fallback mechanism to the upload oper‐
16015 ation. This will depend on the implementation of the wrapped remote.
16016 Consider using Offline uploading for reliable writes.
16017
16018 One special case is covered with cache-writes which will cache the file
16019 data at the same time as the upload when it is enabled making it avail‐
16020 able from the cache store immediately once the upload is finished.
16021
16022 Read Features
16023 Multiple connections
16024 To counter the high latency between a local PC where rclone is running
16025 and cloud providers, the cache remote can split multiple requests to
16026 the cloud provider for smaller file chunks and combines them together
16027 locally where they can be available almost immediately before the read‐
16028 er usually needs them.
16029
16030 This is similar to buffering when media files are played online.
16031 Rclone will stay around the current marker but always try its best to
16032 stay ahead and prepare the data before.
16033
16034 Plex Integration
16035 There is a direct integration with Plex which allows cache to detect
16036 during reading if the file is in playback or not. This helps cache to
16037 adapt how it queries the cloud provider depending on what is needed
16038 for.
16039
16040 Scans will have a minimum amount of workers (1) while in a confirmed
16041 playback cache will deploy the configured number of workers.
16042
16043 This integration opens the doorway to additional performance improve‐
16044 ments which will be explored in the near future.
16045
16046 Note: If Plex options are not configured, cache will function with its
16047 configured options without adapting any of its settings.
16048
16049 How to enable? Run rclone config and add all the Plex options (end‐
16050 point, username and password) in your remote and it will be automati‐
16051 cally enabled.
16052
16053 Affected settings: - cache-workers: Configured value during confirmed
16054 playback or 1 all the other times
16055
16056 Certificate Validation
16057 When the Plex server is configured to only accept secure connections,
16058 it is possible to use .plex.direct URLs to ensure certificate valida‐
16059 tion succeeds. These URLs are used by Plex internally to connect to
16060 the Plex server securely.
16061
16062 The format for these URLs is the following:
16063
16064 https://ip-with-dots-replaced.server-hash.plex.direct:32400/
16065
16066 The ip-with-dots-replaced part can be any IPv4 address, where the dots
16067 have been replaced with dashes, e.g. 127.0.0.1 becomes 127-0-0-1.
16068
16069 To get the server-hash part, the easiest way is to visit
16070
16071 https://plex.tv/api/resources?includeHttps=1&X-Plex-Token=your-plex-to‐
16072 ken
16073
16074 This page will list all the available Plex servers for your account
16075 with at least one .plex.direct link for each. Copy one URL and replace
16076 the IP address with the desired address. This can be used as the
16077 plex_url value.
16078
16079 Known issues
16080 Mount and --dir-cache-time
16081 --dir-cache-time controls the first layer of directory caching which
16082 works at the mount layer. Being an independent caching mechanism from
16083 the cache backend, it will manage its own entries based on the config‐
16084 ured time.
16085
16086 To avoid getting in a scenario where dir cache has obsolete data and
16087 cache would have the correct one, try to set --dir-cache-time to a low‐
16088 er time than --cache-info-age. Default values are already configured
16089 in this way.
16090
16091 Windows support - Experimental
16092 There are a couple of issues with Windows mount functionality that
16093 still require some investigations. It should be considered as experi‐
16094 mental thus far as fixes come in for this OS.
16095
16096 Most of the issues seem to be related to the difference between
16097 filesystems on Linux flavors and Windows as cache is heavily dependent
16098 on them.
16099
16100 Any reports or feedback on how cache behaves on this OS is greatly ap‐
16101 preciated.
16102
16103 · https://github.com/rclone/rclone/issues/1935
16104
16105 · https://github.com/rclone/rclone/issues/1907
16106
16107 · https://github.com/rclone/rclone/issues/1834
16108
16109 Risk of throttling
16110 Future iterations of the cache backend will make use of the pooling
16111 functionality of the cloud provider to synchronize and at the same time
16112 make writing through it more tolerant to failures.
16113
16114 There are a couple of enhancements in track to add these but in the
16115 meantime there is a valid concern that the expiring cache listings can
16116 lead to cloud provider throttles or bans due to repeated queries on it
16117 for very large mounts.
16118
16119 Some recommendations: - don't use a very small interval for entry in‐
16120 formation (--cache-info-age) - while writes aren't yet optimised, you
16121 can still write through cache which gives you the advantage of adding
16122 the file in the cache at the same time if configured to do so.
16123
16124 Future enhancements:
16125
16126 · https://github.com/rclone/rclone/issues/1937
16127
16128 · https://github.com/rclone/rclone/issues/1936
16129
16130 cache and crypt
16131 One common scenario is to keep your data encrypted in the cloud
16132 provider using the crypt remote. crypt uses a similar technique to
16133 wrap around an existing remote and handles this translation in a seam‐
16134 less way.
16135
16136 There is an issue with wrapping the remotes in this order: cloud remote
16137 -> crypt -> cache
16138
16139 During testing, I experienced a lot of bans with the remotes in this
16140 order. I suspect it might be related to how crypt opens files on the
16141 cloud provider which makes it think we're downloading the full file in‐
16142 stead of small chunks. Organizing the remotes in this order yields
16143 better results: cloud remote -> cache -> crypt
16144
16145 absolute remote paths
16146 cache can not differentiate between relative and absolute paths for the
16147 wrapped remote. Any path given in the remote config setting and on the
16148 command line will be passed to the wrapped remote as is, but for stor‐
16149 ing the chunks on disk the path will be made relative by removing any
16150 leading / character.
16151
16152 This behavior is irrelevant for most backend types, but there are back‐
16153 ends where a leading / changes the effective directory, e.g. in the
16154 sftp backend paths starting with a / are relative to the root of the
16155 SSH server and paths without are relative to the user home directory.
16156 As a result sftp:bin and sftp:/bin will share the same cache folder,
16157 even if they represent a different directory on the SSH server.
16158
16159 Cache and Remote Control (--rc)
16160 Cache supports the new --rc mode in rclone and can be remote controlled
16161 through the following end points: By default, the listener is disabled
16162 if you do not add the flag.
16163
16164 rc cache/expire
16165 Purge a remote from the cache backend. Supports either a directory or
16166 a file. It supports both encrypted and unencrypted file names if cache
16167 is wrapped by crypt.
16168
16169 Params: - remote = path to remote (required) - withData = true/false to
16170 delete cached data (chunks) as well (optional, false by default)
16171
16172 Standard Options
16173 Here are the standard options specific to cache (Cache a remote).
16174
16175 --cache-remote
16176 Remote to cache. Normally should contain a ':' and a path, e.g.
16177 "myremote:path/to/dir", "myremote:bucket" or maybe "myremote:" (not
16178 recommended).
16179
16180 · Config: remote
16181
16182 · Env Var: RCLONE_CACHE_REMOTE
16183
16184 · Type: string
16185
16186 · Default: ""
16187
16188 --cache-plex-url
16189 The URL of the Plex server
16190
16191 · Config: plex_url
16192
16193 · Env Var: RCLONE_CACHE_PLEX_URL
16194
16195 · Type: string
16196
16197 · Default: ""
16198
16199 --cache-plex-username
16200 The username of the Plex user
16201
16202 · Config: plex_username
16203
16204 · Env Var: RCLONE_CACHE_PLEX_USERNAME
16205
16206 · Type: string
16207
16208 · Default: ""
16209
16210 --cache-plex-password
16211 The password of the Plex user
16212
16213 NB Input to this must be obscured - see rclone obscure
16214 (https://rclone.org/commands/rclone_obscure/).
16215
16216 · Config: plex_password
16217
16218 · Env Var: RCLONE_CACHE_PLEX_PASSWORD
16219
16220 · Type: string
16221
16222 · Default: ""
16223
16224 --cache-chunk-size
16225 The size of a chunk (partial file data).
16226
16227 Use lower numbers for slower connections. If the chunk size is
16228 changed, any downloaded chunks will be invalid and cache-chunk-path
16229 will need to be cleared or unexpected EOF errors will occur.
16230
16231 · Config: chunk_size
16232
16233 · Env Var: RCLONE_CACHE_CHUNK_SIZE
16234
16235 · Type: SizeSuffix
16236
16237 · Default: 5M
16238
16239 · Examples:
16240
16241 · "1m"
16242
16243 · 1MB
16244
16245 · "5M"
16246
16247 · 5 MB
16248
16249 · "10M"
16250
16251 · 10 MB
16252
16253 --cache-info-age
16254 How long to cache file structure information (directory listings, file
16255 size, times, etc.). If all write operations are done through the cache
16256 then you can safely make this value very large as the cache store will
16257 also be updated in real time.
16258
16259 · Config: info_age
16260
16261 · Env Var: RCLONE_CACHE_INFO_AGE
16262
16263 · Type: Duration
16264
16265 · Default: 6h0m0s
16266
16267 · Examples:
16268
16269 · "1h"
16270
16271 · 1 hour
16272
16273 · "24h"
16274
16275 · 24 hours
16276
16277 · "48h"
16278
16279 · 48 hours
16280
16281 --cache-chunk-total-size
16282 The total size that the chunks can take up on the local disk.
16283
16284 If the cache exceeds this value then it will start to delete the oldest
16285 chunks until it goes under this value.
16286
16287 · Config: chunk_total_size
16288
16289 · Env Var: RCLONE_CACHE_CHUNK_TOTAL_SIZE
16290
16291 · Type: SizeSuffix
16292
16293 · Default: 10G
16294
16295 · Examples:
16296
16297 · "500M"
16298
16299 · 500 MB
16300
16301 · "1G"
16302
16303 · 1 GB
16304
16305 · "10G"
16306
16307 · 10 GB
16308
16309 Advanced Options
16310 Here are the advanced options specific to cache (Cache a remote).
16311
16312 --cache-plex-token
16313 The plex token for authentication - auto set normally
16314
16315 · Config: plex_token
16316
16317 · Env Var: RCLONE_CACHE_PLEX_TOKEN
16318
16319 · Type: string
16320
16321 · Default: ""
16322
16323 --cache-plex-insecure
16324 Skip all certificate verification when connecting to the Plex server
16325
16326 · Config: plex_insecure
16327
16328 · Env Var: RCLONE_CACHE_PLEX_INSECURE
16329
16330 · Type: string
16331
16332 · Default: ""
16333
16334 --cache-db-path
16335 Directory to store file structure metadata DB. The remote name is used
16336 as the DB file name.
16337
16338 · Config: db_path
16339
16340 · Env Var: RCLONE_CACHE_DB_PATH
16341
16342 · Type: string
16343
16344 · Default: "$HOME/.cache/rclone/cache-backend"
16345
16346 --cache-chunk-path
16347 Directory to cache chunk files.
16348
16349 Path to where partial file data (chunks) are stored locally. The re‐
16350 mote name is appended to the final path.
16351
16352 This config follows the "--cache-db-path". If you specify a custom lo‐
16353 cation for "--cache-db-path" and don't specify one for
16354 "--cache-chunk-path" then "--cache-chunk-path" will use the same path
16355 as "--cache-db-path".
16356
16357 · Config: chunk_path
16358
16359 · Env Var: RCLONE_CACHE_CHUNK_PATH
16360
16361 · Type: string
16362
16363 · Default: "$HOME/.cache/rclone/cache-backend"
16364
16365 --cache-db-purge
16366 Clear all the cached data for this remote on start.
16367
16368 · Config: db_purge
16369
16370 · Env Var: RCLONE_CACHE_DB_PURGE
16371
16372 · Type: bool
16373
16374 · Default: false
16375
16376 --cache-chunk-clean-interval
16377 How often should the cache perform cleanups of the chunk storage. The
16378 default value should be ok for most people. If you find that the cache
16379 goes over "cache-chunk-total-size" too often then try to lower this
16380 value to force it to perform cleanups more often.
16381
16382 · Config: chunk_clean_interval
16383
16384 · Env Var: RCLONE_CACHE_CHUNK_CLEAN_INTERVAL
16385
16386 · Type: Duration
16387
16388 · Default: 1m0s
16389
16390 --cache-read-retries
16391 How many times to retry a read from a cache storage.
16392
16393 Since reading from a cache stream is independent from downloading file
16394 data, readers can get to a point where there's no more data in the
16395 cache. Most of the times this can indicate a connectivity issue if
16396 cache isn't able to provide file data anymore.
16397
16398 For really slow connections, increase this to a point where the stream
16399 is able to provide data but your experience will be very stuttering.
16400
16401 · Config: read_retries
16402
16403 · Env Var: RCLONE_CACHE_READ_RETRIES
16404
16405 · Type: int
16406
16407 · Default: 10
16408
16409 --cache-workers
16410 How many workers should run in parallel to download chunks.
16411
16412 Higher values will mean more parallel processing (better CPU needed)
16413 and more concurrent requests on the cloud provider. This impacts sev‐
16414 eral aspects like the cloud provider API limits, more stress on the
16415 hardware that rclone runs on but it also means that streams will be
16416 more fluid and data will be available much more faster to readers.
16417
16418 Note: If the optional Plex integration is enabled then this setting
16419 will adapt to the type of reading performed and the value specified
16420 here will be used as a maximum number of workers to use.
16421
16422 · Config: workers
16423
16424 · Env Var: RCLONE_CACHE_WORKERS
16425
16426 · Type: int
16427
16428 · Default: 4
16429
16430 --cache-chunk-no-memory
16431 Disable the in-memory cache for storing chunks during streaming.
16432
16433 By default, cache will keep file data during streaming in RAM as well
16434 to provide it to readers as fast as possible.
16435
16436 This transient data is evicted as soon as it is read and the number of
16437 chunks stored doesn't exceed the number of workers. However, depending
16438 on other settings like "cache-chunk-size" and "cache-workers" this
16439 footprint can increase if there are parallel streams too (multiple
16440 files being read at the same time).
16441
16442 If the hardware permits it, use this feature to provide an overall bet‐
16443 ter performance during streaming but it can also be disabled if RAM is
16444 not available on the local machine.
16445
16446 · Config: chunk_no_memory
16447
16448 · Env Var: RCLONE_CACHE_CHUNK_NO_MEMORY
16449
16450 · Type: bool
16451
16452 · Default: false
16453
16454 --cache-rps
16455 Limits the number of requests per second to the source FS (-1 to dis‐
16456 able)
16457
16458 This setting places a hard limit on the number of requests per second
16459 that cache will be doing to the cloud provider remote and try to re‐
16460 spect that value by setting waits between reads.
16461
16462 If you find that you're getting banned or limited on the cloud provider
16463 through cache and know that a smaller number of requests per second
16464 will allow you to work with it then you can use this setting for that.
16465
16466 A good balance of all the other settings should make this setting use‐
16467 less but it is available to set for more special cases.
16468
16469 NOTE: This will limit the number of requests during streams but other
16470 API calls to the cloud provider like directory listings will still
16471 pass.
16472
16473 · Config: rps
16474
16475 · Env Var: RCLONE_CACHE_RPS
16476
16477 · Type: int
16478
16479 · Default: -1
16480
16481 --cache-writes
16482 Cache file data on writes through the FS
16483
16484 If you need to read files immediately after you upload them through
16485 cache you can enable this flag to have their data stored in the cache
16486 store at the same time during upload.
16487
16488 · Config: writes
16489
16490 · Env Var: RCLONE_CACHE_WRITES
16491
16492 · Type: bool
16493
16494 · Default: false
16495
16496 --cache-tmp-upload-path
16497 Directory to keep temporary files until they are uploaded.
16498
16499 This is the path where cache will use as a temporary storage for new
16500 files that need to be uploaded to the cloud provider.
16501
16502 Specifying a value will enable this feature. Without it, it is com‐
16503 pletely disabled and files will be uploaded directly to the cloud
16504 provider
16505
16506 · Config: tmp_upload_path
16507
16508 · Env Var: RCLONE_CACHE_TMP_UPLOAD_PATH
16509
16510 · Type: string
16511
16512 · Default: ""
16513
16514 --cache-tmp-wait-time
16515 How long should files be stored in local cache before being uploaded
16516
16517 This is the duration that a file must wait in the temporary location
16518 cache-tmp-upload-path before it is selected for upload.
16519
16520 Note that only one file is uploaded at a time and it can take longer to
16521 start the upload if a queue formed for this purpose.
16522
16523 · Config: tmp_wait_time
16524
16525 · Env Var: RCLONE_CACHE_TMP_WAIT_TIME
16526
16527 · Type: Duration
16528
16529 · Default: 15s
16530
16531 --cache-db-wait-time
16532 How long to wait for the DB to be available - 0 is unlimited
16533
16534 Only one process can have the DB open at any one time, so rclone waits
16535 for this duration for the DB to become available before it gives an er‐
16536 ror.
16537
16538 If you set it to 0 then it will wait forever.
16539
16540 · Config: db_wait_time
16541
16542 · Env Var: RCLONE_CACHE_DB_WAIT_TIME
16543
16544 · Type: Duration
16545
16546 · Default: 1s
16547
16548 Backend commands
16549 Here are the commands specific to the cache backend.
16550
16551 Run them with
16552
16553 rclone backend COMMAND remote:
16554
16555 The help below will explain what arguments each command takes.
16556
16557 See the "rclone backend" command (https://rclone.org/com‐
16558 mands/rclone_backend/) for more info on how to pass options and argu‐
16559 ments.
16560
16561 These can be run on a running backend using the rc command backend/com‐
16562 mand (https://rclone.org/rc/#backend/command).
16563
16564 stats
16565 Print stats on the cache backend in JSON format.
16566
16567 rclone backend stats remote: [options] [<arguments>+]
16568
16569 Chunker (BETA)
16570 The chunker overlay transparently splits large files into smaller
16571 chunks during upload to wrapped remote and transparently assembles them
16572 back when the file is downloaded. This allows to effectively overcome
16573 size limits imposed by storage providers.
16574
16575 To use it, first set up the underlying remote following the configura‐
16576 tion instructions for that remote. You can also use a local pathname
16577 instead of a remote.
16578
16579 First check your chosen remote is working - we'll call it remote:path
16580 here. Note that anything inside remote:path will be chunked and any‐
16581 thing outside won't. This means that if you are using a bucket based
16582 remote (e.g. S3, B2, swift) then you should probably put the bucket in
16583 the remote s3:bucket.
16584
16585 Now configure chunker using rclone config. We will call this one over‐
16586 lay to separate it from the remote itself.
16587
16588 No remotes found - make a new one
16589 n) New remote
16590 s) Set configuration password
16591 q) Quit config
16592 n/s/q> n
16593 name> overlay
16594 Type of storage to configure.
16595 Choose a number from below, or type in your own value
16596 [snip]
16597 XX / Transparently chunk/split large files
16598 \ "chunker"
16599 [snip]
16600 Storage> chunker
16601 Remote to chunk/unchunk.
16602 Normally should contain a ':' and a path, e.g. "myremote:path/to/dir",
16603 "myremote:bucket" or maybe "myremote:" (not recommended).
16604 Enter a string value. Press Enter for the default ("").
16605 remote> remote:path
16606 Files larger than chunk size will be split in chunks.
16607 Enter a size with suffix k,M,G,T. Press Enter for the default ("2G").
16608 chunk_size> 100M
16609 Choose how chunker handles hash sums. All modes but "none" require metadata.
16610 Enter a string value. Press Enter for the default ("md5").
16611 Choose a number from below, or type in your own value
16612 1 / Pass any hash supported by wrapped remote for non-chunked files, return nothing otherwise
16613 \ "none"
16614 2 / MD5 for composite files
16615 \ "md5"
16616 3 / SHA1 for composite files
16617 \ "sha1"
16618 4 / MD5 for all files
16619 \ "md5all"
16620 5 / SHA1 for all files
16621 \ "sha1all"
16622 6 / Copying a file to chunker will request MD5 from the source falling back to SHA1 if unsupported
16623 \ "md5quick"
16624 7 / Similar to "md5quick" but prefers SHA1 over MD5
16625 \ "sha1quick"
16626 hash_type> md5
16627 Edit advanced config? (y/n)
16628 y) Yes
16629 n) No
16630 y/n> n
16631 Remote config
16632 --------------------
16633 [overlay]
16634 type = chunker
16635 remote = remote:bucket
16636 chunk_size = 100M
16637 hash_type = md5
16638 --------------------
16639 y) Yes this is OK
16640 e) Edit this remote
16641 d) Delete this remote
16642 y/e/d> y
16643
16644 Specifying the remote
16645 In normal use, make sure the remote has a : in. If you specify the re‐
16646 mote without a : then rclone will use a local directory of that name.
16647 So if you use a remote of /path/to/secret/files then rclone will chunk
16648 stuff in that directory. If you use a remote of name then rclone will
16649 put files in a directory called name in the current directory.
16650
16651 Chunking
16652 When rclone starts a file upload, chunker checks the file size. If it
16653 doesn't exceed the configured chunk size, chunker will just pass the
16654 file to the wrapped remote. If a file is large, chunker will transpar‐
16655 ently cut data in pieces with temporary names and stream them one by
16656 one, on the fly. Each data chunk will contain the specified number of
16657 bytes, except for the last one which may have less data. If file size
16658 is unknown in advance (this is called a streaming upload), chunker will
16659 internally create a temporary copy, record its size and repeat the
16660 above process.
16661
16662 When upload completes, temporary chunk files are finally renamed. This
16663 scheme guarantees that operations can be run in parallel and look from
16664 outside as atomic. A similar method with hidden temporary chunks is
16665 used for other operations (copy/move/rename, etc.). If an operation
16666 fails, hidden chunks are normally destroyed, and the target composite
16667 file stays intact.
16668
16669 When a composite file download is requested, chunker transparently as‐
16670 sembles it by concatenating data chunks in order. As the split is
16671 trivial one could even manually concatenate data chunks together to ob‐
16672 tain the original content.
16673
16674 When the list rclone command scans a directory on wrapped remote, the
16675 potential chunk files are accounted for, grouped and assembled into
16676 composite directory entries. Any temporary chunks are hidden.
16677
16678 List and other commands can sometimes come across composite files with
16679 missing or invalid chunks, e.g. shadowed by like-named directory or
16680 another file. This usually means that wrapped file system has been di‐
16681 rectly tampered with or damaged. If chunker detects a missing chunk it
16682 will by default print warning, skip the whole incomplete group of
16683 chunks but proceed with current command. You can set the --chun‐
16684 ker-fail-hard flag to have commands abort with error message in such
16685 cases.
16686
16687 Chunk names
16688 The default chunk name format is *.rclone_chunk.###, hence by default
16689 chunk names are BIG_FILE_NAME.rclone_chunk.001,
16690 BIG_FILE_NAME.rclone_chunk.002 etc. You can configure another name
16691 format using the name_format configuration file option. The format us‐
16692 es asterisk * as a placeholder for the base file name and one or more
16693 consecutive hash characters # as a placeholder for sequential chunk
16694 number. There must be one and only one asterisk. The number of con‐
16695 secutive hash characters defines the minimum length of a string repre‐
16696 senting a chunk number. If decimal chunk number has less digits than
16697 the number of hashes, it is left-padded by zeros. If the decimal
16698 string is longer, it is left intact. By default numbering starts from
16699 1 but there is another option that allows user to start from 0, e.g.
16700 for compatibility with legacy software.
16701
16702 For example, if name format is big_*-##.part and original file name is
16703 data.txt and numbering starts from 0, then the first chunk will be
16704 named big_data.txt-00.part, the 99th chunk will be big_data.txt-98.part
16705 and the 302nd chunk will become big_data.txt-301.part.
16706
16707 Note that list assembles composite directory entries only when chunk
16708 names match the configured format and treats non-conforming file names
16709 as normal non-chunked files.
16710
16711 Metadata
16712 Besides data chunks chunker will by default create metadata object for
16713 a composite file. The object is named after the original file. Chun‐
16714 ker allows user to disable metadata completely (the none format). Note
16715 that metadata is normally not created for files smaller than the con‐
16716 figured chunk size. This may change in future rclone releases.
16717
16718 Simple JSON metadata format
16719 This is the default format. It supports hash sums and chunk validation
16720 for composite files. Meta objects carry the following fields:
16721
16722 · ver - version of format, currently 1
16723
16724 · size - total size of composite file
16725
16726 · nchunks - number of data chunks in file
16727
16728 · md5 - MD5 hashsum of composite file (if present)
16729
16730 · sha1 - SHA1 hashsum (if present)
16731
16732 There is no field for composite file name as it's simply equal to the
16733 name of meta object on the wrapped remote. Please refer to respective
16734 sections for details on hashsums and modified time handling.
16735
16736 No metadata
16737 You can disable meta objects by setting the meta format option to none.
16738 In this mode chunker will scan directory for all files that follow con‐
16739 figured chunk name format, group them by detecting chunks with the same
16740 base name and show group names as virtual composite files. This method
16741 is more prone to missing chunk errors (especially missing last chunk)
16742 than format with metadata enabled.
16743
16744 Hashsums
16745 Chunker supports hashsums only when a compatible metadata is present.
16746 Hence, if you choose metadata format of none, chunker will report hash‐
16747 sum as UNSUPPORTED.
16748
16749 Please note that by default metadata is stored only for composite
16750 files. If a file is smaller than configured chunk size, chunker will
16751 transparently redirect hash requests to wrapped remote, so support de‐
16752 pends on that. You will see the empty string as a hashsum of requested
16753 type for small files if the wrapped remote doesn't support it.
16754
16755 Many storage backends support MD5 and SHA1 hash types, so does chunker.
16756 With chunker you can choose one or another but not both. MD5 is set by
16757 default as the most supported type. Since chunker keeps hashes for
16758 composite files and falls back to the wrapped remote hash for non-chun‐
16759 ked ones, we advise you to choose the same hash type as supported by
16760 wrapped remote so that your file listings look coherent.
16761
16762 If your storage backend does not support MD5 or SHA1 but you need con‐
16763 sistent file hashing, configure chunker with md5all or sha1all. These
16764 two modes guarantee given hash for all files. If wrapped remote
16765 doesn't support it, chunker will then add metadata to all files, even
16766 small. However, this can double the amount of small files in storage
16767 and incur additional service charges. You can even use chunker to
16768 force md5/sha1 support in any other remote at expense of sidecar meta
16769 objects by setting e.g. chunk_type=sha1all to force hashsums and
16770 chunk_size=1P to effectively disable chunking.
16771
16772 Normally, when a file is copied to chunker controlled remote, chunker
16773 will ask the file source for compatible file hash and revert to
16774 on-the-fly calculation if none is found. This involves some CPU over‐
16775 head but provides a guarantee that given hashsum is available. Also,
16776 chunker will reject a server-side copy or move operation if source and
16777 destination hashsum types are different resulting in the extra network
16778 bandwidth, too. In some rare cases this may be undesired, so chunker
16779 provides two optional choices: sha1quick and md5quick. If the source
16780 does not support primary hash type and the quick mode is enabled, chun‐
16781 ker will try to fall back to the secondary type. This will save CPU
16782 and bandwidth but can result in empty hashsums at destination. Beware
16783 of consequences: the sync command will revert (sometimes silently) to
16784 time/size comparison if compatible hashsums between source and target
16785 are not found.
16786
16787 Modified time
16788 Chunker stores modification times using the wrapped remote so support
16789 depends on that. For a small non-chunked file the chunker overlay sim‐
16790 ply manipulates modification time of the wrapped remote file. For a
16791 composite file with metadata chunker will get and set modification time
16792 of the metadata object on the wrapped remote. If file is chunked but
16793 metadata format is none then chunker will use modification time of the
16794 first data chunk.
16795
16796 Migrations
16797 The idiomatic way to migrate to a different chunk size, hash type or
16798 chunk naming scheme is to:
16799
16800 · Collect all your chunked files under a directory and have your chun‐
16801 ker remote point to it.
16802
16803 · Create another directory (most probably on the same cloud storage)
16804 and configure a new remote with desired metadata format, hash type,
16805 chunk naming etc.
16806
16807 · Now run rclone sync -i oldchunks: newchunks: and all your data will
16808 be transparently converted in transfer. This may take some time, yet
16809 chunker will try server-side copy if possible.
16810
16811 · After checking data integrity you may remove configuration section of
16812 the old remote.
16813
16814 If rclone gets killed during a long operation on a big composite file,
16815 hidden temporary chunks may stay in the directory. They will not be
16816 shown by the list command but will eat up your account quota. Please
16817 note that the deletefile command deletes only active chunks of a file.
16818 As a workaround, you can use remote of the wrapped file system to see
16819 them. An easy way to get rid of hidden garbage is to copy littered di‐
16820 rectory somewhere using the chunker remote and purge the original di‐
16821 rectory. The copy command will copy only active chunks while the purge
16822 will remove everything including garbage.
16823
16824 Caveats and Limitations
16825 Chunker requires wrapped remote to support server-side move (or copy +
16826 delete) operations, otherwise it will explicitly refuse to start. This
16827 is because it internally renames temporary chunk files to their final
16828 names when an operation completes successfully.
16829
16830 Chunker encodes chunk number in file name, so with default name_format
16831 setting it adds 17 characters. Also chunker adds 7 characters of tem‐
16832 porary suffix during operations. Many file systems limit base file
16833 name without path by 255 characters. Using rclone's crypt remote as a
16834 base file system limits file name by 143 characters. Thus, maximum
16835 name length is 231 for most files and 119 for chunker-over-crypt. A
16836 user in need can change name format to e.g. *.rcc## and save 10 char‐
16837 acters (provided at most 99 chunks per file).
16838
16839 Note that a move implemented using the copy-and-delete method may incur
16840 double charging with some cloud storage providers.
16841
16842 Chunker will not automatically rename existing chunks when you run
16843 rclone config on a live remote and change the chunk name format. Be‐
16844 ware that in result of this some files which have been treated as
16845 chunks before the change can pop up in directory listings as normal
16846 files and vice versa. The same warning holds for the chunk size. If
16847 you desperately need to change critical chunking settings, you should
16848 run data migration as described above.
16849
16850 If wrapped remote is case insensitive, the chunker overlay will inherit
16851 that property (so you can't have a file called "Hello.doc" and "hel‐
16852 lo.doc" in the same directory).
16853
16854 Chunker included in rclone releases up to v1.54 can sometimes fail to
16855 detect metadata produced by recent versions of rclone. We recommend
16856 users to keep rclone up-to-date to avoid data corruption.
16857
16858 Standard Options
16859 Here are the standard options specific to chunker (Transparently
16860 chunk/split large files).
16861
16862 --chunker-remote
16863 Remote to chunk/unchunk. Normally should contain a ':' and a path,
16864 e.g. "myremote:path/to/dir", "myremote:bucket" or maybe "myremote:"
16865 (not recommended).
16866
16867 · Config: remote
16868
16869 · Env Var: RCLONE_CHUNKER_REMOTE
16870
16871 · Type: string
16872
16873 · Default: ""
16874
16875 --chunker-chunk-size
16876 Files larger than chunk size will be split in chunks.
16877
16878 · Config: chunk_size
16879
16880 · Env Var: RCLONE_CHUNKER_CHUNK_SIZE
16881
16882 · Type: SizeSuffix
16883
16884 · Default: 2G
16885
16886 --chunker-hash-type
16887 Choose how chunker handles hash sums. All modes but "none" require
16888 metadata.
16889
16890 · Config: hash_type
16891
16892 · Env Var: RCLONE_CHUNKER_HASH_TYPE
16893
16894 · Type: string
16895
16896 · Default: "md5"
16897
16898 · Examples:
16899
16900 · "none"
16901
16902 · Pass any hash supported by wrapped remote for non-chunked files,
16903 return nothing otherwise
16904
16905 · "md5"
16906
16907 · MD5 for composite files
16908
16909 · "sha1"
16910
16911 · SHA1 for composite files
16912
16913 · "md5all"
16914
16915 · MD5 for all files
16916
16917 · "sha1all"
16918
16919 · SHA1 for all files
16920
16921 · "md5quick"
16922
16923 · Copying a file to chunker will request MD5 from the source fall‐
16924 ing back to SHA1 if unsupported
16925
16926 · "sha1quick"
16927
16928 · Similar to "md5quick" but prefers SHA1 over MD5
16929
16930 Advanced Options
16931 Here are the advanced options specific to chunker (Transparently
16932 chunk/split large files).
16933
16934 --chunker-name-format
16935 String format of chunk file names. The two placeholders are: base file
16936 name (*) and chunk number (#...). There must be one and only one as‐
16937 terisk and one or more consecutive hash characters. If chunk number
16938 has less digits than the number of hashes, it is left-padded by zeros.
16939 If there are more digits in the number, they are left as is. Possible
16940 chunk files are ignored if their name does not match given format.
16941
16942 · Config: name_format
16943
16944 · Env Var: RCLONE_CHUNKER_NAME_FORMAT
16945
16946 · Type: string
16947
16948 · Default: "*.rclone_chunk.###"
16949
16950 --chunker-start-from
16951 Minimum valid chunk number. Usually 0 or 1. By default chunk numbers
16952 start from 1.
16953
16954 · Config: start_from
16955
16956 · Env Var: RCLONE_CHUNKER_START_FROM
16957
16958 · Type: int
16959
16960 · Default: 1
16961
16962 --chunker-meta-format
16963 Format of the metadata object or "none". By default "simplejson".
16964 Metadata is a small JSON file named after the composite file.
16965
16966 · Config: meta_format
16967
16968 · Env Var: RCLONE_CHUNKER_META_FORMAT
16969
16970 · Type: string
16971
16972 · Default: "simplejson"
16973
16974 · Examples:
16975
16976 · "none"
16977
16978 · Do not use metadata files at all. Requires hash type "none".
16979
16980 · "simplejson"
16981
16982 · Simple JSON supports hash sums and chunk validation.
16983
16984 · It has the following fields: ver, size, nchunks, md5, sha1.
16985
16986 --chunker-fail-hard
16987 Choose how chunker should handle files with missing or invalid chunks.
16988
16989 · Config: fail_hard
16990
16991 · Env Var: RCLONE_CHUNKER_FAIL_HARD
16992
16993 · Type: bool
16994
16995 · Default: false
16996
16997 · Examples:
16998
16999 · "true"
17000
17001 · Report errors and abort current command.
17002
17003 · "false"
17004
17005 · Warn user, skip incomplete file and proceed.
17006
17007 Citrix ShareFile
17008 Citrix ShareFile (https://sharefile.com) is a secure file sharing and
17009 transfer service aimed as business.
17010
17011 The initial setup for Citrix ShareFile involves getting a token from
17012 Citrix ShareFile which you can in your browser. rclone config walks
17013 you through it.
17014
17015 Here is an example of how to make a remote called remote. First run:
17016
17017 rclone config
17018
17019 This will guide you through an interactive setup process:
17020
17021 No remotes found - make a new one
17022 n) New remote
17023 s) Set configuration password
17024 q) Quit config
17025 n/s/q> n
17026 name> remote
17027 Type of storage to configure.
17028 Enter a string value. Press Enter for the default ("").
17029 Choose a number from below, or type in your own value
17030 XX / Citrix Sharefile
17031 \ "sharefile"
17032 Storage> sharefile
17033 ** See help for sharefile backend at: https://rclone.org/sharefile/ **
17034
17035 ID of the root folder
17036
17037 Leave blank to access "Personal Folders". You can use one of the
17038 standard values here or any folder ID (long hex number ID).
17039 Enter a string value. Press Enter for the default ("").
17040 Choose a number from below, or type in your own value
17041 1 / Access the Personal Folders. (Default)
17042 \ ""
17043 2 / Access the Favorites folder.
17044 \ "favorites"
17045 3 / Access all the shared folders.
17046 \ "allshared"
17047 4 / Access all the individual connectors.
17048 \ "connectors"
17049 5 / Access the home, favorites, and shared folders as well as the connectors.
17050 \ "top"
17051 root_folder_id>
17052 Edit advanced config? (y/n)
17053 y) Yes
17054 n) No
17055 y/n> n
17056 Remote config
17057 Use auto config?
17058 * Say Y if not sure
17059 * Say N if you are working on a remote or headless machine
17060 y) Yes
17061 n) No
17062 y/n> y
17063 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=XXX
17064 Log in and authorize rclone for access
17065 Waiting for code...
17066 Got code
17067 --------------------
17068 [remote]
17069 type = sharefile
17070 endpoint = https://XXX.sharefile.com
17071 token = {"access_token":"XXX","token_type":"bearer","refresh_token":"XXX","expiry":"2019-09-30T19:41:45.878561877+01:00"}
17072 --------------------
17073 y) Yes this is OK
17074 e) Edit this remote
17075 d) Delete this remote
17076 y/e/d> y
17077
17078 See the remote setup docs (https://rclone.org/remote_setup/) for how to
17079 set it up on a machine with no Internet browser available.
17080
17081 Note that rclone runs a webserver on your local machine to collect the
17082 token as returned from Citrix ShareFile. This only runs from the mo‐
17083 ment it opens your browser to the moment you get back the verification
17084 code. This is on http://127.0.0.1:53682/ and this it may require you
17085 to unblock it temporarily if you are running a host firewall.
17086
17087 Once configured you can then use rclone like this,
17088
17089 List directories in top level of your ShareFile
17090
17091 rclone lsd remote:
17092
17093 List all the files in your ShareFile
17094
17095 rclone ls remote:
17096
17097 To copy a local directory to an ShareFile directory called backup
17098
17099 rclone copy /home/source remote:backup
17100
17101 Paths may be as deep as required, e.g. remote:directory/subdirectory.
17102
17103 Modified time and hashes
17104 ShareFile allows modification times to be set on objects accurate to 1
17105 second. These will be used to detect whether objects need syncing or
17106 not.
17107
17108 ShareFile supports MD5 type hashes, so you can use the --checksum flag.
17109
17110 Transfers
17111 For files above 128MB rclone will use a chunked transfer. Rclone will
17112 upload up to --transfers chunks at the same time (shared among all the
17113 multipart uploads). Chunks are buffered in memory and are normally
17114 64MB so increasing --transfers will increase memory use.
17115
17116 Limitations
17117 Note that ShareFile is case insensitive so you can't have a file called
17118 "Hello.doc" and one called "hello.doc".
17119
17120 ShareFile only supports filenames up to 256 characters in length.
17121
17122 Restricted filename characters
17123 In addition to the default restricted characters set
17124 (https://rclone.org/overview/#restricted-characters) the following
17125 characters are also replaced:
17126
17127 Character Value Replacement
17128 ────────────────────────────────
17129 \ 0x5C \
17130 * 0x2A *
17131 < 0x3C <
17132 > 0x3E >
17133 ? 0x3F ?
17134 : 0x3A :
17135 | 0x7C |
17136 " 0x22 "
17137
17138 File names can also not start or end with the following characters.
17139 These only get replaced if they are the first or last character in the
17140 name:
17141
17142 Character Value Replacement
17143 ────────────────────────────────
17144 SP 0x20 ␠
17145 . 0x2E .
17146
17147 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
17148 view/#invalid-utf8), as they can't be used in JSON strings.
17149
17150 Standard Options
17151 Here are the standard options specific to sharefile (Citrix Sharefile).
17152
17153 --sharefile-root-folder-id
17154 ID of the root folder
17155
17156 Leave blank to access "Personal Folders". You can use one of the stan‐
17157 dard values here or any folder ID (long hex number ID).
17158
17159 · Config: root_folder_id
17160
17161 · Env Var: RCLONE_SHAREFILE_ROOT_FOLDER_ID
17162
17163 · Type: string
17164
17165 · Default: ""
17166
17167 · Examples:
17168
17169 · ""
17170
17171 · Access the Personal Folders. (Default)
17172
17173 · "favorites"
17174
17175 · Access the Favorites folder.
17176
17177 · "allshared"
17178
17179 · Access all the shared folders.
17180
17181 · "connectors"
17182
17183 · Access all the individual connectors.
17184
17185 · "top"
17186
17187 · Access the home, favorites, and shared folders as well as the
17188 connectors.
17189
17190 Advanced Options
17191 Here are the advanced options specific to sharefile (Citrix Sharefile).
17192
17193 --sharefile-upload-cutoff
17194 Cutoff for switching to multipart upload.
17195
17196 · Config: upload_cutoff
17197
17198 · Env Var: RCLONE_SHAREFILE_UPLOAD_CUTOFF
17199
17200 · Type: SizeSuffix
17201
17202 · Default: 128M
17203
17204 --sharefile-chunk-size
17205 Upload chunk size. Must a power of 2 >= 256k.
17206
17207 Making this larger will improve performance, but note that each chunk
17208 is buffered in memory one per transfer.
17209
17210 Reducing this will reduce memory usage but decrease performance.
17211
17212 · Config: chunk_size
17213
17214 · Env Var: RCLONE_SHAREFILE_CHUNK_SIZE
17215
17216 · Type: SizeSuffix
17217
17218 · Default: 64M
17219
17220 --sharefile-endpoint
17221 Endpoint for API calls.
17222
17223 This is usually auto discovered as part of the oauth process, but can
17224 be set manually to something like: https://XXX.sharefile.com
17225
17226 · Config: endpoint
17227
17228 · Env Var: RCLONE_SHAREFILE_ENDPOINT
17229
17230 · Type: string
17231
17232 · Default: ""
17233
17234 --sharefile-encoding
17235 This sets the encoding for the backend.
17236
17237 See: the encoding section in the overview (https://rclone.org/over‐
17238 view/#encoding) for more info.
17239
17240 · Config: encoding
17241
17242 · Env Var: RCLONE_SHAREFILE_ENCODING
17243
17244 · Type: MultiEncoder
17245
17246 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
17247 Slash,Ctl,LeftSpace,LeftPeriod,RightSpace,RightPeriod,InvalidUtf8,Dot
17248
17249 Limitations
17250 rclone about is not supported by the Citrix ShareFile backend. Back‐
17251 ends without this capability cannot determine free space for an rclone
17252 mount or use policy mfs (most free space) as a member of an rclone
17253 union remote.
17254
17255 See List of backends that do not support rclone about
17256 (https://rclone.org/overview/#optional-features) See rclone about
17257 (https://rclone.org/commands/rclone_about/)
17258
17259 Crypt
17260 Rclone crypt remotes encrypt and decrypt other remotes.
17261
17262 A remote of type crypt does not access a storage system
17263 (https://rclone.org/overview/) directly, but instead wraps another re‐
17264 mote, which in turn accesses the storage system. This is similar to
17265 how alias (https://rclone.org/alias/), union
17266 (https://rclone.org/union/), chunker (https://rclone.org/chunker/) and
17267 a few others work. It makes the usage very flexible, as you can add a
17268 layer, in this case an encryption layer, on top of any other backend,
17269 even in multiple layers. Rclone's functionality can be used as with
17270 any other remote, for example you can mount (https://rclone.org/com‐
17271 mands/rclone_mount/) a crypt remote.
17272
17273 Accessing a storage system through a crypt remote realizes client-side
17274 encryption, which makes it safe to keep your data in a location you do
17275 not trust will not get compromised. When working against the crypt re‐
17276 mote, rclone will automatically encrypt (before uploading) and decrypt
17277 (after downloading) on your local system as needed on the fly, leaving
17278 the data encrypted at rest in the wrapped remote. If you access the
17279 storage system using an application other than rclone, or access the
17280 wrapped remote directly using rclone, there will not be any encryp‐
17281 tion/decryption: Downloading existing content will just give you the
17282 encrypted (scrambled) format, and anything you upload will not become
17283 encrypted.
17284
17285 The encryption is a secret-key encryption (also called symmetric key
17286 encryption) algorithm, where a password (or pass phrase) is used to
17287 generate real encryption key. The password can be supplied by user, or
17288 you may chose to let rclone generate one. It will be stored in the
17289 configuration file, in a lightly obscured form. If you are in an envi‐
17290 ronment where you are not able to keep your configuration secured, you
17291 should add configuration encryption (https://rclone.org/docs/#configu‐
17292 ration-encryption) as protection. As long as you have this configura‐
17293 tion file, you will be able to decrypt your data. Without the configu‐
17294 ration file, as long as you remember the password (or keep it in a safe
17295 place), you can re-create the configuration and gain access to the ex‐
17296 isting data. You may also configure a corresponding remote in a dif‐
17297 ferent installation to access the same data. See below for guidance to
17298 changing password.
17299
17300 Encryption uses cryptographic salt (https://en.wikipedia.org/wi‐
17301 ki/Salt_(cryptography)), to permute the encryption key so that the same
17302 string may be encrypted in different ways. When configuring the crypt
17303 remote it is optional to enter a salt, or to let rclone generate a
17304 unique salt. If omitted, rclone uses a built-in unique string. Nor‐
17305 mally in cryptography, the salt is stored together with the encrypted
17306 content, and do not have to be memorized by the user. This is not the
17307 case in rclone, because rclone does not store any additional informa‐
17308 tion on the remotes. Use of custom salt is effectively a second pass‐
17309 word that must be memorized.
17310
17311 File content encryption is performed using NaCl SecretBox
17312 (https://godoc.org/golang.org/x/crypto/nacl/secretbox), based on XSal‐
17313 sa20 cipher and Poly1305 for integrity. Names (file- and directory
17314 names) are also encrypted by default, but this has some implications
17315 and is therefore possible to turned off.
17316
17317 Configuration
17318 Here is an example of how to make a remote called secret.
17319
17320 To use crypt, first set up the underlying remote. Follow the rclone
17321 config instructions for the specific backend.
17322
17323 Before configuring the crypt remote, check the underlying remote is
17324 working. In this example the underlying remote is called remote. We
17325 will configure a path path within this remote to contain the encrypted
17326 content. Anything inside remote:path will be encrypted and anything
17327 outside will not.
17328
17329 Configure crypt using rclone config. In this example the crypt remote
17330 is called secret, to differentiate it from the underlying remote.
17331
17332 When you are done you can use the crypt remote named secret just as you
17333 would with any other remote, e.g. rclone copy D:\docs secret:\docs,
17334 and rclone will encrypt and decrypt as needed on the fly. If you ac‐
17335 cess the wrapped remote remote:path directly you will bypass the en‐
17336 cryption, and anything you read will be in encrypted form, and anything
17337 you write will be undencrypted. To avoid issues it is best to config‐
17338 ure a dedicated path for encrypted content, and access it exclusively
17339 through a crypt remote.
17340
17341 No remotes found - make a new one
17342 n) New remote
17343 s) Set configuration password
17344 q) Quit config
17345 n/s/q> n
17346 name> secret
17347 Type of storage to configure.
17348 Enter a string value. Press Enter for the default ("").
17349 Choose a number from below, or type in your own value
17350 [snip]
17351 XX / Encrypt/Decrypt a remote
17352 \ "crypt"
17353 [snip]
17354 Storage> crypt
17355 ** See help for crypt backend at: https://rclone.org/crypt/ **
17356
17357 Remote to encrypt/decrypt.
17358 Normally should contain a ':' and a path, eg "myremote:path/to/dir",
17359 "myremote:bucket" or maybe "myremote:" (not recommended).
17360 Enter a string value. Press Enter for the default ("").
17361 remote> remote:path
17362 How to encrypt the filenames.
17363 Enter a string value. Press Enter for the default ("standard").
17364 Choose a number from below, or type in your own value
17365 1 / Encrypt the filenames see the docs for the details.
17366 \ "standard"
17367 2 / Very simple filename obfuscation.
17368 \ "obfuscate"
17369 3 / Don't encrypt the file names. Adds a ".bin" extension only.
17370 \ "off"
17371 filename_encryption>
17372 Option to either encrypt directory names or leave them intact.
17373
17374 NB If filename_encryption is "off" then this option will do nothing.
17375 Enter a boolean value (true or false). Press Enter for the default ("true").
17376 Choose a number from below, or type in your own value
17377 1 / Encrypt directory names.
17378 \ "true"
17379 2 / Don't encrypt directory names, leave them intact.
17380 \ "false"
17381 directory_name_encryption>
17382 Password or pass phrase for encryption.
17383 y) Yes type in my own password
17384 g) Generate random password
17385 y/g> y
17386 Enter the password:
17387 password:
17388 Confirm the password:
17389 password:
17390 Password or pass phrase for salt. Optional but recommended.
17391 Should be different to the previous password.
17392 y) Yes type in my own password
17393 g) Generate random password
17394 n) No leave this optional password blank (default)
17395 y/g/n> g
17396 Password strength in bits.
17397 64 is just about memorable
17398 128 is secure
17399 1024 is the maximum
17400 Bits> 128
17401 Your password is: JAsJvRcgR-_veXNfy_sGmQ
17402 Use this password? Please note that an obscured version of this
17403 password (and not the password itself) will be stored under your
17404 configuration file, so keep this generated password in a safe place.
17405 y) Yes (default)
17406 n) No
17407 y/n>
17408 Edit advanced config? (y/n)
17409 y) Yes
17410 n) No (default)
17411 y/n>
17412 Remote config
17413 --------------------
17414 [secret]
17415 type = crypt
17416 remote = remote:path
17417 password = *** ENCRYPTED ***
17418 password2 = *** ENCRYPTED ***
17419 --------------------
17420 y) Yes this is OK (default)
17421 e) Edit this remote
17422 d) Delete this remote
17423 y/e/d>
17424
17425 Important The crypt password stored in rclone.conf is lightly obscured.
17426 That only protects it from cursory inspection. It is not secure unless
17427 configuration encryption (https://rclone.org/docs/#configuration-en‐
17428 cryption) of rclone.conf is specified.
17429
17430 A long passphrase is recommended, or rclone config can generate a ran‐
17431 dom one.
17432
17433 The obscured password is created using AES-CTR with a static key. The
17434 salt is stored verbatim at the beginning of the obscured password.
17435 This static key is shared between all versions of rclone.
17436
17437 If you reconfigure rclone with the same passwords/passphrases elsewhere
17438 it will be compatible, but the obscured version will be different due
17439 to the different salt.
17440
17441 Rclone does not encrypt
17442
17443 · file length - this can be calculated within 16 bytes
17444
17445 · modification time - used for syncing
17446
17447 Specifying the remote
17448 When configuring the remote to encrypt/decrypt, you may specify any
17449 string that rclone accepts as a source/destination of other commands.
17450
17451 The primary use case is to specify the path into an already configured
17452 remote (e.g. remote:path/to/dir or remote:bucket), such that data in a
17453 remote untrusted location can be stored encrypted.
17454
17455 You may also specify a local filesystem path, such as /path/to/dir on
17456 Linux, C:\path\to\dir on Windows. By creating a crypt remote pointing
17457 to such a local filesystem path, you can use rclone as a utility for
17458 pure local file encryption, for example to keep encrypted files on a
17459 removable USB drive.
17460
17461 Note: A string which do not contain a : will by rclone be treated as a
17462 relative path in the local filesystem. For example, if you enter the
17463 name remote without the trailing :, it will be treated as a subdirecto‐
17464 ry of the current directory with name "remote".
17465
17466 If a path remote:path/to/dir is specified, rclone stores encrypted
17467 files in path/to/dir on the remote. With file name encryption, files
17468 saved to secret:subdir/subfile are stored in the unencrypted path
17469 path/to/dir but the subdir/subpath element is encrypted.
17470
17471 The path you specify does not have to exist, rclone will create it when
17472 needed.
17473
17474 If you intend to use the wrapped remote both directly for keeping unen‐
17475 crypted content, as well as through a crypt remote for encrypted con‐
17476 tent, it is recommended to point the crypt remote to a separate direc‐
17477 tory within the wrapped remote. If you use a bucket based storage sys‐
17478 tem (e.g. Swift, S3, Google Compute Storage, B2, Hubic) it is general‐
17479 ly advisable to wrap the crypt remote around a specific bucket
17480 (s3:bucket). If wrapping around the entire root of the storage (s3:),
17481 and use the optional file name encryption, rclone will encrypt the
17482 bucket name.
17483
17484 Changing password
17485 Should the password, or the configuration file containing a lightly ob‐
17486 scured form of the password, be compromised, you need to re-encrypt
17487 your data with a new password. Since rclone uses secret-key encryp‐
17488 tion, where the encryption key is generated directly from the password
17489 kept on the client, it is not possible to change the password/key of
17490 already encrypted content. Just changing the password configured for
17491 an existing crypt remote means you will no longer able to decrypt any
17492 of the previously encrypted content. The only possibility is to re-up‐
17493 load everything via a crypt remote configured with your new password.
17494
17495 Depending on the size of your data, your bandwith, storage quota etc,
17496 there are different approaches you can take: - If you have everything
17497 in a different location, for example on your local system, you could
17498 remove all of the prior encrypted files, change the password for your
17499 configured crypt remote (or delete and re-create the crypt configura‐
17500 tion), and then re-upload everything from the alternative location. -
17501 If you have enough space on the storage system you can create a new
17502 crypt remote pointing to a separate directory on the same backend, and
17503 then use rclone to copy everything from the original crypt remote to
17504 the new, effectively decrypting everything on the fly using the old
17505 password and re-encrypting using the new password. When done, delete
17506 the original crypt remote directory and finally the rclone crypt con‐
17507 figuration with the old password. All data will be streamed from the
17508 storage system and back, so you will get half the bandwith and be
17509 charged twice if you have upload and download quota on the storage sys‐
17510 tem.
17511
17512 Note: A security problem related to the random password generator was
17513 fixed in rclone version 1.53.3 (released 2020-11-19). Passwords gener‐
17514 ated by rclone config in version 1.49.0 (released 2019-08-26) to 1.53.2
17515 (released 2020-10-26) are not considered secure and should be changed.
17516 If you made up your own password, or used rclone version older than
17517 1.49.0 or newer than 1.53.2 to generate it, you are not affected by
17518 this issue. See issue #4783 (https://github.com/rclone/rclone/is‐
17519 sues/4783) for more details, and a tool you can use to check if you are
17520 affected.
17521
17522 Example
17523 Create the following file structure using "standard" file name encryp‐
17524 tion.
17525
17526 plaintext/
17527 ├── file0.txt
17528 ├── file1.txt
17529 └── subdir
17530 ├── file2.txt
17531 ├── file3.txt
17532 └── subsubdir
17533 └── file4.txt
17534
17535 Copy these to the remote, and list them
17536
17537 $ rclone -q copy plaintext secret:
17538 $ rclone -q ls secret:
17539 7 file1.txt
17540 6 file0.txt
17541 8 subdir/file2.txt
17542 10 subdir/subsubdir/file4.txt
17543 9 subdir/file3.txt
17544
17545 The crypt remote looks like
17546
17547 $ rclone -q ls remote:path
17548 55 hagjclgavj2mbiqm6u6cnjjqcg
17549 54 v05749mltvv1tf4onltun46gls
17550 57 86vhrsv86mpbtd3a0akjuqslj8/dlj7fkq4kdq72emafg7a7s41uo
17551 58 86vhrsv86mpbtd3a0akjuqslj8/7uu829995du6o42n32otfhjqp4/b9pausrfansjth5ob3jkdqd4lc
17552 56 86vhrsv86mpbtd3a0akjuqslj8/8njh1sk437gttmep3p70g81aps
17553
17554 The directory structure is preserved
17555
17556 $ rclone -q ls secret:subdir
17557 8 file2.txt
17558 9 file3.txt
17559 10 subsubdir/file4.txt
17560
17561 Without file name encryption .bin extensions are added to underlying
17562 names. This prevents the cloud provider attempting to interpret file
17563 content.
17564
17565 $ rclone -q ls remote:path
17566 54 file0.txt.bin
17567 57 subdir/file3.txt.bin
17568 56 subdir/file2.txt.bin
17569 58 subdir/subsubdir/file4.txt.bin
17570 55 file1.txt.bin
17571
17572 File name encryption modes
17573 Off
17574
17575 · doesn't hide file names or directory structure
17576
17577 · allows for longer file names (~246 characters)
17578
17579 · can use sub paths and copy single files
17580
17581 Standard
17582
17583 · file names encrypted
17584
17585 · file names can't be as long (~143 characters)
17586
17587 · can use sub paths and copy single files
17588
17589 · directory structure visible
17590
17591 · identical files names will have identical uploaded names
17592
17593 · can use shortcuts to shorten the directory recursion
17594
17595 Obfuscation
17596
17597 This is a simple "rotate" of the filename, with each file having a rot
17598 distance based on the filename. Rclone stores the distance at the be‐
17599 ginning of the filename. A file called "hello" may become "53.jgnnq".
17600
17601 Obfuscation is not a strong encryption of filenames, but hinders auto‐
17602 mated scanning tools picking up on filename patterns. It is an inter‐
17603 mediate between "off" and "standard" which allows for longer path seg‐
17604 ment names.
17605
17606 There is a possibility with some unicode based filenames that the ob‐
17607 fuscation is weak and may map lower case characters to upper case
17608 equivalents.
17609
17610 Obfuscation cannot be relied upon for strong protection.
17611
17612 · file names very lightly obfuscated
17613
17614 · file names can be longer than standard encryption
17615
17616 · can use sub paths and copy single files
17617
17618 · directory structure visible
17619
17620 · identical files names will have identical uploaded names
17621
17622 Cloud storage systems have limits on file name length and total path
17623 length which rclone is more likely to breach using "Standard" file name
17624 encryption. Where file names are less thn 156 characters in length is‐
17625 sues should not be encountered, irrespective of cloud storage provider.
17626
17627 An alternative, future rclone file name encryption mode may tolerate
17628 backend provider path length limits.
17629
17630 Directory name encryption
17631 Crypt offers the option of encrypting dir names or leaving them intact.
17632 There are two options:
17633
17634 True
17635
17636 Encrypts the whole file path including directory names Example:
17637 1/12/123.txt is encrypted to
17638 p0e52nreeaj0a5ea7s64m4j72s/l42g6771hnv3an9cgc8cr2n1ng/qgm4avr35m5loi1th53ato71v0
17639
17640 False
17641
17642 Only encrypts file names, skips directory names Example: 1/12/123.txt
17643 is encrypted to 1/12/qgm4avr35m5loi1th53ato71v0
17644
17645 Modified time and hashes
17646 Crypt stores modification times using the underlying remote so support
17647 depends on that.
17648
17649 Hashes are not stored for crypt. However the data integrity is pro‐
17650 tected by an extremely strong crypto authenticator.
17651
17652 Use the rclone cryptcheck command to check the integrity of a crypted
17653 remote instead of rclone check which can't check the checksums proper‐
17654 ly.
17655
17656 Standard Options
17657 Here are the standard options specific to crypt (Encrypt/Decrypt a re‐
17658 mote).
17659
17660 --crypt-remote
17661 Remote to encrypt/decrypt. Normally should contain a ':' and a path,
17662 e.g. "myremote:path/to/dir", "myremote:bucket" or maybe "myremote:"
17663 (not recommended).
17664
17665 · Config: remote
17666
17667 · Env Var: RCLONE_CRYPT_REMOTE
17668
17669 · Type: string
17670
17671 · Default: ""
17672
17673 --crypt-filename-encryption
17674 How to encrypt the filenames.
17675
17676 · Config: filename_encryption
17677
17678 · Env Var: RCLONE_CRYPT_FILENAME_ENCRYPTION
17679
17680 · Type: string
17681
17682 · Default: "standard"
17683
17684 · Examples:
17685
17686 · "standard"
17687
17688 · Encrypt the filenames see the docs for the details.
17689
17690 · "obfuscate"
17691
17692 · Very simple filename obfuscation.
17693
17694 · "off"
17695
17696 · Don't encrypt the file names. Adds a ".bin" extension only.
17697
17698 --crypt-directory-name-encryption
17699 Option to either encrypt directory names or leave them intact.
17700
17701 NB If filename_encryption is "off" then this option will do nothing.
17702
17703 · Config: directory_name_encryption
17704
17705 · Env Var: RCLONE_CRYPT_DIRECTORY_NAME_ENCRYPTION
17706
17707 · Type: bool
17708
17709 · Default: true
17710
17711 · Examples:
17712
17713 · "true"
17714
17715 · Encrypt directory names.
17716
17717 · "false"
17718
17719 · Don't encrypt directory names, leave them intact.
17720
17721 --crypt-password
17722 Password or pass phrase for encryption.
17723
17724 NB Input to this must be obscured - see rclone obscure
17725 (https://rclone.org/commands/rclone_obscure/).
17726
17727 · Config: password
17728
17729 · Env Var: RCLONE_CRYPT_PASSWORD
17730
17731 · Type: string
17732
17733 · Default: ""
17734
17735 --crypt-password2
17736 Password or pass phrase for salt. Optional but recommended. Should be
17737 different to the previous password.
17738
17739 NB Input to this must be obscured - see rclone obscure
17740 (https://rclone.org/commands/rclone_obscure/).
17741
17742 · Config: password2
17743
17744 · Env Var: RCLONE_CRYPT_PASSWORD2
17745
17746 · Type: string
17747
17748 · Default: ""
17749
17750 Advanced Options
17751 Here are the advanced options specific to crypt (Encrypt/Decrypt a re‐
17752 mote).
17753
17754 --crypt-server-side-across-configs
17755 Allow server-side operations (e.g. copy) to work across different
17756 crypt configs.
17757
17758 Normally this option is not what you want, but if you have two crypts
17759 pointing to the same backend you can use it.
17760
17761 This can be used, for example, to change file name encryption type
17762 without re-uploading all the data. Just make two crypt backends point‐
17763 ing to two different directories with the single changed parameter and
17764 use rclone move to move the files between the crypt remotes.
17765
17766 · Config: server_side_across_configs
17767
17768 · Env Var: RCLONE_CRYPT_SERVER_SIDE_ACROSS_CONFIGS
17769
17770 · Type: bool
17771
17772 · Default: false
17773
17774 --crypt-show-mapping
17775 For all files listed show how the names encrypt.
17776
17777 If this flag is set then for each file that the remote is asked to
17778 list, it will log (at level INFO) a line stating the decrypted file
17779 name and the encrypted file name.
17780
17781 This is so you can work out which encrypted names are which decrypted
17782 names just in case you need to do something with the encrypted file
17783 names, or for debugging purposes.
17784
17785 · Config: show_mapping
17786
17787 · Env Var: RCLONE_CRYPT_SHOW_MAPPING
17788
17789 · Type: bool
17790
17791 · Default: false
17792
17793 Backend commands
17794 Here are the commands specific to the crypt backend.
17795
17796 Run them with
17797
17798 rclone backend COMMAND remote:
17799
17800 The help below will explain what arguments each command takes.
17801
17802 See the "rclone backend" command (https://rclone.org/com‐
17803 mands/rclone_backend/) for more info on how to pass options and argu‐
17804 ments.
17805
17806 These can be run on a running backend using the rc command backend/com‐
17807 mand (https://rclone.org/rc/#backend/command).
17808
17809 encode
17810 Encode the given filename(s)
17811
17812 rclone backend encode remote: [options] [<arguments>+]
17813
17814 This encodes the filenames given as arguments returning a list of
17815 strings of the encoded results.
17816
17817 Usage Example:
17818
17819 rclone backend encode crypt: file1 [file2...]
17820 rclone rc backend/command command=encode fs=crypt: file1 [file2...]
17821
17822 decode
17823 Decode the given filename(s)
17824
17825 rclone backend decode remote: [options] [<arguments>+]
17826
17827 This decodes the filenames given as arguments returning a list of
17828 strings of the decoded results. It will return an error if any of the
17829 inputs are invalid.
17830
17831 Usage Example:
17832
17833 rclone backend decode crypt: encryptedfile1 [encryptedfile2...]
17834 rclone rc backend/command command=decode fs=crypt: encryptedfile1 [encryptedfile2...]
17835
17836 Backing up a crypted remote
17837 If you wish to backup a crypted remote, it is recommended that you use
17838 rclone sync on the encrypted files, and make sure the passwords are the
17839 same in the new encrypted remote.
17840
17841 This will have the following advantages
17842
17843 · rclone sync will check the checksums while copying
17844
17845 · you can use rclone check between the encrypted remotes
17846
17847 · you don't decrypt and encrypt unnecessarily
17848
17849 For example, let's say you have your original remote at remote: with
17850 the encrypted version at eremote: with path remote:crypt. You would
17851 then set up the new remote remote2: and then the encrypted version ere‐
17852 mote2: with path remote2:crypt using the same passwords as eremote:.
17853
17854 To sync the two remotes you would do
17855
17856 rclone sync -i remote:crypt remote2:crypt
17857
17858 And to check the integrity you would do
17859
17860 rclone check remote:crypt remote2:crypt
17861
17862 File formats
17863 File encryption
17864 Files are encrypted 1:1 source file to destination object. The file
17865 has a header and is divided into chunks.
17866
17867 Header
17868 · 8 bytes magic string RCLONE\x00\x00
17869
17870 · 24 bytes Nonce (IV)
17871
17872 The initial nonce is generated from the operating systems crypto strong
17873 random number generator. The nonce is incremented for each chunk read
17874 making sure each nonce is unique for each block written. The chance of
17875 a nonce being re-used is minuscule. If you wrote an exabyte of data
17876 (10¹⁸ bytes) you would have a probability of approximately 2×10⁻³² of
17877 re-using a nonce.
17878
17879 Chunk
17880 Each chunk will contain 64kB of data, except for the last one which may
17881 have less data. The data chunk is in standard NaCl SecretBox format.
17882 SecretBox uses XSalsa20 and Poly1305 to encrypt and authenticate mes‐
17883 sages.
17884
17885 Each chunk contains:
17886
17887 · 16 Bytes of Poly1305 authenticator
17888
17889 · 1 - 65536 bytes XSalsa20 encrypted data
17890
17891 64k chunk size was chosen as the best performing chunk size (the au‐
17892 thenticator takes too much time below this and the performance drops
17893 off due to cache effects above this). Note that these chunks are
17894 buffered in memory so they can't be too big.
17895
17896 This uses a 32 byte (256 bit key) key derived from the user password.
17897
17898 Examples
17899 1 byte file will encrypt to
17900
17901 · 32 bytes header
17902
17903 · 17 bytes data chunk
17904
17905 49 bytes total
17906
17907 1MB (1048576 bytes) file will encrypt to
17908
17909 · 32 bytes header
17910
17911 · 16 chunks of 65568 bytes
17912
17913 1049120 bytes total (a 0.05% overhead). This is the overhead for big
17914 files.
17915
17916 Name encryption
17917 File names are encrypted segment by segment - the path is broken up in‐
17918 to / separated strings and these are encrypted individually.
17919
17920 File segments are padded using PKCS#7 to a multiple of 16 bytes before
17921 encryption.
17922
17923 They are then encrypted with EME using AES with 256 bit key. EME
17924 (ECB-Mix-ECB) is a wide-block encryption mode presented in the 2003 pa‐
17925 per "A Parallelizable Enciphering Mode" by Halevi and Rogaway.
17926
17927 This makes for deterministic encryption which is what we want - the
17928 same filename must encrypt to the same thing otherwise we can't find it
17929 on the cloud storage system.
17930
17931 This means that
17932
17933 · filenames with the same name will encrypt the same
17934
17935 · filenames which start the same won't have a common prefix
17936
17937 This uses a 32 byte key (256 bits) and a 16 byte (128 bits) IV both of
17938 which are derived from the user password.
17939
17940 After encryption they are written out using a modified version of stan‐
17941 dard base32 encoding as described in RFC4648. The standard encoding is
17942 modified in two ways:
17943
17944 · it becomes lower case (no-one likes upper case filenames!)
17945
17946 · we strip the padding character =
17947
17948 base32 is used rather than the more efficient base64 so rclone can be
17949 used on case insensitive remotes (e.g. Windows, Amazon Drive).
17950
17951 Key derivation
17952 Rclone uses scrypt with parameters N=16384, r=8, p=1 with an optional
17953 user supplied salt (password2) to derive the 32+32+16 = 80 bytes of key
17954 material required. If the user doesn't supply a salt then rclone uses
17955 an internal one.
17956
17957 scrypt makes it impractical to mount a dictionary attack on rclone en‐
17958 crypted data. For full protection against this you should always use a
17959 salt.
17960
17961 SEE ALSO
17962 · rclone cryptdecode (https://rclone.org/commands/rclone_cryptdecode/)
17963 - Show forward/reverse mapping of encrypted filenames
17964
17965 Compress (Experimental)
17966 Warning
17967 This remote is currently experimental. Things may break and data may
17968 be lost. Anything you do with this remote is at your own risk. Please
17969 understand the risks associated with using experimental code and don't
17970 use this remote in critical applications.
17971
17972 The Compress remote adds compression to another remote. It is best
17973 used with remotes containing many large compressible files.
17974
17975 To use this remote, all you need to do is specify another remote and a
17976 compression mode to use:
17977
17978 Current remotes:
17979
17980 Name Type
17981 ==== ====
17982 remote_to_press sometype
17983
17984 e) Edit existing remote
17985 $ rclone config
17986 n) New remote
17987 d) Delete remote
17988 r) Rename remote
17989 c) Copy remote
17990 s) Set configuration password
17991 q) Quit config
17992 e/n/d/r/c/s/q> n
17993 name> compress
17994 ...
17995 8 / Compress a remote
17996 \ "compress"
17997 ...
17998 Storage> compress
17999 ** See help for compress backend at: https://rclone.org/compress/ **
18000
18001 Remote to compress.
18002 Enter a string value. Press Enter for the default ("").
18003 remote> remote_to_press:subdir
18004 Compression mode.
18005 Enter a string value. Press Enter for the default ("gzip").
18006 Choose a number from below, or type in your own value
18007 1 / Gzip compression balanced for speed and compression strength.
18008 \ "gzip"
18009 compression_mode> gzip
18010 Edit advanced config? (y/n)
18011 y) Yes
18012 n) No (default)
18013 y/n> n
18014 Remote config
18015 --------------------
18016 [compress]
18017 type = compress
18018 remote = remote_to_press:subdir
18019 compression_mode = gzip
18020 --------------------
18021 y) Yes this is OK (default)
18022 e) Edit this remote
18023 d) Delete this remote
18024 y/e/d> y
18025
18026 Compression Modes
18027 Currently only gzip compression is supported, it provides a decent bal‐
18028 ance between speed and strength and is well supported by other applica‐
18029 tion. Compression strength can further be configured via an advanced
18030 setting where 0 is no compression and 9 is strongest compression.
18031
18032 Filetype
18033 If you open a remote wrapped by press, you will see that there are many
18034 files with an extension corresponding to the compression algorithm you
18035 chose. These files are standard files that can be opened by various
18036 archive programs, but they have some hidden metadata that allows them
18037 to be used by rclone. While you may download and decompress these
18038 files at will, do not manually delete or rename files. Files without
18039 correct metadata files will not be recognized by rclone.
18040
18041 File names
18042 The compressed files will be named *.###########.gz where * is the base
18043 file and the # part is base64 encoded size of the uncompressed file.
18044 The file names should not be changed by anything other than the rclone
18045 compression backend.
18046
18047 Standard Options
18048 Here are the standard options specific to compress (Compress a remote).
18049
18050 --compress-remote
18051 Remote to compress.
18052
18053 · Config: remote
18054
18055 · Env Var: RCLONE_COMPRESS_REMOTE
18056
18057 · Type: string
18058
18059 · Default: ""
18060
18061 --compress-mode
18062 Compression mode.
18063
18064 · Config: mode
18065
18066 · Env Var: RCLONE_COMPRESS_MODE
18067
18068 · Type: string
18069
18070 · Default: "gzip"
18071
18072 · Examples:
18073
18074 · "gzip"
18075
18076 · Standard gzip compression with fastest parameters.
18077
18078 Advanced Options
18079 Here are the advanced options specific to compress (Compress a remote).
18080
18081 --compress-level
18082 GZIP compression level (-2 to 9).
18083
18084 Generally -1 (default, equivalent to 5) is recommended.
18085 Levels 1 to 9 increase compressiong at the cost of speed.. Going past 6
18086 generally offers very little return.
18087
18088 Level -2 uses Huffmann encoding only. Only use if you now what you
18089 are doing
18090 Level 0 turns off compression.
18091
18092 · Config: level
18093
18094 · Env Var: RCLONE_COMPRESS_LEVEL
18095
18096 · Type: int
18097
18098 · Default: -1
18099
18100 --compress-ram-cache-limit
18101 Some remotes don't allow the upload of files with unknown size. In
18102 this case the compressed file will need to be cached to determine it's
18103 size.
18104
18105 Files smaller than this limit will be cached in RAM, file larger than
18106 this limit will be cached on disk
18107
18108 · Config: ram_cache_limit
18109
18110 · Env Var: RCLONE_COMPRESS_RAM_CACHE_LIMIT
18111
18112 · Type: SizeSuffix
18113
18114 · Default: 20M
18115
18116 Dropbox
18117 Paths are specified as remote:path
18118
18119 Dropbox paths may be as deep as required, e.g. remote:directory/subdi‐
18120 rectory.
18121
18122 The initial setup for dropbox involves getting a token from Dropbox
18123 which you need to do in your browser. rclone config walks you through
18124 it.
18125
18126 Here is an example of how to make a remote called remote. First run:
18127
18128 rclone config
18129
18130 This will guide you through an interactive setup process:
18131
18132 n) New remote
18133 d) Delete remote
18134 q) Quit config
18135 e/n/d/q> n
18136 name> remote
18137 Type of storage to configure.
18138 Choose a number from below, or type in your own value
18139 [snip]
18140 XX / Dropbox
18141 \ "dropbox"
18142 [snip]
18143 Storage> dropbox
18144 Dropbox App Key - leave blank normally.
18145 app_key>
18146 Dropbox App Secret - leave blank normally.
18147 app_secret>
18148 Remote config
18149 Please visit:
18150 https://www.dropbox.com/1/oauth2/authorize?client_id=XXXXXXXXXXXXXXX&response_type=code
18151 Enter the code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXXXXXXXX
18152 --------------------
18153 [remote]
18154 app_key =
18155 app_secret =
18156 token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
18157 --------------------
18158 y) Yes this is OK
18159 e) Edit this remote
18160 d) Delete this remote
18161 y/e/d> y
18162
18163 You can then use it like this,
18164
18165 List directories in top level of your dropbox
18166
18167 rclone lsd remote:
18168
18169 List all the files in your dropbox
18170
18171 rclone ls remote:
18172
18173 To copy a local directory to a dropbox directory called backup
18174
18175 rclone copy /home/source remote:backup
18176
18177 Dropbox for business
18178 Rclone supports Dropbox for business and Team Folders.
18179
18180 When using Dropbox for business remote: and remote:path/to/file will
18181 refer to your personal folder.
18182
18183 If you wish to see Team Folders you must use a leading / in the path,
18184 so rclone lsd remote:/ will refer to the root and show you all Team
18185 Folders and your User Folder.
18186
18187 You can then use team folders like this remote:/TeamFolder and re‐
18188 mote:/TeamFolder/path/to/file.
18189
18190 A leading / for a Dropbox personal account will do nothing, but it will
18191 take an extra HTTP transaction so it should be avoided.
18192
18193 Modified time and Hashes
18194 Dropbox supports modified times, but the only way to set a modification
18195 time is to re-upload the file.
18196
18197 This means that if you uploaded your data with an older version of
18198 rclone which didn't support the v2 API and modified times, rclone will
18199 decide to upload all your old data to fix the modification times. If
18200 you don't want this to happen use --size-only or --checksum flag to
18201 stop it.
18202
18203 Dropbox supports its own hash type (https://www.dropbox.com/develop‐
18204 ers/reference/content-hash) which is checked for all transfers.
18205
18206 Restricted filename characters
18207 Character Value Replacement
18208 ────────────────────────────────
18209 NUL 0x00 ␀
18210 / 0x2F /
18211 DEL 0x7F ␡
18212 \ 0x5C \
18213
18214 File names can also not end with the following characters. These only
18215 get replaced if they are the last character in the name:
18216
18217 Character Value Replacement
18218 ────────────────────────────────
18219 SP 0x20 ␠
18220
18221 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
18222 view/#invalid-utf8), as they can't be used in JSON strings.
18223
18224 Standard Options
18225 Here are the standard options specific to dropbox (Dropbox).
18226
18227 --dropbox-client-id
18228 OAuth Client Id Leave blank normally.
18229
18230 · Config: client_id
18231
18232 · Env Var: RCLONE_DROPBOX_CLIENT_ID
18233
18234 · Type: string
18235
18236 · Default: ""
18237
18238 --dropbox-client-secret
18239 OAuth Client Secret Leave blank normally.
18240
18241 · Config: client_secret
18242
18243 · Env Var: RCLONE_DROPBOX_CLIENT_SECRET
18244
18245 · Type: string
18246
18247 · Default: ""
18248
18249 Advanced Options
18250 Here are the advanced options specific to dropbox (Dropbox).
18251
18252 --dropbox-token
18253 OAuth Access Token as a JSON blob.
18254
18255 · Config: token
18256
18257 · Env Var: RCLONE_DROPBOX_TOKEN
18258
18259 · Type: string
18260
18261 · Default: ""
18262
18263 --dropbox-auth-url
18264 Auth server URL. Leave blank to use the provider defaults.
18265
18266 · Config: auth_url
18267
18268 · Env Var: RCLONE_DROPBOX_AUTH_URL
18269
18270 · Type: string
18271
18272 · Default: ""
18273
18274 --dropbox-token-url
18275 Token server url. Leave blank to use the provider defaults.
18276
18277 · Config: token_url
18278
18279 · Env Var: RCLONE_DROPBOX_TOKEN_URL
18280
18281 · Type: string
18282
18283 · Default: ""
18284
18285 --dropbox-chunk-size
18286 Upload chunk size. (< 150M).
18287
18288 Any files larger than this will be uploaded in chunks of this size.
18289
18290 Note that chunks are buffered in memory (one at a time) so rclone can
18291 deal with retries. Setting this larger will increase the speed slight‐
18292 ly (at most 10% for 128MB in tests) at the cost of using more memory.
18293 It can be set smaller if you are tight on memory.
18294
18295 · Config: chunk_size
18296
18297 · Env Var: RCLONE_DROPBOX_CHUNK_SIZE
18298
18299 · Type: SizeSuffix
18300
18301 · Default: 48M
18302
18303 --dropbox-impersonate
18304 Impersonate this user when using a business account.
18305
18306 · Config: impersonate
18307
18308 · Env Var: RCLONE_DROPBOX_IMPERSONATE
18309
18310 · Type: string
18311
18312 · Default: ""
18313
18314 --dropbox-shared-files
18315 Instructs rclone to work on individual shared files.
18316
18317 In this mode rclone's features are extremely limited - only list (ls,
18318 lsl, etc.) operations and read operations (e.g. downloading) are sup‐
18319 ported in this mode. All other operations will be disabled.
18320
18321 · Config: shared_files
18322
18323 · Env Var: RCLONE_DROPBOX_SHARED_FILES
18324
18325 · Type: bool
18326
18327 · Default: false
18328
18329 --dropbox-shared-folders
18330 Instructs rclone to work on shared folders.
18331
18332 When this flag is used with no path only the List operation is support‐
18333 ed and all available shared folders will be listed. If you specify a
18334 path the first part will be interpreted as the name of shared folder.
18335 Rclone will then try to mount this shared to the root namespace. On
18336 success shared folder rclone proceeds normally. The shared folder is
18337 now pretty much a normal folder and all normal operations are support‐
18338 ed.
18339
18340 Note that we don't unmount the shared folder afterwards so the --drop‐
18341 box-shared-folders can be omitted after the first use of a particular
18342 shared folder.
18343
18344 · Config: shared_folders
18345
18346 · Env Var: RCLONE_DROPBOX_SHARED_FOLDERS
18347
18348 · Type: bool
18349
18350 · Default: false
18351
18352 --dropbox-encoding
18353 This sets the encoding for the backend.
18354
18355 See: the encoding section in the overview (https://rclone.org/over‐
18356 view/#encoding) for more info.
18357
18358 · Config: encoding
18359
18360 · Env Var: RCLONE_DROPBOX_ENCODING
18361
18362 · Type: MultiEncoder
18363
18364 · Default: Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot
18365
18366 Limitations
18367 Note that Dropbox is case insensitive so you can't have a file called
18368 "Hello.doc" and one called "hello.doc".
18369
18370 There are some file names such as thumbs.db which Dropbox can't store.
18371 There is a full list of them in the "Ignored Files" section of this
18372 document (https://www.dropbox.com/en/help/145). Rclone will issue an
18373 error message File name disallowed - not uploading if it attempts to
18374 upload one of those file names, but the sync won't fail.
18375
18376 Some errors may occur if you try to sync copyright-protected files be‐
18377 cause Dropbox has its own copyright detector
18378 (https://techcrunch.com/2014/03/30/how-dropbox-knows-when-youre-shar‐
18379 ing-copyrighted-stuff-without-actually-looking-at-your-stuff/) that
18380 prevents this sort of file being downloaded. This will return the er‐
18381 ror ERROR : /path/to/your/file: Failed to copy: failed to open source
18382 object: path/restricted_content/.
18383
18384 If you have more than 10,000 files in a directory then rclone purge
18385 dropbox:dir will return the error Failed to purge: There are too many
18386 files involved in this operation. As a work-around do an rclone delete
18387 dropbox:dir followed by an rclone rmdir dropbox:dir.
18388
18389 Get your own Dropbox App ID
18390 When you use rclone with Dropbox in its default configuration you are
18391 using rclone's App ID. This is shared between all the rclone users.
18392
18393 Here is how to create your own Dropbox App ID for rclone:
18394
18395 1. Log into the Dropbox App console (https://www.dropbox.com/develop‐
18396 ers/apps/create) with your Dropbox Account (It need not to be the
18397 same account as the Dropbox you want to access)
18398
18399 2. Choose an API => Usually this should be Dropbox API
18400
18401 3. Choose the type of access you want to use => Full Dropbox or App
18402 Folder
18403
18404 4. Name your App. The app name is global, so you can't use rclone for
18405 example
18406
18407 5. Click the button Create App
18408
18409 6. Fill Redirect URIs as http://localhost:53682/
18410
18411 7. Find the App key and App secret Use these values in rclone config to
18412 add a new remote or edit an existing remote.
18413
18414 Enterprise File Fabric
18415 This backend supports Storage Made Easy's Enterprise File Fabric™
18416 (https://storagemadeeasy.com/about/) which provides a software solution
18417 to integrate and unify File and Object Storage accessible through a
18418 global file system.
18419
18420 The initial setup for the Enterprise File Fabric backend involves get‐
18421 ting a token from the the Enterprise File Fabric which you need to do
18422 in your browser. rclone config walks you through it.
18423
18424 Here is an example of how to make a remote called remote. First run:
18425
18426 rclone config
18427
18428 This will guide you through an interactive setup process:
18429
18430 No remotes found - make a new one
18431 n) New remote
18432 s) Set configuration password
18433 q) Quit config
18434 n/s/q> n
18435 name> remote
18436 Type of storage to configure.
18437 Enter a string value. Press Enter for the default ("").
18438 Choose a number from below, or type in your own value
18439 [snip]
18440 XX / Enterprise File Fabric
18441 \ "filefabric"
18442 [snip]
18443 Storage> filefabric
18444 ** See help for filefabric backend at: https://rclone.org/filefabric/ **
18445
18446 URL of the Enterprise File Fabric to connect to
18447 Enter a string value. Press Enter for the default ("").
18448 Choose a number from below, or type in your own value
18449 1 / Storage Made Easy US
18450 \ "https://storagemadeeasy.com"
18451 2 / Storage Made Easy EU
18452 \ "https://eu.storagemadeeasy.com"
18453 3 / Connect to your Enterprise File Fabric
18454 \ "https://yourfabric.smestorage.com"
18455 url> https://yourfabric.smestorage.com/
18456 ID of the root folder
18457 Leave blank normally.
18458
18459 Fill in to make rclone start with directory of a given ID.
18460
18461 Enter a string value. Press Enter for the default ("").
18462 root_folder_id>
18463 Permanent Authentication Token
18464
18465 A Permanent Authentication Token can be created in the Enterprise File
18466 Fabric, on the users Dashboard under Security, there is an entry
18467 you'll see called "My Authentication Tokens". Click the Manage button
18468 to create one.
18469
18470 These tokens are normally valid for several years.
18471
18472 For more info see: https://docs.storagemadeeasy.com/organisationcloud/api-tokens
18473
18474 Enter a string value. Press Enter for the default ("").
18475 permanent_token> xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
18476 Edit advanced config? (y/n)
18477 y) Yes
18478 n) No (default)
18479 y/n> n
18480 Remote config
18481 --------------------
18482 [remote]
18483 type = filefabric
18484 url = https://yourfabric.smestorage.com/
18485 permanent_token = xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
18486 --------------------
18487 y) Yes this is OK (default)
18488 e) Edit this remote
18489 d) Delete this remote
18490 y/e/d> y
18491
18492 Once configured you can then use rclone like this,
18493
18494 List directories in top level of your Enterprise File Fabric
18495
18496 rclone lsd remote:
18497
18498 List all the files in your Enterprise File Fabric
18499
18500 rclone ls remote:
18501
18502 To copy a local directory to an Enterprise File Fabric directory called
18503 backup
18504
18505 rclone copy /home/source remote:backup
18506
18507 Modified time and hashes
18508 The Enterprise File Fabric allows modification times to be set on files
18509 accurate to 1 second. These will be used to detect whether objects
18510 need syncing or not.
18511
18512 The Enterprise File Fabric does not support any data hashes at this
18513 time.
18514
18515 Restricted filename characters
18516 The default restricted characters set (https://rclone.org/overview/#re‐
18517 stricted-characters) will be replaced.
18518
18519 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
18520 view/#invalid-utf8), as they can't be used in JSON strings.
18521
18522 Empty files
18523 Empty files aren't supported by the Enterprise File Fabric. Rclone
18524 will therefore upload an empty file as a single space with a mime type
18525 of application/vnd.rclone.empty.file and files with that mime type are
18526 treated as empty.
18527
18528 Root folder ID
18529 You can set the root_folder_id for rclone. This is the directory
18530 (identified by its Folder ID) that rclone considers to be the root of
18531 your Enterprise File Fabric.
18532
18533 Normally you will leave this blank and rclone will determine the cor‐
18534 rect root to use itself.
18535
18536 However you can set this to restrict rclone to a specific folder hier‐
18537 archy.
18538
18539 In order to do this you will have to find the Folder ID of the directo‐
18540 ry you wish rclone to display. These aren't displayed in the web in‐
18541 terface, but you can use rclone lsf to find them, for example
18542
18543 $ rclone lsf --dirs-only -Fip --csv filefabric:
18544 120673758,Burnt PDFs/
18545 120673759,My Quick Uploads/
18546 120673755,My Syncs/
18547 120673756,My backups/
18548 120673757,My contacts/
18549 120673761,S3 Storage/
18550
18551 The ID for "S3 Storage" would be 120673761.
18552
18553 Standard Options
18554 Here are the standard options specific to filefabric (Enterprise File
18555 Fabric).
18556
18557 --filefabric-url
18558 URL of the Enterprise File Fabric to connect to
18559
18560 · Config: url
18561
18562 · Env Var: RCLONE_FILEFABRIC_URL
18563
18564 · Type: string
18565
18566 · Default: ""
18567
18568 · Examples:
18569
18570 · "https://storagemadeeasy.com"
18571
18572 · Storage Made Easy US
18573
18574 · "https://eu.storagemadeeasy.com"
18575
18576 · Storage Made Easy EU
18577
18578 · "https://yourfabric.smestorage.com"
18579
18580 · Connect to your Enterprise File Fabric
18581
18582 --filefabric-root-folder-id
18583 ID of the root folder Leave blank normally.
18584
18585 Fill in to make rclone start with directory of a given ID.
18586
18587 · Config: root_folder_id
18588
18589 · Env Var: RCLONE_FILEFABRIC_ROOT_FOLDER_ID
18590
18591 · Type: string
18592
18593 · Default: ""
18594
18595 --filefabric-permanent-token
18596 Permanent Authentication Token
18597
18598 A Permanent Authentication Token can be created in the Enterprise File
18599 Fabric, on the users Dashboard under Security, there is an entry you'll
18600 see called "My Authentication Tokens". Click the Manage button to cre‐
18601 ate one.
18602
18603 These tokens are normally valid for several years.
18604
18605 For more info see: https://docs.storagemadeeasy.com/organisation‐
18606 cloud/api-tokens
18607
18608 · Config: permanent_token
18609
18610 · Env Var: RCLONE_FILEFABRIC_PERMANENT_TOKEN
18611
18612 · Type: string
18613
18614 · Default: ""
18615
18616 Advanced Options
18617 Here are the advanced options specific to filefabric (Enterprise File
18618 Fabric).
18619
18620 --filefabric-token
18621 Session Token
18622
18623 This is a session token which rclone caches in the config file. It is
18624 usually valid for 1 hour.
18625
18626 Don't set this value - rclone will set it automatically.
18627
18628 · Config: token
18629
18630 · Env Var: RCLONE_FILEFABRIC_TOKEN
18631
18632 · Type: string
18633
18634 · Default: ""
18635
18636 --filefabric-token-expiry
18637 Token expiry time
18638
18639 Don't set this value - rclone will set it automatically.
18640
18641 · Config: token_expiry
18642
18643 · Env Var: RCLONE_FILEFABRIC_TOKEN_EXPIRY
18644
18645 · Type: string
18646
18647 · Default: ""
18648
18649 --filefabric-version
18650 Version read from the file fabric
18651
18652 Don't set this value - rclone will set it automatically.
18653
18654 · Config: version
18655
18656 · Env Var: RCLONE_FILEFABRIC_VERSION
18657
18658 · Type: string
18659
18660 · Default: ""
18661
18662 --filefabric-encoding
18663 This sets the encoding for the backend.
18664
18665 See: the encoding section in the overview (https://rclone.org/over‐
18666 view/#encoding) for more info.
18667
18668 · Config: encoding
18669
18670 · Env Var: RCLONE_FILEFABRIC_ENCODING
18671
18672 · Type: MultiEncoder
18673
18674 · Default: Slash,Del,Ctl,InvalidUtf8,Dot
18675
18676 FTP
18677 FTP is the File Transfer Protocol. Rclone FTP support is provided us‐
18678 ing the github.com/jlaffaye/ftp (https://godoc.org/github.com/jlaf‐
18679 faye/ftp) package.
18680
18681 Limitations of Rclone's FTP backend
18682
18683 Paths are specified as remote:path. If the path does not begin with a
18684 / it is relative to the home directory of the user. An empty path re‐
18685 mote: refers to the user's home directory.
18686
18687 To create an FTP configuration named remote, run
18688
18689 rclone config
18690
18691 Rclone config guides you through an interactive setup process. A mini‐
18692 mal rclone FTP remote definition only requires host, username and pass‐
18693 word. For an anonymous FTP server, use anonymous as username and your
18694 email address as password.
18695
18696 No remotes found - make a new one
18697 n) New remote
18698 r) Rename remote
18699 c) Copy remote
18700 s) Set configuration password
18701 q) Quit config
18702 n/r/c/s/q> n
18703 name> remote
18704 Type of storage to configure.
18705 Enter a string value. Press Enter for the default ("").
18706 Choose a number from below, or type in your own value
18707 [snip]
18708 XX / FTP Connection
18709 \ "ftp"
18710 [snip]
18711 Storage> ftp
18712 ** See help for ftp backend at: https://rclone.org/ftp/ **
18713
18714 FTP host to connect to
18715 Enter a string value. Press Enter for the default ("").
18716 Choose a number from below, or type in your own value
18717 1 / Connect to ftp.example.com
18718 \ "ftp.example.com"
18719 host> ftp.example.com
18720 FTP username, leave blank for current username, $USER
18721 Enter a string value. Press Enter for the default ("").
18722 user>
18723 FTP port, leave blank to use default (21)
18724 Enter a string value. Press Enter for the default ("").
18725 port>
18726 FTP password
18727 y) Yes type in my own password
18728 g) Generate random password
18729 y/g> y
18730 Enter the password:
18731 password:
18732 Confirm the password:
18733 password:
18734 Use FTP over TLS (Implicit)
18735 Enter a boolean value (true or false). Press Enter for the default ("false").
18736 tls>
18737 Use FTP over TLS (Explicit)
18738 Enter a boolean value (true or false). Press Enter for the default ("false").
18739 explicit_tls>
18740 Remote config
18741 --------------------
18742 [remote]
18743 type = ftp
18744 host = ftp.example.com
18745 pass = *** ENCRYPTED ***
18746 --------------------
18747 y) Yes this is OK
18748 e) Edit this remote
18749 d) Delete this remote
18750 y/e/d> y
18751
18752 To see all directories in the home directory of remote
18753
18754 rclone lsd remote:
18755
18756 Make a new directory
18757
18758 rclone mkdir remote:path/to/directory
18759
18760 List the contents of a directory
18761
18762 rclone ls remote:path/to/directory
18763
18764 Sync /home/local/directory to the remote directory, deleting any excess
18765 files in the directory.
18766
18767 rclone sync -i /home/local/directory remote:directory
18768
18769 Example without a config file
18770 rclone lsf :ftp: --ftp-host=speedtest.tele2.net --ftp-user=anonymous --ftp-pass=`rclone obscure dummy`
18771
18772 Implicit TLS
18773 Rlone FTP supports implicit FTP over TLS servers (FTPS). This has to
18774 be enabled in the FTP backend config for the remote, or with
18775 [--ftp-tls]{#ftp-tls}. The default FTPS port is 990, not 21 and can be
18776 set with [--ftp-port]{#ftp-port}.
18777
18778 Standard Options
18779 Here are the standard options specific to ftp (FTP Connection).
18780
18781 --ftp-host
18782 FTP host to connect to
18783
18784 · Config: host
18785
18786 · Env Var: RCLONE_FTP_HOST
18787
18788 · Type: string
18789
18790 · Default: ""
18791
18792 · Examples:
18793
18794 · "ftp.example.com"
18795
18796 · Connect to ftp.example.com
18797
18798 --ftp-user
18799 FTP username, leave blank for current username, $USER
18800
18801 · Config: user
18802
18803 · Env Var: RCLONE_FTP_USER
18804
18805 · Type: string
18806
18807 · Default: ""
18808
18809 --ftp-port
18810 FTP port, leave blank to use default (21)
18811
18812 · Config: port
18813
18814 · Env Var: RCLONE_FTP_PORT
18815
18816 · Type: string
18817
18818 · Default: ""
18819
18820 --ftp-pass
18821 FTP password
18822
18823 NB Input to this must be obscured - see rclone obscure
18824 (https://rclone.org/commands/rclone_obscure/).
18825
18826 · Config: pass
18827
18828 · Env Var: RCLONE_FTP_PASS
18829
18830 · Type: string
18831
18832 · Default: ""
18833
18834 --ftp-tls
18835 Use Implicit FTPS (FTP over TLS) When using implicit FTP over TLS the
18836 client connects using TLS right from the start which breaks compatibil‐
18837 ity with non-TLS-aware servers. This is usually served over port 990
18838 rather than port 21. Cannot be used in combination with explicit FTP.
18839
18840 · Config: tls
18841
18842 · Env Var: RCLONE_FTP_TLS
18843
18844 · Type: bool
18845
18846 · Default: false
18847
18848 --ftp-explicit-tls
18849 Use Explicit FTPS (FTP over TLS) When using explicit FTP over TLS the
18850 client explicitly requests security from the server in order to upgrade
18851 a plain text connection to an encrypted one. Cannot be used in combi‐
18852 nation with implicit FTP.
18853
18854 · Config: explicit_tls
18855
18856 · Env Var: RCLONE_FTP_EXPLICIT_TLS
18857
18858 · Type: bool
18859
18860 · Default: false
18861
18862 Advanced Options
18863 Here are the advanced options specific to ftp (FTP Connection).
18864
18865 --ftp-concurrency
18866 Maximum number of FTP simultaneous connections, 0 for unlimited
18867
18868 · Config: concurrency
18869
18870 · Env Var: RCLONE_FTP_CONCURRENCY
18871
18872 · Type: int
18873
18874 · Default: 0
18875
18876 --ftp-no-check-certificate
18877 Do not verify the TLS certificate of the server
18878
18879 · Config: no_check_certificate
18880
18881 · Env Var: RCLONE_FTP_NO_CHECK_CERTIFICATE
18882
18883 · Type: bool
18884
18885 · Default: false
18886
18887 --ftp-disable-epsv
18888 Disable using EPSV even if server advertises support
18889
18890 · Config: disable_epsv
18891
18892 · Env Var: RCLONE_FTP_DISABLE_EPSV
18893
18894 · Type: bool
18895
18896 · Default: false
18897
18898 --ftp-disable-mlsd
18899 Disable using MLSD even if server advertises support
18900
18901 · Config: disable_mlsd
18902
18903 · Env Var: RCLONE_FTP_DISABLE_MLSD
18904
18905 · Type: bool
18906
18907 · Default: false
18908
18909 --ftp-encoding
18910 This sets the encoding for the backend.
18911
18912 See: the encoding section in the overview (https://rclone.org/over‐
18913 view/#encoding) for more info.
18914
18915 · Config: encoding
18916
18917 · Env Var: RCLONE_FTP_ENCODING
18918
18919 · Type: MultiEncoder
18920
18921 · Default: Slash,Del,Ctl,RightSpace,Dot
18922
18923 Limitations
18924 Modified times are not supported. Times you see on the FTP server
18925 through rclone are those of upload.
18926
18927 Rclone's FTP backend does not support any checksums but can compare
18928 file sizes.
18929
18930 rclone about is not supported by the FTP backend. Backends without
18931 this capability cannot determine free space for an rclone mount or use
18932 policy mfs (most free space) as a member of an rclone union remote.
18933
18934 See List of backends that do not support rclone about
18935 (https://rclone.org/overview/#optional-features) See rclone about
18936 (https://rclone.org/commands/rclone_about/)
18937
18938 The implementation of : --dump headers, --dump bodies, --dump auth for
18939 debugging isn't the same as for rclone HTTP based backends - it has
18940 less fine grained control.
18941
18942 --timeout isn't supported (but --contimeout is).
18943
18944 --bind isn't supported.
18945
18946 Rclone's FTP backend could support server-side move but does not at
18947 present.
18948
18949 The ftp_proxy environment variable is not currently supported.
18950
18951 FTP servers acting as rclone remotes must support 'passive' mode.
18952 Rclone's FTP implementation is not compatible with 'active' mode.
18953
18954 Restricted filename characters
18955 In addition to the default restricted characters set
18956 (https://rclone.org/overview/#restricted-characters) the following
18957 characters are also replaced:
18958
18959 File names cannot end with the following characters. Repacement is
18960 limited to the last character in a file name:
18961
18962 Character Value Replacement
18963 ────────────────────────────────
18964 SP 0x20 ␠
18965
18966 Not all FTP servers can have all characters in file names, for example:
18967
18968 FTP Server Forbidden characters
18969 ──────────────────────────────────
18970 proftpd *
18971 pureftpd \ [ ]
18972
18973 Google Cloud Storage
18974 Paths are specified as remote:bucket (or remote: for the lsd command.)
18975 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
18976
18977 The initial setup for google cloud storage involves getting a token
18978 from Google Cloud Storage which you need to do in your browser. rclone
18979 config walks you through it.
18980
18981 Here is an example of how to make a remote called remote. First run:
18982
18983 rclone config
18984
18985 This will guide you through an interactive setup process:
18986
18987 n) New remote
18988 d) Delete remote
18989 q) Quit config
18990 e/n/d/q> n
18991 name> remote
18992 Type of storage to configure.
18993 Choose a number from below, or type in your own value
18994 [snip]
18995 XX / Google Cloud Storage (this is not Google Drive)
18996 \ "google cloud storage"
18997 [snip]
18998 Storage> google cloud storage
18999 Google Application Client Id - leave blank normally.
19000 client_id>
19001 Google Application Client Secret - leave blank normally.
19002 client_secret>
19003 Project number optional - needed only for list/create/delete buckets - see your developer console.
19004 project_number> 12345678
19005 Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
19006 service_account_file>
19007 Access Control List for new objects.
19008 Choose a number from below, or type in your own value
19009 1 / Object owner gets OWNER access, and all Authenticated Users get READER access.
19010 \ "authenticatedRead"
19011 2 / Object owner gets OWNER access, and project team owners get OWNER access.
19012 \ "bucketOwnerFullControl"
19013 3 / Object owner gets OWNER access, and project team owners get READER access.
19014 \ "bucketOwnerRead"
19015 4 / Object owner gets OWNER access [default if left blank].
19016 \ "private"
19017 5 / Object owner gets OWNER access, and project team members get access according to their roles.
19018 \ "projectPrivate"
19019 6 / Object owner gets OWNER access, and all Users get READER access.
19020 \ "publicRead"
19021 object_acl> 4
19022 Access Control List for new buckets.
19023 Choose a number from below, or type in your own value
19024 1 / Project team owners get OWNER access, and all Authenticated Users get READER access.
19025 \ "authenticatedRead"
19026 2 / Project team owners get OWNER access [default if left blank].
19027 \ "private"
19028 3 / Project team members get access according to their roles.
19029 \ "projectPrivate"
19030 4 / Project team owners get OWNER access, and all Users get READER access.
19031 \ "publicRead"
19032 5 / Project team owners get OWNER access, and all Users get WRITER access.
19033 \ "publicReadWrite"
19034 bucket_acl> 2
19035 Location for the newly created buckets.
19036 Choose a number from below, or type in your own value
19037 1 / Empty for default location (US).
19038 \ ""
19039 2 / Multi-regional location for Asia.
19040 \ "asia"
19041 3 / Multi-regional location for Europe.
19042 \ "eu"
19043 4 / Multi-regional location for United States.
19044 \ "us"
19045 5 / Taiwan.
19046 \ "asia-east1"
19047 6 / Tokyo.
19048 \ "asia-northeast1"
19049 7 / Singapore.
19050 \ "asia-southeast1"
19051 8 / Sydney.
19052 \ "australia-southeast1"
19053 9 / Belgium.
19054 \ "europe-west1"
19055 10 / London.
19056 \ "europe-west2"
19057 11 / Iowa.
19058 \ "us-central1"
19059 12 / South Carolina.
19060 \ "us-east1"
19061 13 / Northern Virginia.
19062 \ "us-east4"
19063 14 / Oregon.
19064 \ "us-west1"
19065 location> 12
19066 The storage class to use when storing objects in Google Cloud Storage.
19067 Choose a number from below, or type in your own value
19068 1 / Default
19069 \ ""
19070 2 / Multi-regional storage class
19071 \ "MULTI_REGIONAL"
19072 3 / Regional storage class
19073 \ "REGIONAL"
19074 4 / Nearline storage class
19075 \ "NEARLINE"
19076 5 / Coldline storage class
19077 \ "COLDLINE"
19078 6 / Durable reduced availability storage class
19079 \ "DURABLE_REDUCED_AVAILABILITY"
19080 storage_class> 5
19081 Remote config
19082 Use auto config?
19083 * Say Y if not sure
19084 * Say N if you are working on a remote or headless machine or Y didn't work
19085 y) Yes
19086 n) No
19087 y/n> y
19088 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
19089 Log in and authorize rclone for access
19090 Waiting for code...
19091 Got code
19092 --------------------
19093 [remote]
19094 type = google cloud storage
19095 client_id =
19096 client_secret =
19097 token = {"AccessToken":"xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"x/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxx","Expiry":"2014-07-17T20:49:14.929208288+01:00","Extra":null}
19098 project_number = 12345678
19099 object_acl = private
19100 bucket_acl = private
19101 --------------------
19102 y) Yes this is OK
19103 e) Edit this remote
19104 d) Delete this remote
19105 y/e/d> y
19106
19107 Note that rclone runs a webserver on your local machine to collect the
19108 token as returned from Google if you use auto config mode. This only
19109 runs from the moment it opens your browser to the moment you get back
19110 the verification code. This is on http://127.0.0.1:53682/ and this it
19111 may require you to unblock it temporarily if you are running a host
19112 firewall, or use manual mode.
19113
19114 This remote is called remote and can now be used like this
19115
19116 See all the buckets in your project
19117
19118 rclone lsd remote:
19119
19120 Make a new bucket
19121
19122 rclone mkdir remote:bucket
19123
19124 List the contents of a bucket
19125
19126 rclone ls remote:bucket
19127
19128 Sync /home/local/directory to the remote bucket, deleting any excess
19129 files in the bucket.
19130
19131 rclone sync -i /home/local/directory remote:bucket
19132
19133 Service Account support
19134 You can set up rclone with Google Cloud Storage in an unattended mode,
19135 i.e. not tied to a specific end-user Google account. This is useful
19136 when you want to synchronise files onto machines that don't have ac‐
19137 tively logged-in users, for example build machines.
19138
19139 To get credentials for Google Cloud Platform IAM Service Accounts
19140 (https://cloud.google.com/iam/docs/service-accounts), please head to
19141 the Service Account (https://console.cloud.google.com/permissions/ser‐
19142 viceaccounts) section of the Google Developer Console. Service Ac‐
19143 counts behave just like normal User permissions in Google Cloud Storage
19144 ACLs (https://cloud.google.com/storage/docs/access-control), so you can
19145 limit their access (e.g. make them read only). After creating an ac‐
19146 count, a JSON file containing the Service Account's credentials will be
19147 downloaded onto your machines. These credentials are what rclone will
19148 use for authentication.
19149
19150 To use a Service Account instead of OAuth2 token flow, enter the path
19151 to your Service Account credentials at the service_account_file prompt
19152 and rclone won't use the browser based authentication flow. If you'd
19153 rather stuff the contents of the credentials file into the rclone con‐
19154 fig file, you can set service_account_credentials with the actual con‐
19155 tents of the file instead, or set the equivalent environment variable.
19156
19157 Anonymous Access
19158 For downloads of objects that permit public access you can configure
19159 rclone to use anonymous access by setting anonymous to true. With
19160 unauthorized access you can't write or create files but only read or
19161 list those buckets and objects that have public read access.
19162
19163 Application Default Credentials
19164 If no other source of credentials is provided, rclone will fall back to
19165 Application Default Credentials (https://cloud.google.com/video-intel‐
19166 ligence/docs/common/auth#authenticating_with_application_default_cre‐
19167 dentials) this is useful both when you already have configured authen‐
19168 tication for your developer account, or in production when running on a
19169 google compute host. Note that if running in docker, you may need to
19170 run additional commands on your google compute machine - see this page
19171 (https://cloud.google.com/container-registry/docs/advanced-authentica‐
19172 tion#gcloud_as_a_docker_credential_helper).
19173
19174 Note that in the case application default credentials are used, there
19175 is no need to explicitly configure a project number.
19176
19177 --fast-list
19178 This remote supports --fast-list which allows you to use fewer transac‐
19179 tions in exchange for more memory. See the rclone docs
19180 (https://rclone.org/docs/#fast-list) for more details.
19181
19182 Custom upload headers
19183 You can set custom upload headers with the --header-upload flag.
19184 Google Cloud Storage supports the headers as described in the working
19185 with metadata documentation (https://cloud.google.com/storage/docs/gsu‐
19186 til/addlhelp/WorkingWithObjectMetadata)
19187
19188 · Cache-Control
19189
19190 · Content-Disposition
19191
19192 · Content-Encoding
19193
19194 · Content-Language
19195
19196 · Content-Type
19197
19198 · X-Goog-Storage-Class
19199
19200 · X-Goog-Meta-
19201
19202 Eg --header-upload "Content-Type text/potato"
19203
19204 Note that the last of these is for setting custom metadata in the form
19205 --header-upload "x-goog-meta-key: value"
19206
19207 Modified time
19208 Google google cloud storage stores md5sums natively and rclone stores
19209 modification times as metadata on the object, under the "mtime" key in
19210 RFC3339 format accurate to 1ns.
19211
19212 Restricted filename characters
19213 Character Value Replacement
19214 ────────────────────────────────
19215 NUL 0x00 ␀
19216 LF 0x0A ␊
19217 CR 0x0D ␍
19218 / 0x2F /
19219
19220 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
19221 view/#invalid-utf8), as they can't be used in JSON strings.
19222
19223 Standard Options
19224 Here are the standard options specific to google cloud storage (Google
19225 Cloud Storage (this is not Google Drive)).
19226
19227 --gcs-client-id
19228 OAuth Client Id Leave blank normally.
19229
19230 · Config: client_id
19231
19232 · Env Var: RCLONE_GCS_CLIENT_ID
19233
19234 · Type: string
19235
19236 · Default: ""
19237
19238 --gcs-client-secret
19239 OAuth Client Secret Leave blank normally.
19240
19241 · Config: client_secret
19242
19243 · Env Var: RCLONE_GCS_CLIENT_SECRET
19244
19245 · Type: string
19246
19247 · Default: ""
19248
19249 --gcs-project-number
19250 Project number. Optional - needed only for list/create/delete buckets
19251 - see your developer console.
19252
19253 · Config: project_number
19254
19255 · Env Var: RCLONE_GCS_PROJECT_NUMBER
19256
19257 · Type: string
19258
19259 · Default: ""
19260
19261 --gcs-service-account-file
19262 Service Account Credentials JSON file path Leave blank normally. Need‐
19263 ed only if you want use SA instead of interactive login.
19264
19265 Leading ~ will be expanded in the file name as will environment vari‐
19266 ables such as ${RCLONE_CONFIG_DIR}.
19267
19268 · Config: service_account_file
19269
19270 · Env Var: RCLONE_GCS_SERVICE_ACCOUNT_FILE
19271
19272 · Type: string
19273
19274 · Default: ""
19275
19276 --gcs-service-account-credentials
19277 Service Account Credentials JSON blob Leave blank normally. Needed on‐
19278 ly if you want use SA instead of interactive login.
19279
19280 · Config: service_account_credentials
19281
19282 · Env Var: RCLONE_GCS_SERVICE_ACCOUNT_CREDENTIALS
19283
19284 · Type: string
19285
19286 · Default: ""
19287
19288 --gcs-anonymous
19289 Access public buckets and objects without credentials Set to 'true' if
19290 you just want to download files and don't configure credentials.
19291
19292 · Config: anonymous
19293
19294 · Env Var: RCLONE_GCS_ANONYMOUS
19295
19296 · Type: bool
19297
19298 · Default: false
19299
19300 --gcs-object-acl
19301 Access Control List for new objects.
19302
19303 · Config: object_acl
19304
19305 · Env Var: RCLONE_GCS_OBJECT_ACL
19306
19307 · Type: string
19308
19309 · Default: ""
19310
19311 · Examples:
19312
19313 · "authenticatedRead"
19314
19315 · Object owner gets OWNER access, and all Authenticated Users get
19316 READER access.
19317
19318 · "bucketOwnerFullControl"
19319
19320 · Object owner gets OWNER access, and project team owners get OWNER
19321 access.
19322
19323 · "bucketOwnerRead"
19324
19325 · Object owner gets OWNER access, and project team owners get READ‐
19326 ER access.
19327
19328 · "private"
19329
19330 · Object owner gets OWNER access [default if left blank].
19331
19332 · "projectPrivate"
19333
19334 · Object owner gets OWNER access, and project team members get ac‐
19335 cess according to their roles.
19336
19337 · "publicRead"
19338
19339 · Object owner gets OWNER access, and all Users get READER access.
19340
19341 --gcs-bucket-acl
19342 Access Control List for new buckets.
19343
19344 · Config: bucket_acl
19345
19346 · Env Var: RCLONE_GCS_BUCKET_ACL
19347
19348 · Type: string
19349
19350 · Default: ""
19351
19352 · Examples:
19353
19354 · "authenticatedRead"
19355
19356 · Project team owners get OWNER access, and all Authenticated Users
19357 get READER access.
19358
19359 · "private"
19360
19361 · Project team owners get OWNER access [default if left blank].
19362
19363 · "projectPrivate"
19364
19365 · Project team members get access according to their roles.
19366
19367 · "publicRead"
19368
19369 · Project team owners get OWNER access, and all Users get READER
19370 access.
19371
19372 · "publicReadWrite"
19373
19374 · Project team owners get OWNER access, and all Users get WRITER
19375 access.
19376
19377 --gcs-bucket-policy-only
19378 Access checks should use bucket-level IAM policies.
19379
19380 If you want to upload objects to a bucket with Bucket Policy Only set
19381 then you will need to set this.
19382
19383 When it is set, rclone:
19384
19385 · ignores ACLs set on buckets
19386
19387 · ignores ACLs set on objects
19388
19389 · creates buckets with Bucket Policy Only set
19390
19391 Docs: https://cloud.google.com/storage/docs/bucket-policy-only
19392
19393 · Config: bucket_policy_only
19394
19395 · Env Var: RCLONE_GCS_BUCKET_POLICY_ONLY
19396
19397 · Type: bool
19398
19399 · Default: false
19400
19401 --gcs-location
19402 Location for the newly created buckets.
19403
19404 · Config: location
19405
19406 · Env Var: RCLONE_GCS_LOCATION
19407
19408 · Type: string
19409
19410 · Default: ""
19411
19412 · Examples:
19413
19414 · ""
19415
19416 · Empty for default location (US).
19417
19418 · "asia"
19419
19420 · Multi-regional location for Asia.
19421
19422 · "eu"
19423
19424 · Multi-regional location for Europe.
19425
19426 · "us"
19427
19428 · Multi-regional location for United States.
19429
19430 · "asia-east1"
19431
19432 · Taiwan.
19433
19434 · "asia-east2"
19435
19436 · Hong Kong.
19437
19438 · "asia-northeast1"
19439
19440 · Tokyo.
19441
19442 · "asia-south1"
19443
19444 · Mumbai.
19445
19446 · "asia-southeast1"
19447
19448 · Singapore.
19449
19450 · "australia-southeast1"
19451
19452 · Sydney.
19453
19454 · "europe-north1"
19455
19456 · Finland.
19457
19458 · "europe-west1"
19459
19460 · Belgium.
19461
19462 · "europe-west2"
19463
19464 · London.
19465
19466 · "europe-west3"
19467
19468 · Frankfurt.
19469
19470 · "europe-west4"
19471
19472 · Netherlands.
19473
19474 · "us-central1"
19475
19476 · Iowa.
19477
19478 · "us-east1"
19479
19480 · South Carolina.
19481
19482 · "us-east4"
19483
19484 · Northern Virginia.
19485
19486 · "us-west1"
19487
19488 · Oregon.
19489
19490 · "us-west2"
19491
19492 · California.
19493
19494 --gcs-storage-class
19495 The storage class to use when storing objects in Google Cloud Storage.
19496
19497 · Config: storage_class
19498
19499 · Env Var: RCLONE_GCS_STORAGE_CLASS
19500
19501 · Type: string
19502
19503 · Default: ""
19504
19505 · Examples:
19506
19507 · ""
19508
19509 · Default
19510
19511 · "MULTI_REGIONAL"
19512
19513 · Multi-regional storage class
19514
19515 · "REGIONAL"
19516
19517 · Regional storage class
19518
19519 · "NEARLINE"
19520
19521 · Nearline storage class
19522
19523 · "COLDLINE"
19524
19525 · Coldline storage class
19526
19527 · "ARCHIVE"
19528
19529 · Archive storage class
19530
19531 · "DURABLE_REDUCED_AVAILABILITY"
19532
19533 · Durable reduced availability storage class
19534
19535 Advanced Options
19536 Here are the advanced options specific to google cloud storage (Google
19537 Cloud Storage (this is not Google Drive)).
19538
19539 --gcs-token
19540 OAuth Access Token as a JSON blob.
19541
19542 · Config: token
19543
19544 · Env Var: RCLONE_GCS_TOKEN
19545
19546 · Type: string
19547
19548 · Default: ""
19549
19550 --gcs-auth-url
19551 Auth server URL. Leave blank to use the provider defaults.
19552
19553 · Config: auth_url
19554
19555 · Env Var: RCLONE_GCS_AUTH_URL
19556
19557 · Type: string
19558
19559 · Default: ""
19560
19561 --gcs-token-url
19562 Token server url. Leave blank to use the provider defaults.
19563
19564 · Config: token_url
19565
19566 · Env Var: RCLONE_GCS_TOKEN_URL
19567
19568 · Type: string
19569
19570 · Default: ""
19571
19572 --gcs-encoding
19573 This sets the encoding for the backend.
19574
19575 See: the encoding section in the overview (https://rclone.org/over‐
19576 view/#encoding) for more info.
19577
19578 · Config: encoding
19579
19580 · Env Var: RCLONE_GCS_ENCODING
19581
19582 · Type: MultiEncoder
19583
19584 · Default: Slash,CrLf,InvalidUtf8,Dot
19585
19586 Limitations
19587 rclone about is not supported by the Google Cloud Storage backend.
19588 Backends without this capability cannot determine free space for an
19589 rclone mount or use policy mfs (most free space) as a member of an
19590 rclone union remote.
19591
19592 See List of backends that do not support rclone about
19593 (https://rclone.org/overview/#optional-features) See rclone about
19594 (https://rclone.org/commands/rclone_about/)
19595
19596 Google Drive
19597 Paths are specified as drive:path
19598
19599 Drive paths may be as deep as required, e.g. drive:directory/subdirec‐
19600 tory.
19601
19602 The initial setup for drive involves getting a token from Google drive
19603 which you need to do in your browser. rclone config walks you through
19604 it.
19605
19606 Here is an example of how to make a remote called remote. First run:
19607
19608 rclone config
19609
19610 This will guide you through an interactive setup process:
19611
19612 No remotes found - make a new one
19613 n) New remote
19614 r) Rename remote
19615 c) Copy remote
19616 s) Set configuration password
19617 q) Quit config
19618 n/r/c/s/q> n
19619 name> remote
19620 Type of storage to configure.
19621 Choose a number from below, or type in your own value
19622 [snip]
19623 XX / Google Drive
19624 \ "drive"
19625 [snip]
19626 Storage> drive
19627 Google Application Client Id - leave blank normally.
19628 client_id>
19629 Google Application Client Secret - leave blank normally.
19630 client_secret>
19631 Scope that rclone should use when requesting access from drive.
19632 Choose a number from below, or type in your own value
19633 1 / Full access all files, excluding Application Data Folder.
19634 \ "drive"
19635 2 / Read-only access to file metadata and file contents.
19636 \ "drive.readonly"
19637 / Access to files created by rclone only.
19638 3 | These are visible in the drive website.
19639 | File authorization is revoked when the user deauthorizes the app.
19640 \ "drive.file"
19641 / Allows read and write access to the Application Data folder.
19642 4 | This is not visible in the drive website.
19643 \ "drive.appfolder"
19644 / Allows read-only access to file metadata but
19645 5 | does not allow any access to read or download file content.
19646 \ "drive.metadata.readonly"
19647 scope> 1
19648 ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs).
19649 root_folder_id>
19650 Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
19651 service_account_file>
19652 Remote config
19653 Use auto config?
19654 * Say Y if not sure
19655 * Say N if you are working on a remote or headless machine or Y didn't work
19656 y) Yes
19657 n) No
19658 y/n> y
19659 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
19660 Log in and authorize rclone for access
19661 Waiting for code...
19662 Got code
19663 Configure this as a team drive?
19664 y) Yes
19665 n) No
19666 y/n> n
19667 --------------------
19668 [remote]
19669 client_id =
19670 client_secret =
19671 scope = drive
19672 root_folder_id =
19673 service_account_file =
19674 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2014-03-16T13:57:58.955387075Z"}
19675 --------------------
19676 y) Yes this is OK
19677 e) Edit this remote
19678 d) Delete this remote
19679 y/e/d> y
19680
19681 Note that rclone runs a webserver on your local machine to collect the
19682 token as returned from Google if you use auto config mode. This only
19683 runs from the moment it opens your browser to the moment you get back
19684 the verification code. This is on http://127.0.0.1:53682/ and this it
19685 may require you to unblock it temporarily if you are running a host
19686 firewall, or use manual mode.
19687
19688 You can then use it like this,
19689
19690 List directories in top level of your drive
19691
19692 rclone lsd remote:
19693
19694 List all the files in your drive
19695
19696 rclone ls remote:
19697
19698 To copy a local directory to a drive directory called backup
19699
19700 rclone copy /home/source remote:backup
19701
19702 Scopes
19703 Rclone allows you to select which scope you would like for rclone to
19704 use. This changes what type of token is granted to rclone. The scopes
19705 are defined here (https://developers.google.com/drive/v3/web/about-
19706 auth).
19707
19708 The scope are
19709
19710 drive
19711 This is the default scope and allows full access to all files, except
19712 for the Application Data Folder (see below).
19713
19714 Choose this one if you aren't sure.
19715
19716 drive.readonly
19717 This allows read only access to all files. Files may be listed and
19718 downloaded but not uploaded, renamed or deleted.
19719
19720 drive.file
19721 With this scope rclone can read/view/modify only those files and fold‐
19722 ers it creates.
19723
19724 So if you uploaded files to drive via the web interface (or any other
19725 means) they will not be visible to rclone.
19726
19727 This can be useful if you are using rclone to backup data and you want
19728 to be sure confidential data on your drive is not visible to rclone.
19729
19730 Files created with this scope are visible in the web interface.
19731
19732 drive.appfolder
19733 This gives rclone its own private area to store files. Rclone will not
19734 be able to see any other files on your drive and you won't be able to
19735 see rclone's files from the web interface either.
19736
19737 drive.metadata.readonly
19738 This allows read only access to file names only. It does not allow
19739 rclone to download or upload data, or rename or delete files or direc‐
19740 tories.
19741
19742 Root folder ID
19743 You can set the root_folder_id for rclone. This is the directory
19744 (identified by its Folder ID) that rclone considers to be the root of
19745 your drive.
19746
19747 Normally you will leave this blank and rclone will determine the cor‐
19748 rect root to use itself.
19749
19750 However you can set this to restrict rclone to a specific folder hier‐
19751 archy or to access data within the "Computers" tab on the drive web in‐
19752 terface (where files from Google's Backup and Sync desktop program go).
19753
19754 In order to do this you will have to find the Folder ID of the directo‐
19755 ry you wish rclone to display. This will be the last segment of the
19756 URL when you open the relevant folder in the drive web interface.
19757
19758 So if the folder you want rclone to use has a URL which looks like
19759 https://drive.google.com/drive/fold‐
19760 ers/1XyfxxxxxxxxxxxxxxxxxxxxxxxxxKHCh in the browser, then you use
19761 1XyfxxxxxxxxxxxxxxxxxxxxxxxxxKHCh as the root_folder_id in the config.
19762
19763 NB folders under the "Computers" tab seem to be read only (drive gives
19764 a 500 error) when using rclone.
19765
19766 There doesn't appear to be an API to discover the folder IDs of the
19767 "Computers" tab - please contact us if you know otherwise!
19768
19769 Note also that rclone can't access any data under the "Backups" tab on
19770 the google drive web interface yet.
19771
19772 Service Account support
19773 You can set up rclone with Google Drive in an unattended mode, i.e.
19774 not tied to a specific end-user Google account. This is useful when
19775 you want to synchronise files onto machines that don't have actively
19776 logged-in users, for example build machines.
19777
19778 To use a Service Account instead of OAuth2 token flow, enter the path
19779 to your Service Account credentials at the service_account_file prompt
19780 during rclone config and rclone won't use the browser based authentica‐
19781 tion flow. If you'd rather stuff the contents of the credentials file
19782 into the rclone config file, you can set service_account_credentials
19783 with the actual contents of the file instead, or set the equivalent en‐
19784 vironment variable.
19785
19786 Use case - Google Apps/G-suite account and individual Drive
19787 Let's say that you are the administrator of a Google Apps (old) or
19788 G-suite account. The goal is to store data on an individual's Drive
19789 account, who IS a member of the domain. We'll call the domain exam‐
19790 ple.com, and the user foo@example.com.
19791
19792 There's a few steps we need to go through to accomplish this:
19793
19794 1. Create a service account for example.com
19795 · To create a service account and obtain its credentials, go to the
19796 Google Developer Console (https://console.developers.google.com).
19797
19798 · You must have a project - create one if you don't.
19799
19800 · Then go to "IAM & admin" -> "Service Accounts".
19801
19802 · Use the "Create Credentials" button. Fill in "Service account name"
19803 with something that identifies your client. "Role" can be empty.
19804
19805 · Tick "Furnish a new private key" - select "Key type JSON".
19806
19807 · Tick "Enable G Suite Domain-wide Delegation". This option makes "im‐
19808 personation" possible, as documented here: Delegating domain-wide au‐
19809 thority to the service account (https://developers.google.com/identi‐
19810 ty/protocols/OAuth2ServiceAccount#delegatingauthority)
19811
19812 · These credentials are what rclone will use for authentication. If
19813 you ever need to remove access, press the "Delete service account
19814 key" button.
19815
19816 2. Allowing API access to example.com Google Drive
19817 · Go to example.com's admin console
19818
19819 · Go into "Security" (or use the search bar)
19820
19821 · Select "Show more" and then "Advanced settings"
19822
19823 · Select "Manage API client access" in the "Authentication" section
19824
19825 · In the "Client Name" field enter the service account's "Client ID" -
19826 this can be found in the Developer Console under "IAM & Admin" ->
19827 "Service Accounts", then "View Client ID" for the newly created ser‐
19828 vice account. It is a ~21 character numerical string.
19829
19830 · In the next field, "One or More API Scopes", enter
19831 https://www.googleapis.com/auth/drive to grant access to Google Drive
19832 specifically.
19833
19834 3. Configure rclone, assuming a new install
19835 rclone config
19836
19837 n/s/q> n # New
19838 name>gdrive # Gdrive is an example name
19839 Storage> # Select the number shown for Google Drive
19840 client_id> # Can be left blank
19841 client_secret> # Can be left blank
19842 scope> # Select your scope, 1 for example
19843 root_folder_id> # Can be left blank
19844 service_account_file> /home/foo/myJSONfile.json # This is where the JSON file goes!
19845 y/n> # Auto config, y
19846
19847 4. Verify that it's working
19848 · rclone -v --drive-impersonate foo@example.com lsf gdrive:backup
19849
19850 · The arguments do:
19851
19852 · -v - verbose logging
19853
19854 · --drive-impersonate foo@example.com - this is what does the magic,
19855 pretending to be user foo.
19856
19857 · lsf - list files in a parsing friendly way
19858
19859 · gdrive:backup - use the remote called gdrive, work in the folder
19860 named backup.
19861
19862 Note: in case you configured a specific root folder on gdrive and
19863 rclone is unable to access the contents of that folder when using
19864 --drive-impersonate, do this instead: - in the gdrive web interface,
19865 share your root folder with the user/email of the new Service Account
19866 you created/selected at step #1 - use rclone without specifying the
19867 --drive-impersonate option, like this: rclone -v foo@example.com lsf
19868 gdrive:backup
19869
19870 Team drives
19871 If you want to configure the remote to point to a Google Team Drive
19872 then answer y to the question Configure this as a team drive?.
19873
19874 This will fetch the list of Team Drives from google and allow you to
19875 configure which one you want to use. You can also type in a team drive
19876 ID if you prefer.
19877
19878 For example:
19879
19880 Configure this as a team drive?
19881 y) Yes
19882 n) No
19883 y/n> y
19884 Fetching team drive list...
19885 Choose a number from below, or type in your own value
19886 1 / Rclone Test
19887 \ "xxxxxxxxxxxxxxxxxxxx"
19888 2 / Rclone Test 2
19889 \ "yyyyyyyyyyyyyyyyyyyy"
19890 3 / Rclone Test 3
19891 \ "zzzzzzzzzzzzzzzzzzzz"
19892 Enter a Team Drive ID> 1
19893 --------------------
19894 [remote]
19895 client_id =
19896 client_secret =
19897 token = {"AccessToken":"xxxx.x.xxxxx_xxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"1/xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxx","Expiry":"2014-03-16T13:57:58.955387075Z","Extra":null}
19898 team_drive = xxxxxxxxxxxxxxxxxxxx
19899 --------------------
19900 y) Yes this is OK
19901 e) Edit this remote
19902 d) Delete this remote
19903 y/e/d> y
19904
19905 --fast-list
19906 This remote supports --fast-list which allows you to use fewer transac‐
19907 tions in exchange for more memory. See the rclone docs
19908 (https://rclone.org/docs/#fast-list) for more details.
19909
19910 It does this by combining multiple list calls into a single API re‐
19911 quest.
19912
19913 This works by combining many '%s' in parents filters into one expres‐
19914 sion. To list the contents of directories a, b and c, the following
19915 requests will be send by the regular List function:
19916
19917 trashed=false and 'a' in parents
19918 trashed=false and 'b' in parents
19919 trashed=false and 'c' in parents
19920
19921 These can now be combined into a single request:
19922
19923 trashed=false and ('a' in parents or 'b' in parents or 'c' in parents)
19924
19925 The implementation of ListR will put up to 50 parents filters into one
19926 request. It will use the --checkers value to specify the number of re‐
19927 quests to run in parallel.
19928
19929 In tests, these batch requests were up to 20x faster than the regular
19930 method. Running the following command against different sized folders
19931 gives:
19932
19933 rclone lsjson -vv -R --checkers=6 gdrive:folder
19934
19935 small folder (220 directories, 700 files):
19936
19937 · without --fast-list: 38s
19938
19939 · with --fast-list: 10s
19940
19941 large folder (10600 directories, 39000 files):
19942
19943 · without --fast-list: 22:05 min
19944
19945 · with --fast-list: 58s
19946
19947 Modified time
19948 Google drive stores modification times accurate to 1 ms.
19949
19950 Restricted filename characters
19951 Only Invalid UTF-8 bytes will be replaced (https://rclone.org/over‐
19952 view/#invalid-utf8), as they can't be used in JSON strings.
19953
19954 In contrast to other backends, / can also be used in names and . or ..
19955 are valid names.
19956
19957 Revisions
19958 Google drive stores revisions of files. When you upload a change to an
19959 existing file to google drive using rclone it will create a new revi‐
19960 sion of that file.
19961
19962 Revisions follow the standard google policy which at time of writing
19963 was
19964
19965 · They are deleted after 30 days or 100 revisions (whatever comes
19966 first).
19967
19968 · They do not count towards a user storage quota.
19969
19970 Deleting files
19971 By default rclone will send all files to the trash when deleting files.
19972 If deleting them permanently is required then use the
19973 --drive-use-trash=false flag, or set the equivalent environment vari‐
19974 able.
19975
19976 Shortcuts
19977 In March 2020 Google introduced a new feature in Google Drive called
19978 drive shortcuts (https://support.google.com/drive/answer/9700156) (API
19979 (https://developers.google.com/drive/api/v3/shortcuts)). These will
19980 (by September 2020) replace the ability for files or folders to be in
19981 multiple folders at once (https://cloud.google.com/blog/products/g-
19982 suite/simplifying-google-drives-folder-structure-and-sharing-models).
19983
19984 Shortcuts are files that link to other files on Google Drive somewhat
19985 like a symlink in unix, except they point to the underlying file data
19986 (e.g. the inode in unix terms) so they don't break if the source is
19987 renamed or moved about.
19988
19989 Be default rclone treats these as follows.
19990
19991 For shortcuts pointing to files:
19992
19993 · When listing a file shortcut appears as the destination file.
19994
19995 · When downloading the contents of the destination file is downloaded.
19996
19997 · When updating shortcut file with a non shortcut file, the shortcut is
19998 removed then a new file is uploaded in place of the shortcut.
19999
20000 · When server-side moving (renaming) the shortcut is renamed, not the
20001 destination file.
20002
20003 · When server-side copying the shortcut is copied, not the contents of
20004 the shortcut.
20005
20006 · When deleting the shortcut is deleted not the linked file.
20007
20008 · When setting the modification time, the modification time of the
20009 linked file will be set.
20010
20011 For shortcuts pointing to folders:
20012
20013 · When listing the shortcut appears as a folder and that folder will
20014 contain the contents of the linked folder appear (including any sub
20015 folders)
20016
20017 · When downloading the contents of the linked folder and sub contents
20018 are downloaded
20019
20020 · When uploading to a shortcut folder the file will be placed in the
20021 linked folder
20022
20023 · When server-side moving (renaming) the shortcut is renamed, not the
20024 destination folder
20025
20026 · When server-side copying the contents of the linked folder is copied,
20027 not the shortcut.
20028
20029 · When deleting with rclone rmdir or rclone purge the shortcut is
20030 deleted not the linked folder.
20031
20032 · NB When deleting with rclone remove or rclone mount the contents of
20033 the linked folder will be deleted.
20034
20035 The rclone backend (https://rclone.org/commands/rclone_backend/) com‐
20036 mand can be used to create shortcuts.
20037
20038 Shortcuts can be completely ignored with the --drive-skip-shortcuts
20039 flag or the corresponding skip_shortcuts configuration setting.
20040
20041 Emptying trash
20042 If you wish to empty your trash you can use the rclone cleanup remote:
20043 command which will permanently delete all your trashed files. This
20044 command does not take any path arguments.
20045
20046 Note that Google Drive takes some time (minutes to days) to empty the
20047 trash even though the command returns within a few seconds. No output
20048 is echoed, so there will be no confirmation even using -v or -vv.
20049
20050 Quota information
20051 To view your current quota you can use the rclone about remote: command
20052 which will display your usage limit (quota), the usage in Google Drive,
20053 the size of all files in the Trash and the space used by other Google
20054 services such as Gmail. This command does not take any path arguments.
20055
20056 Import/Export of google documents
20057 Google documents can be exported from and uploaded to Google Drive.
20058
20059 When rclone downloads a Google doc it chooses a format to download de‐
20060 pending upon the --drive-export-formats setting. By default the export
20061 formats are docx,xlsx,pptx,svg which are a sensible default for an ed‐
20062 itable document.
20063
20064 When choosing a format, rclone runs down the list provided in order and
20065 chooses the first file format the doc can be exported as from the list.
20066 If the file can't be exported to a format on the formats list, then
20067 rclone will choose a format from the default list.
20068
20069 If you prefer an archive copy then you might use --drive-export-formats
20070 pdf, or if you prefer openoffice/libreoffice formats you might use
20071 --drive-export-formats ods,odt,odp.
20072
20073 Note that rclone adds the extension to the google doc, so if it is
20074 called My Spreadsheet on google docs, it will be exported as My Spread‐
20075 sheet.xlsx or My Spreadsheet.pdf etc.
20076
20077 When importing files into Google Drive, rclone will convert all files
20078 with an extension in --drive-import-formats to their associated docu‐
20079 ment type. rclone will not convert any files by default, since the
20080 conversion is lossy process.
20081
20082 The conversion must result in a file with the same extension when the
20083 --drive-export-formats rules are applied to the uploaded document.
20084
20085 Here are some examples for allowed and prohibited conversions.
20086
20087 export-for‐ import-for‐ Upload Ext Document Ext Allowed
20088 mats mats
20089 ────────────────────────────────────────────────────────────────
20090 odt odt odt odt Yes
20091 odt docx,odt odt odt Yes
20092 docx docx docx Yes
20093 odt odt docx No
20094 odt,docx docx,odt docx odt No
20095 docx,odt docx,odt docx docx Yes
20096 docx,odt docx,odt odt docx No
20097
20098 This limitation can be disabled by specifying --drive-allow-im‐
20099 port-name-change. When using this flag, rclone can convert multiple
20100 files types resulting in the same document type at once, e.g. with
20101 --drive-import-formats docx,odt,txt, all files having these extension
20102 would result in a document represented as a docx file. This brings the
20103 additional risk of overwriting a document, if multiple files have the
20104 same stem. Many rclone operations will not handle this name change in
20105 any way. They assume an equal name when copying files and might copy
20106 the file again or delete them when the name changes.
20107
20108 Here are the possible export extensions with their corresponding mime
20109 types. Most of these can also be used for importing, but there more
20110 that are not listed here. Some of these additional ones might only be
20111 available when the operating system provides the correct MIME type en‐
20112 tries.
20113
20114 This list can be changed by Google Drive at any time and might not rep‐
20115 resent the currently available conversions.
20116
20117 Extension Mime Type Description
20118 ─────────────────────────────────────────────────────────────────────────────────────
20119 csv text/csv Standard CSV format for
20120 Spreadsheets
20121 docx application/vnd.openxml‐ Microsoft Office Document
20122 formats-officedocu‐
20123 ment.wordprocess‐
20124 ingml.document
20125 epub application/epub+zip E-book format
20126 html text/html An HTML Document
20127 jpg image/jpeg A JPEG Image File
20128 json applica‐ JSON Text Format
20129 tion/vnd.google-apps.script+json
20130 odp application/vnd.oasis.opendocu‐ Openoffice Presentation
20131 ment.presentation
20132 ods application/vnd.oasis.opendocu‐ Openoffice Spreadsheet
20133 ment.spreadsheet
20134 ods application/x-vnd.oasis.opendoc‐ Openoffice Spreadsheet
20135 ument.spreadsheet
20136 odt application/vnd.oasis.opendocu‐ Openoffice Document
20137 ment.text
20138 pdf application/pdf Adobe PDF Format
20139 png image/png PNG Image Format
20140 pptx application/vnd.openxmlfor‐ Microsoft Office Power‐
20141 mats-officedocument.presenta‐ point
20142 tionml.presentation
20143 rtf application/rtf Rich Text Format
20144 svg image/svg+xml Scalable Vector Graphics
20145 Format
20146 tsv text/tab-separated-values Standard TSV format for
20147 spreadsheets
20148 txt text/plain Plain Text
20149 xlsx application/vnd.openxmlfor‐ Microsoft Office Spread‐
20150 mats-officedocument.spread‐ sheet
20151 sheetml.sheet
20152 zip application/zip A ZIP file of HTML, Images
20153 CSS
20154
20155 Google documents can also be exported as link files. These files will
20156 open a browser window for the Google Docs website of that document when
20157 opened. The link file extension has to be specified as a --drive-ex‐
20158 port-formats parameter. They will match all available Google Docu‐
20159 ments.
20160
20161 Extension Description OS Support
20162 ─────────────────────────────────────────────────
20163 desktop freedesktop.org Linux
20164 specified desktop
20165 entry
20166 link.html An HTML Document All
20167 with a redirect
20168 url INI style link file macOS, Windows
20169 webloc macOS specific XML macOS
20170 format
20171
20172 Standard Options
20173 Here are the standard options specific to drive (Google Drive).
20174
20175 --drive-client-id
20176 Google Application Client Id Setting your own is recommended. See
20177 https://rclone.org/drive/#making-your-own-client-id for how to create
20178 your own. If you leave this blank, it will use an internal key which
20179 is low performance.
20180
20181 · Config: client_id
20182
20183 · Env Var: RCLONE_DRIVE_CLIENT_ID
20184
20185 · Type: string
20186
20187 · Default: ""
20188
20189 --drive-client-secret
20190 OAuth Client Secret Leave blank normally.
20191
20192 · Config: client_secret
20193
20194 · Env Var: RCLONE_DRIVE_CLIENT_SECRET
20195
20196 · Type: string
20197
20198 · Default: ""
20199
20200 --drive-scope
20201 Scope that rclone should use when requesting access from drive.
20202
20203 · Config: scope
20204
20205 · Env Var: RCLONE_DRIVE_SCOPE
20206
20207 · Type: string
20208
20209 · Default: ""
20210
20211 · Examples:
20212
20213 · "drive"
20214
20215 · Full access all files, excluding Application Data Folder.
20216
20217 · "drive.readonly"
20218
20219 · Read-only access to file metadata and file contents.
20220
20221 · "drive.file"
20222
20223 · Access to files created by rclone only.
20224
20225 · These are visible in the drive website.
20226
20227 · File authorization is revoked when the user deauthorizes the app.
20228
20229 · "drive.appfolder"
20230
20231 · Allows read and write access to the Application Data folder.
20232
20233 · This is not visible in the drive website.
20234
20235 · "drive.metadata.readonly"
20236
20237 · Allows read-only access to file metadata but
20238
20239 · does not allow any access to read or download file content.
20240
20241 --drive-root-folder-id
20242 ID of the root folder Leave blank normally.
20243
20244 Fill in to access "Computers" folders (see docs), or for rclone to use
20245 a non root folder as its starting point.
20246
20247 · Config: root_folder_id
20248
20249 · Env Var: RCLONE_DRIVE_ROOT_FOLDER_ID
20250
20251 · Type: string
20252
20253 · Default: ""
20254
20255 --drive-service-account-file
20256 Service Account Credentials JSON file path Leave blank normally. Need‐
20257 ed only if you want use SA instead of interactive login.
20258
20259 Leading ~ will be expanded in the file name as will environment vari‐
20260 ables such as ${RCLONE_CONFIG_DIR}.
20261
20262 · Config: service_account_file
20263
20264 · Env Var: RCLONE_DRIVE_SERVICE_ACCOUNT_FILE
20265
20266 · Type: string
20267
20268 · Default: ""
20269
20270 --drive-alternate-export
20271 Deprecated: no longer needed
20272
20273 · Config: alternate_export
20274
20275 · Env Var: RCLONE_DRIVE_ALTERNATE_EXPORT
20276
20277 · Type: bool
20278
20279 · Default: false
20280
20281 Advanced Options
20282 Here are the advanced options specific to drive (Google Drive).
20283
20284 --drive-token
20285 OAuth Access Token as a JSON blob.
20286
20287 · Config: token
20288
20289 · Env Var: RCLONE_DRIVE_TOKEN
20290
20291 · Type: string
20292
20293 · Default: ""
20294
20295 --drive-auth-url
20296 Auth server URL. Leave blank to use the provider defaults.
20297
20298 · Config: auth_url
20299
20300 · Env Var: RCLONE_DRIVE_AUTH_URL
20301
20302 · Type: string
20303
20304 · Default: ""
20305
20306 --drive-token-url
20307 Token server url. Leave blank to use the provider defaults.
20308
20309 · Config: token_url
20310
20311 · Env Var: RCLONE_DRIVE_TOKEN_URL
20312
20313 · Type: string
20314
20315 · Default: ""
20316
20317 --drive-service-account-credentials
20318 Service Account Credentials JSON blob Leave blank normally. Needed on‐
20319 ly if you want use SA instead of interactive login.
20320
20321 · Config: service_account_credentials
20322
20323 · Env Var: RCLONE_DRIVE_SERVICE_ACCOUNT_CREDENTIALS
20324
20325 · Type: string
20326
20327 · Default: ""
20328
20329 --drive-team-drive
20330 ID of the Team Drive
20331
20332 · Config: team_drive
20333
20334 · Env Var: RCLONE_DRIVE_TEAM_DRIVE
20335
20336 · Type: string
20337
20338 · Default: ""
20339
20340 --drive-auth-owner-only
20341 Only consider files owned by the authenticated user.
20342
20343 · Config: auth_owner_only
20344
20345 · Env Var: RCLONE_DRIVE_AUTH_OWNER_ONLY
20346
20347 · Type: bool
20348
20349 · Default: false
20350
20351 --drive-use-trash
20352 Send files to the trash instead of deleting permanently. Defaults to
20353 true, namely sending files to the trash. Use --drive-use-trash=false
20354 to delete files permanently instead.
20355
20356 · Config: use_trash
20357
20358 · Env Var: RCLONE_DRIVE_USE_TRASH
20359
20360 · Type: bool
20361
20362 · Default: true
20363
20364 --drive-skip-gdocs
20365 Skip google documents in all listings. If given, gdocs practically be‐
20366 come invisible to rclone.
20367
20368 · Config: skip_gdocs
20369
20370 · Env Var: RCLONE_DRIVE_SKIP_GDOCS
20371
20372 · Type: bool
20373
20374 · Default: false
20375
20376 --drive-skip-checksum-gphotos
20377 Skip MD5 checksum on Google photos and videos only.
20378
20379 Use this if you get checksum errors when transferring Google photos or
20380 videos.
20381
20382 Setting this flag will cause Google photos and videos to return a blank
20383 MD5 checksum.
20384
20385 Google photos are identified by being in the "photos" space.
20386
20387 Corrupted checksums are caused by Google modifying the image/video but
20388 not updating the checksum.
20389
20390 · Config: skip_checksum_gphotos
20391
20392 · Env Var: RCLONE_DRIVE_SKIP_CHECKSUM_GPHOTOS
20393
20394 · Type: bool
20395
20396 · Default: false
20397
20398 --drive-shared-with-me
20399 Only show files that are shared with me.
20400
20401 Instructs rclone to operate on your "Shared with me" folder (where
20402 Google Drive lets you access the files and folders others have shared
20403 with you).
20404
20405 This works both with the "list" (lsd, lsl, etc.) and the "copy" com‐
20406 mands (copy, sync, etc.), and with all other commands too.
20407
20408 · Config: shared_with_me
20409
20410 · Env Var: RCLONE_DRIVE_SHARED_WITH_ME
20411
20412 · Type: bool
20413
20414 · Default: false
20415
20416 --drive-trashed-only
20417 Only show files that are in the trash. This will show trashed files in
20418 their original directory structure.
20419
20420 · Config: trashed_only
20421
20422 · Env Var: RCLONE_DRIVE_TRASHED_ONLY
20423
20424 · Type: bool
20425
20426 · Default: false
20427
20428 --drive-starred-only
20429 Only show files that are starred.
20430
20431 · Config: starred_only
20432
20433 · Env Var: RCLONE_DRIVE_STARRED_ONLY
20434
20435 · Type: bool
20436
20437 · Default: false
20438
20439 --drive-formats
20440 Deprecated: see export_formats
20441
20442 · Config: formats
20443
20444 · Env Var: RCLONE_DRIVE_FORMATS
20445
20446 · Type: string
20447
20448 · Default: ""
20449
20450 --drive-export-formats
20451 Comma separated list of preferred formats for downloading Google docs.
20452
20453 · Config: export_formats
20454
20455 · Env Var: RCLONE_DRIVE_EXPORT_FORMATS
20456
20457 · Type: string
20458
20459 · Default: "docx,xlsx,pptx,svg"
20460
20461 --drive-import-formats
20462 Comma separated list of preferred formats for uploading Google docs.
20463
20464 · Config: import_formats
20465
20466 · Env Var: RCLONE_DRIVE_IMPORT_FORMATS
20467
20468 · Type: string
20469
20470 · Default: ""
20471
20472 --drive-allow-import-name-change
20473 Allow the filetype to change when uploading Google docs (e.g. file.doc
20474 to file.docx). This will confuse sync and reupload every time.
20475
20476 · Config: allow_import_name_change
20477
20478 · Env Var: RCLONE_DRIVE_ALLOW_IMPORT_NAME_CHANGE
20479
20480 · Type: bool
20481
20482 · Default: false
20483
20484 --drive-use-created-date
20485 Use file created date instead of modified date.,
20486
20487 Useful when downloading data and you want the creation date used in
20488 place of the last modified date.
20489
20490 WARNING: This flag may have some unexpected consequences.
20491
20492 When uploading to your drive all files will be overwritten unless they
20493 haven't been modified since their creation. And the inverse will occur
20494 while downloading. This side effect can be avoided by using the
20495 "--checksum" flag.
20496
20497 This feature was implemented to retain photos capture date as recorded
20498 by google photos. You will first need to check the "Create a Google
20499 Photos folder" option in your google drive settings. You can then copy
20500 or move the photos locally and use the date the image was taken (creat‐
20501 ed) set as the modification date.
20502
20503 · Config: use_created_date
20504
20505 · Env Var: RCLONE_DRIVE_USE_CREATED_DATE
20506
20507 · Type: bool
20508
20509 · Default: false
20510
20511 --drive-use-shared-date
20512 Use date file was shared instead of modified date.
20513
20514 Note that, as with "--drive-use-created-date", this flag may have unex‐
20515 pected consequences when uploading/downloading files.
20516
20517 If both this flag and "--drive-use-created-date" are set, the created
20518 date is used.
20519
20520 · Config: use_shared_date
20521
20522 · Env Var: RCLONE_DRIVE_USE_SHARED_DATE
20523
20524 · Type: bool
20525
20526 · Default: false
20527
20528 --drive-list-chunk
20529 Size of listing chunk 100-1000. 0 to disable.
20530
20531 · Config: list_chunk
20532
20533 · Env Var: RCLONE_DRIVE_LIST_CHUNK
20534
20535 · Type: int
20536
20537 · Default: 1000
20538
20539 --drive-impersonate
20540 Impersonate this user when using a service account.
20541
20542 · Config: impersonate
20543
20544 · Env Var: RCLONE_DRIVE_IMPERSONATE
20545
20546 · Type: string
20547
20548 · Default: ""
20549
20550 --drive-upload-cutoff
20551 Cutoff for switching to chunked upload
20552
20553 · Config: upload_cutoff
20554
20555 · Env Var: RCLONE_DRIVE_UPLOAD_CUTOFF
20556
20557 · Type: SizeSuffix
20558
20559 · Default: 8M
20560
20561 --drive-chunk-size
20562 Upload chunk size. Must a power of 2 >= 256k.
20563
20564 Making this larger will improve performance, but note that each chunk
20565 is buffered in memory one per transfer.
20566
20567 Reducing this will reduce memory usage but decrease performance.
20568
20569 · Config: chunk_size
20570
20571 · Env Var: RCLONE_DRIVE_CHUNK_SIZE
20572
20573 · Type: SizeSuffix
20574
20575 · Default: 8M
20576
20577 --drive-acknowledge-abuse
20578 Set to allow files which return cannotDownloadAbusiveFile to be down‐
20579 loaded.
20580
20581 If downloading a file returns the error "This file has been identified
20582 as malware or spam and cannot be downloaded" with the error code "can‐
20583 notDownloadAbusiveFile" then supply this flag to rclone to indicate you
20584 acknowledge the risks of downloading the file and rclone will download
20585 it anyway.
20586
20587 · Config: acknowledge_abuse
20588
20589 · Env Var: RCLONE_DRIVE_ACKNOWLEDGE_ABUSE
20590
20591 · Type: bool
20592
20593 · Default: false
20594
20595 --drive-keep-revision-forever
20596 Keep new head revision of each file forever.
20597
20598 · Config: keep_revision_forever
20599
20600 · Env Var: RCLONE_DRIVE_KEEP_REVISION_FOREVER
20601
20602 · Type: bool
20603
20604 · Default: false
20605
20606 --drive-size-as-quota
20607 Show sizes as storage quota usage, not actual size.
20608
20609 Show the size of a file as the storage quota used. This is the current
20610 version plus any older versions that have been set to keep forever.
20611
20612 WARNING: This flag may have some unexpected consequences.
20613
20614 It is not recommended to set this flag in your config - the recommended
20615 usage is using the flag form --drive-size-as-quota when doing rclone
20616 ls/lsl/lsf/lsjson/etc only.
20617
20618 If you do use this flag for syncing (not recommended) then you will
20619 need to use --ignore size also.
20620
20621 · Config: size_as_quota
20622
20623 · Env Var: RCLONE_DRIVE_SIZE_AS_QUOTA
20624
20625 · Type: bool
20626
20627 · Default: false
20628
20629 --drive-v2-download-min-size
20630 If Object's are greater, use drive v2 API to download.
20631
20632 · Config: v2_download_min_size
20633
20634 · Env Var: RCLONE_DRIVE_V2_DOWNLOAD_MIN_SIZE
20635
20636 · Type: SizeSuffix
20637
20638 · Default: off
20639
20640 --drive-pacer-min-sleep
20641 Minimum time to sleep between API calls.
20642
20643 · Config: pacer_min_sleep
20644
20645 · Env Var: RCLONE_DRIVE_PACER_MIN_SLEEP
20646
20647 · Type: Duration
20648
20649 · Default: 100ms
20650
20651 --drive-pacer-burst
20652 Number of API calls to allow without sleeping.
20653
20654 · Config: pacer_burst
20655
20656 · Env Var: RCLONE_DRIVE_PACER_BURST
20657
20658 · Type: int
20659
20660 · Default: 100
20661
20662 --drive-server-side-across-configs
20663 Allow server-side operations (e.g. copy) to work across different
20664 drive configs.
20665
20666 This can be useful if you wish to do a server-side copy between two
20667 different Google drives. Note that this isn't enabled by default be‐
20668 cause it isn't easy to tell if it will work between any two configura‐
20669 tions.
20670
20671 · Config: server_side_across_configs
20672
20673 · Env Var: RCLONE_DRIVE_SERVER_SIDE_ACROSS_CONFIGS
20674
20675 · Type: bool
20676
20677 · Default: false
20678
20679 --drive-disable-http2
20680 Disable drive using http2
20681
20682 There is currently an unsolved issue with the google drive backend and
20683 HTTP/2. HTTP/2 is therefore disabled by default for the drive backend
20684 but can be re-enabled here. When the issue is solved this flag will be
20685 removed.
20686
20687 See: https://github.com/rclone/rclone/issues/3631
20688
20689 · Config: disable_http2
20690
20691 · Env Var: RCLONE_DRIVE_DISABLE_HTTP2
20692
20693 · Type: bool
20694
20695 · Default: true
20696
20697 --drive-stop-on-upload-limit
20698 Make upload limit errors be fatal
20699
20700 At the time of writing it is only possible to upload 750GB of data to
20701 Google Drive a day (this is an undocumented limit). When this limit is
20702 reached Google Drive produces a slightly different error message. When
20703 this flag is set it causes these errors to be fatal. These will stop
20704 the in-progress sync.
20705
20706 Note that this detection is relying on error message strings which
20707 Google don't document so it may break in the future.
20708
20709 See: https://github.com/rclone/rclone/issues/3857
20710
20711 · Config: stop_on_upload_limit
20712
20713 · Env Var: RCLONE_DRIVE_STOP_ON_UPLOAD_LIMIT
20714
20715 · Type: bool
20716
20717 · Default: false
20718
20719 --drive-stop-on-download-limit
20720 Make download limit errors be fatal
20721
20722 At the time of writing it is only possible to download 10TB of data
20723 from Google Drive a day (this is an undocumented limit). When this
20724 limit is reached Google Drive produces a slightly different error mes‐
20725 sage. When this flag is set it causes these errors to be fatal. These
20726 will stop the in-progress sync.
20727
20728 Note that this detection is relying on error message strings which
20729 Google don't document so it may break in the future.
20730
20731 · Config: stop_on_download_limit
20732
20733 · Env Var: RCLONE_DRIVE_STOP_ON_DOWNLOAD_LIMIT
20734
20735 · Type: bool
20736
20737 · Default: false
20738
20739 --drive-skip-shortcuts
20740 If set skip shortcut files
20741
20742 Normally rclone dereferences shortcut files making them appear as if
20743 they are the original file (see the shortcuts section). If this flag
20744 is set then rclone will ignore shortcut files completely.
20745
20746 · Config: skip_shortcuts
20747
20748 · Env Var: RCLONE_DRIVE_SKIP_SHORTCUTS
20749
20750 · Type: bool
20751
20752 · Default: false
20753
20754 --drive-encoding
20755 This sets the encoding for the backend.
20756
20757 See: the encoding section in the overview (https://rclone.org/over‐
20758 view/#encoding) for more info.
20759
20760 · Config: encoding
20761
20762 · Env Var: RCLONE_DRIVE_ENCODING
20763
20764 · Type: MultiEncoder
20765
20766 · Default: InvalidUtf8
20767
20768 Backend commands
20769 Here are the commands specific to the drive backend.
20770
20771 Run them with
20772
20773 rclone backend COMMAND remote:
20774
20775 The help below will explain what arguments each command takes.
20776
20777 See the "rclone backend" command (https://rclone.org/com‐
20778 mands/rclone_backend/) for more info on how to pass options and argu‐
20779 ments.
20780
20781 These can be run on a running backend using the rc command backend/com‐
20782 mand (https://rclone.org/rc/#backend/command).
20783
20784 get
20785 Get command for fetching the drive config parameters
20786
20787 rclone backend get remote: [options] [<arguments>+]
20788
20789 This is a get command which will be used to fetch the various drive
20790 config parameters
20791
20792 Usage Examples:
20793
20794 rclone backend get drive: [-o service_account_file] [-o chunk_size]
20795 rclone rc backend/command command=get fs=drive: [-o service_account_file] [-o chunk_size]
20796
20797 Options:
20798
20799 · "chunk_size": show the current upload chunk size
20800
20801 · "service_account_file": show the current service account file
20802
20803 set
20804 Set command for updating the drive config parameters
20805
20806 rclone backend set remote: [options] [<arguments>+]
20807
20808 This is a set command which will be used to update the various drive
20809 config parameters
20810
20811 Usage Examples:
20812
20813 rclone backend set drive: [-o service_account_file=sa.json] [-o chunk_size=67108864]
20814 rclone rc backend/command command=set fs=drive: [-o service_account_file=sa.json] [-o chunk_size=67108864]
20815
20816 Options:
20817
20818 · "chunk_size": update the current upload chunk size
20819
20820 · "service_account_file": update the current service account file
20821
20822 shortcut
20823 Create shortcuts from files or directories
20824
20825 rclone backend shortcut remote: [options] [<arguments>+]
20826
20827 This command creates shortcuts from files or directories.
20828
20829 Usage:
20830
20831 rclone backend shortcut drive: source_item destination_shortcut
20832 rclone backend shortcut drive: source_item -o target=drive2: destination_shortcut
20833
20834 In the first example this creates a shortcut from the "source_item"
20835 which can be a file or a directory to the "destination_shortcut". The
20836 "source_item" and the "destination_shortcut" should be relative paths
20837 from "drive:"
20838
20839 In the second example this creates a shortcut from the "source_item"
20840 relative to "drive:" to the "destination_shortcut" relative to
20841 "drive2:". This may fail with a permission error if the user authenti‐
20842 cated with "drive2:" can't read files from "drive:".
20843
20844 Options:
20845
20846 · "target": optional target remote for the shortcut destination
20847
20848 drives
20849 List the shared drives available to this account
20850
20851 rclone backend drives remote: [options] [<arguments>+]
20852
20853 This command lists the shared drives (teamdrives) available to this ac‐
20854 count.
20855
20856 Usage:
20857
20858 rclone backend drives drive:
20859
20860 This will return a JSON list of objects like this
20861
20862 [
20863 {
20864 "id": "0ABCDEF-01234567890",
20865 "kind": "drive#teamDrive",
20866 "name": "My Drive"
20867 },
20868 {
20869 "id": "0ABCDEFabcdefghijkl",
20870 "kind": "drive#teamDrive",
20871 "name": "Test Drive"
20872 }
20873 ]
20874
20875 untrash
20876 Untrash files and directories
20877
20878 rclone backend untrash remote: [options] [<arguments>+]
20879
20880 This command untrashes all the files and directories in the directory
20881 passed in recursively.
20882
20883 Usage:
20884
20885 This takes an optional directory to trash which make this easier to use
20886 via the API.
20887
20888 rclone backend untrash drive:directory
20889 rclone backend -i untrash drive:directory subdir
20890
20891 Use the -i flag to see what would be restored before restoring it.
20892
20893 Result:
20894
20895 {
20896 "Untrashed": 17,
20897 "Errors": 0
20898 }
20899
20900 copyid
20901 Copy files by ID
20902
20903 rclone backend copyid remote: [options] [<arguments>+]
20904
20905 This command copies files by ID
20906
20907 Usage:
20908
20909 rclone backend copyid drive: ID path
20910 rclone backend copyid drive: ID1 path1 ID2 path2
20911
20912 It copies the drive file with ID given to the path (an rclone path
20913 which will be passed internally to rclone copyto). The ID and path
20914 pairs can be repeated.
20915
20916 The path should end with a / to indicate copy the file as named to this
20917 directory. If it doesn't end with a / then the last path component
20918 will be used as the file name.
20919
20920 If the destination is a drive backend then server-side copying will be
20921 attempted if possible.
20922
20923 Use the -i flag to see what would be copied before copying.
20924
20925 Limitations
20926 Drive has quite a lot of rate limiting. This causes rclone to be lim‐
20927 ited to transferring about 2 files per second only. Individual files
20928 may be transferred much faster at 100s of MBytes/s but lots of small
20929 files can take a long time.
20930
20931 Server side copies are also subject to a separate rate limit. If you
20932 see User rate limit exceeded errors, wait at least 24 hours and retry.
20933 You can disable server-side copies with --disable copy to download and
20934 upload the files if you prefer.
20935
20936 Limitations of Google Docs
20937 Google docs will appear as size -1 in rclone ls and as size 0 in any‐
20938 thing which uses the VFS layer, e.g. rclone mount, rclone serve.
20939
20940 This is because rclone can't find out the size of the Google docs with‐
20941 out downloading them.
20942
20943 Google docs will transfer correctly with rclone sync, rclone copy etc
20944 as rclone knows to ignore the size when doing the transfer.
20945
20946 However an unfortunate consequence of this is that you may not be able
20947 to download Google docs using rclone mount. If it doesn't work you
20948 will get a 0 sized file. If you try again the doc may gain its correct
20949 size and be downloadable. Whether it will work on not depends on the
20950 application accessing the mount and the OS you are running - experiment
20951 to find out if it does work for you!
20952
20953 Duplicated files
20954 Sometimes, for no reason I've been able to track down, drive will du‐
20955 plicate a file that rclone uploads. Drive unlike all the other remotes
20956 can have duplicated files.
20957
20958 Duplicated files cause problems with the syncing and you will see mes‐
20959 sages in the log about duplicates.
20960
20961 Use rclone dedupe to fix duplicated files.
20962
20963 Note that this isn't just a problem with rclone, even Google Photos on
20964 Android duplicates files on drive sometimes.
20965
20966 Rclone appears to be re-copying files it shouldn't
20967 The most likely cause of this is the duplicated file issue above - run
20968 rclone dedupe and check your logs for duplicate object or directory
20969 messages.
20970
20971 This can also be caused by a delay/caching on google drive's end when
20972 comparing directory listings. Specifically with team drives used in
20973 combination with --fast-list. Files that were uploaded recently may
20974 not appear on the directory list sent to rclone when using --fast-list.
20975
20976 Waiting a moderate period of time between attempts (estimated to be ap‐
20977 proximately 1 hour) and/or not using --fast-list both seem to be effec‐
20978 tive in preventing the problem.
20979
20980 Making your own client_id
20981 When you use rclone with Google drive in its default configuration you
20982 are using rclone's client_id. This is shared between all the rclone
20983 users. There is a global rate limit on the number of queries per sec‐
20984 ond that each client_id can do set by Google. rclone already has a
20985 high quota and I will continue to make sure it is high enough by con‐
20986 tacting Google.
20987
20988 It is strongly recommended to use your own client ID as the default
20989 rclone ID is heavily used. If you have multiple services running, it
20990 is recommended to use an API key for each service. The default Google
20991 quota is 10 transactions per second so it is recommended to stay under
20992 that number as if you use more than that, it will cause rclone to rate
20993 limit and make things slower.
20994
20995 Here is how to create your own Google Drive client ID for rclone:
20996
20997 1. Log into the Google API Console (https://console.develop‐
20998 ers.google.com/) with your Google account. It doesn't matter what
20999 Google account you use. (It need not be the same account as the
21000 Google Drive you want to access)
21001
21002 2. Select a project or create a new project.
21003
21004 3. Under "ENABLE APIS AND SERVICES" search for "Drive", and enable the
21005 "Google Drive API".
21006
21007 4. Click "Credentials" in the left-side panel (not "Create creden‐
21008 tials", which opens the wizard), then "Create credentials"
21009
21010 5. If you already configured an "Oauth Consent Screen", then skip to
21011 the next step; if not, click on "CONFIGURE CONSENT SCREEN" button
21012 (near the top right corner of the right panel), then select "Exter‐
21013 nal" and click on "CREATE"; on the next screen, enter an "Applica‐
21014 tion name" ("rclone" is OK) then click on "Save" (all other data is
21015 optional). Click again on "Credentials" on the left panel to go
21016 back to the "Credentials" screen.
21017
21018 (PS: if you are a GSuite user, you could also select "Internal" instead
21019 of "External" above, but this has not been tested/documented so far).
21020
21021 6. Click on the "+ CREATE CREDENTIALS" button at the top of the screen,
21022 then select "OAuth client ID".
21023
21024 7. Choose an application type of "Desktop app" if you using a Google
21025 account or "Other" if you using a GSuite account and click "Create".
21026 (the default name is fine)
21027
21028 8. It will show you a client ID and client secret. Use these values in
21029 rclone config to add a new remote or edit an existing remote.
21030
21031 Be aware that, due to the "enhanced security" recently introduced by
21032 Google, you are theoretically expected to "submit your app for verifi‐
21033 cation" and then wait a few weeks(!) for their response; in practice,
21034 you can go right ahead and use the client ID and client secret with
21035 rclone, the only issue will be a very scary confirmation screen shown
21036 when you connect via your browser for rclone to be able to get its to‐
21037 ken-id (but as this only happens during the remote configuration, it's
21038 not such a big deal).
21039
21040 (Thanks to @balazer on github for these instructions.)
21041
21042 Sometimes, creation of an OAuth consent in Google API Console fails due
21043 to an error message “The request failed because changes to one of the
21044 field of the resource is not supported”. As a convenient workaround,
21045 the necessary Google Drive API key can be created on the Python Quick‐
21046 start (https://developers.google.com/drive/api/v3/quickstart/python)
21047 page. Just push the Enable the Drive API button to receive the Client
21048 ID and Secret. Note that it will automatically create a new project in
21049 the API Console.
21050
21051 Google Photos
21052 The rclone backend for Google Photos (https://www.google.com/pho‐
21053 tos/about/) is a specialized backend for transferring photos and videos
21054 to and from Google Photos.
21055
21056 NB The Google Photos API which rclone uses has quite a few limitations,
21057 so please read the limitations section carefully to make sure it is
21058 suitable for your use.
21059
21060 Configuring Google Photos
21061 The initial setup for google cloud storage involves getting a token
21062 from Google Photos which you need to do in your browser. rclone config
21063 walks you through it.
21064
21065 Here is an example of how to make a remote called remote. First run:
21066
21067 rclone config
21068
21069 This will guide you through an interactive setup process:
21070
21071 No remotes found - make a new one
21072 n) New remote
21073 s) Set configuration password
21074 q) Quit config
21075 n/s/q> n
21076 name> remote
21077 Type of storage to configure.
21078 Enter a string value. Press Enter for the default ("").
21079 Choose a number from below, or type in your own value
21080 [snip]
21081 XX / Google Photos
21082 \ "google photos"
21083 [snip]
21084 Storage> google photos
21085 ** See help for google photos backend at: https://rclone.org/googlephotos/ **
21086
21087 Google Application Client Id
21088 Leave blank normally.
21089 Enter a string value. Press Enter for the default ("").
21090 client_id>
21091 Google Application Client Secret
21092 Leave blank normally.
21093 Enter a string value. Press Enter for the default ("").
21094 client_secret>
21095 Set to make the Google Photos backend read only.
21096
21097 If you choose read only then rclone will only request read only access
21098 to your photos, otherwise rclone will request full access.
21099 Enter a boolean value (true or false). Press Enter for the default ("false").
21100 read_only>
21101 Edit advanced config? (y/n)
21102 y) Yes
21103 n) No
21104 y/n> n
21105 Remote config
21106 Use auto config?
21107 * Say Y if not sure
21108 * Say N if you are working on a remote or headless machine
21109 y) Yes
21110 n) No
21111 y/n> y
21112 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
21113 Log in and authorize rclone for access
21114 Waiting for code...
21115 Got code
21116
21117 *** IMPORTANT: All media items uploaded to Google Photos with rclone
21118 *** are stored in full resolution at original quality. These uploads
21119 *** will count towards storage in your Google Account.
21120
21121 --------------------
21122 [remote]
21123 type = google photos
21124 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2019-06-28T17:38:04.644930156+01:00"}
21125 --------------------
21126 y) Yes this is OK
21127 e) Edit this remote
21128 d) Delete this remote
21129 y/e/d> y
21130
21131 Note that rclone runs a webserver on your local machine to collect the
21132 token as returned from Google if you use auto config mode. This only
21133 runs from the moment it opens your browser to the moment you get back
21134 the verification code. This is on http://127.0.0.1:53682/ and this may
21135 require you to unblock it temporarily if you are running a host fire‐
21136 wall, or use manual mode.
21137
21138 This remote is called remote and can now be used like this
21139
21140 See all the albums in your photos
21141
21142 rclone lsd remote:album
21143
21144 Make a new album
21145
21146 rclone mkdir remote:album/newAlbum
21147
21148 List the contents of an album
21149
21150 rclone ls remote:album/newAlbum
21151
21152 Sync /home/local/images to the Google Photos, removing any excess files
21153 in the album.
21154
21155 rclone sync -i /home/local/image remote:album/newAlbum
21156
21157 Layout
21158 As Google Photos is not a general purpose cloud storage system the
21159 backend is laid out to help you navigate it.
21160
21161 The directories under media show different ways of categorizing the me‐
21162 dia. Each file will appear multiple times. So if you want to make a
21163 backup of your google photos you might choose to backup remote:me‐
21164 dia/by-month. (NB remote:media/by-day is rather slow at the moment so
21165 avoid for syncing.)
21166
21167 Note that all your photos and videos will appear somewhere under media,
21168 but they may not appear under album unless you've put them into albums.
21169
21170 /
21171 - upload
21172 - file1.jpg
21173 - file2.jpg
21174 - ...
21175 - media
21176 - all
21177 - file1.jpg
21178 - file2.jpg
21179 - ...
21180 - by-year
21181 - 2000
21182 - file1.jpg
21183 - ...
21184 - 2001
21185 - file2.jpg
21186 - ...
21187 - ...
21188 - by-month
21189 - 2000
21190 - 2000-01
21191 - file1.jpg
21192 - ...
21193 - 2000-02
21194 - file2.jpg
21195 - ...
21196 - ...
21197 - by-day
21198 - 2000
21199 - 2000-01-01
21200 - file1.jpg
21201 - ...
21202 - 2000-01-02
21203 - file2.jpg
21204 - ...
21205 - ...
21206 - album
21207 - album name
21208 - album name/sub
21209 - shared-album
21210 - album name
21211 - album name/sub
21212 - feature
21213 - favorites
21214 - file1.jpg
21215 - file2.jpg
21216
21217 There are two writable parts of the tree, the upload directory and sub
21218 directories of the album directory.
21219
21220 The upload directory is for uploading files you don't want to put into
21221 albums. This will be empty to start with and will contain the files
21222 you've uploaded for one rclone session only, becoming empty again when
21223 you restart rclone. The use case for this would be if you have a load
21224 of files you just want to once off dump into Google Photos. For re‐
21225 peated syncing, uploading to album will work better.
21226
21227 Directories within the album directory are also writeable and you may
21228 create new directories (albums) under album. If you copy files with a
21229 directory hierarchy in there then rclone will create albums with the /
21230 character in them. For example if you do
21231
21232 rclone copy /path/to/images remote:album/images
21233
21234 and the images directory contains
21235
21236 images
21237 - file1.jpg
21238 dir
21239 file2.jpg
21240 dir2
21241 dir3
21242 file3.jpg
21243
21244 Then rclone will create the following albums with the following files
21245 in
21246
21247 · images
21248
21249 · file1.jpg
21250
21251 · images/dir
21252
21253 · file2.jpg
21254
21255 · images/dir2/dir3
21256
21257 · file3.jpg
21258
21259 This means that you can use the album path pretty much like a normal
21260 filesystem and it is a good target for repeated syncing.
21261
21262 The shared-album directory shows albums shared with you or by you.
21263 This is similar to the Sharing tab in the Google Photos web interface.
21264
21265 Limitations
21266 Only images and videos can be uploaded. If you attempt to upload non
21267 videos or images or formats that Google Photos doesn't understand,
21268 rclone will upload the file, then Google Photos will give an error when
21269 it is put turned into a media item.
21270
21271 Note that all media items uploaded to Google Photos through the API are
21272 stored in full resolution at "original quality" and will count towards
21273 your storage quota in your Google Account. The API does not offer a
21274 way to upload in "high quality" mode..
21275
21276 rclone about is not supported by the Google Photos backend. Backends
21277 without this capability cannot determine free space for an rclone mount
21278 or use policy mfs (most free space) as a member of an rclone union re‐
21279 mote.
21280
21281 See List of backends that do not support rclone about
21282 (https://rclone.org/overview/#optional-features) See rclone about
21283 (https://rclone.org/commands/rclone_about/)
21284
21285 Downloading Images
21286 When Images are downloaded this strips EXIF location (according to the
21287 docs and my tests). This is a limitation of the Google Photos API and
21288 is covered by bug #112096115 (https://issuetracker.google.com/is‐
21289 sues/112096115).
21290
21291 The current google API does not allow photos to be downloaded at origi‐
21292 nal resolution. This is very important if you are, for example, relying
21293 on "Google Photos" as a backup of your photos. You will not be able to
21294 use rclone to redownload original images. You could use 'google take‐
21295 out' to recover the original photos as a last resort
21296
21297 Downloading Videos
21298 When videos are downloaded they are downloaded in a really compressed
21299 version of the video compared to downloading it via the Google Photos
21300 web interface. This is covered by bug #113672044 (https://issuetrack‐
21301 er.google.com/issues/113672044).
21302
21303 Duplicates
21304 If a file name is duplicated in a directory then rclone will add the
21305 file ID into its name. So two files called file.jpg would then appear
21306 as file {123456}.jpg and file {ABCDEF}.jpg (the actual IDs are a lot
21307 longer alas!).
21308
21309 If you upload the same image (with the same binary data) twice then
21310 Google Photos will deduplicate it. However it will retain the filename
21311 from the first upload which may confuse rclone. For example if you up‐
21312 loaded an image to upload then uploaded the same image to album/my_al‐
21313 bum the filename of the image in album/my_album will be what it was up‐
21314 loaded with initially, not what you uploaded it with to album. In
21315 practise this shouldn't cause too many problems.
21316
21317 Modified time
21318 The date shown of media in Google Photos is the creation date as deter‐
21319 mined by the EXIF information, or the upload date if that is not known.
21320
21321 This is not changeable by rclone and is not the modification date of
21322 the media on local disk. This means that rclone cannot use the dates
21323 from Google Photos for syncing purposes.
21324
21325 Size
21326 The Google Photos API does not return the size of media. This means
21327 that when syncing to Google Photos, rclone can only do a file existence
21328 check.
21329
21330 It is possible to read the size of the media, but this needs an extra
21331 HTTP HEAD request per media item so is very slow and uses up a lot of
21332 transactions. This can be enabled with the --gphotos-read-size option
21333 or the read_size = true config parameter.
21334
21335 If you want to use the backend with rclone mount you may need to enable
21336 this flag (depending on your OS and application using the photos) oth‐
21337 erwise you may not be able to read media off the mount. You'll need to
21338 experiment to see if it works for you without the flag.
21339
21340 Albums
21341 Rclone can only upload files to albums it created. This is a limita‐
21342 tion of the Google Photos API (https://developers.google.com/photos/li‐
21343 brary/guides/manage-albums).
21344
21345 Rclone can remove files it uploaded from albums it created only.
21346
21347 Deleting files
21348 Rclone can remove files from albums it created, but note that the
21349 Google Photos API does not allow media to be deleted permanently so
21350 this media will still remain. See bug #109759781 (https://issuetrack‐
21351 er.google.com/issues/109759781).
21352
21353 Rclone cannot delete files anywhere except under album.
21354
21355 Deleting albums
21356 The Google Photos API does not support deleting albums - see bug
21357 #135714733 (https://issuetracker.google.com/issues/135714733).
21358
21359 Standard Options
21360 Here are the standard options specific to google photos (Google Pho‐
21361 tos).
21362
21363 --gphotos-client-id
21364 OAuth Client Id Leave blank normally.
21365
21366 · Config: client_id
21367
21368 · Env Var: RCLONE_GPHOTOS_CLIENT_ID
21369
21370 · Type: string
21371
21372 · Default: ""
21373
21374 --gphotos-client-secret
21375 OAuth Client Secret Leave blank normally.
21376
21377 · Config: client_secret
21378
21379 · Env Var: RCLONE_GPHOTOS_CLIENT_SECRET
21380
21381 · Type: string
21382
21383 · Default: ""
21384
21385 --gphotos-read-only
21386 Set to make the Google Photos backend read only.
21387
21388 If you choose read only then rclone will only request read only access
21389 to your photos, otherwise rclone will request full access.
21390
21391 · Config: read_only
21392
21393 · Env Var: RCLONE_GPHOTOS_READ_ONLY
21394
21395 · Type: bool
21396
21397 · Default: false
21398
21399 Advanced Options
21400 Here are the advanced options specific to google photos (Google Pho‐
21401 tos).
21402
21403 --gphotos-token
21404 OAuth Access Token as a JSON blob.
21405
21406 · Config: token
21407
21408 · Env Var: RCLONE_GPHOTOS_TOKEN
21409
21410 · Type: string
21411
21412 · Default: ""
21413
21414 --gphotos-auth-url
21415 Auth server URL. Leave blank to use the provider defaults.
21416
21417 · Config: auth_url
21418
21419 · Env Var: RCLONE_GPHOTOS_AUTH_URL
21420
21421 · Type: string
21422
21423 · Default: ""
21424
21425 --gphotos-token-url
21426 Token server url. Leave blank to use the provider defaults.
21427
21428 · Config: token_url
21429
21430 · Env Var: RCLONE_GPHOTOS_TOKEN_URL
21431
21432 · Type: string
21433
21434 · Default: ""
21435
21436 --gphotos-read-size
21437 Set to read the size of media items.
21438
21439 Normally rclone does not read the size of media items since this takes
21440 another transaction. This isn't necessary for syncing. However rclone
21441 mount needs to know the size of files in advance of reading them, so
21442 setting this flag when using rclone mount is recommended if you want to
21443 read the media.
21444
21445 · Config: read_size
21446
21447 · Env Var: RCLONE_GPHOTOS_READ_SIZE
21448
21449 · Type: bool
21450
21451 · Default: false
21452
21453 --gphotos-start-year
21454 Year limits the photos to be downloaded to those which are uploaded af‐
21455 ter the given year
21456
21457 · Config: start_year
21458
21459 · Env Var: RCLONE_GPHOTOS_START_YEAR
21460
21461 · Type: int
21462
21463 · Default: 2000
21464
21465 --gphotos-include-archived
21466 Also view and download archived media.
21467
21468 By default rclone does not request archived media. Thus, when syncing,
21469 archived media is not visible in directory listings or transferred.
21470
21471 Note that media in albums is always visible and synced, no matter their
21472 archive status.
21473
21474 With this flag, archived media are always visible in directory listings
21475 and transferred.
21476
21477 Without this flag, archived media will not be visible in directory
21478 listings and won't be transferred.
21479
21480 · Config: include_archived
21481
21482 · Env Var: RCLONE_GPHOTOS_INCLUDE_ARCHIVED
21483
21484 · Type: bool
21485
21486 · Default: false
21487
21488 HDFS
21489 HDFS (https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-
21490 hdfs/HdfsDesign.html) is a distributed file-system, part of the Apache
21491 Hadoop (https://hadoop.apache.org/) framework.
21492
21493 Paths are specified as remote: or remote:path/to/dir.
21494
21495 Here is an example of how to make a remote called remote. First run:
21496
21497 rclone config
21498
21499 This will guide you through an interactive setup process:
21500
21501 No remotes found - make a new one
21502 n) New remote
21503 s) Set configuration password
21504 q) Quit config
21505 n/s/q> n
21506 name> remote
21507 Type of storage to configure.
21508 Enter a string value. Press Enter for the default ("").
21509 Choose a number from below, or type in your own value
21510 [skip]
21511 XX / Hadoop distributed file system
21512 \ "hdfs"
21513 [skip]
21514 Storage> hdfs
21515 ** See help for hdfs backend at: https://rclone.org/hdfs/ **
21516
21517 hadoop name node and port
21518 Enter a string value. Press Enter for the default ("").
21519 Choose a number from below, or type in your own value
21520 1 / Connect to host namenode at port 8020
21521 \ "namenode:8020"
21522 namenode> namenode.hadoop:8020
21523 hadoop user name
21524 Enter a string value. Press Enter for the default ("").
21525 Choose a number from below, or type in your own value
21526 1 / Connect to hdfs as root
21527 \ "root"
21528 username> root
21529 Edit advanced config? (y/n)
21530 y) Yes
21531 n) No (default)
21532 y/n> n
21533 Remote config
21534 --------------------
21535 [remote]
21536 type = hdfs
21537 namenode = namenode.hadoop:8020
21538 username = root
21539 --------------------
21540 y) Yes this is OK (default)
21541 e) Edit this remote
21542 d) Delete this remote
21543 y/e/d> y
21544 Current remotes:
21545
21546 Name Type
21547 ==== ====
21548 hadoop hdfs
21549
21550 e) Edit existing remote
21551 n) New remote
21552 d) Delete remote
21553 r) Rename remote
21554 c) Copy remote
21555 s) Set configuration password
21556 q) Quit config
21557 e/n/d/r/c/s/q> q
21558
21559 This remote is called remote and can now be used like this
21560
21561 See all the top level directories
21562
21563 rclone lsd remote:
21564
21565 List the contents of a directory
21566
21567 rclone ls remote:directory
21568
21569 Sync the remote directory to /home/local/directory, deleting any excess
21570 files.
21571
21572 rclone sync -i remote:directory /home/local/directory
21573
21574 Setting up your own HDFS instance for testing
21575 You may start with a manual setup (https://hadoop.apache.org/docs/sta‐
21576 ble/hadoop-project-dist/hadoop-common/SingleCluster.html) or use the
21577 docker image from the tests:
21578
21579 If you want to build the docker image
21580
21581 git clone https://github.com/rclone/rclone.git
21582 cd rclone/fstest/testserver/images/test-hdfs
21583 docker build --rm -t rclone/test-hdfs .
21584
21585 Or you can just use the latest one pushed
21586
21587 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
21588
21589 NB it need few seconds to startup.
21590
21591 For this docker image the remote needs to be configured like this:
21592
21593 [remote]
21594 type = hdfs
21595 namenode = 127.0.0.1:8020
21596 username = root
21597
21598 You can stop this image with docker kill rclone-hdfs (NB it does not
21599 use volumes, so all data uploaded will be lost.)
21600
21601 Modified time
21602 Time accurate to 1 second is stored.
21603
21604 Checksum
21605 No checksums are implemented.
21606
21607 Usage information
21608 You can use the rclone about remote: command which will display
21609 filesystem size and current usage.
21610
21611 Restricted filename characters
21612 In addition to the default restricted characters set
21613 (https://rclone.org/overview/#restricted-characters) the following
21614 characters are also replaced:
21615
21616 Character Value Replacement
21617 ────────────────────────────────
21618 : 0x3A :
21619
21620 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
21621 view/#invalid-utf8).
21622
21623 Limitations
21624 · No server-side Move or DirMove.
21625
21626 · Checksums not implemented.
21627
21628 Standard Options
21629 Here are the standard options specific to hdfs (Hadoop distributed file
21630 system).
21631
21632 --hdfs-namenode
21633 hadoop name node and port
21634
21635 · Config: namenode
21636
21637 · Env Var: RCLONE_HDFS_NAMENODE
21638
21639 · Type: string
21640
21641 · Default: ""
21642
21643 · Examples:
21644
21645 · "namenode:8020"
21646
21647 · Connect to host namenode at port 8020
21648
21649 --hdfs-username
21650 hadoop user name
21651
21652 · Config: username
21653
21654 · Env Var: RCLONE_HDFS_USERNAME
21655
21656 · Type: string
21657
21658 · Default: ""
21659
21660 · Examples:
21661
21662 · "root"
21663
21664 · Connect to hdfs as root
21665
21666 Advanced Options
21667 Here are the advanced options specific to hdfs (Hadoop distributed file
21668 system).
21669
21670 --hdfs-service-principal-name
21671 Kerberos service principal name for the namenode
21672
21673 Enables KERBEROS authentication. Specifies the Service Principal Name
21674 (/) for the namenode.
21675
21676 · Config: service_principal_name
21677
21678 · Env Var: RCLONE_HDFS_SERVICE_PRINCIPAL_NAME
21679
21680 · Type: string
21681
21682 · Default: ""
21683
21684 · Examples:
21685
21686 · "hdfs/namenode.hadoop.docker"
21687
21688 · Namenode running as service 'hdfs' with FQDN 'namen‐
21689 ode.hadoop.docker'.
21690
21691 --hdfs-data-transfer-protection
21692 Kerberos data transfer protection: authentication|integrity|privacy
21693
21694 Specifies whether or not authentication, data signature integrity
21695 checks, and wire encryption is required when communicating the the
21696 datanodes. Possible values are 'authentication', 'integrity' and 'pri‐
21697 vacy'. Used only with KERBEROS enabled.
21698
21699 · Config: data_transfer_protection
21700
21701 · Env Var: RCLONE_HDFS_DATA_TRANSFER_PROTECTION
21702
21703 · Type: string
21704
21705 · Default: ""
21706
21707 · Examples:
21708
21709 · "privacy"
21710
21711 · Ensure authentication, integrity and encryption enabled.
21712
21713 --hdfs-encoding
21714 This sets the encoding for the backend.
21715
21716 See: the encoding section in the overview (https://rclone.org/over‐
21717 view/#encoding) for more info.
21718
21719 · Config: encoding
21720
21721 · Env Var: RCLONE_HDFS_ENCODING
21722
21723 · Type: MultiEncoder
21724
21725 · Default: Slash,Colon,Del,Ctl,InvalidUtf8,Dot
21726
21727 HTTP
21728 The HTTP remote is a read only remote for reading files of a webserver.
21729 The webserver should provide file listings which rclone will read and
21730 turn into a remote. This has been tested with common webservers such
21731 as Apache/Nginx/Caddy and will likely work with file listings from most
21732 web servers. (If it doesn't then please file an issue, or send a pull
21733 request!)
21734
21735 Paths are specified as remote: or remote:path/to/dir.
21736
21737 Here is an example of how to make a remote called remote. First run:
21738
21739 rclone config
21740
21741 This will guide you through an interactive setup process:
21742
21743 No remotes found - make a new one
21744 n) New remote
21745 s) Set configuration password
21746 q) Quit config
21747 n/s/q> n
21748 name> remote
21749 Type of storage to configure.
21750 Choose a number from below, or type in your own value
21751 [snip]
21752 XX / http Connection
21753 \ "http"
21754 [snip]
21755 Storage> http
21756 URL of http host to connect to
21757 Choose a number from below, or type in your own value
21758 1 / Connect to example.com
21759 \ "https://example.com"
21760 url> https://beta.rclone.org
21761 Remote config
21762 --------------------
21763 [remote]
21764 url = https://beta.rclone.org
21765 --------------------
21766 y) Yes this is OK
21767 e) Edit this remote
21768 d) Delete this remote
21769 y/e/d> y
21770 Current remotes:
21771
21772 Name Type
21773 ==== ====
21774 remote http
21775
21776 e) Edit existing remote
21777 n) New remote
21778 d) Delete remote
21779 r) Rename remote
21780 c) Copy remote
21781 s) Set configuration password
21782 q) Quit config
21783 e/n/d/r/c/s/q> q
21784
21785 This remote is called remote and can now be used like this
21786
21787 See all the top level directories
21788
21789 rclone lsd remote:
21790
21791 List the contents of a directory
21792
21793 rclone ls remote:directory
21794
21795 Sync the remote directory to /home/local/directory, deleting any excess
21796 files.
21797
21798 rclone sync -i remote:directory /home/local/directory
21799
21800 Read only
21801 This remote is read only - you can't upload files to an HTTP server.
21802
21803 Modified time
21804 Most HTTP servers store time accurate to 1 second.
21805
21806 Checksum
21807 No checksums are stored.
21808
21809 Usage without a config file
21810 Since the http remote only has one config parameter it is easy to use
21811 without a config file:
21812
21813 rclone lsd --http-url https://beta.rclone.org :http:
21814
21815 Standard Options
21816 Here are the standard options specific to http (http Connection).
21817
21818 --http-url
21819 URL of http host to connect to
21820
21821 · Config: url
21822
21823 · Env Var: RCLONE_HTTP_URL
21824
21825 · Type: string
21826
21827 · Default: ""
21828
21829 · Examples:
21830
21831 · "https://example.com"
21832
21833 · Connect to example.com
21834
21835 · "https://user:pass@example.com"
21836
21837 · Connect to example.com using a username and password
21838
21839 Advanced Options
21840 Here are the advanced options specific to http (http Connection).
21841
21842 --http-headers
21843 Set HTTP headers for all transactions
21844
21845 Use this to set additional HTTP headers for all transactions
21846
21847 The input format is comma separated list of key,value pairs. Standard
21848 CSV encoding (https://godoc.org/encoding/csv) may be used.
21849
21850 For example to set a Cookie use 'Cookie,name=value', or '"Cook‐
21851 ie","name=value"'.
21852
21853 You can set multiple headers, e.g. '"Cookie","name=value","Authoriza‐
21854 tion","xxx"'.
21855
21856 · Config: headers
21857
21858 · Env Var: RCLONE_HTTP_HEADERS
21859
21860 · Type: CommaSepList
21861
21862 · Default:
21863
21864 --http-no-slash
21865 Set this if the site doesn't end directories with /
21866
21867 Use this if your target website does not use / on the end of directo‐
21868 ries.
21869
21870 A / on the end of a path is how rclone normally tells the difference
21871 between files and directories. If this flag is set, then rclone will
21872 treat all files with Content-Type: text/html as directories and read
21873 URLs from them rather than downloading them.
21874
21875 Note that this may cause rclone to confuse genuine HTML files with di‐
21876 rectories.
21877
21878 · Config: no_slash
21879
21880 · Env Var: RCLONE_HTTP_NO_SLASH
21881
21882 · Type: bool
21883
21884 · Default: false
21885
21886 --http-no-head
21887 Don't use HEAD requests to find file sizes in dir listing
21888
21889 If your site is being very slow to load then you can try this option.
21890 Normally rclone does a HEAD request for each potential file in a direc‐
21891 tory listing to:
21892
21893 · find its size
21894
21895 · check it really exists
21896
21897 · check to see if it is a directory
21898
21899 If you set this option, rclone will not do the HEAD request. This will
21900 mean
21901
21902 · directory listings are much quicker
21903
21904 · rclone won't have the times or sizes of any files
21905
21906 · some files that don't exist may be in the listing
21907
21908 · Config: no_head
21909
21910 · Env Var: RCLONE_HTTP_NO_HEAD
21911
21912 · Type: bool
21913
21914 · Default: false
21915
21916 Limitations
21917 rclone about is not supported by the HTTP backend. Backends without
21918 this capability cannot determine free space for an rclone mount or use
21919 policy mfs (most free space) as a member of an rclone union remote.
21920
21921 See List of backends that do not support rclone about
21922 (https://rclone.org/overview/#optional-features) See rclone about
21923 (https://rclone.org/commands/rclone_about/)
21924
21925 Hubic
21926 Paths are specified as remote:path
21927
21928 Paths are specified as remote:container (or remote: for the lsd com‐
21929 mand.) You may put subdirectories in too, e.g. remote:contain‐
21930 er/path/to/dir.
21931
21932 The initial setup for Hubic involves getting a token from Hubic which
21933 you need to do in your browser. rclone config walks you through it.
21934
21935 Here is an example of how to make a remote called remote. First run:
21936
21937 rclone config
21938
21939 This will guide you through an interactive setup process:
21940
21941 n) New remote
21942 s) Set configuration password
21943 n/s> n
21944 name> remote
21945 Type of storage to configure.
21946 Choose a number from below, or type in your own value
21947 [snip]
21948 XX / Hubic
21949 \ "hubic"
21950 [snip]
21951 Storage> hubic
21952 Hubic Client Id - leave blank normally.
21953 client_id>
21954 Hubic Client Secret - leave blank normally.
21955 client_secret>
21956 Remote config
21957 Use auto config?
21958 * Say Y if not sure
21959 * Say N if you are working on a remote or headless machine
21960 y) Yes
21961 n) No
21962 y/n> y
21963 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
21964 Log in and authorize rclone for access
21965 Waiting for code...
21966 Got code
21967 --------------------
21968 [remote]
21969 client_id =
21970 client_secret =
21971 token = {"access_token":"XXXXXX"}
21972 --------------------
21973 y) Yes this is OK
21974 e) Edit this remote
21975 d) Delete this remote
21976 y/e/d> y
21977
21978 See the remote setup docs (https://rclone.org/remote_setup/) for how to
21979 set it up on a machine with no Internet browser available.
21980
21981 Note that rclone runs a webserver on your local machine to collect the
21982 token as returned from Hubic. This only runs from the moment it opens
21983 your browser to the moment you get back the verification code. This is
21984 on http://127.0.0.1:53682/ and this it may require you to unblock it
21985 temporarily if you are running a host firewall.
21986
21987 Once configured you can then use rclone like this,
21988
21989 List containers in the top level of your Hubic
21990
21991 rclone lsd remote:
21992
21993 List all the files in your Hubic
21994
21995 rclone ls remote:
21996
21997 To copy a local directory to an Hubic directory called backup
21998
21999 rclone copy /home/source remote:backup
22000
22001 If you want the directory to be visible in the official Hubic browser,
22002 you need to copy your files to the default directory
22003
22004 rclone copy /home/source remote:default/backup
22005
22006 --fast-list
22007 This remote supports --fast-list which allows you to use fewer transac‐
22008 tions in exchange for more memory. See the rclone docs
22009 (https://rclone.org/docs/#fast-list) for more details.
22010
22011 Modified time
22012 The modified time is stored as metadata on the object as X-Ob‐
22013 ject-Meta-Mtime as floating point since the epoch accurate to 1 ns.
22014
22015 This is a de facto standard (used in the official python-swiftclient
22016 amongst others) for storing the modification time for an object.
22017
22018 Note that Hubic wraps the Swift backend, so most of the properties of
22019 are the same.
22020
22021 Standard Options
22022 Here are the standard options specific to hubic (Hubic).
22023
22024 --hubic-client-id
22025 OAuth Client Id Leave blank normally.
22026
22027 · Config: client_id
22028
22029 · Env Var: RCLONE_HUBIC_CLIENT_ID
22030
22031 · Type: string
22032
22033 · Default: ""
22034
22035 --hubic-client-secret
22036 OAuth Client Secret Leave blank normally.
22037
22038 · Config: client_secret
22039
22040 · Env Var: RCLONE_HUBIC_CLIENT_SECRET
22041
22042 · Type: string
22043
22044 · Default: ""
22045
22046 Advanced Options
22047 Here are the advanced options specific to hubic (Hubic).
22048
22049 --hubic-token
22050 OAuth Access Token as a JSON blob.
22051
22052 · Config: token
22053
22054 · Env Var: RCLONE_HUBIC_TOKEN
22055
22056 · Type: string
22057
22058 · Default: ""
22059
22060 --hubic-auth-url
22061 Auth server URL. Leave blank to use the provider defaults.
22062
22063 · Config: auth_url
22064
22065 · Env Var: RCLONE_HUBIC_AUTH_URL
22066
22067 · Type: string
22068
22069 · Default: ""
22070
22071 --hubic-token-url
22072 Token server url. Leave blank to use the provider defaults.
22073
22074 · Config: token_url
22075
22076 · Env Var: RCLONE_HUBIC_TOKEN_URL
22077
22078 · Type: string
22079
22080 · Default: ""
22081
22082 --hubic-chunk-size
22083 Above this size files will be chunked into a _segments container.
22084
22085 Above this size files will be chunked into a _segments container. The
22086 default for this is 5GB which is its maximum value.
22087
22088 · Config: chunk_size
22089
22090 · Env Var: RCLONE_HUBIC_CHUNK_SIZE
22091
22092 · Type: SizeSuffix
22093
22094 · Default: 5G
22095
22096 --hubic-no-chunk
22097 Don't chunk files during streaming upload.
22098
22099 When doing streaming uploads (e.g. using rcat or mount) setting this
22100 flag will cause the swift backend to not upload chunked files.
22101
22102 This will limit the maximum upload size to 5GB. However non chunked
22103 files are easier to deal with and have an MD5SUM.
22104
22105 Rclone will still chunk files bigger than chunk_size when doing normal
22106 copy operations.
22107
22108 · Config: no_chunk
22109
22110 · Env Var: RCLONE_HUBIC_NO_CHUNK
22111
22112 · Type: bool
22113
22114 · Default: false
22115
22116 --hubic-encoding
22117 This sets the encoding for the backend.
22118
22119 See: the encoding section in the overview (https://rclone.org/over‐
22120 view/#encoding) for more info.
22121
22122 · Config: encoding
22123
22124 · Env Var: RCLONE_HUBIC_ENCODING
22125
22126 · Type: MultiEncoder
22127
22128 · Default: Slash,InvalidUtf8
22129
22130 Limitations
22131 This uses the normal OpenStack Swift mechanism to refresh the Swift API
22132 credentials and ignores the expires field returned by the Hubic API.
22133
22134 The Swift API doesn't return a correct MD5SUM for segmented files (Dy‐
22135 namic or Static Large Objects) so rclone won't check or use the MD5SUM
22136 for these.
22137
22138 Jottacloud
22139 Jottacloud is a cloud storage service provider from a Norwegian compa‐
22140 ny, using its own datacenters in Norway.
22141
22142 In addition to the official service at jottacloud.com (https://www.jot‐
22143 tacloud.com/), there are also several whitelabel versions which should
22144 work with this backend.
22145
22146 Paths are specified as remote:path
22147
22148 Paths may be as deep as required, e.g. remote:directory/subdirectory.
22149
22150 Setup
22151 Default Setup
22152 To configure Jottacloud you will need to generate a personal security
22153 token in the Jottacloud web interface. You will the option to do in
22154 your account security settings (https://www.jottacloud.com/web/secure)
22155 (for whitelabel version you need to find this page in its web inter‐
22156 face). Note that the web interface may refer to this token as a Jotta‐
22157 Cli token.
22158
22159 Legacy Setup
22160 If you are using one of the whitelabel versions (Elgiganten, Com Hem
22161 Cloud) you may not have the option to generate a CLI token. In this
22162 case you'll have to use the legacy authentication. To to this select
22163 yes when the setup asks for legacy authentication and enter your user‐
22164 name and password. The rest of the setup is identical to the default
22165 setup.
22166
22167 Telia Cloud Setup
22168 Similar to other whitelabel versions Telia Cloud doesn't offer the op‐
22169 tion of creating a CLI token, and additionally uses a separate authen‐
22170 tication flow where the username is generated internally. To setup
22171 rclone to use Telia Cloud, choose Telia Cloud authentication in the
22172 setup. The rest of the setup is identical to the default setup.
22173
22174 Example
22175 Here is an example of how to make a remote called remote with the de‐
22176 fault setup. First run:
22177
22178 rclone config
22179
22180 This will guide you through an interactive setup process:
22181
22182 No remotes found - make a new one
22183 n) New remote
22184 s) Set configuration password
22185 q) Quit config
22186 n/s/q> n
22187 name> remote
22188 Type of storage to configure.
22189 Enter a string value. Press Enter for the default ("").
22190 Choose a number from below, or type in your own value
22191 [snip]
22192 XX / Jottacloud
22193 \ "jottacloud"
22194 [snip]
22195 Storage> jottacloud
22196 ** See help for jottacloud backend at: https://rclone.org/jottacloud/ **
22197
22198 Edit advanced config? (y/n)
22199 y) Yes
22200 n) No
22201 y/n> n
22202 Remote config
22203 Use legacy authentication?.
22204 This is only required for certain whitelabel versions of Jottacloud and not recommended for normal users.
22205 y) Yes
22206 n) No (default)
22207 y/n> n
22208
22209 Generate a personal login token here: https://www.jottacloud.com/web/secure
22210 Login Token> <your token here>
22211
22212 Do you want to use a non standard device/mountpoint e.g. for accessing files uploaded using the official Jottacloud client?
22213
22214 y) Yes
22215 n) No
22216 y/n> y
22217 Please select the device to use. Normally this will be Jotta
22218 Choose a number from below, or type in an existing value
22219 1 > DESKTOP-3H31129
22220 2 > Jotta
22221 Devices> 2
22222 Please select the mountpoint to user. Normally this will be Archive
22223 Choose a number from below, or type in an existing value
22224 1 > Archive
22225 2 > Links
22226 3 > Sync
22227
22228 Mountpoints> 1
22229 --------------------
22230 [jotta]
22231 type = jottacloud
22232 token = {........}
22233 device = Jotta
22234 mountpoint = Archive
22235 configVersion = 1
22236 --------------------
22237 y) Yes this is OK
22238 e) Edit this remote
22239 d) Delete this remote
22240 y/e/d> y
22241
22242 Once configured you can then use rclone like this,
22243
22244 List directories in top level of your Jottacloud
22245
22246 rclone lsd remote:
22247
22248 List all the files in your Jottacloud
22249
22250 rclone ls remote:
22251
22252 To copy a local directory to an Jottacloud directory called backup
22253
22254 rclone copy /home/source remote:backup
22255
22256 Devices and Mountpoints
22257 The official Jottacloud client registers a device for each computer you
22258 install it on, and then creates a mountpoint for each folder you select
22259 for Backup. The web interface uses a special device called Jotta for
22260 the Archive and Sync mountpoints. In most cases you'll want to use the
22261 Jotta/Archive device/mountpoint, however if you want to access files
22262 uploaded by any of the official clients rclone provides the option to
22263 select other devices and mountpoints during config.
22264
22265 The built-in Jotta device may also contain several other mountpoints,
22266 such as: Latest, Links, Shared and Trash. These are special mount‐
22267 points with a different internal representation than the "regular"
22268 mountpoints. Rclone will only to a very limited degree support them.
22269 Generally you should avoid these, unless you know what you are doing.
22270
22271 --fast-list
22272 This remote supports --fast-list which allows you to use fewer transac‐
22273 tions in exchange for more memory. See the rclone docs
22274 (https://rclone.org/docs/#fast-list) for more details.
22275
22276 Note that the implementation in Jottacloud always uses only a single
22277 API request to get the entire list, so for large folders this could
22278 lead to long wait time before the first results are shown.
22279
22280 Modified time and hashes
22281 Jottacloud allows modification times to be set on objects accurate to 1
22282 second. These will be used to detect whether objects need syncing or
22283 not.
22284
22285 Jottacloud supports MD5 type hashes, so you can use the --checksum
22286 flag.
22287
22288 Note that Jottacloud requires the MD5 hash before upload so if the
22289 source does not have an MD5 checksum then the file will be cached tem‐
22290 porarily on disk (wherever the TMPDIR environment variable points to)
22291 before it is uploaded. Small files will be cached in memory - see the
22292 --jottacloud-md5-memory-limit flag. When uploading from local disk the
22293 source checksum is always available, so this does not apply. Starting
22294 with rclone version 1.52 the same is true for crypted remotes (in older
22295 versions the crypt backend would not calculate hashes for uploads from
22296 local disk, so the Jottacloud backend had to do it as described above).
22297
22298 Restricted filename characters
22299 In addition to the default restricted characters set
22300 (https://rclone.org/overview/#restricted-characters) the following
22301 characters are also replaced:
22302
22303 Character Value Replacement
22304 ────────────────────────────────
22305 " 0x22 "
22306 * 0x2A *
22307 : 0x3A :
22308 < 0x3C <
22309 > 0x3E >
22310 ? 0x3F ?
22311 | 0x7C |
22312
22313 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
22314 view/#invalid-utf8), as they can't be used in XML strings.
22315
22316 Deleting files
22317 By default rclone will send all files to the trash when deleting files.
22318 They will be permanently deleted automatically after 30 days. You may
22319 bypass the trash and permanently delete files immediately by using the
22320 --jottacloud-hard-delete flag, or set the equivalent environment vari‐
22321 able. Emptying the trash is supported by the cleanup
22322 (https://rclone.org/commands/rclone_cleanup/) command.
22323
22324 Versions
22325 Jottacloud supports file versioning. When rclone uploads a new version
22326 of a file it creates a new version of it. Currently rclone only sup‐
22327 ports retrieving the current version but older versions can be accessed
22328 via the Jottacloud Website.
22329
22330 Quota information
22331 To view your current quota you can use the rclone about remote: command
22332 which will display your usage limit (unless it is unlimited) and the
22333 current usage.
22334
22335 Advanced Options
22336 Here are the advanced options specific to jottacloud (Jottacloud).
22337
22338 --jottacloud-md5-memory-limit
22339 Files bigger than this will be cached on disk to calculate the MD5 if
22340 required.
22341
22342 · Config: md5_memory_limit
22343
22344 · Env Var: RCLONE_JOTTACLOUD_MD5_MEMORY_LIMIT
22345
22346 · Type: SizeSuffix
22347
22348 · Default: 10M
22349
22350 --jottacloud-trashed-only
22351 Only show files that are in the trash. This will show trashed files in
22352 their original directory structure.
22353
22354 · Config: trashed_only
22355
22356 · Env Var: RCLONE_JOTTACLOUD_TRASHED_ONLY
22357
22358 · Type: bool
22359
22360 · Default: false
22361
22362 --jottacloud-hard-delete
22363 Delete files permanently rather than putting them into the trash.
22364
22365 · Config: hard_delete
22366
22367 · Env Var: RCLONE_JOTTACLOUD_HARD_DELETE
22368
22369 · Type: bool
22370
22371 · Default: false
22372
22373 --jottacloud-upload-resume-limit
22374 Files bigger than this can be resumed if the upload fail's.
22375
22376 · Config: upload_resume_limit
22377
22378 · Env Var: RCLONE_JOTTACLOUD_UPLOAD_RESUME_LIMIT
22379
22380 · Type: SizeSuffix
22381
22382 · Default: 10M
22383
22384 --jottacloud-encoding
22385 This sets the encoding for the backend.
22386
22387 See: the encoding section in the overview (https://rclone.org/over‐
22388 view/#encoding) for more info.
22389
22390 · Config: encoding
22391
22392 · Env Var: RCLONE_JOTTACLOUD_ENCODING
22393
22394 · Type: MultiEncoder
22395
22396 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Aster‐
22397 isk,Pipe,Del,Ctl,InvalidUtf8,Dot
22398
22399 Limitations
22400 Note that Jottacloud is case insensitive so you can't have a file
22401 called "Hello.doc" and one called "hello.doc".
22402
22403 There are quite a few characters that can't be in Jottacloud file
22404 names. Rclone will map these names to and from an identical looking
22405 unicode equivalent. For example if a file has a ? in it will be
22406 mapped to ? instead.
22407
22408 Jottacloud only supports filenames up to 255 characters in length.
22409
22410 Troubleshooting
22411 Jottacloud exhibits some inconsistent behaviours regarding deleted
22412 files and folders which may cause Copy, Move and DirMove operations to
22413 previously deleted paths to fail. Emptying the trash should help in
22414 such cases.
22415
22416 Koofr
22417 Paths are specified as remote:path
22418
22419 Paths may be as deep as required, e.g. remote:directory/subdirectory.
22420
22421 The initial setup for Koofr involves creating an application password
22422 for rclone. You can do that by opening the Koofr web application
22423 (https://app.koofr.net/app/admin/preferences/password), giving the
22424 password a nice name like rclone and clicking on generate.
22425
22426 Here is an example of how to make a remote called koofr. First run:
22427
22428 rclone config
22429
22430 This will guide you through an interactive setup process:
22431
22432 No remotes found - make a new one
22433 n) New remote
22434 s) Set configuration password
22435 q) Quit config
22436 n/s/q> n
22437 name> koofr
22438 Type of storage to configure.
22439 Enter a string value. Press Enter for the default ("").
22440 Choose a number from below, or type in your own value
22441 [snip]
22442 XX / Koofr
22443 \ "koofr"
22444 [snip]
22445 Storage> koofr
22446 ** See help for koofr backend at: https://rclone.org/koofr/ **
22447
22448 Your Koofr user name
22449 Enter a string value. Press Enter for the default ("").
22450 user> USER@NAME
22451 Your Koofr password for rclone (generate one at https://app.koofr.net/app/admin/preferences/password)
22452 y) Yes type in my own password
22453 g) Generate random password
22454 y/g> y
22455 Enter the password:
22456 password:
22457 Confirm the password:
22458 password:
22459 Edit advanced config? (y/n)
22460 y) Yes
22461 n) No
22462 y/n> n
22463 Remote config
22464 --------------------
22465 [koofr]
22466 type = koofr
22467 baseurl = https://app.koofr.net
22468 user = USER@NAME
22469 password = *** ENCRYPTED ***
22470 --------------------
22471 y) Yes this is OK
22472 e) Edit this remote
22473 d) Delete this remote
22474 y/e/d> y
22475
22476 You can choose to edit advanced config in order to enter your own ser‐
22477 vice URL if you use an on-premise or white label Koofr instance, or
22478 choose an alternative mount instead of your primary storage.
22479
22480 Once configured you can then use rclone like this,
22481
22482 List directories in top level of your Koofr
22483
22484 rclone lsd koofr:
22485
22486 List all the files in your Koofr
22487
22488 rclone ls koofr:
22489
22490 To copy a local directory to an Koofr directory called backup
22491
22492 rclone copy /home/source remote:backup
22493
22494 Restricted filename characters
22495 In addition to the default restricted characters set
22496 (https://rclone.org/overview/#restricted-characters) the following
22497 characters are also replaced:
22498
22499 Character Value Replacement
22500 ────────────────────────────────
22501 \ 0x5C \
22502
22503 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
22504 view/#invalid-utf8), as they can't be used in XML strings.
22505
22506 Standard Options
22507 Here are the standard options specific to koofr (Koofr).
22508
22509 --koofr-user
22510 Your Koofr user name
22511
22512 · Config: user
22513
22514 · Env Var: RCLONE_KOOFR_USER
22515
22516 · Type: string
22517
22518 · Default: ""
22519
22520 --koofr-password
22521 Your Koofr password for rclone (generate one at
22522 https://app.koofr.net/app/admin/preferences/password)
22523
22524 NB Input to this must be obscured - see rclone obscure
22525 (https://rclone.org/commands/rclone_obscure/).
22526
22527 · Config: password
22528
22529 · Env Var: RCLONE_KOOFR_PASSWORD
22530
22531 · Type: string
22532
22533 · Default: ""
22534
22535 Advanced Options
22536 Here are the advanced options specific to koofr (Koofr).
22537
22538 --koofr-endpoint
22539 The Koofr API endpoint to use
22540
22541 · Config: endpoint
22542
22543 · Env Var: RCLONE_KOOFR_ENDPOINT
22544
22545 · Type: string
22546
22547 · Default: "https://app.koofr.net"
22548
22549 --koofr-mountid
22550 Mount ID of the mount to use. If omitted, the primary mount is used.
22551
22552 · Config: mountid
22553
22554 · Env Var: RCLONE_KOOFR_MOUNTID
22555
22556 · Type: string
22557
22558 · Default: ""
22559
22560 --koofr-setmtime
22561 Does the backend support setting modification time. Set this to false
22562 if you use a mount ID that points to a Dropbox or Amazon Drive backend.
22563
22564 · Config: setmtime
22565
22566 · Env Var: RCLONE_KOOFR_SETMTIME
22567
22568 · Type: bool
22569
22570 · Default: true
22571
22572 --koofr-encoding
22573 This sets the encoding for the backend.
22574
22575 See: the encoding section in the overview (https://rclone.org/over‐
22576 view/#encoding) for more info.
22577
22578 · Config: encoding
22579
22580 · Env Var: RCLONE_KOOFR_ENCODING
22581
22582 · Type: MultiEncoder
22583
22584 · Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
22585
22586 Limitations
22587 Note that Koofr is case insensitive so you can't have a file called
22588 "Hello.doc" and one called "hello.doc".
22589
22590 Mail.ru Cloud
22591 Mail.ru Cloud (https://cloud.mail.ru/) is a cloud storage provided by a
22592 Russian internet company Mail.Ru Group (https://mail.ru). The official
22593 desktop client is Disk-O: (https://disk-o.cloud/), available only on
22594 Windows. (Please note that official sites are in Russian)
22595
22596 Currently it is recommended to disable 2FA on Mail.ru accounts intended
22597 for rclone until it gets eventually implemented.
22598
22599 Features highlights
22600 · Paths may be as deep as required, e.g. remote:directory/subdirectory
22601
22602 · Files have a last modified time property, directories don't
22603
22604 · Deleted files are by default moved to the trash
22605
22606 · Files and directories can be shared via public links
22607
22608 · Partial uploads or streaming are not supported, file size must be
22609 known before upload
22610
22611 · Maximum file size is limited to 2G for a free account, unlimited for
22612 paid accounts
22613
22614 · Storage keeps hash for all files and performs transparent deduplica‐
22615 tion, the hash algorithm is a modified SHA1
22616
22617 · If a particular file is already present in storage, one can quickly
22618 submit file hash instead of long file upload (this optimization is
22619 supported by rclone)
22620
22621 Configuration
22622 Here is an example of making a mailru configuration. First create a
22623 Mail.ru Cloud account and choose a tariff, then run
22624
22625 rclone config
22626
22627 This will guide you through an interactive setup process:
22628
22629 No remotes found - make a new one
22630 n) New remote
22631 s) Set configuration password
22632 q) Quit config
22633 n/s/q> n
22634 name> remote
22635 Type of storage to configure.
22636 Type of storage to configure.
22637 Enter a string value. Press Enter for the default ("").
22638 Choose a number from below, or type in your own value
22639 [snip]
22640 XX / Mail.ru Cloud
22641 \ "mailru"
22642 [snip]
22643 Storage> mailru
22644 User name (usually email)
22645 Enter a string value. Press Enter for the default ("").
22646 user> username@mail.ru
22647 Password
22648 y) Yes type in my own password
22649 g) Generate random password
22650 y/g> y
22651 Enter the password:
22652 password:
22653 Confirm the password:
22654 password:
22655 Skip full upload if there is another file with same data hash.
22656 This feature is called "speedup" or "put by hash". It is especially efficient
22657 in case of generally available files like popular books, video or audio clips
22658 [snip]
22659 Enter a boolean value (true or false). Press Enter for the default ("true").
22660 Choose a number from below, or type in your own value
22661 1 / Enable
22662 \ "true"
22663 2 / Disable
22664 \ "false"
22665 speedup_enable> 1
22666 Edit advanced config? (y/n)
22667 y) Yes
22668 n) No
22669 y/n> n
22670 Remote config
22671 --------------------
22672 [remote]
22673 type = mailru
22674 user = username@mail.ru
22675 pass = *** ENCRYPTED ***
22676 speedup_enable = true
22677 --------------------
22678 y) Yes this is OK
22679 e) Edit this remote
22680 d) Delete this remote
22681 y/e/d> y
22682
22683 Configuration of this backend does not require a local web browser.
22684 You can use the configured backend as shown below:
22685
22686 See top level directories
22687
22688 rclone lsd remote:
22689
22690 Make a new directory
22691
22692 rclone mkdir remote:directory
22693
22694 List the contents of a directory
22695
22696 rclone ls remote:directory
22697
22698 Sync /home/local/directory to the remote path, deleting any excess
22699 files in the path.
22700
22701 rclone sync -i /home/local/directory remote:directory
22702
22703 Modified time
22704 Files support a modification time attribute with up to 1 second preci‐
22705 sion. Directories do not have a modification time, which is shown as
22706 "Jan 1 1970".
22707
22708 Hash checksums
22709 Hash sums use a custom Mail.ru algorithm based on SHA1. If file size
22710 is less than or equal to the SHA1 block size (20 bytes), its hash is
22711 simply its data right-padded with zero bytes. Hash sum of a larger
22712 file is computed as a SHA1 sum of the file data bytes concatenated with
22713 a decimal representation of the data length.
22714
22715 Emptying Trash
22716 Removing a file or directory actually moves it to the trash, which is
22717 not visible to rclone but can be seen in a web browser. The trashed
22718 file still occupies part of total quota. If you wish to empty your
22719 trash and free some quota, you can use the rclone cleanup remote: com‐
22720 mand, which will permanently delete all your trashed files. This com‐
22721 mand does not take any path arguments.
22722
22723 Quota information
22724 To view your current quota you can use the rclone about remote: command
22725 which will display your usage limit (quota) and the current usage.
22726
22727 Restricted filename characters
22728 In addition to the default restricted characters set
22729 (https://rclone.org/overview/#restricted-characters) the following
22730 characters are also replaced:
22731
22732 Character Value Replacement
22733 ────────────────────────────────
22734 " 0x22 "
22735 * 0x2A *
22736 : 0x3A :
22737 < 0x3C <
22738 > 0x3E >
22739 ? 0x3F ?
22740 \ 0x5C \
22741 | 0x7C |
22742
22743 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
22744 view/#invalid-utf8), as they can't be used in JSON strings.
22745
22746 Limitations
22747 File size limits depend on your account. A single file size is limited
22748 by 2G for a free account and unlimited for paid tariffs. Please refer
22749 to the Mail.ru site for the total uploaded size limits.
22750
22751 Note that Mailru is case insensitive so you can't have a file called
22752 "Hello.doc" and one called "hello.doc".
22753
22754 Standard Options
22755 Here are the standard options specific to mailru (Mail.ru Cloud).
22756
22757 --mailru-user
22758 User name (usually email)
22759
22760 · Config: user
22761
22762 · Env Var: RCLONE_MAILRU_USER
22763
22764 · Type: string
22765
22766 · Default: ""
22767
22768 --mailru-pass
22769 Password
22770
22771 NB Input to this must be obscured - see rclone obscure
22772 (https://rclone.org/commands/rclone_obscure/).
22773
22774 · Config: pass
22775
22776 · Env Var: RCLONE_MAILRU_PASS
22777
22778 · Type: string
22779
22780 · Default: ""
22781
22782 --mailru-speedup-enable
22783 Skip full upload if there is another file with same data hash. This
22784 feature is called "speedup" or "put by hash". It is especially effi‐
22785 cient in case of generally available files like popular books, video or
22786 audio clips, because files are searched by hash in all accounts of all
22787 mailru users. It is meaningless and ineffective if source file is
22788 unique or encrypted. Please note that rclone may need local memory and
22789 disk space to calculate content hash in advance and decide whether full
22790 upload is required. Also, if rclone does not know file size in advance
22791 (e.g. in case of streaming or partial uploads), it will not even try
22792 this optimization.
22793
22794 · Config: speedup_enable
22795
22796 · Env Var: RCLONE_MAILRU_SPEEDUP_ENABLE
22797
22798 · Type: bool
22799
22800 · Default: true
22801
22802 · Examples:
22803
22804 · "true"
22805
22806 · Enable
22807
22808 · "false"
22809
22810 · Disable
22811
22812 Advanced Options
22813 Here are the advanced options specific to mailru (Mail.ru Cloud).
22814
22815 --mailru-speedup-file-patterns
22816 Comma separated list of file name patterns eligible for speedup (put by
22817 hash). Patterns are case insensitive and can contain '*' or '?' meta
22818 characters.
22819
22820 · Config: speedup_file_patterns
22821
22822 · Env Var: RCLONE_MAILRU_SPEEDUP_FILE_PATTERNS
22823
22824 · Type: string
22825
22826 · Default: ".mkv,.avi,.mp4,.mp3,.zip,.gz,.rar,.pdf"
22827
22828 · Examples:
22829
22830 · ""
22831
22832 · Empty list completely disables speedup (put by hash).
22833
22834 · "*"
22835
22836 · All files will be attempted for speedup.
22837
22838 · ".mkv,.avi,.mp4,.mp3"
22839
22840 · Only common audio/video files will be tried for put by hash.
22841
22842 · ".zip,.gz,.rar,.pdf"
22843
22844 · Only common archives or PDF books will be tried for speedup.
22845
22846 --mailru-speedup-max-disk
22847 This option allows you to disable speedup (put by hash) for large files
22848 (because preliminary hashing can exhaust you RAM or disk space)
22849
22850 · Config: speedup_max_disk
22851
22852 · Env Var: RCLONE_MAILRU_SPEEDUP_MAX_DISK
22853
22854 · Type: SizeSuffix
22855
22856 · Default: 3G
22857
22858 · Examples:
22859
22860 · "0"
22861
22862 · Completely disable speedup (put by hash).
22863
22864 · "1G"
22865
22866 · Files larger than 1Gb will be uploaded directly.
22867
22868 · "3G"
22869
22870 · Choose this option if you have less than 3Gb free on local disk.
22871
22872 --mailru-speedup-max-memory
22873 Files larger than the size given below will always be hashed on disk.
22874
22875 · Config: speedup_max_memory
22876
22877 · Env Var: RCLONE_MAILRU_SPEEDUP_MAX_MEMORY
22878
22879 · Type: SizeSuffix
22880
22881 · Default: 32M
22882
22883 · Examples:
22884
22885 · "0"
22886
22887 · Preliminary hashing will always be done in a temporary disk loca‐
22888 tion.
22889
22890 · "32M"
22891
22892 · Do not dedicate more than 32Mb RAM for preliminary hashing.
22893
22894 · "256M"
22895
22896 · You have at most 256Mb RAM free for hash calculations.
22897
22898 --mailru-check-hash
22899 What should copy do if file checksum is mismatched or invalid
22900
22901 · Config: check_hash
22902
22903 · Env Var: RCLONE_MAILRU_CHECK_HASH
22904
22905 · Type: bool
22906
22907 · Default: true
22908
22909 · Examples:
22910
22911 · "true"
22912
22913 · Fail with error.
22914
22915 · "false"
22916
22917 · Ignore and continue.
22918
22919 --mailru-user-agent
22920 HTTP user agent used internally by client. Defaults to "rclone/VER‐
22921 SION" or "--user-agent" provided on command line.
22922
22923 · Config: user_agent
22924
22925 · Env Var: RCLONE_MAILRU_USER_AGENT
22926
22927 · Type: string
22928
22929 · Default: ""
22930
22931 --mailru-quirks
22932 Comma separated list of internal maintenance flags. This option must
22933 not be used by an ordinary user. It is intended only to facilitate re‐
22934 mote troubleshooting of backend issues. Strict meaning of flags is not
22935 documented and not guaranteed to persist between releases. Quirks will
22936 be removed when the backend grows stable. Supported quirks: atom‐
22937 icmkdir binlist unknowndirs
22938
22939 · Config: quirks
22940
22941 · Env Var: RCLONE_MAILRU_QUIRKS
22942
22943 · Type: string
22944
22945 · Default: ""
22946
22947 --mailru-encoding
22948 This sets the encoding for the backend.
22949
22950 See: the encoding section in the overview (https://rclone.org/over‐
22951 view/#encoding) for more info.
22952
22953 · Config: encoding
22954
22955 · Env Var: RCLONE_MAILRU_ENCODING
22956
22957 · Type: MultiEncoder
22958
22959 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
22960 Slash,Del,Ctl,InvalidUtf8,Dot
22961
22962 Mega
22963 Mega (https://mega.nz/) is a cloud storage and file hosting service
22964 known for its security feature where all files are encrypted locally
22965 before they are uploaded. This prevents anyone (including employees of
22966 Mega) from accessing the files without knowledge of the key used for
22967 encryption.
22968
22969 This is an rclone backend for Mega which supports the file transfer
22970 features of Mega using the same client side encryption.
22971
22972 Paths are specified as remote:path
22973
22974 Paths may be as deep as required, e.g. remote:directory/subdirectory.
22975
22976 Here is an example of how to make a remote called remote. First run:
22977
22978 rclone config
22979
22980 This will guide you through an interactive setup process:
22981
22982 No remotes found - make a new one
22983 n) New remote
22984 s) Set configuration password
22985 q) Quit config
22986 n/s/q> n
22987 name> remote
22988 Type of storage to configure.
22989 Choose a number from below, or type in your own value
22990 [snip]
22991 XX / Mega
22992 \ "mega"
22993 [snip]
22994 Storage> mega
22995 User name
22996 user> you@example.com
22997 Password.
22998 y) Yes type in my own password
22999 g) Generate random password
23000 n) No leave this optional password blank
23001 y/g/n> y
23002 Enter the password:
23003 password:
23004 Confirm the password:
23005 password:
23006 Remote config
23007 --------------------
23008 [remote]
23009 type = mega
23010 user = you@example.com
23011 pass = *** ENCRYPTED ***
23012 --------------------
23013 y) Yes this is OK
23014 e) Edit this remote
23015 d) Delete this remote
23016 y/e/d> y
23017
23018 NOTE: The encryption keys need to have been already generated after a
23019 regular login via the browser, otherwise attempting to use the creden‐
23020 tials in rclone will fail.
23021
23022 Once configured you can then use rclone like this,
23023
23024 List directories in top level of your Mega
23025
23026 rclone lsd remote:
23027
23028 List all the files in your Mega
23029
23030 rclone ls remote:
23031
23032 To copy a local directory to an Mega directory called backup
23033
23034 rclone copy /home/source remote:backup
23035
23036 Modified time and hashes
23037 Mega does not support modification times or hashes yet.
23038
23039 Restricted filename characters
23040 Character Value Replacement
23041 ────────────────────────────────
23042 NUL 0x00 ␀
23043 / 0x2F /
23044
23045 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
23046 view/#invalid-utf8), as they can't be used in JSON strings.
23047
23048 Duplicated files
23049 Mega can have two files with exactly the same name and path (unlike a
23050 normal file system).
23051
23052 Duplicated files cause problems with the syncing and you will see mes‐
23053 sages in the log about duplicates.
23054
23055 Use rclone dedupe to fix duplicated files.
23056
23057 Failure to log-in
23058 Mega remotes seem to get blocked (reject logins) under "heavy use". We
23059 haven't worked out the exact blocking rules but it seems to be related
23060 to fast paced, successive rclone commands.
23061
23062 For example, executing this command 90 times in a row rclone link re‐
23063 mote:file will cause the remote to become "blocked". This is not an
23064 abnormal situation, for example if you wish to get the public links of
23065 a directory with hundred of files... After more or less a week, the
23066 remote will remote accept rclone logins normally again.
23067
23068 You can mitigate this issue by mounting the remote it with rclone
23069 mount. This will log-in when mounting and a log-out when unmounting
23070 only. You can also run rclone rcd and then use rclone rc to run the
23071 commands over the API to avoid logging in each time.
23072
23073 Rclone does not currently close mega sessions (you can see them in the
23074 web interface), however closing the sessions does not solve the issue.
23075
23076 If you space rclone commands by 3 seconds it will avoid blocking the
23077 remote. We haven't identified the exact blocking rules, so perhaps one
23078 could execute the command 80 times without waiting and avoid blocking
23079 by waiting 3 seconds, then continuing...
23080
23081 Note that this has been observed by trial and error and might not be
23082 set in stone.
23083
23084 Other tools seem not to produce this blocking effect, as they use a
23085 different working approach (state-based, using sessionIDs instead of
23086 log-in) which isn't compatible with the current stateless rclone ap‐
23087 proach.
23088
23089 Note that once blocked, the use of other tools (such as megacmd) is not
23090 a sure workaround: following megacmd login times have been observed in
23091 succession for blocked remote: 7 minutes, 20 min, 30min, 30 min, 30min.
23092 Web access looks unaffected though.
23093
23094 Investigation is continuing in relation to workarounds based on time‐
23095 outs, pacers, retrials and tpslimits - if you discover something rele‐
23096 vant, please post on the forum.
23097
23098 So, if rclone was working nicely and suddenly you are unable to log-in
23099 and you are sure the user and the password are correct, likely you have
23100 got the remote blocked for a while.
23101
23102 Standard Options
23103 Here are the standard options specific to mega (Mega).
23104
23105 --mega-user
23106 User name
23107
23108 · Config: user
23109
23110 · Env Var: RCLONE_MEGA_USER
23111
23112 · Type: string
23113
23114 · Default: ""
23115
23116 --mega-pass
23117 Password.
23118
23119 NB Input to this must be obscured - see rclone obscure
23120 (https://rclone.org/commands/rclone_obscure/).
23121
23122 · Config: pass
23123
23124 · Env Var: RCLONE_MEGA_PASS
23125
23126 · Type: string
23127
23128 · Default: ""
23129
23130 Advanced Options
23131 Here are the advanced options specific to mega (Mega).
23132
23133 --mega-debug
23134 Output more debug from Mega.
23135
23136 If this flag is set (along with -vv) it will print further debugging
23137 information from the mega backend.
23138
23139 · Config: debug
23140
23141 · Env Var: RCLONE_MEGA_DEBUG
23142
23143 · Type: bool
23144
23145 · Default: false
23146
23147 --mega-hard-delete
23148 Delete files permanently rather than putting them into the trash.
23149
23150 Normally the mega backend will put all deletions into the trash rather
23151 than permanently deleting them. If you specify this then rclone will
23152 permanently delete objects instead.
23153
23154 · Config: hard_delete
23155
23156 · Env Var: RCLONE_MEGA_HARD_DELETE
23157
23158 · Type: bool
23159
23160 · Default: false
23161
23162 --mega-encoding
23163 This sets the encoding for the backend.
23164
23165 See: the encoding section in the overview (https://rclone.org/over‐
23166 view/#encoding) for more info.
23167
23168 · Config: encoding
23169
23170 · Env Var: RCLONE_MEGA_ENCODING
23171
23172 · Type: MultiEncoder
23173
23174 · Default: Slash,InvalidUtf8,Dot
23175
23176 Limitations
23177 This backend uses the go-mega go library
23178 (https://github.com/t3rm1n4l/go-mega) which is an opensource go library
23179 implementing the Mega API. There doesn't appear to be any documenta‐
23180 tion for the mega protocol beyond the mega C++ SDK
23181 (https://github.com/meganz/sdk) source code so there are likely quite a
23182 few errors still remaining in this library.
23183
23184 Mega allows duplicate files which may confuse rclone.
23185
23186 Memory
23187 The memory backend is an in RAM backend. It does not persist its data
23188 - use the local backend for that.
23189
23190 The memory backend behaves like a bucket based remote (e.g. like s3).
23191 Because it has no parameters you can just use it with the :memory: re‐
23192 mote name.
23193
23194 You can configure it as a remote like this with rclone config too if
23195 you want to:
23196
23197 No remotes found - make a new one
23198 n) New remote
23199 s) Set configuration password
23200 q) Quit config
23201 n/s/q> n
23202 name> remote
23203 Type of storage to configure.
23204 Enter a string value. Press Enter for the default ("").
23205 Choose a number from below, or type in your own value
23206 [snip]
23207 XX / Memory
23208 \ "memory"
23209 [snip]
23210 Storage> memory
23211 ** See help for memory backend at: https://rclone.org/memory/ **
23212
23213 Remote config
23214
23215 --------------------
23216 [remote]
23217 type = memory
23218 --------------------
23219 y) Yes this is OK (default)
23220 e) Edit this remote
23221 d) Delete this remote
23222 y/e/d> y
23223
23224 Because the memory backend isn't persistent it is most useful for test‐
23225 ing or with an rclone server or rclone mount, e.g.
23226
23227 rclone mount :memory: /mnt/tmp
23228 rclone serve webdav :memory:
23229 rclone serve sftp :memory:
23230
23231 Modified time and hashes
23232 The memory backend supports MD5 hashes and modification times accurate
23233 to 1 nS.
23234
23235 Restricted filename characters
23236 The memory backend replaces the default restricted characters set
23237 (https://rclone.org/overview/#restricted-characters).
23238
23239 Microsoft Azure Blob Storage
23240 Paths are specified as remote:container (or remote: for the lsd com‐
23241 mand.) You may put subdirectories in too, e.g. remote:contain‐
23242 er/path/to/dir.
23243
23244 Here is an example of making a Microsoft Azure Blob Storage configura‐
23245 tion. For a remote called remote. First run:
23246
23247 rclone config
23248
23249 This will guide you through an interactive setup process:
23250
23251 No remotes found - make a new one
23252 n) New remote
23253 s) Set configuration password
23254 q) Quit config
23255 n/s/q> n
23256 name> remote
23257 Type of storage to configure.
23258 Choose a number from below, or type in your own value
23259 [snip]
23260 XX / Microsoft Azure Blob Storage
23261 \ "azureblob"
23262 [snip]
23263 Storage> azureblob
23264 Storage Account Name
23265 account> account_name
23266 Storage Account Key
23267 key> base64encodedkey==
23268 Endpoint for the service - leave blank normally.
23269 endpoint>
23270 Remote config
23271 --------------------
23272 [remote]
23273 account = account_name
23274 key = base64encodedkey==
23275 endpoint =
23276 --------------------
23277 y) Yes this is OK
23278 e) Edit this remote
23279 d) Delete this remote
23280 y/e/d> y
23281
23282 See all containers
23283
23284 rclone lsd remote:
23285
23286 Make a new container
23287
23288 rclone mkdir remote:container
23289
23290 List the contents of a container
23291
23292 rclone ls remote:container
23293
23294 Sync /home/local/directory to the remote container, deleting any excess
23295 files in the container.
23296
23297 rclone sync -i /home/local/directory remote:container
23298
23299 --fast-list
23300 This remote supports --fast-list which allows you to use fewer transac‐
23301 tions in exchange for more memory. See the rclone docs
23302 (https://rclone.org/docs/#fast-list) for more details.
23303
23304 Modified time
23305 The modified time is stored as metadata on the object with the mtime
23306 key. It is stored using RFC3339 Format time with nanosecond precision.
23307 The metadata is supplied during directory listings so there is no over‐
23308 head to using it.
23309
23310 Restricted filename characters
23311 In addition to the default restricted characters set
23312 (https://rclone.org/overview/#restricted-characters) the following
23313 characters are also replaced:
23314
23315 Character Value Replacement
23316 ────────────────────────────────
23317 / 0x2F /
23318 \ 0x5C \
23319
23320 File names can also not end with the following characters. These only
23321 get replaced if they are the last character in the name:
23322
23323 Character Value Replacement
23324 ────────────────────────────────
23325 . 0x2E .
23326
23327 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
23328 view/#invalid-utf8), as they can't be used in JSON strings.
23329
23330 Hashes
23331 MD5 hashes are stored with blobs. However blobs that were uploaded in
23332 chunks only have an MD5 if the source remote was capable of MD5 hashes,
23333 e.g. the local disk.
23334
23335 Authenticating with Azure Blob Storage
23336 Rclone has 3 ways of authenticating with Azure Blob Storage:
23337
23338 Account and Key
23339 This is the most straight forward and least flexible way. Just fill in
23340 the account and key lines and leave the rest blank.
23341
23342 SAS URL
23343 This can be an account level SAS URL or container level SAS URL.
23344
23345 To use it leave account, key blank and fill in sas_url.
23346
23347 An account level SAS URL or container level SAS URL can be obtained
23348 from the Azure portal or the Azure Storage Explorer. To get a contain‐
23349 er level SAS URL right click on a container in the Azure Blob explorer
23350 in the Azure portal.
23351
23352 If you use a container level SAS URL, rclone operations are permitted
23353 only on a particular container, e.g.
23354
23355 rclone ls azureblob:container
23356
23357 You can also list the single container from the root. This will only
23358 show the container specified by the SAS URL.
23359
23360 $ rclone lsd azureblob:
23361 container/
23362
23363 Note that you can't see or access any other containers - this will fail
23364
23365 rclone ls azureblob:othercontainer
23366
23367 Container level SAS URLs are useful for temporarily allowing third par‐
23368 ties access to a single container or putting credentials into an un‐
23369 trusted environment such as a CI build server.
23370
23371 Standard Options
23372 Here are the standard options specific to azureblob (Microsoft Azure
23373 Blob Storage).
23374
23375 --azureblob-account
23376 Storage Account Name (leave blank to use SAS URL or Emulator)
23377
23378 · Config: account
23379
23380 · Env Var: RCLONE_AZUREBLOB_ACCOUNT
23381
23382 · Type: string
23383
23384 · Default: ""
23385
23386 --azureblob-service-principal-file
23387 Path to file containing credentials for use with a service principal.
23388
23389 Leave blank normally. Needed only if you want to use a service princi‐
23390 pal instead of interactive login.
23391
23392 $ az sp create-for-rbac --name "<name>" \
23393 --role "Storage Blob Data Owner" \
23394 --scopes "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>" \
23395 > azure-principal.json
23396
23397 See Use Azure CLI to assign an Azure role for access to blob and queue
23398 data (https://docs.microsoft.com/en-us/azure/storage/common/storage-
23399 auth-aad-rbac-cli) for more details.
23400
23401 · Config: service_principal_file
23402
23403 · Env Var: RCLONE_AZUREBLOB_SERVICE_PRINCIPAL_FILE
23404
23405 · Type: string
23406
23407 · Default: ""
23408
23409 --azureblob-key
23410 Storage Account Key (leave blank to use SAS URL or Emulator)
23411
23412 · Config: key
23413
23414 · Env Var: RCLONE_AZUREBLOB_KEY
23415
23416 · Type: string
23417
23418 · Default: ""
23419
23420 --azureblob-sas-url
23421 SAS URL for container level access only (leave blank if using ac‐
23422 count/key or Emulator)
23423
23424 · Config: sas_url
23425
23426 · Env Var: RCLONE_AZUREBLOB_SAS_URL
23427
23428 · Type: string
23429
23430 · Default: ""
23431
23432 --azureblob-use-msi
23433 Use a managed service identity to authenticate (only works in Azure)
23434
23435 When true, use a managed service identity (https://docs.micro‐
23436 soft.com/en-us/azure/active-directory/managed-identities-azure-re‐
23437 sources/) to authenticate to Azure Storage instead of a SAS token or
23438 account key.
23439
23440 If the VM(SS) on which this program is running has a system-assigned
23441 identity, it will be used by default. If the resource has no sys‐
23442 tem-assigned but exactly one user-assigned identity, the user-assigned
23443 identity will be used by default. If the resource has multiple us‐
23444 er-assigned identities, the identity to use must be explicitly speci‐
23445 fied using exactly one of the msi_object_id, msi_client_id, or
23446 msi_mi_res_id parameters.
23447
23448 · Config: use_msi
23449
23450 · Env Var: RCLONE_AZUREBLOB_USE_MSI
23451
23452 · Type: bool
23453
23454 · Default: false
23455
23456 --azureblob-use-emulator
23457 Uses local storage emulator if provided as 'true' (leave blank if using
23458 real azure storage endpoint)
23459
23460 · Config: use_emulator
23461
23462 · Env Var: RCLONE_AZUREBLOB_USE_EMULATOR
23463
23464 · Type: bool
23465
23466 · Default: false
23467
23468 Advanced Options
23469 Here are the advanced options specific to azureblob (Microsoft Azure
23470 Blob Storage).
23471
23472 --azureblob-msi-object-id
23473 Object ID of the user-assigned MSI to use, if any. Leave blank if
23474 msi_client_id or msi_mi_res_id specified.
23475
23476 · Config: msi_object_id
23477
23478 · Env Var: RCLONE_AZUREBLOB_MSI_OBJECT_ID
23479
23480 · Type: string
23481
23482 · Default: ""
23483
23484 --azureblob-msi-client-id
23485 Object ID of the user-assigned MSI to use, if any. Leave blank if
23486 msi_object_id or msi_mi_res_id specified.
23487
23488 · Config: msi_client_id
23489
23490 · Env Var: RCLONE_AZUREBLOB_MSI_CLIENT_ID
23491
23492 · Type: string
23493
23494 · Default: ""
23495
23496 --azureblob-msi-mi-res-id
23497 Azure resource ID of the user-assigned MSI to use, if any. Leave blank
23498 if msi_client_id or msi_object_id specified.
23499
23500 · Config: msi_mi_res_id
23501
23502 · Env Var: RCLONE_AZUREBLOB_MSI_MI_RES_ID
23503
23504 · Type: string
23505
23506 · Default: ""
23507
23508 --azureblob-endpoint
23509 Endpoint for the service Leave blank normally.
23510
23511 · Config: endpoint
23512
23513 · Env Var: RCLONE_AZUREBLOB_ENDPOINT
23514
23515 · Type: string
23516
23517 · Default: ""
23518
23519 --azureblob-upload-cutoff
23520 Cutoff for switching to chunked upload (<= 256MB). (Deprecated)
23521
23522 · Config: upload_cutoff
23523
23524 · Env Var: RCLONE_AZUREBLOB_UPLOAD_CUTOFF
23525
23526 · Type: string
23527
23528 · Default: ""
23529
23530 --azureblob-chunk-size
23531 Upload chunk size (<= 100MB).
23532
23533 Note that this is stored in memory and there may be up to "--transfers"
23534 chunks stored at once in memory.
23535
23536 · Config: chunk_size
23537
23538 · Env Var: RCLONE_AZUREBLOB_CHUNK_SIZE
23539
23540 · Type: SizeSuffix
23541
23542 · Default: 4M
23543
23544 --azureblob-list-chunk
23545 Size of blob list.
23546
23547 This sets the number of blobs requested in each listing chunk. Default
23548 is the maximum, 5000. "List blobs" requests are permitted 2 minutes
23549 per megabyte to complete. If an operation is taking longer than 2 min‐
23550 utes per megabyte on average, it will time out ( source
23551 (https://docs.microsoft.com/en-us/rest/api/storageservices/setting-
23552 timeouts-for-blob-service-operations#exceptions-to-default-timeout-in‐
23553 terval) ). This can be used to limit the number of blobs items to re‐
23554 turn, to avoid the time out.
23555
23556 · Config: list_chunk
23557
23558 · Env Var: RCLONE_AZUREBLOB_LIST_CHUNK
23559
23560 · Type: int
23561
23562 · Default: 5000
23563
23564 --azureblob-access-tier
23565 Access tier of blob: hot, cool or archive.
23566
23567 Archived blobs can be restored by setting access tier to hot or cool.
23568 Leave blank if you intend to use default access tier, which is set at
23569 account level
23570
23571 If there is no "access tier" specified, rclone doesn't apply any tier.
23572 rclone performs "Set Tier" operation on blobs while uploading, if ob‐
23573 jects are not modified, specifying "access tier" to new one will have
23574 no effect. If blobs are in "archive tier" at remote, trying to perform
23575 data transfer operations from remote will not be allowed. User should
23576 first restore by tiering blob to "Hot" or "Cool".
23577
23578 · Config: access_tier
23579
23580 · Env Var: RCLONE_AZUREBLOB_ACCESS_TIER
23581
23582 · Type: string
23583
23584 · Default: ""
23585
23586 --azureblob-archive-tier-delete
23587 Delete archive tier blobs before overwriting.
23588
23589 Archive tier blobs cannot be updated. So without this flag, if you at‐
23590 tempt to update an archive tier blob, then rclone will produce the er‐
23591 ror:
23592
23593 can't update archive tier blob without --azureblob-archive-tier-delete
23594
23595 With this flag set then before rclone attempts to overwrite an archive
23596 tier blob, it will delete the existing blob before uploading its re‐
23597 placement. This has the potential for data loss if the upload fails
23598 (unlike updating a normal blob) and also may cost more since deleting
23599 archive tier blobs early may be chargable.
23600
23601 · Config: archive_tier_delete
23602
23603 · Env Var: RCLONE_AZUREBLOB_ARCHIVE_TIER_DELETE
23604
23605 · Type: bool
23606
23607 · Default: false
23608
23609 --azureblob-disable-checksum
23610 Don't store MD5 checksum with object metadata.
23611
23612 Normally rclone will calculate the MD5 checksum of the input before up‐
23613 loading it so it can add it to metadata on the object. This is great
23614 for data integrity checking but can cause long delays for large files
23615 to start uploading.
23616
23617 · Config: disable_checksum
23618
23619 · Env Var: RCLONE_AZUREBLOB_DISABLE_CHECKSUM
23620
23621 · Type: bool
23622
23623 · Default: false
23624
23625 --azureblob-memory-pool-flush-time
23626 How often internal memory buffer pools will be flushed. Uploads which
23627 requires additional buffers (f.e multipart) will use memory pool for
23628 allocations. This option controls how often unused buffers will be re‐
23629 moved from the pool.
23630
23631 · Config: memory_pool_flush_time
23632
23633 · Env Var: RCLONE_AZUREBLOB_MEMORY_POOL_FLUSH_TIME
23634
23635 · Type: Duration
23636
23637 · Default: 1m0s
23638
23639 --azureblob-memory-pool-use-mmap
23640 Whether to use mmap buffers in internal memory pool.
23641
23642 · Config: memory_pool_use_mmap
23643
23644 · Env Var: RCLONE_AZUREBLOB_MEMORY_POOL_USE_MMAP
23645
23646 · Type: bool
23647
23648 · Default: false
23649
23650 --azureblob-encoding
23651 This sets the encoding for the backend.
23652
23653 See: the encoding section in the overview (https://rclone.org/over‐
23654 view/#encoding) for more info.
23655
23656 · Config: encoding
23657
23658 · Env Var: RCLONE_AZUREBLOB_ENCODING
23659
23660 · Type: MultiEncoder
23661
23662 · Default: Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8
23663
23664 Limitations
23665 MD5 sums are only uploaded with chunked files if the source has an MD5
23666 sum. This will always be the case for a local to azure copy.
23667
23668 rclone about is not supported by the Microsoft Azure Blob storage back‐
23669 end. Backends without this capability cannot determine free space for
23670 an rclone mount or use policy mfs (most free space) as a member of an
23671 rclone union remote.
23672
23673 See List of backends that do not support rclone about
23674 (https://rclone.org/overview/#optional-features) See rclone about
23675 (https://rclone.org/commands/rclone_about/)
23676
23677 Azure Storage Emulator Support
23678 You can test rclone with storage emulator locally, to do this make sure
23679 azure storage emulator installed locally and set up a new remote with
23680 rclone config follow instructions described in introduction, set
23681 use_emulator config as true, you do not need to provide default account
23682 name or key if using emulator.
23683
23684 Microsoft OneDrive
23685 Paths are specified as remote:path
23686
23687 Paths may be as deep as required, e.g. remote:directory/subdirectory.
23688
23689 The initial setup for OneDrive involves getting a token from Microsoft
23690 which you need to do in your browser. rclone config walks you through
23691 it.
23692
23693 Here is an example of how to make a remote called remote. First run:
23694
23695 rclone config
23696
23697 This will guide you through an interactive setup process:
23698
23699 e) Edit existing remote
23700 n) New remote
23701 d) Delete remote
23702 r) Rename remote
23703 c) Copy remote
23704 s) Set configuration password
23705 q) Quit config
23706 e/n/d/r/c/s/q> n
23707 name> remote
23708 Type of storage to configure.
23709 Enter a string value. Press Enter for the default ("").
23710 Choose a number from below, or type in your own value
23711 [snip]
23712 XX / Microsoft OneDrive
23713 \ "onedrive"
23714 [snip]
23715 Storage> onedrive
23716 Microsoft App Client Id
23717 Leave blank normally.
23718 Enter a string value. Press Enter for the default ("").
23719 client_id>
23720 Microsoft App Client Secret
23721 Leave blank normally.
23722 Enter a string value. Press Enter for the default ("").
23723 client_secret>
23724 Edit advanced config? (y/n)
23725 y) Yes
23726 n) No
23727 y/n> n
23728 Remote config
23729 Use auto config?
23730 * Say Y if not sure
23731 * Say N if you are working on a remote or headless machine
23732 y) Yes
23733 n) No
23734 y/n> y
23735 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
23736 Log in and authorize rclone for access
23737 Waiting for code...
23738 Got code
23739 Choose a number from below, or type in an existing value
23740 1 / OneDrive Personal or Business
23741 \ "onedrive"
23742 2 / Sharepoint site
23743 \ "sharepoint"
23744 3 / Type in driveID
23745 \ "driveid"
23746 4 / Type in SiteID
23747 \ "siteid"
23748 5 / Search a Sharepoint site
23749 \ "search"
23750 Your choice> 1
23751 Found 1 drives, please select the one you want to use:
23752 0: OneDrive (business) id=b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
23753 Chose drive to use:> 0
23754 Found drive 'root' of type 'business', URL: https://org-my.sharepoint.com/personal/you/Documents
23755 Is that okay?
23756 y) Yes
23757 n) No
23758 y/n> y
23759 --------------------
23760 [remote]
23761 type = onedrive
23762 token = {"access_token":"youraccesstoken","token_type":"Bearer","refresh_token":"yourrefreshtoken","expiry":"2018-08-26T22:39:52.486512262+08:00"}
23763 drive_id = b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
23764 drive_type = business
23765 --------------------
23766 y) Yes this is OK
23767 e) Edit this remote
23768 d) Delete this remote
23769 y/e/d> y
23770
23771 See the remote setup docs (https://rclone.org/remote_setup/) for how to
23772 set it up on a machine with no Internet browser available.
23773
23774 Note that rclone runs a webserver on your local machine to collect the
23775 token as returned from Microsoft. This only runs from the moment it
23776 opens your browser to the moment you get back the verification code.
23777 This is on http://127.0.0.1:53682/ and this it may require you to un‐
23778 block it temporarily if you are running a host firewall.
23779
23780 Once configured you can then use rclone like this,
23781
23782 List directories in top level of your OneDrive
23783
23784 rclone lsd remote:
23785
23786 List all the files in your OneDrive
23787
23788 rclone ls remote:
23789
23790 To copy a local directory to an OneDrive directory called backup
23791
23792 rclone copy /home/source remote:backup
23793
23794 Getting your own Client ID and Key
23795 You can use your own Client ID if the default (client_id left blank)
23796 one doesn't work for you or you see lots of throttling. The default
23797 Client ID and Key is shared by all rclone users when performing re‐
23798 quests.
23799
23800 If you are having problems with them (E.g., seeing a lot of throt‐
23801 tling), you can get your own Client ID and Key by following the steps
23802 below:
23803
23804 1. Open https://portal.azure.com/#blade/Microsoft_AAD_Regis‐
23805 teredApps/ApplicationsListBlade and then click New registration.
23806
23807 2. Enter a name for your app, choose account type Accounts in any orga‐
23808 nizational directory (Any Azure AD directory - Multitenant) and per‐
23809 sonal Microsoft accounts (e.g. Skype, Xbox), select Web in Redirect
23810 URI, then type (do not copy and paste) http://localhost:53682/ and
23811 click Register. Copy and keep the Application (client) ID under the
23812 app name for later use.
23813
23814 3. Under manage select Certificates & secrets, click New client secret.
23815 Copy and keep that secret for later use.
23816
23817 4. Under manage select API permissions, click Add a permission and se‐
23818 lect Microsoft Graph then select delegated permissions.
23819
23820 5. Search and select the following permissions: Files.Read, Files.Read‐
23821 Write, Files.Read.All, Files.ReadWrite.All, offline_access, Us‐
23822 er.Read. Once selected click Add permissions at the bottom.
23823
23824 Now the application is complete. Run rclone config to create or edit a
23825 OneDrive remote. Supply the app ID and password as Client ID and Se‐
23826 cret, respectively. rclone will walk you through the remaining steps.
23827
23828 Modification time and hashes
23829 OneDrive allows modification times to be set on objects accurate to 1
23830 second. These will be used to detect whether objects need syncing or
23831 not.
23832
23833 OneDrive personal supports SHA1 type hashes. OneDrive for business and
23834 Sharepoint Server support QuickXorHash (https://docs.microsoft.com/en-
23835 us/onedrive/developer/code-snippets/quickxorhash).
23836
23837 For all types of OneDrive you can use the --checksum flag.
23838
23839 Restricted filename characters
23840 In addition to the default restricted characters set
23841 (https://rclone.org/overview/#restricted-characters) the following
23842 characters are also replaced:
23843
23844 Character Value Replacement
23845 ────────────────────────────────
23846 " 0x22 "
23847 * 0x2A *
23848 : 0x3A :
23849 < 0x3C <
23850 > 0x3E >
23851 ? 0x3F ?
23852 \ 0x5C \
23853 | 0x7C |
23854
23855 File names can also not end with the following characters. These only
23856 get replaced if they are the last character in the name:
23857
23858 Character Value Replacement
23859 ────────────────────────────────
23860 SP 0x20 ␠
23861 . 0x2E .
23862
23863 File names can also not begin with the following characters. These on‐
23864 ly get replaced if they are the first character in the name:
23865
23866 Character Value Replacement
23867 ────────────────────────────────
23868 SP 0x20 ␠
23869 ~ 0x7E ~
23870
23871 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
23872 view/#invalid-utf8), as they can't be used in JSON strings.
23873
23874 Deleting files
23875 Any files you delete with rclone will end up in the trash. Microsoft
23876 doesn't provide an API to permanently delete files, nor to empty the
23877 trash, so you will have to do that with one of Microsoft's apps or via
23878 the OneDrive website.
23879
23880 Standard Options
23881 Here are the standard options specific to onedrive (Microsoft
23882 OneDrive).
23883
23884 --onedrive-client-id
23885 OAuth Client Id Leave blank normally.
23886
23887 · Config: client_id
23888
23889 · Env Var: RCLONE_ONEDRIVE_CLIENT_ID
23890
23891 · Type: string
23892
23893 · Default: ""
23894
23895 --onedrive-client-secret
23896 OAuth Client Secret Leave blank normally.
23897
23898 · Config: client_secret
23899
23900 · Env Var: RCLONE_ONEDRIVE_CLIENT_SECRET
23901
23902 · Type: string
23903
23904 · Default: ""
23905
23906 --onedrive-region
23907 Choose national cloud region for OneDrive.
23908
23909 · Config: region
23910
23911 · Env Var: RCLONE_ONEDRIVE_REGION
23912
23913 · Type: string
23914
23915 · Default: "global"
23916
23917 · Examples:
23918
23919 · "global"
23920
23921 · Microsoft Cloud Global
23922
23923 · "us"
23924
23925 · Microsoft Cloud for US Government
23926
23927 · "de"
23928
23929 · Microsoft Cloud Germany
23930
23931 · "cn"
23932
23933 · Azure and Office 365 operated by 21Vianet in China
23934
23935 Advanced Options
23936 Here are the advanced options specific to onedrive (Microsoft
23937 OneDrive).
23938
23939 --onedrive-token
23940 OAuth Access Token as a JSON blob.
23941
23942 · Config: token
23943
23944 · Env Var: RCLONE_ONEDRIVE_TOKEN
23945
23946 · Type: string
23947
23948 · Default: ""
23949
23950 --onedrive-auth-url
23951 Auth server URL. Leave blank to use the provider defaults.
23952
23953 · Config: auth_url
23954
23955 · Env Var: RCLONE_ONEDRIVE_AUTH_URL
23956
23957 · Type: string
23958
23959 · Default: ""
23960
23961 --onedrive-token-url
23962 Token server url. Leave blank to use the provider defaults.
23963
23964 · Config: token_url
23965
23966 · Env Var: RCLONE_ONEDRIVE_TOKEN_URL
23967
23968 · Type: string
23969
23970 · Default: ""
23971
23972 --onedrive-chunk-size
23973 Chunk size to upload files with - must be multiple of 320k (327,680
23974 bytes).
23975
23976 Above this size files will be chunked - must be multiple of 320k
23977 (327,680 bytes) and should not exceed 250M (262,144,000 bytes) else you
23978 may encounter "Microsoft.SharePoint.Client.InvalidClientQueryException:
23979 The request message is too big." Note that the chunks will be buffered
23980 into memory.
23981
23982 · Config: chunk_size
23983
23984 · Env Var: RCLONE_ONEDRIVE_CHUNK_SIZE
23985
23986 · Type: SizeSuffix
23987
23988 · Default: 10M
23989
23990 --onedrive-drive-id
23991 The ID of the drive to use
23992
23993 · Config: drive_id
23994
23995 · Env Var: RCLONE_ONEDRIVE_DRIVE_ID
23996
23997 · Type: string
23998
23999 · Default: ""
24000
24001 --onedrive-drive-type
24002 The type of the drive ( personal | business | documentLibrary )
24003
24004 · Config: drive_type
24005
24006 · Env Var: RCLONE_ONEDRIVE_DRIVE_TYPE
24007
24008 · Type: string
24009
24010 · Default: ""
24011
24012 --onedrive-expose-onenote-files
24013 Set to make OneNote files show up in directory listings.
24014
24015 By default rclone will hide OneNote files in directory listings because
24016 operations like "Open" and "Update" won't work on them. But this be‐
24017 haviour may also prevent you from deleting them. If you want to delete
24018 OneNote files or otherwise want them to show up in directory listing,
24019 set this option.
24020
24021 · Config: expose_onenote_files
24022
24023 · Env Var: RCLONE_ONEDRIVE_EXPOSE_ONENOTE_FILES
24024
24025 · Type: bool
24026
24027 · Default: false
24028
24029 --onedrive-server-side-across-configs
24030 Allow server-side operations (e.g. copy) to work across different
24031 onedrive configs.
24032
24033 This will only work if you are copying between two OneDrive Personal
24034 drives AND the files to copy are already shared between them. In other
24035 cases, rclone will fall back to normal copy (which will be slightly
24036 slower).
24037
24038 · Config: server_side_across_configs
24039
24040 · Env Var: RCLONE_ONEDRIVE_SERVER_SIDE_ACROSS_CONFIGS
24041
24042 · Type: bool
24043
24044 · Default: false
24045
24046 --onedrive-no-versions
24047 Remove all versions on modifying operations
24048
24049 Onedrive for business creates versions when rclone uploads new files
24050 overwriting an existing one and when it sets the modification time.
24051
24052 These versions take up space out of the quota.
24053
24054 This flag checks for versions after file upload and setting modifica‐
24055 tion time and removes all but the last version.
24056
24057 NB Onedrive personal can't currently delete versions so don't use this
24058 flag there.
24059
24060 · Config: no_versions
24061
24062 · Env Var: RCLONE_ONEDRIVE_NO_VERSIONS
24063
24064 · Type: bool
24065
24066 · Default: false
24067
24068 --onedrive-link-scope
24069 Set the scope of the links created by the link command.
24070
24071 · Config: link_scope
24072
24073 · Env Var: RCLONE_ONEDRIVE_LINK_SCOPE
24074
24075 · Type: string
24076
24077 · Default: "anonymous"
24078
24079 · Examples:
24080
24081 · "anonymous"
24082
24083 · Anyone with the link has access, without needing to sign in.
24084 This may include people outside of your organization. Anonymous
24085 link support may be disabled by an administrator.
24086
24087 · "organization"
24088
24089 · Anyone signed into your organization (tenant) can use the link to
24090 get access. Only available in OneDrive for Business and Share‐
24091 Point.
24092
24093 --onedrive-link-type
24094 Set the type of the links created by the link command.
24095
24096 · Config: link_type
24097
24098 · Env Var: RCLONE_ONEDRIVE_LINK_TYPE
24099
24100 · Type: string
24101
24102 · Default: "view"
24103
24104 · Examples:
24105
24106 · "view"
24107
24108 · Creates a read-only link to the item.
24109
24110 · "edit"
24111
24112 · Creates a read-write link to the item.
24113
24114 · "embed"
24115
24116 · Creates an embeddable link to the item.
24117
24118 --onedrive-link-password
24119 Set the password for links created by the link command.
24120
24121 At the time of writing this only works with OneDrive personal paid ac‐
24122 counts.
24123
24124 · Config: link_password
24125
24126 · Env Var: RCLONE_ONEDRIVE_LINK_PASSWORD
24127
24128 · Type: string
24129
24130 · Default: ""
24131
24132 --onedrive-encoding
24133 This sets the encoding for the backend.
24134
24135 See: the encoding section in the overview (https://rclone.org/over‐
24136 view/#encoding) for more info.
24137
24138 · Config: encoding
24139
24140 · Env Var: RCLONE_ONEDRIVE_ENCODING
24141
24142 · Type: MultiEncoder
24143
24144 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
24145 Slash,Del,Ctl,LeftSpace,LeftTilde,RightSpace,RightPeriod,In‐
24146 validUtf8,Dot
24147
24148 Limitations
24149 If you don't use rclone for 90 days the refresh token will expire.
24150 This will result in authorization problems. This is easy to fix by
24151 running the rclone config reconnect remote: command to get a new token
24152 and refresh token.
24153
24154 Naming
24155 Note that OneDrive is case insensitive so you can't have a file called
24156 "Hello.doc" and one called "hello.doc".
24157
24158 There are quite a few characters that can't be in OneDrive file names.
24159 These can't occur on Windows platforms, but on non-Windows platforms
24160 they are common. Rclone will map these names to and from an identical
24161 looking unicode equivalent. For example if a file has a ? in it will
24162 be mapped to ? instead.
24163
24164 File sizes
24165 The largest allowed file size is 250GB for both OneDrive Personal and
24166 OneDrive for Business (Updated 13 Jan 2021) (https://support.micro‐
24167 soft.com/en-us/office/invalid-file-names-and-file-types-in-onedrive-
24168 and-sharepoint-64883a5d-228e-48f5-b3d2-eb39e07630fa?ui=en-us&rs=en-
24169 us&ad=us#individualfilesize).
24170
24171 Path length
24172 The entire path, including the file name, must contain fewer than 400
24173 characters for OneDrive, OneDrive for Business and SharePoint Online.
24174 If you are encrypting file and folder names with rclone, you may want
24175 to pay attention to this limitation because the encrypted names are
24176 typically longer than the original ones.
24177
24178 Number of files
24179 OneDrive seems to be OK with at least 50,000 files in a folder, but at
24180 100,000 rclone will get errors listing the directory like couldn’t list
24181 files: UnknownError:. See #2707 (https://github.com/rclone/rclone/is‐
24182 sues/2707) for more info.
24183
24184 An official document about the limitations for different types of
24185 OneDrive can be found here (https://support.office.com/en-us/arti‐
24186 cle/invalid-file-names-and-file-types-in-onedrive-onedrive-for-busi‐
24187 ness-and-sharepoint-64883a5d-228e-48f5-b3d2-eb39e07630fa).
24188
24189 Versions
24190 Every change in a file OneDrive causes the service to create a new ver‐
24191 sion of the the file. This counts against a users quota. For example
24192 changing the modification time of a file creates a second version, so
24193 the file apparently uses twice the space.
24194
24195 For example the copy command is affected by this as rclone copies the
24196 file and then afterwards sets the modification time to match the source
24197 file which uses another version.
24198
24199 You can use the rclone cleanup command (see below) to remove all old
24200 versions.
24201
24202 Or you can set the no_versions parameter to true and rclone will remove
24203 versions after operations which create new versions. This takes extra
24204 transactions so only enable it if you need it.
24205
24206 Note At the time of writing Onedrive Personal creates versions (but not
24207 for setting the modification time) but the API for removing them re‐
24208 turns "API not found" so cleanup and no_versions should not be used on
24209 Onedrive Personal.
24210
24211 Disabling versioning
24212 Starting October 2018, users will no longer be able to disable version‐
24213 ing by default. This is because Microsoft has brought an update
24214 (https://techcommunity.microsoft.com/t5/Microsoft-OneDrive-Blog/New-Up‐
24215 dates-to-OneDrive-and-SharePoint-Team-Site-Versioning/ba-p/204390) to
24216 the mechanism. To change this new default setting, a PowerShell com‐
24217 mand is required to be run by a SharePoint admin. If you are an admin,
24218 you can run these commands in PowerShell to change that setting:
24219
24220 1. Install-Module -Name Microsoft.Online.SharePoint.PowerShell (in case
24221 you haven't installed this already)
24222
24223 2. Import-Module Microsoft.Online.SharePoint.PowerShell -Disable‐
24224 NameChecking
24225
24226 3. Connect-SPOService -Url https://YOURSITE-admin.sharepoint.com -Cre‐
24227 dential YOU@YOURSITE.COM (replacing YOURSITE, YOU, YOURSITE.COM with
24228 the actual values; this will prompt for your credentials)
24229
24230 4. Set-SPOTenant -EnableMinimumVersionRequirement $False
24231
24232 5. Disconnect-SPOService (to disconnect from the server)
24233
24234 Below are the steps for normal users to disable versioning. If you
24235 don't see the "No Versioning" option, make sure the above requirements
24236 are met.
24237
24238 User Weropol (https://github.com/Weropol) has found a method to disable
24239 versioning on OneDrive
24240
24241 1. Open the settings menu by clicking on the gear symbol at the top of
24242 the OneDrive Business page.
24243
24244 2. Click Site settings.
24245
24246 3. Once on the Site settings page, navigate to Site Administration >
24247 Site libraries and lists.
24248
24249 4. Click Customize "Documents".
24250
24251 5. Click General Settings > Versioning Settings.
24252
24253 6. Under Document Version History select the option No versioning.
24254 Note: This will disable the creation of new file versions, but will
24255 not remove any previous versions. Your documents are safe.
24256
24257 7. Apply the changes by clicking OK.
24258
24259 8. Use rclone to upload or modify files. (I also use the --no-up‐
24260 date-modtime flag)
24261
24262 9. Restore the versioning settings after using rclone. (Optional)
24263
24264 Cleanup
24265 OneDrive supports rclone cleanup which causes rclone to look through
24266 every file under the path supplied and delete all version but the cur‐
24267 rent version. Because this involves traversing all the files, then
24268 querying each file for versions it can be quite slow. Rclone does
24269 --checkers tests in parallel. The command also supports -i which is a
24270 great way to see what it would do.
24271
24272 rclone cleanup -i remote:path/subdir # interactively remove all old version for path/subdir
24273 rclone cleanup remote:path/subdir # unconditionally remove all old version for path/subdir
24274
24275 NB Onedrive personal can't currently delete versions
24276
24277 Troubleshooting
24278 Unexpected file size/hash differences on Sharepoint
24279 It is a known (https://github.com/OneDrive/onedrive-api-docs/is‐
24280 sues/935#issuecomment-441741631) issue that Sharepoint (not OneDrive or
24281 OneDrive for Business) silently modifies uploaded files, mainly Office
24282 files (.docx, .xlsx, etc.), causing file size and hash checks to fail.
24283 There are also other situations that will cause OneDrive to report in‐
24284 consistent file sizes. To use rclone with such affected files on
24285 Sharepoint, you may disable these checks with the following command
24286 line arguments:
24287
24288 --ignore-checksum --ignore-size
24289
24290 Alternatively, if you have write access to the OneDrive files, it may
24291 be possible to fix this problem for certain files, by attempting the
24292 steps below. Open the web interface for OneDrive
24293 (https://onedrive.live.com) and find the affected files (which will be
24294 in the error messages/log for rclone). Simply click on each of these
24295 files, causing OneDrive to open them on the web. This will cause each
24296 file to be converted in place to a format that is functionally equiva‐
24297 lent but which will no longer trigger the size discrepancy. Once all
24298 problematic files are converted you will no longer need the ignore op‐
24299 tions above.
24300
24301 Replacing/deleting existing files on Sharepoint gets "item not found"
24302 It is a known (https://github.com/OneDrive/onedrive-api-docs/is‐
24303 sues/1068) issue that Sharepoint (not OneDrive or OneDrive for Busi‐
24304 ness) may return "item not found" errors when users try to replace or
24305 delete uploaded files; this seems to mainly affect Office files (.docx,
24306 .xlsx, etc.). As a workaround, you may use the --backup-dir <BACK‐
24307 UP_DIR> command line argument so rclone moves the files to be re‐
24308 placed/deleted into a given backup directory (instead of directly re‐
24309 placing/deleting them). For example, to instruct rclone to move the
24310 files into the directory rclone-backup-dir on backend mysharepoint, you
24311 may use:
24312
24313 --backup-dir mysharepoint:rclone-backup-dir
24314
24315 access_denied (AADSTS65005)
24316 Error: access_denied
24317 Code: AADSTS65005
24318 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.
24319
24320 This means that rclone can't use the OneDrive for Business API with
24321 your account. You can't do much about it, maybe write an email to your
24322 admins.
24323
24324 However, there are other ways to interact with your OneDrive account.
24325 Have a look at the webdav backend: https://rclone.org/webdav/#share‐
24326 point
24327
24328 invalid_grant (AADSTS50076)
24329 Error: invalid_grant
24330 Code: AADSTS50076
24331 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 '...'.
24332
24333 If you see the error above after enabling multi-factor authentication
24334 for your account, you can fix it by refreshing your OAuth refresh to‐
24335 ken. To do that, run rclone config, and choose to edit your OneDrive
24336 backend. Then, you don't need to actually make any changes until you
24337 reach this question: Already have a token - refresh?. For this ques‐
24338 tion, answer y and go through the process to refresh your token, just
24339 like the first time the backend is configured. After this, rclone
24340 should work again for this backend.
24341
24342 OpenDrive
24343 Paths are specified as remote:path
24344
24345 Paths may be as deep as required, e.g. remote:directory/subdirectory.
24346
24347 Here is an example of how to make a remote called remote. First run:
24348
24349 rclone config
24350
24351 This will guide you through an interactive setup process:
24352
24353 n) New remote
24354 d) Delete remote
24355 q) Quit config
24356 e/n/d/q> n
24357 name> remote
24358 Type of storage to configure.
24359 Choose a number from below, or type in your own value
24360 [snip]
24361 XX / OpenDrive
24362 \ "opendrive"
24363 [snip]
24364 Storage> opendrive
24365 Username
24366 username>
24367 Password
24368 y) Yes type in my own password
24369 g) Generate random password
24370 y/g> y
24371 Enter the password:
24372 password:
24373 Confirm the password:
24374 password:
24375 --------------------
24376 [remote]
24377 username =
24378 password = *** ENCRYPTED ***
24379 --------------------
24380 y) Yes this is OK
24381 e) Edit this remote
24382 d) Delete this remote
24383 y/e/d> y
24384
24385 List directories in top level of your OpenDrive
24386
24387 rclone lsd remote:
24388
24389 List all the files in your OpenDrive
24390
24391 rclone ls remote:
24392
24393 To copy a local directory to an OpenDrive directory called backup
24394
24395 rclone copy /home/source remote:backup
24396
24397 Modified time and MD5SUMs
24398 OpenDrive allows modification times to be set on objects accurate to 1
24399 second. These will be used to detect whether objects need syncing or
24400 not.
24401
24402 Restricted filename characters
24403 Character Value Replacement
24404 ────────────────────────────────
24405 NUL 0x00 ␀
24406 / 0x2F /
24407 " 0x22 "
24408 * 0x2A *
24409 : 0x3A :
24410 < 0x3C <
24411 > 0x3E >
24412 ? 0x3F ?
24413 \ 0x5C \
24414 | 0x7C |
24415
24416 File names can also not begin or end with the following characters.
24417 These only get replaced if they are the first or last character in the
24418 name:
24419
24420 Character Value Replacement
24421 ────────────────────────────────
24422 SP 0x20 ␠
24423 HT 0x09 ␉
24424 LF 0x0A ␊
24425 VT 0x0B ␋
24426 CR 0x0D ␍
24427
24428 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
24429 view/#invalid-utf8), as they can't be used in JSON strings.
24430
24431 Standard Options
24432 Here are the standard options specific to opendrive (OpenDrive).
24433
24434 --opendrive-username
24435 Username
24436
24437 · Config: username
24438
24439 · Env Var: RCLONE_OPENDRIVE_USERNAME
24440
24441 · Type: string
24442
24443 · Default: ""
24444
24445 --opendrive-password
24446 Password.
24447
24448 NB Input to this must be obscured - see rclone obscure
24449 (https://rclone.org/commands/rclone_obscure/).
24450
24451 · Config: password
24452
24453 · Env Var: RCLONE_OPENDRIVE_PASSWORD
24454
24455 · Type: string
24456
24457 · Default: ""
24458
24459 Advanced Options
24460 Here are the advanced options specific to opendrive (OpenDrive).
24461
24462 --opendrive-encoding
24463 This sets the encoding for the backend.
24464
24465 See: the encoding section in the overview (https://rclone.org/over‐
24466 view/#encoding) for more info.
24467
24468 · Config: encoding
24469
24470 · Env Var: RCLONE_OPENDRIVE_ENCODING
24471
24472 · Type: MultiEncoder
24473
24474 · Default: Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,Back‐
24475 Slash,LeftSpace,LeftCrLfHtVt,RightSpace,RightCrLfHtVt,InvalidUtf8,Dot
24476
24477 --opendrive-chunk-size
24478 Files will be uploaded in chunks this size.
24479
24480 Note that these chunks are buffered in memory so increasing them will
24481 increase memory use.
24482
24483 · Config: chunk_size
24484
24485 · Env Var: RCLONE_OPENDRIVE_CHUNK_SIZE
24486
24487 · Type: SizeSuffix
24488
24489 · Default: 10M
24490
24491 Limitations
24492 Note that OpenDrive is case insensitive so you can't have a file called
24493 "Hello.doc" and one called "hello.doc".
24494
24495 There are quite a few characters that can't be in OpenDrive file names.
24496 These can't occur on Windows platforms, but on non-Windows platforms
24497 they are common. Rclone will map these names to and from an identical
24498 looking unicode equivalent. For example if a file has a ? in it will
24499 be mapped to ? instead.
24500
24501 rclone about is not supported by the OpenDrive backend. Backends with‐
24502 out this capability cannot determine free space for an rclone mount or
24503 use policy mfs (most free space) as a member of an rclone union remote.
24504
24505 See List of backends that do not support rclone about
24506 (https://rclone.org/overview/#optional-features) See rclone about
24507 (https://rclone.org/commands/rclone_about/)
24508
24509 QingStor
24510 Paths are specified as remote:bucket (or remote: for the lsd command.)
24511 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
24512
24513 Here is an example of making an QingStor configuration. First run
24514
24515 rclone config
24516
24517 This will guide you through an interactive setup process.
24518
24519 No remotes found - make a new one
24520 n) New remote
24521 r) Rename remote
24522 c) Copy remote
24523 s) Set configuration password
24524 q) Quit config
24525 n/r/c/s/q> n
24526 name> remote
24527 Type of storage to configure.
24528 Choose a number from below, or type in your own value
24529 [snip]
24530 XX / QingStor Object Storage
24531 \ "qingstor"
24532 [snip]
24533 Storage> qingstor
24534 Get QingStor credentials from runtime. Only applies if access_key_id and secret_access_key is blank.
24535 Choose a number from below, or type in your own value
24536 1 / Enter QingStor credentials in the next step
24537 \ "false"
24538 2 / Get QingStor credentials from the environment (env vars or IAM)
24539 \ "true"
24540 env_auth> 1
24541 QingStor Access Key ID - leave blank for anonymous access or runtime credentials.
24542 access_key_id> access_key
24543 QingStor Secret Access Key (password) - leave blank for anonymous access or runtime credentials.
24544 secret_access_key> secret_key
24545 Enter an endpoint URL to connection QingStor API.
24546 Leave blank will use the default value "https://qingstor.com:443"
24547 endpoint>
24548 Zone connect to. Default is "pek3a".
24549 Choose a number from below, or type in your own value
24550 / The Beijing (China) Three Zone
24551 1 | Needs location constraint pek3a.
24552 \ "pek3a"
24553 / The Shanghai (China) First Zone
24554 2 | Needs location constraint sh1a.
24555 \ "sh1a"
24556 zone> 1
24557 Number of connection retry.
24558 Leave blank will use the default value "3".
24559 connection_retries>
24560 Remote config
24561 --------------------
24562 [remote]
24563 env_auth = false
24564 access_key_id = access_key
24565 secret_access_key = secret_key
24566 endpoint =
24567 zone = pek3a
24568 connection_retries =
24569 --------------------
24570 y) Yes this is OK
24571 e) Edit this remote
24572 d) Delete this remote
24573 y/e/d> y
24574
24575 This remote is called remote and can now be used like this
24576
24577 See all buckets
24578
24579 rclone lsd remote:
24580
24581 Make a new bucket
24582
24583 rclone mkdir remote:bucket
24584
24585 List the contents of a bucket
24586
24587 rclone ls remote:bucket
24588
24589 Sync /home/local/directory to the remote bucket, deleting any excess
24590 files in the bucket.
24591
24592 rclone sync -i /home/local/directory remote:bucket
24593
24594 --fast-list
24595 This remote supports --fast-list which allows you to use fewer transac‐
24596 tions in exchange for more memory. See the rclone docs
24597 (https://rclone.org/docs/#fast-list) for more details.
24598
24599 Multipart uploads
24600 rclone supports multipart uploads with QingStor which means that it can
24601 upload files bigger than 5GB. Note that files uploaded with multipart
24602 upload don't have an MD5SUM.
24603
24604 Note that incomplete multipart uploads older than 24 hours can be re‐
24605 moved with rclone cleanup remote:bucket just for one bucket rclone
24606 cleanup remote: for all buckets. QingStor does not ever remove incom‐
24607 plete multipart uploads so it may be necessary to run this from time to
24608 time.
24609
24610 Buckets and Zone
24611 With QingStor you can list buckets (rclone lsd) using any zone, but you
24612 can only access the content of a bucket from the zone it was created
24613 in. If you attempt to access a bucket from the wrong zone, you will
24614 get an error, incorrect zone, the bucket is not in 'XXX' zone.
24615
24616 Authentication
24617 There are two ways to supply rclone with a set of QingStor credentials.
24618 In order of precedence:
24619
24620 · Directly in the rclone configuration file (as configured by rclone
24621 config)
24622
24623 · set access_key_id and secret_access_key
24624
24625 · Runtime configuration:
24626
24627 · set env_auth to true in the config file
24628
24629 · Exporting the following environment variables before running rclone
24630
24631 · Access Key ID: QS_ACCESS_KEY_ID or QS_ACCESS_KEY
24632
24633 · Secret Access Key: QS_SECRET_ACCESS_KEY or QS_SECRET_KEY
24634
24635 Restricted filename characters
24636 The control characters 0x00-0x1F and / are replaced as in the default
24637 restricted characters set (https://rclone.org/overview/#restricted-
24638 characters). Note that 0x7F is not replaced.
24639
24640 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
24641 view/#invalid-utf8), as they can't be used in JSON strings.
24642
24643 Standard Options
24644 Here are the standard options specific to qingstor (QingCloud Object
24645 Storage).
24646
24647 --qingstor-env-auth
24648 Get QingStor credentials from runtime. Only applies if access_key_id
24649 and secret_access_key is blank.
24650
24651 · Config: env_auth
24652
24653 · Env Var: RCLONE_QINGSTOR_ENV_AUTH
24654
24655 · Type: bool
24656
24657 · Default: false
24658
24659 · Examples:
24660
24661 · "false"
24662
24663 · Enter QingStor credentials in the next step
24664
24665 · "true"
24666
24667 · Get QingStor credentials from the environment (env vars or IAM)
24668
24669 --qingstor-access-key-id
24670 QingStor Access Key ID Leave blank for anonymous access or runtime cre‐
24671 dentials.
24672
24673 · Config: access_key_id
24674
24675 · Env Var: RCLONE_QINGSTOR_ACCESS_KEY_ID
24676
24677 · Type: string
24678
24679 · Default: ""
24680
24681 --qingstor-secret-access-key
24682 QingStor Secret Access Key (password) Leave blank for anonymous access
24683 or runtime credentials.
24684
24685 · Config: secret_access_key
24686
24687 · Env Var: RCLONE_QINGSTOR_SECRET_ACCESS_KEY
24688
24689 · Type: string
24690
24691 · Default: ""
24692
24693 --qingstor-endpoint
24694 Enter an endpoint URL to connection QingStor API. Leave blank will use
24695 the default value "https://qingstor.com:443"
24696
24697 · Config: endpoint
24698
24699 · Env Var: RCLONE_QINGSTOR_ENDPOINT
24700
24701 · Type: string
24702
24703 · Default: ""
24704
24705 --qingstor-zone
24706 Zone to connect to. Default is "pek3a".
24707
24708 · Config: zone
24709
24710 · Env Var: RCLONE_QINGSTOR_ZONE
24711
24712 · Type: string
24713
24714 · Default: ""
24715
24716 · Examples:
24717
24718 · "pek3a"
24719
24720 · The Beijing (China) Three Zone
24721
24722 · Needs location constraint pek3a.
24723
24724 · "sh1a"
24725
24726 · The Shanghai (China) First Zone
24727
24728 · Needs location constraint sh1a.
24729
24730 · "gd2a"
24731
24732 · The Guangdong (China) Second Zone
24733
24734 · Needs location constraint gd2a.
24735
24736 Advanced Options
24737 Here are the advanced options specific to qingstor (QingCloud Object
24738 Storage).
24739
24740 --qingstor-connection-retries
24741 Number of connection retries.
24742
24743 · Config: connection_retries
24744
24745 · Env Var: RCLONE_QINGSTOR_CONNECTION_RETRIES
24746
24747 · Type: int
24748
24749 · Default: 3
24750
24751 --qingstor-upload-cutoff
24752 Cutoff for switching to chunked upload
24753
24754 Any files larger than this will be uploaded in chunks of chunk_size.
24755 The minimum is 0 and the maximum is 5GB.
24756
24757 · Config: upload_cutoff
24758
24759 · Env Var: RCLONE_QINGSTOR_UPLOAD_CUTOFF
24760
24761 · Type: SizeSuffix
24762
24763 · Default: 200M
24764
24765 --qingstor-chunk-size
24766 Chunk size to use for uploading.
24767
24768 When uploading files larger than upload_cutoff they will be uploaded as
24769 multipart uploads using this chunk size.
24770
24771 Note that "--qingstor-upload-concurrency" chunks of this size are
24772 buffered in memory per transfer.
24773
24774 If you are transferring large files over high-speed links and you have
24775 enough memory, then increasing this will speed up the transfers.
24776
24777 · Config: chunk_size
24778
24779 · Env Var: RCLONE_QINGSTOR_CHUNK_SIZE
24780
24781 · Type: SizeSuffix
24782
24783 · Default: 4M
24784
24785 --qingstor-upload-concurrency
24786 Concurrency for multipart uploads.
24787
24788 This is the number of chunks of the same file that are uploaded concur‐
24789 rently.
24790
24791 NB if you set this to > 1 then the checksums of multipart uploads be‐
24792 come corrupted (the uploads themselves are not corrupted though).
24793
24794 If you are uploading small numbers of large files over high-speed links
24795 and these uploads do not fully utilize your bandwidth, then increasing
24796 this may help to speed up the transfers.
24797
24798 · Config: upload_concurrency
24799
24800 · Env Var: RCLONE_QINGSTOR_UPLOAD_CONCURRENCY
24801
24802 · Type: int
24803
24804 · Default: 1
24805
24806 --qingstor-encoding
24807 This sets the encoding for the backend.
24808
24809 See: the encoding section in the overview (https://rclone.org/over‐
24810 view/#encoding) for more info.
24811
24812 · Config: encoding
24813
24814 · Env Var: RCLONE_QINGSTOR_ENCODING
24815
24816 · Type: MultiEncoder
24817
24818 · Default: Slash,Ctl,InvalidUtf8
24819
24820 Limitations
24821 rclone about is not supported by the qingstor backend. Backends with‐
24822 out this capability cannot determine free space for an rclone mount or
24823 use policy mfs (most free space) as a member of an rclone union remote.
24824
24825 See List of backends that do not support rclone about
24826 (https://rclone.org/overview/#optional-features) See rclone about
24827 (https://rclone.org/commands/rclone_about/)
24828
24829 Swift
24830 Swift refers to OpenStack Object Storage (https://docs.open‐
24831 stack.org/swift/latest/). Commercial implementations of that being:
24832
24833 · Rackspace Cloud Files (https://www.rackspace.com/cloud/files/)
24834
24835 · Memset Memstore (https://www.memset.com/cloud/storage/)
24836
24837 · OVH Object Storage (https://www.ovh.co.uk/public-cloud/storage/ob‐
24838 ject-storage/)
24839
24840 · Oracle Cloud Storage (https://cloud.oracle.com/storage-opc)
24841
24842 · IBM Bluemix Cloud ObjectStorage Swift (https://con‐
24843 sole.bluemix.net/docs/infrastructure/objectstorage-swift/index.html)
24844
24845 Paths are specified as remote:container (or remote: for the lsd com‐
24846 mand.) You may put subdirectories in too, e.g. remote:contain‐
24847 er/path/to/dir.
24848
24849 Here is an example of making a swift configuration. First run
24850
24851 rclone config
24852
24853 This will guide you through an interactive setup process.
24854
24855 No remotes found - make a new one
24856 n) New remote
24857 s) Set configuration password
24858 q) Quit config
24859 n/s/q> n
24860 name> remote
24861 Type of storage to configure.
24862 Choose a number from below, or type in your own value
24863 [snip]
24864 XX / OpenStack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
24865 \ "swift"
24866 [snip]
24867 Storage> swift
24868 Get swift credentials from environment variables in standard OpenStack form.
24869 Choose a number from below, or type in your own value
24870 1 / Enter swift credentials in the next step
24871 \ "false"
24872 2 / Get swift credentials from environment vars. Leave other fields blank if using this.
24873 \ "true"
24874 env_auth> true
24875 User name to log in (OS_USERNAME).
24876 user>
24877 API key or password (OS_PASSWORD).
24878 key>
24879 Authentication URL for server (OS_AUTH_URL).
24880 Choose a number from below, or type in your own value
24881 1 / Rackspace US
24882 \ "https://auth.api.rackspacecloud.com/v1.0"
24883 2 / Rackspace UK
24884 \ "https://lon.auth.api.rackspacecloud.com/v1.0"
24885 3 / Rackspace v2
24886 \ "https://identity.api.rackspacecloud.com/v2.0"
24887 4 / Memset Memstore UK
24888 \ "https://auth.storage.memset.com/v1.0"
24889 5 / Memset Memstore UK v2
24890 \ "https://auth.storage.memset.com/v2.0"
24891 6 / OVH
24892 \ "https://auth.cloud.ovh.net/v3"
24893 auth>
24894 User ID to log in - optional - most swift systems use user and leave this blank (v3 auth) (OS_USER_ID).
24895 user_id>
24896 User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
24897 domain>
24898 Tenant name - optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME)
24899 tenant>
24900 Tenant ID - optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID)
24901 tenant_id>
24902 Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
24903 tenant_domain>
24904 Region name - optional (OS_REGION_NAME)
24905 region>
24906 Storage URL - optional (OS_STORAGE_URL)
24907 storage_url>
24908 Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
24909 auth_token>
24910 AuthVersion - optional - set to (1,2,3) if your auth URL has no version (ST_AUTH_VERSION)
24911 auth_version>
24912 Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE)
24913 Choose a number from below, or type in your own value
24914 1 / Public (default, choose this if not sure)
24915 \ "public"
24916 2 / Internal (use internal service net)
24917 \ "internal"
24918 3 / Admin
24919 \ "admin"
24920 endpoint_type>
24921 Remote config
24922 --------------------
24923 [test]
24924 env_auth = true
24925 user =
24926 key =
24927 auth =
24928 user_id =
24929 domain =
24930 tenant =
24931 tenant_id =
24932 tenant_domain =
24933 region =
24934 storage_url =
24935 auth_token =
24936 auth_version =
24937 endpoint_type =
24938 --------------------
24939 y) Yes this is OK
24940 e) Edit this remote
24941 d) Delete this remote
24942 y/e/d> y
24943
24944 This remote is called remote and can now be used like this
24945
24946 See all containers
24947
24948 rclone lsd remote:
24949
24950 Make a new container
24951
24952 rclone mkdir remote:container
24953
24954 List the contents of a container
24955
24956 rclone ls remote:container
24957
24958 Sync /home/local/directory to the remote container, deleting any excess
24959 files in the container.
24960
24961 rclone sync -i /home/local/directory remote:container
24962
24963 Configuration from an OpenStack credentials file
24964 An OpenStack credentials file typically looks something something like
24965 this (without the comments)
24966
24967 export OS_AUTH_URL=https://a.provider.net/v2.0
24968 export OS_TENANT_ID=ffffffffffffffffffffffffffffffff
24969 export OS_TENANT_NAME="1234567890123456"
24970 export OS_USERNAME="123abc567xy"
24971 echo "Please enter your OpenStack Password: "
24972 read -sr OS_PASSWORD_INPUT
24973 export OS_PASSWORD=$OS_PASSWORD_INPUT
24974 export OS_REGION_NAME="SBG1"
24975 if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
24976
24977 The config file needs to look something like this where $OS_USERNAME
24978 represents the value of the OS_USERNAME variable - 123abc567xy in the
24979 example above.
24980
24981 [remote]
24982 type = swift
24983 user = $OS_USERNAME
24984 key = $OS_PASSWORD
24985 auth = $OS_AUTH_URL
24986 tenant = $OS_TENANT_NAME
24987
24988 Note that you may (or may not) need to set region too - try without
24989 first.
24990
24991 Configuration from the environment
24992 If you prefer you can configure rclone to use swift using a standard
24993 set of OpenStack environment variables.
24994
24995 When you run through the config, make sure you choose true for env_auth
24996 and leave everything else blank.
24997
24998 rclone will then set any empty config parameters from the environment
24999 using standard OpenStack environment variables. There is a list of the
25000 variables (https://godoc.org/github.com/ncw/swift#Connection.ApplyEnvi‐
25001 ronment) in the docs for the swift library.
25002
25003 Using an alternate authentication method
25004 If your OpenStack installation uses a non-standard authentication
25005 method that might not be yet supported by rclone or the underlying
25006 swift library, you can authenticate externally (e.g. calling manually
25007 the openstack commands to get a token). Then, you just need to pass
25008 the two configuration variables auth_token and storage_url. If they
25009 are both provided, the other variables are ignored. rclone will not
25010 try to authenticate but instead assume it is already authenticated and
25011 use these two variables to access the OpenStack installation.
25012
25013 Using rclone without a config file
25014 You can use rclone with swift without a config file, if desired, like
25015 this:
25016
25017 source openstack-credentials-file
25018 export RCLONE_CONFIG_MYREMOTE_TYPE=swift
25019 export RCLONE_CONFIG_MYREMOTE_ENV_AUTH=true
25020 rclone lsd myremote:
25021
25022 --fast-list
25023 This remote supports --fast-list which allows you to use fewer transac‐
25024 tions in exchange for more memory. See the rclone docs
25025 (https://rclone.org/docs/#fast-list) for more details.
25026
25027 --update and --use-server-modtime
25028 As noted below, the modified time is stored on metadata on the object.
25029 It is used by default for all operations that require checking the time
25030 a file was last updated. It allows rclone to treat the remote more
25031 like a true filesystem, but it is inefficient because it requires an
25032 extra API call to retrieve the metadata.
25033
25034 For many operations, the time the object was last uploaded to the re‐
25035 mote is sufficient to determine if it is "dirty". By using --update
25036 along with --use-server-modtime, you can avoid the extra API call and
25037 simply upload files whose local modtime is newer than the time it was
25038 last uploaded.
25039
25040 Standard Options
25041 Here are the standard options specific to swift (OpenStack Swift
25042 (Rackspace Cloud Files, Memset Memstore, OVH)).
25043
25044 --swift-env-auth
25045 Get swift credentials from environment variables in standard OpenStack
25046 form.
25047
25048 · Config: env_auth
25049
25050 · Env Var: RCLONE_SWIFT_ENV_AUTH
25051
25052 · Type: bool
25053
25054 · Default: false
25055
25056 · Examples:
25057
25058 · "false"
25059
25060 · Enter swift credentials in the next step
25061
25062 · "true"
25063
25064 · Get swift credentials from environment vars. Leave other fields
25065 blank if using this.
25066
25067 --swift-user
25068 User name to log in (OS_USERNAME).
25069
25070 · Config: user
25071
25072 · Env Var: RCLONE_SWIFT_USER
25073
25074 · Type: string
25075
25076 · Default: ""
25077
25078 --swift-key
25079 API key or password (OS_PASSWORD).
25080
25081 · Config: key
25082
25083 · Env Var: RCLONE_SWIFT_KEY
25084
25085 · Type: string
25086
25087 · Default: ""
25088
25089 --swift-auth
25090 Authentication URL for server (OS_AUTH_URL).
25091
25092 · Config: auth
25093
25094 · Env Var: RCLONE_SWIFT_AUTH
25095
25096 · Type: string
25097
25098 · Default: ""
25099
25100 · Examples:
25101
25102 · "https://auth.api.rackspacecloud.com/v1.0"
25103
25104 · Rackspace US
25105
25106 · "https://lon.auth.api.rackspacecloud.com/v1.0"
25107
25108 · Rackspace UK
25109
25110 · "https://identity.api.rackspacecloud.com/v2.0"
25111
25112 · Rackspace v2
25113
25114 · "https://auth.storage.memset.com/v1.0"
25115
25116 · Memset Memstore UK
25117
25118 · "https://auth.storage.memset.com/v2.0"
25119
25120 · Memset Memstore UK v2
25121
25122 · "https://auth.cloud.ovh.net/v3"
25123
25124 · OVH
25125
25126 --swift-user-id
25127 User ID to log in - optional - most swift systems use user and leave
25128 this blank (v3 auth) (OS_USER_ID).
25129
25130 · Config: user_id
25131
25132 · Env Var: RCLONE_SWIFT_USER_ID
25133
25134 · Type: string
25135
25136 · Default: ""
25137
25138 --swift-domain
25139 User domain - optional (v3 auth) (OS_USER_DOMAIN_NAME)
25140
25141 · Config: domain
25142
25143 · Env Var: RCLONE_SWIFT_DOMAIN
25144
25145 · Type: string
25146
25147 · Default: ""
25148
25149 --swift-tenant
25150 Tenant name - optional for v1 auth, this or tenant_id required other‐
25151 wise (OS_TENANT_NAME or OS_PROJECT_NAME)
25152
25153 · Config: tenant
25154
25155 · Env Var: RCLONE_SWIFT_TENANT
25156
25157 · Type: string
25158
25159 · Default: ""
25160
25161 --swift-tenant-id
25162 Tenant ID - optional for v1 auth, this or tenant required otherwise
25163 (OS_TENANT_ID)
25164
25165 · Config: tenant_id
25166
25167 · Env Var: RCLONE_SWIFT_TENANT_ID
25168
25169 · Type: string
25170
25171 · Default: ""
25172
25173 --swift-tenant-domain
25174 Tenant domain - optional (v3 auth) (OS_PROJECT_DOMAIN_NAME)
25175
25176 · Config: tenant_domain
25177
25178 · Env Var: RCLONE_SWIFT_TENANT_DOMAIN
25179
25180 · Type: string
25181
25182 · Default: ""
25183
25184 --swift-region
25185 Region name - optional (OS_REGION_NAME)
25186
25187 · Config: region
25188
25189 · Env Var: RCLONE_SWIFT_REGION
25190
25191 · Type: string
25192
25193 · Default: ""
25194
25195 --swift-storage-url
25196 Storage URL - optional (OS_STORAGE_URL)
25197
25198 · Config: storage_url
25199
25200 · Env Var: RCLONE_SWIFT_STORAGE_URL
25201
25202 · Type: string
25203
25204 · Default: ""
25205
25206 --swift-auth-token
25207 Auth Token from alternate authentication - optional (OS_AUTH_TOKEN)
25208
25209 · Config: auth_token
25210
25211 · Env Var: RCLONE_SWIFT_AUTH_TOKEN
25212
25213 · Type: string
25214
25215 · Default: ""
25216
25217 --swift-application-credential-id
25218 Application Credential ID (OS_APPLICATION_CREDENTIAL_ID)
25219
25220 · Config: application_credential_id
25221
25222 · Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_ID
25223
25224 · Type: string
25225
25226 · Default: ""
25227
25228 --swift-application-credential-name
25229 Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME)
25230
25231 · Config: application_credential_name
25232
25233 · Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_NAME
25234
25235 · Type: string
25236
25237 · Default: ""
25238
25239 --swift-application-credential-secret
25240 Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET)
25241
25242 · Config: application_credential_secret
25243
25244 · Env Var: RCLONE_SWIFT_APPLICATION_CREDENTIAL_SECRET
25245
25246 · Type: string
25247
25248 · Default: ""
25249
25250 --swift-auth-version
25251 AuthVersion - optional - set to (1,2,3) if your auth URL has no version
25252 (ST_AUTH_VERSION)
25253
25254 · Config: auth_version
25255
25256 · Env Var: RCLONE_SWIFT_AUTH_VERSION
25257
25258 · Type: int
25259
25260 · Default: 0
25261
25262 --swift-endpoint-type
25263 Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE)
25264
25265 · Config: endpoint_type
25266
25267 · Env Var: RCLONE_SWIFT_ENDPOINT_TYPE
25268
25269 · Type: string
25270
25271 · Default: "public"
25272
25273 · Examples:
25274
25275 · "public"
25276
25277 · Public (default, choose this if not sure)
25278
25279 · "internal"
25280
25281 · Internal (use internal service net)
25282
25283 · "admin"
25284
25285 · Admin
25286
25287 --swift-storage-policy
25288 The storage policy to use when creating a new container
25289
25290 This applies the specified storage policy when creating a new contain‐
25291 er. The policy cannot be changed afterwards. The allowed configura‐
25292 tion values and their meaning depend on your Swift storage provider.
25293
25294 · Config: storage_policy
25295
25296 · Env Var: RCLONE_SWIFT_STORAGE_POLICY
25297
25298 · Type: string
25299
25300 · Default: ""
25301
25302 · Examples:
25303
25304 · ""
25305
25306 · Default
25307
25308 · "pcs"
25309
25310 · OVH Public Cloud Storage
25311
25312 · "pca"
25313
25314 · OVH Public Cloud Archive
25315
25316 Advanced Options
25317 Here are the advanced options specific to swift (OpenStack Swift
25318 (Rackspace Cloud Files, Memset Memstore, OVH)).
25319
25320 --swift-leave-parts-on-error
25321 If true avoid calling abort upload on a failure. It should be set to
25322 true for resuming uploads across different sessions.
25323
25324 · Config: leave_parts_on_error
25325
25326 · Env Var: RCLONE_SWIFT_LEAVE_PARTS_ON_ERROR
25327
25328 · Type: bool
25329
25330 · Default: false
25331
25332 --swift-chunk-size
25333 Above this size files will be chunked into a _segments container.
25334
25335 Above this size files will be chunked into a _segments container. The
25336 default for this is 5GB which is its maximum value.
25337
25338 · Config: chunk_size
25339
25340 · Env Var: RCLONE_SWIFT_CHUNK_SIZE
25341
25342 · Type: SizeSuffix
25343
25344 · Default: 5G
25345
25346 --swift-no-chunk
25347 Don't chunk files during streaming upload.
25348
25349 When doing streaming uploads (e.g. using rcat or mount) setting this
25350 flag will cause the swift backend to not upload chunked files.
25351
25352 This will limit the maximum upload size to 5GB. However non chunked
25353 files are easier to deal with and have an MD5SUM.
25354
25355 Rclone will still chunk files bigger than chunk_size when doing normal
25356 copy operations.
25357
25358 · Config: no_chunk
25359
25360 · Env Var: RCLONE_SWIFT_NO_CHUNK
25361
25362 · Type: bool
25363
25364 · Default: false
25365
25366 --swift-encoding
25367 This sets the encoding for the backend.
25368
25369 See: the encoding section in the overview (https://rclone.org/over‐
25370 view/#encoding) for more info.
25371
25372 · Config: encoding
25373
25374 · Env Var: RCLONE_SWIFT_ENCODING
25375
25376 · Type: MultiEncoder
25377
25378 · Default: Slash,InvalidUtf8
25379
25380 Modified time
25381 The modified time is stored as metadata on the object as X-Ob‐
25382 ject-Meta-Mtime as floating point since the epoch accurate to 1 ns.
25383
25384 This is a de facto standard (used in the official python-swiftclient
25385 amongst others) for storing the modification time for an object.
25386
25387 Restricted filename characters
25388 Character Value Replacement
25389 ────────────────────────────────
25390 NUL 0x00 ␀
25391 / 0x2F /
25392
25393 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
25394 view/#invalid-utf8), as they can't be used in JSON strings.
25395
25396 Limitations
25397 The Swift API doesn't return a correct MD5SUM for segmented files (Dy‐
25398 namic or Static Large Objects) so rclone won't check or use the MD5SUM
25399 for these.
25400
25401 Troubleshooting
25402 Rclone gives Failed to create file system for "remote:": Bad Request
25403 Due to an oddity of the underlying swift library, it gives a "Bad Re‐
25404 quest" error rather than a more sensible error when the authentication
25405 fails for Swift.
25406
25407 So this most likely means your username / password is wrong. You can
25408 investigate further with the --dump-bodies flag.
25409
25410 This may also be caused by specifying the region when you shouldn't
25411 have (e.g. OVH).
25412
25413 Rclone gives Failed to create file system: Response didn't have storage url
25414 and auth token
25415 This is most likely caused by forgetting to specify your tenant when
25416 setting up a swift remote.
25417
25418 pCloud
25419 Paths are specified as remote:path
25420
25421 Paths may be as deep as required, e.g. remote:directory/subdirectory.
25422
25423 The initial setup for pCloud involves getting a token from pCloud which
25424 you need to do in your browser. rclone config walks you through it.
25425
25426 Here is an example of how to make a remote called remote. First run:
25427
25428 rclone config
25429
25430 This will guide you through an interactive setup process:
25431
25432 No remotes found - make a new one
25433 n) New remote
25434 s) Set configuration password
25435 q) Quit config
25436 n/s/q> n
25437 name> remote
25438 Type of storage to configure.
25439 Choose a number from below, or type in your own value
25440 [snip]
25441 XX / Pcloud
25442 \ "pcloud"
25443 [snip]
25444 Storage> pcloud
25445 Pcloud App Client Id - leave blank normally.
25446 client_id>
25447 Pcloud App Client Secret - leave blank normally.
25448 client_secret>
25449 Remote config
25450 Use auto config?
25451 * Say Y if not sure
25452 * Say N if you are working on a remote or headless machine
25453 y) Yes
25454 n) No
25455 y/n> y
25456 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
25457 Log in and authorize rclone for access
25458 Waiting for code...
25459 Got code
25460 --------------------
25461 [remote]
25462 client_id =
25463 client_secret =
25464 token = {"access_token":"XXX","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}
25465 --------------------
25466 y) Yes this is OK
25467 e) Edit this remote
25468 d) Delete this remote
25469 y/e/d> y
25470
25471 See the remote setup docs (https://rclone.org/remote_setup/) for how to
25472 set it up on a machine with no Internet browser available.
25473
25474 Note that rclone runs a webserver on your local machine to collect the
25475 token as returned from pCloud. This only runs from the moment it opens
25476 your browser to the moment you get back the verification code. This is
25477 on http://127.0.0.1:53682/ and this it may require you to unblock it
25478 temporarily if you are running a host firewall.
25479
25480 Once configured you can then use rclone like this,
25481
25482 List directories in top level of your pCloud
25483
25484 rclone lsd remote:
25485
25486 List all the files in your pCloud
25487
25488 rclone ls remote:
25489
25490 To copy a local directory to an pCloud directory called backup
25491
25492 rclone copy /home/source remote:backup
25493
25494 Modified time and hashes
25495 pCloud allows modification times to be set on objects accurate to 1
25496 second. These will be used to detect whether objects need syncing or
25497 not. In order to set a Modification time pCloud requires the object be
25498 re-uploaded.
25499
25500 pCloud supports MD5 and SHA1 type hashes in the US region but and SHA1
25501 only in the EU region, so you can use the --checksum flag.
25502
25503 (Note that pCloud also support SHA256 in the EU region, but rclone does
25504 not have support for that yet.)
25505
25506 Restricted filename characters
25507 In addition to the default restricted characters set
25508 (https://rclone.org/overview/#restricted-characters) the following
25509 characters are also replaced:
25510
25511 Character Value Replacement
25512 ────────────────────────────────
25513 \ 0x5C \
25514
25515 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
25516 view/#invalid-utf8), as they can't be used in JSON strings.
25517
25518 Deleting files
25519 Deleted files will be moved to the trash. Your subscription level will
25520 determine how long items stay in the trash. rclone cleanup can be used
25521 to empty the trash.
25522
25523 Root folder ID
25524 You can set the root_folder_id for rclone. This is the directory
25525 (identified by its Folder ID) that rclone considers to be the root of
25526 your pCloud drive.
25527
25528 Normally you will leave this blank and rclone will determine the cor‐
25529 rect root to use itself.
25530
25531 However you can set this to restrict rclone to a specific folder hier‐
25532 archy.
25533
25534 In order to do this you will have to find the Folder ID of the directo‐
25535 ry you wish rclone to display. This will be the folder field of the
25536 URL when you open the relevant folder in the pCloud web interface.
25537
25538 So if the folder you want rclone to use has a URL which looks like
25539 https://my.pcloud.com/#page=filemanager&folder=5xxxxxxxx8&tpl=folder‐
25540 grid in the browser, then you use 5xxxxxxxx8 as the root_folder_id in
25541 the config.
25542
25543 Standard Options
25544 Here are the standard options specific to pcloud (Pcloud).
25545
25546 --pcloud-client-id
25547 OAuth Client Id Leave blank normally.
25548
25549 · Config: client_id
25550
25551 · Env Var: RCLONE_PCLOUD_CLIENT_ID
25552
25553 · Type: string
25554
25555 · Default: ""
25556
25557 --pcloud-client-secret
25558 OAuth Client Secret Leave blank normally.
25559
25560 · Config: client_secret
25561
25562 · Env Var: RCLONE_PCLOUD_CLIENT_SECRET
25563
25564 · Type: string
25565
25566 · Default: ""
25567
25568 Advanced Options
25569 Here are the advanced options specific to pcloud (Pcloud).
25570
25571 --pcloud-token
25572 OAuth Access Token as a JSON blob.
25573
25574 · Config: token
25575
25576 · Env Var: RCLONE_PCLOUD_TOKEN
25577
25578 · Type: string
25579
25580 · Default: ""
25581
25582 --pcloud-auth-url
25583 Auth server URL. Leave blank to use the provider defaults.
25584
25585 · Config: auth_url
25586
25587 · Env Var: RCLONE_PCLOUD_AUTH_URL
25588
25589 · Type: string
25590
25591 · Default: ""
25592
25593 --pcloud-token-url
25594 Token server url. Leave blank to use the provider defaults.
25595
25596 · Config: token_url
25597
25598 · Env Var: RCLONE_PCLOUD_TOKEN_URL
25599
25600 · Type: string
25601
25602 · Default: ""
25603
25604 --pcloud-encoding
25605 This sets the encoding for the backend.
25606
25607 See: the encoding section in the overview (https://rclone.org/over‐
25608 view/#encoding) for more info.
25609
25610 · Config: encoding
25611
25612 · Env Var: RCLONE_PCLOUD_ENCODING
25613
25614 · Type: MultiEncoder
25615
25616 · Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
25617
25618 --pcloud-root-folder-id
25619 Fill in for rclone to use a non root folder as its starting point.
25620
25621 · Config: root_folder_id
25622
25623 · Env Var: RCLONE_PCLOUD_ROOT_FOLDER_ID
25624
25625 · Type: string
25626
25627 · Default: "d0"
25628
25629 --pcloud-hostname
25630 Hostname to connect to.
25631
25632 This is normally set when rclone initially does the oauth connection,
25633 however you will need to set it by hand if you are using remote config
25634 with rclone authorize.
25635
25636 · Config: hostname
25637
25638 · Env Var: RCLONE_PCLOUD_HOSTNAME
25639
25640 · Type: string
25641
25642 · Default: "api.pcloud.com"
25643
25644 · Examples:
25645
25646 · "api.pcloud.com"
25647
25648 · Original/US region
25649
25650 · "eapi.pcloud.com"
25651
25652 · EU region
25653
25654 premiumize.me
25655 Paths are specified as remote:path
25656
25657 Paths may be as deep as required, e.g. remote:directory/subdirectory.
25658
25659 The initial setup for premiumize.me (https://premiumize.me/) involves
25660 getting a token from premiumize.me which you need to do in your brows‐
25661 er. rclone config walks you through it.
25662
25663 Here is an example of how to make a remote called remote. First run:
25664
25665 rclone config
25666
25667 This will guide you through an interactive setup process:
25668
25669 No remotes found - make a new one
25670 n) New remote
25671 s) Set configuration password
25672 q) Quit config
25673 n/s/q> n
25674 name> remote
25675 Type of storage to configure.
25676 Enter a string value. Press Enter for the default ("").
25677 Choose a number from below, or type in your own value
25678 [snip]
25679 XX / premiumize.me
25680 \ "premiumizeme"
25681 [snip]
25682 Storage> premiumizeme
25683 ** See help for premiumizeme backend at: https://rclone.org/premiumizeme/ **
25684
25685 Remote config
25686 Use auto config?
25687 * Say Y if not sure
25688 * Say N if you are working on a remote or headless machine
25689 y) Yes
25690 n) No
25691 y/n> y
25692 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
25693 Log in and authorize rclone for access
25694 Waiting for code...
25695 Got code
25696 --------------------
25697 [remote]
25698 type = premiumizeme
25699 token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2029-08-07T18:44:15.548915378+01:00"}
25700 --------------------
25701 y) Yes this is OK
25702 e) Edit this remote
25703 d) Delete this remote
25704 y/e/d>
25705
25706 See the remote setup docs (https://rclone.org/remote_setup/) for how to
25707 set it up on a machine with no Internet browser available.
25708
25709 Note that rclone runs a webserver on your local machine to collect the
25710 token as returned from premiumize.me. This only runs from the moment
25711 it opens your browser to the moment you get back the verification code.
25712 This is on http://127.0.0.1:53682/ and this it may require you to un‐
25713 block it temporarily if you are running a host firewall.
25714
25715 Once configured you can then use rclone like this,
25716
25717 List directories in top level of your premiumize.me
25718
25719 rclone lsd remote:
25720
25721 List all the files in your premiumize.me
25722
25723 rclone ls remote:
25724
25725 To copy a local directory to an premiumize.me directory called backup
25726
25727 rclone copy /home/source remote:backup
25728
25729 Modified time and hashes
25730 premiumize.me does not support modification times or hashes, therefore
25731 syncing will default to --size-only checking. Note that using --update
25732 will work.
25733
25734 Restricted filename characters
25735 In addition to the default restricted characters set
25736 (https://rclone.org/overview/#restricted-characters) the following
25737 characters are also replaced:
25738
25739 Character Value Replacement
25740 ────────────────────────────────
25741 \ 0x5C \
25742 " 0x22 "
25743
25744 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
25745 view/#invalid-utf8), as they can't be used in JSON strings.
25746
25747 Standard Options
25748 Here are the standard options specific to premiumizeme (premiumize.me).
25749
25750 --premiumizeme-api-key
25751 API Key.
25752
25753 This is not normally used - use oauth instead.
25754
25755 · Config: api_key
25756
25757 · Env Var: RCLONE_PREMIUMIZEME_API_KEY
25758
25759 · Type: string
25760
25761 · Default: ""
25762
25763 Advanced Options
25764 Here are the advanced options specific to premiumizeme (premiumize.me).
25765
25766 --premiumizeme-encoding
25767 This sets the encoding for the backend.
25768
25769 See: the encoding section in the overview (https://rclone.org/over‐
25770 view/#encoding) for more info.
25771
25772 · Config: encoding
25773
25774 · Env Var: RCLONE_PREMIUMIZEME_ENCODING
25775
25776 · Type: MultiEncoder
25777
25778 · Default: Slash,DoubleQuote,BackSlash,Del,Ctl,InvalidUtf8,Dot
25779
25780 Limitations
25781 Note that premiumize.me is case insensitive so you can't have a file
25782 called "Hello.doc" and one called "hello.doc".
25783
25784 premiumize.me file names can't have the \ or " characters in. rclone
25785 maps these to and from an identical looking unicode equivalents \ and
25786 "
25787
25788 premiumize.me only supports filenames up to 255 characters in length.
25789
25790 put.io
25791 Paths are specified as remote:path
25792
25793 put.io paths may be as deep as required, e.g. remote:directory/subdi‐
25794 rectory.
25795
25796 The initial setup for put.io involves getting a token from put.io which
25797 you need to do in your browser. rclone config walks you through it.
25798
25799 Here is an example of how to make a remote called remote. First run:
25800
25801 rclone config
25802
25803 This will guide you through an interactive setup process:
25804
25805 No remotes found - make a new one
25806 n) New remote
25807 s) Set configuration password
25808 q) Quit config
25809 n/s/q> n
25810 name> putio
25811 Type of storage to configure.
25812 Enter a string value. Press Enter for the default ("").
25813 Choose a number from below, or type in your own value
25814 [snip]
25815 XX / Put.io
25816 \ "putio"
25817 [snip]
25818 Storage> putio
25819 ** See help for putio backend at: https://rclone.org/putio/ **
25820
25821 Remote config
25822 Use auto config?
25823 * Say Y if not sure
25824 * Say N if you are working on a remote or headless machine
25825 y) Yes
25826 n) No
25827 y/n> y
25828 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
25829 Log in and authorize rclone for access
25830 Waiting for code...
25831 Got code
25832 --------------------
25833 [putio]
25834 type = putio
25835 token = {"access_token":"XXXXXXXX","expiry":"0001-01-01T00:00:00Z"}
25836 --------------------
25837 y) Yes this is OK
25838 e) Edit this remote
25839 d) Delete this remote
25840 y/e/d> y
25841 Current remotes:
25842
25843 Name Type
25844 ==== ====
25845 putio putio
25846
25847 e) Edit existing remote
25848 n) New remote
25849 d) Delete remote
25850 r) Rename remote
25851 c) Copy remote
25852 s) Set configuration password
25853 q) Quit config
25854 e/n/d/r/c/s/q> q
25855
25856 Note that rclone runs a webserver on your local machine to collect the
25857 token as returned from Google if you use auto config mode. This only
25858 runs from the moment it opens your browser to the moment you get back
25859 the verification code. This is on http://127.0.0.1:53682/ and this it
25860 may require you to unblock it temporarily if you are running a host
25861 firewall, or use manual mode.
25862
25863 You can then use it like this,
25864
25865 List directories in top level of your put.io
25866
25867 rclone lsd remote:
25868
25869 List all the files in your put.io
25870
25871 rclone ls remote:
25872
25873 To copy a local directory to a put.io directory called backup
25874
25875 rclone copy /home/source remote:backup
25876
25877 Restricted filename characters
25878 In addition to the default restricted characters set
25879 (https://rclone.org/overview/#restricted-characters) the following
25880 characters are also replaced:
25881
25882 Character Value Replacement
25883 ────────────────────────────────
25884 \ 0x5C \
25885
25886 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
25887 view/#invalid-utf8), as they can't be used in JSON strings.
25888
25889 Advanced Options
25890 Here are the advanced options specific to putio (Put.io).
25891
25892 --putio-encoding
25893 This sets the encoding for the backend.
25894
25895 See: the encoding section in the overview (https://rclone.org/over‐
25896 view/#encoding) for more info.
25897
25898 · Config: encoding
25899
25900 · Env Var: RCLONE_PUTIO_ENCODING
25901
25902 · Type: MultiEncoder
25903
25904 · Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
25905
25906 Seafile
25907 This is a backend for the Seafile (https://www.seafile.com/) storage
25908 service: - It works with both the free community edition or the profes‐
25909 sional edition. - Seafile versions 6.x and 7.x are all supported. -
25910 Encrypted libraries are also supported. - It supports 2FA enabled
25911 users
25912
25913 Root mode vs Library mode
25914 There are two distinct modes you can setup your remote: - you point
25915 your remote to the root of the server, meaning you don't specify a li‐
25916 brary during the configuration: Paths are specified as remote:library.
25917 You may put subdirectories in too, e.g. remote:library/path/to/dir. -
25918 you point your remote to a specific library during the configuration:
25919 Paths are specified as remote:path/to/dir. This is the recommended
25920 mode when using encrypted libraries. (This mode is possibly slightly
25921 faster than the root mode)
25922
25923 Configuration in root mode
25924 Here is an example of making a seafile configuration for a user with no
25925 two-factor authentication. First run
25926
25927 rclone config
25928
25929 This will guide you through an interactive setup process. To authenti‐
25930 cate you will need the URL of your server, your email (or username) and
25931 your password.
25932
25933 No remotes found - make a new one
25934 n) New remote
25935 s) Set configuration password
25936 q) Quit config
25937 n/s/q> n
25938 name> seafile
25939 Type of storage to configure.
25940 Enter a string value. Press Enter for the default ("").
25941 Choose a number from below, or type in your own value
25942 [snip]
25943 XX / Seafile
25944 \ "seafile"
25945 [snip]
25946 Storage> seafile
25947 ** See help for seafile backend at: https://rclone.org/seafile/ **
25948
25949 URL of seafile host to connect to
25950 Enter a string value. Press Enter for the default ("").
25951 Choose a number from below, or type in your own value
25952 1 / Connect to cloud.seafile.com
25953 \ "https://cloud.seafile.com/"
25954 url> http://my.seafile.server/
25955 User name (usually email address)
25956 Enter a string value. Press Enter for the default ("").
25957 user> me@example.com
25958 Password
25959 y) Yes type in my own password
25960 g) Generate random password
25961 n) No leave this optional password blank (default)
25962 y/g> y
25963 Enter the password:
25964 password:
25965 Confirm the password:
25966 password:
25967 Two-factor authentication ('true' if the account has 2FA enabled)
25968 Enter a boolean value (true or false). Press Enter for the default ("false").
25969 2fa> false
25970 Name of the library. Leave blank to access all non-encrypted libraries.
25971 Enter a string value. Press Enter for the default ("").
25972 library>
25973 Library password (for encrypted libraries only). Leave blank if you pass it through the command line.
25974 y) Yes type in my own password
25975 g) Generate random password
25976 n) No leave this optional password blank (default)
25977 y/g/n> n
25978 Edit advanced config? (y/n)
25979 y) Yes
25980 n) No (default)
25981 y/n> n
25982 Remote config
25983 Two-factor authentication is not enabled on this account.
25984 --------------------
25985 [seafile]
25986 type = seafile
25987 url = http://my.seafile.server/
25988 user = me@example.com
25989 pass = *** ENCRYPTED ***
25990 2fa = false
25991 --------------------
25992 y) Yes this is OK (default)
25993 e) Edit this remote
25994 d) Delete this remote
25995 y/e/d> y
25996
25997 This remote is called seafile. It's pointing to the root of your
25998 seafile server and can now be used like this:
25999
26000 See all libraries
26001
26002 rclone lsd seafile:
26003
26004 Create a new library
26005
26006 rclone mkdir seafile:library
26007
26008 List the contents of a library
26009
26010 rclone ls seafile:library
26011
26012 Sync /home/local/directory to the remote library, deleting any excess
26013 files in the library.
26014
26015 rclone sync -i /home/local/directory seafile:library
26016
26017 Configuration in library mode
26018 Here's an example of a configuration in library mode with a user that
26019 has the two-factor authentication enabled. Your 2FA code will be asked
26020 at the end of the configuration, and will attempt to authenticate you:
26021
26022 No remotes found - make a new one
26023 n) New remote
26024 s) Set configuration password
26025 q) Quit config
26026 n/s/q> n
26027 name> seafile
26028 Type of storage to configure.
26029 Enter a string value. Press Enter for the default ("").
26030 Choose a number from below, or type in your own value
26031 [snip]
26032 XX / Seafile
26033 \ "seafile"
26034 [snip]
26035 Storage> seafile
26036 ** See help for seafile backend at: https://rclone.org/seafile/ **
26037
26038 URL of seafile host to connect to
26039 Enter a string value. Press Enter for the default ("").
26040 Choose a number from below, or type in your own value
26041 1 / Connect to cloud.seafile.com
26042 \ "https://cloud.seafile.com/"
26043 url> http://my.seafile.server/
26044 User name (usually email address)
26045 Enter a string value. Press Enter for the default ("").
26046 user> me@example.com
26047 Password
26048 y) Yes type in my own password
26049 g) Generate random password
26050 n) No leave this optional password blank (default)
26051 y/g> y
26052 Enter the password:
26053 password:
26054 Confirm the password:
26055 password:
26056 Two-factor authentication ('true' if the account has 2FA enabled)
26057 Enter a boolean value (true or false). Press Enter for the default ("false").
26058 2fa> true
26059 Name of the library. Leave blank to access all non-encrypted libraries.
26060 Enter a string value. Press Enter for the default ("").
26061 library> My Library
26062 Library password (for encrypted libraries only). Leave blank if you pass it through the command line.
26063 y) Yes type in my own password
26064 g) Generate random password
26065 n) No leave this optional password blank (default)
26066 y/g/n> n
26067 Edit advanced config? (y/n)
26068 y) Yes
26069 n) No (default)
26070 y/n> n
26071 Remote config
26072 Two-factor authentication: please enter your 2FA code
26073 2fa code> 123456
26074 Authenticating...
26075 Success!
26076 --------------------
26077 [seafile]
26078 type = seafile
26079 url = http://my.seafile.server/
26080 user = me@example.com
26081 pass =
26082 2fa = true
26083 library = My Library
26084 --------------------
26085 y) Yes this is OK (default)
26086 e) Edit this remote
26087 d) Delete this remote
26088 y/e/d> y
26089
26090 You'll notice your password is blank in the configuration. It's be‐
26091 cause we only need the password to authenticate you once.
26092
26093 You specified My Library during the configuration. The root of the re‐
26094 mote is pointing at the root of the library My Library:
26095
26096 See all files in the library:
26097
26098 rclone lsd seafile:
26099
26100 Create a new directory inside the library
26101
26102 rclone mkdir seafile:directory
26103
26104 List the contents of a directory
26105
26106 rclone ls seafile:directory
26107
26108 Sync /home/local/directory to the remote library, deleting any excess
26109 files in the library.
26110
26111 rclone sync -i /home/local/directory seafile:
26112
26113 --fast-list
26114 Seafile version 7+ supports --fast-list which allows you to use fewer
26115 transactions in exchange for more memory. See the rclone docs
26116 (https://rclone.org/docs/#fast-list) for more details. Please note
26117 this is not supported on seafile server version 6.x
26118
26119 Restricted filename characters
26120 In addition to the default restricted characters set
26121 (https://rclone.org/overview/#restricted-characters) the following
26122 characters are also replaced:
26123
26124 Character Value Replacement
26125 ────────────────────────────────
26126 / 0x2F /
26127 " 0x22 "
26128 \ 0x5C \
26129
26130 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26131 view/#invalid-utf8), as they can't be used in JSON strings.
26132
26133 Seafile and rclone link
26134 Rclone supports generating share links for non-encrypted libraries on‐
26135 ly. They can either be for a file or a directory:
26136
26137 rclone link seafile:seafile-tutorial.doc
26138 http://my.seafile.server/f/fdcd8a2f93f84b8b90f4/
26139
26140 or if run on a directory you will get:
26141
26142 rclone link seafile:dir
26143 http://my.seafile.server/d/9ea2455f6f55478bbb0d/
26144
26145 Please note a share link is unique for each file or directory. If you
26146 run a link command on a file/dir that has already been shared, you will
26147 get the exact same link.
26148
26149 Compatibility
26150 It has been actively tested using the seafile docker image
26151 (https://github.com/haiwen/seafile-docker) of these versions: - 6.3.4
26152 community edition - 7.0.5 community edition - 7.1.3 community edition
26153
26154 Versions below 6.0 are not supported. Versions between 6.0 and 6.3
26155 haven't been tested and might not work properly.
26156
26157 Standard Options
26158 Here are the standard options specific to seafile (seafile).
26159
26160 --seafile-url
26161 URL of seafile host to connect to
26162
26163 · Config: url
26164
26165 · Env Var: RCLONE_SEAFILE_URL
26166
26167 · Type: string
26168
26169 · Default: ""
26170
26171 · Examples:
26172
26173 · "https://cloud.seafile.com/"
26174
26175 · Connect to cloud.seafile.com
26176
26177 --seafile-user
26178 User name (usually email address)
26179
26180 · Config: user
26181
26182 · Env Var: RCLONE_SEAFILE_USER
26183
26184 · Type: string
26185
26186 · Default: ""
26187
26188 --seafile-pass
26189 Password
26190
26191 NB Input to this must be obscured - see rclone obscure
26192 (https://rclone.org/commands/rclone_obscure/).
26193
26194 · Config: pass
26195
26196 · Env Var: RCLONE_SEAFILE_PASS
26197
26198 · Type: string
26199
26200 · Default: ""
26201
26202 --seafile-2fa
26203 Two-factor authentication ('true' if the account has 2FA enabled)
26204
26205 · Config: 2fa
26206
26207 · Env Var: RCLONE_SEAFILE_2FA
26208
26209 · Type: bool
26210
26211 · Default: false
26212
26213 --seafile-library
26214 Name of the library. Leave blank to access all non-encrypted li‐
26215 braries.
26216
26217 · Config: library
26218
26219 · Env Var: RCLONE_SEAFILE_LIBRARY
26220
26221 · Type: string
26222
26223 · Default: ""
26224
26225 --seafile-library-key
26226 Library password (for encrypted libraries only). Leave blank if you
26227 pass it through the command line.
26228
26229 NB Input to this must be obscured - see rclone obscure
26230 (https://rclone.org/commands/rclone_obscure/).
26231
26232 · Config: library_key
26233
26234 · Env Var: RCLONE_SEAFILE_LIBRARY_KEY
26235
26236 · Type: string
26237
26238 · Default: ""
26239
26240 --seafile-auth-token
26241 Authentication token
26242
26243 · Config: auth_token
26244
26245 · Env Var: RCLONE_SEAFILE_AUTH_TOKEN
26246
26247 · Type: string
26248
26249 · Default: ""
26250
26251 Advanced Options
26252 Here are the advanced options specific to seafile (seafile).
26253
26254 --seafile-create-library
26255 Should rclone create a library if it doesn't exist
26256
26257 · Config: create_library
26258
26259 · Env Var: RCLONE_SEAFILE_CREATE_LIBRARY
26260
26261 · Type: bool
26262
26263 · Default: false
26264
26265 --seafile-encoding
26266 This sets the encoding for the backend.
26267
26268 See: the encoding section in the overview (https://rclone.org/over‐
26269 view/#encoding) for more info.
26270
26271 · Config: encoding
26272
26273 · Env Var: RCLONE_SEAFILE_ENCODING
26274
26275 · Type: MultiEncoder
26276
26277 · Default: Slash,DoubleQuote,BackSlash,Ctl,InvalidUtf8
26278
26279 SFTP
26280 SFTP is the Secure (or SSH) File Transfer Protocol
26281 (https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol).
26282
26283 The SFTP backend can be used with a number of different providers:
26284
26285 · C14
26286
26287 · rsync.net
26288
26289 SFTP runs over SSH v2 and is installed as standard with most modern SSH
26290 installations.
26291
26292 Paths are specified as remote:path. If the path does not begin with a
26293 / it is relative to the home directory of the user. An empty path re‐
26294 mote: refers to the user's home directory.
26295
26296 "Note that some SFTP servers will need the leading / - Synology is a
26297 good example of this. rsync.net, on the other hand, requires users to
26298 OMIT the leading /.
26299
26300 Here is an example of making an SFTP configuration. First run
26301
26302 rclone config
26303
26304 This will guide you through an interactive setup process.
26305
26306 No remotes found - make a new one
26307 n) New remote
26308 s) Set configuration password
26309 q) Quit config
26310 n/s/q> n
26311 name> remote
26312 Type of storage to configure.
26313 Choose a number from below, or type in your own value
26314 [snip]
26315 XX / SSH/SFTP Connection
26316 \ "sftp"
26317 [snip]
26318 Storage> sftp
26319 SSH host to connect to
26320 Choose a number from below, or type in your own value
26321 1 / Connect to example.com
26322 \ "example.com"
26323 host> example.com
26324 SSH username, leave blank for current username, $USER
26325 user> sftpuser
26326 SSH port, leave blank to use default (22)
26327 port>
26328 SSH password, leave blank to use ssh-agent.
26329 y) Yes type in my own password
26330 g) Generate random password
26331 n) No leave this optional password blank
26332 y/g/n> n
26333 Path to unencrypted PEM-encoded private key file, leave blank to use ssh-agent.
26334 key_file>
26335 Remote config
26336 --------------------
26337 [remote]
26338 host = example.com
26339 user = sftpuser
26340 port =
26341 pass =
26342 key_file =
26343 --------------------
26344 y) Yes this is OK
26345 e) Edit this remote
26346 d) Delete this remote
26347 y/e/d> y
26348
26349 This remote is called remote and can now be used like this:
26350
26351 See all directories in the home directory
26352
26353 rclone lsd remote:
26354
26355 Make a new directory
26356
26357 rclone mkdir remote:path/to/directory
26358
26359 List the contents of a directory
26360
26361 rclone ls remote:path/to/directory
26362
26363 Sync /home/local/directory to the remote directory, deleting any excess
26364 files in the directory.
26365
26366 rclone sync -i /home/local/directory remote:directory
26367
26368 SSH Authentication
26369 The SFTP remote supports three authentication methods:
26370
26371 · Password
26372
26373 · Key file, including certificate signed keys
26374
26375 · ssh-agent
26376
26377 Key files should be PEM-encoded private key files. For instance
26378 /home/$USER/.ssh/id_rsa. Only unencrypted OpenSSH or PEM encrypted
26379 files are supported.
26380
26381 The key file can be specified in either an external file (key_file) or
26382 contained within the rclone config file (key_pem). If using key_pem in
26383 the config file, the entry should be on a single line with new line (''
26384 or '') separating lines. i.e.
26385
26386 key_pem = -----BEGIN RSA PRIVATE KEY-----0gAMbMbaSsd-----END RSA PRI‐
26387 VATE KEY-----
26388
26389 This will generate it correctly for key_pem for use in the config:
26390
26391 awk '{printf "%s\\n", $0}' < ~/.ssh/id_rsa
26392
26393 If you don't specify pass, key_file, or key_pem then rclone will at‐
26394 tempt to contact an ssh-agent.
26395
26396 You can also specify key_use_agent to force the usage of an ssh-agent.
26397 In this case key_file or key_pem can also be specified to force the us‐
26398 age of a specific key in the ssh-agent.
26399
26400 Using an ssh-agent is the only way to load encrypted OpenSSH keys at
26401 the moment.
26402
26403 If you set the --sftp-ask-password option, rclone will prompt for a
26404 password when needed and no password has been configured.
26405
26406 If you have a certificate then you can provide the path to the public
26407 key that contains the certificate. For example:
26408
26409 [remote]
26410 type = sftp
26411 host = example.com
26412 user = sftpuser
26413 key_file = ~/id_rsa
26414 pubkey_file = ~/id_rsa-cert.pub
26415
26416 If you concatenate a cert with a private key then you can specify the
26417 merged file in both places.
26418
26419 Note: the cert must come first in the file. e.g.
26420
26421 cat id_rsa-cert.pub id_rsa > merged_key
26422
26423 Host key validation
26424 By default rclone will not check the server's host key for validation.
26425 This can allow an attacker to replace a server with their own and if
26426 you use password authentication then this can lead to that password be‐
26427 ing exposed.
26428
26429 Host key matching, using standard known_hosts files can be turned on by
26430 enabling the known_hosts_file option. This can point to the file main‐
26431 tained by OpenSSH or can point to a unique file.
26432
26433 e.g.
26434
26435 [remote]
26436 type = sftp
26437 host = example.com
26438 user = sftpuser
26439 pass =
26440 known_hosts_file = ~/.ssh/known_hosts
26441
26442 There are some limitations:
26443
26444 · rclone will not manage this file for you. If the key is missing or
26445 wrong then the connection will be refused.
26446
26447 · If the server is set up for a certificate host key then the entry in
26448 the known_hosts file must be the @cert-authority entry for the CA
26449
26450 · Unlike OpenSSH, the libraries used by rclone do not permit (at time
26451 of writing) multiple host keys to be listed for a server. Only the
26452 first entry is used.
26453
26454 If the host key provided by the server does not match the one in the
26455 file (or is missing) then the connection will be aborted and an error
26456 returned such as
26457
26458 NewFs: couldn't connect SSH: ssh: handshake failed: knownhosts: key mismatch
26459
26460 or
26461
26462 NewFs: couldn't connect SSH: ssh: handshake failed: knownhosts: key is unknown
26463
26464 If you see an error such as
26465
26466 NewFs: couldn't connect SSH: ssh: handshake failed: ssh: no authorities for hostname: example.com:22
26467
26468 then it is likely the server has presented a CA signed host certificate
26469 and you will need to add the appropriate @cert-authority entry.
26470
26471 The known_hosts_file setting can be set during rclone config as an ad‐
26472 vanced option.
26473
26474 ssh-agent on macOS
26475 Note that there seem to be various problems with using an ssh-agent on
26476 macOS due to recent changes in the OS. The most effective work-around
26477 seems to be to start an ssh-agent in each session, e.g.
26478
26479 eval `ssh-agent -s` && ssh-add -A
26480
26481 And then at the end of the session
26482
26483 eval `ssh-agent -k`
26484
26485 These commands can be used in scripts of course.
26486
26487 Modified time
26488 Modified times are stored on the server to 1 second precision.
26489
26490 Modified times are used in syncing and are fully supported.
26491
26492 Some SFTP servers disable setting/modifying the file modification time
26493 after upload (for example, certain configurations of ProFTPd with
26494 mod_sftp). If you are using one of these servers, you can set the op‐
26495 tion set_modtime = false in your RClone backend configuration to dis‐
26496 able this behaviour.
26497
26498 Standard Options
26499 Here are the standard options specific to sftp (SSH/SFTP Connection).
26500
26501 --sftp-host
26502 SSH host to connect to
26503
26504 · Config: host
26505
26506 · Env Var: RCLONE_SFTP_HOST
26507
26508 · Type: string
26509
26510 · Default: ""
26511
26512 · Examples:
26513
26514 · "example.com"
26515
26516 · Connect to example.com
26517
26518 --sftp-user
26519 SSH username, leave blank for current username, $USER
26520
26521 · Config: user
26522
26523 · Env Var: RCLONE_SFTP_USER
26524
26525 · Type: string
26526
26527 · Default: ""
26528
26529 --sftp-port
26530 SSH port, leave blank to use default (22)
26531
26532 · Config: port
26533
26534 · Env Var: RCLONE_SFTP_PORT
26535
26536 · Type: string
26537
26538 · Default: ""
26539
26540 --sftp-pass
26541 SSH password, leave blank to use ssh-agent.
26542
26543 NB Input to this must be obscured - see rclone obscure
26544 (https://rclone.org/commands/rclone_obscure/).
26545
26546 · Config: pass
26547
26548 · Env Var: RCLONE_SFTP_PASS
26549
26550 · Type: string
26551
26552 · Default: ""
26553
26554 --sftp-key-pem
26555 Raw PEM-encoded private key, If specified, will override key_file pa‐
26556 rameter.
26557
26558 · Config: key_pem
26559
26560 · Env Var: RCLONE_SFTP_KEY_PEM
26561
26562 · Type: string
26563
26564 · Default: ""
26565
26566 --sftp-key-file
26567 Path to PEM-encoded private key file, leave blank or set key-use-agent
26568 to use ssh-agent.
26569
26570 Leading ~ will be expanded in the file name as will environment vari‐
26571 ables such as ${RCLONE_CONFIG_DIR}.
26572
26573 · Config: key_file
26574
26575 · Env Var: RCLONE_SFTP_KEY_FILE
26576
26577 · Type: string
26578
26579 · Default: ""
26580
26581 --sftp-key-file-pass
26582 The passphrase to decrypt the PEM-encoded private key file.
26583
26584 Only PEM encrypted key files (old OpenSSH format) are supported. En‐
26585 crypted keys in the new OpenSSH format can't be used.
26586
26587 NB Input to this must be obscured - see rclone obscure
26588 (https://rclone.org/commands/rclone_obscure/).
26589
26590 · Config: key_file_pass
26591
26592 · Env Var: RCLONE_SFTP_KEY_FILE_PASS
26593
26594 · Type: string
26595
26596 · Default: ""
26597
26598 --sftp-pubkey-file
26599 Optional path to public key file.
26600
26601 Set this if you have a signed certificate you want to use for authenti‐
26602 cation.
26603
26604 Leading ~ will be expanded in the file name as will environment vari‐
26605 ables such as ${RCLONE_CONFIG_DIR}.
26606
26607 · Config: pubkey_file
26608
26609 · Env Var: RCLONE_SFTP_PUBKEY_FILE
26610
26611 · Type: string
26612
26613 · Default: ""
26614
26615 --sftp-key-use-agent
26616 When set forces the usage of the ssh-agent.
26617
26618 When key-file is also set, the ".pub" file of the specified key-file is
26619 read and only the associated key is requested from the ssh-agent. This
26620 allows to avoid Too many authentication failures for *username* errors
26621 when the ssh-agent contains many keys.
26622
26623 · Config: key_use_agent
26624
26625 · Env Var: RCLONE_SFTP_KEY_USE_AGENT
26626
26627 · Type: bool
26628
26629 · Default: false
26630
26631 --sftp-use-insecure-cipher
26632 Enable the use of insecure ciphers and key exchange methods.
26633
26634 This enables the use of the following insecure ciphers and key exchange
26635 methods:
26636
26637 · aes128-cbc
26638
26639 · aes192-cbc
26640
26641 · aes256-cbc
26642
26643 · 3des-cbc
26644
26645 · diffie-hellman-group-exchange-sha256
26646
26647 · diffie-hellman-group-exchange-sha1
26648
26649 Those algorithms are insecure and may allow plaintext data to be recov‐
26650 ered by an attacker.
26651
26652 · Config: use_insecure_cipher
26653
26654 · Env Var: RCLONE_SFTP_USE_INSECURE_CIPHER
26655
26656 · Type: bool
26657
26658 · Default: false
26659
26660 · Examples:
26661
26662 · "false"
26663
26664 · Use default Cipher list.
26665
26666 · "true"
26667
26668 · Enables the use of the aes128-cbc cipher and diffie-hell‐
26669 man-group-exchange-sha256, diffie-hellman-group-exchange-sha1 key
26670 exchange.
26671
26672 --sftp-disable-hashcheck
26673 Disable the execution of SSH commands to determine if remote file hash‐
26674 ing is available. Leave blank or set to false to enable hashing (rec‐
26675 ommended), set to true to disable hashing.
26676
26677 · Config: disable_hashcheck
26678
26679 · Env Var: RCLONE_SFTP_DISABLE_HASHCHECK
26680
26681 · Type: bool
26682
26683 · Default: false
26684
26685 Advanced Options
26686 Here are the advanced options specific to sftp (SSH/SFTP Connection).
26687
26688 --sftp-known-hosts-file
26689 Optional path to known_hosts file.
26690
26691 Set this value to enable server host key validation.
26692
26693 Leading ~ will be expanded in the file name as will environment vari‐
26694 ables such as ${RCLONE_CONFIG_DIR}.
26695
26696 · Config: known_hosts_file
26697
26698 · Env Var: RCLONE_SFTP_KNOWN_HOSTS_FILE
26699
26700 · Type: string
26701
26702 · Default: ""
26703
26704 · Examples:
26705
26706 · "~/.ssh/known_hosts"
26707
26708 · Use OpenSSH's known_hosts file
26709
26710 --sftp-ask-password
26711 Allow asking for SFTP password when needed.
26712
26713 If this is set and no password is supplied then rclone will: - ask for
26714 a password - not contact the ssh agent
26715
26716 · Config: ask_password
26717
26718 · Env Var: RCLONE_SFTP_ASK_PASSWORD
26719
26720 · Type: bool
26721
26722 · Default: false
26723
26724 --sftp-path-override
26725 Override path used by SSH connection.
26726
26727 This allows checksum calculation when SFTP and SSH paths are different.
26728 This issue affects among others Synology NAS boxes.
26729
26730 Shared folders can be found in directories representing volumes
26731
26732 rclone sync /home/local/directory remote:/directory --ssh-path-override /volume2/directory
26733
26734 Home directory can be found in a shared folder called "home"
26735
26736 rclone sync /home/local/directory remote:/home/directory --ssh-path-override /volume1/homes/USER/directory
26737
26738 · Config: path_override
26739
26740 · Env Var: RCLONE_SFTP_PATH_OVERRIDE
26741
26742 · Type: string
26743
26744 · Default: ""
26745
26746 --sftp-set-modtime
26747 Set the modified time on the remote if set.
26748
26749 · Config: set_modtime
26750
26751 · Env Var: RCLONE_SFTP_SET_MODTIME
26752
26753 · Type: bool
26754
26755 · Default: true
26756
26757 --sftp-md5sum-command
26758 The command used to read md5 hashes. Leave blank for autodetect.
26759
26760 · Config: md5sum_command
26761
26762 · Env Var: RCLONE_SFTP_MD5SUM_COMMAND
26763
26764 · Type: string
26765
26766 · Default: ""
26767
26768 --sftp-sha1sum-command
26769 The command used to read sha1 hashes. Leave blank for autodetect.
26770
26771 · Config: sha1sum_command
26772
26773 · Env Var: RCLONE_SFTP_SHA1SUM_COMMAND
26774
26775 · Type: string
26776
26777 · Default: ""
26778
26779 --sftp-skip-links
26780 Set to skip any symlinks and any other non regular files.
26781
26782 · Config: skip_links
26783
26784 · Env Var: RCLONE_SFTP_SKIP_LINKS
26785
26786 · Type: bool
26787
26788 · Default: false
26789
26790 --sftp-subsystem
26791 Specifies the SSH2 subsystem on the remote host.
26792
26793 · Config: subsystem
26794
26795 · Env Var: RCLONE_SFTP_SUBSYSTEM
26796
26797 · Type: string
26798
26799 · Default: "sftp"
26800
26801 --sftp-server-command
26802 Specifies the path or command to run a sftp server on the remote host.
26803
26804 The subsystem option is ignored when server_command is defined.
26805
26806 · Config: server_command
26807
26808 · Env Var: RCLONE_SFTP_SERVER_COMMAND
26809
26810 · Type: string
26811
26812 · Default: ""
26813
26814 --sftp-use-fstat
26815 If set use fstat instead of stat
26816
26817 Some servers limit the amount of open files and calling Stat after
26818 opening the file will throw an error from the server. Setting this
26819 flag will call Fstat instead of Stat which is called on an already open
26820 file handle.
26821
26822 It has been found that this helps with IBM Sterling SFTP servers which
26823 have "extractability" level set to 1 which means only 1 file can be
26824 opened at any given time.
26825
26826 · Config: use_fstat
26827
26828 · Env Var: RCLONE_SFTP_USE_FSTAT
26829
26830 · Type: bool
26831
26832 · Default: false
26833
26834 Limitations
26835 SFTP supports checksums if the same login has shell access and md5sum
26836 or sha1sum as well as echo are in the remote's PATH. This remote
26837 checksumming (file hashing) is recommended and enabled by default.
26838 Disabling the checksumming may be required if you are connecting to
26839 SFTP servers which are not under your control, and to which the execu‐
26840 tion of remote commands is prohibited. Set the configuration option
26841 disable_hashcheck to true to disable checksumming.
26842
26843 SFTP also supports about if the same login has shell access and df are
26844 in the remote's PATH. about will return the total space, free space,
26845 and used space on the remote for the disk of the specified path on the
26846 remote or, if not set, the disk of the root on the remote. about will
26847 fail if it does not have shell access or if df is not in the remote's
26848 PATH.
26849
26850 Note that some SFTP servers (e.g. Synology) the paths are different
26851 for SSH and SFTP so the hashes can't be calculated properly. For them
26852 using disable_hashcheck is a good idea.
26853
26854 The only ssh agent supported under Windows is Putty's pageant.
26855
26856 The Go SSH library disables the use of the aes128-cbc cipher by de‐
26857 fault, due to security concerns. This can be re-enabled on a per-con‐
26858 nection basis by setting the use_insecure_cipher setting in the config‐
26859 uration file to true. Further details on the insecurity of this cipher
26860 can be found [in this paper] (http://www.isg.rhul.ac.uk/~kp/SandPfi‐
26861 nal.pdf).
26862
26863 SFTP isn't supported under plan9 until this issue
26864 (https://github.com/pkg/sftp/issues/156) is fixed.
26865
26866 Note that since SFTP isn't HTTP based the following flags don't work
26867 with it: --dump-headers, --dump-bodies, --dump-auth
26868
26869 Note that --timeout isn't supported (but --contimeout is).
26870
26871 C14
26872 C14 is supported through the SFTP backend.
26873
26874 See C14's documentation (https://www.online.net/en/storage/c14-cold-
26875 storage)
26876
26877 rsync.net
26878 rsync.net is supported through the SFTP backend.
26879
26880 See rsync.net's documentation of rclone examples
26881 (https://www.rsync.net/products/rclone.html).
26882
26883 SugarSync
26884 SugarSync (https://sugarsync.com) is a cloud service that enables ac‐
26885 tive synchronization of files across computers and other devices for
26886 file backup, access, syncing, and sharing.
26887
26888 The initial setup for SugarSync involves getting a token from SugarSync
26889 which you can do with rclone. rclone config walks you through it.
26890
26891 Here is an example of how to make a remote called remote. First run:
26892
26893 rclone config
26894
26895 This will guide you through an interactive setup process:
26896
26897 No remotes found - make a new one
26898 n) New remote
26899 s) Set configuration password
26900 q) Quit config
26901 n/s/q> n
26902 name> remote
26903 Type of storage to configure.
26904 Enter a string value. Press Enter for the default ("").
26905 Choose a number from below, or type in your own value
26906 [snip]
26907 XX / Sugarsync
26908 \ "sugarsync"
26909 [snip]
26910 Storage> sugarsync
26911 ** See help for sugarsync backend at: https://rclone.org/sugarsync/ **
26912
26913 Sugarsync App ID.
26914 Leave blank to use rclone's.
26915 Enter a string value. Press Enter for the default ("").
26916 app_id>
26917 Sugarsync Access Key ID.
26918 Leave blank to use rclone's.
26919 Enter a string value. Press Enter for the default ("").
26920 access_key_id>
26921 Sugarsync Private Access Key
26922 Leave blank to use rclone's.
26923 Enter a string value. Press Enter for the default ("").
26924 private_access_key>
26925 Permanently delete files if true
26926 otherwise put them in the deleted files.
26927 Enter a boolean value (true or false). Press Enter for the default ("false").
26928 hard_delete>
26929 Edit advanced config? (y/n)
26930 y) Yes
26931 n) No (default)
26932 y/n> n
26933 Remote config
26934 Username (email address)> nick@craig-wood.com
26935 Your Sugarsync password is only required during setup and will not be stored.
26936 password:
26937 --------------------
26938 [remote]
26939 type = sugarsync
26940 refresh_token = https://api.sugarsync.com/app-authorization/XXXXXXXXXXXXXXXXXX
26941 --------------------
26942 y) Yes this is OK (default)
26943 e) Edit this remote
26944 d) Delete this remote
26945 y/e/d> y
26946
26947 Note that the config asks for your email and password but doesn't store
26948 them, it only uses them to get the initial token.
26949
26950 Once configured you can then use rclone like this,
26951
26952 List directories (sync folders) in top level of your SugarSync
26953
26954 rclone lsd remote:
26955
26956 List all the files in your SugarSync folder "Test"
26957
26958 rclone ls remote:Test
26959
26960 To copy a local directory to an SugarSync folder called backup
26961
26962 rclone copy /home/source remote:backup
26963
26964 Paths are specified as remote:path
26965
26966 Paths may be as deep as required, e.g. remote:directory/subdirectory.
26967
26968 NB you can't create files in the top level folder you have to create a
26969 folder, which rclone will create as a "Sync Folder" with SugarSync.
26970
26971 Modified time and hashes
26972 SugarSync does not support modification times or hashes, therefore
26973 syncing will default to --size-only checking. Note that using --update
26974 will work as rclone can read the time files were uploaded.
26975
26976 Restricted filename characters
26977 SugarSync replaces the default restricted characters set
26978 (https://rclone.org/overview/#restricted-characters) except for DEL.
26979
26980 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
26981 view/#invalid-utf8), as they can't be used in XML strings.
26982
26983 Deleting files
26984 Deleted files will be moved to the "Deleted items" folder by default.
26985
26986 However you can supply the flag --sugarsync-hard-delete or set the con‐
26987 fig parameter hard_delete = true if you would like files to be deleted
26988 straight away.
26989
26990 Standard Options
26991 Here are the standard options specific to sugarsync (Sugarsync).
26992
26993 --sugarsync-app-id
26994 Sugarsync App ID.
26995
26996 Leave blank to use rclone's.
26997
26998 · Config: app_id
26999
27000 · Env Var: RCLONE_SUGARSYNC_APP_ID
27001
27002 · Type: string
27003
27004 · Default: ""
27005
27006 --sugarsync-access-key-id
27007 Sugarsync Access Key ID.
27008
27009 Leave blank to use rclone's.
27010
27011 · Config: access_key_id
27012
27013 · Env Var: RCLONE_SUGARSYNC_ACCESS_KEY_ID
27014
27015 · Type: string
27016
27017 · Default: ""
27018
27019 --sugarsync-private-access-key
27020 Sugarsync Private Access Key
27021
27022 Leave blank to use rclone's.
27023
27024 · Config: private_access_key
27025
27026 · Env Var: RCLONE_SUGARSYNC_PRIVATE_ACCESS_KEY
27027
27028 · Type: string
27029
27030 · Default: ""
27031
27032 --sugarsync-hard-delete
27033 Permanently delete files if true otherwise put them in the deleted
27034 files.
27035
27036 · Config: hard_delete
27037
27038 · Env Var: RCLONE_SUGARSYNC_HARD_DELETE
27039
27040 · Type: bool
27041
27042 · Default: false
27043
27044 Advanced Options
27045 Here are the advanced options specific to sugarsync (Sugarsync).
27046
27047 --sugarsync-refresh-token
27048 Sugarsync refresh token
27049
27050 Leave blank normally, will be auto configured by rclone.
27051
27052 · Config: refresh_token
27053
27054 · Env Var: RCLONE_SUGARSYNC_REFRESH_TOKEN
27055
27056 · Type: string
27057
27058 · Default: ""
27059
27060 --sugarsync-authorization
27061 Sugarsync authorization
27062
27063 Leave blank normally, will be auto configured by rclone.
27064
27065 · Config: authorization
27066
27067 · Env Var: RCLONE_SUGARSYNC_AUTHORIZATION
27068
27069 · Type: string
27070
27071 · Default: ""
27072
27073 --sugarsync-authorization-expiry
27074 Sugarsync authorization expiry
27075
27076 Leave blank normally, will be auto configured by rclone.
27077
27078 · Config: authorization_expiry
27079
27080 · Env Var: RCLONE_SUGARSYNC_AUTHORIZATION_EXPIRY
27081
27082 · Type: string
27083
27084 · Default: ""
27085
27086 --sugarsync-user
27087 Sugarsync user
27088
27089 Leave blank normally, will be auto configured by rclone.
27090
27091 · Config: user
27092
27093 · Env Var: RCLONE_SUGARSYNC_USER
27094
27095 · Type: string
27096
27097 · Default: ""
27098
27099 --sugarsync-root-id
27100 Sugarsync root id
27101
27102 Leave blank normally, will be auto configured by rclone.
27103
27104 · Config: root_id
27105
27106 · Env Var: RCLONE_SUGARSYNC_ROOT_ID
27107
27108 · Type: string
27109
27110 · Default: ""
27111
27112 --sugarsync-deleted-id
27113 Sugarsync deleted folder id
27114
27115 Leave blank normally, will be auto configured by rclone.
27116
27117 · Config: deleted_id
27118
27119 · Env Var: RCLONE_SUGARSYNC_DELETED_ID
27120
27121 · Type: string
27122
27123 · Default: ""
27124
27125 --sugarsync-encoding
27126 This sets the encoding for the backend.
27127
27128 See: the encoding section in the overview (https://rclone.org/over‐
27129 view/#encoding) for more info.
27130
27131 · Config: encoding
27132
27133 · Env Var: RCLONE_SUGARSYNC_ENCODING
27134
27135 · Type: MultiEncoder
27136
27137 · Default: Slash,Ctl,InvalidUtf8,Dot
27138
27139 Limitations
27140 rclone about is not supported by the SugarSync backend. Backends with‐
27141 out this capability cannot determine free space for an rclone mount or
27142 use policy mfs (most free space) as a member of an rclone union remote.
27143
27144 See List of backends that do not support rclone about
27145 (https://rclone.org/overview/#optional-features) See rclone about
27146 (https://rclone.org/commands/rclone_about/)
27147
27148 Tardigrade
27149 Tardigrade (https://tardigrade.io) is an encrypted, secure, and
27150 cost-effective object storage service that enables you to store, back
27151 up, and archive large amounts of data in a decentralized manner.
27152
27153 Setup
27154 To make a new Tardigrade configuration you need one of the following: *
27155 Access Grant that someone else shared with you. * API Key
27156 (https://documentation.tardigrade.io/getting-started/uploading-your-
27157 first-object/create-an-api-key) of a Tardigrade project you are a mem‐
27158 ber of.
27159
27160 Here is an example of how to make a remote called remote. First run:
27161
27162 rclone config
27163
27164 This will guide you through an interactive setup process:
27165
27166 Setup with access grant
27167 No remotes found - make a new one
27168 n) New remote
27169 s) Set configuration password
27170 q) Quit config
27171 n/s/q> n
27172 name> remote
27173 Type of storage to configure.
27174 Enter a string value. Press Enter for the default ("").
27175 Choose a number from below, or type in your own value
27176 [snip]
27177 XX / Tardigrade Decentralized Cloud Storage
27178 \ "tardigrade"
27179 [snip]
27180 Storage> tardigrade
27181 ** See help for tardigrade backend at: https://rclone.org/tardigrade/ **
27182
27183 Choose an authentication method.
27184 Enter a string value. Press Enter for the default ("existing").
27185 Choose a number from below, or type in your own value
27186 1 / Use an existing access grant.
27187 \ "existing"
27188 2 / Create a new access grant from satellite address, API key, and passphrase.
27189 \ "new"
27190 provider> existing
27191 Access Grant.
27192 Enter a string value. Press Enter for the default ("").
27193 access_grant> your-access-grant-received-by-someone-else
27194 Remote config
27195 --------------------
27196 [remote]
27197 type = tardigrade
27198 access_grant = your-access-grant-received-by-someone-else
27199 --------------------
27200 y) Yes this is OK (default)
27201 e) Edit this remote
27202 d) Delete this remote
27203 y/e/d> y
27204
27205 Setup with API key and passphrase
27206 No remotes found - make a new one
27207 n) New remote
27208 s) Set configuration password
27209 q) Quit config
27210 n/s/q> n
27211 name> remote
27212 Type of storage to configure.
27213 Enter a string value. Press Enter for the default ("").
27214 Choose a number from below, or type in your own value
27215 [snip]
27216 XX / Tardigrade Decentralized Cloud Storage
27217 \ "tardigrade"
27218 [snip]
27219 Storage> tardigrade
27220 ** See help for tardigrade backend at: https://rclone.org/tardigrade/ **
27221
27222 Choose an authentication method.
27223 Enter a string value. Press Enter for the default ("existing").
27224 Choose a number from below, or type in your own value
27225 1 / Use an existing access grant.
27226 \ "existing"
27227 2 / Create a new access grant from satellite address, API key, and passphrase.
27228 \ "new"
27229 provider> new
27230 Satellite Address. Custom satellite address should match the format: `<nodeid>@<address>:<port>`.
27231 Enter a string value. Press Enter for the default ("us-central-1.tardigrade.io").
27232 Choose a number from below, or type in your own value
27233 1 / US Central 1
27234 \ "us-central-1.tardigrade.io"
27235 2 / Europe West 1
27236 \ "europe-west-1.tardigrade.io"
27237 3 / Asia East 1
27238 \ "asia-east-1.tardigrade.io"
27239 satellite_address> 1
27240 API Key.
27241 Enter a string value. Press Enter for the default ("").
27242 api_key> your-api-key-for-your-tardigrade-project
27243 Encryption Passphrase. To access existing objects enter passphrase used for uploading.
27244 Enter a string value. Press Enter for the default ("").
27245 passphrase> your-human-readable-encryption-passphrase
27246 Remote config
27247 --------------------
27248 [remote]
27249 type = tardigrade
27250 satellite_address = 12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S@us-central-1.tardigrade.io:7777
27251 api_key = your-api-key-for-your-tardigrade-project
27252 passphrase = your-human-readable-encryption-passphrase
27253 access_grant = the-access-grant-generated-from-the-api-key-and-passphrase
27254 --------------------
27255 y) Yes this is OK (default)
27256 e) Edit this remote
27257 d) Delete this remote
27258 y/e/d> y
27259
27260 Usage
27261 Paths are specified as remote:bucket (or remote: for the lsf command.)
27262 You may put subdirectories in too, e.g. remote:bucket/path/to/dir.
27263
27264 Once configured you can then use rclone like this.
27265
27266 Create a new bucket
27267 Use the mkdir command to create new bucket, e.g. bucket.
27268
27269 rclone mkdir remote:bucket
27270
27271 List all buckets
27272 Use the lsf command to list all buckets.
27273
27274 rclone lsf remote:
27275
27276 Note the colon (:) character at the end of the command line.
27277
27278 Delete a bucket
27279 Use the rmdir command to delete an empty bucket.
27280
27281 rclone rmdir remote:bucket
27282
27283 Use the purge command to delete a non-empty bucket with all its con‐
27284 tent.
27285
27286 rclone purge remote:bucket
27287
27288 Upload objects
27289 Use the copy command to upload an object.
27290
27291 rclone copy --progress /home/local/directory/file.ext remote:bucket/path/to/dir/
27292
27293 The --progress flag is for displaying progress information. Remove it
27294 if you don't need this information.
27295
27296 Use a folder in the local path to upload all its objects.
27297
27298 rclone copy --progress /home/local/directory/ remote:bucket/path/to/dir/
27299
27300 Only modified files will be copied.
27301
27302 List objects
27303 Use the ls command to list recursively all objects in a bucket.
27304
27305 rclone ls remote:bucket
27306
27307 Add the folder to the remote path to list recursively all objects in
27308 this folder.
27309
27310 rclone ls remote:bucket/path/to/dir/
27311
27312 Use the lsf command to list non-recursively all objects in a bucket or
27313 a folder.
27314
27315 rclone lsf remote:bucket/path/to/dir/
27316
27317 Download objects
27318 Use the copy command to download an object.
27319
27320 rclone copy --progress remote:bucket/path/to/dir/file.ext /home/local/directory/
27321
27322 The --progress flag is for displaying progress information. Remove it
27323 if you don't need this information.
27324
27325 Use a folder in the remote path to download all its objects.
27326
27327 rclone copy --progress remote:bucket/path/to/dir/ /home/local/directory/
27328
27329 Delete objects
27330 Use the deletefile command to delete a single object.
27331
27332 rclone deletefile remote:bucket/path/to/dir/file.ext
27333
27334 Use the delete command to delete all object in a folder.
27335
27336 rclone delete remote:bucket/path/to/dir/
27337
27338 Print the total size of objects
27339 Use the size command to print the total size of objects in a bucket or
27340 a folder.
27341
27342 rclone size remote:bucket/path/to/dir/
27343
27344 Sync two Locations
27345 Use the sync command to sync the source to the destination, changing
27346 the destination only, deleting any excess files.
27347
27348 rclone sync -i --progress /home/local/directory/ remote:bucket/path/to/dir/
27349
27350 The --progress flag is for displaying progress information. Remove it
27351 if you don't need this information.
27352
27353 Since this can cause data loss, test first with the --dry-run flag to
27354 see exactly what would be copied and deleted.
27355
27356 The sync can be done also from Tardigrade to the local file system.
27357
27358 rclone sync -i --progress remote:bucket/path/to/dir/ /home/local/directory/
27359
27360 Or between two Tardigrade buckets.
27361
27362 rclone sync -i --progress remote-us:bucket/path/to/dir/ remote-europe:bucket/path/to/dir/
27363
27364 Or even between another cloud storage and Tardigrade.
27365
27366 rclone sync -i --progress s3:bucket/path/to/dir/ tardigrade:bucket/path/to/dir/
27367
27368 Standard Options
27369 Here are the standard options specific to tardigrade (Tardigrade Decen‐
27370 tralized Cloud Storage).
27371
27372 --tardigrade-provider
27373 Choose an authentication method.
27374
27375 · Config: provider
27376
27377 · Env Var: RCLONE_TARDIGRADE_PROVIDER
27378
27379 · Type: string
27380
27381 · Default: "existing"
27382
27383 · Examples:
27384
27385 · "existing"
27386
27387 · Use an existing access grant.
27388
27389 · "new"
27390
27391 · Create a new access grant from satellite address, API key, and
27392 passphrase.
27393
27394 --tardigrade-access-grant
27395 Access Grant.
27396
27397 · Config: access_grant
27398
27399 · Env Var: RCLONE_TARDIGRADE_ACCESS_GRANT
27400
27401 · Type: string
27402
27403 · Default: ""
27404
27405 --tardigrade-satellite-address
27406 Satellite Address. Custom satellite address should match the format:
27407 <nodeid>@<address>:<port>.
27408
27409 · Config: satellite_address
27410
27411 · Env Var: RCLONE_TARDIGRADE_SATELLITE_ADDRESS
27412
27413 · Type: string
27414
27415 · Default: "us-central-1.tardigrade.io"
27416
27417 · Examples:
27418
27419 · "us-central-1.tardigrade.io"
27420
27421 · US Central 1
27422
27423 · "europe-west-1.tardigrade.io"
27424
27425 · Europe West 1
27426
27427 · "asia-east-1.tardigrade.io"
27428
27429 · Asia East 1
27430
27431 --tardigrade-api-key
27432 API Key.
27433
27434 · Config: api_key
27435
27436 · Env Var: RCLONE_TARDIGRADE_API_KEY
27437
27438 · Type: string
27439
27440 · Default: ""
27441
27442 --tardigrade-passphrase
27443 Encryption Passphrase. To access existing objects enter passphrase
27444 used for uploading.
27445
27446 · Config: passphrase
27447
27448 · Env Var: RCLONE_TARDIGRADE_PASSPHRASE
27449
27450 · Type: string
27451
27452 · Default: ""
27453
27454 Limitations
27455 rclone about is not supported by the rclone Tardigrade backend. Back‐
27456 ends without this capability cannot determine free space for an rclone
27457 mount or use policy mfs (most free space) as a member of an rclone
27458 union remote.
27459
27460 See List of backends that do not support rclone about
27461 (https://rclone.org/overview/#optional-features) See rclone about
27462 (https://rclone.org/commands/rclone_about/)
27463
27464 Union
27465 The union remote provides a unification similar to UnionFS using other
27466 remotes.
27467
27468 Paths may be as deep as required or a local path, e.g. remote:directo‐
27469 ry/subdirectory or /directory/subdirectory.
27470
27471 During the initial setup with rclone config you will specify the up‐
27472 stream remotes as a space separated list. The upstream remotes can ei‐
27473 ther be a local paths or other remotes.
27474
27475 Attribute :ro and :nc can be attach to the end of path to tag the re‐
27476 mote as read only or no create, e.g. remote:directory/subdirectory:ro
27477 or remote:directory/subdirectory:nc.
27478
27479 Subfolders can be used in upstream remotes. Assume a union remote
27480 named backup with the remotes mydrive:private/backup. Invoking rclone
27481 mkdir backup:desktop is exactly the same as invoking rclone mkdir my‐
27482 drive:private/backup/desktop.
27483
27484 There will be no special handling of paths containing .. segments.
27485 Invoking rclone mkdir backup:../desktop is exactly the same as invoking
27486 rclone mkdir mydrive:private/backup/../desktop.
27487
27488 Behavior / Policies
27489 The behavior of union backend is inspired by trapexit/mergerfs
27490 (https://github.com/trapexit/mergerfs). All functions are grouped into
27491 3 categories: action, create and search. These functions and cate‐
27492 gories can be assigned a policy which dictates what file or directory
27493 is chosen when performing that behavior. Any policy can be assigned to
27494 a function or category though some may not be very useful in practice.
27495 For instance: rand (random) may be useful for file creation (create)
27496 but could lead to very odd behavior if used for delete if there were
27497 more than one copy of the file.
27498
27499 Function / Category classifications
27500 Cate‐ Description Functions
27501 gory
27502 ─────────────────────────────────────────────────────────────────────────────
27503 action Writing Exist‐ move, rmdir, rmdirs, delete, purge and copy, sync
27504 ing file (as destination when file exist)
27505 create Create non-ex‐ copy, sync (as destination when file not exist)
27506 isting file
27507 search Reading and ls, lsd, lsl, cat, md5sum, sha1sum and copy, sync
27508 listing file (as source)
27509 N/A size, about
27510
27511 Path Preservation
27512 Policies, as described below, are of two basic types. path preserving
27513 and non-path preserving.
27514
27515 All policies which start with ep (epff, eplfs, eplus, epmfs, eprand)
27516 are path preserving. ep stands for existing path.
27517
27518 A path preserving policy will only consider upstreams where the rela‐
27519 tive path being accessed already exists.
27520
27521 When using non-path preserving policies paths will be created in target
27522 upstreams as necessary.
27523
27524 Quota Relevant Policies
27525 Some policies rely on quota information. These policies should be used
27526 only if your upstreams support the respective quota fields.
27527
27528 Policy Required Field
27529 ────────────────────────────
27530 lfs, eplfs Free
27531 mfs, epmfs Free
27532 lus, eplus Used
27533 lno, eplno Objects
27534
27535 To check if your upstream supports the field, run rclone about remote:
27536 [flags] and see if the required field exists.
27537
27538 Filters
27539 Policies basically search upstream remotes and create a list of files /
27540 paths for functions to work on. The policy is responsible for filter‐
27541 ing and sorting. The policy type defines the sorting but filtering is
27542 mostly uniform as described below.
27543
27544 · No search policies filter.
27545
27546 · All action policies will filter out remotes which are tagged as
27547 read-only.
27548
27549 · All create policies will filter out remotes which are tagged read-on‐
27550 ly or no-create.
27551
27552 If all remotes are filtered an error will be returned.
27553
27554 Policy descriptions
27555 The policies definition are inspired by trapexit/mergerfs
27556 (https://github.com/trapexit/mergerfs) but not exactly the same. Some
27557 policy definition could be different due to the much larger latency of
27558 remote file systems.
27559
27560 Policy Description
27561 ──────────────────────────────────────────────────────────────────────────
27562 all Search category: same as epall. Action category: same
27563 as epall. Create category: act on all upstreams.
27564 epall (existing Search category: Given this order configured, act on
27565 path, all) the first one found where the relative path exists.
27566 Action category: apply to all found. Create category:
27567 act on all upstreams where the relative path exists.
27568 epff (existing Act on the first one found, by the time upstreams re‐
27569 path, first ply, where the relative path exists.
27570 found)
27571 eplfs (existing Of all the upstreams on which the relative path exists
27572 path, least free choose the one with the least free space.
27573 space)
27574 eplus (existing Of all the upstreams on which the relative path exists
27575 path, least used choose the one with the least used space.
27576 space)
27577 eplno (existing Of all the upstreams on which the relative path exists
27578 path, least num‐ choose the one with the least number of objects.
27579 ber of objects)
27580 epmfs (existing Of all the upstreams on which the relative path exists
27581 path, most free choose the one with the most free space.
27582 space)
27583 eprand (existing Calls epall and then randomizes. Returns only one up‐
27584 path, random) stream.
27585 ff (first found) Search category: same as epff. Action category: same
27586 as epff. Create category: Act on the first one found
27587 by the time upstreams reply.
27588 lfs (least free Search category: same as eplfs. Action category: same
27589 space) as eplfs. Create category: Pick the upstream with the
27590 least available free space.
27591 lus (least used Search category: same as eplus. Action category: same
27592 space) as eplus. Create category: Pick the upstream with the
27593 least used space.
27594 lno (least num‐ Search category: same as eplno. Action category: same
27595 ber of objects) as eplno. Create category: Pick the upstream with the
27596 least number of objects.
27597 mfs (most free Search category: same as epmfs. Action category: same
27598 space) as epmfs. Create category: Pick the upstream with the
27599 most available free space.
27600 newest Pick the file / directory with the largest mtime.
27601 rand (random) Calls all and then randomizes. Returns only one up‐
27602 stream.
27603
27604 Setup
27605 Here is an example of how to make a union called remote for local fold‐
27606 ers. First run:
27607
27608 rclone config
27609
27610 This will guide you through an interactive setup process:
27611
27612 No remotes found - make a new one
27613 n) New remote
27614 s) Set configuration password
27615 q) Quit config
27616 n/s/q> n
27617 name> remote
27618 Type of storage to configure.
27619 Choose a number from below, or type in your own value
27620 [snip]
27621 XX / Union merges the contents of several remotes
27622 \ "union"
27623 [snip]
27624 Storage> union
27625 List of space separated upstreams.
27626 Can be 'upstreama:test/dir upstreamb:', '\"upstreama:test/space:ro dir\" upstreamb:', etc.
27627 Enter a string value. Press Enter for the default ("").
27628 upstreams> remote1:dir1 remote2:dir2 remote3:dir3
27629 Policy to choose upstream on ACTION class.
27630 Enter a string value. Press Enter for the default ("epall").
27631 action_policy>
27632 Policy to choose upstream on CREATE class.
27633 Enter a string value. Press Enter for the default ("epmfs").
27634 create_policy>
27635 Policy to choose upstream on SEARCH class.
27636 Enter a string value. Press Enter for the default ("ff").
27637 search_policy>
27638 Cache time of usage and free space (in seconds). This option is only useful when a path preserving policy is used.
27639 Enter a signed integer. Press Enter for the default ("120").
27640 cache_time>
27641 Remote config
27642 --------------------
27643 [remote]
27644 type = union
27645 upstreams = remote1:dir1 remote2:dir2 remote3:dir3
27646 --------------------
27647 y) Yes this is OK
27648 e) Edit this remote
27649 d) Delete this remote
27650 y/e/d> y
27651 Current remotes:
27652
27653 Name Type
27654 ==== ====
27655 remote union
27656
27657 e) Edit existing remote
27658 n) New remote
27659 d) Delete remote
27660 r) Rename remote
27661 c) Copy remote
27662 s) Set configuration password
27663 q) Quit config
27664 e/n/d/r/c/s/q> q
27665
27666 Once configured you can then use rclone like this,
27667
27668 List directories in top level in remote1:dir1, remote2:dir2 and re‐
27669 mote3:dir3
27670
27671 rclone lsd remote:
27672
27673 List all the files in remote1:dir1, remote2:dir2 and remote3:dir3
27674
27675 rclone ls remote:
27676
27677 Copy another local directory to the union directory called source,
27678 which will be placed into remote3:dir3
27679
27680 rclone copy C:\source remote:source
27681
27682 Standard Options
27683 Here are the standard options specific to union (Union merges the con‐
27684 tents of several upstream fs).
27685
27686 --union-upstreams
27687 List of space separated upstreams. Can be 'upstreama:test/dir up‐
27688 streamb:', '"upstreama:test/space:ro dir" upstreamb:', etc.
27689
27690 · Config: upstreams
27691
27692 · Env Var: RCLONE_UNION_UPSTREAMS
27693
27694 · Type: string
27695
27696 · Default: ""
27697
27698 --union-action-policy
27699 Policy to choose upstream on ACTION category.
27700
27701 · Config: action_policy
27702
27703 · Env Var: RCLONE_UNION_ACTION_POLICY
27704
27705 · Type: string
27706
27707 · Default: "epall"
27708
27709 --union-create-policy
27710 Policy to choose upstream on CREATE category.
27711
27712 · Config: create_policy
27713
27714 · Env Var: RCLONE_UNION_CREATE_POLICY
27715
27716 · Type: string
27717
27718 · Default: "epmfs"
27719
27720 --union-search-policy
27721 Policy to choose upstream on SEARCH category.
27722
27723 · Config: search_policy
27724
27725 · Env Var: RCLONE_UNION_SEARCH_POLICY
27726
27727 · Type: string
27728
27729 · Default: "ff"
27730
27731 --union-cache-time
27732 Cache time of usage and free space (in seconds). This option is only
27733 useful when a path preserving policy is used.
27734
27735 · Config: cache_time
27736
27737 · Env Var: RCLONE_UNION_CACHE_TIME
27738
27739 · Type: int
27740
27741 · Default: 120
27742
27743 WebDAV
27744 Paths are specified as remote:path
27745
27746 Paths may be as deep as required, e.g. remote:directory/subdirectory.
27747
27748 To configure the WebDAV remote you will need to have a URL for it, and
27749 a username and password. If you know what kind of system you are con‐
27750 necting to then rclone can enable extra features.
27751
27752 Here is an example of how to make a remote called remote. First run:
27753
27754 rclone config
27755
27756 This will guide you through an interactive setup process:
27757
27758 No remotes found - make a new one
27759 n) New remote
27760 s) Set configuration password
27761 q) Quit config
27762 n/s/q> n
27763 name> remote
27764 Type of storage to configure.
27765 Choose a number from below, or type in your own value
27766 [snip]
27767 XX / Webdav
27768 \ "webdav"
27769 [snip]
27770 Storage> webdav
27771 URL of http host to connect to
27772 Choose a number from below, or type in your own value
27773 1 / Connect to example.com
27774 \ "https://example.com"
27775 url> https://example.com/remote.php/webdav/
27776 Name of the Webdav site/service/software you are using
27777 Choose a number from below, or type in your own value
27778 1 / Nextcloud
27779 \ "nextcloud"
27780 2 / Owncloud
27781 \ "owncloud"
27782 3 / Sharepoint
27783 \ "sharepoint"
27784 4 / Other site/service or software
27785 \ "other"
27786 vendor> 1
27787 User name
27788 user> user
27789 Password.
27790 y) Yes type in my own password
27791 g) Generate random password
27792 n) No leave this optional password blank
27793 y/g/n> y
27794 Enter the password:
27795 password:
27796 Confirm the password:
27797 password:
27798 Bearer token instead of user/pass (e.g. a Macaroon)
27799 bearer_token>
27800 Remote config
27801 --------------------
27802 [remote]
27803 type = webdav
27804 url = https://example.com/remote.php/webdav/
27805 vendor = nextcloud
27806 user = user
27807 pass = *** ENCRYPTED ***
27808 bearer_token =
27809 --------------------
27810 y) Yes this is OK
27811 e) Edit this remote
27812 d) Delete this remote
27813 y/e/d> y
27814
27815 Once configured you can then use rclone like this,
27816
27817 List directories in top level of your WebDAV
27818
27819 rclone lsd remote:
27820
27821 List all the files in your WebDAV
27822
27823 rclone ls remote:
27824
27825 To copy a local directory to an WebDAV directory called backup
27826
27827 rclone copy /home/source remote:backup
27828
27829 Modified time and hashes
27830 Plain WebDAV does not support modified times. However when used with
27831 Owncloud or Nextcloud rclone will support modified times.
27832
27833 Likewise plain WebDAV does not support hashes, however when used with
27834 Owncloud or Nextcloud rclone will support SHA1 and MD5 hashes. Depend‐
27835 ing on the exact version of Owncloud or Nextcloud hashes may appear on
27836 all objects, or only on objects which had a hash uploaded with them.
27837
27838 Standard Options
27839 Here are the standard options specific to webdav (Webdav).
27840
27841 --webdav-url
27842 URL of http host to connect to
27843
27844 · Config: url
27845
27846 · Env Var: RCLONE_WEBDAV_URL
27847
27848 · Type: string
27849
27850 · Default: ""
27851
27852 · Examples:
27853
27854 · "https://example.com"
27855
27856 · Connect to example.com
27857
27858 --webdav-vendor
27859 Name of the Webdav site/service/software you are using
27860
27861 · Config: vendor
27862
27863 · Env Var: RCLONE_WEBDAV_VENDOR
27864
27865 · Type: string
27866
27867 · Default: ""
27868
27869 · Examples:
27870
27871 · "nextcloud"
27872
27873 · Nextcloud
27874
27875 · "owncloud"
27876
27877 · Owncloud
27878
27879 · "sharepoint"
27880
27881 · Sharepoint
27882
27883 · "other"
27884
27885 · Other site/service or software
27886
27887 --webdav-user
27888 User name
27889
27890 · Config: user
27891
27892 · Env Var: RCLONE_WEBDAV_USER
27893
27894 · Type: string
27895
27896 · Default: ""
27897
27898 --webdav-pass
27899 Password.
27900
27901 NB Input to this must be obscured - see rclone obscure
27902 (https://rclone.org/commands/rclone_obscure/).
27903
27904 · Config: pass
27905
27906 · Env Var: RCLONE_WEBDAV_PASS
27907
27908 · Type: string
27909
27910 · Default: ""
27911
27912 --webdav-bearer-token
27913 Bearer token instead of user/pass (e.g. a Macaroon)
27914
27915 · Config: bearer_token
27916
27917 · Env Var: RCLONE_WEBDAV_BEARER_TOKEN
27918
27919 · Type: string
27920
27921 · Default: ""
27922
27923 Advanced Options
27924 Here are the advanced options specific to webdav (Webdav).
27925
27926 --webdav-bearer-token-command
27927 Command to run to get a bearer token
27928
27929 · Config: bearer_token_command
27930
27931 · Env Var: RCLONE_WEBDAV_BEARER_TOKEN_COMMAND
27932
27933 · Type: string
27934
27935 · Default: ""
27936
27937 Provider notes
27938 See below for notes on specific providers.
27939
27940 Owncloud
27941 Click on the settings cog in the bottom right of the page and this will
27942 show the WebDAV URL that rclone needs in the config step. It will look
27943 something like https://example.com/remote.php/webdav/.
27944
27945 Owncloud supports modified times using the X-OC-Mtime header.
27946
27947 Nextcloud
27948 This is configured in an identical way to Owncloud. Note that
27949 Nextcloud initially did not support streaming of files (rcat) whereas
27950 Owncloud did, but this (https://github.com/nextcloud/nextcloud-snap/is‐
27951 sues/365) seems to be fixed as of 2020-11-27 (tested with rclone
27952 v1.53.1 and Nextcloud Server v19).
27953
27954 Sharepoint
27955 Rclone can be used with Sharepoint provided by OneDrive for Business or
27956 Office365 Education Accounts. This feature is only needed for a few of
27957 these Accounts, mostly Office365 Education ones. These accounts are
27958 sometimes not verified by the domain owner github#1975
27959 (https://github.com/rclone/rclone/issues/1975)
27960
27961 This means that these accounts can't be added using the official API
27962 (other Accounts should work with the "onedrive" option). However, it
27963 is possible to access them using webdav.
27964
27965 To use a sharepoint remote with rclone, add it like this: First, you
27966 need to get your remote's URL:
27967
27968 · Go here (https://onedrive.live.com/about/en-us/signin/) to open your
27969 OneDrive or to sign in
27970
27971 · Now take a look at your address bar, the URL should look like this:
27972 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/_lay‐
27973 outs/15/onedrive.aspx
27974
27975 You'll only need this URL up to the email address. After that, you'll
27976 most likely want to add "/Documents". That subdirectory contains the
27977 actual data stored on your OneDrive.
27978
27979 Add the remote to rclone like this: Configure the url as
27980 https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
27981 and use your normal account email and password for user and pass. If
27982 you have 2FA enabled, you have to generate an app password. Set the
27983 vendor to sharepoint.
27984
27985 Your config file should look like this:
27986
27987 [sharepoint]
27988 type = webdav
27989 url = https://[YOUR-DOMAIN]-my.sharepoint.com/personal/[YOUR-EMAIL]/Documents
27990 vendor = other
27991 user = YourEmailAddress
27992 pass = encryptedpassword
27993
27994 Required Flags for SharePoint
27995 As SharePoint does some special things with uploaded documents, you
27996 won't be able to use the documents size or the documents hash to com‐
27997 pare if a file has been changed since the upload / which file is newer.
27998
27999 For Rclone calls copying files (especially Office files such as .docx,
28000 .xlsx, etc.) from/to SharePoint (like copy, sync, etc.), you should ap‐
28001 pend these flags to ensure Rclone uses the "Last Modified" datetime
28002 property to compare your documents:
28003
28004 --ignore-size --ignore-checksum --update
28005
28006 dCache
28007 dCache is a storage system that supports many protocols and authentica‐
28008 tion/authorisation schemes. For WebDAV clients, it allows users to au‐
28009 thenticate with username and password (BASIC), X.509, Kerberos, and
28010 various bearer tokens, including Macaroons (https://www.dcache.org/man‐
28011 uals/workshop-2017-05-29-Umea/000-Final/anupam_macaroons_v02.pdf) and
28012 OpenID-Connect (https://en.wikipedia.org/wiki/OpenID_Connect) access
28013 tokens.
28014
28015 Configure as normal using the other type. Don't enter a username or
28016 password, instead enter your Macaroon as the bearer_token.
28017
28018 The config will end up looking something like this.
28019
28020 [dcache]
28021 type = webdav
28022 url = https://dcache...
28023 vendor = other
28024 user =
28025 pass =
28026 bearer_token = your-macaroon
28027
28028 There is a script (https://github.com/sara-nl/GridScripts/blob/mas‐
28029 ter/get-macaroon) that obtains a Macaroon from a dCache WebDAV end‐
28030 point, and creates an rclone config file.
28031
28032 Macaroons may also be obtained from the dCacheView web-brows‐
28033 er/JavaScript client that comes with dCache.
28034
28035 OpenID-Connect
28036 dCache also supports authenticating with OpenID-Connect access tokens.
28037 OpenID-Connect is a protocol (based on OAuth 2.0) that allows services
28038 to identify users who have authenticated with some central service.
28039
28040 Support for OpenID-Connect in rclone is currently achieved using anoth‐
28041 er software package called oidc-agent (https://github.com/indigo-
28042 dc/oidc-agent). This is a command-line tool that facilitates obtaining
28043 an access token. Once installed and configured, an access token is ob‐
28044 tained by running the oidc-token command. The following example shows
28045 a (shortened) access token obtained from the XDC OIDC Provider.
28046
28047 paul@celebrimbor:~$ oidc-token XDC
28048 eyJraWQ[...]QFXDt0
28049 paul@celebrimbor:~$
28050
28051 Note Before the oidc-token command will work, the refresh token must be
28052 loaded into the oidc agent. This is done with the oidc-add command
28053 (e.g., oidc-add XDC). This is typically done once per login session.
28054 Full details on this and how to register oidc-agent with your OIDC
28055 Provider are provided in the oidc-agent documentation (https://indigo-
28056 dc.gitbooks.io/oidc-agent/).
28057
28058 The rclone bearer_token_command configuration option is used to fetch
28059 the access token from oidc-agent.
28060
28061 Configure as a normal WebDAV endpoint, using the 'other' vendor, leav‐
28062 ing the username and password empty. When prompted, choose to edit the
28063 advanced config and enter the command to get a bearer token (e.g.,
28064 oidc-agent XDC).
28065
28066 The following example config shows a WebDAV endpoint that uses
28067 oidc-agent to supply an access token from the XDC OIDC Provider.
28068
28069 [dcache]
28070 type = webdav
28071 url = https://dcache.example.org/
28072 vendor = other
28073 bearer_token_command = oidc-token XDC
28074
28075 Yandex Disk
28076 Yandex Disk (https://disk.yandex.com) is a cloud storage solution cre‐
28077 ated by Yandex (https://yandex.com).
28078
28079 Here is an example of making a yandex configuration. First run
28080
28081 rclone config
28082
28083 This will guide you through an interactive setup process:
28084
28085 No remotes found - make a new one
28086 n) New remote
28087 s) Set configuration password
28088 n/s> n
28089 name> remote
28090 Type of storage to configure.
28091 Choose a number from below, or type in your own value
28092 [snip]
28093 XX / Yandex Disk
28094 \ "yandex"
28095 [snip]
28096 Storage> yandex
28097 Yandex Client Id - leave blank normally.
28098 client_id>
28099 Yandex Client Secret - leave blank normally.
28100 client_secret>
28101 Remote config
28102 Use auto config?
28103 * Say Y if not sure
28104 * Say N if you are working on a remote or headless machine
28105 y) Yes
28106 n) No
28107 y/n> y
28108 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
28109 Log in and authorize rclone for access
28110 Waiting for code...
28111 Got code
28112 --------------------
28113 [remote]
28114 client_id =
28115 client_secret =
28116 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"bearer","expiry":"2016-12-29T12:27:11.362788025Z"}
28117 --------------------
28118 y) Yes this is OK
28119 e) Edit this remote
28120 d) Delete this remote
28121 y/e/d> y
28122
28123 See the remote setup docs (https://rclone.org/remote_setup/) for how to
28124 set it up on a machine with no Internet browser available.
28125
28126 Note that rclone runs a webserver on your local machine to collect the
28127 token as returned from Yandex Disk. This only runs from the moment it
28128 opens your browser to the moment you get back the verification code.
28129 This is on http://127.0.0.1:53682/ and this it may require you to un‐
28130 block it temporarily if you are running a host firewall.
28131
28132 Once configured you can then use rclone like this,
28133
28134 See top level directories
28135
28136 rclone lsd remote:
28137
28138 Make a new directory
28139
28140 rclone mkdir remote:directory
28141
28142 List the contents of a directory
28143
28144 rclone ls remote:directory
28145
28146 Sync /home/local/directory to the remote path, deleting any excess
28147 files in the path.
28148
28149 rclone sync -i /home/local/directory remote:directory
28150
28151 Yandex paths may be as deep as required, e.g. remote:directory/subdi‐
28152 rectory.
28153
28154 Modified time
28155 Modified times are supported and are stored accurate to 1 ns in custom
28156 metadata called rclone_modified in RFC3339 with nanoseconds format.
28157
28158 MD5 checksums
28159 MD5 checksums are natively supported by Yandex Disk.
28160
28161 Emptying Trash
28162 If you wish to empty your trash you can use the rclone cleanup remote:
28163 command which will permanently delete all your trashed files. This
28164 command does not take any path arguments.
28165
28166 Quota information
28167 To view your current quota you can use the rclone about remote: command
28168 which will display your usage limit (quota) and the current usage.
28169
28170 Restricted filename characters
28171 The default restricted characters set (https://rclone.org/overview/#re‐
28172 stricted-characters) are replaced.
28173
28174 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
28175 view/#invalid-utf8), as they can't be used in JSON strings.
28176
28177 Limitations
28178 When uploading very large files (bigger than about 5GB) you will need
28179 to increase the --timeout parameter. This is because Yandex pauses
28180 (perhaps to calculate the MD5SUM for the entire file) before returning
28181 confirmation that the file has been uploaded. The default handling of
28182 timeouts in rclone is to assume a 5 minute pause is an error and close
28183 the connection - you'll see net/http: timeout awaiting response headers
28184 errors in the logs if this is happening. Setting the timeout to twice
28185 the max size of file in GB should be enough, so if you want to upload a
28186 30GB file set a timeout of 2 * 30 = 60m, that is --timeout 60m.
28187
28188 Standard Options
28189 Here are the standard options specific to yandex (Yandex Disk).
28190
28191 --yandex-client-id
28192 OAuth Client Id Leave blank normally.
28193
28194 · Config: client_id
28195
28196 · Env Var: RCLONE_YANDEX_CLIENT_ID
28197
28198 · Type: string
28199
28200 · Default: ""
28201
28202 --yandex-client-secret
28203 OAuth Client Secret Leave blank normally.
28204
28205 · Config: client_secret
28206
28207 · Env Var: RCLONE_YANDEX_CLIENT_SECRET
28208
28209 · Type: string
28210
28211 · Default: ""
28212
28213 Advanced Options
28214 Here are the advanced options specific to yandex (Yandex Disk).
28215
28216 --yandex-token
28217 OAuth Access Token as a JSON blob.
28218
28219 · Config: token
28220
28221 · Env Var: RCLONE_YANDEX_TOKEN
28222
28223 · Type: string
28224
28225 · Default: ""
28226
28227 --yandex-auth-url
28228 Auth server URL. Leave blank to use the provider defaults.
28229
28230 · Config: auth_url
28231
28232 · Env Var: RCLONE_YANDEX_AUTH_URL
28233
28234 · Type: string
28235
28236 · Default: ""
28237
28238 --yandex-token-url
28239 Token server url. Leave blank to use the provider defaults.
28240
28241 · Config: token_url
28242
28243 · Env Var: RCLONE_YANDEX_TOKEN_URL
28244
28245 · Type: string
28246
28247 · Default: ""
28248
28249 --yandex-encoding
28250 This sets the encoding for the backend.
28251
28252 See: the encoding section in the overview (https://rclone.org/over‐
28253 view/#encoding) for more info.
28254
28255 · Config: encoding
28256
28257 · Env Var: RCLONE_YANDEX_ENCODING
28258
28259 · Type: MultiEncoder
28260
28261 · Default: Slash,Del,Ctl,InvalidUtf8,Dot
28262
28263 Zoho Workdrive
28264 Zoho WorkDrive (https://www.zoho.com/workdrive/) is a cloud storage so‐
28265 lution created by Zoho (https://zoho.com).
28266
28267 Here is an example of making a zoho configuration. First run
28268
28269 rclone config
28270
28271 This will guide you through an interactive setup process:
28272
28273 No remotes found - make a new one
28274 n) New remote
28275 s) Set configuration password
28276 n/s> n
28277 name> remote
28278 Type of storage to configure.
28279 Enter a string value. Press Enter for the default ("").
28280 Choose a number from below, or type in your own value
28281 [snip]
28282 XX / Zoho
28283 \ "zoho"
28284 [snip]
28285 Storage> zoho
28286 ** See help for zoho backend at: https://rclone.org/zoho/ **
28287
28288 OAuth Client Id
28289 Leave blank normally.
28290 Enter a string value. Press Enter for the default ("").
28291 client_id>
28292 OAuth Client Secret
28293 Leave blank normally.
28294 Enter a string value. Press Enter for the default ("").
28295 client_secret>
28296 Edit advanced config? (y/n)
28297 y) Yes
28298 n) No (default)
28299 y/n> n
28300 Remote config
28301 Use auto config?
28302 * Say Y if not sure
28303 * Say N if you are working on a remote or headless machine
28304 y) Yes (default)
28305 n) No
28306 y/n>
28307 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=LVn0IHzxej1ZkmQw31d0wQ
28308 Log in and authorize rclone for access
28309 Waiting for code...
28310 Got code
28311 Choose a number from below, or type in your own value
28312 1 / MyTeam
28313 \ "4u28602177065ff22426787a6745dba8954eb"
28314 Enter a Team ID> 1
28315 Choose a number from below, or type in your own value
28316 1 / General
28317 \ "4u2869d2aa6fca04f4f2f896b6539243b85b1"
28318 Enter a Workspace ID> 1
28319 --------------------
28320 [remote]
28321 type = zoho
28322 token = {"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"Zoho-oauthtoken","refresh_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","expiry":"2020-10-12T00:54:52.370275223+02:00"}
28323 root_folder_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
28324 --------------------
28325 y) Yes this is OK (default)
28326 e) Edit this remote
28327 d) Delete this remote
28328 y/e/d>
28329
28330 See the remote setup docs (https://rclone.org/remote_setup/) for how to
28331 set it up on a machine with no Internet browser available.
28332
28333 Note that rclone runs a webserver on your local machine to collect the
28334 token as returned from Zoho Workdrive. This only runs from the moment
28335 it opens your browser to the moment you get back the verification code.
28336 This is on http://127.0.0.1:53682/ and this it may require you to un‐
28337 block it temporarily if you are running a host firewall.
28338
28339 Once configured you can then use rclone like this,
28340
28341 See top level directories
28342
28343 rclone lsd remote:
28344
28345 Make a new directory
28346
28347 rclone mkdir remote:directory
28348
28349 List the contents of a directory
28350
28351 rclone ls remote:directory
28352
28353 Sync /home/local/directory to the remote path, deleting any excess
28354 files in the path.
28355
28356 rclone sync -i /home/local/directory remote:directory
28357
28358 Zoho paths may be as deep as required, eg remote:directory/subdirecto‐
28359 ry.
28360
28361 Modified time
28362 Modified times are currently not supported for Zoho Workdrive
28363
28364 Checksums
28365 No checksums are supported.
28366
28367 Usage information
28368 To view your current quota you can use the rclone about remote: command
28369 which will display your current usage.
28370
28371 Restricted filename characters
28372 Only control characters and invalid UTF-8 are replaced. In addition
28373 most Unicode full-width characters are not supported at all and will be
28374 removed from filenames during upload.
28375
28376 Standard Options
28377 Here are the standard options specific to zoho (Zoho).
28378
28379 --zoho-region
28380 Zoho region to connect to. You'll have to use the region you organiza‐
28381 tion is registered in.
28382
28383 · Config: region
28384
28385 · Env Var: RCLONE_ZOHO_REGION
28386
28387 · Type: string
28388
28389 · Default: ""
28390
28391 · Examples:
28392
28393 · "com"
28394
28395 · United states / Global
28396
28397 · "eu"
28398
28399 · Europe
28400
28401 · "in"
28402
28403 · India
28404
28405 · "com.au"
28406
28407 · Australia
28408
28409 Advanced Options
28410 Here are the advanced options specific to zoho (Zoho).
28411
28412 --zoho-encoding
28413 This sets the encoding for the backend.
28414
28415 See: the encoding section in the overview (https://rclone.org/over‐
28416 view/#encoding) for more info.
28417
28418 · Config: encoding
28419
28420 · Env Var: RCLONE_ZOHO_ENCODING
28421
28422 · Type: MultiEncoder
28423
28424 · Default: Del,Ctl,InvalidUtf8
28425
28426 Local Filesystem
28427 Local paths are specified as normal filesystem paths, e.g.
28428 /path/to/wherever, so
28429
28430 rclone sync -i /home/source /tmp/destination
28431
28432 Will sync /home/source to /tmp/destination
28433
28434 These can be configured into the config file for consistencies sake,
28435 but it is probably easier not to.
28436
28437 Modified time
28438 Rclone reads and writes the modified time using an accuracy determined
28439 by the OS. Typically this is 1ns on Linux, 10 ns on Windows and 1 Sec‐
28440 ond on OS X.
28441
28442 Filenames
28443 Filenames should be encoded in UTF-8 on disk. This is the normal case
28444 for Windows and OS X.
28445
28446 There is a bit more uncertainty in the Linux world, but new distribu‐
28447 tions will have UTF-8 encoded files names. If you are using an old
28448 Linux filesystem with non UTF-8 file names (e.g. latin1) then you can
28449 use the convmv tool to convert the filesystem to UTF-8. This tool is
28450 available in most distributions' package managers.
28451
28452 If an invalid (non-UTF8) filename is read, the invalid characters will
28453 be replaced with a quoted representation of the invalid bytes. The
28454 name gro\xdf will be transferred as gro‛DF. rclone will emit a debug
28455 message in this case (use -v to see), e.g.
28456
28457 Local file system at .: Replacing invalid UTF-8 characters in "gro\xdf"
28458
28459 Restricted characters
28460 On non Windows platforms the following characters are replaced when
28461 handling file names.
28462
28463 Character Value Replacement
28464 ────────────────────────────────
28465 NUL 0x00 ␀
28466 / 0x2F /
28467
28468 When running on Windows the following characters are replaced. This
28469 list is based on the Windows file naming conventions (https://docs.mi‐
28470 crosoft.com/de-de/windows/desktop/FileIO/naming-a-file#naming-conven‐
28471 tions).
28472
28473 Character Value Replacement
28474 ────────────────────────────────
28475 NUL 0x00 ␀
28476 SOH 0x01 ␁
28477 STX 0x02 ␂
28478 ETX 0x03 ␃
28479 EOT 0x04 ␄
28480 ENQ 0x05 ␅
28481 ACK 0x06 ␆
28482 BEL 0x07 ␇
28483 BS 0x08 ␈
28484 HT 0x09 ␉
28485 LF 0x0A ␊
28486 VT 0x0B ␋
28487 FF 0x0C ␌
28488 CR 0x0D ␍
28489 SO 0x0E ␎
28490 SI 0x0F ␏
28491 DLE 0x10 ␐
28492 DC1 0x11 ␑
28493 DC2 0x12 ␒
28494 DC3 0x13 ␓
28495 DC4 0x14 ␔
28496 NAK 0x15 ␕
28497 SYN 0x16 ␖
28498 ETB 0x17 ␗
28499 CAN 0x18 ␘
28500 EM 0x19 ␙
28501 SUB 0x1A ␚
28502 ESC 0x1B ␛
28503 FS 0x1C ␜
28504 GS 0x1D ␝
28505 RS 0x1E ␞
28506 US 0x1F ␟
28507 / 0x2F /
28508 " 0x22 "
28509 * 0x2A *
28510 : 0x3A :
28511 < 0x3C <
28512 > 0x3E >
28513 ? 0x3F ?
28514 \ 0x5C \
28515 | 0x7C |
28516
28517 File names on Windows can also not end with the following characters.
28518 These only get replaced if they are the last character in the name:
28519
28520 Character Value Replacement
28521 ────────────────────────────────
28522 SP 0x20 ␠
28523 . 0x2E .
28524
28525 Invalid UTF-8 bytes will also be replaced (https://rclone.org/over‐
28526 view/#invalid-utf8), as they can't be converted to UTF-16.
28527
28528 Long paths on Windows
28529 Rclone handles long paths automatically, by converting all paths to
28530 long UNC paths (https://msdn.microsoft.com/en-us/library/windows/desk‐
28531 top/aa365247(v=vs.85).aspx#maxpath) which allows paths up to 32,767
28532 characters.
28533
28534 This is why you will see that your paths, for instance c:\files is con‐
28535 verted to the UNC path \\?\c:\files in the output, and \\server\share
28536 is converted to \\?\UNC\server\share.
28537
28538 However, in rare cases this may cause problems with buggy file system
28539 drivers like EncFS (https://github.com/rclone/rclone/issues/261). To
28540 disable UNC conversion globally, add this to your .rclone.conf file:
28541
28542 [local]
28543 nounc = true
28544
28545 If you want to selectively disable UNC, you can add it to a separate
28546 entry like this:
28547
28548 [nounc]
28549 type = local
28550 nounc = true
28551
28552 And use rclone like this:
28553
28554 rclone copy c:\src nounc:z:\dst
28555
28556 This will use UNC paths on c:\src but not on z:\dst. Of course this
28557 will cause problems if the absolute path length of a file exceeds 258
28558 characters on z, so only use this option if you have to.
28559
28560 Symlinks / Junction points
28561 Normally rclone will ignore symlinks or junction points (which behave
28562 like symlinks under Windows).
28563
28564 If you supply --copy-links or -L then rclone will follow the symlink
28565 and copy the pointed to file or directory. Note that this flag is in‐
28566 compatible with -links / -l.
28567
28568 This flag applies to all commands.
28569
28570 For example, supposing you have a directory structure like this
28571
28572 $ tree /tmp/a
28573 /tmp/a
28574 ├── b -> ../b
28575 ├── expected -> ../expected
28576 ├── one
28577 └── two
28578 └── three
28579
28580 Then you can see the difference with and without the flag like this
28581
28582 $ rclone ls /tmp/a
28583 6 one
28584 6 two/three
28585
28586 and
28587
28588 $ rclone -L ls /tmp/a
28589 4174 expected
28590 6 one
28591 6 two/three
28592 6 b/two
28593 6 b/one
28594
28595 --links, -l
28596 Normally rclone will ignore symlinks or junction points (which behave
28597 like symlinks under Windows).
28598
28599 If you supply this flag then rclone will copy symbolic links from the
28600 local storage, and store them as text files, with a '.rclonelink' suf‐
28601 fix in the remote storage.
28602
28603 The text file will contain the target of the symbolic link (see exam‐
28604 ple).
28605
28606 This flag applies to all commands.
28607
28608 For example, supposing you have a directory structure like this
28609
28610 $ tree /tmp/a
28611 /tmp/a
28612 ├── file1 -> ./file4
28613 └── file2 -> /home/user/file3
28614
28615 Copying the entire directory with '-l'
28616
28617 $ rclone copyto -l /tmp/a/file1 remote:/tmp/a/
28618
28619 The remote files are created with a '.rclonelink' suffix
28620
28621 $ rclone ls remote:/tmp/a
28622 5 file1.rclonelink
28623 14 file2.rclonelink
28624
28625 The remote files will contain the target of the symbolic links
28626
28627 $ rclone cat remote:/tmp/a/file1.rclonelink
28628 ./file4
28629
28630 $ rclone cat remote:/tmp/a/file2.rclonelink
28631 /home/user/file3
28632
28633 Copying them back with '-l'
28634
28635 $ rclone copyto -l remote:/tmp/a/ /tmp/b/
28636
28637 $ tree /tmp/b
28638 /tmp/b
28639 ├── file1 -> ./file4
28640 └── file2 -> /home/user/file3
28641
28642 However, if copied back without '-l'
28643
28644 $ rclone copyto remote:/tmp/a/ /tmp/b/
28645
28646 $ tree /tmp/b
28647 /tmp/b
28648 ├── file1.rclonelink
28649 └── file2.rclonelink
28650
28651 Note that this flag is incompatible with -copy-links / -L.
28652
28653 Restricting filesystems with --one-file-system
28654 Normally rclone will recurse through filesystems as mounted.
28655
28656 However if you set --one-file-system or -x this tells rclone to stay in
28657 the filesystem specified by the root and not to recurse into different
28658 file systems.
28659
28660 For example if you have a directory hierarchy like this
28661
28662 root
28663 ├── disk1 - disk1 mounted on the root
28664 │ └── file3 - stored on disk1
28665 ├── disk2 - disk2 mounted on the root
28666 │ └── file4 - stored on disk12
28667 ├── file1 - stored on the root disk
28668 └── file2 - stored on the root disk
28669
28670 Using rclone --one-file-system copy root remote: will only copy file1
28671 and file2. Eg
28672
28673 $ rclone -q --one-file-system ls root
28674 0 file1
28675 0 file2
28676
28677 $ rclone -q ls root
28678 0 disk1/file3
28679 0 disk2/file4
28680 0 file1
28681 0 file2
28682
28683 NB Rclone (like most unix tools such as du, rsync and tar) treats a
28684 bind mount to the same device as being on the same filesystem.
28685
28686 NB This flag is only available on Unix based systems. On systems where
28687 it isn't supported (e.g. Windows) it will be ignored.
28688
28689 Standard Options
28690 Here are the standard options specific to local (Local Disk).
28691
28692 --local-nounc
28693 Disable UNC (long path names) conversion on Windows
28694
28695 · Config: nounc
28696
28697 · Env Var: RCLONE_LOCAL_NOUNC
28698
28699 · Type: string
28700
28701 · Default: ""
28702
28703 · Examples:
28704
28705 · "true"
28706
28707 · Disables long file names
28708
28709 Advanced Options
28710 Here are the advanced options specific to local (Local Disk).
28711
28712 --copy-links / -L
28713 Follow symlinks and copy the pointed to item.
28714
28715 · Config: copy_links
28716
28717 · Env Var: RCLONE_LOCAL_COPY_LINKS
28718
28719 · Type: bool
28720
28721 · Default: false
28722
28723 --links / -l
28724 Translate symlinks to/from regular files with a '.rclonelink' extension
28725
28726 · Config: links
28727
28728 · Env Var: RCLONE_LOCAL_LINKS
28729
28730 · Type: bool
28731
28732 · Default: false
28733
28734 --skip-links
28735 Don't warn about skipped symlinks. This flag disables warning messages
28736 on skipped symlinks or junction points, as you explicitly acknowledge
28737 that they should be skipped.
28738
28739 · Config: skip_links
28740
28741 · Env Var: RCLONE_LOCAL_SKIP_LINKS
28742
28743 · Type: bool
28744
28745 · Default: false
28746
28747 --local-zero-size-links
28748 Assume the Stat size of links is zero (and read them instead)
28749
28750 On some virtual filesystems (such ash LucidLink), reading a link size
28751 via a Stat call always returns 0. However, on unix it reads as the
28752 length of the text in the link. This may cause errors like this when
28753 syncing:
28754
28755 Failed to copy: corrupted on transfer: sizes differ 0 vs 13
28756
28757 Setting this flag causes rclone to read the link and use that as the
28758 size of the link instead of 0 which in most cases fixes the problem.
28759
28760 · Config: zero_size_links
28761
28762 · Env Var: RCLONE_LOCAL_ZERO_SIZE_LINKS
28763
28764 · Type: bool
28765
28766 · Default: false
28767
28768 --local-no-unicode-normalization
28769 Don't apply unicode normalization to paths and filenames (Deprecated)
28770
28771 This flag is deprecated now. Rclone no longer normalizes unicode file
28772 names, but it compares them with unicode normalization in the sync rou‐
28773 tine instead.
28774
28775 · Config: no_unicode_normalization
28776
28777 · Env Var: RCLONE_LOCAL_NO_UNICODE_NORMALIZATION
28778
28779 · Type: bool
28780
28781 · Default: false
28782
28783 --local-no-check-updated
28784 Don't check to see if the files change during upload
28785
28786 Normally rclone checks the size and modification time of files as they
28787 are being uploaded and aborts with a message which starts "can't copy -
28788 source file is being updated" if the file changes during upload.
28789
28790 However on some file systems this modification time check may fail
28791 (e.g. Glusterfs #2206 (https://github.com/rclone/rclone/issues/2206))
28792 so this check can be disabled with this flag.
28793
28794 If this flag is set, rclone will use its best efforts to transfer a
28795 file which is being updated. If the file is only having things append‐
28796 ed to it (e.g. a log) then rclone will transfer the log file with the
28797 size it had the first time rclone saw it.
28798
28799 If the file is being modified throughout (not just appended to) then
28800 the transfer may fail with a hash check failure.
28801
28802 In detail, once the file has had stat() called on it for the first time
28803 we:
28804
28805 · Only transfer the size that stat gave
28806
28807 · Only checksum the size that stat gave
28808
28809 · Don't update the stat info for the file
28810
28811 · Config: no_check_updated
28812
28813 · Env Var: RCLONE_LOCAL_NO_CHECK_UPDATED
28814
28815 · Type: bool
28816
28817 · Default: false
28818
28819 --one-file-system / -x
28820 Don't cross filesystem boundaries (unix/macOS only).
28821
28822 · Config: one_file_system
28823
28824 · Env Var: RCLONE_LOCAL_ONE_FILE_SYSTEM
28825
28826 · Type: bool
28827
28828 · Default: false
28829
28830 --local-case-sensitive
28831 Force the filesystem to report itself as case sensitive.
28832
28833 Normally the local backend declares itself as case insensitive on Win‐
28834 dows/macOS and case sensitive for everything else. Use this flag to
28835 override the default choice.
28836
28837 · Config: case_sensitive
28838
28839 · Env Var: RCLONE_LOCAL_CASE_SENSITIVE
28840
28841 · Type: bool
28842
28843 · Default: false
28844
28845 --local-case-insensitive
28846 Force the filesystem to report itself as case insensitive
28847
28848 Normally the local backend declares itself as case insensitive on Win‐
28849 dows/macOS and case sensitive for everything else. Use this flag to
28850 override the default choice.
28851
28852 · Config: case_insensitive
28853
28854 · Env Var: RCLONE_LOCAL_CASE_INSENSITIVE
28855
28856 · Type: bool
28857
28858 · Default: false
28859
28860 --local-no-sparse
28861 Disable sparse files for multi-thread downloads
28862
28863 On Windows platforms rclone will make sparse files when doing mul‐
28864 ti-thread downloads. This avoids long pauses on large files where the
28865 OS zeros the file. However sparse files may be undesirable as they
28866 cause disk fragmentation and can be slow to work with.
28867
28868 · Config: no_sparse
28869
28870 · Env Var: RCLONE_LOCAL_NO_SPARSE
28871
28872 · Type: bool
28873
28874 · Default: false
28875
28876 --local-no-set-modtime
28877 Disable setting modtime
28878
28879 Normally rclone updates modification time of files after they are done
28880 uploading. This can cause permissions issues on Linux platforms when
28881 the user rclone is running as does not own the file uploaded, such as
28882 when copying to a CIFS mount owned by another user. If this option is
28883 enabled, rclone will no longer update the modtime after copying a file.
28884
28885 · Config: no_set_modtime
28886
28887 · Env Var: RCLONE_LOCAL_NO_SET_MODTIME
28888
28889 · Type: bool
28890
28891 · Default: false
28892
28893 --local-encoding
28894 This sets the encoding for the backend.
28895
28896 See: the encoding section in the overview (https://rclone.org/over‐
28897 view/#encoding) for more info.
28898
28899 · Config: encoding
28900
28901 · Env Var: RCLONE_LOCAL_ENCODING
28902
28903 · Type: MultiEncoder
28904
28905 · Default: Slash,Dot
28906
28907 Backend commands
28908 Here are the commands specific to the local backend.
28909
28910 Run them with
28911
28912 rclone backend COMMAND remote:
28913
28914 The help below will explain what arguments each command takes.
28915
28916 See the "rclone backend" command (https://rclone.org/com‐
28917 mands/rclone_backend/) for more info on how to pass options and argu‐
28918 ments.
28919
28920 These can be run on a running backend using the rc command backend/com‐
28921 mand (https://rclone.org/rc/#backend/command).
28922
28923 noop
28924 A null operation for testing backend commands
28925
28926 rclone backend noop remote: [options] [<arguments>+]
28927
28928 This is a test command which has some options you can try to change the
28929 output.
28930
28931 Options:
28932
28933 · "echo": echo the input arguments
28934
28935 · "error": return an error based on option value
28936
28938 v1.54.0 - 2021-02-02
28939 See commits (https://github.com/rclone/rclone/com‐
28940 pare/v1.53.0...v1.54.0)
28941
28942 · New backends
28943
28944 · Compression remote (experimental)(buengese)
28945
28946 · Enterprise File Fabric (Nick Craig-Wood)
28947
28948 · This work was sponsored by Storage Made Easy (https://storage‐
28949 madeeasy.com/)
28950
28951 · HDFS (Hadoop Distributed File System) (Yury Stankevich)
28952
28953 · Zoho workdrive (buengese)
28954
28955 · New Features
28956
28957 · Deglobalise the config (Nick Craig-Wood)
28958
28959 · Global config now read from the context
28960
28961 · Global config can be passed into the rc
28962
28963 · This work was sponsored by Digitalis (digitalis.io)
28964
28965 · Add --bwlimit for upload and download (Nick Craig-Wood)
28966
28967 · Obey bwlimit in http Transport for better limiting
28968
28969 · Enhance systemd integration (Hekmon)
28970
28971 · log level identification
28972
28973 · manual activation with flag
28974
28975 · automatic systemd launch detection
28976
28977 · Don't compile systemd log integration for non unix systems (Ben‐
28978 jamin Gustin)
28979
28980 · Add a download flag to hashsum and related commands to force rclone
28981 to download and hash files locally (lostheli)
28982
28983 · build
28984
28985 · Raise minimum go version to go1.12 (Nick Craig-Wood)
28986
28987 · check
28988
28989 · Make the error count match up in the log message (Nick
28990 Craig-Wood)
28991
28992 · cmd
28993
28994 · Add --progress-terminal-title to print ETA to terminal title (La‐
28995 Sombra)
28996
28997 · Make backend env vars show in help as the defaults for backend
28998 flags (Nick Craig-Wood)
28999
29000 · dedupe
29001
29002 · Add --by-hash to dedupe on hash not file name (Nick Craig-Wood)
29003
29004 · Add --dedupe-mode list to just list dupes, changing nothing (Nick
29005 Craig-Wood)
29006
29007 · Add warning if used on a remote which can't have duplicate names
29008 (Nick Craig-Wood)
29009
29010 · flags: Improve error message when reading environment vars (Nick
29011 Craig-Wood)
29012
29013 · fs
29014
29015 · Add Shutdown optional method for backends (Nick Craig-Wood)
29016
29017 · When using --files-from check files concurrently (zhucan)
29018
29019 · Accumulate stats when using --dry-run (Ingo Weiss)
29020
29021 · Always show stats when using --dry-run or --interactive (Nick
29022 Craig-Wood)
29023
29024 · Add support for flag --no-console on windows to hide the console
29025 window (albertony)
29026
29027 · genautocomplete: Add support to output to stdout (Ingo)
29028
29029 · ncdu
29030
29031 · Highlight read errors instead of aborting (Claudio Bantaloukas)
29032
29033 · Add sort by average size in directory (Adam Plánský)
29034
29035 · Add toggle option for average size in directory - key 'a' (Adam
29036 Plánský)
29037
29038 · Add empty folder flag into ncdu browser (Adam Plánský)
29039
29040 · Add ! (errror) and . (unreadable) file flags to go with e (emp‐
29041 ty) (Nick Craig-Wood)
29042
29043 · obscure: Make rclone osbcure - ignore newline at end of line (Nick
29044 Craig-Wood)
29045
29046 · operations
29047
29048 · Add logs when need to upload files to set mod times (Nick
29049 Craig-Wood)
29050
29051 · Move and copy log name of the destination object in verbose (Adam
29052 Plánský)
29053
29054 · Add size if known to skipped items and JSON log (Nick Craig-Wood)
29055
29056 · rc
29057
29058 · Prefer actual listener address if using ":port" or "addr:0" only
29059 (Nick Craig-Wood)
29060
29061 · Add listener for finished jobs (Aleksandar Jankovic)
29062
29063 · serve ftp: Add options to enable TLS (Deepak Sah)
29064
29065 · serve http/webdav: Redirect requests to the base url without the /
29066 (Nick Craig-Wood)
29067
29068 · serve restic: Implement object cache (Nick Craig-Wood)
29069
29070 · stats: Add counter for deleted directories (Nick Craig-Wood)
29071
29072 · sync: Only print "There was nothing to transfer" if no errors (Nick
29073 Craig-Wood)
29074
29075 · webui
29076
29077 · Prompt user for updating webui if an update is available (Chai‐
29078 tanya Bankanhal)
29079
29080 · Fix plugins initialization (negative0)
29081
29082 · Bug Fixes
29083
29084 · build
29085
29086 · Explicitly set ARM version to fix build (Nick Craig-Wood)
29087
29088 · Don't explicitly set ARM version to fix ARMv5 build (Nick
29089 Craig-Wood)
29090
29091 · Fix nfpm install (Nick Craig-Wood)
29092
29093 · Fix docker build by upgrading ilteoood/docker_buildx (Nick
29094 Craig-Wood)
29095
29096 · Temporary fix for Windows build errors (Ivan Andreev)
29097
29098 · fs
29099
29100 · Fix nil pointer on copy & move operations directly to remote
29101 (Anagh Kumar Baranwal)
29102
29103 · Fix parsing of .. when joining remotes (Nick Craig-Wood)
29104
29105 · log: Fix enabling systemd logging when using --log-file (Nick
29106 Craig-Wood)
29107
29108 · move: Fix data loss when moving the same object (Nick Craig-Wood)
29109
29110 · operations
29111
29112 · Fix --cutof-mode hard not cutting off immediately (Nick
29113 Craig-Wood)
29114
29115 · Fix --immutable error message (Nick Craig-Wood)
29116
29117 · sync
29118
29119 · Fix --cutoff-mode soft & cautious so it doesn't end the transfer
29120 early (Nick Craig-Wood)
29121
29122 · Fix --immutable errors retrying many times (Nick Craig-Wood)
29123
29124 · Docs
29125
29126 · Many fixes and a rewrite of the filtering docs (edwardxml)
29127
29128 · Many spelling and grammar problems (Josh Soref)
29129
29130 · Doc fixes for commands delete, purge, rmdir, rmdirs and mount (al‐
29131 bertony)
29132
29133 · And thanks to these people for many doc fixes too numerous to list
29134
29135 · Ameer Dawood, Antoine GIRARD, Bob Bagwill, Christopher Stewart
29136
29137 · CokeMine, David, Dov Murik, Durval Menezes, Evan Harris, gtorelly
29138
29139 · Ilyess Bachiri, Janne Johansson, Kerry Su, Marcin Zelent,
29140
29141 · Martin Michlmayr, Milly, Sơn Trần-Nguyễn
29142
29143 · Mount
29144
29145 · Update systemd status with cache stats (Hekmon)
29146
29147 · Disable bazil/fuse based mount on macOS (Nick Craig-Wood)
29148
29149 · Make mount be cmount under macOS (Nick Craig-Wood)
29150
29151 · Implement mknod to make NFS file creation work (Nick Craig-Wood)
29152
29153 · Make sure we don't call umount more than once (Nick Craig-Wood)
29154
29155 · Don't call host.Umount if a signal has been received (Nick
29156 Craig-Wood)
29157
29158 · More user friendly mounting as network drive on windows (albertony)
29159
29160 · Cleanup OS specific option handling and documentation (albertony)
29161
29162 · Detect if uid or gid are set in same option string: -o
29163 uid=123,gid=456 (albertony)
29164
29165 · Don't attempt to unmount if fs has been destroyed already (Nick
29166 Craig-Wood)
29167
29168 · VFS
29169
29170 · Fix virtual entries causing deleted files to still appear (Nick
29171 Craig-Wood)
29172
29173 · Fix "file already exists" error for stale cache files (Nick
29174 Craig-Wood)
29175
29176 · Fix file leaks with --vfs-cache-mode full and --buffer-size 0 (Nick
29177 Craig-Wood)
29178
29179 · Fix invalid cache path on windows when using :backend: as remote
29180 (albertony)
29181
29182 · Local
29183
29184 · Continue listing files/folders when a circular symlink is detected
29185 (Manish Gupta)
29186
29187 · New flag --local-zero-size-links to fix sync on some virtual
29188 filesystems (Riccardo Iaconelli)
29189
29190 · Azure Blob
29191
29192 · Add support for service principals (James Lim)
29193
29194 · Utilize streaming capabilities (Denis Neuling)
29195
29196 · Update SDK to v0.13.0 and fix API breakage (Nick Craig-Wood, Mitsuo
29197 Heijo)
29198
29199 · Fix setting of mime types (Nick Craig-Wood)
29200
29201 · Fix crash when listing outside a SAS URL's root (Nick Craig-Wood)
29202
29203 · Delete archive tier blobs before update if --azureblob-ar‐
29204 chive-tier-delete (Nick Craig-Wood)
29205
29206 · Add support for managed identities (Brad Ackerman)
29207
29208 · Fix crash on startup (Nick Craig-Wood)
29209
29210 · Add examples for access tier (Bob Pusateri)
29211
29212 · Fix memory usage by upgrading the SDK and implementing a Transfer‐
29213 Manager (Nick Craig-Wood)
29214
29215 · Require go1.14+ to compile due to SDK changes (Nick Craig-Wood)
29216
29217 · B2
29218
29219 · Make NewObject use less expensive API calls (Nick Craig-Wood)
29220
29221 · Fixed possible crash when accessing Backblaze b2 remote (lluuaapp)
29222
29223 · Box
29224
29225 · Fix NewObject for files that differ in case (Nick Craig-Wood)
29226
29227 · Fix finding directories in a case insentive way (Nick Craig-Wood)
29228
29229 · Chunker
29230
29231 · Skip long local hashing, hash in-transit (fixes) (Ivan Andreev)
29232
29233 · Set Features.ReadMimeType=false as Object.MimeType not supported
29234 (Nick Craig-Wood)
29235
29236 · Fix case-insensitive NewObject, test metadata detection (Ivan An‐
29237 dreev)
29238
29239 · Drive
29240
29241 · Implement "rclone backend copyid" command for copying files by ID
29242 (Nick Craig-Wood)
29243
29244 · Added flag --drive-stop-on-download-limit to stop transfers when
29245 the download limit is exceeded (Anagh Kumar Baranwal)
29246
29247 · Implement CleanUp workaround for team drives (buengese)
29248
29249 · Allow shortcut resolution and creation to be retried (Nick
29250 Craig-Wood)
29251
29252 · Log that emptying the trash can take some time (Nick Craig-Wood)
29253
29254 · Add xdg office icons to xdg desktop files (Pau Rodriguez-Estivill)
29255
29256 · Dropbox
29257
29258 · Add support for viewing shared files and folders (buengese)
29259
29260 · Implement IDer (buengese)
29261
29262 · Set Features.ReadMimeType=false as Object.MimeType not supported
29263 (Nick Craig-Wood)
29264
29265 · Tidy repeated error message (Nick Craig-Wood)
29266
29267 · Make malformed_path errors from too long files not retriable (Nick
29268 Craig-Wood)
29269
29270 · Test file name length before upload to fix upload loop (Nick
29271 Craig-Wood)
29272
29273 · Enable short lived access tokens (Nick Craig-Wood)
29274
29275 · Fichier
29276
29277 · Set Features.ReadMimeType=true as Object.MimeType is supported
29278 (Nick Craig-Wood)
29279
29280 · FTP
29281
29282 · Add --ftp-disable-msld option to ignore MLSD for really old servers
29283 (Nick Craig-Wood)
29284
29285 · Make --tpslimit apply (Nick Craig-Wood)
29286
29287 · Google Cloud Storage
29288
29289 · Storage class object header support (Laurens Janssen)
29290
29291 · Fix anonymous client to use rclone's HTTP client (Nick Craig-Wood)
29292
29293 · Fix Entry doesn't belong in directory "" (same as directory) - ig‐
29294 noring (Nick Craig-Wood)
29295
29296 · Googlephotos
29297
29298 · New flag --gphotos-include-archived (Nicolas Rueff)
29299
29300 · Jottacloud
29301
29302 · Don't erroniously report support for writing mime types (buengese)
29303
29304 · Add support for Telia Cloud (#4930) (Patrik Nordlén)
29305
29306 · Mailru
29307
29308 · Fix uploads after recent changes on server (Ivan Andreev)
29309
29310 · Fix range requests after June 2020 changes on server (Ivan Andreev)
29311
29312 · Fix invalid timestamp on corrupted files (fixes) (Ivan Andreev)
29313
29314 · Remove deprecated protocol quirks (Ivan Andreev)
29315
29316 · Accept special folders eg camera-upload (Ivan Andreev)
29317
29318 · Avoid prehashing of large local files (Ivan Andreev)
29319
29320 · Memory
29321
29322 · Fix setting of mime types (Nick Craig-Wood)
29323
29324 · Onedrive
29325
29326 · Add support for china region operated by 21vianet and other region‐
29327 al suppliers (#4963) (NyaMisty)
29328
29329 · Warn on gateway timeout errors (Nick Craig-Wood)
29330
29331 · Fall back to normal copy if server-side copy unavailable (#4903)
29332 (Alex Chen)
29333
29334 · Fix server-side copy completely disabled on OneDrive for Business
29335 (Cnly)
29336
29337 · (business only) workaround to replace existing file on server-side
29338 copy (#4904) (Alex Chen)
29339
29340 · Enhance link creation with expiry, scope, type and password (Nick
29341 Craig-Wood)
29342
29343 · Remove % and # from the set of encoded characters (#4909) (Alex
29344 Chen)
29345
29346 · Support addressing site by server-relative URL (#4761) (kice)
29347
29348 · Opendrive
29349
29350 · Fix finding directories in a case insensitive way (Nick Craig-Wood)
29351
29352 · Pcloud
29353
29354 · Fix setting of mime types (Nick Craig-Wood)
29355
29356 · Premiumizeme
29357
29358 · Fix finding directories in a case insensitive way (Nick Craig-Wood)
29359
29360 · Qingstor
29361
29362 · Fix error propagation in CleanUp (Nick Craig-Wood)
29363
29364 · Fix rclone cleanup (Nick Craig-Wood)
29365
29366 · S3
29367
29368 · Added --s3-disable-http2 to disable http/2 (Anagh Kumar Baranwal)
29369
29370 · Complete SSE-C implementation (Nick Craig-Wood)
29371
29372 · Fix hashes on small files with AWS:KMS and SSE-C (Nick Craig-Wood)
29373
29374 · Add MD5 metadata to objects uploaded with SSE-AWS/SSE-C (Nick
29375 Craig-Wood)
29376
29377 · Update docs with a Reducing Costs section (Nick Craig-Wood)
29378
29379 · Added error handling for error code 429 indicating too many re‐
29380 quests (Anagh Kumar Baranwal)
29381
29382 · Add requester pays option (kelv)
29383
29384 · Fix copy multipart with v2 auth failing with 'SignatureDoesNot‐
29385 Match' (Louis Koo)
29386
29387 · Add --s3-no-head parameter to minimise transactions on upload (Nick
29388 Craig-Wood)
29389
29390 · SFTP
29391
29392 · Allow cert based auth via optional pubkey (Stephen Harris)
29393
29394 · Allow user to optionally check server hosts key to add security
29395 (Stephen Harris)
29396
29397 · Defer asking for user passwords until the SSH connection succeeds
29398 (Stephen Harris)
29399
29400 · Remember entered password in AskPass mode (Stephen Harris)
29401
29402 · Implement Shutdown method (Nick Craig-Wood)
29403
29404 · Implement keyboard interactive authentication (Nick Craig-Wood)
29405
29406 · Make --tpslimit apply (Nick Craig-Wood)
29407
29408 · Implement --sftp-use-fstat (Nick Craig-Wood)
29409
29410 · Sugarsync
29411
29412 · Fix NewObject for files that differ in case (Nick Craig-Wood)
29413
29414 · Fix finding directories in a case insentive way (Nick Craig-Wood)
29415
29416 · Swift
29417
29418 · Fix deletion of parts of Static Large Object (SLO) (Nguyễn Hữu
29419 Luân)
29420
29421 · Ensure partially uploaded large files are uploaded unless
29422 --swift-leave-parts-on-error (Nguyễn Hữu Luân)
29423
29424 · Tardigrade
29425
29426 · Upgrade to uplink v1.4.1 (Caleb Case)
29427
29428 · WebDAV
29429
29430 · Updated docs to show streaming to nextcloud is working (Durval
29431 Menezes)
29432
29433 · Yandex
29434
29435 · Set Features.WriteMimeType=false as Yandex ignores mime types (Nick
29436 Craig-Wood)
29437
29438 v1.53.4 - 2021-01-20
29439 See commits (https://github.com/rclone/rclone/com‐
29440 pare/v1.53.3...v1.53.4)
29441
29442 · Bug Fixes
29443
29444 · accounting: Fix data race in Transferred() (Maciej Zimnoch)
29445
29446 · build
29447
29448 · Stop tagged releases making a current beta (Nick Craig-Wood)
29449
29450 · Upgrade docker buildx action (Matteo Pietro Dazzi)
29451
29452 · Add -buildmode to cross-compile.go (Nick Craig-Wood)
29453
29454 · Fix docker build by upgrading ilteoood/docker_buildx (Nick
29455 Craig-Wood)
29456
29457 · Revert GitHub actions brew fix since this is now fixed (Nick
29458 Craig-Wood)
29459
29460 · Fix brew install --cask syntax for macOS build (Nick Craig-Wood)
29461
29462 · Update nfpm syntax to fix build of .deb/.rpm packages (Nick
29463 Craig-Wood)
29464
29465 · Fix for Windows build errors (Ivan Andreev)
29466
29467 · fs: Parseduration: fixed tests to use UTC time (Ankur Gupta)
29468
29469 · fshttp: Prevent overlap of HTTP headers in logs (Nathan Collins)
29470
29471 · rc
29472
29473 · Fix core/command giving 500 internal error (Nick Craig-Wood)
29474
29475 · Add Copy method to rc.Params (Nick Craig-Wood)
29476
29477 · Fix 500 error when marshalling errors from core/command (Nick
29478 Craig-Wood)
29479
29480 · plugins: Create plugins files only if webui is enabled. (nega‐
29481 tive0)
29482
29483 · serve http: Fix serving files of unknown length (Nick Craig-Wood)
29484
29485 · serve sftp: Fix authentication on one connection blocking others
29486 (Nick Craig-Wood)
29487
29488 · Mount
29489
29490 · Add optional brew tag to throw an error when using mount in the bi‐
29491 naries installed via Homebrew (Anagh Kumar Baranwal)
29492
29493 · Add "." and ".." to directories to match cmount and expectations
29494 (Nick Craig-Wood)
29495
29496 · VFS
29497
29498 · Make cache dir absolute before using it to fix path too long errors
29499 (Nick Craig-Wood)
29500
29501 · Chunker
29502
29503 · Improve detection of incompatible metadata (Ivan Andreev)
29504
29505 · Google Cloud Storage
29506
29507 · Fix server side copy of large objects (Nick Craig-Wood)
29508
29509 · Jottacloud
29510
29511 · Fix token renewer to fix long uploads (Nick Craig-Wood)
29512
29513 · Fix token refresh failed: is not a regular file error (Nick
29514 Craig-Wood)
29515
29516 · Pcloud
29517
29518 · Only use SHA1 hashes in EU region (Nick Craig-Wood)
29519
29520 · Sharefile
29521
29522 · Undo Fix backend due to API swapping integers for strings (Nick
29523 Craig-Wood)
29524
29525 · WebDAV
29526
29527 · Fix Open Range requests to fix 4shared mount (Nick Craig-Wood)
29528
29529 · Add "Depth: 0" to GET requests to fix bitrix (Nick Craig-Wood)
29530
29531 v1.53.3 - 2020-11-19
29532 See commits (https://github.com/rclone/rclone/com‐
29533 pare/v1.53.2...v1.53.3)
29534
29535 · Bug Fixes
29536
29537 · random: Fix incorrect use of math/rand instead of crypto/rand
29538 CVE-2020-28924 (Nick Craig-Wood)
29539
29540 · Passwords you have generated with rclone config may be insecure
29541
29542 · See issue #4783 (https://github.com/rclone/rclone/issues/4783)
29543 for more details and a checking tool
29544
29545 · random: Seed math/rand in one place with crypto strong seed (Nick
29546 Craig-Wood)
29547
29548 · VFS
29549
29550 · Fix vfs/refresh calls with fs= parameter (Nick Craig-Wood)
29551
29552 · Sharefile
29553
29554 · Fix backend due to API swapping integers for strings (Nick
29555 Craig-Wood)
29556
29557 v1.53.2 - 2020-10-26
29558 See commits (https://github.com/rclone/rclone/com‐
29559 pare/v1.53.1...v1.53.2)
29560
29561 · Bug Fixes
29562
29563 · acounting
29564
29565 · Fix incorrect speed and transferTime in core/stats (Nick
29566 Craig-Wood)
29567
29568 · Stabilize display order of transfers on Windows (Nick Craig-Wood)
29569
29570 · operations
29571
29572 · Fix use of --suffix without --backup-dir (Nick Craig-Wood)
29573
29574 · Fix spurious "--checksum is in use but the source and destination
29575 have no hashes in common" (Nick Craig-Wood)
29576
29577 · build
29578
29579 · Work around GitHub actions brew problem (Nick Craig-Wood)
29580
29581 · Stop using set-env and set-path in the GitHub actions (Nick
29582 Craig-Wood)
29583
29584 · Mount
29585
29586 · mount2: Fix the swapped UID / GID values (Russell Cattelan)
29587
29588 · VFS
29589
29590 · Detect and recover from a file being removed externally from the
29591 cache (Nick Craig-Wood)
29592
29593 · Fix a deadlock vulnerability in downloaders.Close (Leo Luan)
29594
29595 · Fix a race condition in retryFailedResets (Leo Luan)
29596
29597 · Fix missed concurrency control between some item operations and re‐
29598 set (Leo Luan)
29599
29600 · Add exponential backoff during ENOSPC retries (Leo Luan)
29601
29602 · Add a missed update of used cache space (Leo Luan)
29603
29604 · Fix --no-modtime to not attempt to set modtimes (as documented)
29605 (Nick Craig-Wood)
29606
29607 · Local
29608
29609 · Fix sizes and syncing with --links option on Windows (Nick
29610 Craig-Wood)
29611
29612 · Chunker
29613
29614 · Disable ListR to fix missing files on GDrive (workaround) (Ivan An‐
29615 dreev)
29616
29617 · Fix upload over crypt (Ivan Andreev)
29618
29619 · Fichier
29620
29621 · Increase maximum file size from 100GB to 300GB (gyutw)
29622
29623 · Jottacloud
29624
29625 · Remove clientSecret from config when upgrading to token based au‐
29626 thentication (buengese)
29627
29628 · Avoid double url escaping of device/mountpoint (albertony)
29629
29630 · Remove DirMove workaround as it's not required anymore - also
29631 (buengese)
29632
29633 · Mailru
29634
29635 · Fix uploads after recent changes on server (Ivan Andreev)
29636
29637 · Fix range requests after june changes on server (Ivan Andreev)
29638
29639 · Fix invalid timestamp on corrupted files (fixes) (Ivan Andreev)
29640
29641 · Onedrive
29642
29643 · Fix disk usage for sharepoint (Nick Craig-Wood)
29644
29645 · S3
29646
29647 · Add missing regions for AWS (Anagh Kumar Baranwal)
29648
29649 · Seafile
29650
29651 · Fix accessing libraries > 2GB on 32 bit systems (Muffin King)
29652
29653 · SFTP
29654
29655 · Always convert the checksum to lower case (buengese)
29656
29657 · Union
29658
29659 · Create root directories if none exist (Nick Craig-Wood)
29660
29661 v1.53.1 - 2020-09-13
29662 See commits (https://github.com/rclone/rclone/com‐
29663 pare/v1.53.0...v1.53.1)
29664
29665 · Bug Fixes
29666
29667 · accounting: Remove new line from end of --stats-one-line display
29668 (Nick Craig-Wood)
29669
29670 · check
29671
29672 · Add back missing --download flag (Nick Craig-Wood)
29673
29674 · Fix docs (Nick Craig-Wood)
29675
29676 · docs
29677
29678 · Note --log-file does append (Nick Craig-Wood)
29679
29680 · Add full stops for consistency in rclone --help (edwardxml)
29681
29682 · Add Tencent COS to s3 provider list (wjielai)
29683
29684 · Updated mount command to reflect that it requires Go 1.13 or new‐
29685 er (Evan Harris)
29686
29687 · jottacloud: Mention that uploads from local disk will not need to
29688 cache files to disk for md5 calculation (albertony)
29689
29690 · Fix formatting of rc docs page (Nick Craig-Wood)
29691
29692 · build
29693
29694 · Include vendor tar ball in release and fix startdev (Nick
29695 Craig-Wood)
29696
29697 · Fix "Illegal instruction" error for ARMv6 builds (Nick
29698 Craig-Wood)
29699
29700 · Fix architecture name in ARMv7 build (Nick Craig-Wood)
29701
29702 · VFS
29703
29704 · Fix spurious error "vfs cache: failed to _ensure cache EOF" (Nick
29705 Craig-Wood)
29706
29707 · Log an ERROR if we fail to set the file to be sparse (Nick
29708 Craig-Wood)
29709
29710 · Local
29711
29712 · Log an ERROR if we fail to set the file to be sparse (Nick
29713 Craig-Wood)
29714
29715 · Drive
29716
29717 · Re-adds special oauth help text (Tim Gallant)
29718
29719 · Opendrive
29720
29721 · Do not retry 400 errors (Evan Harris)
29722
29723 v1.53.0 - 2020-09-02
29724 See commits (https://github.com/rclone/rclone/com‐
29725 pare/v1.52.0...v1.53.0)
29726
29727 · New Features
29728
29729 · The VFS layer (https://rclone.org/commands/rclone_mount/#vfs-virtu‐
29730 al-file-system) was heavily reworked for this release - see below
29731 for more details
29732
29733 · Interactive mode -i/--interactive (https://rclone.org/docs/#inter‐
29734 active) for destructive operations (fishbullet)
29735
29736 · Add --bwlimit-file (https://rclone.org/docs/#bwlimit-file-band‐
29737 width-spec) flag to limit speeds of individual file transfers (Nick
29738 Craig-Wood)
29739
29740 · Transfers are sorted by start time in the stats and progress output
29741 (Max Sum)
29742
29743 · Make sure backends expand ~ and environment vars in file names they
29744 use (Nick Craig-Wood)
29745
29746 · Add --refresh-times (https://rclone.org/docs/#refresh-times) flag
29747 to set modtimes on hashless backends (Nick Craig-Wood)
29748
29749 · build
29750
29751 · Remove vendor directory in favour of Go modules (Nick Craig-Wood)
29752
29753 · Build with go1.15.x by default (Nick Craig-Wood)
29754
29755 · Drop macOS 386 build as it is no longer supported by go1.15 (Nick
29756 Craig-Wood)
29757
29758 · Add ARMv7 to the supported builds (Nick Craig-Wood)
29759
29760 · Enable rclone cmount on macOS (Nick Craig-Wood)
29761
29762 · Make rclone build with gccgo (Nick Craig-Wood)
29763
29764 · Make rclone build with wasm (Nick Craig-Wood)
29765
29766 · Change beta numbering to be semver compatible (Nick Craig-Wood)
29767
29768 · Add file properties and icon to Windows executable (albertony)
29769
29770 · Add experimental interface for integrating rclone into browsers
29771 (Nick Craig-Wood)
29772
29773 · lib: Add file name compression (Klaus Post)
29774
29775 · rc
29776
29777 · Allow installation and use of plugins and test plugins with
29778 rclone-webui (Chaitanya Bankanhal)
29779
29780 · Add reverse proxy pluginsHandler for serving plugins (Chaitanya
29781 Bankanhal)
29782
29783 · Add mount/listmounts option for listing current mounts (Chaitanya
29784 Bankanhal)
29785
29786 · Add operations/uploadfile to upload a file through rc using en‐
29787 coding multipart/form-data (Chaitanya Bankanhal)
29788
29789 · Add core/command to execute rclone terminal commands. (Chaitanya
29790 Bankanhal)
29791
29792 · rclone check
29793
29794 · Add reporting of filenames for same/missing/changed (Nick
29795 Craig-Wood)
29796
29797 · Make check command obey --dry-run/-i/--interactive (Nick
29798 Craig-Wood)
29799
29800 · Make check do --checkers files concurrently (Nick Craig-Wood)
29801
29802 · Retry downloads if they fail when using the --download flag (Nick
29803 Craig-Wood)
29804
29805 · Make it show stats by default (Nick Craig-Wood)
29806
29807 · rclone obscure: Allow obscure command to accept password on STDIN
29808 (David Ibarra)
29809
29810 · rclone config
29811
29812 · Set RCLONE_CONFIG_DIR for use in config files and subprocesses
29813 (Nick Craig-Wood)
29814
29815 · Reject remote names starting with a dash. (jtagcat)
29816
29817 · rclone cryptcheck: Add reporting of filenames for same/miss‐
29818 ing/changed (Nick Craig-Wood)
29819
29820 · rclone dedupe: Make it obey the --size-only flag for duplicate de‐
29821 tection (Nick Craig-Wood)
29822
29823 · rclone link: Add --expire and --unlink flags (Roman Kredentser)
29824
29825 · rclone mkdir: Warn when using mkdir on remotes which can't have
29826 empty directories (Nick Craig-Wood)
29827
29828 · rclone rc: Allow JSON parameters to simplify command line usage
29829 (Nick Craig-Wood)
29830
29831 · rclone serve ftp
29832
29833 · Don't compile on < go1.13 after dependency update (Nick
29834 Craig-Wood)
29835
29836 · Add error message if auth proxy fails (Nick Craig-Wood)
29837
29838 · Use refactored goftp.io/server library for binary shrink (Nick
29839 Craig-Wood)
29840
29841 · rclone serve restic: Expose interfaces so that rclone can be used
29842 as a library from within restic (Jack)
29843
29844 · rclone sync: Add --track-renames-strategy leaf (Nick Craig-Wood)
29845
29846 · rclone touch: Add ability to set nanosecond resolution times (Nick
29847 Craig-Wood)
29848
29849 · rclone tree: Remove -i shorthand for --noindent as it conflicts
29850 with -i/--interactive (Nick Craig-Wood)
29851
29852 · Bug Fixes
29853
29854 · accounting
29855
29856 · Fix documentation for speed/speedAvg (Nick Craig-Wood)
29857
29858 · Fix elapsed time not show actual time since beginning (Chaitanya
29859 Bankanhal)
29860
29861 · Fix deadlock in stats printing (Nick Craig-Wood)
29862
29863 · build
29864
29865 · Fix file handle leak in GitHub release tool (Garrett Squire)
29866
29867 · rclone check: Fix successful retries with --download counting er‐
29868 rors (Nick Craig-Wood)
29869
29870 · rclone dedupe: Fix logging to be easier to understand (Nick
29871 Craig-Wood)
29872
29873 · Mount
29874
29875 · Warn macOS users that mount implementation is changing (Nick
29876 Craig-Wood)
29877
29878 · to test the new implementation use rclone cmount instead of
29879 rclone mount
29880
29881 · this is because the library rclone uses has dropped macOS support
29882
29883 · rc interface
29884
29885 · Add call for unmount all (Chaitanya Bankanhal)
29886
29887 · Make mount/mount remote control take vfsOpt option (Nick
29888 Craig-Wood)
29889
29890 · Add mountOpt to mount/mount (Nick Craig-Wood)
29891
29892 · Add VFS and Mount options to mount/listmounts (Nick Craig-Wood)
29893
29894 · Catch panics in cgofuse initialization and turn into error messages
29895 (Nick Craig-Wood)
29896
29897 · Always supply stat information in Readdir (Nick Craig-Wood)
29898
29899 · Add support for reading unknown length files using direct IO (Win‐
29900 dows) (Nick Craig-Wood)
29901
29902 · Fix On Windows don't add -o uid/gid=-1 if user supplies -o uid/gid.
29903 (Nick Craig-Wood)
29904
29905 · Fix macOS losing directory contents in cmount (Nick Craig-Wood)
29906
29907 · Fix volume name broken in recent refactor (Nick Craig-Wood)
29908
29909 · VFS
29910
29911 · Implement partial reads for --vfs-cache-mode full (Nick Craig-Wood)
29912
29913 · Add --vfs-writeback option to delay writes back to cloud storage
29914 (Nick Craig-Wood)
29915
29916 · Add --vfs-read-ahead parameter for use with --vfs-cache-mode full
29917 (Nick Craig-Wood)
29918
29919 · Restart pending uploads on restart of the cache (Nick Craig-Wood)
29920
29921 · Support synchronous cache space recovery upon ENOSPC (Leo Luan)
29922
29923 · Allow ReadAt and WriteAt to run concurrently with themselves (Nick
29924 Craig-Wood)
29925
29926 · Change modtime of file before upload to current (Rob Calistri)
29927
29928 · Recommend --vfs-cache-modes writes on backends which can't stream
29929 (Nick Craig-Wood)
29930
29931 · Add an optional fs parameter to vfs rc methods (Nick Craig-Wood)
29932
29933 · Fix errors when using > 260 char files in the cache in Windows
29934 (Nick Craig-Wood)
29935
29936 · Fix renaming of items while they are being uploaded (Nick
29937 Craig-Wood)
29938
29939 · Fix very high load caused by slow directory listings (Nick
29940 Craig-Wood)
29941
29942 · Fix renamed files not being uploaded with --vfs-cache-mode minimal
29943 (Nick Craig-Wood)
29944
29945 · Fix directory locking caused by slow directory listings (Nick
29946 Craig-Wood)
29947
29948 · Fix saving from chrome without --vfs-cache-mode writes (Nick
29949 Craig-Wood)
29950
29951 · Local
29952
29953 · Add --local-no-updated to provide a consistent view of changing ob‐
29954 jects (Nick Craig-Wood)
29955
29956 · Add --local-no-set-modtime option to prevent modtime changes (tyhu‐
29957 ber1)
29958
29959 · Fix race conditions updating and reading Object metadata (Nick
29960 Craig-Wood)
29961
29962 · Cache
29963
29964 · Make any created backends be cached to fix rc problems (Nick
29965 Craig-Wood)
29966
29967 · Fix dedupe on caches wrapping drives (Nick Craig-Wood)
29968
29969 · Crypt
29970
29971 · Add --crypt-server-side-across-configs flag (Nick Craig-Wood)
29972
29973 · Make any created backends be cached to fix rc problems (Nick
29974 Craig-Wood)
29975
29976 · Alias
29977
29978 · Make any created backends be cached to fix rc problems (Nick
29979 Craig-Wood)
29980
29981 · Azure Blob
29982
29983 · Don't compile on < go1.13 after dependency update (Nick Craig-Wood)
29984
29985 · B2
29986
29987 · Implement server-side copy for files > 5GB (Nick Craig-Wood)
29988
29989 · Cancel in progress multipart uploads and copies on rclone exit
29990 (Nick Craig-Wood)
29991
29992 · Note that b2's encoding now allows but rclone's hasn't changed
29993 (Nick Craig-Wood)
29994
29995 · Fix transfers when using download_url (Nick Craig-Wood)
29996
29997 · Box
29998
29999 · Implement rclone cleanup (buengese)
30000
30001 · Cancel in progress multipart uploads and copies on rclone exit
30002 (Nick Craig-Wood)
30003
30004 · Allow authentication with access token (David)
30005
30006 · Chunker
30007
30008 · Make any created backends be cached to fix rc problems (Nick
30009 Craig-Wood)
30010
30011 · Drive
30012
30013 · Add rclone backend drives to list shared drives (teamdrives) (Nick
30014 Craig-Wood)
30015
30016 · Implement rclone backend untrash (Nick Craig-Wood)
30017
30018 · Work around drive bug which didn't set modtime of copied docs (Nick
30019 Craig-Wood)
30020
30021 · Added --drive-starred-only to only show starred files (Jay McEn‐
30022 tire)
30023
30024 · Deprecate --drive-alternate-export as it is no longer needed (the‐
30025 mylogin)
30026
30027 · Fix duplication of Google docs on server-side copy (Nick
30028 Craig-Wood)
30029
30030 · Fix "panic: send on closed channel" when recycling dir entries
30031 (Nick Craig-Wood)
30032
30033 · Dropbox
30034
30035 · Add copyright detector info in limitations section in the docs
30036 (Alex Guerrero)
30037
30038 · Fix rclone link by removing expires parameter (Nick Craig-Wood)
30039
30040 · Fichier
30041
30042 · Detect Flood detected: IP Locked error and sleep for 30s (Nick
30043 Craig-Wood)
30044
30045 · FTP
30046
30047 · Add explicit TLS support (Heiko Bornholdt)
30048
30049 · Add support for --dump bodies and --dump auth for debugging (Nick
30050 Craig-Wood)
30051
30052 · Fix interoperation with pure-ftpd (Nick Craig-Wood)
30053
30054 · Google Cloud Storage
30055
30056 · Add support for anonymous access (Kai Lüke)
30057
30058 · Jottacloud
30059
30060 · Bring back legacy authentication for use with whitelabel versions
30061 (buengese)
30062
30063 · Switch to new api root - also implement a very ugly workaround for
30064 the DirMove failures (buengese)
30065
30066 · Onedrive
30067
30068 · Rework cancel of multipart uploads on rclone exit (Nick Craig-Wood)
30069
30070 · Implement rclone cleanup (Nick Craig-Wood)
30071
30072 · Add --onedrive-no-versions flag to remove old versions (Nick
30073 Craig-Wood)
30074
30075 · Pcloud
30076
30077 · Implement rclone link for public link creation (buengese)
30078
30079 · Qingstor
30080
30081 · Cancel in progress multipart uploads on rclone exit (Nick
30082 Craig-Wood)
30083
30084 · S3
30085
30086 · Preserve metadata when doing multipart copy (Nick Craig-Wood)
30087
30088 · Cancel in progress multipart uploads and copies on rclone exit
30089 (Nick Craig-Wood)
30090
30091 · Add rclone link for public link sharing (Roman Kredentser)
30092
30093 · Add rclone backend restore command to restore objects from GLACIER
30094 (Nick Craig-Wood)
30095
30096 · Add rclone cleanup and rclone backend cleanup to clean unfinished
30097 multipart uploads (Nick Craig-Wood)
30098
30099 · Add rclone backend list-multipart-uploads to list unfinished multi‐
30100 part uploads (Nick Craig-Wood)
30101
30102 · Add --s3-max-upload-parts support (Kamil Trzciński)
30103
30104 · Add --s3-no-check-bucket for minimising rclone transactions and
30105 perms (Nick Craig-Wood)
30106
30107 · Add --s3-profile and --s3-shared-credentials-file options (Nick
30108 Craig-Wood)
30109
30110 · Use regional s3 us-east-1 endpoint (David)
30111
30112 · Add Scaleway provider (Vincent Feltz)
30113
30114 · Update IBM COS endpoints (Egor Margineanu)
30115
30116 · Reduce the default --s3-copy-cutoff to < 5GB for Backblaze S3 com‐
30117 patibility (Nick Craig-Wood)
30118
30119 · Fix detection of bucket existing (Nick Craig-Wood)
30120
30121 · SFTP
30122
30123 · Use the absolute path instead of the relative path for listing for
30124 improved compatibility (Nick Craig-Wood)
30125
30126 · Add --sftp-subsystem and --sftp-server-command options (aus)
30127
30128 · Swift
30129
30130 · Fix dangling large objects breaking the listing (Nick Craig-Wood)
30131
30132 · Fix purge not deleting directory markers (Nick Craig-Wood)
30133
30134 · Fix update multipart object removing all of its own parts (Nick
30135 Craig-Wood)
30136
30137 · Fix missing hash from object returned from upload (Nick Craig-Wood)
30138
30139 · Tardigrade
30140
30141 · Upgrade to uplink v1.2.0 (Kaloyan Raev)
30142
30143 · Union
30144
30145 · Fix writing with the all policy (Nick Craig-Wood)
30146
30147 · WebDAV
30148
30149 · Fix directory creation with 4shared (Nick Craig-Wood)
30150
30151 v1.52.3 - 2020-08-07
30152 See commits (https://github.com/rclone/rclone/com‐
30153 pare/v1.52.2...v1.52.3)
30154
30155 · Bug Fixes
30156
30157 · docs
30158
30159 · Disable smart typography (e.g. en-dash) in MANUAL.* and man page
30160 (Nick Craig-Wood)
30161
30162 · Update install.md to reflect minimum Go version (Evan Harris)
30163
30164 · Update install from source instructions (Nick Craig-Wood)
30165
30166 · make_manual: Support SOURCE_DATE_EPOCH (Morten Linderud)
30167
30168 · log: Fix --use-json-log going to stderr not --log-file on Windows
30169 (Nick Craig-Wood)
30170
30171 · serve dlna: Fix file list on Samsung Series 6+ TVs (Matteo Pietro
30172 Dazzi)
30173
30174 · sync: Fix deadlock with --track-renames-strategy modtime (Nick
30175 Craig-Wood)
30176
30177 · Cache
30178
30179 · Fix moveto/copyto remote:file remote:file2 (Nick Craig-Wood)
30180
30181 · Drive
30182
30183 · Stop using root_folder_id as a cache (Nick Craig-Wood)
30184
30185 · Make dangling shortcuts appear in listings (Nick Craig-Wood)
30186
30187 · Drop "Disabling ListR" messages down to debug (Nick Craig-Wood)
30188
30189 · Workaround and policy for Google Drive API (Dmitry Ustalov)
30190
30191 · FTP
30192
30193 · Add note to docs about home vs root directory selection (Nick
30194 Craig-Wood)
30195
30196 · Onedrive
30197
30198 · Fix reverting to Copy when Move would have worked (Nick Craig-Wood)
30199
30200 · Avoid comma rendered in URL in onedrive.md (Kevin)
30201
30202 · Pcloud
30203
30204 · Fix oauth on European region "eapi.pcloud.com" (Nick Craig-Wood)
30205
30206 · S3
30207
30208 · Fix bucket Region auto detection when Region unset in config (Nick
30209 Craig-Wood)
30210
30211 v1.52.2 - 2020-06-24
30212 See commits (https://github.com/rclone/rclone/com‐
30213 pare/v1.52.1...v1.52.2)
30214
30215 · Bug Fixes
30216
30217 · build
30218
30219 · Fix docker release build action (Nick Craig-Wood)
30220
30221 · Fix custom timezone in Docker image (NoLooseEnds)
30222
30223 · check: Fix misleading message which printed errors instead of dif‐
30224 ferences (Nick Craig-Wood)
30225
30226 · errors: Add WSAECONNREFUSED and more to the list of retriable Win‐
30227 dows errors (Nick Craig-Wood)
30228
30229 · rcd: Fix incorrect prometheus metrics (Gary Kim)
30230
30231 · serve restic: Fix flags so they use environment variables (Nick
30232 Craig-Wood)
30233
30234 · serve webdav: Fix flags so they use environment variables (Nick
30235 Craig-Wood)
30236
30237 · sync: Fix --track-renames-strategy modtime (Nick Craig-Wood)
30238
30239 · Drive
30240
30241 · Fix not being able to delete a directory with a trashed shortcut
30242 (Nick Craig-Wood)
30243
30244 · Fix creating a directory inside a shortcut (Nick Craig-Wood)
30245
30246 · Fix --drive-impersonate with cached root_folder_id (Nick
30247 Craig-Wood)
30248
30249 · SFTP
30250
30251 · Fix SSH key PEM loading (Zac Rubin)
30252
30253 · Swift
30254
30255 · Speed up deletes by not retrying segment container deletes (Nick
30256 Craig-Wood)
30257
30258 · Tardigrade
30259
30260 · Upgrade to uplink v1.1.1 (Caleb Case)
30261
30262 · WebDAV
30263
30264 · Fix free/used display for rclone about/df for certain backends
30265 (Nick Craig-Wood)
30266
30267 v1.52.1 - 2020-06-10
30268 See commits (https://github.com/rclone/rclone/com‐
30269 pare/v1.52.0...v1.52.1)
30270
30271 · Bug Fixes
30272
30273 · lib/file: Fix SetSparse on Windows 7 which fixes downloads of files
30274 > 250MB (Nick Craig-Wood)
30275
30276 · build
30277
30278 · Update go.mod to go1.14 to enable -mod=vendor build (Nick
30279 Craig-Wood)
30280
30281 · Remove quicktest from Dockerfile (Nick Craig-Wood)
30282
30283 · Build Docker images with GitHub actions (Matteo Pietro Dazzi)
30284
30285 · Update Docker build workflows (Nick Craig-Wood)
30286
30287 · Set user_allow_other in /etc/fuse.conf in the Docker image (Nick
30288 Craig-Wood)
30289
30290 · Fix xgo build after go1.14 go.mod update (Nick Craig-Wood)
30291
30292 · docs
30293
30294 · Add link to source and modified time to footer of every page
30295 (Nick Craig-Wood)
30296
30297 · Remove manually set dates and use git dates instead (Nick
30298 Craig-Wood)
30299
30300 · Minor tense, punctuation, brevity and positivity changes for the
30301 home page (edwardxml)
30302
30303 · Remove leading slash in page reference in footer when present
30304 (Nick Craig-Wood)
30305
30306 · Note commands which need obscured input in the docs (Nick
30307 Craig-Wood)
30308
30309 · obscure: Write more help as we are referencing it elsewhere (Nick
30310 Craig-Wood)
30311
30312 · VFS
30313
30314 · Fix OS vs Unix path confusion - fixes ChangeNotify on Windows (Nick
30315 Craig-Wood)
30316
30317 · Drive
30318
30319 · Fix missing items when listing using --fast-list / ListR (Nick
30320 Craig-Wood)
30321
30322 · Putio
30323
30324 · Fix panic on Object.Open (Cenk Alti)
30325
30326 · S3
30327
30328 · Fix upload of single files into buckets without create permission
30329 (Nick Craig-Wood)
30330
30331 · Fix --header-upload (Nick Craig-Wood)
30332
30333 · Tardigrade
30334
30335 · Fix listing bug by upgrading to v1.0.7
30336
30337 · Set UserAgent to rclone (Caleb Case)
30338
30339 v1.52.0 - 2020-05-27
30340 Special thanks to Martin Michlmayr for proof reading and correcting all
30341 the docs and Edward Barker for helping re-write the front page.
30342
30343 See commits (https://github.com/rclone/rclone/com‐
30344 pare/v1.51.0...v1.52.0)
30345
30346 · New backends
30347
30348 · Tardigrade (https://rclone.org/tardigrade/) backend for use with
30349 storj.io (Caleb Case)
30350
30351 · Union (https://rclone.org/union/) re-write to have multiple
30352 writable remotes (Max Sum)
30353
30354 · Seafile (/seafile) for Seafile server (Fred @creativeprojects)
30355
30356 · New commands
30357
30358 · backend: command for backend specific commands (see backends) (Nick
30359 Craig-Wood)
30360
30361 · cachestats: Deprecate in favour of rclone backend stats cache:
30362 (Nick Craig-Wood)
30363
30364 · dbhashsum: Deprecate in favour of rclone hashsum DropboxHash (Nick
30365 Craig-Wood)
30366
30367 · New Features
30368
30369 · Add --header-download and --header-upload flags for setting HTTP
30370 headers when uploading/downloading (Tim Gallant)
30371
30372 · Add --header flag to add HTTP headers to every HTTP transaction
30373 (Nick Craig-Wood)
30374
30375 · Add --check-first to do all checking before starting transfers
30376 (Nick Craig-Wood)
30377
30378 · Add --track-renames-strategy for configurable matching criteria for
30379 --track-renames (Bernd Schoolmann)
30380
30381 · Add --cutoff-mode hard,soft,cautious (Shing Kit Chan & Franklyn
30382 Tackitt)
30383
30384 · Filter flags (e.g. --files-from -) can read from stdin (fishbul‐
30385 let)
30386
30387 · Add --error-on-no-transfer option (Jon Fautley)
30388
30389 · Implement --order-by xxx,mixed for copying some small and some big
30390 files (Nick Craig-Wood)
30391
30392 · Allow --max-backlog to be negative meaning as large as possible
30393 (Nick Craig-Wood)
30394
30395 · Added --no-unicode-normalization flag to allow Unicode filenames to
30396 remain unique (Ben Zenker)
30397
30398 · Allow --min-age/--max-age to take a date as well as a duration
30399 (Nick Craig-Wood)
30400
30401 · Add rename statistics for file and directory renames (Nick
30402 Craig-Wood)
30403
30404 · Add statistics output to JSON log (reddi)
30405
30406 · Make stats be printed on non-zero exit code (Nick Craig-Wood)
30407
30408 · When running --password-command allow use of stdin (Sébastien
30409 Gross)
30410
30411 · Stop empty strings being a valid remote path (Nick Craig-Wood)
30412
30413 · accounting: support WriterTo for less memory copying (Nick
30414 Craig-Wood)
30415
30416 · build
30417
30418 · Update to use go1.14 for the build (Nick Craig-Wood)
30419
30420 · Add -trimpath to release build for reproduceable builds (Nick
30421 Craig-Wood)
30422
30423 · Remove GOOS and GOARCH from Dockerfile (Brandon Philips)
30424
30425 · config
30426
30427 · Fsync the config file after writing to save more reliably (Nick
30428 Craig-Wood)
30429
30430 · Add --obscure and --no-obscure flags to config create/update
30431 (Nick Craig-Wood)
30432
30433 · Make config show take remote: as well as remote (Nick Craig-Wood)
30434
30435 · copyurl: Add --no-clobber flag (Denis)
30436
30437 · delete: Added --rmdirs flag to delete directories as well (Kush)
30438
30439 · filter: Added --files-from-raw flag (Ankur Gupta)
30440
30441 · genautocomplete: Add support for fish shell (Matan Rosenberg)
30442
30443 · log: Add support for syslog LOCAL facilities (Patryk Jakuszew)
30444
30445 · lsjson: Add --hash-type parameter and use it in lsf to speed up
30446 hashing (Nick Craig-Wood)
30447
30448 · rc
30449
30450 · Add -o/--opt and -a/--arg for more structured input (Nick
30451 Craig-Wood)
30452
30453 · Implement backend/command for running backend specific commands
30454 remotely (Nick Craig-Wood)
30455
30456 · Add mount/mount command for starting rclone mount via the API
30457 (Chaitanya)
30458
30459 · rcd: Add Prometheus metrics support (Gary Kim)
30460
30461 · serve http
30462
30463 · Added a --template flag for user defined markup (calistri)
30464
30465 · Add Last-Modified headers to files and directories (Nick
30466 Craig-Wood)
30467
30468 · serve sftp: Add support for multiple host keys by repeating --key
30469 flag (Maxime Suret)
30470
30471 · touch: Add --localtime flag to make --timestamp localtime not UTC
30472 (Nick Craig-Wood)
30473
30474 · Bug Fixes
30475
30476 · accounting
30477
30478 · Restore "Max number of stats groups reached" log line (Michał
30479 Matczuk)
30480
30481 · Correct exitcode on Transfer Limit Exceeded flag. (Anuar
30482 Serdaliyev)
30483
30484 · Reset bytes read during copy retry (Ankur Gupta)
30485
30486 · Fix race clearing stats (Nick Craig-Wood)
30487
30488 · copy: Only create empty directories when they don't exist on the
30489 remote (Ishuah Kariuki)
30490
30491 · dedupe: Stop dedupe deleting files with identical IDs (Nick
30492 Craig-Wood)
30493
30494 · oauth
30495
30496 · Use custom http client so that --no-check-certificate is honored
30497 by oauth token fetch (Mark Spieth)
30498
30499 · Replace deprecated oauth2.NoContext (Lars Lehtonen)
30500
30501 · operations
30502
30503 · Fix setting the timestamp on Windows for multithread copy (Nick
30504 Craig-Wood)
30505
30506 · Make rcat obey --ignore-checksum (Nick Craig-Wood)
30507
30508 · Make --max-transfer more accurate (Nick Craig-Wood)
30509
30510 · rc
30511
30512 · Fix dropped error (Lars Lehtonen)
30513
30514 · Fix misplaced http server config (Xiaoxing Ye)
30515
30516 · Disable duplicate log (ElonH)
30517
30518 · serve dlna
30519
30520 · Cds: don't specify childCount at all when unknown (Dan Walters)
30521
30522 · Cds: use modification time as date in dlna metadata (Dan Walters)
30523
30524 · serve restic: Fix tests after restic project removed vendoring
30525 (Nick Craig-Wood)
30526
30527 · sync
30528
30529 · Fix incorrect "nothing to transfer" message using --delete-before
30530 (Nick Craig-Wood)
30531
30532 · Only create empty directories when they don't exist on the remote
30533 (Ishuah Kariuki)
30534
30535 · Mount
30536
30537 · Add --async-read flag to disable asynchronous reads (Nick
30538 Craig-Wood)
30539
30540 · Ignore --allow-root flag with a warning as it has been removed up‐
30541 stream (Nick Craig-Wood)
30542
30543 · Warn if --allow-non-empty used on Windows and clarify docs (Nick
30544 Craig-Wood)
30545
30546 · Constrain to go1.13 or above otherwise bazil.org/fuse fails to com‐
30547 pile (Nick Craig-Wood)
30548
30549 · Fix fail because of too long volume name (evileye)
30550
30551 · Report 1PB free for unknown disk sizes (Nick Craig-Wood)
30552
30553 · Map more rclone errors into file systems errors (Nick Craig-Wood)
30554
30555 · Fix disappearing cwd problem (Nick Craig-Wood)
30556
30557 · Use ReaddirPlus on Windows to improve directory listing performance
30558 (Nick Craig-Wood)
30559
30560 · Send a hint as to whether the filesystem is case insensitive or not
30561 (Nick Craig-Wood)
30562
30563 · Add rc command mount/types (Nick Craig-Wood)
30564
30565 · Change maximum leaf name length to 1024 bytes (Nick Craig-Wood)
30566
30567 · VFS
30568
30569 · Add --vfs-read-wait and --vfs-write-wait flags to control time
30570 waiting for a sequential read/write (Nick Craig-Wood)
30571
30572 · Change default --vfs-read-wait to 20ms (it was 5ms and not config‐
30573 urable) (Nick Craig-Wood)
30574
30575 · Make df output more consistent on a rclone mount. (Yves G)
30576
30577 · Report 1PB free for unknown disk sizes (Nick Craig-Wood)
30578
30579 · Fix race condition caused by unlocked reading of Dir.path (Nick
30580 Craig-Wood)
30581
30582 · Make File lock and Dir lock not overlap to avoid deadlock (Nick
30583 Craig-Wood)
30584
30585 · Implement lock ordering between File and Dir to eliminate deadlocks
30586 (Nick Craig-Wood)
30587
30588 · Factor the vfs cache into its own package (Nick Craig-Wood)
30589
30590 · Pin the Fs in use in the Fs cache (Nick Craig-Wood)
30591
30592 · Add SetSys() methods to Node to allow caching stuff on a node (Nick
30593 Craig-Wood)
30594
30595 · Ignore file not found errors from Hash in Read.Release (Nick
30596 Craig-Wood)
30597
30598 · Fix hang in read wait code (Nick Craig-Wood)
30599
30600 · Local
30601
30602 · Speed up multi thread downloads by using sparse files on Windows
30603 (Nick Craig-Wood)
30604
30605 · Implement --local-no-sparse flag for disabling sparse files (Nick
30606 Craig-Wood)
30607
30608 · Implement rclone backend noop for testing purposes (Nick
30609 Craig-Wood)
30610
30611 · Fix "file not found" errors on post transfer Hash calculation (Nick
30612 Craig-Wood)
30613
30614 · Cache
30615
30616 · Implement rclone backend stats command (Nick Craig-Wood)
30617
30618 · Fix Server Side Copy with Temp Upload (Brandon McNama)
30619
30620 · Remove Unused Functions (Lars Lehtonen)
30621
30622 · Disable race tests until bbolt is fixed (Nick Craig-Wood)
30623
30624 · Move methods used for testing into test file (greatroar)
30625
30626 · Add Pin and Unpin and canonicalised lookup (Nick Craig-Wood)
30627
30628 · Use proper import path go.etcd.io/bbolt (Robert-André Mauchin)
30629
30630 · Crypt
30631
30632 · Calculate hashes for uploads from local disk (Nick Craig-Wood)
30633
30634 · This allows crypted Jottacloud uploads without using local disk
30635
30636 · This means crypted s3/b2 uploads will now have hashes
30637
30638 · Added rclone backend decode/encode commands to replicate function‐
30639 ality of cryptdecode (Anagh Kumar Baranwal)
30640
30641 · Get rid of the unused Cipher interface as it obfuscated the code
30642 (Nick Craig-Wood)
30643
30644 · Azure Blob
30645
30646 · Implement streaming of unknown sized files so rcat is now supported
30647 (Nick Craig-Wood)
30648
30649 · Implement memory pooling to control memory use (Nick Craig-Wood)
30650
30651 · Add --azureblob-disable-checksum flag (Nick Craig-Wood)
30652
30653 · Retry InvalidBlobOrBlock error as it may indicate block concurrency
30654 problems (Nick Craig-Wood)
30655
30656 · Remove unused Object.parseTimeString() (Lars Lehtonen)
30657
30658 · Fix permission error on SAS URL limited to container (Nick
30659 Craig-Wood)
30660
30661 · B2
30662
30663 · Add support for --header-upload and --header-download (Tim Gallant)
30664
30665 · Ignore directory markers at the root also (Nick Craig-Wood)
30666
30667 · Force the case of the SHA1 to lowercase (Nick Craig-Wood)
30668
30669 · Remove unused largeUpload.clearUploadURL() (Lars Lehtonen)
30670
30671 · Box
30672
30673 · Add support for --header-upload and --header-download (Tim Gallant)
30674
30675 · Implement About to read size used (Nick Craig-Wood)
30676
30677 · Add token renew function for jwt auth (David Bramwell)
30678
30679 · Added support for interchangeable root folder for Box backend
30680 (Sunil Patra)
30681
30682 · Remove unnecessary iat from jws claims (David)
30683
30684 · Drive
30685
30686 · Follow shortcuts by default, skip with --drive-skip-shortcuts (Nick
30687 Craig-Wood)
30688
30689 · Implement rclone backend shortcut command for creating shortcuts
30690 (Nick Craig-Wood)
30691
30692 · Added rclone backend command to change service_account_file and
30693 chunk_size (Anagh Kumar Baranwal)
30694
30695 · Fix missing files when using --fast-list and --drive-shared-with-me
30696 (Nick Craig-Wood)
30697
30698 · Fix duplicate items when using --drive-shared-with-me (Nick
30699 Craig-Wood)
30700
30701 · Extend --drive-stop-on-upload-limit to respond to teamDriveFileLim‐
30702 itExceeded. (harry)
30703
30704 · Don't delete files with multiple parents to avoid data loss (Nick
30705 Craig-Wood)
30706
30707 · Server side copy docs use default description if empty (Nick
30708 Craig-Wood)
30709
30710 · Dropbox
30711
30712 · Make error insufficient space to be fatal (harry)
30713
30714 · Add info about required redirect url (Elan Ruusamäe)
30715
30716 · Fichier
30717
30718 · Add support for --header-upload and --header-download (Tim Gallant)
30719
30720 · Implement custom pacer to deal with the new rate limiting
30721 (buengese)
30722
30723 · FTP
30724
30725 · Fix lockup when using concurrency limit on failed connections (Nick
30726 Craig-Wood)
30727
30728 · Fix lockup on failed upload when using concurrency limit (Nick
30729 Craig-Wood)
30730
30731 · Fix lockup on Close failures when using concurrency limit (Nick
30732 Craig-Wood)
30733
30734 · Work around pureftp sending spurious 150 messages (Nick Craig-Wood)
30735
30736 · Google Cloud Storage
30737
30738 · Add support for --header-upload and --header-download (Nick
30739 Craig-Wood)
30740
30741 · Add ARCHIVE storage class to help (Adam Stroud)
30742
30743 · Ignore directory markers at the root (Nick Craig-Wood)
30744
30745 · Googlephotos
30746
30747 · Make the start year configurable (Daven)
30748
30749 · Add support for --header-upload and --header-download (Tim Gallant)
30750
30751 · Create feature/favorites directory (Brandon Philips)
30752
30753 · Fix "concurrent map write" error (Nick Craig-Wood)
30754
30755 · Don't put an image in error message (Nick Craig-Wood)
30756
30757 · HTTP
30758
30759 · Improved directory listing with new template from Caddy project
30760 (calisro)
30761
30762 · Jottacloud
30763
30764 · Implement --jottacloud-trashed-only (buengese)
30765
30766 · Add support for --header-upload and --header-download (Tim Gallant)
30767
30768 · Use RawURLEncoding when decoding base64 encoded login token
30769 (buengese)
30770
30771 · Implement cleanup (buengese)
30772
30773 · Update docs regarding cleanup, removed remains from old auth, and
30774 added warning about special mountpoints. (albertony)
30775
30776 · Mailru
30777
30778 · Describe 2FA requirements (valery1707)
30779
30780 · Onedrive
30781
30782 · Implement --onedrive-server-side-across-configs (Nick Craig-Wood)
30783
30784 · Add support for --header-upload and --header-download (Tim Gallant)
30785
30786 · Fix occasional 416 errors on multipart uploads (Nick Craig-Wood)
30787
30788 · Added maximum chunk size limit warning in the docs (Harry)
30789
30790 · Fix missing drive on config (Nick Craig-Wood)
30791
30792 · Make error quotaLimitReached to be fatal (harry)
30793
30794 · Opendrive
30795
30796 · Add support for --header-upload and --header-download (Tim Gallant)
30797
30798 · Pcloud
30799
30800 · Added support for interchangeable root folder for pCloud backend
30801 (Sunil Patra)
30802
30803 · Add support for --header-upload and --header-download (Tim Gallant)
30804
30805 · Fix initial config "Auth state doesn't match" message (Nick
30806 Craig-Wood)
30807
30808 · Premiumizeme
30809
30810 · Add support for --header-upload and --header-download (Tim Gallant)
30811
30812 · Prune unused functions (Lars Lehtonen)
30813
30814 · Putio
30815
30816 · Add support for --header-upload and --header-download (Nick
30817 Craig-Wood)
30818
30819 · Make downloading files use the rclone http Client (Nick Craig-Wood)
30820
30821 · Fix parsing of remotes with leading and trailing / (Nick
30822 Craig-Wood)
30823
30824 · Qingstor
30825
30826 · Make rclone cleanup remove pending multipart uploads older than 24h
30827 (Nick Craig-Wood)
30828
30829 · Try harder to cancel failed multipart uploads (Nick Craig-Wood)
30830
30831 · Prune multiUploader.list() (Lars Lehtonen)
30832
30833 · Lint fix (Lars Lehtonen)
30834
30835 · S3
30836
30837 · Add support for --header-upload and --header-download (Tim Gallant)
30838
30839 · Use memory pool for buffer allocations (Maciej Zimnoch)
30840
30841 · Add SSE-C support for AWS, Ceph, and MinIO (Jack Anderson)
30842
30843 · Fail fast multipart upload (Michał Matczuk)
30844
30845 · Report errors on bucket creation (mkdir) correctly (Nick
30846 Craig-Wood)
30847
30848 · Specify that Minio supports URL encoding in listings (Nick
30849 Craig-Wood)
30850
30851 · Added 500 as retryErrorCode (Michał Matczuk)
30852
30853 · Use --low-level-retries as the number of SDK retries (Aleksandar
30854 Janković)
30855
30856 · Fix multipart abort context (Aleksandar Jankovic)
30857
30858 · Replace deprecated session.New() with session.NewSession() (Lars
30859 Lehtonen)
30860
30861 · Use the provided size parameter when allocating a new memory pool
30862 (Joachim Brandon LeBlanc)
30863
30864 · Use rclone's low level retries instead of AWS SDK to fix listing
30865 retries (Nick Craig-Wood)
30866
30867 · Ignore directory markers at the root also (Nick Craig-Wood)
30868
30869 · Use single memory pool (Michał Matczuk)
30870
30871 · Do not resize buf on put to memBuf (Michał Matczuk)
30872
30873 · Improve docs for --s3-disable-checksum (Nick Craig-Wood)
30874
30875 · Don't leak memory or tokens in edge cases for multipart upload
30876 (Nick Craig-Wood)
30877
30878 · Seafile
30879
30880 · Implement 2FA (Fred)
30881
30882 · SFTP
30883
30884 · Added --sftp-pem-key to support inline key files (calisro)
30885
30886 · Fix post transfer copies failing with 0 size when using set_mod‐
30887 time=false (Nick Craig-Wood)
30888
30889 · Sharefile
30890
30891 · Add support for --header-upload and --header-download (Tim Gallant)
30892
30893 · Sugarsync
30894
30895 · Add support for --header-upload and --header-download (Tim Gallant)
30896
30897 · Swift
30898
30899 · Add support for --header-upload and --header-download (Nick
30900 Craig-Wood)
30901
30902 · Fix cosmetic issue in error message (Martin Michlmayr)
30903
30904 · Union
30905
30906 · Implement multiple writable remotes (Max Sum)
30907
30908 · Fix server-side copy (Max Sum)
30909
30910 · Implement ListR (Max Sum)
30911
30912 · Enable ListR when upstreams contain local (Max Sum)
30913
30914 · WebDAV
30915
30916 · Add support for --header-upload and --header-download (Tim Gallant)
30917
30918 · Fix X-OC-Mtime header for Transip compatibility (Nick Craig-Wood)
30919
30920 · Report full and consistent usage with about (Yves G)
30921
30922 · Yandex
30923
30924 · Add support for --header-upload and --header-download (Tim Gallant)
30925
30926 v1.51.0 - 2020-02-01
30927 · New backends
30928
30929 · Memory (https://rclone.org/memory/) (Nick Craig-Wood)
30930
30931 · Sugarsync (https://rclone.org/sugarsync/) (Nick Craig-Wood)
30932
30933 · New Features
30934
30935 · Adjust all backends to have --backend-encoding parameter (Nick
30936 Craig-Wood)
30937
30938 · this enables the encoding for special characters to be adjusted
30939 or disabled
30940
30941 · Add --max-duration flag to control the maximum duration of a trans‐
30942 fer session (boosh)
30943
30944 · Add --expect-continue-timeout flag, default 1s (Nick Craig-Wood)
30945
30946 · Add --no-check-dest flag for copying without testing the destina‐
30947 tion (Nick Craig-Wood)
30948
30949 · Implement --order-by flag to order transfers (Nick Craig-Wood)
30950
30951 · accounting
30952
30953 · Don't show entries in both transferring and checking (Nick
30954 Craig-Wood)
30955
30956 · Add option to delete stats (Aleksandar Jankovic)
30957
30958 · build
30959
30960 · Compress the test builds with gzip (Nick Craig-Wood)
30961
30962 · Implement a framework for starting test servers during tests
30963 (Nick Craig-Wood)
30964
30965 · cmd: Always print elapsed time to tenth place seconds in progress
30966 (Gary Kim)
30967
30968 · config
30969
30970 · Add --password-command to allow dynamic config password (Damon
30971 Permezel)
30972
30973 · Give config questions default values (Nick Craig-Wood)
30974
30975 · Check a remote exists when creating a new one (Nick Craig-Wood)
30976
30977 · copyurl: Add --stdout flag to write to stdout (Nick Craig-Wood)
30978
30979 · dedupe: Implement keep smallest too (Nick Craig-Wood)
30980
30981 · hashsum: Add flag --base64 flag (landall)
30982
30983 · lsf: Speed up on s3/swift/etc by not reading mimetype by default
30984 (Nick Craig-Wood)
30985
30986 · lsjson: Add --no-mimetype flag (Nick Craig-Wood)
30987
30988 · rc: Add methods to turn on blocking and mutex profiling (Nick
30989 Craig-Wood)
30990
30991 · rcd
30992
30993 · Adding group parameter to stats (Chaitanya)
30994
30995 · Move webgui apart; option to disable browser (Xiaoxing Ye)
30996
30997 · serve sftp: Add support for public key with auth proxy (Paul Tins‐
30998 ley)
30999
31000 · stats: Show deletes in stats and hide zero stats (anuar45)
31001
31002 · Bug Fixes
31003
31004 · accounting
31005
31006 · Fix error counter counting multiple times (Ankur Gupta)
31007
31008 · Fix error count shown as checks (Cnly)
31009
31010 · Clear finished transfer in stats-reset (Maciej Zimnoch)
31011
31012 · Added StatsInfo locking in statsGroups sum function (Michał
31013 Matczuk)
31014
31015 · asyncreader: Fix EOF error (buengese)
31016
31017 · check: Fix --one-way recursing more directories than it needs to
31018 (Nick Craig-Wood)
31019
31020 · chunkedreader: Disable hash calculation for first segment (Nick
31021 Craig-Wood)
31022
31023 · config
31024
31025 · Do not open browser on headless on drive/gcs/google photos (Xi‐
31026 aoxing Ye)
31027
31028 · SetValueAndSave ignore error if config section does not exist yet
31029 (buengese)
31030
31031 · cmd: Fix completion with an encrypted config (Danil Semelenov)
31032
31033 · dbhashsum: Stop it returning UNSUPPORTED on dropbox (Nick
31034 Craig-Wood)
31035
31036 · dedupe: Add missing modes to help string (Nick Craig-Wood)
31037
31038 · operations
31039
31040 · Fix dedupe continuing on errors like insufficientFilePersimmon
31041 (SezalAgrawal)
31042
31043 · Clear accounting before low level retry (Maciej Zimnoch)
31044
31045 · Write debug message when hashes could not be checked (Ole Schütt)
31046
31047 · Move interface assertion to tests to remove pflag dependency
31048 (Nick Craig-Wood)
31049
31050 · Make NewOverrideObjectInfo public and factor uses (Nick
31051 Craig-Wood)
31052
31053 · proxy: Replace use of bcrypt with sha256 (Nick Craig-Wood)
31054
31055 · vendor
31056
31057 · Update bazil.org/fuse to fix FreeBSD 12.1 (Nick Craig-Wood)
31058
31059 · Update github.com/t3rm1n4l/go-mega to fix mega "illegal base64
31060 data at input byte 22" (Nick Craig-Wood)
31061
31062 · Update termbox-go to fix ncdu command on FreeBSD (Kuang-che Wu)
31063
31064 · Update t3rm1n4l/go-mega - fixes mega: couldn't login: crypto/aes:
31065 invalid key size 0 (Nick Craig-Wood)
31066
31067 · Mount
31068
31069 · Enable async reads for a 20% speedup (Nick Craig-Wood)
31070
31071 · Replace use of WriteAt with Write for cache mode >= writes and
31072 O_APPEND (Brett Dutro)
31073
31074 · Make sure we call unmount when exiting (Nick Craig-Wood)
31075
31076 · Don't build on go1.10 as bazil/fuse no longer supports it (Nick
31077 Craig-Wood)
31078
31079 · When setting dates discard out of range dates (Nick Craig-Wood)
31080
31081 · VFS
31082
31083 · Add a newly created file straight into the directory (Nick
31084 Craig-Wood)
31085
31086 · Only calculate one hash for reads for a speedup (Nick Craig-Wood)
31087
31088 · Make ReadAt for non cached files work better with non-sequential
31089 reads (Nick Craig-Wood)
31090
31091 · Fix edge cases when reading ModTime from file (Nick Craig-Wood)
31092
31093 · Make sure existing files opened for write show correct size (Nick
31094 Craig-Wood)
31095
31096 · Don't cache the path in RW file objects to fix renaming (Nick
31097 Craig-Wood)
31098
31099 · Fix rename of open files when using the VFS cache (Nick Craig-Wood)
31100
31101 · When renaming files in the cache, rename the cache item in memory
31102 too (Nick Craig-Wood)
31103
31104 · Fix open file renaming on drive when using --vfs-cache-mode writes
31105 (Nick Craig-Wood)
31106
31107 · Fix incorrect modtime for mv into mount with --vfs-cache-modes
31108 writes (Nick Craig-Wood)
31109
31110 · On rename, rename in cache too if the file exists (Anagh Kumar
31111 Baranwal)
31112
31113 · Local
31114
31115 · Make source file being updated errors be NoLowLevelRetry errors
31116 (Nick Craig-Wood)
31117
31118 · Fix update of hidden files on Windows (Nick Craig-Wood)
31119
31120 · Cache
31121
31122 · Follow move of upstream library github.com/coreos/bbolt
31123 github.com/etcd-io/bbolt (Nick Craig-Wood)
31124
31125 · Fix fatal error: concurrent map writes (Nick Craig-Wood)
31126
31127 · Crypt
31128
31129 · Reorder the filename encryption options (Thomas Eales)
31130
31131 · Correctly handle trailing dot (buengese)
31132
31133 · Chunker
31134
31135 · Reduce length of temporary suffix (Ivan Andreev)
31136
31137 · Drive
31138
31139 · Add --drive-stop-on-upload-limit flag to stop syncs when upload
31140 limit reached (Nick Craig-Wood)
31141
31142 · Add --drive-use-shared-date to use date file was shared instead of
31143 modified date (Garry McNulty)
31144
31145 · Make sure invalid auth for teamdrives always reports an error (Nick
31146 Craig-Wood)
31147
31148 · Fix --fast-list when using appDataFolder (Nick Craig-Wood)
31149
31150 · Use multipart resumable uploads for streaming and uploads in mount
31151 (Nick Craig-Wood)
31152
31153 · Log an ERROR if an incomplete search is returned (Nick Craig-Wood)
31154
31155 · Hide dangerous config from the configurator (Nick Craig-Wood)
31156
31157 · Dropbox
31158
31159 · Treat insufficient_space errors as non retriable errors (Nick
31160 Craig-Wood)
31161
31162 · Jottacloud
31163
31164 · Use new auth method used by official client (buengese)
31165
31166 · Add URL to generate Login Token to config wizard (Nick Craig-Wood)
31167
31168 · Add support whitelabel versions (buengese)
31169
31170 · Koofr
31171
31172 · Use rclone HTTP client. (jaKa)
31173
31174 · Onedrive
31175
31176 · Add Sites.Read.All permission (Benjamin Richter)
31177
31178 · Add support "Retry-After" header (Motonori IWAMURO)
31179
31180 · Opendrive
31181
31182 · Implement --opendrive-chunk-size (Nick Craig-Wood)
31183
31184 · S3
31185
31186 · Re-implement multipart upload to fix memory issues (Nick
31187 Craig-Wood)
31188
31189 · Add --s3-copy-cutoff for size to switch to multipart copy (Nick
31190 Craig-Wood)
31191
31192 · Add new region Asia Pacific (Hong Kong) (Outvi V)
31193
31194 · Reduce memory usage streaming files by reducing max stream upload
31195 size (Nick Craig-Wood)
31196
31197 · Add --s3-list-chunk option for bucket listing (Thomas Kriechbaumer)
31198
31199 · Force path style bucket access to off for AWS deprecation (Nick
31200 Craig-Wood)
31201
31202 · Use AWS web identity role provider if available (Tennix)
31203
31204 · Add StackPath Object Storage Support (Dave Koston)
31205
31206 · Fix ExpiryWindow value (Aleksandar Jankovic)
31207
31208 · Fix DisableChecksum condition (Aleksandar Janković)
31209
31210 · Fix URL decoding of NextMarker (Nick Craig-Wood)
31211
31212 · SFTP
31213
31214 · Add --sftp-skip-links to skip symlinks and non regular files (Nick
31215 Craig-Wood)
31216
31217 · Retry Creation of Connection (Sebastian Brandt)
31218
31219 · Fix "failed to parse private key file: ssh: not an encrypted key"
31220 error (Nick Craig-Wood)
31221
31222 · Open files for update write only to fix AWS SFTP interop (Nick
31223 Craig-Wood)
31224
31225 · Swift
31226
31227 · Reserve segments of dynamic large object when delete objects in
31228 container what was enabled versioning. (Nguyễn Hữu Luân)
31229
31230 · Fix parsing of X-Object-Manifest (Nick Craig-Wood)
31231
31232 · Update OVH API endpoint (unbelauscht)
31233
31234 · WebDAV
31235
31236 · Make nextcloud only upload SHA1 checksums (Nick Craig-Wood)
31237
31238 · Fix case of "Bearer" in Authorization: header to agree with RFC
31239 (Nick Craig-Wood)
31240
31241 · Add Referer header to fix problems with WAFs (Nick Craig-Wood)
31242
31243 v1.50.2 - 2019-11-19
31244 · Bug Fixes
31245
31246 · accounting: Fix memory leak on retries operations (Nick Craig-Wood)
31247
31248 · Drive
31249
31250 · Fix listing of the root directory with drive.files scope (Nick
31251 Craig-Wood)
31252
31253 · Fix --drive-root-folder-id with team/shared drives (Nick
31254 Craig-Wood)
31255
31256 v1.50.1 - 2019-11-02
31257 · Bug Fixes
31258
31259 · hash: Fix accidentally changed hash names for DropboxHash and
31260 CRC-32 (Nick Craig-Wood)
31261
31262 · fshttp: Fix error reporting on tpslimit token bucket errors (Nick
31263 Craig-Wood)
31264
31265 · fshttp: Don't print token bucket errors on context cancelled (Nick
31266 Craig-Wood)
31267
31268 · Local
31269
31270 · Fix listings of . on Windows (Nick Craig-Wood)
31271
31272 · Onedrive
31273
31274 · Fix DirMove/Move after Onedrive change (Xiaoxing Ye)
31275
31276 v1.50.0 - 2019-10-26
31277 · New backends
31278
31279 · Citrix Sharefile (https://rclone.org/sharefile/) (Nick Craig-Wood)
31280
31281 · Chunker (https://rclone.org/chunker/) - an overlay backend to split
31282 files into smaller parts (Ivan Andreev)
31283
31284 · Mail.ru Cloud (https://rclone.org/mailru/) (Ivan Andreev)
31285
31286 · New Features
31287
31288 · encodings (Fabian Möller & Nick Craig-Wood)
31289
31290 · All backends now use file name encoding to ensure any file name
31291 can be written to any backend.
31292
31293 · See the restricted file name docs (https://rclone.org/over‐
31294 view/#restricted-filenames) for more info and the local backend
31295 docs (/local/#filenames).
31296
31297 · Some file names may look different in rclone if you are using any
31298 control characters in names or unicode FULLWIDTH symbols
31299 (https://en.wikipedia.org/wiki/Halfwidth_and_Full‐
31300 width_Forms_(Unicode_block)).
31301
31302 · build
31303
31304 · Update to use go1.13 for the build (Nick Craig-Wood)
31305
31306 · Drop support for go1.9 (Nick Craig-Wood)
31307
31308 · Build rclone with GitHub actions (Nick Craig-Wood)
31309
31310 · Convert python scripts to python3 (Nick Craig-Wood)
31311
31312 · Swap Azure/go-ansiterm for mattn/go-colorable (Nick Craig-Wood)
31313
31314 · Dockerfile fixes (Matei David)
31315
31316 · Add plugin support (https://github.com/rclone/rclone/blob/mas‐
31317 ter/CONTRIBUTING.md#writing-a-plugin) for backends and commands
31318 (Richard Patel)
31319
31320 · config
31321
31322 · Use alternating Red/Green in config to make more obvious (Nick
31323 Craig-Wood)
31324
31325 · contrib
31326
31327 · Add sample DLNA server Docker Compose manifest. (pataquets)
31328
31329 · Add sample WebDAV server Docker Compose manifest. (pataquets)
31330
31331 · copyurl
31332
31333 · Add --auto-filename flag for using file name from URL in destina‐
31334 tion path (Denis)
31335
31336 · serve dlna:
31337
31338 · Many compatibility improvements (Dan Walters)
31339
31340 · Support for external srt subtitles (Dan Walters)
31341
31342 · rc
31343
31344 · Added command core/quit (Saksham Khanna)
31345
31346 · Bug Fixes
31347
31348 · sync
31349
31350 · Make --update/-u not transfer files that haven't changed (Nick
31351 Craig-Wood)
31352
31353 · Free objects after they come out of the transfer pipe to save
31354 memory (Nick Craig-Wood)
31355
31356 · Fix --files-from without --no-traverse doing a recursive scan
31357 (Nick Craig-Wood)
31358
31359 · operations
31360
31361 · Fix accounting for server-side copies (Nick Craig-Wood)
31362
31363 · Display 'All duplicates removed' only if dedupe successful (Sezal
31364 Agrawal)
31365
31366 · Display 'Deleted X extra copies' only if dedupe successful (Sezal
31367 Agrawal)
31368
31369 · accounting
31370
31371 · Only allow up to 100 completed transfers in the accounting list
31372 to save memory (Nick Craig-Wood)
31373
31374 · Cull the old time ranges when possible to save memory (Nick
31375 Craig-Wood)
31376
31377 · Fix panic due to server-side copy fallback (Ivan Andreev)
31378
31379 · Fix memory leak noticeable for transfers of large numbers of ob‐
31380 jects (Nick Craig-Wood)
31381
31382 · Fix total duration calculation (Nick Craig-Wood)
31383
31384 · cmd
31385
31386 · Fix environment variables not setting command line flags (Nick
31387 Craig-Wood)
31388
31389 · Make autocomplete compatible with bash's posix mode for macOS
31390 (Danil Semelenov)
31391
31392 · Make --progress work in git bash on Windows (Nick Craig-Wood)
31393
31394 · Fix 'compopt: command not found' on autocomplete on macOS (Danil
31395 Semelenov)
31396
31397 · config
31398
31399 · Fix setting of non top level flags from environment variables
31400 (Nick Craig-Wood)
31401
31402 · Check config names more carefully and report errors (Nick
31403 Craig-Wood)
31404
31405 · Remove error: can't use --size-only and --ignore-size together.
31406 (Nick Craig-Wood)
31407
31408 · filter: Prevent mixing options when --files-from is in use (Michele
31409 Caci)
31410
31411 · serve sftp: Fix crash on unsupported operations (e.g. Readlink)
31412 (Nick Craig-Wood)
31413
31414 · Mount
31415
31416 · Allow files of unknown size to be read properly (Nick Craig-Wood)
31417
31418 · Skip tests on <= 2 CPUs to avoid lockup (Nick Craig-Wood)
31419
31420 · Fix panic on File.Open (Nick Craig-Wood)
31421
31422 · Fix "mount_fusefs: -o timeout=: option not supported" on FreeBSD
31423 (Nick Craig-Wood)
31424
31425 · Don't pass huge filenames (>4k) to FUSE as it can't cope (Nick
31426 Craig-Wood)
31427
31428 · VFS
31429
31430 · Add flag --vfs-case-insensitive for windows/macOS mounts (Ivan An‐
31431 dreev)
31432
31433 · Make objects of unknown size readable through the VFS (Nick
31434 Craig-Wood)
31435
31436 · Move writeback of dirty data out of close() method into its own
31437 method (FlushWrites) and remove close() call from Flush() (Brett
31438 Dutro)
31439
31440 · Stop empty dirs disappearing when renamed on bucket based remotes
31441 (Nick Craig-Wood)
31442
31443 · Stop change notify polling clearing so much of the directory cache
31444 (Nick Craig-Wood)
31445
31446 · Azure Blob
31447
31448 · Disable logging to the Windows event log (Nick Craig-Wood)
31449
31450 · B2
31451
31452 · Remove unverified: prefix on sha1 to improve interop (e.g. with
31453 CyberDuck) (Nick Craig-Wood)
31454
31455 · Box
31456
31457 · Add options to get access token via JWT auth (David)
31458
31459 · Drive
31460
31461 · Disable HTTP/2 by default to work around INTERNAL_ERROR problems
31462 (Nick Craig-Wood)
31463
31464 · Make sure that drive root ID is always canonical (Nick Craig-Wood)
31465
31466 · Fix --drive-shared-with-me from the root with lsand --fast-list
31467 (Nick Craig-Wood)
31468
31469 · Fix ChangeNotify polling for shared drives (Nick Craig-Wood)
31470
31471 · Fix change notify polling when using appDataFolder (Nick
31472 Craig-Wood)
31473
31474 · Dropbox
31475
31476 · Make disallowed filenames errors not retry (Nick Craig-Wood)
31477
31478 · Fix nil pointer exception on restricted files (Nick Craig-Wood)
31479
31480 · Fichier
31481
31482 · Fix accessing files > 2GB on 32 bit systems (Nick Craig-Wood)
31483
31484 · FTP
31485
31486 · Allow disabling EPSV mode (Jon Fautley)
31487
31488 · HTTP
31489
31490 · HEAD directory entries in parallel to speedup (Nick Craig-Wood)
31491
31492 · Add --http-no-head to stop rclone doing HEAD in listings (Nick
31493 Craig-Wood)
31494
31495 · Putio
31496
31497 · Add ability to resume uploads (Cenk Alti)
31498
31499 · S3
31500
31501 · Fix signature v2_auth headers (Anthony Rusdi)
31502
31503 · Fix encoding for control characters (Nick Craig-Wood)
31504
31505 · Only ask for URL encoded directory listings if we need them on Ceph
31506 (Nick Craig-Wood)
31507
31508 · Add option for multipart failure behaviour (Aleksandar Jankovic)
31509
31510 · Support for multipart copy (庄天翼)
31511
31512 · Fix nil pointer reference if no metadata returned for object (Nick
31513 Craig-Wood)
31514
31515 · SFTP
31516
31517 · Fix --sftp-ask-password trying to contact the ssh agent (Nick
31518 Craig-Wood)
31519
31520 · Fix hashes of files with backslashes (Nick Craig-Wood)
31521
31522 · Include more ciphers with --sftp-use-insecure-cipher (Carlos Fer‐
31523 reyra)
31524
31525 · WebDAV
31526
31527 · Parse and return Sharepoint error response (Henning Surmeier)
31528
31529 v1.49.5 - 2019-10-05
31530 · Bug Fixes
31531
31532 · Revert back to go1.12.x for the v1.49.x builds as go1.13.x was
31533 causing issues (Nick Craig-Wood)
31534
31535 · Fix rpm packages by using master builds of nfpm (Nick Craig-Wood)
31536
31537 · Fix macOS build after brew changes (Nick Craig-Wood)
31538
31539 v1.49.4 - 2019-09-29
31540 · Bug Fixes
31541
31542 · cmd/rcd: Address ZipSlip vulnerability (Richard Patel)
31543
31544 · accounting: Fix file handle leak on errors (Nick Craig-Wood)
31545
31546 · oauthutil: Fix security problem when running with two users on the
31547 same machine (Nick Craig-Wood)
31548
31549 · FTP
31550
31551 · Fix listing of an empty root returning: error dir not found (Nick
31552 Craig-Wood)
31553
31554 · S3
31555
31556 · Fix SetModTime on GLACIER/ARCHIVE objects and implement set/get
31557 tier (Nick Craig-Wood)
31558
31559 v1.49.3 - 2019-09-15
31560 · Bug Fixes
31561
31562 · accounting
31563
31564 · Fix total duration calculation (Aleksandar Jankovic)
31565
31566 · Fix "file already closed" on transfer retries (Nick Craig-Wood)
31567
31568 v1.49.2 - 2019-09-08
31569 · New Features
31570
31571 · build: Add Docker workflow support (Alfonso Montero)
31572
31573 · Bug Fixes
31574
31575 · accounting: Fix locking in Transfer to avoid deadlock with
31576 --progress (Nick Craig-Wood)
31577
31578 · docs: Fix template argument for mktemp in install.sh (Cnly)
31579
31580 · operations: Fix -u/--update with google photos / files of unknown
31581 size (Nick Craig-Wood)
31582
31583 · rc: Fix docs for config/create /update /password (Nick Craig-Wood)
31584
31585 · Google Cloud Storage
31586
31587 · Fix need for elevated permissions on SetModTime (Nick Craig-Wood)
31588
31589 v1.49.1 - 2019-08-28
31590 · Bug Fixes
31591
31592 · config: Fix generated passwords being stored as empty password
31593 (Nick Craig-Wood)
31594
31595 · rcd: Added missing parameter for web-gui info logs. (Chaitanya)
31596
31597 · Googlephotos
31598
31599 · Fix crash on error response (Nick Craig-Wood)
31600
31601 · Onedrive
31602
31603 · Fix crash on error response (Nick Craig-Wood)
31604
31605 v1.49.0 - 2019-08-26
31606 · New backends
31607
31608 · 1fichier (https://rclone.org/fichier/) (Laura Hausmann)
31609
31610 · Google Photos (https://rclone.org/googlephotos/) (Nick Craig-Wood)
31611
31612 · Putio (https://rclone.org/putio/) (Cenk Alti)
31613
31614 · premiumize.me (https://rclone.org/premiumizeme/) (Nick Craig-Wood)
31615
31616 · New Features
31617
31618 · Experimental web GUI (https://rclone.org/gui/) (Chaitanya Bankan‐
31619 hal)
31620
31621 · Implement --compare-dest & --copy-dest (yparitcher)
31622
31623 · Implement --suffix without --backup-dir for backup to current dir
31624 (yparitcher)
31625
31626 · config reconnect to re-login (re-run the oauth login) for the back‐
31627 end. (Nick Craig-Wood)
31628
31629 · config userinfo to discover which user you are logged in as. (Nick
31630 Craig-Wood)
31631
31632 · config disconnect to disconnect you (log out) from the backend.
31633 (Nick Craig-Wood)
31634
31635 · Add --use-json-log for JSON logging (justinalin)
31636
31637 · Add context propagation to rclone (Aleksandar Jankovic)
31638
31639 · Reworking internal statistics interfaces so they work with rc jobs
31640 (Aleksandar Jankovic)
31641
31642 · Add Higher units for ETA (AbelThar)
31643
31644 · Update rclone logos to new design (Andreas Chlupka)
31645
31646 · hash: Add CRC-32 support (Cenk Alti)
31647
31648 · help showbackend: Fixed advanced option category when there are no
31649 standard options (buengese)
31650
31651 · ncdu: Display/Copy to Clipboard Current Path (Gary Kim)
31652
31653 · operations:
31654
31655 · Run hashing operations in parallel (Nick Craig-Wood)
31656
31657 · Don't calculate checksums when using --ignore-checksum (Nick
31658 Craig-Wood)
31659
31660 · Check transfer hashes when using --size-only mode (Nick
31661 Craig-Wood)
31662
31663 · Disable multi thread copy for local to local copies (Nick
31664 Craig-Wood)
31665
31666 · Debug successful hashes as well as failures (Nick Craig-Wood)
31667
31668 · rc
31669
31670 · Add ability to stop async jobs (Aleksandar Jankovic)
31671
31672 · Return current settings if core/bwlimit called without parameters
31673 (Nick Craig-Wood)
31674
31675 · Rclone-WebUI integration with rclone (Chaitanya Bankanhal)
31676
31677 · Added command line parameter to control the cross origin resource
31678 sharing (CORS) in the rcd. (Security Improvement) (Chaitanya
31679 Bankanhal)
31680
31681 · Add anchor tags to the docs so links are consistent (Nick
31682 Craig-Wood)
31683
31684 · Remove _async key from input parameters after parsing so later
31685 operations won't get confused (buengese)
31686
31687 · Add call to clear stats (Aleksandar Jankovic)
31688
31689 · rcd
31690
31691 · Auto-login for web-gui (Chaitanya Bankanhal)
31692
31693 · Implement --baseurl for rcd and web-gui (Chaitanya Bankanhal)
31694
31695 · serve dlna
31696
31697 · Only select interfaces which can multicast for SSDP (Nick
31698 Craig-Wood)
31699
31700 · Add more builtin mime types to cover standard audio/video (Nick
31701 Craig-Wood)
31702
31703 · Fix missing mime types on Android causing missing videos (Nick
31704 Craig-Wood)
31705
31706 · serve ftp
31707
31708 · Refactor to bring into line with other serve commands (Nick
31709 Craig-Wood)
31710
31711 · Implement --auth-proxy (Nick Craig-Wood)
31712
31713 · serve http: Implement --baseurl (Nick Craig-Wood)
31714
31715 · serve restic: Implement --baseurl (Nick Craig-Wood)
31716
31717 · serve sftp
31718
31719 · Implement auth proxy (Nick Craig-Wood)
31720
31721 · Fix detection of whether server is authorized (Nick Craig-Wood)
31722
31723 · serve webdav
31724
31725 · Implement --baseurl (Nick Craig-Wood)
31726
31727 · Support --auth-proxy (Nick Craig-Wood)
31728
31729 · Bug Fixes
31730
31731 · Make "bad record MAC" a retriable error (Nick Craig-Wood)
31732
31733 · copyurl: Fix copying files that return HTTP errors (Nick
31734 Craig-Wood)
31735
31736 · march: Fix checking sub-directories when using --no-traverse
31737 (buengese)
31738
31739 · rc
31740
31741 · Fix unmarshalable http.AuthFn in options and put in test for mar‐
31742 shalability (Nick Craig-Wood)
31743
31744 · Move job expire flags to rc to fix initialization problem (Nick
31745 Craig-Wood)
31746
31747 · Fix --loopback with rc/list and others (Nick Craig-Wood)
31748
31749 · rcat: Fix slowdown on systems with multiple hashes (Nick
31750 Craig-Wood)
31751
31752 · rcd: Fix permissions problems on cache directory with web gui down‐
31753 load (Nick Craig-Wood)
31754
31755 · Mount
31756
31757 · Default --daemon-timout to 15 minutes on macOS and FreeBSD (Nick
31758 Craig-Wood)
31759
31760 · Update docs to show mounting from root OK for bucket based (Nick
31761 Craig-Wood)
31762
31763 · Remove nonseekable flag from write files (Nick Craig-Wood)
31764
31765 · VFS
31766
31767 · Make write without cache more efficient (Nick Craig-Wood)
31768
31769 · Fix --vfs-cache-mode minimal and writes ignoring cached files (Nick
31770 Craig-Wood)
31771
31772 · Local
31773
31774 · Add --local-case-sensitive and --local-case-insensitive (Nick
31775 Craig-Wood)
31776
31777 · Avoid polluting page cache when uploading local files to remote
31778 backends (Michał Matczuk)
31779
31780 · Don't calculate any hashes by default (Nick Craig-Wood)
31781
31782 · Fadvise run syscall on a dedicated go routine (Michał Matczuk)
31783
31784 · Azure Blob
31785
31786 · Azure Storage Emulator support (Sandeep)
31787
31788 · Updated config help details to remove connection string references
31789 (Sandeep)
31790
31791 · Make all operations work from the root (Nick Craig-Wood)
31792
31793 · B2
31794
31795 · Implement link sharing (yparitcher)
31796
31797 · Enable server-side copy to copy between buckets (Nick Craig-Wood)
31798
31799 · Make all operations work from the root (Nick Craig-Wood)
31800
31801 · Drive
31802
31803 · Fix server-side copy of big files (Nick Craig-Wood)
31804
31805 · Update API for teamdrive use (Nick Craig-Wood)
31806
31807 · Add error for purge with --drive-trashed-only (ginvine)
31808
31809 · Fichier
31810
31811 · Make FolderID int and adjust related code (buengese)
31812
31813 · Google Cloud Storage
31814
31815 · Reduce oauth scope requested as suggested by Google (Nick
31816 Craig-Wood)
31817
31818 · Make all operations work from the root (Nick Craig-Wood)
31819
31820 · HTTP
31821
31822 · Add --http-headers flag for setting arbitrary headers (Nick
31823 Craig-Wood)
31824
31825 · Jottacloud
31826
31827 · Use new api for retrieving internal username (buengese)
31828
31829 · Refactor configuration and minor cleanup (buengese)
31830
31831 · Koofr
31832
31833 · Support setting modification times on Koofr backend. (jaKa)
31834
31835 · Opendrive
31836
31837 · Refactor to use existing lib/rest facilities for uploads (Nick
31838 Craig-Wood)
31839
31840 · Qingstor
31841
31842 · Upgrade to v3 SDK and fix listing loop (Nick Craig-Wood)
31843
31844 · Make all operations work from the root (Nick Craig-Wood)
31845
31846 · S3
31847
31848 · Add INTELLIGENT_TIERING storage class (Matti Niemenmaa)
31849
31850 · Make all operations work from the root (Nick Craig-Wood)
31851
31852 · SFTP
31853
31854 · Add missing interface check and fix About (Nick Craig-Wood)
31855
31856 · Completely ignore all modtime checks if SetModTime=false (Jon Faut‐
31857 ley)
31858
31859 · Support md5/sha1 with rsync.net (Nick Craig-Wood)
31860
31861 · Save the md5/sha1 command in use to the config file for efficiency
31862 (Nick Craig-Wood)
31863
31864 · Opt-in support for diffie-hellman-group-exchange-sha256
31865 diffie-hellman-group-exchange-sha1 (Yi FU)
31866
31867 · Swift
31868
31869 · Use FixRangeOption to fix 0 length files via the VFS (Nick
31870 Craig-Wood)
31871
31872 · Fix upload when using no_chunk to return the correct size (Nick
31873 Craig-Wood)
31874
31875 · Make all operations work from the root (Nick Craig-Wood)
31876
31877 · Fix segments leak during failed large file uploads. (nguyenhuulu‐
31878 an434)
31879
31880 · WebDAV
31881
31882 · Add --webdav-bearer-token-command (Nick Craig-Wood)
31883
31884 · Refresh token when it expires with --webdav-bearer-token-command
31885 (Nick Craig-Wood)
31886
31887 · Add docs for using bearer_token_command with oidc-agent (Paul Mil‐
31888 lar)
31889
31890 v1.48.0 - 2019-06-15
31891 · New commands
31892
31893 · serve sftp: Serve an rclone remote over SFTP (Nick Craig-Wood)
31894
31895 · New Features
31896
31897 · Multi threaded downloads to local storage (Nick Craig-Wood)
31898
31899 · controlled with --multi-thread-cutoff and --multi-thread-streams
31900
31901 · Use rclone.conf from rclone executable directory to enable portable
31902 use (albertony)
31903
31904 · Allow sync of a file and a directory with the same name (forgems)
31905
31906 · this is common on bucket based remotes, e.g. s3, gcs
31907
31908 · Add --ignore-case-sync for forced case insensitivity (garry415)
31909
31910 · Implement --stats-one-line-date and --stats-one-line-date-format
31911 (Peter Berbec)
31912
31913 · Log an ERROR for all commands which exit with non-zero status (Nick
31914 Craig-Wood)
31915
31916 · Use go-homedir to read the home directory more reliably (Nick
31917 Craig-Wood)
31918
31919 · Enable creating encrypted config through external script invocation
31920 (Wojciech Smigielski)
31921
31922 · build: Drop support for go1.8 (Nick Craig-Wood)
31923
31924 · config: Make config create/update encrypt passwords where necessary
31925 (Nick Craig-Wood)
31926
31927 · copyurl: Honor --no-check-certificate (Stefan Breunig)
31928
31929 · install: Linux skip man pages if no mandb (didil)
31930
31931 · lsf: Support showing the Tier of the object (Nick Craig-Wood)
31932
31933 · lsjson
31934
31935 · Added EncryptedPath to output (calisro)
31936
31937 · Support showing the Tier of the object (Nick Craig-Wood)
31938
31939 · Add IsBucket field for bucket based remote listing of the root
31940 (Nick Craig-Wood)
31941
31942 · rc
31943
31944 · Add --loopback flag to run commands directly without a server
31945 (Nick Craig-Wood)
31946
31947 · Add operations/fsinfo: Return information about the remote (Nick
31948 Craig-Wood)
31949
31950 · Skip auth for OPTIONS request (Nick Craig-Wood)
31951
31952 · cmd/providers: Add DefaultStr, ValueStr and Type fields (Nick
31953 Craig-Wood)
31954
31955 · jobs: Make job expiry timeouts configurable (Aleksandar Jankovic)
31956
31957 · serve dlna reworked and improved (Dan Walters)
31958
31959 · serve ftp: add --ftp-public-ip flag to specify public IP (calistri)
31960
31961 · serve restic: Add support for --private-repos in serve restic (Flo‐
31962 rian Apolloner)
31963
31964 · serve webdav: Combine serve webdav and serve http (Gary Kim)
31965
31966 · size: Ignore negative sizes when calculating total (Garry McNulty)
31967
31968 · Bug Fixes
31969
31970 · Make move and copy individual files obey --backup-dir (Nick
31971 Craig-Wood)
31972
31973 · If --ignore-checksum is in effect, don't calculate checksum (Nick
31974 Craig-Wood)
31975
31976 · moveto: Fix case-insensitive same remote move (Gary Kim)
31977
31978 · rc: Fix serving bucket based objects with --rc-serve (Nick
31979 Craig-Wood)
31980
31981 · serve webdav: Fix serveDir not being updated with changes from web‐
31982 dav (Gary Kim)
31983
31984 · Mount
31985
31986 · Fix poll interval documentation (Animosity022)
31987
31988 · VFS
31989
31990 · Make WriteAt for non cached files work with non-sequential writes
31991 (Nick Craig-Wood)
31992
31993 · Local
31994
31995 · Only calculate the required hashes for big speedup (Nick
31996 Craig-Wood)
31997
31998 · Log errors when listing instead of returning an error (Nick
31999 Craig-Wood)
32000
32001 · Fix preallocate warning on Linux with ZFS (Nick Craig-Wood)
32002
32003 · Crypt
32004
32005 · Make rclone dedupe work through crypt (Nick Craig-Wood)
32006
32007 · Fix wrapping of ChangeNotify to decrypt directories properly (Nick
32008 Craig-Wood)
32009
32010 · Support PublicLink (rclone link) of underlying backend (Nick
32011 Craig-Wood)
32012
32013 · Implement Optional methods SetTier, GetTier (Nick Craig-Wood)
32014
32015 · B2
32016
32017 · Implement server-side copy (Nick Craig-Wood)
32018
32019 · Implement SetModTime (Nick Craig-Wood)
32020
32021 · Drive
32022
32023 · Fix move and copy from TeamDrive to GDrive (Fionera)
32024
32025 · Add notes that cleanup works in the background on drive (Nick
32026 Craig-Wood)
32027
32028 · Add --drive-server-side-across-configs to default back to old serv‐
32029 er-side copy semantics by default (Nick Craig-Wood)
32030
32031 · Add --drive-size-as-quota to show storage quota usage for file size
32032 (Garry McNulty)
32033
32034 · FTP
32035
32036 · Add FTP List timeout (Jeff Quinn)
32037
32038 · Add FTP over TLS support (Gary Kim)
32039
32040 · Add --ftp-no-check-certificate option for FTPS (Gary Kim)
32041
32042 · Google Cloud Storage
32043
32044 · Fix upload errors when uploading pre 1970 files (Nick Craig-Wood)
32045
32046 · Jottacloud
32047
32048 · Add support for selecting device and mountpoint. (buengese)
32049
32050 · Mega
32051
32052 · Add cleanup support (Gary Kim)
32053
32054 · Onedrive
32055
32056 · More accurately check if root is found (Cnly)
32057
32058 · S3
32059
32060 · Support S3 Accelerated endpoints with --s3-use-accelerate-endpoint
32061 (Nick Craig-Wood)
32062
32063 · Add config info for Wasabi's EU Central endpoint (Robert Marko)
32064
32065 · Make SetModTime work for GLACIER while syncing (Philip Harvey)
32066
32067 · SFTP
32068
32069 · Add About support (Gary Kim)
32070
32071 · Fix about parsing of df results so it can cope with -ve results
32072 (Nick Craig-Wood)
32073
32074 · Send custom client version and debug server version (Nick
32075 Craig-Wood)
32076
32077 · WebDAV
32078
32079 · Retry on 423 Locked errors (Nick Craig-Wood)
32080
32081 v1.47.0 - 2019-04-13
32082 · New backends
32083
32084 · Backend for Koofr cloud storage service. (jaKa)
32085
32086 · New Features
32087
32088 · Resume downloads if the reader fails in copy (Nick Craig-Wood)
32089
32090 · this means rclone will restart transfers if the source has an er‐
32091 ror
32092
32093 · this is most useful for downloads or cloud to cloud copies
32094
32095 · Use --fast-list for listing operations where it won't use more mem‐
32096 ory (Nick Craig-Wood)
32097
32098 · this should speed up the following operations on remotes which
32099 support ListR
32100
32101 · dedupe, serve restic lsf, ls, lsl, lsjson, lsd, md5sum, sha1sum,
32102 hashsum, size, delete, cat, settier
32103
32104 · use --disable ListR to get old behaviour if required
32105
32106 · Make --files-from traverse the destination unless --no-traverse is
32107 set (Nick Craig-Wood)
32108
32109 · this fixes --files-from with Google drive and excessive API use
32110 in general.
32111
32112 · Make server-side copy account bytes and obey --max-transfer (Nick
32113 Craig-Wood)
32114
32115 · Add --create-empty-src-dirs flag and default to not creating empty
32116 dirs (ishuah)
32117
32118 · Add client side TLS/SSL flags --ca-cert/--client-cert/--client-key
32119 (Nick Craig-Wood)
32120
32121 · Implement --suffix-keep-extension for use with --suffix (Nick
32122 Craig-Wood)
32123
32124 · build:
32125
32126 · Switch to semver compliant version tags to be go modules compli‐
32127 ant (Nick Craig-Wood)
32128
32129 · Update to use go1.12.x for the build (Nick Craig-Wood)
32130
32131 · serve dlna: Add connection manager service description to improve
32132 compatibility (Dan Walters)
32133
32134 · lsf: Add 'e' format to show encrypted names and 'o' for original
32135 IDs (Nick Craig-Wood)
32136
32137 · lsjson: Added --files-only and --dirs-only flags (calistri)
32138
32139 · rc: Implement operations/publiclink the equivalent of rclone link
32140 (Nick Craig-Wood)
32141
32142 · Bug Fixes
32143
32144 · accounting: Fix total ETA when --stats-unit bits is in effect (Nick
32145 Craig-Wood)
32146
32147 · Bash TAB completion
32148
32149 · Use private custom func to fix clash between rclone and kubectl
32150 (Nick Craig-Wood)
32151
32152 · Fix for remotes with underscores in their names (Six)
32153
32154 · Fix completion of remotes (Florian Gamböck)
32155
32156 · Fix autocompletion of remote paths with spaces (Danil Semelenov)
32157
32158 · serve dlna: Fix root XML service descriptor (Dan Walters)
32159
32160 · ncdu: Fix display corruption with Chinese characters (Nick
32161 Craig-Wood)
32162
32163 · Add SIGTERM to signals which run the exit handlers on unix (Nick
32164 Craig-Wood)
32165
32166 · rc: Reload filter when the options are set via the rc (Nick
32167 Craig-Wood)
32168
32169 · VFS / Mount
32170
32171 · Fix FreeBSD: Ignore Truncate if called with no readers and already
32172 the correct size (Nick Craig-Wood)
32173
32174 · Read directory and check for a file before mkdir (Nick Craig-Wood)
32175
32176 · Shorten the locking window for vfs/refresh (Nick Craig-Wood)
32177
32178 · Azure Blob
32179
32180 · Enable MD5 checksums when uploading files bigger than the "Cutoff"
32181 (Dr.Rx)
32182
32183 · Fix SAS URL support (Nick Craig-Wood)
32184
32185 · B2
32186
32187 · Allow manual configuration of backblaze downloadUrl (Vince)
32188
32189 · Ignore already_hidden error on remove (Nick Craig-Wood)
32190
32191 · Ignore malformed src_last_modified_millis (Nick Craig-Wood)
32192
32193 · Drive
32194
32195 · Add --skip-checksum-gphotos to ignore incorrect checksums on Google
32196 Photos (Nick Craig-Wood)
32197
32198 · Allow server-side move/copy between different remotes. (Fionera)
32199
32200 · Add docs on team drives and --fast-list eventual consistency (Nes‐
32201 tar47)
32202
32203 · Fix imports of text files (Nick Craig-Wood)
32204
32205 · Fix range requests on 0 length files (Nick Craig-Wood)
32206
32207 · Fix creation of duplicates with server-side copy (Nick Craig-Wood)
32208
32209 · Dropbox
32210
32211 · Retry blank errors to fix long listings (Nick Craig-Wood)
32212
32213 · FTP
32214
32215 · Add --ftp-concurrency to limit maximum number of connections (Nick
32216 Craig-Wood)
32217
32218 · Google Cloud Storage
32219
32220 · Fall back to default application credentials (marcintustin)
32221
32222 · Allow bucket policy only buckets (Nick Craig-Wood)
32223
32224 · HTTP
32225
32226 · Add --http-no-slash for websites with directories with no slashes
32227 (Nick Craig-Wood)
32228
32229 · Remove duplicates from listings (Nick Craig-Wood)
32230
32231 · Fix socket leak on 404 errors (Nick Craig-Wood)
32232
32233 · Jottacloud
32234
32235 · Fix token refresh (Sebastian Bünger)
32236
32237 · Add device registration (Oliver Heyme)
32238
32239 · Onedrive
32240
32241 · Implement graceful cancel of multipart uploads if rclone is inter‐
32242 rupted (Cnly)
32243
32244 · Always add trailing colon to path when addressing items, (Cnly)
32245
32246 · Return errors instead of panic for invalid uploads (Fabian Möller)
32247
32248 · S3
32249
32250 · Add support for "Glacier Deep Archive" storage class (Manu)
32251
32252 · Update Dreamhost endpoint (Nick Craig-Wood)
32253
32254 · Note incompatibility with CEPH Jewel (Nick Craig-Wood)
32255
32256 · SFTP
32257
32258 · Allow custom ssh client config (Alexandru Bumbacea)
32259
32260 · Swift
32261
32262 · Obey Retry-After to enable OVH restore from cold storage (Nick
32263 Craig-Wood)
32264
32265 · Work around token expiry on CEPH (Nick Craig-Wood)
32266
32267 · WebDAV
32268
32269 · Allow IsCollection property to be integer or boolean (Nick
32270 Craig-Wood)
32271
32272 · Fix race when creating directories (Nick Craig-Wood)
32273
32274 · Fix About/df when reading the available/total returns 0 (Nick
32275 Craig-Wood)
32276
32277 v1.46 - 2019-02-09
32278 · New backends
32279
32280 · Support Alibaba Cloud (Aliyun) OSS via the s3 backend (Nick
32281 Craig-Wood)
32282
32283 · New commands
32284
32285 · serve dlna: serves a remove via DLNA for the local network (ni‐
32286 colov)
32287
32288 · New Features
32289
32290 · copy, move: Restore deprecated --no-traverse flag (Nick Craig-Wood)
32291
32292 · This is useful for when transferring a small number of files into
32293 a large destination
32294
32295 · genautocomplete: Add remote path completion for bash completion
32296 (Christopher Peterson & Danil Semelenov)
32297
32298 · Buffer memory handling reworked to return memory to the OS better
32299 (Nick Craig-Wood)
32300
32301 · Buffer recycling library to replace sync.Pool
32302
32303 · Optionally use memory mapped memory for better memory shrinking
32304
32305 · Enable with --use-mmap if having memory problems - not default
32306 yet
32307
32308 · Parallelise reading of files specified by --files-from (Nick
32309 Craig-Wood)
32310
32311 · check: Add stats showing total files matched. (Dario Guzik)
32312
32313 · Allow rename/delete open files under Windows (Nick Craig-Wood)
32314
32315 · lsjson: Use exactly the correct number of decimal places in the
32316 seconds (Nick Craig-Wood)
32317
32318 · Add cookie support with cmdline switch --use-cookies for all HTTP
32319 based remotes (qip)
32320
32321 · Warn if --checksum is set but there are no hashes available (Nick
32322 Craig-Wood)
32323
32324 · Rework rate limiting (pacer) to be more accurate and allow bursting
32325 (Nick Craig-Wood)
32326
32327 · Improve error reporting for too many/few arguments in commands
32328 (Nick Craig-Wood)
32329
32330 · listremotes: Remove -l short flag as it conflicts with the new
32331 global flag (weetmuts)
32332
32333 · Make http serving with auth generate INFO messages on auth fail
32334 (Nick Craig-Wood)
32335
32336 · Bug Fixes
32337
32338 · Fix layout of stats (Nick Craig-Wood)
32339
32340 · Fix --progress crash under Windows Jenkins (Nick Craig-Wood)
32341
32342 · Fix transfer of google/onedrive docs by calling Rcat in Copy when
32343 size is -1 (Cnly)
32344
32345 · copyurl: Fix checking of --dry-run (Denis Skovpen)
32346
32347 · Mount
32348
32349 · Check that mountpoint and local directory to mount don't overlap
32350 (Nick Craig-Wood)
32351
32352 · Fix mount size under 32 bit Windows (Nick Craig-Wood)
32353
32354 · VFS
32355
32356 · Implement renaming of directories for backends without DirMove
32357 (Nick Craig-Wood)
32358
32359 · now all backends except b2 support renaming directories
32360
32361 · Implement --vfs-cache-max-size to limit the total size of the cache
32362 (Nick Craig-Wood)
32363
32364 · Add --dir-perms and --file-perms flags to set default permissions
32365 (Nick Craig-Wood)
32366
32367 · Fix deadlock on concurrent operations on a directory (Nick
32368 Craig-Wood)
32369
32370 · Fix deadlock between RWFileHandle.close and File.Remove (Nick
32371 Craig-Wood)
32372
32373 · Fix renaming/deleting open files with cache mode "writes" under
32374 Windows (Nick Craig-Wood)
32375
32376 · Fix panic on rename with --dry-run set (Nick Craig-Wood)
32377
32378 · Fix vfs/refresh with recurse=true needing the --fast-list flag
32379
32380 · Local
32381
32382 · Add support for -l/--links (symbolic link translation) (yair@uni‐
32383 corn)
32384
32385 · this works by showing links as link.rclonelink - see local back‐
32386 end docs for more info
32387
32388 · this errors if used with -L/--copy-links
32389
32390 · Fix renaming/deleting open files on Windows (Nick Craig-Wood)
32391
32392 · Crypt
32393
32394 · Check for maximum length before decrypting filename to fix panic
32395 (Garry McNulty)
32396
32397 · Azure Blob
32398
32399 · Allow building azureblob backend on *BSD (themylogin)
32400
32401 · Use the rclone HTTP client to support --dump headers, --tpslimit,
32402 etc. (Nick Craig-Wood)
32403
32404 · Use the s3 pacer for 0 delay in non error conditions (Nick
32405 Craig-Wood)
32406
32407 · Ignore directory markers (Nick Craig-Wood)
32408
32409 · Stop Mkdir attempting to create existing containers (Nick
32410 Craig-Wood)
32411
32412 · B2
32413
32414 · cleanup: will remove unfinished large files >24hrs old (Garry Mc‐
32415 Nulty)
32416
32417 · For a bucket limited application key check the bucket name (Nick
32418 Craig-Wood)
32419
32420 · before this, rclone would use the authorised bucket regardless of
32421 what you put on the command line
32422
32423 · Added --b2-disable-checksum flag (Wojciech Smigielski)
32424
32425 · this enables large files to be uploaded without a SHA-1 hash for
32426 speed reasons
32427
32428 · Drive
32429
32430 · Set default pacer to 100ms for 10 tps (Nick Craig-Wood)
32431
32432 · This fits the Google defaults much better and reduces the 403 er‐
32433 rors massively
32434
32435 · Add --drive-pacer-min-sleep and --drive-pacer-burst to control
32436 the pacer
32437
32438 · Improve ChangeNotify support for items with multiple parents (Fabi‐
32439 an Möller)
32440
32441 · Fix ListR for items with multiple parents - this fixes oddities
32442 with vfs/refresh (Fabian Möller)
32443
32444 · Fix using --drive-impersonate and appfolders (Nick Craig-Wood)
32445
32446 · Fix google docs in rclone mount for some (not all) applications
32447 (Nick Craig-Wood)
32448
32449 · Dropbox
32450
32451 · Retry-After support for Dropbox backend (Mathieu Carbou)
32452
32453 · FTP
32454
32455 · Wait for 60 seconds for a connection to Close then declare it dead
32456 (Nick Craig-Wood)
32457
32458 · helps with indefinite hangs on some FTP servers
32459
32460 · Google Cloud Storage
32461
32462 · Update google cloud storage endpoints (weetmuts)
32463
32464 · HTTP
32465
32466 · Add an example with username and password which is supported but
32467 wasn't documented (Nick Craig-Wood)
32468
32469 · Fix backend with --files-from and non-existent files (Nick
32470 Craig-Wood)
32471
32472 · Hubic
32473
32474 · Make error message more informative if authentication fails (Nick
32475 Craig-Wood)
32476
32477 · Jottacloud
32478
32479 · Resume and deduplication support (Oliver Heyme)
32480
32481 · Use token auth for all API requests Don't store password anymore
32482 (Sebastian Bünger)
32483
32484 · Add support for 2-factor authentication (Sebastian Bünger)
32485
32486 · Mega
32487
32488 · Implement v2 account login which fixes logins for newer Mega ac‐
32489 counts (Nick Craig-Wood)
32490
32491 · Return error if an unknown length file is attempted to be uploaded
32492 (Nick Craig-Wood)
32493
32494 · Add new error codes for better error reporting (Nick Craig-Wood)
32495
32496 · Onedrive
32497
32498 · Fix broken support for "shared with me" folders (Alex Chen)
32499
32500 · Fix root ID not normalised (Cnly)
32501
32502 · Return err instead of panic on unknown-sized uploads (Cnly)
32503
32504 · Qingstor
32505
32506 · Fix go routine leak on multipart upload errors (Nick Craig-Wood)
32507
32508 · Add upload chunk size/concurrency/cutoff control (Nick Craig-Wood)
32509
32510 · Default --qingstor-upload-concurrency to 1 to work around bug (Nick
32511 Craig-Wood)
32512
32513 · S3
32514
32515 · Implement --s3-upload-cutoff for single part uploads below this
32516 (Nick Craig-Wood)
32517
32518 · Change --s3-upload-concurrency default to 4 to increase performance
32519 (Nick Craig-Wood)
32520
32521 · Add --s3-bucket-acl to control bucket ACL (Nick Craig-Wood)
32522
32523 · Auto detect region for buckets on operation failure (Nick
32524 Craig-Wood)
32525
32526 · Add GLACIER storage class (William Cocker)
32527
32528 · Add Scaleway to s3 documentation (Rémy Léone)
32529
32530 · Add AWS endpoint eu-north-1 (weetmuts)
32531
32532 · SFTP
32533
32534 · Add support for PEM encrypted private keys (Fabian Möller)
32535
32536 · Add option to force the usage of an ssh-agent (Fabian Möller)
32537
32538 · Perform environment variable expansion on key-file (Fabian Möller)
32539
32540 · Fix rmdir on Windows based servers (e.g. CrushFTP) (Nick
32541 Craig-Wood)
32542
32543 · Fix rmdir deleting directory contents on some SFTP servers (Nick
32544 Craig-Wood)
32545
32546 · Fix error on dangling symlinks (Nick Craig-Wood)
32547
32548 · Swift
32549
32550 · Add --swift-no-chunk to disable segmented uploads in rcat/mount
32551 (Nick Craig-Wood)
32552
32553 · Introduce application credential auth support (kayrus)
32554
32555 · Fix memory usage by slimming Object (Nick Craig-Wood)
32556
32557 · Fix extra requests on upload (Nick Craig-Wood)
32558
32559 · Fix reauth on big files (Nick Craig-Wood)
32560
32561 · Union
32562
32563 · Fix poll-interval not working (Nick Craig-Wood)
32564
32565 · WebDAV
32566
32567 · Support About which means rclone mount will show the correct disk
32568 size (Nick Craig-Wood)
32569
32570 · Support MD5 and SHA1 hashes with Owncloud and Nextcloud (Nick
32571 Craig-Wood)
32572
32573 · Fail soft on time parsing errors (Nick Craig-Wood)
32574
32575 · Fix infinite loop on failed directory creation (Nick Craig-Wood)
32576
32577 · Fix identification of directories for Bitrix Site Manager (Nick
32578 Craig-Wood)
32579
32580 · Fix upload of 0 length files on some servers (Nick Craig-Wood)
32581
32582 · Fix if MKCOL fails with 423 Locked assume the directory exists
32583 (Nick Craig-Wood)
32584
32585 v1.45 - 2018-11-24
32586 · New backends
32587
32588 · The Yandex backend was re-written - see below for details (Sebas‐
32589 tian Bünger)
32590
32591 · New commands
32592
32593 · rcd: New command just to serve the remote control API (Nick
32594 Craig-Wood)
32595
32596 · New Features
32597
32598 · The remote control API (rc) was greatly expanded to allow full con‐
32599 trol over rclone (Nick Craig-Wood)
32600
32601 · sensitive operations require authorization or the --rc-no-auth
32602 flag
32603
32604 · config/* operations to configure rclone
32605
32606 · options/* for reading/setting command line flags
32607
32608 · operations/* for all low level operations, e.g. copy file, list
32609 directory
32610
32611 · sync/* for sync, copy and move
32612
32613 · --rc-files flag to serve files on the rc http server
32614
32615 · this is for building web native GUIs for rclone
32616
32617 · Optionally serving objects on the rc http server
32618
32619 · Ensure rclone fails to start up if the --rc port is in use al‐
32620 ready
32621
32622 · See the rc docs (https://rclone.org/rc/) for more info
32623
32624 · sync/copy/move
32625
32626 · Make --files-from only read the objects specified and don't scan
32627 directories (Nick Craig-Wood)
32628
32629 · This is a huge speed improvement for destinations with lots of
32630 files
32631
32632 · filter: Add --ignore-case flag (Nick Craig-Wood)
32633
32634 · ncdu: Add remove function ('d' key) (Henning Surmeier)
32635
32636 · rc command
32637
32638 · Add --json flag for structured JSON input (Nick Craig-Wood)
32639
32640 · Add --user and --pass flags and interpret --rc-user, --rc-pass,
32641 --rc-addr (Nick Craig-Wood)
32642
32643 · build
32644
32645 · Require go1.8 or later for compilation (Nick Craig-Wood)
32646
32647 · Enable softfloat on MIPS arch (Scott Edlund)
32648
32649 · Integration test framework revamped with a better report and bet‐
32650 ter retries (Nick Craig-Wood)
32651
32652 · Bug Fixes
32653
32654 · cmd: Make --progress update the stats correctly at the end (Nick
32655 Craig-Wood)
32656
32657 · config: Create config directory on save if it is missing (Nick
32658 Craig-Wood)
32659
32660 · dedupe: Check for existing filename before renaming a dupe file
32661 (ssaqua)
32662
32663 · move: Don't create directories with --dry-run (Nick Craig-Wood)
32664
32665 · operations: Fix Purge and Rmdirs when dir is not the root (Nick
32666 Craig-Wood)
32667
32668 · serve http/webdav/restic: Ensure rclone exits if the port is in use
32669 (Nick Craig-Wood)
32670
32671 · Mount
32672
32673 · Make --volname work for Windows and macOS (Nick Craig-Wood)
32674
32675 · Azure Blob
32676
32677 · Avoid context deadline exceeded error by setting a large TryTimeout
32678 value (brused27)
32679
32680 · Fix erroneous Rmdir error "directory not empty" (Nick Craig-Wood)
32681
32682 · Wait for up to 60s to create a just deleted container (Nick
32683 Craig-Wood)
32684
32685 · Dropbox
32686
32687 · Add dropbox impersonate support (Jake Coggiano)
32688
32689 · Jottacloud
32690
32691 · Fix bug in --fast-list handing of empty folders (albertony)
32692
32693 · Opendrive
32694
32695 · Fix transfer of files with + and & in (Nick Craig-Wood)
32696
32697 · Fix retries of upload chunks (Nick Craig-Wood)
32698
32699 · S3
32700
32701 · Set ACL for server-side copies to that provided by the user (Nick
32702 Craig-Wood)
32703
32704 · Fix role_arn, credential_source, ... (Erik Swanson)
32705
32706 · Add config info for Wasabi's US-West endpoint (Henry Ptasinski)
32707
32708 · SFTP
32709
32710 · Ensure file hash checking is really disabled (Jon Fautley)
32711
32712 · Swift
32713
32714 · Add pacer for retries to make swift more reliable (Nick Craig-Wood)
32715
32716 · WebDAV
32717
32718 · Add Content-Type to PUT requests (Nick Craig-Wood)
32719
32720 · Fix config parsing so --webdav-user and --webdav-pass flags work
32721 (Nick Craig-Wood)
32722
32723 · Add RFC3339 date format (Ralf Hemberger)
32724
32725 · Yandex
32726
32727 · The yandex backend was re-written (Sebastian Bünger)
32728
32729 · This implements low level retries (Sebastian Bünger)
32730
32731 · Copy, Move, DirMove, PublicLink and About optional interfaces
32732 (Sebastian Bünger)
32733
32734 · Improved general error handling (Sebastian Bünger)
32735
32736 · Removed ListR for now due to inconsistent behaviour (Sebastian
32737 Bünger)
32738
32739 v1.44 - 2018-10-15
32740 · New commands
32741
32742 · serve ftp: Add ftp server (Antoine GIRARD)
32743
32744 · settier: perform storage tier changes on supported remotes
32745 (sandeepkru)
32746
32747 · New Features
32748
32749 · Reworked command line help
32750
32751 · Make default help less verbose (Nick Craig-Wood)
32752
32753 · Split flags up into global and backend flags (Nick Craig-Wood)
32754
32755 · Implement specialised help for flags and backends (Nick
32756 Craig-Wood)
32757
32758 · Show URL of backend help page when starting config (Nick
32759 Craig-Wood)
32760
32761 · stats: Long names now split in center (Joanna Marek)
32762
32763 · Add --log-format flag for more control over log output (dcpu)
32764
32765 · rc: Add support for OPTIONS and basic CORS (frenos)
32766
32767 · stats: show FatalErrors and NoRetryErrors in stats (Cédric Connes)
32768
32769 · Bug Fixes
32770
32771 · Fix -P not ending with a new line (Nick Craig-Wood)
32772
32773 · config: don't create default config dir when user supplies --config
32774 (albertony)
32775
32776 · Don't print non-ASCII characters with --progress on windows (Nick
32777 Craig-Wood)
32778
32779 · Correct logs for excluded items (ssaqua)
32780
32781 · Mount
32782
32783 · Remove EXPERIMENTAL tags (Nick Craig-Wood)
32784
32785 · VFS
32786
32787 · Fix race condition detected by serve ftp tests (Nick Craig-Wood)
32788
32789 · Add vfs/poll-interval rc command (Fabian Möller)
32790
32791 · Enable rename for nearly all remotes using server-side Move or Copy
32792 (Nick Craig-Wood)
32793
32794 · Reduce directory cache cleared by poll-interval (Fabian Möller)
32795
32796 · Remove EXPERIMENTAL tags (Nick Craig-Wood)
32797
32798 · Local
32799
32800 · Skip bad symlinks in dir listing with -L enabled (Cédric Connes)
32801
32802 · Preallocate files on Windows to reduce fragmentation (Nick
32803 Craig-Wood)
32804
32805 · Preallocate files on linux with fallocate(2) (Nick Craig-Wood)
32806
32807 · Cache
32808
32809 · Add cache/fetch rc function (Fabian Möller)
32810
32811 · Fix worker scale down (Fabian Möller)
32812
32813 · Improve performance by not sending info requests for cached chunks
32814 (dcpu)
32815
32816 · Fix error return value of cache/fetch rc method (Fabian Möller)
32817
32818 · Documentation fix for cache-chunk-total-size (Anagh Kumar Baranwal)
32819
32820 · Preserve leading / in wrapped remote path (Fabian Möller)
32821
32822 · Add plex_insecure option to skip certificate validation (Fabian
32823 Möller)
32824
32825 · Remove entries that no longer exist in the source (dcpu)
32826
32827 · Crypt
32828
32829 · Preserve leading / in wrapped remote path (Fabian Möller)
32830
32831 · Alias
32832
32833 · Fix handling of Windows network paths (Nick Craig-Wood)
32834
32835 · Azure Blob
32836
32837 · Add --azureblob-list-chunk parameter (Santiago Rodríguez)
32838
32839 · Implemented settier command support on azureblob remote. (sandeep‐
32840 kru)
32841
32842 · Work around SDK bug which causes errors for chunk-sized files (Nick
32843 Craig-Wood)
32844
32845 · Box
32846
32847 · Implement link sharing. (Sebastian Bünger)
32848
32849 · Drive
32850
32851 · Add --drive-import-formats - google docs can now be imported (Fabi‐
32852 an Möller)
32853
32854 · Rewrite mime type and extension handling (Fabian Möller)
32855
32856 · Add document links (Fabian Möller)
32857
32858 · Add support for multipart document extensions (Fabian Möller)
32859
32860 · Add support for apps-script to json export (Fabian Möller)
32861
32862 · Fix escaped chars in documents during list (Fabian Möller)
32863
32864 · Add --drive-v2-download-min-size a workaround for slow downloads
32865 (Fabian Möller)
32866
32867 · Improve directory notifications in ChangeNotify (Fabian Möller)
32868
32869 · When listing team drives in config, continue on failure (Nick
32870 Craig-Wood)
32871
32872 · FTP
32873
32874 · Add a small pause after failed upload before deleting file (Nick
32875 Craig-Wood)
32876
32877 · Google Cloud Storage
32878
32879 · Fix service_account_file being ignored (Fabian Möller)
32880
32881 · Jottacloud
32882
32883 · Minor improvement in quota info (omit if unlimited) (albertony)
32884
32885 · Add --fast-list support (albertony)
32886
32887 · Add permanent delete support: --jottacloud-hard-delete (albertony)
32888
32889 · Add link sharing support (albertony)
32890
32891 · Fix handling of reserved characters. (Sebastian Bünger)
32892
32893 · Fix socket leak on Object.Remove (Nick Craig-Wood)
32894
32895 · Onedrive
32896
32897 · Rework to support Microsoft Graph (Cnly)
32898
32899 · NB this will require re-authenticating the remote
32900
32901 · Removed upload cutoff and always do session uploads (Oliver Heyme)
32902
32903 · Use single-part upload for empty files (Cnly)
32904
32905 · Fix new fields not saved when editing old config (Alex Chen)
32906
32907 · Fix sometimes special chars in filenames not replaced (Alex Chen)
32908
32909 · Ignore OneNote files by default (Alex Chen)
32910
32911 · Add link sharing support (jackyzy823)
32912
32913 · S3
32914
32915 · Use custom pacer, to retry operations when reasonable (Craig
32916 Miskell)
32917
32918 · Use configured server-side-encryption and storage class options
32919 when calling CopyObject() (Paul Kohout)
32920
32921 · Make --s3-v2-auth flag (Nick Craig-Wood)
32922
32923 · Fix v2 auth on files with spaces (Nick Craig-Wood)
32924
32925 · Union
32926
32927 · Implement union backend which reads from multiple backends (Felix
32928 Brucker)
32929
32930 · Implement optional interfaces (Move, DirMove, Copy, etc.) (Nick
32931 Craig-Wood)
32932
32933 · Fix ChangeNotify to support multiple remotes (Fabian Möller)
32934
32935 · Fix --backup-dir on union backend (Nick Craig-Wood)
32936
32937 · WebDAV
32938
32939 · Add another time format (Nick Craig-Wood)
32940
32941 · Add a small pause after failed upload before deleting file (Nick
32942 Craig-Wood)
32943
32944 · Add workaround for missing mtime (buergi)
32945
32946 · Sharepoint: Renew cookies after 12hrs (Henning Surmeier)
32947
32948 · Yandex
32949
32950 · Remove redundant nil checks (teresy)
32951
32952 v1.43.1 - 2018-09-07
32953 Point release to fix hubic and azureblob backends.
32954
32955 · Bug Fixes
32956
32957 · ncdu: Return error instead of log.Fatal in Show (Fabian Möller)
32958
32959 · cmd: Fix crash with --progress and --stats 0 (Nick Craig-Wood)
32960
32961 · docs: Tidy website display (Anagh Kumar Baranwal)
32962
32963 · Azure Blob:
32964
32965 · Fix multi-part uploads. (sandeepkru)
32966
32967 · Hubic
32968
32969 · Fix uploads (Nick Craig-Wood)
32970
32971 · Retry auth fetching if it fails to make hubic more reliable (Nick
32972 Craig-Wood)
32973
32974 v1.43 - 2018-09-01
32975 · New backends
32976
32977 · Jottacloud (Sebastian Bünger)
32978
32979 · New commands
32980
32981 · copyurl: copies a URL to a remote (Denis)
32982
32983 · New Features
32984
32985 · Reworked config for backends (Nick Craig-Wood)
32986
32987 · All backend config can now be supplied by command line, env var
32988 or config file
32989
32990 · Advanced section in the config wizard for the optional items
32991
32992 · A large step towards rclone backends being usable in other go
32993 software
32994
32995 · Allow on the fly remotes with :backend: syntax
32996
32997 · Stats revamp
32998
32999 · Add --progress/-P flag to show interactive progress (Nick
33000 Craig-Wood)
33001
33002 · Show the total progress of the sync in the stats (Nick
33003 Craig-Wood)
33004
33005 · Add --stats-one-line flag for single line stats (Nick Craig-Wood)
33006
33007 · Added weekday schedule into --bwlimit (Mateusz)
33008
33009 · lsjson: Add option to show the original object IDs (Fabian Möller)
33010
33011 · serve webdav: Make Content-Type without reading the file and add
33012 --etag-hash (Nick Craig-Wood)
33013
33014 · build
33015
33016 · Build macOS with native compiler (Nick Craig-Wood)
33017
33018 · Update to use go1.11 for the build (Nick Craig-Wood)
33019
33020 · rc
33021
33022 · Added core/stats to return the stats (reddi1)
33023
33024 · version --check: Prints the current release and beta versions (Nick
33025 Craig-Wood)
33026
33027 · Bug Fixes
33028
33029 · accounting
33030
33031 · Fix time to completion estimates (Nick Craig-Wood)
33032
33033 · Fix moving average speed for file stats (Nick Craig-Wood)
33034
33035 · config: Fix error reading password from piped input (Nick
33036 Craig-Wood)
33037
33038 · move: Fix --delete-empty-src-dirs flag to delete all empty dirs on
33039 move (ishuah)
33040
33041 · Mount
33042
33043 · Implement --daemon-timeout flag for OSXFUSE (Nick Craig-Wood)
33044
33045 · Fix mount --daemon not working with encrypted config (Alex Chen)
33046
33047 · Clip the number of blocks to 2^32-1 on macOS - fixes borg backup
33048 (Nick Craig-Wood)
33049
33050 · VFS
33051
33052 · Enable vfs-read-chunk-size by default (Fabian Möller)
33053
33054 · Add the vfs/refresh rc command (Fabian Möller)
33055
33056 · Add non recursive mode to vfs/refresh rc command (Fabian Möller)
33057
33058 · Try to seek buffer on read only files (Fabian Möller)
33059
33060 · Local
33061
33062 · Fix crash when deprecated --local-no-unicode-normalization is sup‐
33063 plied (Nick Craig-Wood)
33064
33065 · Fix mkdir error when trying to copy files to the root of a drive on
33066 windows (Nick Craig-Wood)
33067
33068 · Cache
33069
33070 · Fix nil pointer deref when using lsjson on cached directory (Nick
33071 Craig-Wood)
33072
33073 · Fix nil pointer deref for occasional crash on playback (Nick
33074 Craig-Wood)
33075
33076 · Crypt
33077
33078 · Fix accounting when checking hashes on upload (Nick Craig-Wood)
33079
33080 · Amazon Cloud Drive
33081
33082 · Make very clear in the docs that rclone has no ACD keys (Nick
33083 Craig-Wood)
33084
33085 · Azure Blob
33086
33087 · Add connection string and SAS URL auth (Nick Craig-Wood)
33088
33089 · List the container to see if it exists (Nick Craig-Wood)
33090
33091 · Port new Azure Blob Storage SDK (sandeepkru)
33092
33093 · Added blob tier, tier between Hot, Cool and Archive. (sandeepkru)
33094
33095 · Remove leading / from paths (Nick Craig-Wood)
33096
33097 · B2
33098
33099 · Support Application Keys (Nick Craig-Wood)
33100
33101 · Remove leading / from paths (Nick Craig-Wood)
33102
33103 · Box
33104
33105 · Fix upload of > 2GB files on 32 bit platforms (Nick Craig-Wood)
33106
33107 · Make --box-commit-retries flag defaulting to 100 to fix large up‐
33108 loads (Nick Craig-Wood)
33109
33110 · Drive
33111
33112 · Add --drive-keep-revision-forever flag (lewapm)
33113
33114 · Handle gdocs when filtering file names in list (Fabian Möller)
33115
33116 · Support using --fast-list for large speedups (Fabian Möller)
33117
33118 · FTP
33119
33120 · Fix Put mkParentDir failed: 521 for BunnyCDN (Nick Craig-Wood)
33121
33122 · Google Cloud Storage
33123
33124 · Fix index out of range error with --fast-list (Nick Craig-Wood)
33125
33126 · Jottacloud
33127
33128 · Fix MD5 error check (Oliver Heyme)
33129
33130 · Handle empty time values (Martin Polden)
33131
33132 · Calculate missing MD5s (Oliver Heyme)
33133
33134 · Docs, fixes and tests for MD5 calculation (Nick Craig-Wood)
33135
33136 · Add optional MimeTyper interface. (Sebastian Bünger)
33137
33138 · Implement optional About interface (for df support). (Sebastian
33139 Bünger)
33140
33141 · Mega
33142
33143 · Wait for events instead of arbitrary sleeping (Nick Craig-Wood)
33144
33145 · Add --mega-hard-delete flag (Nick Craig-Wood)
33146
33147 · Fix failed logins with upper case chars in email (Nick Craig-Wood)
33148
33149 · Onedrive
33150
33151 · Shared folder support (Yoni Jah)
33152
33153 · Implement DirMove (Cnly)
33154
33155 · Fix rmdir sometimes deleting directories with contents (Nick
33156 Craig-Wood)
33157
33158 · Pcloud
33159
33160 · Delete half uploaded files on upload error (Nick Craig-Wood)
33161
33162 · Qingstor
33163
33164 · Remove leading / from paths (Nick Craig-Wood)
33165
33166 · S3
33167
33168 · Fix index out of range error with --fast-list (Nick Craig-Wood)
33169
33170 · Add --s3-force-path-style (Nick Craig-Wood)
33171
33172 · Add support for KMS Key ID (bsteiss)
33173
33174 · Remove leading / from paths (Nick Craig-Wood)
33175
33176 · Swift
33177
33178 · Add storage_policy (Ruben Vandamme)
33179
33180 · Make it so just storage_url or auth_token can be overridden (Nick
33181 Craig-Wood)
33182
33183 · Fix server-side copy bug for unusual file names (Nick Craig-Wood)
33184
33185 · Remove leading / from paths (Nick Craig-Wood)
33186
33187 · WebDAV
33188
33189 · Ensure we call MKCOL with a URL with a trailing / for QNAP interop
33190 (Nick Craig-Wood)
33191
33192 · If root ends with / then don't check if it is a file (Nick
33193 Craig-Wood)
33194
33195 · Don't accept redirects when reading metadata (Nick Craig-Wood)
33196
33197 · Add bearer token (Macaroon) support for dCache (Nick Craig-Wood)
33198
33199 · Document dCache and Macaroons (Onno Zweers)
33200
33201 · Sharepoint recursion with different depth (Henning)
33202
33203 · Attempt to remove failed uploads (Nick Craig-Wood)
33204
33205 · Yandex
33206
33207 · Fix listing/deleting files in the root (Nick Craig-Wood)
33208
33209 v1.42 - 2018-06-16
33210 · New backends
33211
33212 · OpenDrive (Oliver Heyme, Jakub Karlicek, ncw)
33213
33214 · New commands
33215
33216 · deletefile command (Filip Bartodziej)
33217
33218 · New Features
33219
33220 · copy, move: Copy single files directly, don't use --files-from
33221 work-around
33222
33223 · this makes them much more efficient
33224
33225 · Implement --max-transfer flag to quit transferring at a limit
33226
33227 · make exit code 8 for --max-transfer exceeded
33228
33229 · copy: copy empty source directories to destination (Ishuah Kariuki)
33230
33231 · check: Add --one-way flag (Kasper Byrdal Nielsen)
33232
33233 · Add siginfo handler for macOS for ctrl-T stats (kubatasiemski)
33234
33235 · rc
33236
33237 · add core/gc to run a garbage collection on demand
33238
33239 · enable go profiling by default on the --rc port
33240
33241 · return error from remote on failure
33242
33243 · lsf
33244
33245 · Add --absolute flag to add a leading / onto path names
33246
33247 · Add --csv flag for compliant CSV output
33248
33249 · Add 'm' format specifier to show the MimeType
33250
33251 · Implement 'i' format for showing object ID
33252
33253 · lsjson
33254
33255 · Add MimeType to the output
33256
33257 · Add ID field to output to show Object ID
33258
33259 · Add --retries-sleep flag (Benjamin Joseph Dag)
33260
33261 · Oauth tidy up web page and error handling (Henning Surmeier)
33262
33263 · Bug Fixes
33264
33265 · Password prompt output with --log-file fixed for unix (Filip Bar‐
33266 todziej)
33267
33268 · Calculate ModifyWindow each time on the fly to fix various problems
33269 (Stefan Breunig)
33270
33271 · Mount
33272
33273 · Only print "File.rename error" if there actually is an error (Ste‐
33274 fan Breunig)
33275
33276 · Delay rename if file has open writers instead of failing outright
33277 (Stefan Breunig)
33278
33279 · Ensure atexit gets run on interrupt
33280
33281 · macOS enhancements
33282
33283 · Make --noappledouble --noapplexattr
33284
33285 · Add --volname flag and remove special chars from it
33286
33287 · Make Get/List/Set/Remove xattr return ENOSYS for efficiency
33288
33289 · Make --daemon work for macOS without CGO
33290
33291 · VFS
33292
33293 · Add --vfs-read-chunk-size and --vfs-read-chunk-size-limit (Fabian
33294 Möller)
33295
33296 · Fix ChangeNotify for new or changed folders (Fabian Möller)
33297
33298 · Local
33299
33300 · Fix symlink/junction point directory handling under Windows
33301
33302 · NB you will need to add -L to your command line to copy files
33303 with reparse points
33304
33305 · Cache
33306
33307 · Add non cached dirs on notifications (Remus Bunduc)
33308
33309 · Allow root to be expired from rc (Remus Bunduc)
33310
33311 · Clean remaining empty folders from temp upload path (Remus Bunduc)
33312
33313 · Cache lists using batch writes (Remus Bunduc)
33314
33315 · Use secure websockets for HTTPS Plex addresses (John Clayton)
33316
33317 · Reconnect plex websocket on failures (Remus Bunduc)
33318
33319 · Fix panic when running without plex configs (Remus Bunduc)
33320
33321 · Fix root folder caching (Remus Bunduc)
33322
33323 · Crypt
33324
33325 · Check the crypted hash of files when uploading for extra data secu‐
33326 rity
33327
33328 · Dropbox
33329
33330 · Make Dropbox for business folders accessible using an initial / in
33331 the path
33332
33333 · Google Cloud Storage
33334
33335 · Low level retry all operations if necessary
33336
33337 · Google Drive
33338
33339 · Add --drive-acknowledge-abuse to download flagged files
33340
33341 · Add --drive-alternate-export to fix large doc export
33342
33343 · Don't attempt to choose Team Drives when using rclone config create
33344
33345 · Fix change list polling with team drives
33346
33347 · Fix ChangeNotify for folders (Fabian Möller)
33348
33349 · Fix about (and df on a mount) for team drives
33350
33351 · Onedrive
33352
33353 · Errorhandler for onedrive for business requests (Henning Surmeier)
33354
33355 · S3
33356
33357 · Adjust upload concurrency with --s3-upload-concurrency (themylogin)
33358
33359 · Fix --s3-chunk-size which was always using the minimum
33360
33361 · SFTP
33362
33363 · Add --ssh-path-override flag (Piotr Oleszczyk)
33364
33365 · Fix slow downloads for long latency connections
33366
33367 · Webdav
33368
33369 · Add workarounds for biz.mail.ru
33370
33371 · Ignore Reason-Phrase in status line to fix 4shared (Rodrigo)
33372
33373 · Better error message generation
33374
33375 v1.41 - 2018-04-28
33376 · New backends
33377
33378 · Mega support added
33379
33380 · Webdav now supports SharePoint cookie authentication (hensur)
33381
33382 · New commands
33383
33384 · link: create public link to files and folders (Stefan Breunig)
33385
33386 · about: gets quota info from a remote (a-roussos, ncw)
33387
33388 · hashsum: a generic tool for any hash to produce md5sum like output
33389
33390 · New Features
33391
33392 · lsd: Add -R flag and fix and update docs for all ls commands
33393
33394 · ncdu: added a "refresh" key - CTRL-L (Keith Goldfarb)
33395
33396 · serve restic: Add append-only mode (Steve Kriss)
33397
33398 · serve restic: Disallow overwriting files in append-only mode
33399 (Alexander Neumann)
33400
33401 · serve restic: Print actual listener address (Matt Holt)
33402
33403 · size: Add --json flag (Matthew Holt)
33404
33405 · sync: implement --ignore-errors (Mateusz Pabian)
33406
33407 · dedupe: Add dedupe largest functionality (Richard Yang)
33408
33409 · fs: Extend SizeSuffix to include TB and PB for rclone about
33410
33411 · fs: add --dump goroutines and --dump openfiles for debugging
33412
33413 · rc: implement core/memstats to print internal memory usage info
33414
33415 · rc: new call rc/pid (Michael P. Dubner)
33416
33417 · Compile
33418
33419 · Drop support for go1.6
33420
33421 · Release
33422
33423 · Fix make tarball (Chih-Hsuan Yen)
33424
33425 · Bug Fixes
33426
33427 · filter: fix --min-age and --max-age together check
33428
33429 · fs: limit MaxIdleConns and MaxIdleConnsPerHost in transport
33430
33431 · lsd,lsf: make sure all times we output are in local time
33432
33433 · rc: fix setting bwlimit to unlimited
33434
33435 · rc: take note of the --rc-addr flag too as per the docs
33436
33437 · Mount
33438
33439 · Use About to return the correct disk total/used/free (e.g. in df)
33440
33441 · Set --attr-timeout default to 1s - fixes:
33442
33443 · rclone using too much memory
33444
33445 · rclone not serving files to samba
33446
33447 · excessive time listing directories
33448
33449 · Fix df -i (upstream fix)
33450
33451 · VFS
33452
33453 · Filter files . and .. from directory listing
33454
33455 · Only make the VFS cache if --vfs-cache-mode > Off
33456
33457 · Local
33458
33459 · Add --local-no-check-updated to disable updated file checks
33460
33461 · Retry remove on Windows sharing violation error
33462
33463 · Cache
33464
33465 · Flush the memory cache after close
33466
33467 · Purge file data on notification
33468
33469 · Always forget parent dir for notifications
33470
33471 · Integrate with Plex websocket
33472
33473 · Add rc cache/stats (seuffert)
33474
33475 · Add info log on notification
33476
33477 · Box
33478
33479 · Fix failure reading large directories - parse file/directory size
33480 as float
33481
33482 · Dropbox
33483
33484 · Fix crypt+obfuscate on dropbox
33485
33486 · Fix repeatedly uploading the same files
33487
33488 · FTP
33489
33490 · Work around strange response from box FTP server
33491
33492 · More workarounds for FTP servers to fix mkParentDir error
33493
33494 · Fix no error on listing non-existent directory
33495
33496 · Google Cloud Storage
33497
33498 · Add service_account_credentials (Matt Holt)
33499
33500 · Detect bucket presence by listing it - minimises permissions needed
33501
33502 · Ignore zero length directory markers
33503
33504 · Google Drive
33505
33506 · Add service_account_credentials (Matt Holt)
33507
33508 · Fix directory move leaving a hardlinked directory behind
33509
33510 · Return proper google errors when Opening files
33511
33512 · When initialized with a filepath, optional features used incorrect
33513 root path (Stefan Breunig)
33514
33515 · HTTP
33516
33517 · Fix sync for servers which don't return Content-Length in HEAD
33518
33519 · Onedrive
33520
33521 · Add QuickXorHash support for OneDrive for business
33522
33523 · Fix socket leak in multipart session upload
33524
33525 · S3
33526
33527 · Look in S3 named profile files for credentials
33528
33529 · Add --s3-disable-checksum to disable checksum uploading (Chris Re‐
33530 dekop)
33531
33532 · Hierarchical configuration support (Giri Badanahatti)
33533
33534 · Add in config for all the supported S3 providers
33535
33536 · Add One Zone Infrequent Access storage class (Craig Rachel)
33537
33538 · Add --use-server-modtime support (Peter Baumgartner)
33539
33540 · Add --s3-chunk-size option to control multipart uploads
33541
33542 · Ignore zero length directory markers
33543
33544 · SFTP
33545
33546 · Update docs to match code, fix typos and clarify disable_hashcheck
33547 prompt (Michael G. Noll)
33548
33549 · Update docs with Synology quirks
33550
33551 · Fail soft with a debug on hash failure
33552
33553 · Swift
33554
33555 · Add --use-server-modtime support (Peter Baumgartner)
33556
33557 · Webdav
33558
33559 · Support SharePoint cookie authentication (hensur)
33560
33561 · Strip leading and trailing / off root
33562
33563 v1.40 - 2018-03-19
33564 · New backends
33565
33566 · Alias backend to create aliases for existing remote names (Fabian
33567 Möller)
33568
33569 · New commands
33570
33571 · lsf: list for parsing purposes (Jakub Tasiemski)
33572
33573 · by default this is a simple non recursive list of files and di‐
33574 rectories
33575
33576 · it can be configured to add more info in an easy to parse way
33577
33578 · serve restic: for serving a remote as a Restic REST endpoint
33579
33580 · This enables restic to use any backends that rclone can access
33581
33582 · Thanks Alexander Neumann for help, patches and review
33583
33584 · rc: enable the remote control of a running rclone
33585
33586 · The running rclone must be started with --rc and related flags.
33587
33588 · Currently there is support for bwlimit, and flushing for mount
33589 and cache.
33590
33591 · New Features
33592
33593 · --max-delete flag to add a delete threshold (Bjørn Erik Pedersen)
33594
33595 · All backends now support RangeOption for ranged Open
33596
33597 · cat: Use RangeOption for limited fetches to make more efficient
33598
33599 · cryptcheck: make reading of nonce more efficient with RangeOption
33600
33601 · serve http/webdav/restic
33602
33603 · support SSL/TLS
33604
33605 · add --user --pass and --htpasswd for authentication
33606
33607 · copy/move: detect file size change during copy/move and abort
33608 transfer (ishuah)
33609
33610 · cryptdecode: added option to return encrypted file names. (ishuah)
33611
33612 · lsjson: add --encrypted to show encrypted name (Jakub Tasiemski)
33613
33614 · Add --stats-file-name-length to specify the printed file name
33615 length for stats (Will Gunn)
33616
33617 · Compile
33618
33619 · Code base was shuffled and factored
33620
33621 · backends moved into a backend directory
33622
33623 · large packages split up
33624
33625 · See the CONTRIBUTING.md doc for info as to what lives where now
33626
33627 · Update to using go1.10 as the default go version
33628
33629 · Implement daily full integration tests (https://pub.rclone.org/in‐
33630 tegration-tests/)
33631
33632 · Release
33633
33634 · Include a source tarball and sign it and the binaries
33635
33636 · Sign the git tags as part of the release process
33637
33638 · Add .deb and .rpm packages as part of the build
33639
33640 · Make a beta release for all branches on the main repo (but not pull
33641 requests)
33642
33643 · Bug Fixes
33644
33645 · config: fixes errors on non existing config by loading config file
33646 only on first access
33647
33648 · config: retry saving the config after failure (Mateusz)
33649
33650 · sync: when using --backup-dir don't delete files if we can't set
33651 their modtime
33652
33653 · this fixes odd behaviour with Dropbox and --backup-dir
33654
33655 · fshttp: fix idle timeouts for HTTP connections
33656
33657 · serve http: fix serving files with : in - fixes
33658
33659 · Fix --exclude-if-present to ignore directories which it doesn't
33660 have permission for (Iakov Davydov)
33661
33662 · Make accounting work properly with crypt and b2
33663
33664 · remove --no-traverse flag because it is obsolete
33665
33666 · Mount
33667
33668 · Add --attr-timeout flag to control attribute caching in kernel
33669
33670 · this now defaults to 0 which is correct but less efficient
33671
33672 · see the mount docs (https://rclone.org/commands/rclone_mount/#at‐
33673 tribute-caching) for more info
33674
33675 · Add --daemon flag to allow mount to run in the background (ishuah)
33676
33677 · Fix: Return ENOSYS rather than EIO on attempted link
33678
33679 · This fixes FileZilla accessing an rclone mount served over sftp.
33680
33681 · Fix setting modtime twice
33682
33683 · Mount tests now run on CI for Linux (mount & cmount)/Mac/Windows
33684
33685 · Many bugs fixed in the VFS layer - see below
33686
33687 · VFS
33688
33689 · Many fixes for --vfs-cache-mode writes and above
33690
33691 · Update cached copy if we know it has changed (fixes stale data)
33692
33693 · Clean path names before using them in the cache
33694
33695 · Disable cache cleaner if --vfs-cache-poll-interval=0
33696
33697 · Fill and clean the cache immediately on startup
33698
33699 · Fix Windows opening every file when it stats the file
33700
33701 · Fix applying modtime for an open Write Handle
33702
33703 · Fix creation of files when truncating
33704
33705 · Write 0 bytes when flushing unwritten handles to avoid race condi‐
33706 tions in FUSE
33707
33708 · Downgrade "poll-interval is not supported" message to Info
33709
33710 · Make OpenFile and friends return EINVAL if O_RDONLY and O_TRUNC
33711
33712 · Local
33713
33714 · Downgrade "invalid cross-device link: trying copy" to debug
33715
33716 · Make DirMove return fs.ErrorCantDirMove to allow fallback to Copy
33717 for cross device
33718
33719 · Fix race conditions updating the hashes
33720
33721 · Cache
33722
33723 · Add support for polling - cache will update when remote changes on
33724 supported backends
33725
33726 · Reduce log level for Plex api
33727
33728 · Fix dir cache issue
33729
33730 · Implement --cache-db-wait-time flag
33731
33732 · Improve efficiency with RangeOption and RangeSeek
33733
33734 · Fix dirmove with temp fs enabled
33735
33736 · Notify vfs when using temp fs
33737
33738 · Offline uploading
33739
33740 · Remote control support for path flushing
33741
33742 · Amazon cloud drive
33743
33744 · Rclone no longer has any working keys - disable integration tests
33745
33746 · Implement DirChangeNotify to notify cache/vfs/mount of changes
33747
33748 · Azureblob
33749
33750 · Don't check for bucket/container presence if listing was OK
33751
33752 · this makes rclone do one less request per invocation
33753
33754 · Improve accounting for chunked uploads
33755
33756 · Backblaze B2
33757
33758 · Don't check for bucket/container presence if listing was OK
33759
33760 · this makes rclone do one less request per invocation
33761
33762 · Box
33763
33764 · Improve accounting for chunked uploads
33765
33766 · Dropbox
33767
33768 · Fix custom oauth client parameters
33769
33770 · Google Cloud Storage
33771
33772 · Don't check for bucket/container presence if listing was OK
33773
33774 · this makes rclone do one less request per invocation
33775
33776 · Google Drive
33777
33778 · Migrate to api v3 (Fabian Möller)
33779
33780 · Add scope configuration and root folder selection
33781
33782 · Add --drive-impersonate for service accounts
33783
33784 · thanks to everyone who tested, explored and contributed docs
33785
33786 · Add --drive-use-created-date to use created date as modified date
33787 (nbuchanan)
33788
33789 · Request the export formats only when required
33790
33791 · This makes rclone quicker when there are no google docs
33792
33793 · Fix finding paths with latin1 chars (a workaround for a drive bug)
33794
33795 · Fix copying of a single Google doc file
33796
33797 · Fix --drive-auth-owner-only to look in all directories
33798
33799 · HTTP
33800
33801 · Fix handling of directories with & in
33802
33803 · Onedrive
33804
33805 · Removed upload cutoff and always do session uploads
33806
33807 · this stops the creation of multiple versions on business onedrive
33808
33809 · Overwrite object size value with real size when reading file.
33810 (Victor)
33811
33812 · this fixes oddities when onedrive misreports the size of images
33813
33814 · Pcloud
33815
33816 · Remove unused chunked upload flag and code
33817
33818 · Qingstor
33819
33820 · Don't check for bucket/container presence if listing was OK
33821
33822 · this makes rclone do one less request per invocation
33823
33824 · S3
33825
33826 · Support hashes for multipart files (Chris Redekop)
33827
33828 · Initial support for IBM COS (S3) (Giri Badanahatti)
33829
33830 · Update docs to discourage use of v2 auth with CEPH and others
33831
33832 · Don't check for bucket/container presence if listing was OK
33833
33834 · this makes rclone do one less request per invocation
33835
33836 · Fix server-side copy and set modtime on files with + in
33837
33838 · SFTP
33839
33840 · Add option to disable remote hash check command execution (Jon
33841 Fautley)
33842
33843 · Add --sftp-ask-password flag to prompt for password when needed
33844 (Leo R. Lundgren)
33845
33846 · Add set_modtime configuration option
33847
33848 · Fix following of symlinks
33849
33850 · Fix reading config file outside of Fs setup
33851
33852 · Fix reading $USER in username fallback not $HOME
33853
33854 · Fix running under crontab - Use correct OS way of reading username
33855
33856 · Swift
33857
33858 · Fix refresh of authentication token
33859
33860 · in v1.39 a bug was introduced which ignored new tokens - this
33861 fixes it
33862
33863 · Fix extra HEAD transaction when uploading a new file
33864
33865 · Don't check for bucket/container presence if listing was OK
33866
33867 · this makes rclone do one less request per invocation
33868
33869 · Webdav
33870
33871 · Add new time formats to support mydrive.ch and others
33872
33873 v1.39 - 2017-12-23
33874 · New backends
33875
33876 · WebDAV
33877
33878 · tested with nextcloud, owncloud, put.io and others!
33879
33880 · Pcloud
33881
33882 · cache - wraps a cache around other backends (Remus Bunduc)
33883
33884 · useful in combination with mount
33885
33886 · NB this feature is in beta so use with care
33887
33888 · New commands
33889
33890 · serve command with subcommands:
33891
33892 · serve webdav: this implements a webdav server for any rclone re‐
33893 mote.
33894
33895 · serve http: command to serve a remote over HTTP
33896
33897 · config: add sub commands for full config file management
33898
33899 · create/delete/dump/edit/file/password/providers/show/update
33900
33901 · touch: to create or update the timestamp of a file (Jakub Tasiems‐
33902 ki)
33903
33904 · New Features
33905
33906 · curl install for rclone (Filip Bartodziej)
33907
33908 · --stats now shows percentage, size, rate and ETA in condensed form
33909 (Ishuah Kariuki)
33910
33911 · --exclude-if-present to exclude a directory if a file is present
33912 (Iakov Davydov)
33913
33914 · rmdirs: add --leave-root flag (lewapm)
33915
33916 · move: add --delete-empty-src-dirs flag to remove dirs after move
33917 (Ishuah Kariuki)
33918
33919 · Add --dump flag, introduce --dump requests, responses and remove
33920 --dump-auth, --dump-filters
33921
33922 · Obscure X-Auth-Token: from headers when dumping too
33923
33924 · Document and implement exit codes for different failure modes
33925 (Ishuah Kariuki)
33926
33927 · Compile
33928
33929 · Bug Fixes
33930
33931 · Retry lots more different types of errors to make multipart trans‐
33932 fers more reliable
33933
33934 · Save the config before asking for a token, fixes disappearing oauth
33935 config
33936
33937 · Warn the user if --include and --exclude are used together (Ernest
33938 Borowski)
33939
33940 · Fix duplicate files (e.g. on Google drive) causing spurious copies
33941
33942 · Allow trailing and leading whitespace for passwords (Jason Rose)
33943
33944 · ncdu: fix crashes on empty directories
33945
33946 · rcat: fix goroutine leak
33947
33948 · moveto/copyto: Fix to allow copying to the same name
33949
33950 · Mount
33951
33952 · --vfs-cache mode to make writes into mounts more reliable.
33953
33954 · this requires caching files on the disk (see --cache-dir)
33955
33956 · As this is a new feature, use with care
33957
33958 · Use sdnotify to signal systemd the mount is ready (Fabian Möller)
33959
33960 · Check if directory is not empty before mounting (Ernest Borowski)
33961
33962 · Local
33963
33964 · Add error message for cross file system moves
33965
33966 · Fix equality check for times
33967
33968 · Dropbox
33969
33970 · Rework multipart upload
33971
33972 · buffer the chunks when uploading large files so they can be re‐
33973 tried
33974
33975 · change default chunk size to 48MB now we are buffering them in
33976 memory
33977
33978 · retry every error after the first chunk is done successfully
33979
33980 · Fix error when renaming directories
33981
33982 · Swift
33983
33984 · Fix crash on bad authentication
33985
33986 · Google Drive
33987
33988 · Add service account support (Tim Cooijmans)
33989
33990 · S3
33991
33992 · Make it work properly with Digital Ocean Spaces (Andrew
33993 Starr-Bochicchio)
33994
33995 · Fix crash if a bad listing is received
33996
33997 · Add support for ECS task IAM roles (David Minor)
33998
33999 · Backblaze B2
34000
34001 · Fix multipart upload retries
34002
34003 · Fix --hard-delete to make it work 100% of the time
34004
34005 · Swift
34006
34007 · Allow authentication with storage URL and auth key (Giovanni Pizzi)
34008
34009 · Add new fields for swift configuration to support IBM Bluemix Swift
34010 (Pierre Carlson)
34011
34012 · Add OS_TENANT_ID and OS_USER_ID to config
34013
34014 · Allow configs with user id instead of user name
34015
34016 · Check if swift segments container exists before creating (John
34017 Leach)
34018
34019 · Fix memory leak in swift transfers (upstream fix)
34020
34021 · SFTP
34022
34023 · Add option to enable the use of aes128-cbc cipher (Jon Fautley)
34024
34025 · Amazon cloud drive
34026
34027 · Fix download of large files failing with "Only one auth mechanism
34028 allowed"
34029
34030 · crypt
34031
34032 · Option to encrypt directory names or leave them intact
34033
34034 · Implement DirChangeNotify (Fabian Möller)
34035
34036 · onedrive
34037
34038 · Add option to choose resourceURL during setup of OneDrive Business
34039 account if more than one is available for user
34040
34041 v1.38 - 2017-09-30
34042 · New backends
34043
34044 · Azure Blob Storage (thanks Andrei Dragomir)
34045
34046 · Box
34047
34048 · Onedrive for Business (thanks Oliver Heyme)
34049
34050 · QingStor from QingCloud (thanks wuyu)
34051
34052 · New commands
34053
34054 · rcat - read from standard input and stream upload
34055
34056 · tree - shows a nicely formatted recursive listing
34057
34058 · cryptdecode - decode crypted file names (thanks ishuah)
34059
34060 · config show - print the config file
34061
34062 · config file - print the config file location
34063
34064 · New Features
34065
34066 · Empty directories are deleted on sync
34067
34068 · dedupe - implement merging of duplicate directories
34069
34070 · check and cryptcheck made more consistent and use less memory
34071
34072 · cleanup for remaining remotes (thanks ishuah)
34073
34074 · --immutable for ensuring that files don't change (thanks Jacob Mc‐
34075 Namee)
34076
34077 · --user-agent option (thanks Alex McGrath Kraak)
34078
34079 · --disable flag to disable optional features
34080
34081 · --bind flag for choosing the local addr on outgoing connections
34082
34083 · Support for zsh auto-completion (thanks bpicode)
34084
34085 · Stop normalizing file names but do a normalized compare in sync
34086
34087 · Compile
34088
34089 · Update to using go1.9 as the default go version
34090
34091 · Remove snapd build due to maintenance problems
34092
34093 · Bug Fixes
34094
34095 · Improve retriable error detection which makes multipart uploads
34096 better
34097
34098 · Make check obey --ignore-size
34099
34100 · Fix bwlimit toggle in conjunction with schedules (thanks cbruegg)
34101
34102 · config ensures newly written config is on the same mount
34103
34104 · Local
34105
34106 · Revert to copy when moving file across file system boundaries
34107
34108 · --skip-links to suppress symlink warnings (thanks Zhiming Wang)
34109
34110 · Mount
34111
34112 · Re-use rcat internals to support uploads from all remotes
34113
34114 · Dropbox
34115
34116 · Fix "entry doesn't belong in directory" error
34117
34118 · Stop using deprecated API methods
34119
34120 · Swift
34121
34122 · Fix server-side copy to empty container with --fast-list
34123
34124 · Google Drive
34125
34126 · Change the default for --drive-use-trash to true
34127
34128 · S3
34129
34130 · Set session token when using STS (thanks Girish Ramakrishnan)
34131
34132 · Glacier docs and error messages (thanks Jan Varho)
34133
34134 · Read 1000 (not 1024) items in dir listings to fix Wasabi
34135
34136 · Backblaze B2
34137
34138 · Fix SHA1 mismatch when downloading files with no SHA1
34139
34140 · Calculate missing hashes on the fly instead of spooling
34141
34142 · --b2-hard-delete to permanently delete (not hide) files (thanks
34143 John Papandriopoulos)
34144
34145 · Hubic
34146
34147 · Fix creating containers - no longer have to use the default con‐
34148 tainer
34149
34150 · Swift
34151
34152 · Optionally configure from a standard set of OpenStack environment
34153 vars
34154
34155 · Add endpoint_type config
34156
34157 · Google Cloud Storage
34158
34159 · Fix bucket creation to work with limited permission users
34160
34161 · SFTP
34162
34163 · Implement connection pooling for multiple ssh connections
34164
34165 · Limit new connections per second
34166
34167 · Add support for MD5 and SHA1 hashes where available (thanks Chris‐
34168 tian Brüggemann)
34169
34170 · HTTP
34171
34172 · Fix URL encoding issues
34173
34174 · Fix directories with : in
34175
34176 · Fix panic with URL encoded content
34177
34178 v1.37 - 2017-07-22
34179 · New backends
34180
34181 · FTP - thanks to Antonio Messina
34182
34183 · HTTP - thanks to Vasiliy Tolstov
34184
34185 · New commands
34186
34187 · rclone ncdu - for exploring a remote with a text based user inter‐
34188 face.
34189
34190 · rclone lsjson - for listing with a machine readable output
34191
34192 · rclone dbhashsum - to show Dropbox style hashes of files (local or
34193 Dropbox)
34194
34195 · New Features
34196
34197 · Implement --fast-list flag
34198
34199 · This allows remotes to list recursively if they can
34200
34201 · This uses less transactions (important if you pay for them)
34202
34203 · This may or may not be quicker
34204
34205 · This will use more memory as it has to hold the listing in memory
34206
34207 · --old-sync-method deprecated - the remaining uses are covered by
34208 --fast-list
34209
34210 · This involved a major re-write of all the listing code
34211
34212 · Add --tpslimit and --tpslimit-burst to limit transactions per sec‐
34213 ond
34214
34215 · this is useful in conjunction with rclone mount to limit external
34216 apps
34217
34218 · Add --stats-log-level so can see --stats without -v
34219
34220 · Print password prompts to stderr - Hraban Luyat
34221
34222 · Warn about duplicate files when syncing
34223
34224 · Oauth improvements
34225
34226 · allow auth_url and token_url to be set in the config file
34227
34228 · Print redirection URI if using own credentials.
34229
34230 · Don't Mkdir at the start of sync to save transactions
34231
34232 · Compile
34233
34234 · Update build to go1.8.3
34235
34236 · Require go1.6 for building rclone
34237
34238 · Compile 386 builds with "GO386=387" for maximum compatibility
34239
34240 · Bug Fixes
34241
34242 · Fix menu selection when no remotes
34243
34244 · Config saving reworked to not kill the file if disk gets full
34245
34246 · Don't delete remote if name does not change while renaming
34247
34248 · moveto, copyto: report transfers and checks as per move and copy
34249
34250 · Local
34251
34252 · Add --local-no-unicode-normalization flag - Bob Potter
34253
34254 · Mount
34255
34256 · Now supported on Windows using cgofuse and WinFsp - thanks to Bill
34257 Zissimopoulos for much help
34258
34259 · Compare checksums on upload/download via FUSE
34260
34261 · Unmount when program ends with SIGINT (Ctrl+C) or SIGTERM - Jérôme
34262 Vizcaino
34263
34264 · On read only open of file, make open pending until first read
34265
34266 · Make --read-only reject modify operations
34267
34268 · Implement ModTime via FUSE for remotes that support it
34269
34270 · Allow modTime to be changed even before all writers are closed
34271
34272 · Fix panic on renames
34273
34274 · Fix hang on errored upload
34275
34276 · Crypt
34277
34278 · Report the name:root as specified by the user
34279
34280 · Add an "obfuscate" option for filename encryption - Stephen Harris
34281
34282 · Amazon Drive
34283
34284 · Fix initialization order for token renewer
34285
34286 · Remove revoked credentials, allow oauth proxy config and update
34287 docs
34288
34289 · B2
34290
34291 · Reduce minimum chunk size to 5MB
34292
34293 · Drive
34294
34295 · Add team drive support
34296
34297 · Reduce bandwidth by adding fields for partial responses - Martin
34298 Kristensen
34299
34300 · Implement --drive-shared-with-me flag to view shared with me files
34301 - Danny Tsai
34302
34303 · Add --drive-trashed-only to read only the files in the trash
34304
34305 · Remove obsolete --drive-full-list
34306
34307 · Add missing seek to start on retries of chunked uploads
34308
34309 · Fix stats accounting for upload
34310
34311 · Convert / in names to a unicode equivalent (/)
34312
34313 · Poll for Google Drive changes when mounted
34314
34315 · OneDrive
34316
34317 · Fix the uploading of files with spaces
34318
34319 · Fix initialization order for token renewer
34320
34321 · Display speeds accurately when uploading - Yoni Jah
34322
34323 · Swap to using http://localhost:53682/ as redirect URL - Michael
34324 Ledin
34325
34326 · Retry on token expired error, reset upload body on retry - Yoni Jah
34327
34328 · Google Cloud Storage
34329
34330 · Add ability to specify location and storage class via config and
34331 command line - thanks gdm85
34332
34333 · Create container if necessary on server-side copy
34334
34335 · Increase directory listing chunk to 1000 to increase performance
34336
34337 · Obtain a refresh token for GCS - Steven Lu
34338
34339 · Yandex
34340
34341 · Fix the name reported in log messages (was empty)
34342
34343 · Correct error return for listing empty directory
34344
34345 · Dropbox
34346
34347 · Rewritten to use the v2 API
34348
34349 · Now supports ModTime
34350
34351 · Can only set by uploading the file again
34352
34353 · If you uploaded with an old rclone, rclone may upload every‐
34354 thing again
34355
34356 · Use --size-only or --checksum to avoid this
34357
34358 · Now supports the Dropbox content hashing scheme
34359
34360 · Now supports low level retries
34361
34362 · S3
34363
34364 · Work around eventual consistency in bucket creation
34365
34366 · Create container if necessary on server-side copy
34367
34368 · Add us-east-2 (Ohio) and eu-west-2 (London) S3 regions - Zahiar
34369 Ahmed
34370
34371 · Swift, Hubic
34372
34373 · Fix zero length directory markers showing in the subdirectory list‐
34374 ing
34375
34376 · this caused lots of duplicate transfers
34377
34378 · Fix paged directory listings
34379
34380 · this caused duplicate directory errors
34381
34382 · Create container if necessary on server-side copy
34383
34384 · Increase directory listing chunk to 1000 to increase performance
34385
34386 · Make sensible error if the user forgets the container
34387
34388 · SFTP
34389
34390 · Add support for using ssh key files
34391
34392 · Fix under Windows
34393
34394 · Fix ssh agent on Windows
34395
34396 · Adapt to latest version of library - Igor Kharin
34397
34398 v1.36 - 2017-03-18
34399 · New Features
34400
34401 · SFTP remote (Jack Schmidt)
34402
34403 · Re-implement sync routine to work a directory at a time reducing
34404 memory usage
34405
34406 · Logging revamped to be more inline with rsync - now much quieter *
34407 -v only shows transfers * -vv is for full debug * --syslog to log
34408 to syslog on capable platforms
34409
34410 · Implement --backup-dir and --suffix
34411
34412 · Implement --track-renames (initial implementation by Bjørn Erik
34413 Pedersen)
34414
34415 · Add time-based bandwidth limits (Lukas Loesche)
34416
34417 · rclone cryptcheck: checks integrity of crypt remotes
34418
34419 · Allow all config file variables and options to be set from environ‐
34420 ment variables
34421
34422 · Add --buffer-size parameter to control buffer size for copy
34423
34424 · Make --delete-after the default
34425
34426 · Add --ignore-checksum flag (fixed by Hisham Zarka)
34427
34428 · rclone check: Add --download flag to check all the data, not just
34429 hashes
34430
34431 · rclone cat: add --head, --tail, --offset, --count and --discard
34432
34433 · rclone config: when choosing from a list, allow the value to be en‐
34434 tered too
34435
34436 · rclone config: allow rename and copy of remotes
34437
34438 · rclone obscure: for generating encrypted passwords for rclone's
34439 config (T.C. Ferguson)
34440
34441 · Comply with XDG Base Directory specification (Dario Giovannetti)
34442
34443 · this moves the default location of the config file in a backwards
34444 compatible way
34445
34446 · Release changes
34447
34448 · Ubuntu snap support (Dedsec1)
34449
34450 · Compile with go 1.8
34451
34452 · MIPS/Linux big and little endian support
34453
34454 · Bug Fixes
34455
34456 · Fix copyto copying things to the wrong place if the destination dir
34457 didn't exist
34458
34459 · Fix parsing of remotes in moveto and copyto
34460
34461 · Fix --delete-before deleting files on copy
34462
34463 · Fix --files-from with an empty file copying everything
34464
34465 · Fix sync: don't update mod times if --dry-run set
34466
34467 · Fix MimeType propagation
34468
34469 · Fix filters to add ** rules to directory rules
34470
34471 · Local
34472
34473 · Implement -L, --copy-links flag to allow rclone to follow symlinks
34474
34475 · Open files in write only mode so rclone can write to an rclone
34476 mount
34477
34478 · Fix unnormalised unicode causing problems reading directories
34479
34480 · Fix interaction between -x flag and --max-depth
34481
34482 · Mount
34483
34484 · Implement proper directory handling (mkdir, rmdir, renaming)
34485
34486 · Make include and exclude filters apply to mount
34487
34488 · Implement read and write async buffers - control with --buffer-size
34489
34490 · Fix fsync on for directories
34491
34492 · Fix retry on network failure when reading off crypt
34493
34494 · Crypt
34495
34496 · Add --crypt-show-mapping to show encrypted file mapping
34497
34498 · Fix crypt writer getting stuck in a loop
34499
34500 · IMPORTANT this bug had the potential to cause data corruption
34501 when
34502
34503 · reading data from a network based remote and
34504
34505 · writing to a crypt on Google Drive
34506
34507 · Use the cryptcheck command to validate your data if you are con‐
34508 cerned
34509
34510 · If syncing two crypt remotes, sync the unencrypted remote
34511
34512 · Amazon Drive
34513
34514 · Fix panics on Move (rename)
34515
34516 · Fix panic on token expiry
34517
34518 · B2
34519
34520 · Fix inconsistent listings and rclone check
34521
34522 · Fix uploading empty files with go1.8
34523
34524 · Constrain memory usage when doing multipart uploads
34525
34526 · Fix upload url not being refreshed properly
34527
34528 · Drive
34529
34530 · Fix Rmdir on directories with trashed files
34531
34532 · Fix "Ignoring unknown object" when downloading
34533
34534 · Add --drive-list-chunk
34535
34536 · Add --drive-skip-gdocs (Károly Oláh)
34537
34538 · OneDrive
34539
34540 · Implement Move
34541
34542 · Fix Copy
34543
34544 · Fix overwrite detection in Copy
34545
34546 · Fix waitForJob to parse errors correctly
34547
34548 · Use token renewer to stop auth errors on long uploads
34549
34550 · Fix uploading empty files with go1.8
34551
34552 · Google Cloud Storage
34553
34554 · Fix depth 1 directory listings
34555
34556 · Yandex
34557
34558 · Fix single level directory listing
34559
34560 · Dropbox
34561
34562 · Normalise the case for single level directory listings
34563
34564 · Fix depth 1 listing
34565
34566 · S3
34567
34568 · Added ca-central-1 region (Jon Yergatian)
34569
34570 v1.35 - 2017-01-02
34571 · New Features
34572
34573 · moveto and copyto commands for choosing a destination name on
34574 copy/move
34575
34576 · rmdirs command to recursively delete empty directories
34577
34578 · Allow repeated --include/--exclude/--filter options
34579
34580 · Only show transfer stats on commands which transfer stuff
34581
34582 · show stats on any command using the --stats flag
34583
34584 · Allow overlapping directories in move when server-side dir move is
34585 supported
34586
34587 · Add --stats-unit option - thanks Scott McGillivray
34588
34589 · Bug Fixes
34590
34591 · Fix the config file being overwritten when two rclone instances are
34592 running
34593
34594 · Make rclone lsd obey the filters properly
34595
34596 · Fix compilation on mips
34597
34598 · Fix not transferring files that don't differ in size
34599
34600 · Fix panic on nil retry/fatal error
34601
34602 · Mount
34603
34604 · Retry reads on error - should help with reliability a lot
34605
34606 · Report the modification times for directories from the remote
34607
34608 · Add bandwidth accounting and limiting (fixes --bwlimit)
34609
34610 · If --stats provided will show stats and which files are transfer‐
34611 ring
34612
34613 · Support R/W files if truncate is set.
34614
34615 · Implement statfs interface so df works
34616
34617 · Note that write is now supported on Amazon Drive
34618
34619 · Report number of blocks in a file - thanks Stefan Breunig
34620
34621 · Crypt
34622
34623 · Prevent the user pointing crypt at itself
34624
34625 · Fix failed to authenticate decrypted block errors
34626
34627 · these will now return the underlying unexpected EOF instead
34628
34629 · Amazon Drive
34630
34631 · Add support for server-side move and directory move - thanks Stefan
34632 Breunig
34633
34634 · Fix nil pointer deref on size attribute
34635
34636 · B2
34637
34638 · Use new prefix and delimiter parameters in directory listings
34639
34640 · This makes --max-depth 1 dir listings as used in mount much
34641 faster
34642
34643 · Reauth the account while doing uploads too - should help with token
34644 expiry
34645
34646 · Drive
34647
34648 · Make DirMove more efficient and complain about moving the root
34649
34650 · Create destination directory on Move()
34651
34652 v1.34 - 2016-11-06
34653 · New Features
34654
34655 · Stop single file and --files-from operations iterating through the
34656 source bucket.
34657
34658 · Stop removing failed upload to cloud storage remotes
34659
34660 · Make ContentType be preserved for cloud to cloud copies
34661
34662 · Add support to toggle bandwidth limits via SIGUSR2 - thanks Marco
34663 Paganini
34664
34665 · rclone check shows count of hashes that couldn't be checked
34666
34667 · rclone listremotes command
34668
34669 · Support linux/arm64 build - thanks Fredrik Fornwall
34670
34671 · Remove Authorization: lines from --dump-headers output
34672
34673 · Bug Fixes
34674
34675 · Ignore files with control characters in the names
34676
34677 · Fix rclone move command
34678
34679 · Delete src files which already existed in dst
34680
34681 · Fix deletion of src file when dst file older
34682
34683 · Fix rclone check on crypted file systems
34684
34685 · Make failed uploads not count as "Transferred"
34686
34687 · Make sure high level retries show with -q
34688
34689 · Use a vendor directory with godep for repeatable builds
34690
34691 · rclone mount - FUSE
34692
34693 · Implement FUSE mount options
34694
34695 · --no-modtime, --debug-fuse, --read-only, --allow-non-empty, --al‐
34696 low-root, --allow-other
34697
34698 · --default-permissions, --write-back-cache, --max-read-ahead,
34699 --umask, --uid, --gid
34700
34701 · Add --dir-cache-time to control caching of directory entries
34702
34703 · Implement seek for files opened for read (useful for video players)
34704
34705 · with -no-seek flag to disable
34706
34707 · Fix crash on 32 bit ARM (alignment of 64 bit counter)
34708
34709 · ...and many more internal fixes and improvements!
34710
34711 · Crypt
34712
34713 · Don't show encrypted password in configurator to stop confusion
34714
34715 · Amazon Drive
34716
34717 · New wait for upload option --acd-upload-wait-per-gb
34718
34719 · upload timeouts scale by file size and can be disabled
34720
34721 · Add 502 Bad Gateway to list of errors we retry
34722
34723 · Fix overwriting a file with a zero length file
34724
34725 · Fix ACD file size warning limit - thanks Felix Bünemann
34726
34727 · Local
34728
34729 · Unix: implement -x/--one-file-system to stay on a single file sys‐
34730 tem
34731
34732 · thanks Durval Menezes and Luiz Carlos Rumbelsperger Viana
34733
34734 · Windows: ignore the symlink bit on files
34735
34736 · Windows: Ignore directory based junction points
34737
34738 · B2
34739
34740 · Make sure each upload has at least one upload slot - fixes strange
34741 upload stats
34742
34743 · Fix uploads when using crypt
34744
34745 · Fix download of large files (sha1 mismatch)
34746
34747 · Return error when we try to create a bucket which someone else owns
34748
34749 · Update B2 docs with Data usage, and Crypt section - thanks Tomasz
34750 Mazur
34751
34752 · S3
34753
34754 · Command line and config file support for
34755
34756 · Setting/overriding ACL - thanks Radek Senfeld
34757
34758 · Setting storage class - thanks Asko Tamm
34759
34760 · Drive
34761
34762 · Make exponential backoff work exactly as per Google specification
34763
34764 · add .epub, .odp and .tsv as export formats.
34765
34766 · Swift
34767
34768 · Don't read metadata for directory marker objects
34769
34770 v1.33 - 2016-08-24
34771 · New Features
34772
34773 · Implement encryption
34774
34775 · data encrypted in NACL secretbox format
34776
34777 · with optional file name encryption
34778
34779 · New commands
34780
34781 · rclone mount - implements FUSE mounting of remotes (EXPERIMENTAL)
34782
34783 · works on Linux, FreeBSD and OS X (need testers for the last 2!)
34784
34785 · rclone cat - outputs remote file or files to the terminal
34786
34787 · rclone genautocomplete - command to make a bash completion script
34788 for rclone
34789
34790 · Editing a remote using rclone config now goes through the wizard
34791
34792 · Compile with go 1.7 - this fixes rclone on macOS Sierra and on 386
34793 processors
34794
34795 · Use cobra for sub commands and docs generation
34796
34797 · drive
34798
34799 · Document how to make your own client_id
34800
34801 · s3
34802
34803 · User-configurable Amazon S3 ACL (thanks Radek Šenfeld)
34804
34805 · b2
34806
34807 · Fix stats accounting for upload - no more jumping to 100% done
34808
34809 · On cleanup delete hide marker if it is the current file
34810
34811 · New B2 API endpoint (thanks Per Cederberg)
34812
34813 · Set maximum backoff to 5 Minutes
34814
34815 · onedrive
34816
34817 · Fix URL escaping in file names - e.g. uploading files with + in
34818 them.
34819
34820 · amazon cloud drive
34821
34822 · Fix token expiry during large uploads
34823
34824 · Work around 408 REQUEST_TIMEOUT and 504 GATEWAY_TIMEOUT errors
34825
34826 · local
34827
34828 · Fix filenames with invalid UTF-8 not being uploaded
34829
34830 · Fix problem with some UTF-8 characters on OS X
34831
34832 v1.32 - 2016-07-13
34833 · Backblaze B2
34834
34835 · Fix upload of files large files not in root
34836
34837 v1.31 - 2016-07-13
34838 · New Features
34839
34840 · Reduce memory on sync by about 50%
34841
34842 · Implement --no-traverse flag to stop copy traversing the destina‐
34843 tion remote.
34844
34845 · This can be used to reduce memory usage down to the smallest pos‐
34846 sible.
34847
34848 · Useful to copy a small number of files into a large destination
34849 folder.
34850
34851 · Implement cleanup command for emptying trash / removing old ver‐
34852 sions of files
34853
34854 · Currently B2 only
34855
34856 · Single file handling improved
34857
34858 · Now copied with --files-from
34859
34860 · Automatically sets --no-traverse when copying a single file
34861
34862 · Info on using installing with ansible - thanks Stefan Weichinger
34863
34864 · Implement --no-update-modtime flag to stop rclone fixing the remote
34865 modified times.
34866
34867 · Bug Fixes
34868
34869 · Fix move command - stop it running for overlapping Fses - this was
34870 causing data loss.
34871
34872 · Local
34873
34874 · Fix incomplete hashes - this was causing problems for B2.
34875
34876 · Amazon Drive
34877
34878 · Rename Amazon Cloud Drive to Amazon Drive - no changes to config
34879 file needed.
34880
34881 · Swift
34882
34883 · Add support for non-default project domain - thanks Antonio Messi‐
34884 na.
34885
34886 · S3
34887
34888 · Add instructions on how to use rclone with minio.
34889
34890 · Add ap-northeast-2 (Seoul) and ap-south-1 (Mumbai) regions.
34891
34892 · Skip setting the modified time for objects > 5GB as it isn't possi‐
34893 ble.
34894
34895 · Backblaze B2
34896
34897 · Add --b2-versions flag so old versions can be listed and retrieved.
34898
34899 · Treat 403 errors (e.g. cap exceeded) as fatal.
34900
34901 · Implement cleanup command for deleting old file versions.
34902
34903 · Make error handling compliant with B2 integrations notes.
34904
34905 · Fix handling of token expiry.
34906
34907 · Implement --b2-test-mode to set X-Bz-Test-Mode header.
34908
34909 · Set cutoff for chunked upload to 200MB as per B2 guidelines.
34910
34911 · Make upload multi-threaded.
34912
34913 · Dropbox
34914
34915 · Don't retry 461 errors.
34916
34917 v1.30 - 2016-06-18
34918 · New Features
34919
34920 · Directory listing code reworked for more features and better error
34921 reporting (thanks to Klaus Post for help). This enables
34922
34923 · Directory include filtering for efficiency
34924
34925 · --max-depth parameter
34926
34927 · Better error reporting
34928
34929 · More to come
34930
34931 · Retry more errors
34932
34933 · Add --ignore-size flag - for uploading images to onedrive
34934
34935 · Log -v output to stdout by default
34936
34937 · Display the transfer stats in more human readable form
34938
34939 · Make 0 size files specifiable with --max-size 0b
34940
34941 · Add b suffix so we can specify bytes in --bwlimit, --min-size, etc.
34942
34943 · Use "password:" instead of "password>" prompt - thanks Klaus Post
34944 and Leigh Klotz
34945
34946 · Bug Fixes
34947
34948 · Fix retry doing one too many retries
34949
34950 · Local
34951
34952 · Fix problems with OS X and UTF-8 characters
34953
34954 · Amazon Drive
34955
34956 · Check a file exists before uploading to help with 408 Conflict er‐
34957 rors
34958
34959 · Reauth on 401 errors - this has been causing a lot of problems
34960
34961 · Work around spurious 403 errors
34962
34963 · Restart directory listings on error
34964
34965 · Google Drive
34966
34967 · Check a file exists before uploading to help with duplicates
34968
34969 · Fix retry of multipart uploads
34970
34971 · Backblaze B2
34972
34973 · Implement large file uploading
34974
34975 · S3
34976
34977 · Add AES256 server-side encryption for - thanks Justin R. Wilson
34978
34979 · Google Cloud Storage
34980
34981 · Make sure we don't use conflicting content types on upload
34982
34983 · Add service account support - thanks Michal Witkowski
34984
34985 · Swift
34986
34987 · Add auth version parameter
34988
34989 · Add domain option for openstack (v3 auth) - thanks Fabian Ruff
34990
34991 v1.29 - 2016-04-18
34992 · New Features
34993
34994 · Implement -I, --ignore-times for unconditional upload
34995
34996 · Improve dedupecommand
34997
34998 · Now removes identical copies without asking
34999
35000 · Now obeys --dry-run
35001
35002 · Implement --dedupe-mode for non interactive running
35003
35004 · --dedupe-mode interactive - interactive the default.
35005
35006 · --dedupe-mode skip - removes identical files then skips any‐
35007 thing left.
35008
35009 · --dedupe-mode first - removes identical files then keeps the
35010 first one.
35011
35012 · --dedupe-mode newest - removes identical files then keeps the
35013 newest one.
35014
35015 · --dedupe-mode oldest - removes identical files then keeps the
35016 oldest one.
35017
35018 · --dedupe-mode rename - removes identical files then renames the
35019 rest to be different.
35020
35021 · Bug fixes
35022
35023 · Make rclone check obey the --size-only flag.
35024
35025 · Use "application/octet-stream" if discovered mime type is invalid.
35026
35027 · Fix missing "quit" option when there are no remotes.
35028
35029 · Google Drive
35030
35031 · Increase default chunk size to 8 MB - increases upload speed of big
35032 files
35033
35034 · Speed up directory listings and make more reliable
35035
35036 · Add missing retries for Move and DirMove - increases reliability
35037
35038 · Preserve mime type on file update
35039
35040 · Backblaze B2
35041
35042 · Enable mod time syncing
35043
35044 · This means that B2 will now check modification times
35045
35046 · It will upload new files to update the modification times
35047
35048 · (there isn't an API to just set the mod time.)
35049
35050 · If you want the old behaviour use --size-only.
35051
35052 · Update API to new version
35053
35054 · Fix parsing of mod time when not in metadata
35055
35056 · Swift/Hubic
35057
35058 · Don't return an MD5SUM for static large objects
35059
35060 · S3
35061
35062 · Fix uploading files bigger than 50GB
35063
35064 v1.28 - 2016-03-01
35065 · New Features
35066
35067 · Configuration file encryption - thanks Klaus Post
35068
35069 · Improve rclone config adding more help and making it easier to un‐
35070 derstand
35071
35072 · Implement -u/--update so creation times can be used on all remotes
35073
35074 · Implement --low-level-retries flag
35075
35076 · Optionally disable gzip compression on downloads with --no-gzip-en‐
35077 coding
35078
35079 · Bug fixes
35080
35081 · Don't make directories if --dry-run set
35082
35083 · Fix and document the move command
35084
35085 · Fix redirecting stderr on unix-like OSes when using --log-file
35086
35087 · Fix delete command to wait until all finished - fixes missing
35088 deletes.
35089
35090 · Backblaze B2
35091
35092 · Use one upload URL per go routine fixes more than one upload using
35093 auth token
35094
35095 · Add pacing, retries and reauthentication - fixes token expiry prob‐
35096 lems
35097
35098 · Upload without using a temporary file from local (and remotes which
35099 support SHA1)
35100
35101 · Fix reading metadata for all files when it shouldn't have been
35102
35103 · Drive
35104
35105 · Fix listing drive documents at root
35106
35107 · Disable copy and move for Google docs
35108
35109 · Swift
35110
35111 · Fix uploading of chunked files with non ASCII characters
35112
35113 · Allow setting of storage_url in the config - thanks Xavier Lucas
35114
35115 · S3
35116
35117 · Allow IAM role and credentials from environment variables - thanks
35118 Brian Stengaard
35119
35120 · Allow low privilege users to use S3 (check if directory exists dur‐
35121 ing Mkdir) - thanks Jakub Gedeon
35122
35123 · Amazon Drive
35124
35125 · Retry on more things to make directory listings more reliable
35126
35127 v1.27 - 2016-01-31
35128 · New Features
35129
35130 · Easier headless configuration with rclone authorize
35131
35132 · Add support for multiple hash types - we now check SHA1 as well as
35133 MD5 hashes.
35134
35135 · delete command which does obey the filters (unlike purge)
35136
35137 · dedupe command to deduplicate a remote. Useful with Google Drive.
35138
35139 · Add --ignore-existing flag to skip all files that exist on destina‐
35140 tion.
35141
35142 · Add --delete-before, --delete-during, --delete-after flags.
35143
35144 · Add --memprofile flag to debug memory use.
35145
35146 · Warn the user about files with same name but different case
35147
35148 · Make --include rules add their implicit exclude * at the end of the
35149 filter list
35150
35151 · Deprecate compiling with go1.3
35152
35153 · Amazon Drive
35154
35155 · Fix download of files > 10 GB
35156
35157 · Fix directory traversal ("Next token is expired") for large direc‐
35158 tory listings
35159
35160 · Remove 409 conflict from error codes we will retry - stops very
35161 long pauses
35162
35163 · Backblaze B2
35164
35165 · SHA1 hashes now checked by rclone core
35166
35167 · Drive
35168
35169 · Add --drive-auth-owner-only to only consider files owned by the us‐
35170 er - thanks Björn Harrtell
35171
35172 · Export Google documents
35173
35174 · Dropbox
35175
35176 · Make file exclusion error controllable with -q
35177
35178 · Swift
35179
35180 · Fix upload from unprivileged user.
35181
35182 · S3
35183
35184 · Fix updating of mod times of files with + in.
35185
35186 · Local
35187
35188 · Add local file system option to disable UNC on Windows.
35189
35190 v1.26 - 2016-01-02
35191 · New Features
35192
35193 · Yandex storage backend - thank you Dmitry Burdeev ("dibu")
35194
35195 · Implement Backblaze B2 storage backend
35196
35197 · Add --min-age and --max-age flags - thank you Adriano Aurélio
35198 Meirelles
35199
35200 · Make ls/lsl/md5sum/size/check obey includes and excludes
35201
35202 · Fixes
35203
35204 · Fix crash in http logging
35205
35206 · Upload releases to github too
35207
35208 · Swift
35209
35210 · Fix sync for chunked files
35211
35212 · OneDrive
35213
35214 · Re-enable server-side copy
35215
35216 · Don't mask HTTP error codes with JSON decode error
35217
35218 · S3
35219
35220 · Fix corrupting Content-Type on mod time update (thanks Joseph
35221 Spurrier)
35222
35223 v1.25 - 2015-11-14
35224 · New features
35225
35226 · Implement Hubic storage system
35227
35228 · Fixes
35229
35230 · Fix deletion of some excluded files without --delete-excluded
35231
35232 · This could have deleted files unexpectedly on sync
35233
35234 · Always check first with --dry-run!
35235
35236 · Swift
35237
35238 · Stop SetModTime losing metadata (e.g. X-Object-Manifest)
35239
35240 · This could have caused data loss for files > 5GB in size
35241
35242 · Use ContentType from Object to avoid lookups in listings
35243
35244 · OneDrive
35245
35246 · disable server-side copy as it seems to be broken at Microsoft
35247
35248 v1.24 - 2015-11-07
35249 · New features
35250
35251 · Add support for Microsoft OneDrive
35252
35253 · Add --no-check-certificate option to disable server certificate
35254 verification
35255
35256 · Add async readahead buffer for faster transfer of big files
35257
35258 · Fixes
35259
35260 · Allow spaces in remotes and check remote names for validity at cre‐
35261 ation time
35262
35263 · Allow '&' and disallow ':' in Windows filenames.
35264
35265 · Swift
35266
35267 · Ignore directory marker objects where appropriate - allows working
35268 with Hubic
35269
35270 · Don't delete the container if fs wasn't at root
35271
35272 · S3
35273
35274 · Don't delete the bucket if fs wasn't at root
35275
35276 · Google Cloud Storage
35277
35278 · Don't delete the bucket if fs wasn't at root
35279
35280 v1.23 - 2015-10-03
35281 · New features
35282
35283 · Implement rclone size for measuring remotes
35284
35285 · Fixes
35286
35287 · Fix headless config for drive and gcs
35288
35289 · Tell the user they should try again if the webserver method failed
35290
35291 · Improve output of --dump-headers
35292
35293 · S3
35294
35295 · Allow anonymous access to public buckets
35296
35297 · Swift
35298
35299 · Stop chunked operations logging "Failed to read info: Object Not
35300 Found"
35301
35302 · Use Content-Length on uploads for extra reliability
35303
35304 v1.22 - 2015-09-28
35305 · Implement rsync like include and exclude flags
35306
35307 · swift
35308
35309 · Support files > 5GB - thanks Sergey Tolmachev
35310
35311 v1.21 - 2015-09-22
35312 · New features
35313
35314 · Display individual transfer progress
35315
35316 · Make lsl output times in localtime
35317
35318 · Fixes
35319
35320 · Fix allowing user to override credentials again in Drive, GCS and
35321 ACD
35322
35323 · Amazon Drive
35324
35325 · Implement compliant pacing scheme
35326
35327 · Google Drive
35328
35329 · Make directory reads concurrent for increased speed.
35330
35331 v1.20 - 2015-09-15
35332 · New features
35333
35334 · Amazon Drive support
35335
35336 · Oauth support redone - fix many bugs and improve usability
35337
35338 · Use "golang.org/x/oauth2" as oauth library of choice
35339
35340 · Improve oauth usability for smoother initial signup
35341
35342 · drive, googlecloudstorage: optionally use auto config for the
35343 oauth token
35344
35345 · Implement --dump-headers and --dump-bodies debug flags
35346
35347 · Show multiple matched commands if abbreviation too short
35348
35349 · Implement server-side move where possible
35350
35351 · local
35352
35353 · Always use UNC paths internally on Windows - fixes a lot of bugs
35354
35355 · dropbox
35356
35357 · force use of our custom transport which makes timeouts work
35358
35359 · Thanks to Klaus Post for lots of help with this release
35360
35361 v1.19 - 2015-08-28
35362 · New features
35363
35364 · Server side copies for s3/swift/drive/dropbox/gcs
35365
35366 · Move command - uses server-side copies if it can
35367
35368 · Implement --retries flag - tries 3 times by default
35369
35370 · Build for plan9/amd64 and solaris/amd64 too
35371
35372 · Fixes
35373
35374 · Make a current version download with a fixed URL for scripting
35375
35376 · Ignore rmdir in limited fs rather than throwing error
35377
35378 · dropbox
35379
35380 · Increase chunk size to improve upload speeds massively
35381
35382 · Issue an error message when trying to upload bad file name
35383
35384 v1.18 - 2015-08-17
35385 · drive
35386
35387 · Add --drive-use-trash flag so rclone trashes instead of deletes
35388
35389 · Add "Forbidden to download" message for files with no downloadURL
35390
35391 · dropbox
35392
35393 · Remove datastore
35394
35395 · This was deprecated and it caused a lot of problems
35396
35397 · Modification times and MD5SUMs no longer stored
35398
35399 · Fix uploading files > 2GB
35400
35401 · s3
35402
35403 · use official AWS SDK from github.com/aws/aws-sdk-go
35404
35405 · NB will most likely require you to delete and recreate remote
35406
35407 · enable multipart upload which enables files > 5GB
35408
35409 · tested with Ceph / RadosGW / S3 emulation
35410
35411 · many thanks to Sam Liston and Brian Haymore at the Utah Center for
35412 High Performance Computing (https://www.chpc.utah.edu/) for a Ceph
35413 test account
35414
35415 · misc
35416
35417 · Show errors when reading the config file
35418
35419 · Do not print stats in quiet mode - thanks Leonid Shalupov
35420
35421 · Add FAQ
35422
35423 · Fix created directories not obeying umask
35424
35425 · Linux installation instructions - thanks Shimon Doodkin
35426
35427 v1.17 - 2015-06-14
35428 · dropbox: fix case insensitivity issues - thanks Leonid Shalupov
35429
35430 v1.16 - 2015-06-09
35431 · Fix uploading big files which was causing timeouts or panics
35432
35433 · Don't check md5sum after download with --size-only
35434
35435 v1.15 - 2015-06-06
35436 · Add --checksum flag to only discard transfers by MD5SUM - thanks Alex
35437 Couper
35438
35439 · Implement --size-only flag to sync on size not checksum & modtime
35440
35441 · Expand docs and remove duplicated information
35442
35443 · Document rclone's limitations with directories
35444
35445 · dropbox: update docs about case insensitivity
35446
35447 v1.14 - 2015-05-21
35448 · local: fix encoding of non utf-8 file names - fixes a duplicate file
35449 problem
35450
35451 · drive: docs about rate limiting
35452
35453 · google cloud storage: Fix compile after API change in
35454 "google.golang.org/api/storage/v1"
35455
35456 v1.13 - 2015-05-10
35457 · Revise documentation (especially sync)
35458
35459 · Implement --timeout and --conntimeout
35460
35461 · s3: ignore etags from multipart uploads which aren't md5sums
35462
35463 v1.12 - 2015-03-15
35464 · drive: Use chunked upload for files above a certain size
35465
35466 · drive: add --drive-chunk-size and --drive-upload-cutoff parameters
35467
35468 · drive: switch to insert from update when a failed copy deletes the
35469 upload
35470
35471 · core: Log duplicate files if they are detected
35472
35473 v1.11 - 2015-03-04
35474 · swift: add region parameter
35475
35476 · drive: fix crash on failed to update remote mtime
35477
35478 · In remote paths, change native directory separators to /
35479
35480 · Add synchronization to ls/lsl/lsd output to stop corruptions
35481
35482 · Ensure all stats/log messages to go stderr
35483
35484 · Add --log-file flag to log everything (including panics) to file
35485
35486 · Make it possible to disable stats printing with --stats=0
35487
35488 · Implement --bwlimit to limit data transfer bandwidth
35489
35490 v1.10 - 2015-02-12
35491 · s3: list an unlimited number of items
35492
35493 · Fix getting stuck in the configurator
35494
35495 v1.09 - 2015-02-07
35496 · windows: Stop drive letters (e.g. C:) getting mixed up with remotes
35497 (e.g. drive:)
35498
35499 · local: Fix directory separators on Windows
35500
35501 · drive: fix rate limit exceeded errors
35502
35503 v1.08 - 2015-02-04
35504 · drive: fix subdirectory listing to not list entire drive
35505
35506 · drive: Fix SetModTime
35507
35508 · dropbox: adapt code to recent library changes
35509
35510 v1.07 - 2014-12-23
35511 · google cloud storage: fix memory leak
35512
35513 v1.06 - 2014-12-12
35514 · Fix "Couldn't find home directory" on OSX
35515
35516 · swift: Add tenant parameter
35517
35518 · Use new location of Google API packages
35519
35520 v1.05 - 2014-08-09
35521 · Improved tests and consequently lots of minor fixes
35522
35523 · core: Fix race detected by go race detector
35524
35525 · core: Fixes after running errcheck
35526
35527 · drive: reset root directory on Rmdir and Purge
35528
35529 · fs: Document that Purger returns error on empty directory, test and
35530 fix
35531
35532 · google cloud storage: fix ListDir on subdirectory
35533
35534 · google cloud storage: re-read metadata in SetModTime
35535
35536 · s3: make reading metadata more reliable to work around eventual con‐
35537 sistency problems
35538
35539 · s3: strip trailing / from ListDir()
35540
35541 · swift: return directories without / in ListDir
35542
35543 v1.04 - 2014-07-21
35544 · google cloud storage: Fix crash on Update
35545
35546 v1.03 - 2014-07-20
35547 · swift, s3, dropbox: fix updated files being marked as corrupted
35548
35549 · Make compile with go 1.1 again
35550
35551 v1.02 - 2014-07-19
35552 · Implement Dropbox remote
35553
35554 · Implement Google Cloud Storage remote
35555
35556 · Verify Md5sums and Sizes after copies
35557
35558 · Remove times from "ls" command - lists sizes only
35559
35560 · Add add "lsl" - lists times and sizes
35561
35562 · Add "md5sum" command
35563
35564 v1.01 - 2014-07-04
35565 · drive: fix transfer of big files using up lots of memory
35566
35567 v1.00 - 2014-07-03
35568 · drive: fix whole second dates
35569
35570 v0.99 - 2014-06-26
35571 · Fix --dry-run not working
35572
35573 · Make compatible with go 1.1
35574
35575 v0.98 - 2014-05-30
35576 · s3: Treat missing Content-Length as 0 for some ceph installations
35577
35578 · rclonetest: add file with a space in
35579
35580 v0.97 - 2014-05-05
35581 · Implement copying of single files
35582
35583 · s3 & swift: support paths inside containers/buckets
35584
35585 v0.96 - 2014-04-24
35586 · drive: Fix multiple files of same name being created
35587
35588 · drive: Use o.Update and fs.Put to optimise transfers
35589
35590 · Add version number, -V and --version
35591
35592 v0.95 - 2014-03-28
35593 · rclone.org: website, docs and graphics
35594
35595 · drive: fix path parsing
35596
35597 v0.94 - 2014-03-27
35598 · Change remote format one last time
35599
35600 · GNU style flags
35601
35602 v0.93 - 2014-03-16
35603 · drive: store token in config file
35604
35605 · cross compile other versions
35606
35607 · set strict permissions on config file
35608
35609 v0.92 - 2014-03-15
35610 · Config fixes and --config option
35611
35612 v0.91 - 2014-03-15
35613 · Make config file
35614
35615 v0.90 - 2013-06-27
35616 · Project named rclone
35617
35618 v0.00 - 2012-11-18
35619 · Project started
35620
35622 Limitations
35623 Directory timestamps aren't preserved
35624 Rclone doesn't currently preserve the timestamps of directories. This
35625 is because rclone only really considers objects when syncing.
35626
35627 Rclone struggles with millions of files in a directory/bucket
35628 Currently rclone loads each directory/bucket entirely into memory be‐
35629 fore using it. Since each rclone object takes 0.5k-1k of memory this
35630 can take a very long time and use a large amount of memory.
35631
35632 Millions of files in a directory tends to occur on bucket-based remotes
35633 (e.g. S3 buckets) since those remotes do not segregate subdirectories
35634 within the bucket.
35635
35636 Bucket based remotes and folders
35637 Bucket based remotes (e.g. S3/GCS/Swift/B2) do not have a concept of
35638 directories. Rclone therefore cannot create directories in them which
35639 means that empty directories on a bucket based remote will tend to dis‐
35640 appear.
35641
35642 Some software creates empty keys ending in / as directory markers.
35643 Rclone doesn't do this as it potentially creates more objects and costs
35644 more. This ability may be added in the future (probably via a flag/op‐
35645 tion).
35646
35647 Bugs
35648 Bugs are stored in rclone's GitHub project:
35649
35650 · Reported bugs (https://github.com/rclone/rclone/is‐
35651 sues?q=is%3Aopen+is%3Aissue+label%3Abug)
35652
35653 · Known issues (https://github.com/rclone/rclone/is‐
35654 sues?q=is%3Aopen+is%3Aissue+milestone%3A%22Known+Problem%22)
35655
35656 Frequently Asked Questions
35657 Do all cloud storage systems support all rclone commands
35658 Yes they do. All the rclone commands (e.g. sync, copy, etc.) will
35659 work on all the remote storage systems.
35660
35661 Can I copy the config from one machine to another
35662 Sure! Rclone stores all of its config in a single file. If you want to
35663 find this file, run rclone config file which will tell you where it is.
35664
35665 See the remote setup docs (https://rclone.org/remote_setup/) for more
35666 info.
35667
35668 How do I configure rclone on a remote / headless box with no browser?
35669 This has now been documented in its own remote setup page
35670 (https://rclone.org/remote_setup/).
35671
35672 Can rclone sync directly from drive to s3
35673 Rclone can sync between two remote cloud storage systems just fine.
35674
35675 Note that it effectively downloads the file and uploads it again, so
35676 the node running rclone would need to have lots of bandwidth.
35677
35678 The syncs would be incremental (on a file by file basis).
35679
35680 Eg
35681
35682 rclone sync -i drive:Folder s3:bucket
35683
35684 Using rclone from multiple locations at the same time
35685 You can use rclone from multiple places at the same time if you choose
35686 different subdirectory for the output, e.g.
35687
35688 Server A> rclone sync -i /tmp/whatever remote:ServerA
35689 Server B> rclone sync -i /tmp/whatever remote:ServerB
35690
35691 If you sync to the same directory then you should use rclone copy oth‐
35692 erwise the two instances of rclone may delete each other's files, e.g.
35693
35694 Server A> rclone copy /tmp/whatever remote:Backup
35695 Server B> rclone copy /tmp/whatever remote:Backup
35696
35697 The file names you upload from Server A and Server B should be differ‐
35698 ent in this case, otherwise some file systems (e.g. Drive) may make
35699 duplicates.
35700
35701 Why doesn't rclone support partial transfers / binary diffs like rsync?
35702 Rclone stores each file you transfer as a native object on the remote
35703 cloud storage system. This means that you can see the files you upload
35704 as expected using alternative access methods (e.g. using the Google
35705 Drive web interface). There is a 1:1 mapping between files on your
35706 hard disk and objects created in the cloud storage system.
35707
35708 Cloud storage systems (at least none I've come across yet) don't sup‐
35709 port partially uploading an object. You can't take an existing object,
35710 and change some bytes in the middle of it.
35711
35712 It would be possible to make a sync system which stored binary diffs
35713 instead of whole objects like rclone does, but that would break the 1:1
35714 mapping of files on your hard disk to objects in the remote cloud stor‐
35715 age system.
35716
35717 All the cloud storage systems support partial downloads of content, so
35718 it would be possible to make partial downloads work. However to make
35719 this work efficiently this would require storing a significant amount
35720 of metadata, which breaks the desired 1:1 mapping of files to objects.
35721
35722 Can rclone do bi-directional sync?
35723 No, not at present. rclone only does uni-directional sync from A -> B.
35724 It may do in the future though since it has all the primitives - it
35725 just requires writing the algorithm to do it.
35726
35727 Can I use rclone with an HTTP proxy?
35728 Yes. rclone will follow the standard environment variables for prox‐
35729 ies, similar to cURL and other programs.
35730
35731 In general the variables are called http_proxy (for services reached
35732 over http) and https_proxy (for services reached over https). Most
35733 public services will be using https, but you may wish to set both.
35734
35735 The content of the variable is protocol://server:port. The protocol
35736 value is the one used to talk to the proxy server, itself, and is com‐
35737 monly either http or socks5.
35738
35739 Slightly annoyingly, there is no standard for the name; some applica‐
35740 tions may use http_proxy but another one HTTP_PROXY. The Go libraries
35741 used by rclone will try both variations, but you may wish to set all
35742 possibilities. So, on Linux, you may end up with code similar to
35743
35744 export http_proxy=http://proxyserver:12345
35745 export https_proxy=$http_proxy
35746 export HTTP_PROXY=$http_proxy
35747 export HTTPS_PROXY=$http_proxy
35748
35749 The NO_PROXY allows you to disable the proxy for specific hosts. Hosts
35750 must be comma separated, and can contain domains or parts. For in‐
35751 stance "foo.com" also matches "bar.foo.com".
35752
35753 e.g.
35754
35755 export no_proxy=localhost,127.0.0.0/8,my.host.name
35756 export NO_PROXY=$no_proxy
35757
35758 Note that the ftp backend does not support ftp_proxy yet.
35759
35760 Rclone gives x509: failed to load system roots and no roots provided error
35761 This means that rclone can't find the SSL root certificates. Likely
35762 you are running rclone on a NAS with a cut-down Linux OS, or possibly
35763 on Solaris.
35764
35765 Rclone (via the Go runtime) tries to load the root certificates from
35766 these places on Linux.
35767
35768 "/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
35769 "/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL
35770 "/etc/ssl/ca-bundle.pem", // OpenSUSE
35771 "/etc/pki/tls/cacert.pem", // OpenELEC
35772
35773 So doing something like this should fix the problem. It also sets the
35774 time which is important for SSL to work properly.
35775
35776 mkdir -p /etc/ssl/certs/
35777 curl -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
35778 ntpclient -s -h pool.ntp.org
35779
35780 The two environment variables SSL_CERT_FILE and SSL_CERT_DIR, mentioned
35781 in the x509 package (https://godoc.org/crypto/x509), provide an addi‐
35782 tional way to provide the SSL root certificates.
35783
35784 Note that you may need to add the --insecure option to the curl command
35785 line if it doesn't work without.
35786
35787 curl --insecure -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
35788
35789 Rclone gives Failed to load config file: function not implemented error
35790 Likely this means that you are running rclone on Linux version not sup‐
35791 ported by the go runtime, ie earlier than version 2.6.23.
35792
35793 See the system requirements section in the go install docs
35794 (https://golang.org/doc/install) for full details.
35795
35796 All my uploaded docx/xlsx/pptx files appear as archive/zip
35797 This is caused by uploading these files from a Windows computer which
35798 hasn't got the Microsoft Office suite installed. The easiest way to
35799 fix is to install the Word viewer and the Microsoft Office Compatibili‐
35800 ty Pack for Word, Excel, and PowerPoint 2007 and later versions' file
35801 formats
35802
35803 tcp lookup some.domain.com no such host
35804 This happens when rclone cannot resolve a domain. Please check that
35805 your DNS setup is generally working, e.g.
35806
35807 # both should print a long list of possible IP addresses
35808 dig www.googleapis.com # resolve using your default DNS
35809 dig www.googleapis.com @8.8.8.8 # resolve with Google's DNS server
35810
35811 If you are using systemd-resolved (default on Arch Linux), ensure it is
35812 at version 233 or higher. Previous releases contain a bug which causes
35813 not all domains to be resolved properly.
35814
35815 Additionally with the GODEBUG=netdns= environment variable the Go re‐
35816 solver decision can be influenced. This also allows to resolve certain
35817 issues with DNS resolution. See the name resolution section in the go
35818 docs (https://golang.org/pkg/net/#hdr-Name_Resolution).
35819
35820 The total size reported in the stats for a sync is wrong and keeps changing
35821 It is likely you have more than 10,000 files that need to be synced.
35822 By default rclone only gets 10,000 files ahead in a sync so as not to
35823 use up too much memory. You can change this default with the
35824 --max-backlog (https://rclone.org/docs/#max-backlog-n) flag.
35825
35826 Rclone is using too much memory or appears to have a memory leak
35827 Rclone is written in Go which uses a garbage collector. The default
35828 settings for the garbage collector mean that it runs when the heap size
35829 has doubled.
35830
35831 However it is possible to tune the garbage collector to use less memory
35832 by setting GOGC (https://dave.cheney.net/tag/gogc) to a lower value,
35833 say export GOGC=20. This will make the garbage collector work harder,
35834 reducing memory size at the expense of CPU usage.
35835
35836 The most common cause of rclone using lots of memory is a single direc‐
35837 tory with thousands or millions of files in. Rclone has to load this
35838 entirely into memory as rclone objects. Each rclone object takes
35839 0.5k-1k of memory.
35840
35841 License
35842 This is free software under the terms of MIT the license (check the
35843 COPYING file included with the source code).
35844
35845 Copyright (C) 2019 by Nick Craig-Wood https://www.craig-wood.com/nick/
35846
35847 Permission is hereby granted, free of charge, to any person obtaining a copy
35848 of this software and associated documentation files (the "Software"), to deal
35849 in the Software without restriction, including without limitation the rights
35850 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
35851 copies of the Software, and to permit persons to whom the Software is
35852 furnished to do so, subject to the following conditions:
35853
35854 The above copyright notice and this permission notice shall be included in
35855 all copies or substantial portions of the Software.
35856
35857 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
35858 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35859 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
35860 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
35861 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
35862 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
35863 THE SOFTWARE.
35864
35865 Authors
35866 · Nick Craig-Wood <nick@craig-wood.com>
35867
35868 Contributors
35869 {{< rem email addresses removed from here need to be addeed to bin/.ig‐
35870 nore-emails to make sure update-authors.py doesn't immediately put them
35871 back in again. >}}
35872
35873 · Alex Couper <amcouper@gmail.com>
35874
35875 · Leonid Shalupov <leonid@shalupov.com> <shalupov@diverse.org.ru>
35876
35877 · Shimon Doodkin <helpmepro1@gmail.com>
35878
35879 · Colin Nicholson <colin@colinn.com>
35880
35881 · Klaus Post <klauspost@gmail.com>
35882
35883 · Sergey Tolmachev <tolsi.ru@gmail.com>
35884
35885 · Adriano Aurélio Meirelles <adriano@atinge.com>
35886
35887 · C. Bess <cbess@users.noreply.github.com>
35888
35889 · Dmitry Burdeev <dibu28@gmail.com>
35890
35891 · Joseph Spurrier <github@josephspurrier.com>
35892
35893 · Björn Harrtell <bjorn@wololo.org>
35894
35895 · Xavier Lucas <xavier.lucas@corp.ovh.com>
35896
35897 · Werner Beroux <werner@beroux.com>
35898
35899 · Brian Stengaard <brian@stengaard.eu>
35900
35901 · Jakub Gedeon <jgedeon@sofi.com>
35902
35903 · Jim Tittsler <jwt@onjapan.net>
35904
35905 · Michal Witkowski <michal@improbable.io>
35906
35907 · Fabian Ruff <fabian.ruff@sap.com>
35908
35909 · Leigh Klotz <klotz@quixey.com>
35910
35911 · Romain Lapray <lapray.romain@gmail.com>
35912
35913 · Justin R. Wilson <jrw972@gmail.com>
35914
35915 · Antonio Messina <antonio.s.messina@gmail.com>
35916
35917 · Stefan G. Weichinger <office@oops.co.at>
35918
35919 · Per Cederberg <cederberg@gmail.com>
35920
35921 · Radek Šenfeld <rush@logic.cz>
35922
35923 · Fredrik Fornwall <fredrik@fornwall.net>
35924
35925 · Asko Tamm <asko@deekit.net>
35926
35927 · xor-zz <xor@gstocco.com>
35928
35929 · Tomasz Mazur <tmazur90@gmail.com>
35930
35931 · Marco Paganini <paganini@paganini.net>
35932
35933 · Felix Bünemann <buenemann@louis.info>
35934
35935 · Durval Menezes <jmrclone@durval.com>
35936
35937 · Luiz Carlos Rumbelsperger Viana <maxd13_luiz_carlos@hotmail.com>
35938
35939 · Stefan Breunig <stefan-github@yrden.de>
35940
35941 · Alishan Ladhani <ali-l@users.noreply.github.com>
35942
35943 · 0xJAKE <0xJAKE@users.noreply.github.com>
35944
35945 · Thibault Molleman <thibaultmol@users.noreply.github.com>
35946
35947 · Scott McGillivray <scott.mcgillivray@gmail.com>
35948
35949 · Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
35950
35951 · Lukas Loesche <lukas@mesosphere.io>
35952
35953 · emyarod <allllaboutyou@gmail.com>
35954
35955 · T.C. Ferguson <tcf909@gmail.com>
35956
35957 · Brandur <brandur@mutelight.org>
35958
35959 · Dario Giovannetti <dev@dariogiovannetti.net>
35960
35961 · Károly Oláh <okaresz@aol.com>
35962
35963 · Jon Yergatian <jon@macfanatic.ca>
35964
35965 · Jack Schmidt <github@mowsey.org>
35966
35967 · Dedsec1 <Dedsec1@users.noreply.github.com>
35968
35969 · Hisham Zarka <hzarka@gmail.com>
35970
35971 · Jérôme Vizcaino <jerome.vizcaino@gmail.com>
35972
35973 · Mike Tesch <mjt6129@rit.edu>
35974
35975 · Marvin Watson <marvwatson@users.noreply.github.com>
35976
35977 · Danny Tsai <danny8376@gmail.com>
35978
35979 · Yoni Jah <yonjah+git@gmail.com> <yonjah+github@gmail.com>
35980
35981 · Stephen Harris <github@spuddy.org> <sweharris@users.nore‐
35982 ply.github.com>
35983
35984 · Ihor Dvoretskyi <ihor.dvoretskyi@gmail.com>
35985
35986 · Jon Craton <jncraton@gmail.com>
35987
35988 · Hraban Luyat <hraban@0brg.net>
35989
35990 · Michael Ledin <mledin89@gmail.com>
35991
35992 · Martin Kristensen <me@azgul.com>
35993
35994 · Too Much IO <toomuchio@users.noreply.github.com>
35995
35996 · Anisse Astier <anisse@astier.eu>
35997
35998 · Zahiar Ahmed <zahiar@live.com>
35999
36000 · Igor Kharin <igorkharin@gmail.com>
36001
36002 · Bill Zissimopoulos <billziss@navimatics.com>
36003
36004 · Bob Potter <bobby.potter@gmail.com>
36005
36006 · Steven Lu <tacticalazn@gmail.com>
36007
36008 · Sjur Fredriksen <sjurtf@ifi.uio.no>
36009
36010 · Ruwbin <hubus12345@gmail.com>
36011
36012 · Fabian Möller <fabianm88@gmail.com> <f.moeller@nynex.de>
36013
36014 · Edward Q. Bridges <github@eqbridges.com>
36015
36016 · Vasiliy Tolstov <v.tolstov@selfip.ru>
36017
36018 · Harshavardhana <harsha@minio.io>
36019
36020 · sainaen <sainaen@gmail.com>
36021
36022 · gdm85 <gdm85@users.noreply.github.com>
36023
36024 · Yaroslav Halchenko <debian@onerussian.com>
36025
36026 · John Papandriopoulos <jpap@users.noreply.github.com>
36027
36028 · Zhiming Wang <zmwangx@gmail.com>
36029
36030 · Andy Pilate <cubox@cubox.me>
36031
36032 · Oliver Heyme <olihey@googlemail.com> <olihey@users.nore‐
36033 ply.github.com> <de8olihe@lego.com>
36034
36035 · wuyu <wuyu@yunify.com>
36036
36037 · Andrei Dragomir <adragomi@adobe.com>
36038
36039 · Christian Brüggemann <mail@cbruegg.com>
36040
36041 · Alex McGrath Kraak <amkdude@gmail.com>
36042
36043 · bpicode <bjoern.pirnay@googlemail.com>
36044
36045 · Daniel Jagszent <daniel@jagszent.de>
36046
36047 · Josiah White <thegenius2009@gmail.com>
36048
36049 · Ishuah Kariuki <kariuki@ishuah.com> <ishuah91@gmail.com>
36050
36051 · Jan Varho <jan@varho.org>
36052
36053 · Girish Ramakrishnan <girish@cloudron.io>
36054
36055 · LingMan <LingMan@users.noreply.github.com>
36056
36057 · Jacob McNamee <jacobmcnamee@gmail.com>
36058
36059 · jersou <jertux@gmail.com>
36060
36061 · thierry <thierry@substantiel.fr>
36062
36063 · Simon Leinen <simon.leinen@gmail.com> <ubuntu@s3-test.novalocal>
36064
36065 · Dan Dascalescu <ddascalescu+github@gmail.com>
36066
36067 · Jason Rose <jason@jro.io>
36068
36069 · Andrew Starr-Bochicchio <a.starr.b@gmail.com>
36070
36071 · John Leach <john@johnleach.co.uk>
36072
36073 · Corban Raun <craun@instructure.com>
36074
36075 · Pierre Carlson <mpcarl@us.ibm.com>
36076
36077 · Ernest Borowski <er.borowski@gmail.com>
36078
36079 · Remus Bunduc <remus.bunduc@gmail.com>
36080
36081 · Iakov Davydov <iakov.davydov@unil.ch> <dav05.gith@myths.ru>
36082
36083 · Jakub Tasiemski <tasiemski@gmail.com>
36084
36085 · David Minor <dminor@saymedia.com>
36086
36087 · Tim Cooijmans <cooijmans.tim@gmail.com>
36088
36089 · Laurence <liuxy6@gmail.com>
36090
36091 · Giovanni Pizzi <gio.piz@gmail.com>
36092
36093 · Filip Bartodziej <filipbartodziej@gmail.com>
36094
36095 · Jon Fautley <jon@dead.li>
36096
36097 · lewapm <32110057+lewapm@users.noreply.github.com>
36098
36099 · Yassine Imounachen <yassine256@gmail.com>
36100
36101 · Chris Redekop <chris-redekop@users.noreply.github.com> <chris.re‐
36102 dekop@gmail.com>
36103
36104 · Jon Fautley <jon@adenoid.appstal.co.uk>
36105
36106 · Will Gunn <WillGunn@users.noreply.github.com>
36107
36108 · Lucas Bremgartner <lucas@bremis.ch>
36109
36110 · Jody Frankowski <jody.frankowski@gmail.com>
36111
36112 · Andreas Roussos <arouss1980@gmail.com>
36113
36114 · nbuchanan <nbuchanan@utah.gov>
36115
36116 · Durval Menezes <rclone@durval.com>
36117
36118 · Victor <vb-github@viblo.se>
36119
36120 · Mateusz <pabian.mateusz@gmail.com>
36121
36122 · Daniel Loader <spicypixel@gmail.com>
36123
36124 · David0rk <davidork@gmail.com>
36125
36126 · Alexander Neumann <alexander@bumpern.de>
36127
36128 · Giri Badanahatti <gbadanahatti@us.ibm.com@Giris-MacBook-Pro.local>
36129
36130 · Leo R. Lundgren <leo@finalresort.org>
36131
36132 · wolfv <wolfv6@users.noreply.github.com>
36133
36134 · Dave Pedu <dave@davepedu.com>
36135
36136 · Stefan Lindblom <lindblom@spotify.com>
36137
36138 · seuffert <oliver@seuffert.biz>
36139
36140 · gbadanahatti <37121690+gbadanahatti@users.noreply.github.com>
36141
36142 · Keith Goldfarb <barkofdelight@gmail.com>
36143
36144 · Steve Kriss <steve@heptio.com>
36145
36146 · Chih-Hsuan Yen <yan12125@gmail.com>
36147
36148 · Alexander Neumann <fd0@users.noreply.github.com>
36149
36150 · Matt Holt <mholt@users.noreply.github.com>
36151
36152 · Eri Bastos <bastos.eri@gmail.com>
36153
36154 · Michael P. Dubner <pywebmail@list.ru>
36155
36156 · Antoine GIRARD <sapk@users.noreply.github.com>
36157
36158 · Mateusz Piotrowski <mpp302@gmail.com>
36159
36160 · Animosity022 <animosity22@users.noreply.github.com> <earl.tex‐
36161 ter@gmail.com>
36162
36163 · Peter Baumgartner <pete@lincolnloop.com>
36164
36165 · Craig Rachel <craig@craigrachel.com>
36166
36167 · Michael G. Noll <miguno@users.noreply.github.com>
36168
36169 · hensur <me@hensur.de>
36170
36171 · Oliver Heyme <de8olihe@lego.com>
36172
36173 · Richard Yang <richard@yenforyang.com>
36174
36175 · Piotr Oleszczyk <piotr.oleszczyk@gmail.com>
36176
36177 · Rodrigo <rodarima@gmail.com>
36178
36179 · NoLooseEnds <NoLooseEnds@users.noreply.github.com>
36180
36181 · Jakub Karlicek <jakub@karlicek.me>
36182
36183 · John Clayton <john@codemonkeylabs.com>
36184
36185 · Kasper Byrdal Nielsen <byrdal76@gmail.com>
36186
36187 · Benjamin Joseph Dag <bjdag1234@users.noreply.github.com>
36188
36189 · themylogin <themylogin@gmail.com>
36190
36191 · Onno Zweers <onno.zweers@surfsara.nl>
36192
36193 · Jasper Lievisse Adriaanse <jasper@humppa.nl>
36194
36195 · sandeepkru <sandeep.ummadi@gmail.com> <sandeepkru@users.nore‐
36196 ply.github.com>
36197
36198 · HerrH <atomtigerzoo@users.noreply.github.com>
36199
36200 · Andrew <4030760+sparkyman215@users.noreply.github.com>
36201
36202 · dan smith <XX1011@gmail.com>
36203
36204 · Oleg Kovalov <iamolegkovalov@gmail.com>
36205
36206 · Ruben Vandamme <github-com-00ff86@vandamme.email>
36207
36208 · Cnly <minecnly@gmail.com>
36209
36210 · Andres Alvarez <1671935+kir4h@users.noreply.github.com>
36211
36212 · reddi1 <xreddi@gmail.com>
36213
36214 · Matt Tucker <matthewtckr@gmail.com>
36215
36216 · Sebastian Bünger <buengese@gmail.com> <buengese@protonmail.com>
36217
36218 · Martin Polden <mpolden@mpolden.no>
36219
36220 · Alex Chen <Cnly@users.noreply.github.com>
36221
36222 · Denis <deniskovpen@gmail.com>
36223
36224 · bsteiss <35940619+bsteiss@users.noreply.github.com>
36225
36226 · Cédric Connes <cedric.connes@gmail.com>
36227
36228 · Dr. Tobias Quathamer <toddy15@users.noreply.github.com>
36229
36230 · dcpu <42736967+dcpu@users.noreply.github.com>
36231
36232 · Sheldon Rupp <me@shel.io>
36233
36234 · albertony <12441419+albertony@users.noreply.github.com>
36235
36236 · cron410 <cron410@gmail.com>
36237
36238 · Anagh Kumar Baranwal <6824881+darthShadow@users.noreply.github.com>
36239
36240 · Felix Brucker <felix@felixbrucker.com>
36241
36242 · Santiago Rodríguez <scollazo@users.noreply.github.com>
36243
36244 · Craig Miskell <craig.miskell@fluxfederation.com>
36245
36246 · Antoine GIRARD <sapk@sapk.fr>
36247
36248 · Joanna Marek <joanna.marek@u2i.com>
36249
36250 · frenos <frenos@users.noreply.github.com>
36251
36252 · ssaqua <ssaqua@users.noreply.github.com>
36253
36254 · xnaas <me@xnaas.info>
36255
36256 · Frantisek Fuka <fuka@fuxoft.cz>
36257
36258 · Paul Kohout <pauljkohout@yahoo.com>
36259
36260 · dcpu <43330287+dcpu@users.noreply.github.com>
36261
36262 · jackyzy823 <jackyzy823@gmail.com>
36263
36264 · David Haguenauer <ml@kurokatta.org>
36265
36266 · teresy <hi.teresy@gmail.com>
36267
36268 · buergi <patbuergi@gmx.de>
36269
36270 · Florian Gamboeck <mail@floga.de>
36271
36272 · Ralf Hemberger <10364191+rhemberger@users.noreply.github.com>
36273
36274 · Scott Edlund <sedlund@users.noreply.github.com>
36275
36276 · Erik Swanson <erik@retailnext.net>
36277
36278 · Jake Coggiano <jake@stripe.com>
36279
36280 · brused27 <brused27@noemailaddress>
36281
36282 · Peter Kaminski <kaminski@istori.com>
36283
36284 · Henry Ptasinski <henry@logout.com>
36285
36286 · Alexander <kharkovalexander@gmail.com>
36287
36288 · Garry McNulty <garrmcnu@gmail.com>
36289
36290 · Mathieu Carbou <mathieu.carbou@gmail.com>
36291
36292 · Mark Otway <mark@otway.com>
36293
36294 · William Cocker <37018962+WilliamCocker@users.noreply.github.com>
36295
36296 · François Leurent <131.js@cloudyks.org>
36297
36298 · Arkadius Stefanski <arkste@gmail.com>
36299
36300 · Jay <dev@jaygoel.com>
36301
36302 · andrea rota <a@xelera.eu>
36303
36304 · nicolov <nicolov@users.noreply.github.com>
36305
36306 · Dario Guzik <dario@guzik.com.ar>
36307
36308 · qip <qip@users.noreply.github.com>
36309
36310 · yair@unicorn <yair@unicorn>
36311
36312 · Matt Robinson <brimstone@the.narro.ws>
36313
36314 · kayrus <kay.diam@gmail.com>
36315
36316 · Rémy Léone <remy.leone@gmail.com>
36317
36318 · Wojciech Smigielski <wojciech.hieronim.smigielski@gmail.com>
36319
36320 · weetmuts <oehrstroem@gmail.com>
36321
36322 · Jonathan <vanillajonathan@users.noreply.github.com>
36323
36324 · James Carpenter <orbsmiv@users.noreply.github.com>
36325
36326 · Vince <vince0villamora@gmail.com>
36327
36328 · Nestar47 <47841759+Nestar47@users.noreply.github.com>
36329
36330 · Six <brbsix@gmail.com>
36331
36332 · Alexandru Bumbacea <alexandru.bumbacea@booking.com>
36333
36334 · calisro <robert.calistri@gmail.com>
36335
36336 · Dr.Rx <david.rey@nventive.com>
36337
36338 · marcintustin <marcintustin@users.noreply.github.com>
36339
36340 · jaKa Močnik <jaka@koofr.net>
36341
36342 · Fionera <fionera@fionera.de>
36343
36344 · Dan Walters <dan@walters.io>
36345
36346 · Danil Semelenov <sgtpep@users.noreply.github.com>
36347
36348 · xopez <28950736+xopez@users.noreply.github.com>
36349
36350 · Ben Boeckel <mathstuf@gmail.com>
36351
36352 · Manu <manu@snapdragon.cc>
36353
36354 · Kyle E. Mitchell <kyle@kemitchell.com>
36355
36356 · Gary Kim <gary@garykim.dev>
36357
36358 · Jon <jonathn@github.com>
36359
36360 · Jeff Quinn <jeffrey.quinn@bluevoyant.com>
36361
36362 · Peter Berbec <peter@berbec.com>
36363
36364 · didil <1284255+didil@users.noreply.github.com>
36365
36366 · id01 <gaviniboom@gmail.com>
36367
36368 · Robert Marko <robimarko@gmail.com>
36369
36370 · Philip Harvey <32467456+pharveybattelle@users.noreply.github.com>
36371
36372 · JorisE <JorisE@users.noreply.github.com>
36373
36374 · garry415 <garry.415@gmail.com>
36375
36376 · forgems <forgems@gmail.com>
36377
36378 · Florian Apolloner <florian@apolloner.eu>
36379
36380 · Aleksandar Janković <office@ajankovic.com> <ajankovic@users.nore‐
36381 ply.github.com>
36382
36383 · Maran <maran@protonmail.com>
36384
36385 · nguyenhuuluan434 <nguyenhuuluan434@gmail.com>
36386
36387 · Laura Hausmann <zotan@zotan.pw> <laura@hausmann.dev>
36388
36389 · yparitcher <y@paritcher.com>
36390
36391 · AbelThar <abela.tharen@gmail.com>
36392
36393 · Matti Niemenmaa <matti.niemenmaa+git@iki.fi>
36394
36395 · Russell Davis <russelldavis@users.noreply.github.com>
36396
36397 · Yi FU <yi.fu@tink.se>
36398
36399 · Paul Millar <paul.millar@desy.de>
36400
36401 · justinalin <justinalin@qnap.com>
36402
36403 · EliEron <subanimehd@gmail.com>
36404
36405 · justina777 <chiahuei.lin@gmail.com>
36406
36407 · Chaitanya Bankanhal <bchaitanya15@gmail.com>
36408
36409 · Michał Matczuk <michal@scylladb.com>
36410
36411 · Macavirus <macavirus@zoho.com>
36412
36413 · Abhinav Sharma <abhi18av@users.noreply.github.com>
36414
36415 · ginvine <34869051+ginvine@users.noreply.github.com>
36416
36417 · Patrick Wang <mail6543210@yahoo.com.tw>
36418
36419 · Cenk Alti <cenkalti@gmail.com>
36420
36421 · Andreas Chlupka <andy@chlupka.com>
36422
36423 · Alfonso Montero <amontero@tinet.org>
36424
36425 · Ivan Andreev <ivandeex@gmail.com>
36426
36427 · David Baumgold <david@davidbaumgold.com>
36428
36429 · Lars Lehtonen <lars.lehtonen@gmail.com>
36430
36431 · Matei David <matei.david@gmail.com>
36432
36433 · David <david.bramwell@endemolshine.com>
36434
36435 · Anthony Rusdi <33247310+antrusd@users.noreply.github.com>
36436
36437 · Richard Patel <me@terorie.dev>
36438
36439 · 庄天翼 <zty0826@gmail.com>
36440
36441 · SwitchJS <dev@switchjs.com>
36442
36443 · Raphael <PowershellNinja@users.noreply.github.com>
36444
36445 · Sezal Agrawal <sezalagrawal@gmail.com>
36446
36447 · Tyler <TylerNakamura@users.noreply.github.com>
36448
36449 · Brett Dutro <brett.dutro@gmail.com>
36450
36451 · Vighnesh SK <booterror99@gmail.com>
36452
36453 · Arijit Biswas <dibbyo456@gmail.com>
36454
36455 · Michele Caci <michele.caci@gmail.com>
36456
36457 · AlexandrBoltris <ua2fgb@gmail.com>
36458
36459 · Bryce Larson <blarson@saltstack.com>
36460
36461 · Carlos Ferreyra <crypticmind@gmail.com>
36462
36463 · Saksham Khanna <sakshamkhanna@outlook.com>
36464
36465 · dausruddin <5763466+dausruddin@users.noreply.github.com>
36466
36467 · zero-24 <zero-24@users.noreply.github.com>
36468
36469 · Xiaoxing Ye <ye@xiaoxing.us>
36470
36471 · Barry Muldrey <barry@muldrey.net>
36472
36473 · Sebastian Brandt <sebastian.brandt@friday.de>
36474
36475 · Marco Molteni <marco.molteni@mailbox.org>
36476
36477 · Ankur Gupta <ankur0493@gmail.com> <7876747+ankur0493@users.nore‐
36478 ply.github.com>
36479
36480 · Maciej Zimnoch <maciej@scylladb.com>
36481
36482 · anuar45 <serdaliyev.anuar@gmail.com>
36483
36484 · Fernando <ferferga@users.noreply.github.com>
36485
36486 · David Cole <david.cole@sohonet.com>
36487
36488 · Wei He <git@weispot.com>
36489
36490 · Outvi V <19144373+outloudvi@users.noreply.github.com>
36491
36492 · Thomas Kriechbaumer <thomas@kriechbaumer.name>
36493
36494 · Tennix <tennix@users.noreply.github.com>
36495
36496 · Ole Schütt <ole@schuett.name>
36497
36498 · Kuang-che Wu <kcwu@csie.org>
36499
36500 · Thomas Eales <wingsuit@users.noreply.github.com>
36501
36502 · Paul Tinsley <paul.tinsley@vitalsource.com>
36503
36504 · Felix Hungenberg <git@shiftgeist.com>
36505
36506 · Benjamin Richter <github@dev.telepath.de>
36507
36508 · landall <cst_zf@qq.com>
36509
36510 · thestigma <thestigma@gmail.com>
36511
36512 · jtagcat <38327267+jtagcat@users.noreply.github.com>
36513
36514 · Damon Permezel <permezel@me.com>
36515
36516 · boosh <boosh@users.noreply.github.com>
36517
36518 · unbelauscht <58393353+unbelauscht@users.noreply.github.com>
36519
36520 · Motonori IWAMURO <vmi@nifty.com>
36521
36522 · Benjapol Worakan <benwrk@live.com>
36523
36524 · Dave Koston <dave.koston@stackpath.com>
36525
36526 · Durval Menezes <DurvalMenezes@users.noreply.github.com>
36527
36528 · Tim Gallant <me@timgallant.us>
36529
36530 · Frederick Zhang <frederick888@tsundere.moe>
36531
36532 · valery1707 <valery1707@gmail.com>
36533
36534 · Yves G <theYinYeti@yalis.fr>
36535
36536 · Shing Kit Chan <chanshingkit@gmail.com>
36537
36538 · Franklyn Tackitt <franklyn@tackitt.net>
36539
36540 · Robert-André Mauchin <zebob.m@gmail.com>
36541
36542 · evileye <48332831+ibiruai@users.noreply.github.com>
36543
36544 · Joachim Brandon LeBlanc <brandon@leblanc.codes>
36545
36546 · Patryk Jakuszew <patryk.jakuszew@gmail.com>
36547
36548 · fishbullet <shindu666@gmail.com>
36549
36550 · greatroar <@>
36551
36552 · Bernd Schoolmann <mail@quexten.com>
36553
36554 · Elan Ruusamäe <glen@pld-linux.org>
36555
36556 · Max Sum <max@lolyculture.com>
36557
36558 · Mark Spieth <mspieth@users.noreply.github.com>
36559
36560 · harry <me@harry.plus>
36561
36562 · Samantha McVey <samantham@posteo.net>
36563
36564 · Jack Anderson <jack.anderson@metaswitch.com>
36565
36566 · Michael G <draget@speciesm.net>
36567
36568 · Brandon Philips <brandon@ifup.org>
36569
36570 · Daven <dooven@users.noreply.github.com>
36571
36572 · Martin Stone <martin@d7415.co.uk>
36573
36574 · David Bramwell <13053834+dbramwell@users.noreply.github.com>
36575
36576 · Sunil Patra <snl_su@live.com>
36577
36578 · Adam Stroud <adam.stroud@gmail.com>
36579
36580 · Kush <kushsharma@users.noreply.github.com>
36581
36582 · Matan Rosenberg <matan129@gmail.com>
36583
36584 · gitch1 <63495046+gitch1@users.noreply.github.com>
36585
36586 · ElonH <elonhhuang@gmail.com>
36587
36588 · Fred <fred@creativeprojects.tech>
36589
36590 · Sébastien Gross <renard@users.noreply.github.com>
36591
36592 · Maxime Suret <11944422+msuret@users.noreply.github.com>
36593
36594 · Caleb Case <caleb@storj.io>
36595
36596 · Ben Zenker <imbenzenker@gmail.com>
36597
36598 · Martin Michlmayr <tbm@cyrius.com>
36599
36600 · Brandon McNama <bmcnama@pagerduty.com>
36601
36602 · Daniel Slyman <github@skylayer.eu>
36603
36604 · Alex Guerrero <guerrero@users.noreply.github.com>
36605
36606 · Matteo Pietro Dazzi <matteopietro.dazzi@gft.com>
36607
36608 · edwardxml <56691903+edwardxml@users.noreply.github.com>
36609
36610 · Roman Kredentser <shareed2k@gmail.com>
36611
36612 · Kamil Trzciński <ayufan@ayufan.eu>
36613
36614 · Zac Rubin <z-0@users.noreply.github.com>
36615
36616 · Vincent Feltz <psycho@feltzv.fr>
36617
36618 · Heiko Bornholdt <bornholdt@informatik.uni-hamburg.de>
36619
36620 · Matteo Pietro Dazzi <matteopietro.dazzi@gmail.com>
36621
36622 · jtagcat <gitlab@c7.ee>
36623
36624 · Petri Salminen <petri@salminen.dev>
36625
36626 · Tim Burke <tim.burke@gmail.com>
36627
36628 · Kai Lüke <kai@kinvolk.io>
36629
36630 · Garrett Squire <github@garrettsquire.com>
36631
36632 · Evan Harris <eharris@puremagic.com>
36633
36634 · Kevin <keyam@microsoft.com>
36635
36636 · Morten Linderud <morten@linderud.pw>
36637
36638 · Dmitry Ustalov <dmitry.ustalov@gmail.com>
36639
36640 · Jack <196648+jdeng@users.noreply.github.com>
36641
36642 · kcris <cristian.tarsoaga@gmail.com>
36643
36644 · tyhuber1 <68970760+tyhuber1@users.noreply.github.com>
36645
36646 · David Ibarra <david.ibarra@realty.com>
36647
36648 · Tim Gallant <tim@lilt.com>
36649
36650 · Kaloyan Raev <kaloyan@storj.io>
36651
36652 · Jay McEntire <jay.mcentire@gmail.com>
36653
36654 · Leo Luan <leoluan@us.ibm.com>
36655
36656 · aus <549081+aus@users.noreply.github.com>
36657
36658 · Aaron Gokaslan <agokaslan@fb.com>
36659
36660 · Egor Margineanu <egmar@users.noreply.github.com>
36661
36662 · Lucas Kanashiro <lucas.kanashiro@canonical.com>
36663
36664 · WarpedPixel <WarpedPixel@users.noreply.github.com>
36665
36666 · Sam Edwards <sam@samedwards.ca>
36667
36668 · wjielai <gouki0123@gmail.com>
36669
36670 · Muffin King <jinxz_k@live.com>
36671
36672 · Christopher Stewart <6573710+1f47a@users.noreply.github.com>
36673
36674 · Russell Cattelan <cattelan@digitalelves.com>
36675
36676 · gyutw <30371241+gyutw@users.noreply.github.com>
36677
36678 · Hekmon <edouardhur@gmail.com>
36679
36680 · LaSombra <lasombra@users.noreply.github.com>
36681
36682 · Dov Murik <dov.murik@gmail.com>
36683
36684 · Ameer Dawood <ameer1234567890@gmail.com>
36685
36686 · Dan Hipschman <dan.hipschman@opendoor.com>
36687
36688 · Josh Soref <jsoref@users.noreply.github.com>
36689
36690 · David <david@staron.nl>
36691
36692 · Ingo <ingo@hoffmann.cx>
36693
36694 · Adam Plánský <adamplansky@users.noreply.github.com> <adamplan‐
36695 sky@gmail.com>
36696
36697 · Manish Gupta <manishgupta.ait@gmail.com>
36698
36699 · Deepak Sah <sah.sslpu@gmail.com>
36700
36701 · Marcin Zelent <marcin@zelent.net>
36702
36703 · zhucan <zhucan.k8s@gmail.com>
36704
36705 · James Lim <james.lim@samsara.com>
36706
36707 · Laurens Janssen <BD69BM@insim.biz>
36708
36709 · Bob Bagwill <bobbagwill@gmail.com>
36710
36711 · Nathan Collins <colli372@msu.edu>
36712
36713 · lostheli
36714
36715 · kelv <kelvin@acks.org>
36716
36717 · Milly <milly.ca@gmail.com>
36718
36719 · gtorelly <gtorelly@gmail.com>
36720
36721 · Brad Ackerman <brad@facefault.org>
36722
36723 · Mitsuo Heijo <mitsuo.heijo@gmail.com>
36724
36725 · Claudio Bantaloukas <rockdreamer@gmail.com>
36726
36727 · Benjamin Gustin <gustin.ben@gmail.com>
36728
36729 · Ingo Weiss <ingo@redhat.com>
36730
36731 · Kerry Su <me@sshockwave.net>
36732
36733 · Ilyess Bachiri <ilyess.bachiri@sonder.com>
36734
36735 · Yury Stankevich <urykhy@gmail.com>
36736
36737 · kice <wslikerqs@gmail.com>
36738
36739 · Denis Neuling <denisneuling@gmail.com>
36740
36741 · Janne Johansson <icepic.dz@gmail.com>
36742
36743 · Patrik Nordlén <patriki@gmail.com>
36744
36745 · CokeMine <aptx4561@gmail.com>
36746
36747 · Sơn Trần-Nguyễn <github@sntran.com>
36748
36749 · lluuaapp <266615+lluuaapp@users.noreply.github.com>
36750
36751 · Zach Kipp <kipp.zach@gmail.com>
36752
36753 · Riccardo Iaconelli <riccardo@kde.org>
36754
36755 · Sakuragawa Misty <gyc990326@gmail.com>
36756
36757 · Nicolas Rueff <nicolas@rueff.fr>
36758
36759 · Pau Rodriguez-Estivill <prodrigestivill@gmail.com>
36760
36761 · Bob Pusateri <BobPusateri@users.noreply.github.com>
36762
36764 Forum
36765 Forum for questions and general discussion:
36766
36767 · https://forum.rclone.org
36768
36769 GitHub repository
36770 The project's repository is located at:
36771
36772 · https://github.com/rclone/rclone
36773
36774 There you can file bug reports or contribute with pull requests.
36775
36776 Twitter
36777 You can also follow me on twitter for rclone announcements:
36778
36779 · [@njcw](https://twitter.com/njcw)
36780
36781 Email
36782 Or if all else fails or you want to ask something private or confiden‐
36783 tial email Nick Craig-Wood (mailto:nick@craig-wood.com). Please don't
36784 email me requests for help - those are better directed to the forum.
36785 Thanks!
36786
36788 Nick Craig-Wood.
36789
36790
36791
36792User Manual Feb 02, 2021 rclone(1)