github.com/artpar/rclone@v1.67.3/docs/content/overview.md (about)

     1  ---
     2  title: "Overview of cloud storage systems"
     3  description: "Overview of cloud storage systems"
     4  type: page
     5  ---
     6  
     7  # Overview of cloud storage systems #
     8  
     9  Each cloud storage system is slightly different.  Rclone attempts to
    10  provide a unified interface to them, but some underlying differences
    11  show through.
    12  
    13  ## Features ##
    14  
    15  Here is an overview of the major features of each cloud storage system.
    16  
    17  | Name                         | Hash              | ModTime | Case Insensitive | Duplicate Files | MIME Type | Metadata |
    18  | ---------------------------- |:-----------------:|:-------:|:----------------:|:---------------:|:---------:|:--------:|
    19  | 1Fichier                     | Whirlpool         | -       | No               | Yes             | R         | -        |
    20  | Akamai Netstorage            | MD5, SHA256       | R/W     | No               | No              | R         | -        |
    21  | Amazon S3 (or S3 compatible) | MD5               | R/W     | No               | No              | R/W       | RWU      |
    22  | Backblaze B2                 | SHA1              | R/W     | No               | No              | R/W       | -        |
    23  | Box                          | SHA1              | R/W     | Yes              | No              | -         | -        |
    24  | Citrix ShareFile             | MD5               | R/W     | Yes              | No              | -         | -        |
    25  | Dropbox                      | DBHASH ¹          | R       | Yes              | No              | -         | -        |
    26  | Enterprise File Fabric       | -                 | R/W     | Yes              | No              | R/W       | -        |
    27  | FTP                          | -                 | R/W ¹⁰  | No               | No              | -         | -        |
    28  | Google Cloud Storage         | MD5               | R/W     | No               | No              | R/W       | -        |
    29  | Google Drive                 | MD5, SHA1, SHA256 | DR/W    | No               | Yes             | R/W       | DRWU     |
    30  | Google Photos                | -                 | -       | No               | Yes             | R         | -        |
    31  | HDFS                         | -                 | R/W     | No               | No              | -         | -        |
    32  | HiDrive                      | HiDrive ¹²        | R/W     | No               | No              | -         | -        |
    33  | HTTP                         | -                 | R       | No               | No              | R         | -        |
    34  | Internet Archive             | MD5, SHA1, CRC32  | R/W ¹¹  | No               | No              | -         | RWU      |
    35  | Jottacloud                   | MD5               | R/W     | Yes              | No              | R         | RW       |
    36  | Koofr                        | MD5               | -       | Yes              | No              | -         | -        |
    37  | Linkbox                      | -                 | R       | No               | No              | -         | -        |
    38  | Mail.ru Cloud                | Mailru ⁶          | R/W     | Yes              | No              | -         | -        |
    39  | Mega                         | -                 | -       | No               | Yes             | -         | -        |
    40  | Memory                       | MD5               | R/W     | No               | No              | -         | -        |
    41  | Microsoft Azure Blob Storage | MD5               | R/W     | No               | No              | R/W       | -        |
    42  | Microsoft Azure Files Storage | MD5              | R/W     | Yes              | No              | R/W       | -        |
    43  | Microsoft OneDrive           | QuickXorHash ⁵    | DR/W    | Yes              | No              | R         | DRW      |
    44  | OpenDrive                    | MD5               | R/W     | Yes              | Partial ⁸       | -         | -        |
    45  | OpenStack Swift              | MD5               | R/W     | No               | No              | R/W       | -        |
    46  | Oracle Object Storage        | MD5               | R/W     | No               | No              | R/W       | -        |
    47  | pCloud                       | MD5, SHA1 ⁷       | R       | No               | No              | W         | -        |
    48  | PikPak                       | MD5               | R       | No               | No              | R         | -        |
    49  | premiumize.me                | -                 | -       | Yes              | No              | R         | -        |
    50  | put.io                       | CRC-32            | R/W     | No               | Yes             | R         | -        |
    51  | Proton Drive                 | SHA1              | R/W     | No               | No              | R         | -        |
    52  | QingStor                     | MD5               | - ⁹     | No               | No              | R/W       | -        |
    53  | Quatrix by Maytech           | -                 | R/W     | No               | No              | -         | -        |
    54  | Seafile                      | -                 | -       | No               | No              | -         | -        |
    55  | SFTP                         | MD5, SHA1 ²       | DR/W    | Depends          | No              | -         | -        |
    56  | Sia                          | -                 | -       | No               | No              | -         | -        |
    57  | SMB                          | -                 | R/W     | Yes              | No              | -         | -        |
    58  | SugarSync                    | -                 | -       | No               | No              | -         | -        |
    59  | Storj                        | -                 | R       | No               | No              | -         | -        |
    60  | Uloz.to                      | MD5, SHA256 ¹³    | -       | No               | Yes             | -         | -        |
    61  | Uptobox                      | -                 | -       | No               | Yes             | -         | -        |
    62  | WebDAV                       | MD5, SHA1 ³       | R ⁴     | Depends          | No              | -         | -        |
    63  | Yandex Disk                  | MD5               | R/W     | No               | No              | R         | -        |
    64  | Zoho WorkDrive               | -                 | -       | No               | No              | -         | -        |
    65  | The local filesystem         | All               | DR/W    | Depends          | No              | -         | DRWU     |
    66  
    67  ¹ Dropbox supports [its own custom
    68  hash](https://www.dropbox.com/developers/reference/content-hash).
    69  This is an SHA256 sum of all the 4 MiB block SHA256s.
    70  
    71  ² SFTP supports checksums if the same login has shell access and
    72  `md5sum` or `sha1sum` as well as `echo` are in the remote's PATH.
    73  
    74  ³ WebDAV supports hashes when used with Fastmail Files, Owncloud and Nextcloud only.
    75  
    76  ⁴ WebDAV supports modtimes when used with Fastmail Files, Owncloud and Nextcloud only.
    77  
    78  ⁵ [QuickXorHash](https://docs.microsoft.com/en-us/onedrive/developer/code-snippets/quickxorhash) is Microsoft's own hash.
    79  
    80  ⁶ Mail.ru uses its own modified SHA1 hash
    81  
    82  ⁷ pCloud only supports SHA1 (not MD5) in its EU region
    83  
    84  ⁸ Opendrive does not support creation of duplicate files using
    85  their web client interface or other stock clients, but the underlying
    86  storage platform has been determined to allow duplicate files, and it
    87  is possible to create them with `rclone`.  It may be that this is a
    88  mistake or an unsupported feature.
    89  
    90  ⁹ QingStor does not support SetModTime for objects bigger than 5 GiB.
    91  
    92  ¹⁰ FTP supports modtimes for the major FTP servers, and also others
    93  if they advertised required protocol extensions. See [this](/ftp/#modification-times)
    94  for more details.
    95  
    96  ¹¹ Internet Archive requires option `wait_archive` to be set to a non-zero value
    97  for full modtime support.
    98  
    99  ¹² HiDrive supports [its own custom
   100  hash](https://static.hidrive.com/dev/0001).
   101  It combines SHA1 sums for each 4 KiB block hierarchically to a single
   102  top-level sum.
   103  
   104  ¹³ Uloz.to provides server-calculated MD5 hash upon file upload. MD5 and SHA256
   105  hashes are client-calculated and stored as metadata fields.
   106  
   107  ### Hash ###
   108  
   109  The cloud storage system supports various hash types of the objects.
   110  The hashes are used when transferring data as an integrity check and
   111  can be specifically used with the `--checksum` flag in syncs and in
   112  the `check` command.
   113  
   114  To use the verify checksums when transferring between cloud storage
   115  systems they must support a common hash type.
   116  
   117  ### ModTime ###
   118  
   119  Almost all cloud storage systems store some sort of timestamp
   120  on objects, but several of them not something that is appropriate
   121  to use for syncing. E.g. some backends will only write a timestamp
   122  that represents the time of the upload. To be relevant for syncing
   123  it should be able to store the modification time of the source
   124  object. If this is not the case, rclone will only check the file
   125  size by default, though can be configured to check the file hash
   126  (with the `--checksum` flag). Ideally it should also be possible to
   127  change the timestamp of an existing file without having to re-upload it.
   128  
   129  | Key | Explanation |
   130  |-----|-------------|
   131  | `-` | ModTimes not supported - times likely the upload time |
   132  | `R` | ModTimes supported on files but can't be changed without re-upload |
   133  | `R/W` | Read and Write ModTimes fully supported on files |
   134  | `DR` | ModTimes supported on files and directories but can't be changed without re-upload |
   135  | `DR/W` | Read and Write ModTimes fully supported on files and directories |
   136  
   137  Storage systems with a `-` in the ModTime column, means the
   138  modification read on objects is not the modification time of the
   139  file when uploaded. It is most likely the time the file was uploaded,
   140  or possibly something else (like the time the picture was taken in
   141  Google Photos).
   142  
   143  Storage systems with a `R` (for read-only) in the ModTime column,
   144  means the it keeps modification times on objects, and updates them
   145  when uploading objects, but it does not support changing only the
   146  modification time (`SetModTime` operation) without re-uploading,
   147  possibly not even without deleting existing first. Some operations
   148  in rclone, such as `copy` and `sync` commands, will automatically
   149  check for `SetModTime` support and re-upload if necessary to keep
   150  the modification times in sync. Other commands will not work
   151  without `SetModTime` support, e.g. `touch` command on an existing
   152  file will fail, and changes to modification time only on a files
   153  in a `mount` will be silently ignored.
   154  
   155  Storage systems with `R/W` (for read/write) in the ModTime column,
   156  means they do also support modtime-only operations.
   157  
   158  Storage systems with `D` in the ModTime column means that the
   159  following symbols apply to directories as well as files.
   160  
   161  ### Case Insensitive ###
   162  
   163  If a cloud storage systems is case sensitive then it is possible to
   164  have two files which differ only in case, e.g. `file.txt` and
   165  `FILE.txt`.  If a cloud storage system is case insensitive then that
   166  isn't possible.
   167  
   168  This can cause problems when syncing between a case insensitive
   169  system and a case sensitive system.  The symptom of this is that no
   170  matter how many times you run the sync it never completes fully.
   171  
   172  The local filesystem and SFTP may or may not be case sensitive
   173  depending on OS.
   174  
   175    * Windows - usually case insensitive, though case is preserved
   176    * OSX - usually case insensitive, though it is possible to format case sensitive
   177    * Linux - usually case sensitive, but there are case insensitive file systems (e.g. FAT formatted USB keys)
   178  
   179  Most of the time this doesn't cause any problems as people tend to
   180  avoid files whose name differs only by case even on case sensitive
   181  systems.
   182  
   183  ### Duplicate files ###
   184  
   185  If a cloud storage system allows duplicate files then it can have two
   186  objects with the same name.
   187  
   188  This confuses rclone greatly when syncing - use the `rclone dedupe`
   189  command to rename or remove duplicates.
   190  
   191  ### Restricted filenames ###
   192  
   193  Some cloud storage systems might have restrictions on the characters
   194  that are usable in file or directory names.
   195  When `rclone` detects such a name during a file upload, it will
   196  transparently replace the restricted characters with similar looking
   197  Unicode characters. To handle the different sets of restricted characters
   198  for different backends, rclone uses something it calls [encoding](#encoding).
   199  
   200  This process is designed to avoid ambiguous file names as much as
   201  possible and allow to move files between many cloud storage systems
   202  transparently.
   203  
   204  The name shown by `rclone` to the user or during log output will only
   205  contain a minimal set of [replaced characters](#restricted-characters)
   206  to ensure correct formatting and not necessarily the actual name used
   207  on the cloud storage.
   208  
   209  This transformation is reversed when downloading a file or parsing
   210  `rclone` arguments. For example, when uploading a file named `my file?.txt`
   211  to Onedrive, it will be displayed as `my file?.txt` on the console, but
   212  stored as `my file?.txt` to Onedrive (the `?` gets replaced by the similar
   213  looking `?` character, the so-called "fullwidth question mark").
   214  The reverse transformation allows to read a file `unusual/name.txt`
   215  from Google Drive, by passing the name `unusual/name.txt` on the command line
   216  (the `/` needs to be replaced by the similar looking `/` character).
   217  
   218  #### Caveats {#restricted-filenames-caveats}
   219  
   220  The filename encoding system works well in most cases, at least
   221  where file names are written in English or similar languages.
   222  You might not even notice it: It just works. In some cases it may
   223  lead to issues, though. E.g. when file names are written in Chinese,
   224  or Japanese, where it is always the Unicode fullwidth variants of the
   225  punctuation marks that are used.
   226  
   227  On Windows, the characters `:`, `*` and `?` are examples of restricted
   228  characters. If these are used in filenames on a remote that supports it,
   229  Rclone will transparently convert them to their fullwidth Unicode
   230  variants `*`, `?` and `:` when downloading to Windows, and back again
   231  when uploading. This way files with names that are not allowed on Windows
   232  can still be stored.
   233  
   234  However, if you have files on your Windows system originally with these same
   235  Unicode characters in their names, they will be included in the same conversion
   236  process. E.g. if you create a file in your Windows filesystem with name
   237  `Test:1.jpg`, where `:` is the Unicode fullwidth colon symbol, and use
   238  rclone to upload it to Google Drive, which supports regular `:` (halfwidth
   239  question mark), rclone will replace the fullwidth `:` with the
   240  halfwidth `:` and store the file as `Test:1.jpg` in Google Drive. Since
   241  both Windows and Google Drive allows the name `Test:1.jpg`, it would
   242  probably be better if rclone just kept the name as is in this case.
   243  
   244  With the opposite situation; if you have a file named `Test:1.jpg`,
   245  in your Google Drive, e.g. uploaded from a Linux system where `:` is valid
   246  in file names. Then later use rclone to copy this file to your Windows
   247  computer you will notice that on your local disk it gets renamed
   248  to `Test:1.jpg`. The original filename is not legal on Windows, due to
   249  the `:`, and rclone therefore renames it to make the copy possible.
   250  That is all good. However, this can also lead to an issue: If you already
   251  had a *different* file named `Test:1.jpg` on Windows, and then use rclone
   252  to copy either way. Rclone will then treat the file originally named
   253  `Test:1.jpg` on Google Drive and the file originally named `Test:1.jpg`
   254  on Windows as the same file, and replace the contents from one with the other.
   255  
   256  Its virtually impossible to handle all cases like these correctly in all
   257  situations, but by customizing the [encoding option](#encoding), changing the
   258  set of characters that rclone should convert, you should be able to
   259  create a configuration that works well for your specific situation.
   260  See also the [example](/overview/#encoding-example-windows) below.
   261  
   262  (Windows was used as an example of a file system with many restricted
   263  characters, and Google drive a storage system with few.)
   264  
   265  #### Default restricted characters {#restricted-characters}
   266  
   267  The table below shows the characters that are replaced by default.
   268  
   269  When a replacement character is found in a filename, this character
   270  will be escaped with the `‛` character to avoid ambiguous file names.
   271  (e.g. a file named `␀.txt` would shown as `‛␀.txt`)
   272  
   273  Each cloud storage backend can use a different set of characters,
   274  which will be specified in the documentation for each backend.
   275  
   276  | Character | Value | Replacement |
   277  | --------- |:-----:|:-----------:|
   278  | NUL       | 0x00  | ␀           |
   279  | SOH       | 0x01  | ␁           |
   280  | STX       | 0x02  | ␂           |
   281  | ETX       | 0x03  | ␃           |
   282  | EOT       | 0x04  | ␄           |
   283  | ENQ       | 0x05  | ␅           |
   284  | ACK       | 0x06  | ␆           |
   285  | BEL       | 0x07  | ␇           |
   286  | BS        | 0x08  | ␈           |
   287  | HT        | 0x09  | ␉           |
   288  | LF        | 0x0A  | ␊           |
   289  | VT        | 0x0B  | ␋           |
   290  | FF        | 0x0C  | ␌           |
   291  | CR        | 0x0D  | ␍           |
   292  | SO        | 0x0E  | ␎           |
   293  | SI        | 0x0F  | ␏           |
   294  | DLE       | 0x10  | ␐           |
   295  | DC1       | 0x11  | ␑           |
   296  | DC2       | 0x12  | ␒           |
   297  | DC3       | 0x13  | ␓           |
   298  | DC4       | 0x14  | ␔           |
   299  | NAK       | 0x15  | ␕           |
   300  | SYN       | 0x16  | ␖           |
   301  | ETB       | 0x17  | ␗           |
   302  | CAN       | 0x18  | ␘           |
   303  | EM        | 0x19  | ␙           |
   304  | SUB       | 0x1A  | ␚           |
   305  | ESC       | 0x1B  | ␛           |
   306  | FS        | 0x1C  | ␜           |
   307  | GS        | 0x1D  | ␝           |
   308  | RS        | 0x1E  | ␞           |
   309  | US        | 0x1F  | ␟           |
   310  | /         | 0x2F  | /           |
   311  | DEL       | 0x7F  | ␡           |
   312  
   313  The default encoding will also encode these file names as they are
   314  problematic with many cloud storage systems.
   315  
   316  | File name | Replacement |
   317  | --------- |:-----------:|
   318  | .         | .          |
   319  | ..        | ..         |
   320  
   321  #### Invalid UTF-8 bytes {#invalid-utf8}
   322  
   323  Some backends only support a sequence of well formed UTF-8 bytes
   324  as file or directory names.
   325  
   326  In this case all invalid UTF-8 bytes will be replaced with a quoted
   327  representation of the byte value to allow uploading a file to such a
   328  backend. For example, the invalid byte `0xFE` will be encoded as `‛FE`.
   329  
   330  A common source of invalid UTF-8 bytes are local filesystems, that store
   331  names in a different encoding than UTF-8 or UTF-16, like latin1. See the
   332  [local filenames](/local/#filenames) section for details.
   333  
   334  #### Encoding option {#encoding}
   335  
   336  Most backends have an encoding option, specified as a flag
   337  `--backend-encoding` where `backend` is the name of the backend, or as
   338  a config parameter `encoding` (you'll need to select the Advanced
   339  config in `rclone config` to see it).
   340  
   341  This will have default value which encodes and decodes characters in
   342  such a way as to preserve the maximum number of characters (see
   343  above).
   344  
   345  However this can be incorrect in some scenarios, for example if you
   346  have a Windows file system with Unicode fullwidth characters
   347  `*`, `?` or `:`, that you want to remain as those characters on the
   348  remote rather than being translated to regular (halfwidth) `*`, `?` and `:`.
   349  
   350  The `--backend-encoding` flags allow you to change that. You can
   351  disable the encoding completely with `--backend-encoding None` or set
   352  `encoding = None` in the config file.
   353  
   354  Encoding takes a comma separated list of encodings. You can see the
   355  list of all possible values by passing an invalid value to this
   356  flag, e.g. `--local-encoding "help"`. The command `rclone help flags encoding`
   357  will show you the defaults for the backends.
   358  
   359  | Encoding  | Characters | Encoded as |
   360  | --------- | ---------- | ---------- |
   361  | Asterisk | `*` | `*` |
   362  | BackQuote | `` ` `` | ``` |
   363  | BackSlash | `\` | `\` |
   364  | Colon | `:` | `:` |
   365  | CrLf | CR 0x0D, LF 0x0A | `␍`, `␊` |
   366  | Ctl | All control characters 0x00-0x1F | `␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟` |
   367  | Del | DEL 0x7F | `␡` |
   368  | Dollar | `$` | `$` |
   369  | Dot | `.` or `..` as entire string | `.`, `..` |
   370  | DoubleQuote | `"` | `"` |
   371  | Hash | `#` | `#` |
   372  | InvalidUtf8 | An invalid UTF-8 character (e.g. latin1) | `�` |
   373  | LeftCrLfHtVt | CR 0x0D, LF 0x0A, HT 0x09, VT 0x0B on the left of a string | `␍`, `␊`, `␉`, `␋` |
   374  | LeftPeriod | `.` on the left of a string | `.` |
   375  | LeftSpace | SPACE on the left of a string | `␠` |
   376  | LeftTilde | `~` on the left of a string | `~` |
   377  | LtGt | `<`, `>` | `<`, `>` |
   378  | None | No characters are encoded | |
   379  | Percent | `%` | `%` |
   380  | Pipe | \| | `|` |
   381  | Question | `?` | `?` |
   382  | RightCrLfHtVt | CR 0x0D, LF 0x0A, HT 0x09, VT 0x0B on the right of a string | `␍`, `␊`, `␉`, `␋` |
   383  | RightPeriod | `.` on the right of a string | `.` |
   384  | RightSpace | SPACE on the right of a string | `␠` |
   385  | Semicolon | `;` | `;` |
   386  | SingleQuote | `'` | `'` |
   387  | Slash | `/` | `/` |
   388  | SquareBracket | `[`, `]` | `[`, `]` |
   389  
   390  ##### Encoding example: FTP
   391  
   392  To take a specific example, the FTP backend's default encoding is
   393  
   394      --ftp-encoding "Slash,Del,Ctl,RightSpace,Dot"
   395  
   396  However, let's say the FTP server is running on Windows and can't have
   397  any of the invalid Windows characters in file names. You are backing
   398  up Linux servers to this FTP server which do have those characters in
   399  file names. So you would add the Windows set which are
   400  
   401      Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot
   402  
   403  to the existing ones, giving:
   404  
   405      Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot,Del,RightSpace
   406  
   407  This can be specified using the `--ftp-encoding` flag or using an `encoding` parameter in the config file.
   408  
   409  ##### Encoding example: Windows
   410  
   411  As a nother example, take a Windows system where there is a file with
   412  name `Test:1.jpg`, where `:` is the Unicode fullwidth colon symbol.
   413  When using rclone to copy this to a remote which supports `:`,
   414  the regular (halfwidth) colon (such as Google Drive), you will notice
   415  that the file gets renamed to `Test:1.jpg`.
   416  
   417  To avoid this you can change the set of characters rclone should convert
   418  for the local filesystem, using command-line argument `--local-encoding`.
   419  Rclone's default behavior on Windows corresponds to
   420  
   421  ```
   422  --local-encoding "Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot"
   423  ```
   424  
   425  If you want to use fullwidth characters `:`, `*` and `?` in your filenames
   426  without rclone changing them when uploading to a remote, then set the same as
   427  the default value but without `Colon,Question,Asterisk`:
   428  
   429  ```
   430  --local-encoding "Slash,LtGt,DoubleQuote,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot"
   431  ```
   432  
   433  Alternatively, you can disable the conversion of any characters with `--local-encoding None`.
   434  
   435  Instead of using command-line argument `--local-encoding`, you may also set it
   436  as [environment variable](/docs/#environment-variables) `RCLONE_LOCAL_ENCODING`,
   437  or [configure](/docs/#configure) a remote of type `local` in your config,
   438  and set the `encoding` option there.
   439  
   440  The risk by doing this is that if you have a filename with the regular (halfwidth)
   441  `:`, `*` and `?` in your cloud storage, and you try to download
   442  it to your Windows filesystem, this will fail. These characters are not
   443  valid in filenames on Windows, and you have told rclone not to work around
   444  this by converting them to valid fullwidth variants.
   445  
   446  ### MIME Type ###
   447  
   448  MIME types (also known as media types) classify types of documents
   449  using a simple text classification, e.g. `text/html` or
   450  `application/pdf`.
   451  
   452  Some cloud storage systems support reading (`R`) the MIME type of
   453  objects and some support writing (`W`) the MIME type of objects.
   454  
   455  The MIME type can be important if you are serving files directly to
   456  HTTP from the storage system.
   457  
   458  If you are copying from a remote which supports reading (`R`) to a
   459  remote which supports writing (`W`) then rclone will preserve the MIME
   460  types.  Otherwise they will be guessed from the extension, or the
   461  remote itself may assign the MIME type.
   462  
   463  ### Metadata
   464  
   465  Backends may or may support reading or writing metadata. They may
   466  support reading and writing system metadata (metadata intrinsic to
   467  that backend) and/or user metadata (general purpose metadata).
   468  
   469  The levels of metadata support are
   470  
   471  | Key | Explanation |
   472  |-----|-------------|
   473  | `R` | Read only System Metadata on files only|
   474  | `RW` | Read and write System Metadata on files only|
   475  | `RWU` | Read and write System Metadata and read and write User Metadata on files only|
   476  | `DR` | Read only System Metadata on files and directories |
   477  | `DRW` | Read and write System Metadata on files and directories|
   478  | `DRWU` | Read and write System Metadata and read and write User Metadata on files and directories |
   479  
   480  See [the metadata docs](/docs/#metadata) for more info.
   481  
   482  ## Optional Features ##
   483  
   484  All rclone remotes support a base command set. Other features depend
   485  upon backend-specific capabilities.
   486  
   487  | Name                         | Purge | Copy | Move | DirMove | CleanUp | ListR | StreamUpload | MultithreadUpload | LinkSharing  | About | EmptyDir |
   488  | ---------------------------- |:-----:|:----:|:----:|:-------:|:-------:|:-----:|:------------:|:------------------|:------------:|:-----:|:--------:|
   489  | 1Fichier                     | No    | Yes  | Yes  | No      | No      | No    | No           | No                | Yes          | No    | Yes      |
   490  | Akamai Netstorage            | Yes   | No   | No   | No      | No      | Yes   | Yes          | No                | No           | No    | Yes      |
   491  | Amazon S3 (or S3 compatible) | No    | Yes  | No   | No      | Yes     | Yes   | Yes          | Yes               | Yes          | No    | No       |
   492  | Backblaze B2                 | No    | Yes  | No   | No      | Yes     | Yes   | Yes          | Yes               | Yes          | No    | No       |
   493  | Box                          | Yes   | Yes  | Yes  | Yes     | Yes     | No    | Yes          | No                | Yes          | Yes   | Yes      |
   494  | Citrix ShareFile             | Yes   | Yes  | Yes  | Yes     | No      | No    | No           | No                | No           | No    | Yes      |
   495  | Dropbox                      | Yes   | Yes  | Yes  | Yes     | No      | No    | Yes          | No                | Yes          | Yes   | Yes      |
   496  | Enterprise File Fabric       | Yes   | Yes  | Yes  | Yes     | Yes     | No    | No           | No                | No           | No    | Yes      |
   497  | FTP                          | No    | No   | Yes  | Yes     | No      | No    | Yes          | No                | No           | No    | Yes      |
   498  | Google Cloud Storage         | Yes   | Yes  | No   | No      | No      | Yes   | Yes          | No                | No           | No    | No       |
   499  | Google Drive                 | Yes   | Yes  | Yes  | Yes     | Yes     | Yes   | Yes          | No                | Yes          | Yes   | Yes      |
   500  | Google Photos                | No    | No   | No   | No      | No      | No    | No           | No                | No           | No    | No       |
   501  | HDFS                         | Yes   | No   | Yes  | Yes     | No      | No    | Yes          | No                | No           | Yes   | Yes      |
   502  | HiDrive                      | Yes   | Yes  | Yes  | Yes     | No      | No    | Yes          | No                | No           | No    | Yes      |
   503  | HTTP                         | No    | No   | No   | No      | No      | No    | No           | No                | No           | No    | Yes      |
   504  | ImageKit                     | Yes    | Yes  | Yes   | No      | No     | No   | No           | No                | No          | No   | Yes       |
   505  | Internet Archive             | No    | Yes  | No   | No      | Yes     | Yes   | No           | No                | Yes          | Yes   | No       |
   506  | Jottacloud                   | Yes   | Yes  | Yes  | Yes     | Yes     | Yes   | No           | No                | Yes          | Yes   | Yes      |
   507  | Koofr                        | Yes   | Yes  | Yes  | Yes     | No      | No    | Yes          | No                | Yes          | Yes   | Yes      |
   508  | Mail.ru Cloud                | Yes   | Yes  | Yes  | Yes     | Yes     | No    | No           | No                | Yes          | Yes   | Yes      |
   509  | Mega                         | Yes   | No   | Yes  | Yes     | Yes     | No    | No           | No                | Yes          | Yes   | Yes      |
   510  | Memory                       | No    | Yes  | No   | No      | No      | Yes   | Yes          | No                | No           | No    | No       |
   511  | Microsoft Azure Blob Storage | Yes   | Yes  | No   | No      | No      | Yes   | Yes          | Yes               | No           | No    | No       |
   512  | Microsoft Azure Files Storage | No   | Yes  | Yes  | Yes     | No      | No    | Yes          | Yes               | No           | Yes   | Yes      |
   513  | Microsoft OneDrive           | Yes   | Yes  | Yes  | Yes     | Yes     | Yes ⁵ | No           | No                | Yes          | Yes   | Yes      |
   514  | OpenDrive                    | Yes   | Yes  | Yes  | Yes     | No      | No    | No           | No                | No           | No    | Yes      |
   515  | OpenStack Swift              | Yes ¹ | Yes  | No   | No      | No      | Yes   | Yes          | No                | No           | Yes   | No       |
   516  | Oracle Object Storage        | No    | Yes  | No   | No      | Yes     | Yes   | Yes          | Yes               | No           | No    | No       |
   517  | pCloud                       | Yes   | Yes  | Yes  | Yes     | Yes     | No    | No           | No                | Yes          | Yes   | Yes      |
   518  | PikPak                       | Yes   | Yes  | Yes  | Yes     | Yes     | No    | No           | No                | Yes          | Yes   | Yes      |
   519  | premiumize.me                | Yes   | No   | Yes  | Yes     | No      | No    | No           | No                | Yes          | Yes   | Yes      |
   520  | put.io                       | Yes   | No   | Yes  | Yes     | Yes     | No    | Yes          | No                | No           | Yes   | Yes      |
   521  | Proton Drive                 | Yes   | No   | Yes  | Yes     | Yes     | No    | No           | No                | No           | Yes   | Yes      |
   522  | QingStor                     | No    | Yes  | No   | No      | Yes     | Yes   | No           | No                | No           | No    | No       |
   523  | Quatrix by Maytech           | Yes   | Yes  | Yes  | Yes     | No      | No    | No           | No                | No           | Yes   | Yes      |
   524  | Seafile                      | Yes   | Yes  | Yes  | Yes     | Yes     | Yes   | Yes          | No                | Yes          | Yes   | Yes      |
   525  | SFTP                         | No    | Yes ⁴| Yes  | Yes     | No      | No    | Yes          | No                | No           | Yes   | Yes      |
   526  | Sia                          | No    | No   | No   | No      | No      | No    | Yes          | No                | No           | No    | Yes      |
   527  | SMB                          | No    | No   | Yes  | Yes     | No      | No    | Yes          | Yes               | No           | No    | Yes      |
   528  | SugarSync                    | Yes   | Yes  | Yes  | Yes     | No      | No    | Yes          | No                | Yes          | No    | Yes      |
   529  | Storj                        | Yes ² | Yes  | Yes  | No      | No      | Yes   | Yes          | No                | Yes          | No    | No       |
   530  | Uloz.to                      | No    | No   | Yes  | Yes     | No      | No    | No           | No                | No           | No    | Yes      |
   531  | Uptobox                      | No    | Yes  | Yes  | Yes     | No      | No    | No           | No                | No           | No    | No       |
   532  | WebDAV                       | Yes   | Yes  | Yes  | Yes     | No      | No    | Yes ³        | No                | No           | Yes   | Yes      |
   533  | Yandex Disk                  | Yes   | Yes  | Yes  | Yes     | Yes     | No    | Yes          | No                | Yes          | Yes   | Yes      |
   534  | Zoho WorkDrive               | Yes   | Yes  | Yes  | Yes     | No      | No    | No           | No                | No           | Yes   | Yes      |
   535  | The local filesystem         | No    | No   | Yes  | Yes     | No      | No    | Yes          | Yes               | No           | Yes   | Yes      |
   536  
   537  ¹ Note Swift implements this in order to delete directory markers but
   538  it doesn't actually have a quicker way of deleting files other than
   539  deleting them individually.
   540  
   541  ² Storj implements this efficiently only for entire buckets. If
   542  purging a directory inside a bucket, files are deleted individually.
   543  
   544  ³ StreamUpload is not supported with Nextcloud
   545  
   546  ⁴ Use the `--sftp-copy-is-hardlink` flag to enable.
   547  
   548  ⁵ Use the `--onedrive-delta` flag to enable.
   549  
   550  ### Purge ###
   551  
   552  This deletes a directory quicker than just deleting all the files in
   553  the directory.
   554  
   555  ### Copy ###
   556  
   557  Used when copying an object to and from the same remote.  This known
   558  as a server-side copy so you can copy a file without downloading it
   559  and uploading it again.  It is used if you use `rclone copy` or
   560  `rclone move` if the remote doesn't support `Move` directly.
   561  
   562  If the server doesn't support `Copy` directly then for copy operations
   563  the file is downloaded then re-uploaded.
   564  
   565  ### Move ###
   566  
   567  Used when moving/renaming an object on the same remote.  This is known
   568  as a server-side move of a file.  This is used in `rclone move` if the
   569  server doesn't support `DirMove`.
   570  
   571  If the server isn't capable of `Move` then rclone simulates it with
   572  `Copy` then delete.  If the server doesn't support `Copy` then rclone
   573  will download the file and re-upload it.
   574  
   575  ### DirMove ###
   576  
   577  This is used to implement `rclone move` to move a directory if
   578  possible.  If it isn't then it will use `Move` on each file (which
   579  falls back to `Copy` then download and upload - see `Move` section).
   580  
   581  ### CleanUp ###
   582  
   583  This is used for emptying the trash for a remote by `rclone cleanup`.
   584  
   585  If the server can't do `CleanUp` then `rclone cleanup` will return an
   586  error.
   587  
   588  ‡‡ Note that while Box implements this it has to delete every file
   589  individually so it will be slower than emptying the trash via the WebUI
   590  
   591  ### ListR ###
   592  
   593  The remote supports a recursive list to list all the contents beneath
   594  a directory quickly.  This enables the `--fast-list` flag to work.
   595  See the [rclone docs](/docs/#fast-list) for more details.
   596  
   597  ### StreamUpload ###
   598  
   599  Some remotes allow files to be uploaded without knowing the file size
   600  in advance. This allows certain operations to work without spooling the
   601  file to local disk first, e.g. `rclone rcat`.
   602  
   603  ### MultithreadUpload ###
   604  
   605  Some remotes allow transfers to the remote to be sent as chunks in
   606  parallel. If this is supported then rclone will use multi-thread
   607  copying to transfer files much faster.
   608  
   609  ### LinkSharing ###
   610  
   611  Sets the necessary permissions on a file or folder and prints a link
   612  that allows others to access them, even if they don't have an account
   613  on the particular cloud provider.
   614  
   615  ### About ###
   616  
   617  Rclone `about` prints quota information for a remote. Typical output
   618  includes bytes used, free, quota and in trash.
   619  
   620  If a remote lacks about capability `rclone about remote:`returns
   621  an error.
   622  
   623  Backends without about capability cannot determine free space for an
   624  rclone mount, or use policy `mfs` (most free space) as a member of an
   625  rclone union remote.
   626  
   627  See [rclone about command](https://rclone.org/commands/rclone_about/)
   628  
   629  ### EmptyDir ###
   630  
   631  The remote supports empty directories. See [Limitations](/bugs/#limitations)
   632   for details. Most Object/Bucket-based remotes do not support this.