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

     1  ---
     2  title: "rclone serve s3"
     3  description: "Serve remote:path over s3."
     4  slug: rclone_serve_s3
     5  url: /commands/rclone_serve_s3/
     6  groups: Filter
     7  status: Experimental
     8  versionIntroduced: v1.65
     9  # autogenerated - DO NOT EDIT, instead edit the source code in cmd/serve/s3/ and as part of making a release run "make commanddocs"
    10  ---
    11  # rclone serve s3
    12  
    13  Serve remote:path over s3.
    14  
    15  ## Synopsis
    16  
    17  `serve s3` implements a basic s3 server that serves a remote via s3.
    18  This can be viewed with an s3 client, or you can make an [s3 type
    19  remote](/s3/) to read and write to it with rclone.
    20  
    21  `serve s3` is considered **Experimental** so use with care.
    22  
    23  S3 server supports Signature Version 4 authentication. Just use
    24  `--auth-key accessKey,secretKey` and set the `Authorization`
    25  header correctly in the request. (See the [AWS
    26  docs](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)).
    27  
    28  `--auth-key` can be repeated for multiple auth pairs. If
    29  `--auth-key` is not provided then `serve s3` will allow anonymous
    30  access.
    31  
    32  Please note that some clients may require HTTPS endpoints. See [the
    33  SSL docs](#ssl-tls) for more information.
    34  
    35  This command uses the [VFS directory cache](#vfs-virtual-file-system).
    36  All the functionality will work with `--vfs-cache-mode off`. Using
    37  `--vfs-cache-mode full` (or `writes`) can be used to cache objects
    38  locally to improve performance.
    39  
    40  Use `--force-path-style=false` if you want to use the bucket name as a
    41  part of the hostname (such as mybucket.local)
    42  
    43  Use `--etag-hash` if you want to change the hash uses for the `ETag`.
    44  Note that using anything other than `MD5` (the default) is likely to
    45  cause problems for S3 clients which rely on the Etag being the MD5.
    46  
    47  ## Quickstart
    48  
    49  For a simple set up, to serve `remote:path` over s3, run the server
    50  like this:
    51  
    52  ```
    53  rclone serve s3 --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY remote:path
    54  ```
    55  
    56  This will be compatible with an rclone remote which is defined like this:
    57  
    58  ```
    59  [serves3]
    60  type = s3
    61  provider = Rclone
    62  endpoint = http://127.0.0.1:8080/
    63  access_key_id = ACCESS_KEY_ID
    64  secret_access_key = SECRET_ACCESS_KEY
    65  use_multipart_uploads = false
    66  ```
    67  
    68  Note that setting `disable_multipart_uploads = true` is to work around
    69  [a bug](#bugs) which will be fixed in due course.
    70  
    71  ## Bugs
    72  
    73  When uploading multipart files `serve s3` holds all the parts in
    74  memory (see [#7453](https://github.com/artpar/artpar/issues/7453)).
    75  This is a limitaton of the library rclone uses for serving S3 and will
    76  hopefully be fixed at some point.
    77  
    78  Multipart server side copies do not work (see
    79  [#7454](https://github.com/artpar/artpar/issues/7454)). These take a
    80  very long time and eventually fail. The default threshold for
    81  multipart server side copies is 5G which is the maximum it can be, so
    82  files above this side will fail to be server side copied.
    83  
    84  For a current list of `serve s3` bugs see the [serve
    85  s3](https://github.com/artpar/artpar/labels/serve%20s3) bug category
    86  on GitHub.
    87  
    88  ## Limitations
    89  
    90  `serve s3` will treat all directories in the root as buckets and
    91  ignore all files in the root. You can use `CreateBucket` to create
    92  folders under the root, but you can't create empty folders under other
    93  folders not in the root.
    94  
    95  When using `PutObject` or `DeleteObject`, rclone will automatically
    96  create or clean up empty folders. If you don't want to clean up empty
    97  folders automatically, use `--no-cleanup`.
    98  
    99  When using `ListObjects`, rclone will use `/` when the delimiter is
   100  empty. This reduces backend requests with no effect on most
   101  operations, but if the delimiter is something other than `/` and
   102  empty, rclone will do a full recursive search of the backend, which
   103  can take some time.
   104  
   105  Versioning is not currently supported.
   106  
   107  Metadata will only be saved in memory other than the rclone `mtime`
   108  metadata which will be set as the modification time of the file.
   109  
   110  ## Supported operations
   111  
   112  `serve s3` currently supports the following operations.
   113  
   114  - Bucket
   115      - `ListBuckets`
   116      - `CreateBucket`
   117      - `DeleteBucket`
   118  - Object
   119      - `HeadObject`
   120      - `ListObjects`
   121      - `GetObject`
   122      - `PutObject`
   123      - `DeleteObject`
   124      - `DeleteObjects`
   125      - `CreateMultipartUpload`
   126      - `CompleteMultipartUpload`
   127      - `AbortMultipartUpload`
   128      - `CopyObject`
   129      - `UploadPart`
   130  
   131  Other operations will return error `Unimplemented`.
   132  
   133  ## Server options
   134  
   135  Use `--addr` to specify which IP address and port the server should
   136  listen on, eg `--addr 1.2.3.4:8000` or `--addr :8080` to listen to all
   137  IPs.  By default it only listens on localhost.  You can use port
   138  :0 to let the OS choose an available port.
   139  
   140  If you set `--addr` to listen on a public or LAN accessible IP address
   141  then using Authentication is advised - see the next section for info.
   142  
   143  You can use a unix socket by setting the url to `unix:///path/to/socket`
   144  or just by using an absolute path name. Note that unix sockets bypass the
   145  authentication - this is expected to be done with file system permissions.
   146  
   147  `--addr` may be repeated to listen on multiple IPs/ports/sockets.
   148  
   149  `--server-read-timeout` and `--server-write-timeout` can be used to
   150  control the timeouts on the server.  Note that this is the total time
   151  for a transfer.
   152  
   153  `--max-header-bytes` controls the maximum number of bytes the server will
   154  accept in the HTTP header.
   155  
   156  `--baseurl` controls the URL prefix that rclone serves from.  By default
   157  rclone will serve from the root.  If you used `--baseurl "/rclone"` then
   158  rclone would serve from a URL starting with "/rclone/".  This is
   159  useful if you wish to proxy rclone serve.  Rclone automatically
   160  inserts leading and trailing "/" on `--baseurl`, so `--baseurl "rclone"`,
   161  `--baseurl "/rclone"` and `--baseurl "/rclone/"` are all treated
   162  identically.
   163  
   164  ### TLS (SSL)
   165  
   166  By default this will serve over http.  If you want you can serve over
   167  https.  You will need to supply the `--cert` and `--key` flags.
   168  If you wish to do client side certificate validation then you will need to
   169  supply `--client-ca` also.
   170  
   171  `--cert` should be a either a PEM encoded certificate or a concatenation
   172  of that with the CA certificate.  `--key` should be the PEM encoded
   173  private key and `--client-ca` should be the PEM encoded client
   174  certificate authority certificate.
   175  
   176  --min-tls-version is minimum TLS version that is acceptable. Valid
   177    values are "tls1.0", "tls1.1", "tls1.2" and "tls1.3" (default
   178    "tls1.0").
   179  
   180  ## VFS - Virtual File System
   181  
   182  This command uses the VFS layer. This adapts the cloud storage objects
   183  that rclone uses into something which looks much more like a disk
   184  filing system.
   185  
   186  Cloud storage objects have lots of properties which aren't like disk
   187  files - you can't extend them or write to the middle of them, so the
   188  VFS layer has to deal with that. Because there is no one right way of
   189  doing this there are various options explained below.
   190  
   191  The VFS layer also implements a directory cache - this caches info
   192  about files and directories (but not the data) in memory.
   193  
   194  ## VFS Directory Cache
   195  
   196  Using the `--dir-cache-time` flag, you can control how long a
   197  directory should be considered up to date and not refreshed from the
   198  backend. Changes made through the VFS will appear immediately or
   199  invalidate the cache.
   200  
   201      --dir-cache-time duration   Time to cache directory entries for (default 5m0s)
   202      --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)
   203  
   204  However, changes made directly on the cloud storage by the web
   205  interface or a different copy of rclone will only be picked up once
   206  the directory cache expires if the backend configured does not support
   207  polling for changes. If the backend supports polling, changes will be
   208  picked up within the polling interval.
   209  
   210  You can send a `SIGHUP` signal to rclone for it to flush all
   211  directory caches, regardless of how old they are.  Assuming only one
   212  rclone instance is running, you can reset the cache like this:
   213  
   214      kill -SIGHUP $(pidof rclone)
   215  
   216  If you configure rclone with a [remote control](/rc) then you can use
   217  rclone rc to flush the whole directory cache:
   218  
   219      rclone rc vfs/forget
   220  
   221  Or individual files or directories:
   222  
   223      rclone rc vfs/forget file=path/to/file dir=path/to/dir
   224  
   225  ## VFS File Buffering
   226  
   227  The `--buffer-size` flag determines the amount of memory,
   228  that will be used to buffer data in advance.
   229  
   230  Each open file will try to keep the specified amount of data in memory
   231  at all times. The buffered data is bound to one open file and won't be
   232  shared.
   233  
   234  This flag is a upper limit for the used memory per open file.  The
   235  buffer will only use memory for data that is downloaded but not not
   236  yet read. If the buffer is empty, only a small amount of memory will
   237  be used.
   238  
   239  The maximum memory used by rclone for buffering can be up to
   240  `--buffer-size * open files`.
   241  
   242  ## VFS File Caching
   243  
   244  These flags control the VFS file caching options. File caching is
   245  necessary to make the VFS layer appear compatible with a normal file
   246  system. It can be disabled at the cost of some compatibility.
   247  
   248  For example you'll need to enable VFS caching if you want to read and
   249  write simultaneously to a file.  See below for more details.
   250  
   251  Note that the VFS cache is separate from the cache backend and you may
   252  find that you need one or the other or both.
   253  
   254      --cache-dir string                     Directory rclone will use for caching.
   255      --vfs-cache-mode CacheMode             Cache mode off|minimal|writes|full (default off)
   256      --vfs-cache-max-age duration           Max time since last access of objects in the cache (default 1h0m0s)
   257      --vfs-cache-max-size SizeSuffix        Max total size of objects in the cache (default off)
   258      --vfs-cache-min-free-space SizeSuffix  Target minimum free space on the disk containing the cache (default off)
   259      --vfs-cache-poll-interval duration     Interval to poll the cache for stale objects (default 1m0s)
   260      --vfs-write-back duration              Time to writeback files after last use when using cache (default 5s)
   261  
   262  If run with `-vv` rclone will print the location of the file cache.  The
   263  files are stored in the user cache file area which is OS dependent but
   264  can be controlled with `--cache-dir` or setting the appropriate
   265  environment variable.
   266  
   267  The cache has 4 different modes selected by `--vfs-cache-mode`.
   268  The higher the cache mode the more compatible rclone becomes at the
   269  cost of using disk space.
   270  
   271  Note that files are written back to the remote only when they are
   272  closed and if they haven't been accessed for `--vfs-write-back`
   273  seconds. If rclone is quit or dies with files that haven't been
   274  uploaded, these will be uploaded next time rclone is run with the same
   275  flags.
   276  
   277  If using `--vfs-cache-max-size` or `--vfs-cache-min-free-size` note
   278  that the cache may exceed these quotas for two reasons. Firstly
   279  because it is only checked every `--vfs-cache-poll-interval`. Secondly
   280  because open files cannot be evicted from the cache. When
   281  `--vfs-cache-max-size` or `--vfs-cache-min-free-size` is exceeded,
   282  rclone will attempt to evict the least accessed files from the cache
   283  first. rclone will start with files that haven't been accessed for the
   284  longest. This cache flushing strategy is efficient and more relevant
   285  files are likely to remain cached.
   286  
   287  The `--vfs-cache-max-age` will evict files from the cache
   288  after the set time since last access has passed. The default value of
   289  1 hour will start evicting files from cache that haven't been accessed
   290  for 1 hour. When a cached file is accessed the 1 hour timer is reset to 0
   291  and will wait for 1 more hour before evicting. Specify the time with
   292  standard notation, s, m, h, d, w .
   293  
   294  You **should not** run two copies of rclone using the same VFS cache
   295  with the same or overlapping remotes if using `--vfs-cache-mode > off`.
   296  This can potentially cause data corruption if you do. You can work
   297  around this by giving each rclone its own cache hierarchy with
   298  `--cache-dir`. You don't need to worry about this if the remotes in
   299  use don't overlap.
   300  
   301  ### --vfs-cache-mode off
   302  
   303  In this mode (the default) the cache will read directly from the remote and write
   304  directly to the remote without caching anything on disk.
   305  
   306  This will mean some operations are not possible
   307  
   308    * Files can't be opened for both read AND write
   309    * Files opened for write can't be seeked
   310    * Existing files opened for write must have O_TRUNC set
   311    * Files open for read with O_TRUNC will be opened write only
   312    * Files open for write only will behave as if O_TRUNC was supplied
   313    * Open modes O_APPEND, O_TRUNC are ignored
   314    * If an upload fails it can't be retried
   315  
   316  ### --vfs-cache-mode minimal
   317  
   318  This is very similar to "off" except that files opened for read AND
   319  write will be buffered to disk.  This means that files opened for
   320  write will be a lot more compatible, but uses the minimal disk space.
   321  
   322  These operations are not possible
   323  
   324    * Files opened for write only can't be seeked
   325    * Existing files opened for write must have O_TRUNC set
   326    * Files opened for write only will ignore O_APPEND, O_TRUNC
   327    * If an upload fails it can't be retried
   328  
   329  ### --vfs-cache-mode writes
   330  
   331  In this mode files opened for read only are still read directly from
   332  the remote, write only and read/write files are buffered to disk
   333  first.
   334  
   335  This mode should support all normal file system operations.
   336  
   337  If an upload fails it will be retried at exponentially increasing
   338  intervals up to 1 minute.
   339  
   340  ### --vfs-cache-mode full
   341  
   342  In this mode all reads and writes are buffered to and from disk. When
   343  data is read from the remote this is buffered to disk as well.
   344  
   345  In this mode the files in the cache will be sparse files and rclone
   346  will keep track of which bits of the files it has downloaded.
   347  
   348  So if an application only reads the starts of each file, then rclone
   349  will only buffer the start of the file. These files will appear to be
   350  their full size in the cache, but they will be sparse files with only
   351  the data that has been downloaded present in them.
   352  
   353  This mode should support all normal file system operations and is
   354  otherwise identical to `--vfs-cache-mode` writes.
   355  
   356  When reading a file rclone will read `--buffer-size` plus
   357  `--vfs-read-ahead` bytes ahead.  The `--buffer-size` is buffered in memory
   358  whereas the `--vfs-read-ahead` is buffered on disk.
   359  
   360  When using this mode it is recommended that `--buffer-size` is not set
   361  too large and `--vfs-read-ahead` is set large if required.
   362  
   363  **IMPORTANT** not all file systems support sparse files. In particular
   364  FAT/exFAT do not. Rclone will perform very badly if the cache
   365  directory is on a filesystem which doesn't support sparse files and it
   366  will log an ERROR message if one is detected.
   367  
   368  ### Fingerprinting
   369  
   370  Various parts of the VFS use fingerprinting to see if a local file
   371  copy has changed relative to a remote file. Fingerprints are made
   372  from:
   373  
   374  - size
   375  - modification time
   376  - hash
   377  
   378  where available on an object.
   379  
   380  On some backends some of these attributes are slow to read (they take
   381  an extra API call per object, or extra work per object).
   382  
   383  For example `hash` is slow with the `local` and `sftp` backends as
   384  they have to read the entire file and hash it, and `modtime` is slow
   385  with the `s3`, `swift`, `ftp` and `qinqstor` backends because they
   386  need to do an extra API call to fetch it.
   387  
   388  If you use the `--vfs-fast-fingerprint` flag then rclone will not
   389  include the slow operations in the fingerprint. This makes the
   390  fingerprinting less accurate but much faster and will improve the
   391  opening time of cached files.
   392  
   393  If you are running a vfs cache over `local`, `s3` or `swift` backends
   394  then using this flag is recommended.
   395  
   396  Note that if you change the value of this flag, the fingerprints of
   397  the files in the cache may be invalidated and the files will need to
   398  be downloaded again.
   399  
   400  ## VFS Chunked Reading
   401  
   402  When rclone reads files from a remote it reads them in chunks. This
   403  means that rather than requesting the whole file rclone reads the
   404  chunk specified.  This can reduce the used download quota for some
   405  remotes by requesting only chunks from the remote that are actually
   406  read, at the cost of an increased number of requests.
   407  
   408  These flags control the chunking:
   409  
   410      --vfs-read-chunk-size SizeSuffix        Read the source objects in chunks (default 128M)
   411      --vfs-read-chunk-size-limit SizeSuffix  Max chunk doubling size (default off)
   412  
   413  Rclone will start reading a chunk of size `--vfs-read-chunk-size`,
   414  and then double the size for each read. When `--vfs-read-chunk-size-limit` is
   415  specified, and greater than `--vfs-read-chunk-size`, the chunk size for each
   416  open file will get doubled only until the specified value is reached. If the
   417  value is "off", which is the default, the limit is disabled and the chunk size
   418  will grow indefinitely.
   419  
   420  With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0`
   421  the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M and so on.
   422  When `--vfs-read-chunk-size-limit 500M` is specified, the result would be
   423  0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on.
   424  
   425  Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
   426  
   427  ## VFS Performance
   428  
   429  These flags may be used to enable/disable features of the VFS for
   430  performance or other reasons. See also the [chunked reading](#vfs-chunked-reading)
   431  feature.
   432  
   433  In particular S3 and Swift benefit hugely from the `--no-modtime` flag
   434  (or use `--use-server-modtime` for a slightly different effect) as each
   435  read of the modification time takes a transaction.
   436  
   437      --no-checksum     Don't compare checksums on up/download.
   438      --no-modtime      Don't read/write the modification time (can speed things up).
   439      --no-seek         Don't allow seeking in files.
   440      --read-only       Only allow read-only access.
   441  
   442  Sometimes rclone is delivered reads or writes out of order. Rather
   443  than seeking rclone will wait a short time for the in sequence read or
   444  write to come in. These flags only come into effect when not using an
   445  on disk cache file.
   446  
   447      --vfs-read-wait duration   Time to wait for in-sequence read before seeking (default 20ms)
   448      --vfs-write-wait duration  Time to wait for in-sequence write before giving error (default 1s)
   449  
   450  When using VFS write caching (`--vfs-cache-mode` with value writes or full),
   451  the global flag `--transfers` can be set to adjust the number of parallel uploads of
   452  modified files from the cache (the related global flag `--checkers` has no effect on the VFS).
   453  
   454      --transfers int  Number of file transfers to run in parallel (default 4)
   455  
   456  ## VFS Case Sensitivity
   457  
   458  Linux file systems are case-sensitive: two files can differ only
   459  by case, and the exact case must be used when opening a file.
   460  
   461  File systems in modern Windows are case-insensitive but case-preserving:
   462  although existing files can be opened using any case, the exact case used
   463  to create the file is preserved and available for programs to query.
   464  It is not allowed for two files in the same directory to differ only by case.
   465  
   466  Usually file systems on macOS are case-insensitive. It is possible to make macOS
   467  file systems case-sensitive but that is not the default.
   468  
   469  The `--vfs-case-insensitive` VFS flag controls how rclone handles these
   470  two cases. If its value is "false", rclone passes file names to the remote
   471  as-is. If the flag is "true" (or appears without a value on the
   472  command line), rclone may perform a "fixup" as explained below.
   473  
   474  The user may specify a file name to open/delete/rename/etc with a case
   475  different than what is stored on the remote. If an argument refers
   476  to an existing file with exactly the same name, then the case of the existing
   477  file on the disk will be used. However, if a file name with exactly the same
   478  name is not found but a name differing only by case exists, rclone will
   479  transparently fixup the name. This fixup happens only when an existing file
   480  is requested. Case sensitivity of file names created anew by rclone is
   481  controlled by the underlying remote.
   482  
   483  Note that case sensitivity of the operating system running rclone (the target)
   484  may differ from case sensitivity of a file system presented by rclone (the source).
   485  The flag controls whether "fixup" is performed to satisfy the target.
   486  
   487  If the flag is not provided on the command line, then its default value depends
   488  on the operating system where rclone runs: "true" on Windows and macOS, "false"
   489  otherwise. If the flag is provided without a value, then it is "true".
   490  
   491  The `--no-unicode-normalization` flag controls whether a similar "fixup" is
   492  performed for filenames that differ but are [canonically
   493  equivalent](https://en.wikipedia.org/wiki/Unicode_equivalence) with respect to
   494  unicode. Unicode normalization can be particularly helpful for users of macOS,
   495  which prefers form NFD instead of the NFC used by most other platforms. It is
   496  therefore highly recommended to keep the default of `false` on macOS, to avoid
   497  encoding compatibility issues.
   498  
   499  In the (probably unlikely) event that a directory has multiple duplicate
   500  filenames after applying case and unicode normalization, the `--vfs-block-norm-dupes`
   501  flag allows hiding these duplicates. This comes with a performance tradeoff, as
   502  rclone will have to scan the entire directory for duplicates when listing a
   503  directory. For this reason, it is recommended to leave this disabled if not
   504  needed. However, macOS users may wish to consider using it, as otherwise, if a
   505  remote directory contains both NFC and NFD versions of the same filename, an odd
   506  situation will occur: both versions of the file will be visible in the mount,
   507  and both will appear to be editable, however, editing either version will
   508  actually result in only the NFD version getting edited under the hood. `--vfs-block-
   509  norm-dupes` prevents this confusion by detecting this scenario, hiding the
   510  duplicates, and logging an error, similar to how this is handled in `rclone
   511  sync`.
   512  
   513  ## VFS Disk Options
   514  
   515  This flag allows you to manually set the statistics about the filing system.
   516  It can be useful when those statistics cannot be read correctly automatically.
   517  
   518      --vfs-disk-space-total-size    Manually set the total disk space size (example: 256G, default: -1)
   519  
   520  ## Alternate report of used bytes
   521  
   522  Some backends, most notably S3, do not report the amount of bytes used.
   523  If you need this information to be available when running `df` on the
   524  filesystem, then pass the flag `--vfs-used-is-size` to rclone.
   525  With this flag set, instead of relying on the backend to report this
   526  information, rclone will scan the whole remote similar to `rclone size`
   527  and compute the total used space itself.
   528  
   529  _WARNING._ Contrary to `rclone size`, this flag ignores filters so that the
   530  result is accurate. However, this is very inefficient and may cost lots of API
   531  calls resulting in extra charges. Use it as a last resort and only with caching.
   532  
   533  
   534  ```
   535  rclone serve s3 remote:path [flags]
   536  ```
   537  
   538  ## Options
   539  
   540  ```
   541        --addr stringArray                       IPaddress:Port or :Port to bind server to (default [127.0.0.1:8080])
   542        --allow-origin string                    Origin which cross-domain request (CORS) can be executed from
   543        --auth-key stringArray                   Set key pair for v4 authorization: access_key_id,secret_access_key
   544        --baseurl string                         Prefix for URLs - leave blank for root
   545        --cert string                            TLS PEM key (concatenation of certificate and CA certificate)
   546        --client-ca string                       Client certificate authority to verify clients with
   547        --dir-cache-time Duration                Time to cache directory entries for (default 5m0s)
   548        --dir-perms FileMode                     Directory permissions (default 0777)
   549        --etag-hash string                       Which hash to use for the ETag, or auto or blank for off (default "MD5")
   550        --file-perms FileMode                    File permissions (default 0666)
   551        --force-path-style                       If true use path style access if false use virtual hosted style (default true) (default true)
   552        --gid uint32                             Override the gid field set by the filesystem (not supported on Windows) (default 1000)
   553    -h, --help                                   help for s3
   554        --key string                             TLS PEM Private key
   555        --max-header-bytes int                   Maximum size of request header (default 4096)
   556        --min-tls-version string                 Minimum TLS version that is acceptable (default "tls1.0")
   557        --no-checksum                            Don't compare checksums on up/download
   558        --no-cleanup                             Not to cleanup empty folder after object is deleted
   559        --no-modtime                             Don't read/write the modification time (can speed things up)
   560        --no-seek                                Don't allow seeking in files
   561        --poll-interval Duration                 Time to wait between polling for changes, must be smaller than dir-cache-time and only on supported remotes (set 0 to disable) (default 1m0s)
   562        --read-only                              Only allow read-only access
   563        --server-read-timeout Duration           Timeout for server reading data (default 1h0m0s)
   564        --server-write-timeout Duration          Timeout for server writing data (default 1h0m0s)
   565        --uid uint32                             Override the uid field set by the filesystem (not supported on Windows) (default 1000)
   566        --umask int                              Override the permission bits set by the filesystem (not supported on Windows) (default 2)
   567        --vfs-block-norm-dupes                   If duplicate filenames exist in the same directory (after normalization), log an error and hide the duplicates (may have a performance cost)
   568        --vfs-cache-max-age Duration             Max time since last access of objects in the cache (default 1h0m0s)
   569        --vfs-cache-max-size SizeSuffix          Max total size of objects in the cache (default off)
   570        --vfs-cache-min-free-space SizeSuffix    Target minimum free space on the disk containing the cache (default off)
   571        --vfs-cache-mode CacheMode               Cache mode off|minimal|writes|full (default off)
   572        --vfs-cache-poll-interval Duration       Interval to poll the cache for stale objects (default 1m0s)
   573        --vfs-case-insensitive                   If a file name not found, find a case insensitive match
   574        --vfs-disk-space-total-size SizeSuffix   Specify the total space of disk (default off)
   575        --vfs-fast-fingerprint                   Use fast (less accurate) fingerprints for change detection
   576        --vfs-read-ahead SizeSuffix              Extra read ahead over --buffer-size when using cache-mode full
   577        --vfs-read-chunk-size SizeSuffix         Read the source objects in chunks (default 128Mi)
   578        --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)
   579        --vfs-read-wait Duration                 Time to wait for in-sequence read before seeking (default 20ms)
   580        --vfs-refresh                            Refreshes the directory cache recursively in the background on start
   581        --vfs-used-is-size rclone size           Use the rclone size algorithm for Used size
   582        --vfs-write-back Duration                Time to writeback files after last use when using cache (default 5s)
   583        --vfs-write-wait Duration                Time to wait for in-sequence write before giving error (default 1s)
   584  ```
   585  
   586  
   587  ## Filter Options
   588  
   589  Flags for filtering directory listings.
   590  
   591  ```
   592        --delete-excluded                     Delete files on dest excluded from sync
   593        --exclude stringArray                 Exclude files matching pattern
   594        --exclude-from stringArray            Read file exclude patterns from file (use - to read from stdin)
   595        --exclude-if-present stringArray      Exclude directories if filename is present
   596        --files-from stringArray              Read list of source-file names from file (use - to read from stdin)
   597        --files-from-raw stringArray          Read list of source-file names from file without any processing of lines (use - to read from stdin)
   598    -f, --filter stringArray                  Add a file filtering rule
   599        --filter-from stringArray             Read file filtering patterns from a file (use - to read from stdin)
   600        --ignore-case                         Ignore case in filters (case insensitive)
   601        --include stringArray                 Include files matching pattern
   602        --include-from stringArray            Read file include patterns from file (use - to read from stdin)
   603        --max-age Duration                    Only transfer files younger than this in s or suffix ms|s|m|h|d|w|M|y (default off)
   604        --max-depth int                       If set limits the recursion depth to this (default -1)
   605        --max-size SizeSuffix                 Only transfer files smaller than this in KiB or suffix B|K|M|G|T|P (default off)
   606        --metadata-exclude stringArray        Exclude metadatas matching pattern
   607        --metadata-exclude-from stringArray   Read metadata exclude patterns from file (use - to read from stdin)
   608        --metadata-filter stringArray         Add a metadata filtering rule
   609        --metadata-filter-from stringArray    Read metadata filtering patterns from a file (use - to read from stdin)
   610        --metadata-include stringArray        Include metadatas matching pattern
   611        --metadata-include-from stringArray   Read metadata include patterns from file (use - to read from stdin)
   612        --min-age Duration                    Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off)
   613        --min-size SizeSuffix                 Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off)
   614  ```
   615  
   616  See the [global flags page](/flags/) for global options not listed here.
   617  
   618  # SEE ALSO
   619  
   620  * [rclone serve](/commands/rclone_serve/)	 - Serve a remote over a protocol.
   621