1
0
mirror of https://github.com/rclone/rclone.git synced 2025-12-11 13:53:15 +00:00

docs: fix markdownlint issue md013/line-length

This commit is contained in:
albertony
2025-07-10 13:53:45 +02:00
parent b45580fa19
commit b17c3d18af
14 changed files with 407 additions and 196 deletions

View File

@@ -15,22 +15,28 @@ with the [latest beta of rclone](https://beta.rclone.org/):
- Rclone version (e.g. output from `rclone version`)
- Which OS you are using and how many bits (e.g. Windows 10, 64 bit)
- The command you were trying to run (e.g. `rclone copy /tmp remote:tmp`)
- A log of the command with the `-vv` flag (e.g. output from `rclone -vv copy /tmp remote:tmp`)
- if the log contains secrets then edit the file with a text editor first to obscure them
- A log of the command with the `-vv` flag (e.g. output from
`rclone -vv copy /tmp remote:tmp`)
- if the log contains secrets then edit the file with a text editor first to
obscure them
## Submitting a new feature or bug fix
If you find a bug that you'd like to fix, or a new feature that you'd
like to implement then please submit a pull request via GitHub.
If it is a big feature, then [make an issue](https://github.com/rclone/rclone/issues) first so it can be discussed.
If it is a big feature, then [make an issue](https://github.com/rclone/rclone/issues)
first so it can be discussed.
To prepare your pull request first press the fork button on [rclone's GitHub
page](https://github.com/rclone/rclone).
Then [install Git](https://git-scm.com/downloads) and set your public contribution [name](https://docs.github.com/en/github/getting-started-with-github/setting-your-username-in-git) and [email](https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#setting-your-commit-email-address-in-git).
Then [install Git](https://git-scm.com/downloads) and set your public contribution
[name](https://docs.github.com/en/github/getting-started-with-github/setting-your-username-in-git)
and [email](https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#setting-your-commit-email-address-in-git).
Next open your terminal, change directory to your preferred folder and initialise your local rclone project:
Next open your terminal, change directory to your preferred folder and initialise
your local rclone project:
```sh
git clone https://github.com/rclone/rclone.git
@@ -42,7 +48,8 @@ git remote add origin git@github.com:YOURUSER/rclone.git
git remote add origin https://github.com/YOURUSER/rclone.git
```
Note that most of the terminal commands in the rest of this guide must be executed from the rclone folder created above.
Note that most of the terminal commands in the rest of this guide must be
executed from the rclone folder created above.
Now [install Go](https://golang.org/doc/install) and verify your installation:
@@ -67,9 +74,11 @@ git checkout -b my-new-feature
And get hacking.
You may like one of the [popular editors/IDE's for Go](https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins) and a quick view on the rclone [code organisation](#code-organisation).
You may like one of the [popular editors/IDE's for Go](https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins)
and a quick view on the rclone [code organisation](#code-organisation).
When ready - test the affected functionality and run the unit tests for the code you changed
When ready - test the affected functionality and run the unit tests for the
code you changed
```sh
cd folder/with/changed/files
@@ -79,7 +88,8 @@ go test -v
Note that you may need to make a test remote, e.g. `TestSwift` for some
of the unit tests.
This is typically enough if you made a simple bug fix, otherwise please read the rclone [testing](#testing) section too.
This is typically enough if you made a simple bug fix, otherwise please read
the rclone [testing](#testing) section too.
Make sure you
@@ -96,9 +106,12 @@ git push -u origin my-new-feature
and open the GitHub website to [create your pull
request](https://help.github.com/articles/creating-a-pull-request/).
Your changes will then get reviewed and you might get asked to fix some stuff. If so, then make the changes in the same branch, commit and push your updates to GitHub.
Your changes will then get reviewed and you might get asked to fix some stuff.
If so, then make the changes in the same branch, commit and push your updates to
GitHub.
You may sometimes be asked to [base your changes on the latest master](#basing-your-changes-on-the-latest-master) or [squash your commits](#squashing-your-commits).
You may sometimes be asked to [base your changes on the latest master](#basing-your-changes-on-the-latest-master)
or [squash your commits](#squashing-your-commits).
## Using Git and GitHub
@@ -121,11 +134,14 @@ You can modify the message or changes in the latest commit using:
git commit --amend
```
If you amend to commits that have been pushed to GitHub, then you will have to [replace your previously pushed commits](#replacing-your-previously-pushed-commits).
If you amend to commits that have been pushed to GitHub, then you will have to
[replace your previously pushed commits](#replacing-your-previously-pushed-commits).
### Replacing your previously pushed commits
Note that you are about to rewrite the GitHub history of your branch. It is good practice to involve your collaborators before modifying commits that have been pushed to GitHub.
Note that you are about to rewrite the GitHub history of your branch. It is good
practice to involve your collaborators before modifying commits that have been
pushed to GitHub.
Your previously pushed commits are replaced by:
@@ -135,7 +151,8 @@ git push --force origin my-new-feature
### Basing your changes on the latest master
To base your changes on the latest version of the [rclone master](https://github.com/rclone/rclone/tree/master) (upstream):
To base your changes on the latest version of the
[rclone master](https://github.com/rclone/rclone/tree/master) (upstream):
```sh
git checkout master
@@ -146,7 +163,8 @@ git checkout my-new-feature
git rebase master
```
If you rebase commits that have been pushed to GitHub, then you will have to [replace your previously pushed commits](#replacing-your-previously-pushed-commits).
If you rebase commits that have been pushed to GitHub, then you will have to
[replace your previously pushed commits](#replacing-your-previously-pushed-commits).
### Squashing your commits ###
@@ -171,23 +189,30 @@ git reflog # To check that HEAD{1} is your previous state
git reset --soft 'HEAD@{1}' # To roll back to your previous state
```
If you squash commits that have been pushed to GitHub, then you will have to [replace your previously pushed commits](#replacing-your-previously-pushed-commits).
If you squash commits that have been pushed to GitHub, then you will have to
[replace your previously pushed commits](#replacing-your-previously-pushed-commits).
Tip: You may like to use `git rebase -i master` if you are experienced or have a more complex situation.
Tip: You may like to use `git rebase -i master` if you are experienced or have a
more complex situation.
### GitHub Continuous Integration
rclone currently uses [GitHub Actions](https://github.com/rclone/rclone/actions) to build and test the project, which should be automatically available for your fork too from the `Actions` tab in your repository.
rclone currently uses [GitHub Actions](https://github.com/rclone/rclone/actions)
to build and test the project, which should be automatically available for your
fork too from the `Actions` tab in your repository.
## Testing
### Code quality tests
If you install [golangci-lint](https://github.com/golangci/golangci-lint) then you can run the same tests as get run in the CI which can be very helpful.
If you install [golangci-lint](https://github.com/golangci/golangci-lint) then
you can run the same tests as get run in the CI which can be very helpful.
You can run them with `make check` or with `golangci-lint run ./...`.
Using these tests ensures that the rclone codebase all uses the same coding standards. These tests also check for easy mistakes to make (like forgetting to check an error return).
Using these tests ensures that the rclone codebase all uses the same coding
standards. These tests also check for easy mistakes to make (like forgetting
to check an error return).
### Quick testing
@@ -204,7 +229,8 @@ You can also use `make`, if supported by your platform
make quicktest
```
The quicktest is [automatically run by GitHub](#github-continuous-integration) when you push your branch to GitHub.
The quicktest is [automatically run by GitHub](#github-continuous-integration)
when you push your branch to GitHub.
### Backend testing
@@ -478,12 +504,18 @@ remote or an fs.
### Getting going
- Create `backend/remote/remote.go` (copy this from a similar remote)
- box is a good one to start from if you have a directory-based remote (and shows how to use the directory cache)
- box is a good one to start from if you have a directory-based remote (and
shows how to use the directory cache)
- b2 is a good one to start from if you have a bucket-based remote
- Add your remote to the imports in `backend/all/all.go`
- HTTP based remotes are easiest to maintain if they use rclone's [lib/rest](https://pkg.go.dev/github.com/rclone/rclone/lib/rest) module, but if there is a really good Go SDK from the provider then use that instead.
- Try to implement as many optional methods as possible as it makes the remote more usable.
- Use [lib/encoder](https://pkg.go.dev/github.com/rclone/rclone/lib/encoder) to make sure we can encode any path name and `rclone info` to help determine the encodings needed
- HTTP based remotes are easiest to maintain if they use rclone's
[lib/rest](https://pkg.go.dev/github.com/rclone/rclone/lib/rest) module, but
if there is a really good Go SDK from the provider then use that instead.
- Try to implement as many optional methods as possible as it makes the remote
more usable.
- Use [lib/encoder](https://pkg.go.dev/github.com/rclone/rclone/lib/encoder) to
make sure we can encode any path name and `rclone info` to help determine the
encodings needed
- `rclone purge -v TestRemote:rclone-info`
- `rclone test info --all --remote-encoding None -vv --write-json remote.json TestRemote:rclone-info`
- `go run cmd/test/info/internal/build_csv/main.go -o remote.csv remote.json`
@@ -491,12 +523,19 @@ remote or an fs.
### Guidelines for a speedy merge
- **Do** use [lib/rest](https://pkg.go.dev/github.com/rclone/rclone/lib/rest) if you are implementing a REST like backend and parsing XML/JSON in the backend.
- **Do** use rclone's Client or Transport from [fs/fshttp](https://pkg.go.dev/github.com/rclone/rclone/fs/fshttp) if your backend is HTTP based - this adds features like `--dump bodies`, `--tpslimit`, `--user-agent` without you having to code anything!
- **Do** follow your example backend exactly - use the same code order, function names, layout, structure. **Don't** move stuff around and **Don't** delete the comments.
- **Do not** split your backend up into `fs.go` and `object.go` (there are a few backends like that - don't follow them!)
- **Do** use [lib/rest](https://pkg.go.dev/github.com/rclone/rclone/lib/rest)
if you are implementing a REST like backend and parsing XML/JSON in the backend.
- **Do** use rclone's Client or Transport from [fs/fshttp](https://pkg.go.dev/github.com/rclone/rclone/fs/fshttp)
if your backend is HTTP based - this adds features like `--dump bodies`,
`--tpslimit`, `--user-agent` without you having to code anything!
- **Do** follow your example backend exactly - use the same code order, function
names, layout, structure. **Don't** move stuff around and **Don't** delete the
comments.
- **Do not** split your backend up into `fs.go` and `object.go` (there are a few
backends like that - don't follow them!)
- **Do** put your API type definitions in a separate file - by preference `api/types.go`
- **Remember** we have >50 backends to maintain so keeping them as similar as possible to each other is a high priority!
- **Remember** we have >50 backends to maintain so keeping them as similar as
possible to each other is a high priority!
### Unit tests
@@ -507,7 +546,8 @@ remote or an fs.
### Integration tests
- Add your backend to `fstest/test_all/config.yaml`
- Once you've done that then you can use the integration test framework from the project root:
- Once you've done that then you can use the integration test framework from
the project root:
- go install ./...
- test_all -backends remote
@@ -531,10 +571,13 @@ alphabetical order of full name of remote (e.g. `drive` is ordered as
`Google Drive`) but with the local file system last.
- `README.md` - main GitHub page
- `docs/content/remote.md` - main docs page (note the backend options are automatically added to this file with `make backenddocs`)
- make sure this has the `autogenerated options` comments in (see your reference backend docs)
- `docs/content/remote.md` - main docs page (note the backend options are
automatically added to this file with `make backenddocs`)
- make sure this has the `autogenerated options` comments in (see your
reference backend docs)
- update them in your backend with `bin/make_backend_docs.py remote`
- `docs/content/overview.md` - overview docs - add an entry into the Features table and the Optional Features table.
- `docs/content/overview.md` - overview docs - add an entry into the Features
table and the Optional Features table.
- `docs/content/docs.md` - list of remotes in config section
- `docs/content/_index.md` - front page of rclone.org
- `docs/layouts/chrome/navbar.html` - add it to the website navigation
@@ -585,9 +628,10 @@ For an example of adding an s3 provider see [eb3082a1](https://github.com/rclone
## Writing a plugin
New features (backends, commands) can also be added "out-of-tree", through Go plugins.
Changes will be kept in a dynamically loaded file instead of being compiled into the main binary.
This is useful if you can't merge your changes upstream or don't want to maintain a fork of rclone.
New features (backends, commands) can also be added "out-of-tree", through Go
plugins. Changes will be kept in a dynamically loaded file instead of being
compiled into the main binary. This is useful if you can't merge your changes
upstream or don't want to maintain a fork of rclone.
### Usage
@@ -602,14 +646,16 @@ This is useful if you can't merge your changes upstream or don't want to maintai
- All plugins in the folder specified by variable `$RCLONE_PLUGIN_PATH` are loaded.
- If this variable doesn't exist, plugin support is disabled.
- Plugins must be compiled against the exact version of rclone to work.
(The rclone used during building the plugin must be the same as the source of rclone)
(The rclone used during building the plugin must be the same as the source
of rclone)
### Building
To turn your existing additions into a Go plugin, move them to an external repository
and change the top-level package name to `main`.
Check `rclone --version` and make sure that the plugin's rclone dependency and host Go version match.
Check `rclone --version` and make sure that the plugin's rclone dependency and
host Go version match.
Then, run `go build -buildmode=plugin -o PLUGIN_NAME.so .` to build the plugin.

View File

@@ -26,23 +26,30 @@ Current active maintainers of rclone are:
**This is a work in progress Draft**
This is a guide for how to be an rclone maintainer. This is mostly a write-up of what I (@ncw) attempt to do.
This is a guide for how to be an rclone maintainer. This is mostly a write-up
of what I (@ncw) attempt to do.
## Triaging Tickets ##
When a ticket comes in it should be triaged. This means it should be classified by adding labels and placed into a milestone. Quite a lot of tickets need a bit of back and forth to determine whether it is a valid ticket so tickets may remain without labels or milestone for a while.
When a ticket comes in it should be triaged. This means it should be classified
by adding labels and placed into a milestone. Quite a lot of tickets need a bit
of back and forth to determine whether it is a valid ticket so tickets may
remain without labels or milestone for a while.
Rclone uses the labels like this:
- `bug` - a definitely verified bug
- `can't reproduce` - a problem which we can't reproduce
- `doc fix` - a bug in the documentation - if users need help understanding the docs add this label
- `doc fix` - a bug in the documentation - if users need help understanding the
docs add this label
- `duplicate` - normally close these and ask the user to subscribe to the original
- `enhancement: new remote` - a new rclone backend
- `enhancement` - a new feature
- `FUSE` - to do with `rclone mount` command
- `good first issue` - mark these if you find a small self-contained issue - these get shown to new visitors to the project
- `help` wanted - mark these if you find a self-contained issue - these get shown to new visitors to the project
- `good first issue` - mark these if you find a small self-contained issue -
these get shown to new visitors to the project
- `help` wanted - mark these if you find a self-contained issue - these get
shown to new visitors to the project
- `IMPORTANT` - note to maintainers not to forget to fix this for the release
- `maintenance` - internal enhancement, code re-organisation, etc.
- `Needs Go 1.XX` - waiting for that version of Go to be released
@@ -50,9 +57,14 @@ Rclone uses the labels like this:
- `Remote: XXX` - which rclone backend this affects
- `thinking` - not decided on the course of action yet
If it turns out to be a bug or an enhancement it should be tagged as such, with the appropriate other tags. Don't forget the "good first issue" tag to give new contributors something easy to do to get going.
If it turns out to be a bug or an enhancement it should be tagged as such, with
the appropriate other tags. Don't forget the "good first issue" tag to give new
contributors something easy to do to get going.
When a ticket is tagged it should be added to a milestone, either the next release, the one after, Soon or Help Wanted. Bugs can be added to the "Known Bugs" milestone if they aren't planned to be fixed or need to wait for something (e.g. the next go release).
When a ticket is tagged it should be added to a milestone, either the next
release, the one after, Soon or Help Wanted. Bugs can be added to the
"Known Bugs" milestone if they aren't planned to be fixed or need to wait for
something (e.g. the next go release).
The milestones have these meanings:
@@ -60,43 +72,59 @@ The milestones have these meanings:
- v1.XX+1 - stuff we are leaving until the next release
- Soon - stuff we think is a good idea - waiting to be scheduled for a release
- Help wanted - blue sky stuff that might get moved up, or someone could help with
- Known bugs - bugs waiting on external factors or we aren't going to fix for the moment
- Known bugs - bugs waiting on external factors or we aren't going to fix for
the moment
Tickets [with no milestone](https://github.com/rclone/rclone/issues?utf8=✓&q=is%3Aissue%20is%3Aopen%20no%3Amile) are good candidates for ones that have slipped between the gaps and need following up.
Tickets [with no milestone](https://github.com/rclone/rclone/issues?utf8=✓&q=is%3Aissue%20is%3Aopen%20no%3Amile)
are good candidates for ones that have slipped between the gaps and need
following up.
## Closing Tickets ##
Close tickets as soon as you can - make sure they are tagged with a release. Post a link to a beta in the ticket with the fix in, asking for feedback.
Close tickets as soon as you can - make sure they are tagged with a release.
Post a link to a beta in the ticket with the fix in, asking for feedback.
## Pull requests ##
Try to process pull requests promptly!
Merging pull requests on GitHub itself works quite well nowadays so you can squash and rebase or rebase pull requests. rclone doesn't use merge commits. Use the squash and rebase option if you need to edit the commit message.
Merging pull requests on GitHub itself works quite well nowadays so you can
squash and rebase or rebase pull requests. rclone doesn't use merge commits.
Use the squash and rebase option if you need to edit the commit message.
After merging the commit, in your local master branch, do `git pull` then run `bin/update-authors.py` to update the authors file then `git push`.
After merging the commit, in your local master branch, do `git pull` then run
`bin/update-authors.py` to update the authors file then `git push`.
Sometimes pull requests need to be left open for a while - this especially true of contributions of new backends which take a long time to get right.
Sometimes pull requests need to be left open for a while - this especially true
of contributions of new backends which take a long time to get right.
## Merges ##
If you are merging a branch locally then do `git merge --ff-only branch-name` to avoid a merge commit. You'll need to rebase the branch if it doesn't merge cleanly.
If you are merging a branch locally then do `git merge --ff-only branch-name` to
avoid a merge commit. You'll need to rebase the branch if it doesn't merge cleanly.
## Release cycle ##
Rclone aims for a 6-8 week release cycle. Sometimes release cycles take longer if there is something big to merge that didn't stabilize properly or for personal reasons.
Rclone aims for a 6-8 week release cycle. Sometimes release cycles take longer
if there is something big to merge that didn't stabilize properly or for personal
reasons.
High impact regressions should be fixed before the next release.
Near the start of the release cycle, the dependencies should be updated with `make update` to give time for bugs to surface.
Near the start of the release cycle, the dependencies should be updated with
`make update` to give time for bugs to surface.
Towards the end of the release cycle try not to merge anything too big so let things settle down.
Towards the end of the release cycle try not to merge anything too big so let
things settle down.
Follow the instructions in RELEASE.md for making the release. Note that the testing part is the most time-consuming often needing several rounds of test and fix depending on exactly how many new features rclone has gained.
Follow the instructions in RELEASE.md for making the release. Note that the
testing part is the most time-consuming often needing several rounds of test
and fix depending on exactly how many new features rclone has gained.
## Mailing list ##
There is now an invite-only mailing list for rclone developers `rclone-dev` on google groups.
There is now an invite-only mailing list for rclone developers `rclone-dev` on
google groups.
## TODO ##

View File

@@ -16,7 +16,8 @@
# Rclone
Rclone *("rsync for cloud storage")* is a command-line program to sync files and directories to and from different cloud storage providers.
Rclone *("rsync for cloud storage")* is a command-line program to sync files and
directories to and from different cloud storage providers.
## Storage providers
@@ -134,17 +135,22 @@ These backends adapt or modify other storage providers
- MD5/SHA-1 hashes checked at all times for file integrity
- Timestamps preserved on files
- Partial syncs supported on a whole file basis
- [Copy](https://rclone.org/commands/rclone_copy/) mode to just copy new/changed files
- [Sync](https://rclone.org/commands/rclone_sync/) (one way) mode to make a directory identical
- [Bisync](https://rclone.org/bisync/) (two way) to keep two directories in sync bidirectionally
- [Check](https://rclone.org/commands/rclone_check/) mode to check for file hash equality
- [Copy](https://rclone.org/commands/rclone_copy/) mode to just copy new/changed
files
- [Sync](https://rclone.org/commands/rclone_sync/) (one way) mode to make a directory
identical
- [Bisync](https://rclone.org/bisync/) (two way) to keep two directories in sync
bidirectionally
- [Check](https://rclone.org/commands/rclone_check/) mode to check for file hash
equality
- Can sync to and from network, e.g. two different cloud accounts
- Optional large file chunking ([Chunker](https://rclone.org/chunker/))
- Optional transparent compression ([Compress](https://rclone.org/compress/))
- Optional encryption ([Crypt](https://rclone.org/crypt/))
- Optional FUSE mount ([rclone mount](https://rclone.org/commands/rclone_mount/))
- Multi-threaded downloads to local disk
- Can [serve](https://rclone.org/commands/rclone_serve/) local or remote files over HTTP/WebDAV/FTP/SFTP/DLNA
- Can [serve](https://rclone.org/commands/rclone_serve/) local or remote files
over HTTP/WebDAV/FTP/SFTP/DLNA
## Installation & documentation

View File

@@ -15,7 +15,8 @@ This file describes how to make the various kinds of releases
- Check GitHub actions build for master is Green
- make test # see integration test server or run locally
- make tag
- edit docs/content/changelog.md # make sure to remove duplicate logs from point releases
- edit docs/content/changelog.md # make sure to remove duplicate logs from point
releases
- make tidy
- make doc
- git status - to check for new man pages - git add them
@@ -140,14 +141,16 @@ Now
- make startstable
- Do the steps as above
- git co master
- `#` cherry pick the changes to the changelog - check the diff to make sure it is correct
- `#` cherry pick the changes to the changelog - check the diff to make sure it
is correct
- git checkout ${BASE_TAG}-stable docs/content/changelog.md
- git commit -a -v -m "Changelog updates from Version ${NEW_TAG}"
- git push
## Sponsor logos
If updating the website note that the sponsor logos have been moved out of the main repository.
If updating the website note that the sponsor logos have been moved out of the
main repository.
You will need to checkout `/docs/static/img/logos` from https://github.com/rclone/third-party-logos
which is a private repo containing artwork from sponsors.

View File

@@ -2,6 +2,7 @@
title: "Documentation"
description: "Rclone Changelog"
---
<!-- markdownlint-disable line-length -->
# Changelog

View File

@@ -118,8 +118,8 @@ starts with a `-` then put a `--` on its own first, eg
rclone lsf -- -directory-starting-with-dash
```
A `parameter` is usually a file path or [rclone remote](#syntax-of-remote-paths), eg
`/path/to/file` or `remote:path/to/file` but it can be other things -
A `parameter` is usually a file path or [rclone remote](#syntax-of-remote-paths),
eg `/path/to/file` or `remote:path/to/file` but it can be other things -
the `subcommand` help will tell you what.
Source and destination paths are specified by the name you gave the
@@ -133,7 +133,7 @@ learning rclone to avoid accidental data loss.
## Subcommands
rclone uses a system of subcommands. For example
rclone uses a system of subcommands. For example
```sh
rclone ls remote:path # lists a remote
@@ -143,7 +143,9 @@ rclone sync --interactive /local/path remote:path # syncs /local/path to the rem
The main rclone commands with most used first
- [rclone config](/commands/rclone_config/) - Enter an interactive configuration session.
<!-- markdownlint-capture -->
<!-- markdownlint-disable line-length -->
- [rclone config](/commands/rclone_config/) - Enter an interactive configurationsession.
- [rclone copy](/commands/rclone_copy/) - Copy files from source to dest, skipping already copied.
- [rclone sync](/commands/rclone_sync/) - Make source and dest identical, modifying destination only.
- [rclone bisync](/commands/rclone_bisync/) - [Bidirectional synchronization](/bisync/) between two paths.
@@ -174,6 +176,7 @@ The main rclone commands with most used first
- [rclone obscure](/commands/rclone_obscure/) - Obscure password for use in the rclone.conf
- [rclone cryptcheck](/commands/rclone_cryptcheck/) - Check the integrity of an encrypted remote.
- [rclone about](/commands/rclone_about/) - Get quota information from the remote.
<!-- markdownlint-restore -->
See the [commands index](/commands/) for the full list.
@@ -839,7 +842,8 @@ for upload:download, e.g.`10M:1M`.
Entries can be separated by spaces or semicolons.
**Note:** Semicolons can be used as separators instead of spaces to avoid parsing issues in environments like Docker.
**Note:** Semicolons can be used as separators instead of spaces to avoid
parsing issues in environments like Docker.
An example of a typical timetable to avoid link saturation during daytime
working hours could be:
@@ -948,14 +952,17 @@ Default value is depending on operating system:
- Windows `%LocalAppData%\rclone`, if `LocalAppData` is defined.
- macOS `$HOME/Library/Caches/rclone` if `HOME` is defined.
- Unix `$XDG_CACHE_HOME/rclone` if `XDG_CACHE_HOME` is defined, else `$HOME/.cache/rclone` if `HOME` is defined.
- Fallback (on all OS) to `$TMPDIR/rclone`, where `TMPDIR` is the value from [--temp-dir](#temp-dir-string).
- Unix `$XDG_CACHE_HOME/rclone` if `XDG_CACHE_HOME` is defined, else
`$HOME/.cache/rclone` if `HOME` is defined.
- Fallback (on all OS) to `$TMPDIR/rclone`, where `TMPDIR` is the value
from [--temp-dir](#temp-dir-string).
You can use the [config paths](/commands/rclone_config_paths/)
command to see the current value.
Cache directory is heavily used by the [VFS File Caching](/commands/rclone_mount/#vfs-file-caching)
mount feature, but also by [serve](/commands/rclone_serve/), [GUI](/gui) and other parts of rclone.
mount feature, but also by [serve](/commands/rclone_serve/), [GUI](/gui) and
other parts of rclone.
### --check-first
@@ -1079,8 +1086,8 @@ The `~` symbol in paths above represent the home directory of the current user
on any OS, and the value is defined as following:
- On Windows: `%HOME%` if defined, else `%USERPROFILE%`, or else `%HOMEDRIVE%\%HOMEPATH%`.
- On Unix: `$HOME` if defined, else by looking up current user in OS-specific user database
(e.g. passwd file), or else use the result from shell command `cd && pwd`.
- On Unix: `$HOME` if defined, else by looking up current user in OS-specific user
database (e.g. passwd file), or else use the result from shell command `cd && pwd`.
If you run `rclone config file` you will see where the default location is for
you. Running `rclone config touch` will ensure a configuration file exists,
@@ -1250,9 +1257,10 @@ sometimes speed up transfers due to a
Specify a DSCP value or name to use in connections. This could help QoS
system to identify traffic class. BE, EF, DF, LE, CSx and AFxx are allowed.
See the description of [differentiated services](https://en.wikipedia.org/wiki/Differentiated_services) to get an idea of
this field. Setting this to 1 (LE) to identify the flow to SCAVENGER class
can avoid occupying too much bandwidth in a network with DiffServ support ([RFC 8622](https://tools.ietf.org/html/rfc8622)).
See the description of [differentiated services](https://en.wikipedia.org/wiki/Differentiated_services)
to get an idea of this field. Setting this to 1 (LE) to identify the flow to
SCAVENGER class can avoid occupying too much bandwidth in a network with DiffServ
support ([RFC 8622](https://tools.ietf.org/html/rfc8622)).
For example, if you configured QoS on router to handle LE properly. Running:
@@ -2207,7 +2215,8 @@ This can have a modifier appended with a comma:
- `ascending` or `asc` - order so that the smallest (or oldest) is processed first
- `descending` or `desc` - order so that the largest (or newest) is processed first
- `mixed` - order so that the smallest is processed first for some threads and the largest for others
- `mixed` - order so that the smallest is processed first for some threads and
the largest for others
If the modifier is `mixed` then it can have an optional percentage
(which defaults to `50`), e.g. `size,mixed,25` which means that 25% of
@@ -2446,8 +2455,8 @@ the display with a date string. The default is `2006/01/02 15:04:05 - `
When this is specified, rclone enables the single-line stats and prepends
the display with a user-supplied date string. The date string MUST be
enclosed in quotes. Follow [golang specs](https://golang.org/pkg/time/#Time.Format) for
date formatting syntax.
enclosed in quotes. Follow [golang specs](https://golang.org/pkg/time/#Time.Format)
for date formatting syntax.
### --stats-unit string
@@ -2528,7 +2537,8 @@ the default. Make sure the directory exists and have accessible permissions.
By default the operating system's temp directory will be used:
- On Unix systems, `$TMPDIR` if non-empty, else `/tmp`.
- On Windows, the first non-empty value from `%TMP%`, `%TEMP%`, `%USERPROFILE%`, or the Windows directory.
- On Windows, the first non-empty value from `%TMP%`, `%TEMP%`, `%USERPROFILE%`,
or the Windows directory.
When overriding the default with this option, the specified path will be
set as value of environment variable `TMPDIR` on Unix systems
@@ -2898,9 +2908,12 @@ There is no way to recover the configuration if you lose your password.
You can also use
- [rclone config encryption set](/commands/rclone_config_encryption_set/) to set the config encryption directly
- [rclone config encryption remove](/commands/rclone_config_encryption_remove/) to remove it
- [rclone config encryption check](/commands/rclone_config_encryption_check/) to check that it is encrypted properly.
- [rclone config encryption set](/commands/rclone_config_encryption_set/)
to set the config encryption directly
- [rclone config encryption remove](/commands/rclone_config_encryption_remove/)
to remove it
- [rclone config encryption check](/commands/rclone_config_encryption_check/)
to check that it is encrypted properly.
rclone uses [nacl secretbox](https://godoc.org/golang.org/x/crypto/nacl/secretbox)
which in turn uses XSalsa20 and Poly1305 to encrypt and authenticate
@@ -3201,9 +3214,11 @@ it will log a high priority message if the retry was successful.
- `4` - File not found
- `5` - Temporary error (one that more retries might fix) (Retry errors)
- `6` - Less serious errors (like 461 errors from dropbox) (NoRetry errors)
- `7` - Fatal error (one that more retries won't fix, like account suspended) (Fatal errors)
- `7` - Fatal error (one that more retries won't fix, like account suspended)
(Fatal errors)
- `8` - Transfer exceeded - limit set by --max-transfer reached
- `9` - Operation successful, but no files transferred (Requires [`--error-on-no-transfer`](#error-on-no-transfer))
- `9` - Operation successful, but no files transferred (Requires
[`--error-on-no-transfer`](#error-on-no-transfer))
- `10` - Duration exceeded - limit set by --max-duration reached
## Environment variables
@@ -3234,7 +3249,8 @@ or for `-vv`, `RCLONE_VERBOSE=2`.
The same parser is used for the options and the environment variables
so they take exactly the same form.
The options set by environment variables can be seen with the `-vv` flag, e.g. `rclone version -vv`.
The options set by environment variables can be seen with the `-vv` flag,
e.g. `rclone version -vv`.
Options that can appear multiple times (type `stringArray`) are
treated slightly differently as environment variables can only be
@@ -3314,7 +3330,8 @@ this order and the first one with a value is used.
- Parameters in connection strings, e.g. `myRemote,skip_links:`
- Flag values as supplied on the command line, e.g. `--skip-links`
- Remote specific environment vars, e.g. `RCLONE_CONFIG_MYREMOTE_SKIP_LINKS` (see above).
- Remote specific environment vars, e.g. `RCLONE_CONFIG_MYREMOTE_SKIP_LINKS`
(see above).
- Backend-specific environment vars, e.g. `RCLONE_LOCAL_SKIP_LINKS`.
- Backend generic environment vars, e.g. `RCLONE_SKIP_LINKS`.
- Config file, e.g. `skip_links = true`.

View File

@@ -23,7 +23,10 @@ image](https://securebuild.com/images/rclone) through our partner
| FreeBSD | 12.2 |
| OpenBSD | 6.9 |
These requirements come from the Go version that rclone is compiled with and are simplified from [minimum requirements](https://go.dev/wiki/MinimumRequirements) and other [platform specific information](https://go.dev/wiki/#platform-specific-information) in the Go Wiki.
These requirements come from the Go version that rclone is compiled with and are
simplified from [minimum requirements](https://go.dev/wiki/MinimumRequirements)
and other [platform specific information](https://go.dev/wiki/#platform-specific-information)
in the Go Wiki.
## Release {{% version %}} {#release}

View File

@@ -172,10 +172,12 @@ curl -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bag
ntpclient -s -h pool.ntp.org
```
The two environment variables `SSL_CERT_FILE` and `SSL_CERT_DIR`, mentioned in the [x509 package](https://godoc.org/crypto/x509),
provide an additional way to provide the SSL root certificates.
The two environment variables `SSL_CERT_FILE` and `SSL_CERT_DIR`, mentioned in
the [x509 package](https://godoc.org/crypto/x509), provide an additional way to
provide the SSL root certificates.
Note that you may need to add the `--insecure` option to the `curl` command line if it doesn't work without.
Note that you may need to add the `--insecure` option to the `curl` command line
if it doesn't work without.
```sh
curl --insecure -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
@@ -229,7 +231,8 @@ Error: config failed to refresh token: failed to start auth webserver: listen tc
yyyy/mm/dd hh:mm:ss Fatal error: config failed to refresh token: failed to start auth webserver: listen tcp 127.0.0.1:53682: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
```
This is sometimes caused by the Host Network Service causing issues with opening the port on the host.
This is sometimes caused by the Host Network Service causing issues with opening
the port on the host.
A simple solution may be restarting the Host Network Service with eg. Powershell

View File

@@ -68,7 +68,8 @@ pattern { , pattern }
comma-separated (without spaces) patterns
```
character classes (see [Go regular expression reference](https://golang.org/pkg/regexp/syntax/)) include:
character classes (see [Go regular expression reference](https://golang.org/pkg/regexp/syntax/))
include:
```text
Named character classes (e.g. [\d], [^\d], [\D], [^\D])
@@ -76,7 +77,8 @@ Perl character classes (e.g. \s, \S, \w, \W)
ASCII character classes (e.g. [[:alnum:]], [[:alpha:]], [[:punct:]], [[:xdigit:]])
```
regexp for advanced users to insert a regular expression - see [below](#regexp) for more info:
regexp for advanced users to insert a regular expression - see [below](#regexp)
for more info:
```text
Any re2 regular expression not containing `}}`
@@ -115,8 +117,9 @@ F:
│ │ └── document.pdf
```
To copy the contents of folder `data` into folder `bkp` excluding the contents of subfolder
`excl`the following command treats `F:\data` and `F:\bkp` as top level for filtering.
To copy the contents of folder `data` into folder `bkp` excluding the contents
of subfolder `excl`the following command treats `F:\data` and `F:\bkp` as top
level for filtering.
`rclone copy F:\data\ F:\bkp\ --exclude=/excl/**`
@@ -306,9 +309,10 @@ Directory recursion optimisation occurs if either:
sftp, Microsoft OneDrive and WebDAV do not support `ListR`. Google
Drive and most bucket type storage do. [Full list](https://rclone.org/overview/#optional-features)
- On other remotes (those that support `ListR`), if the rclone command is not naturally recursive, and
provided it is not run with the `--fast-list` flag. `ls`, `lsf -R` and
`size` are naturally recursive but `sync`, `copy` and `move` are not.
- On other remotes (those that support `ListR`), if the rclone command is not
naturally recursive, and provided it is not run with the `--fast-list` flag.
`ls`, `lsf -R` and `size` are naturally recursive but `sync`, `copy` and `move`
are not.
- Whenever the `--disable ListR` flag is applied to an rclone command.
@@ -550,7 +554,9 @@ processed in.
Arrange the order of filter rules with the most restrictive first and
work down.
Lines starting with # or ; are ignored, and can be used to write comments. Inline comments are not supported. _Use `-vv --dump filters` to see how they appear in the final regexp._
Lines starting with # or ; are ignored, and can be used to write comments.
Inline comments are not supported. _Use `-vv --dump filters` to see how they
appear in the final regexp._
E.g. for `filter-file.txt`:
@@ -632,8 +638,8 @@ to right along the command line.
Paths within the `--files-from` file are interpreted as starting
with the root specified in the rclone command. Leading `/` separators are
ignored. See [--files-from-raw](#files-from-raw-read-list-of-source-file-names-without-any-processing) if
you need the input to be processed in a raw manner.
ignored. See [--files-from-raw](#files-from-raw-read-list-of-source-file-names-without-any-processing)
if you need the input to be processed in a raw manner.
E.g. for a file `files-from.txt`:
@@ -709,8 +715,8 @@ Then there will be an extra `home` directory on the remote:
This flag is the same as `--files-from` except that input is read in a
raw manner. Lines with leading / trailing whitespace, and lines starting
with `;` or `#` are read without any processing. [rclone lsf](/commands/rclone_lsf/) has
a compatible format that can be used to export file lists from remotes for
with `;` or `#` are read without any processing. [rclone lsf](/commands/rclone_lsf/)
has a compatible format that can be used to export file lists from remotes for
input to `--files-from-raw`.
### `--ignore-case` - make searches case insensitive
@@ -788,7 +794,8 @@ See [the time option docs](/docs/#time-options) for valid formats.
### `--hash-filter` - Deterministically select a subset of files {#hash-filter}
The `--hash-filter` flag enables selecting a deterministic subset of files, useful for:
The `--hash-filter` flag enables selecting a deterministic subset of files,
useful for:
1. Running large sync operations across multiple machines.
2. Checking a subset of files for bitrot.
@@ -808,7 +815,8 @@ The flag takes two parameters expressed as a fraction:
For example:
- `--hash-filter 1/3`: Selects the first third of the files.
- `--hash-filter 2/3` and `--hash-filter 3/3`: Select the second and third partitions, respectively.
- `--hash-filter 2/3` and `--hash-filter 3/3`: Select the second and third
partitions, respectively.
Each partition is non-overlapping, ensuring all files are covered without duplication.
@@ -820,11 +828,13 @@ Use `@` as `K` to randomly select a partition:
--hash-filter @/M
```
For example, `--hash-filter @/3` will randomly select a number between 0 and 2. This will stay constant across retries.
For example, `--hash-filter @/3` will randomly select a number between 0 and 2.
This will stay constant across retries.
#### How It Works
- Rclone takes each file's full path, normalizes it to lowercase, and applies Unicode normalization.
- Rclone takes each file's full path, normalizes it to lowercase, and applies
Unicode normalization.
- It then hashes the normalized path into a 64 bit number.
- The hash result is reduced modulo `N` to assign the file to a partition.
- If the calculated partition does not match `K` the file is excluded.
@@ -956,11 +966,14 @@ directories.
The filters can be applied using these flags.
- `--metadata-include` - Include metadatas matching pattern
- `--metadata-include-from` - Read metadata include patterns from file (use - to read from stdin)
- `--metadata-include-from` - Read metadata include patterns from file
(use - to read from stdin)
- `--metadata-exclude` - Exclude metadatas matching pattern
- `--metadata-exclude-from` - Read metadata exclude patterns from file (use - to read from stdin)
- `--metadata-exclude-from` - Read metadata exclude patterns from file
(use - to read from stdin)
- `--metadata-filter` - Add a metadata filtering rule
- `--metadata-filter-from` - Read metadata filtering patterns from a file (use - to read from stdin)
- `--metadata-filter-from` - Read metadata filtering patterns from a file
(use - to read from stdin)
Each flag can be repeated. See the section on [how filter rules are
applied](#how-filter-rules-work) for more details - these flags work

View File

@@ -17,7 +17,8 @@ display the GUI in a web browser.
rclone rcd --rc-web-gui
```
This will produce logs like this and rclone needs to continue to run to serve the GUI:
This will produce logs like this and rclone needs to continue to run to serve
the GUI:
```text
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
@@ -58,7 +59,8 @@ When you run the `rclone rcd --rc-web-gui` this is what happens
- Rclone starts but only runs the remote control API ("rc").
- The API is bound to localhost with an auto-generated username and password.
- If the API bundle is missing then rclone will download it.
- rclone will start serving the files from the API bundle over the same port as the API
- rclone will start serving the files from the API bundle over the same port as
the API
- rclone will open the browser with a `login_token` so it can log straight in.
## Advanced use
@@ -79,7 +81,8 @@ See also the [rclone rcd documentation](https://rclone.org/commands/rclone_rcd/)
### Example: Running a public GUI
For example the GUI could be served on a public port over SSL using an htpasswd file using the following flags:
For example the GUI could be served on a public port over SSL using an htpasswd
file using the following flags:
- `--rc-web-gui`
- `--rc-addr :443`

View File

@@ -190,7 +190,10 @@ feature then you will need to install the third party utility
### Windows package manager (Winget) {#windows-chocolatey}
[Winget](https://learn.microsoft.com/en-us/windows/package-manager/) comes pre-installed with the latest versions of Windows. If not, update the [App Installer](https://www.microsoft.com/p/app-installer/9nblggh4nns1) package from the Microsoft store.
[Winget](https://learn.microsoft.com/en-us/windows/package-manager/) comes
pre-installed with the latest versions of Windows. If not, update the
[App Installer](https://www.microsoft.com/p/app-installer/9nblggh4nns1) package
from the Microsoft store.
To install rclone
@@ -286,32 +289,33 @@ There are a few command line options to consider when starting an rclone Docker
from the rclone image.
- You need to mount the host rclone config dir at `/config/rclone` into the Docker
container. Due to the fact that rclone updates tokens inside its config file, and that
the update process involves a file rename, you need to mount the whole host rclone
config dir, not just the single host rclone config file.
container. Due to the fact that rclone updates tokens inside its config file,
and that the update process involves a file rename, you need to mount the whole
host rclone config dir, not just the single host rclone config file.
- You need to mount a host data dir at `/data` into the Docker container.
- By default, the rclone binary inside a Docker container runs with UID=0 (root).
As a result, all files created in a run will have UID=0. If your config and data files
reside on the host with a non-root UID:GID, you need to pass these on the container
start command line.
As a result, all files created in a run will have UID=0. If your config and
data files reside on the host with a non-root UID:GID, you need to pass these
on the container start command line.
- If you want to access the RC interface (either via the API or the Web UI), it is
required to set the `--rc-addr` to `:5572` in order to connect to it from outside
the container. An explanation about why this is necessary can be found in an old [pythonspeed.com](https://web.archive.org/web/20200808071950/https://pythonspeed.com/articles/docker-connection-refused/)
the container. An explanation about why this is necessary can be found in an old
[pythonspeed.com](https://web.archive.org/web/20200808071950/https://pythonspeed.com/articles/docker-connection-refused/)
article.
- NOTE: Users running this container with the docker network set to `host` should
probably set it to listen to localhost only, with `127.0.0.1:5572` as the value for
`--rc-addr`
probably set it to listen to localhost only, with `127.0.0.1:5572` as the
value for `--rc-addr`
- It is possible to use `rclone mount` inside a userspace Docker container, and expose
the resulting fuse mount to the host. The exact `docker run` options to do that might
vary slightly between hosts. See, e.g. the discussion in this
the resulting fuse mount to the host. The exact `docker run` options to do that
might vary slightly between hosts. See, e.g. the discussion in this
[thread](https://github.com/moby/moby/issues/9448).
You also need to mount the host `/etc/passwd` and `/etc/group` for fuse to work inside
the container.
You also need to mount the host `/etc/passwd` and `/etc/group` for fuse to work
inside the container.
Here are some commands tested on an Ubuntu 18.04.3 host:
@@ -357,16 +361,19 @@ Make sure you have [Snapd installed](https://snapcraft.io/docs/installing-snapd)
sudo snap install rclone
```
Due to the strict confinement of Snap, rclone snap cannot access real /home/$USER/.config/rclone directory, default config path is as below.
Due to the strict confinement of Snap, rclone snap cannot access real
`/home/$USER/.config/rclone` directory, default config path is as below.
- Default config directory:
- /home/$USER/snap/rclone/current/.config/rclone
Note: Due to the strict confinement of Snap, `rclone mount` feature is `not` supported.
If mounting is wanted, either install a precompiled binary or enable the relevant option when [installing from source](#source).
If mounting is wanted, either install a precompiled binary or enable the relevant
option when [installing from source](#source).
Note that this is controlled by [community maintainer](https://github.com/boukendesho/rclone-snap) not the rclone developers so it may be out of date. Its current version is as below.
Note that this is controlled by [community maintainer](https://github.com/boukendesho/rclone-snap)
not the rclone developers so it may be out of date. Its current version is as below.
[![rclone](https://snapcraft.io/rclone/badge.svg)](https://snapcraft.io/rclone)
@@ -500,7 +507,8 @@ role](https://github.com/stefangweichinger/ansible-rclone).
Instructions
1. `git clone https://github.com/stefangweichinger/ansible-rclone.git` into your local roles-directory
1. `git clone https://github.com/stefangweichinger/ansible-rclone.git` into
your local roles-directory
2. add the role to the hosts you want rclone installed to:
```yml
@@ -532,19 +540,19 @@ To override them set the corresponding options (as command-line arguments, or as
## Autostart
After installing and configuring rclone, as described above, you are ready to use rclone
as an interactive command line utility. If your goal is to perform *periodic* operations,
such as a regular [sync](https://rclone.org/commands/rclone_sync/), you will probably want
to configure your rclone command in your operating system's scheduler. If you need to
expose *service*-like features, such as [remote control](https://rclone.org/rc/),
[GUI](https://rclone.org/gui/), [serve](https://rclone.org/commands/rclone_serve/)
or [mount](https://rclone.org/commands/rclone_mount/), you will often want an rclone
command always running in the background, and configuring it to run in a service infrastructure
may be a better option. Below are some alternatives on how to achieve this on
different operating systems.
After installing and configuring rclone, as described above, you are ready to use
rclone as an interactive command line utility. If your goal is to perform *periodic*
operations, such as a regular [sync](https://rclone.org/commands/rclone_sync/), you
will probably want to configure your rclone command in your operating system's
scheduler. If you need to expose *service*-like features, such as
[remote control](https://rclone.org/rc/), [GUI](https://rclone.org/gui/),
[serve](https://rclone.org/commands/rclone_serve/) or [mount](https://rclone.org/commands/rclone_mount/),
you will often want an rclone command always running in the background, and
configuring it to run in a service infrastructure may be a better option. Below
are some alternatives on how to achieve this on different operating systems.
NOTE: Before setting up autorun it is highly recommended that you have tested your command
manually from a Command Prompt first.
NOTE: Before setting up autorun it is highly recommended that you have tested
your command manually from a Command Prompt first.
### Autostart on Windows
@@ -559,11 +567,11 @@ The most relevant alternatives for autostart on Windows are:
Rclone is a console application, so if not starting from an existing Command Prompt,
e.g. when starting rclone.exe from a shortcut, it will open a Command Prompt window.
When configuring rclone to run from task scheduler and windows service you are able
to set it to run hidden in background. From rclone version 1.54 you can also make it
run hidden from anywhere by adding option `--no-console` (it may still flash briefly
when the program starts). Since rclone normally writes information and any error
messages to the console, you must redirect this to a file to be able to see it.
Rclone has a built-in option `--log-file` for that.
to set it to run hidden in background. From rclone version 1.54 you can also make
it run hidden from anywhere by adding option `--no-console` (it may still flash
briefly when the program starts). Since rclone normally writes information and any
error messages to the console, you must redirect this to a file to be able to see
it. Rclone has a built-in option `--log-file` for that.
Example command to run a sync in background:
@@ -574,8 +582,8 @@ c:\rclone\rclone.exe sync c:\files remote:/files --no-console --log-file c:\rclo
#### User account
As mentioned in the [mount](https://rclone.org/commands/rclone_mount/) documentation,
mounted drives created as Administrator are not visible to other accounts, not even the
account that was elevated as Administrator. By running the mount command as the
mounted drives created as Administrator are not visible to other accounts, not even
the account that was elevated as Administrator. By running the mount command as the
built-in `SYSTEM` user account, it will create drives accessible for everyone on
the system. Both scheduled task and Windows service can be used to achieve this.
@@ -622,13 +630,14 @@ your rclone command, as an alternative to scheduled task configured to run at st
##### Mount command built-in service integration
For mount commands, rclone has a built-in Windows service integration via the third-party
WinFsp library it uses. Registering as a regular Windows service easy, as you just have to
execute the built-in PowerShell command `New-Service` (requires administrative privileges).
For mount commands, rclone has a built-in Windows service integration via the
third-party WinFsp library it uses. Registering as a regular Windows service
easy, as you just have to execute the built-in PowerShell command `New-Service`
(requires administrative privileges).
Example of a PowerShell command that creates a Windows service for mounting
some `remote:/files` as drive letter `X:`, for *all* users (service will be running as the
local system account):
some `remote:/files` as drive letter `X:`, for *all* users (service will be
running as the local system account):
```pwsh
New-Service -Name Rclone -BinaryPathName 'c:\rclone\rclone.exe mount remote:/files X: --config c:\rclone\config\rclone.conf --log-file c:\rclone\logs\mount.txt'
@@ -652,15 +661,15 @@ customized response to different exit codes, with a GUI to configure everything
(although it can also be used from command line ).
There are also several other alternatives. To mention one more,
[WinSW](https://github.com/winsw/winsw), "Windows Service Wrapper", is worth checking out.
It requires .NET Framework, but it is preinstalled on newer versions of Windows, and it
also provides alternative standalone distributions which includes necessary runtime (.NET 5).
WinSW is a command-line only utility, where you have to manually create an XML file with
service configuration. This may be a drawback for some, but it can also be an advantage
as it is easy to back up and reuse the configuration
[WinSW](https://github.com/winsw/winsw), "Windows Service Wrapper", is worth checking
out. It requires .NET Framework, but it is preinstalled on newer versions of Windows,
and it also provides alternative standalone distributions which includes necessary
runtime (.NET 5). WinSW is a command-line only utility, where you have to manually
create an XML file with service configuration. This may be a drawback for some, but
it can also be an advantage as it is easy to back up and reuse the configuration
settings, without having go through manual steps in a GUI. One thing to note is that
by default it does not restart the service on error, one have to explicit enable this
in the configuration file (via the "onfailure" parameter).
by default it does not restart the service on error, one have to explicit enable
this in the configuration file (via the "onfailure" parameter).
### Autostart on Linux

View File

@@ -79,9 +79,11 @@ This is an SHA256 sum of all the 4 MiB block SHA256s.
³ WebDAV supports hashes when used with Fastmail Files, Owncloud and Nextcloud only.
⁴ WebDAV supports modtimes when used with Fastmail Files, Owncloud and Nextcloud only.
⁴ WebDAV supports modtimes when used with Fastmail Files, Owncloud and Nextcloud
only.
⁵ [QuickXorHash](https://docs.microsoft.com/en-us/onedrive/developer/code-snippets/quickxorhash) is Microsoft's own hash.
⁵ [QuickXorHash](https://docs.microsoft.com/en-us/onedrive/developer/code-snippets/quickxorhash)
is Microsoft's own hash.
⁶ Mail.ru uses its own modified SHA1 hash
@@ -180,7 +182,8 @@ depending on OS.
- Windows - usually case insensitive, though case is preserved
- OSX - usually case insensitive, though it is possible to format case sensitive
- Linux - usually case sensitive, but there are case insensitive file systems (e.g. FAT formatted USB keys)
- Linux - usually case sensitive, but there are case insensitive file systems
(e.g. FAT formatted USB keys)
Most of the time this doesn't cause any problems as people tend to
avoid files whose name differs only by case even on case sensitive
@@ -421,7 +424,8 @@ to the existing ones, giving:
Slash,LtGt,DoubleQuote,Colon,Question,Asterisk,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot,Del,RightSpace
```
This can be specified using the `--ftp-encoding` flag or using an `encoding` parameter in the config file.
This can be specified using the `--ftp-encoding` flag or using an `encoding`
parameter in the config file.
##### Encoding example: Windows
@@ -447,7 +451,8 @@ the default value but without `Colon,Question,Asterisk`:
--local-encoding "Slash,LtGt,DoubleQuote,Pipe,BackSlash,Ctl,RightSpace,RightPeriod,InvalidUtf8,Dot"
```
Alternatively, you can disable the conversion of any characters with `--local-encoding Raw`.
Alternatively, you can disable the conversion of any characters with
`--local-encoding Raw`.
Instead of using command-line argument `--local-encoding`, you may also set it
as [environment variable](/docs/#environment-variables) `RCLONE_LOCAL_ENCODING`,

View File

@@ -7,58 +7,128 @@ description: "Rclone Privacy Policy"
## What is this Privacy Policy for? ##
This privacy policy is for this website https://rclone.org and governs the privacy of its users who choose to use it.
This privacy policy is for this website https://rclone.org and governs the
privacy of its users who choose to use it.
The policy sets out the different areas where user privacy is concerned and outlines the obligations & requirements of the users, the website and website owners. Furthermore the way this website processes, stores and protects user data and information will also be detailed within this policy.
The policy sets out the different areas where user privacy is concerned and
outlines the obligations & requirements of the users, the website and website
owners. Furthermore the way this website processes, stores and protects user
data and information will also be detailed within this policy.
## The Website ##
This website and its owners take a proactive approach to user privacy and ensure the necessary steps are taken to protect the privacy of its users throughout their visiting experience. This website complies to all UK national laws and requirements for user privacy.
This website and its owners take a proactive approach to user privacy and
ensure the necessary steps are taken to protect the privacy of its users
throughout their visiting experience. This website complies to all UK national
laws and requirements for user privacy.
## Use of Cookies ##
This website uses cookies to better the users experience while visiting the website. Where applicable this website uses a cookie control system allowing the user on their first visit to the website to allow or disallow the use of cookies on their computer / device. This complies with recent legislation requirements for websites to obtain explicit consent from users before leaving behind or reading files such as cookies on a user's computer / device.
This website uses cookies to better the users experience while visiting the
website. Where applicable this website uses a cookie control system allowing
the user on their first visit to the website to allow or disallow the use of
cookies on their computer / device. This complies with recent legislation
requirements for websites to obtain explicit consent from users before leaving
behind or reading files such as cookies on a user's computer / device.
Cookies are small files saved to the user's computers hard drive that track, save and store information about the user's interactions and usage of the website. This allows the website, through its server to provide the users with a tailored experience within this website.
Cookies are small files saved to the user's computers hard drive that track,
save and store information about the user's interactions and usage of the
website. This allows the website, through its server to provide the users with
a tailored experience within this website.
Users are advised that if they wish to deny the use and saving of cookies from this website on to their computers hard drive they should take necessary steps within their web browsers security settings to block all cookies from this website and its external serving vendors.
Users are advised that if they wish to deny the use and saving of cookies from
this website on to their computers hard drive they should take necessary steps
within their web browsers security settings to block all cookies from this
website and its external serving vendors.
This website uses tracking software to monitor its visitors to better understand how they use it. This software is provided by Google Analytics which uses cookies to track visitor usage. The software will save a cookie to your computers hard drive in order to track and monitor your engagement and usage of the website, but will not store, save or collect personal information. You can read [Google's privacy policy here](https://www.google.com/privacy.html) for further information.
This website uses tracking software to monitor its visitors to better
understand how they use it. This software is provided by Google Analytics which
uses cookies to track visitor usage. The software will save a cookie to your
computers hard drive in order to track and monitor your engagement and usage of
the website, but will not store, save or collect personal information. You can
read [Google's privacy policy here](https://www.google.com/privacy.html) for
further information.
Other cookies may be stored to your computers hard drive by external vendors when this website uses referral programs, sponsored links or adverts. Such cookies are used for conversion and referral tracking and typically expire after 30 days, though some may take longer. No personal information is stored, saved or collected.
Other cookies may be stored to your computers hard drive by external vendors
when this website uses referral programs, sponsored links or adverts. Such
cookies are used for conversion and referral tracking and typically expire
after 30 days, though some may take longer. No personal information is stored,
saved or collected.
## Contact & Communication ##
Users contacting this website and/or its owners do so at their own discretion and provide any such personal details requested at their own risk. Your personal information is kept private and stored securely until a time it is no longer required or has no use, as detailed in the Data Protection Act 1998.
Users contacting this website and/or its owners do so at their own discretion
and provide any such personal details requested at their own risk. Your
personal information is kept private and stored securely until a time it is no
longer required or has no use, as detailed in the Data Protection Act 1998.
This website and its owners use any information submitted to provide you with further information about the products / services they offer or to assist you in answering any questions or queries you may have submitted.
This website and its owners use any information submitted to provide you with
further information about the products / services they offer or to assist you
in answering any questions or queries you may have submitted.
## External Links ##
Although this website only looks to include quality, safe and relevant external links, users are advised adopt a policy of caution before clicking any external web links mentioned throughout this website.
Although this website only looks to include quality, safe and relevant external
links, users are advised adopt a policy of caution before clicking any external
web links mentioned throughout this website.
The owners of this website cannot guarantee or verify the contents of any externally linked website despite their best efforts. Users should therefore note they click on external links at their own risk and this website and its owners cannot be held liable for any damages or implications caused by visiting any external links mentioned.
The owners of this website cannot guarantee or verify the contents of any
externally linked website despite their best efforts. Users should therefore
note they click on external links at their own risk and this website and its
owners cannot be held liable for any damages or implications caused by visiting
any external links mentioned.
## Adverts and Sponsored Links ##
This website may contain sponsored links and adverts. These will typically be served through our advertising partners, to whom may have detailed privacy policies relating directly to the adverts they serve.
This website may contain sponsored links and adverts. These will typically be
served through our advertising partners, to whom may have detailed privacy
policies relating directly to the adverts they serve.
Clicking on any such adverts will send you to the advertisers website through a referral program which may use cookies and will track the number of referrals sent from this website. This may include the use of cookies which may in turn be saved on your computers hard drive. Users should therefore note they click on sponsored external links at their own risk and this website and its owners cannot be held liable for any damages or implications caused by visiting any external links mentioned.
Clicking on any such adverts will send you to the advertisers website through a
referral program which may use cookies and will track the number of referrals
sent from this website. This may include the use of cookies which may in turn
be saved on your computers hard drive. Users should therefore note they click
on sponsored external links at their own risk and this website and its owners
cannot be held liable for any damages or implications caused by visiting any
external links mentioned.
### Social Media Platforms ##
Communication, engagement and actions taken through external social media platforms that this website and its owners participate on are subject to the terms and conditions as well as the privacy policies held with each social media platform respectively.
Communication, engagement and actions taken through external social media
platforms that this website and its owners participate on are subject to the
terms and conditions as well as the privacy policies held with each social media
platform respectively.
Users are advised to use social media platforms wisely and communicate / engage upon them with due care and caution in regard to their own privacy and personal details. This website nor its owners will ever ask for personal or sensitive information through social media platforms and encourage users wishing to discuss sensitive details to contact them through primary communication channels such as email.
Users are advised to use social media platforms wisely and communicate / engage
upon them with due care and caution in regard to their own privacy and personal
details. This website nor its owners will ever ask for personal or sensitive
information through social media platforms and encourage users wishing to
discuss sensitive details to contact them through primary communication channels
such as email.
This website may use social sharing buttons which help share web content directly from web pages to the social media platform in question. Users are advised before using such social sharing buttons that they do so at their own discretion and note that the social media platform may track and save your request to share a web page respectively through your social media platform account.
This website may use social sharing buttons which help share web content
directly from web pages to the social media platform in question. Users are
advised before using such social sharing buttons that they do so at their own
discretion and note that the social media platform may track and save your
request to share a web page respectively through your social media platform
account.
## Use of Cloud API User Data ##
Rclone is a command-line program to manage files on cloud storage. Its sole purpose is to access and manipulate user content in the [supported](/overview/) cloud storage systems from a local machine of the end user. For accessing the user content via the cloud provider API, Rclone uses authentication mechanisms, such as OAuth or HTTP Cookies, depending on the particular cloud provider offerings. Use of these authentication mechanisms and user data is governed by the privacy policies mentioned in the [Resources & Further Information](/privacy/#resources-further-information) section and followed by the privacy policy of Rclone.
Rclone is a command-line program to manage files on cloud storage. Its sole
purpose is to access and manipulate user content in the [supported](/overview/)
cloud storage systems from a local machine of the end user. For accessing the
user content via the cloud provider API, Rclone uses authentication mechanisms,
such as OAuth or HTTP Cookies, depending on the particular cloud provider
offerings. Use of these authentication mechanisms and user data is governed by
the privacy policies mentioned in the [Resources & Further Information](/privacy/#resources-further-information)
section and followed by the privacy policy of Rclone.
- Rclone provides the end user with access to their files available in a storage system associated by the authentication credentials via the publicly exposed API of the storage system.
- Rclone allows storing the authentication credentials on the user machine in the local configuration file.
- Rclone provides the end user with access to their files available in a storage
system associated by the authentication credentials via the publicly exposed API
of the storage system.
- Rclone allows storing the authentication credentials on the user machine in the
local configuration file.
- Rclone does not share any user data with third parties.
## Resources & Further Information ##

View File

@@ -12,7 +12,8 @@ which can be used to remote control rclone using its API.
You can either use the [rc](#api-rc) command to access the API
or [use HTTP directly](#api-http).
If you just want to run a remote control then see the [rcd](/commands/rclone_rcd/) command.
If you just want to run a remote control then see the [rcd](/commands/rclone_rcd/)
command.
## Supported parameters
@@ -102,7 +103,9 @@ Default Off.
### --rc-enable-metrics
Enable OpenMetrics/Prometheus compatible endpoint at `/metrics`.
If more control over the metrics is desired (for example running it on a different port or with different auth) then endpoint can be enabled with the `--metrics-*` flags instead.
If more control over the metrics is desired (for example running it on a
different port or with different auth) then endpoint can be enabled with
the `--metrics-*` flags instead.
Default Off.
@@ -2396,7 +2399,8 @@ The keys in the error response are:
### CORS
The sever implements basic CORS support and allows all origins for that.
The response to a preflight OPTIONS request will echo the requested "Access-Control-Request-Headers" back.
The response to a preflight OPTIONS request will echo the requested
"Access-Control-Request-Headers" back.
### Using POST with URL parameters only