mirror of
https://github.com/rclone/rclone.git
synced 2025-08-10 06:09:44 +02:00
docs: fix markdownlint issues md007/ul-indent md004/ul-style
This commit is contained in:
180
CONTRIBUTING.md
180
CONTRIBUTING.md
@@ -16,7 +16,7 @@ with the [latest beta of rclone](https://beta.rclone.org/):
|
|||||||
- Which OS you are using and how many bits (e.g. Windows 10, 64 bit)
|
- 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`)
|
- 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`)
|
- 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
|
- if the log contains secrets then edit the file with a text editor first to obscure them
|
||||||
|
|
||||||
## Submitting a new feature or bug fix
|
## Submitting a new feature or bug fix
|
||||||
|
|
||||||
@@ -232,46 +232,46 @@ Rclone code is organised into a small number of top level directories
|
|||||||
with modules beneath.
|
with modules beneath.
|
||||||
|
|
||||||
- backend - the rclone backends for interfacing to cloud providers -
|
- backend - the rclone backends for interfacing to cloud providers -
|
||||||
- all - import this to load all the cloud providers
|
- all - import this to load all the cloud providers
|
||||||
- ...providers
|
- ...providers
|
||||||
- bin - scripts for use while building or maintaining rclone
|
- bin - scripts for use while building or maintaining rclone
|
||||||
- cmd - the rclone commands
|
- cmd - the rclone commands
|
||||||
- all - import this to load all the commands
|
- all - import this to load all the commands
|
||||||
- ...commands
|
- ...commands
|
||||||
- cmdtest - end-to-end tests of commands, flags, environment variables,...
|
- cmdtest - end-to-end tests of commands, flags, environment variables,...
|
||||||
- docs - the documentation and website
|
- docs - the documentation and website
|
||||||
- content - adjust these docs only - everything else is autogenerated
|
- content - adjust these docs only - everything else is autogenerated
|
||||||
- command - these are auto-generated - edit the corresponding .go file
|
- command - these are auto-generated - edit the corresponding .go file
|
||||||
- fs - main rclone definitions - minimal amount of code
|
- fs - main rclone definitions - minimal amount of code
|
||||||
- accounting - bandwidth limiting and statistics
|
- accounting - bandwidth limiting and statistics
|
||||||
- asyncreader - an io.Reader which reads ahead
|
- asyncreader - an io.Reader which reads ahead
|
||||||
- config - manage the config file and flags
|
- config - manage the config file and flags
|
||||||
- driveletter - detect if a name is a drive letter
|
- driveletter - detect if a name is a drive letter
|
||||||
- filter - implements include/exclude filtering
|
- filter - implements include/exclude filtering
|
||||||
- fserrors - rclone specific error handling
|
- fserrors - rclone specific error handling
|
||||||
- fshttp - http handling for rclone
|
- fshttp - http handling for rclone
|
||||||
- fspath - path handling for rclone
|
- fspath - path handling for rclone
|
||||||
- hash - defines rclone's hash types and functions
|
- hash - defines rclone's hash types and functions
|
||||||
- list - list a remote
|
- list - list a remote
|
||||||
- log - logging facilities
|
- log - logging facilities
|
||||||
- march - iterates directories in lock step
|
- march - iterates directories in lock step
|
||||||
- object - in memory Fs objects
|
- object - in memory Fs objects
|
||||||
- operations - primitives for sync, e.g. Copy, Move
|
- operations - primitives for sync, e.g. Copy, Move
|
||||||
- sync - sync directories
|
- sync - sync directories
|
||||||
- walk - walk a directory
|
- walk - walk a directory
|
||||||
- fstest - provides integration test framework
|
- fstest - provides integration test framework
|
||||||
- fstests - integration tests for the backends
|
- fstests - integration tests for the backends
|
||||||
- mockdir - mocks an fs.Directory
|
- mockdir - mocks an fs.Directory
|
||||||
- mockobject - mocks an fs.Object
|
- mockobject - mocks an fs.Object
|
||||||
- test_all - Runs integration tests for everything
|
- test_all - Runs integration tests for everything
|
||||||
- graphics - the images used in the website, etc.
|
- graphics - the images used in the website, etc.
|
||||||
- lib - libraries used by the backend
|
- lib - libraries used by the backend
|
||||||
- atexit - register functions to run when rclone exits
|
- atexit - register functions to run when rclone exits
|
||||||
- dircache - directory ID to name caching
|
- dircache - directory ID to name caching
|
||||||
- oauthutil - helpers for using oauth
|
- oauthutil - helpers for using oauth
|
||||||
- pacer - retries with backoff and paces operations
|
- pacer - retries with backoff and paces operations
|
||||||
- readers - a selection of useful io.Readers
|
- readers - a selection of useful io.Readers
|
||||||
- rest - a thin abstraction over net/http for REST
|
- rest - a thin abstraction over net/http for REST
|
||||||
- librclone - in memory interface to rclone's API for embedding rclone
|
- librclone - in memory interface to rclone's API for embedding rclone
|
||||||
- vfs - Virtual FileSystem layer for implementing rclone mount and similar
|
- vfs - Virtual FileSystem layer for implementing rclone mount and similar
|
||||||
|
|
||||||
@@ -287,25 +287,25 @@ If you add a new backend option/flag, then it should be documented in
|
|||||||
the source file in the `Help:` field.
|
the source file in the `Help:` field.
|
||||||
|
|
||||||
- Start with the most important information about the option,
|
- Start with the most important information about the option,
|
||||||
as a single sentence on a single line.
|
as a single sentence on a single line.
|
||||||
- This text will be used for the command-line flag help.
|
- This text will be used for the command-line flag help.
|
||||||
- It will be combined with other information, such as any default value,
|
- It will be combined with other information, such as any default value,
|
||||||
and the result will look odd if not written as a single sentence.
|
and the result will look odd if not written as a single sentence.
|
||||||
- It should end with a period/full stop character, which will be shown
|
- It should end with a period/full stop character, which will be shown
|
||||||
in docs but automatically removed when producing the flag help.
|
in docs but automatically removed when producing the flag help.
|
||||||
- Try to keep it below 80 characters, to reduce text wrapping in the terminal.
|
- Try to keep it below 80 characters, to reduce text wrapping in the terminal.
|
||||||
- More details can be added in a new paragraph, after an empty line (`"\n\n"`).
|
- More details can be added in a new paragraph, after an empty line (`"\n\n"`).
|
||||||
- Like with docs generated from Markdown, a single line break is ignored
|
- Like with docs generated from Markdown, a single line break is ignored
|
||||||
and two line breaks creates a new paragraph.
|
and two line breaks creates a new paragraph.
|
||||||
- This text will be shown to the user in `rclone config`
|
- This text will be shown to the user in `rclone config`
|
||||||
and in the docs (where it will be added by `make backenddocs`,
|
and in the docs (where it will be added by `make backenddocs`,
|
||||||
normally run some time before next release).
|
normally run some time before next release).
|
||||||
- To create options of enumeration type use the `Examples:` field.
|
- To create options of enumeration type use the `Examples:` field.
|
||||||
- Each example value have their own `Help:` field, but they are treated
|
- Each example value have their own `Help:` field, but they are treated
|
||||||
a bit different than the main option help text. They will be shown
|
a bit different than the main option help text. They will be shown
|
||||||
as an unordered list, therefore a single line break is enough to
|
as an unordered list, therefore a single line break is enough to
|
||||||
create a new list item. Also, for enumeration texts like name of
|
create a new list item. Also, for enumeration texts like name of
|
||||||
countries, it looks better without an ending period/full stop character.
|
countries, it looks better without an ending period/full stop character.
|
||||||
|
|
||||||
The only documentation you need to edit are the `docs/content/*.md`
|
The only documentation you need to edit are the `docs/content/*.md`
|
||||||
files. The `MANUAL.*`, `rclone.1`, website, etc. are all auto-generated
|
files. The `MANUAL.*`, `rclone.1`, website, etc. are all auto-generated
|
||||||
@@ -434,16 +434,16 @@ remote or an fs.
|
|||||||
### Getting going
|
### Getting going
|
||||||
|
|
||||||
- Create `backend/remote/remote.go` (copy this from a similar remote)
|
- 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
|
- 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`
|
- 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.
|
- 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.
|
- 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
|
- 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 purge -v TestRemote:rclone-info`
|
||||||
- `rclone test info --all --remote-encoding None -vv --write-json remote.json 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`
|
- `go run cmd/test/info/internal/build_csv/main.go -o remote.csv remote.json`
|
||||||
- open `remote.csv` in a spreadsheet and examine
|
- open `remote.csv` in a spreadsheet and examine
|
||||||
|
|
||||||
### Guidelines for a speedy merge
|
### Guidelines for a speedy merge
|
||||||
|
|
||||||
@@ -463,19 +463,19 @@ remote or an fs.
|
|||||||
### Integration tests
|
### Integration tests
|
||||||
|
|
||||||
- Add your backend to `fstest/test_all/config.yaml`
|
- 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 ./...
|
- go install ./...
|
||||||
- test_all -backends remote
|
- test_all -backends remote
|
||||||
|
|
||||||
Or if you want to run the integration tests manually:
|
Or if you want to run the integration tests manually:
|
||||||
|
|
||||||
- Make sure integration tests pass with
|
- Make sure integration tests pass with
|
||||||
- `cd fs/operations`
|
- `cd fs/operations`
|
||||||
- `go test -v -remote TestRemote:`
|
- `go test -v -remote TestRemote:`
|
||||||
- `cd fs/sync`
|
- `cd fs/sync`
|
||||||
- `go test -v -remote TestRemote:`
|
- `go test -v -remote TestRemote:`
|
||||||
- If your remote defines `ListR` check with this also
|
- If your remote defines `ListR` check with this also
|
||||||
- `go test -v -remote TestRemote: -fast-list`
|
- `go test -v -remote TestRemote: -fast-list`
|
||||||
|
|
||||||
See the [testing](#testing) section for more information on integration tests.
|
See the [testing](#testing) section for more information on integration tests.
|
||||||
|
|
||||||
@@ -488,8 +488,8 @@ alphabetical order of full name of remote (e.g. `drive` is ordered as
|
|||||||
|
|
||||||
- `README.md` - main GitHub page
|
- `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`)
|
- `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)
|
- 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`
|
- 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/docs.md` - list of remotes in config section
|
||||||
- `docs/content/_index.md` - front page of rclone.org
|
- `docs/content/_index.md` - front page of rclone.org
|
||||||
@@ -506,21 +506,21 @@ It is quite easy to add a new S3 provider to rclone.
|
|||||||
You'll need to modify the following files
|
You'll need to modify the following files
|
||||||
|
|
||||||
- `backend/s3/s3.go`
|
- `backend/s3/s3.go`
|
||||||
- Add the provider to `providerOption` at the top of the file
|
- Add the provider to `providerOption` at the top of the file
|
||||||
- Add endpoints and other config for your provider gated on the provider in `fs.RegInfo`.
|
- Add endpoints and other config for your provider gated on the provider in `fs.RegInfo`.
|
||||||
- Exclude your provider from generic config questions (eg `region` and `endpoint).
|
- Exclude your provider from generic config questions (eg `region` and `endpoint).
|
||||||
- Add the provider to the `setQuirks` function - see the documentation there.
|
- Add the provider to the `setQuirks` function - see the documentation there.
|
||||||
- `docs/content/s3.md`
|
- `docs/content/s3.md`
|
||||||
- Add the provider at the top of the page.
|
- Add the provider at the top of the page.
|
||||||
- Add a section about the provider linked from there.
|
- Add a section about the provider linked from there.
|
||||||
- Add a transcript of a trial `rclone config` session
|
- Add a transcript of a trial `rclone config` session
|
||||||
- Edit the transcript to remove things which might change in subsequent versions
|
- Edit the transcript to remove things which might change in subsequent versions
|
||||||
- **Do not** alter or add to the autogenerated parts of `s3.md`
|
- **Do not** alter or add to the autogenerated parts of `s3.md`
|
||||||
- **Do not** run `make backenddocs` or `bin/make_backend_docs.py s3`
|
- **Do not** run `make backenddocs` or `bin/make_backend_docs.py s3`
|
||||||
- `README.md` - this is the home page in github
|
- `README.md` - this is the home page in github
|
||||||
- Add the provider and a link to the section you wrote in `docs/contents/s3.md`
|
- Add the provider and a link to the section you wrote in `docs/contents/s3.md`
|
||||||
- `docs/content/_index.md` - this is the home page of rclone.org
|
- `docs/content/_index.md` - this is the home page of rclone.org
|
||||||
- Add the provider and a link to the section you wrote in `docs/contents/s3.md`
|
- Add the provider and a link to the section you wrote in `docs/contents/s3.md`
|
||||||
|
|
||||||
When adding the provider, endpoints, quirks, docs etc keep them in
|
When adding the provider, endpoints, quirks, docs etc keep them in
|
||||||
alphabetical order by `Provider` name, but with `AWS` first and
|
alphabetical order by `Provider` name, but with `AWS` first and
|
||||||
@@ -547,18 +547,18 @@ This is useful if you can't merge your changes upstream or don't want to maintai
|
|||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
- Naming
|
- Naming
|
||||||
- Plugins names must have the pattern `librcloneplugin_KIND_NAME.so`.
|
- Plugins names must have the pattern `librcloneplugin_KIND_NAME.so`.
|
||||||
- `KIND` should be one of `backend`, `command` or `bundle`.
|
- `KIND` should be one of `backend`, `command` or `bundle`.
|
||||||
- Example: A plugin with backend support for PiFS would be called
|
- Example: A plugin with backend support for PiFS would be called
|
||||||
`librcloneplugin_backend_pifs.so`.
|
`librcloneplugin_backend_pifs.so`.
|
||||||
- Loading
|
- Loading
|
||||||
- Supported on macOS & Linux as of now. ([Go issue for Windows support](https://github.com/golang/go/issues/19282))
|
- Supported on macOS & Linux as of now. ([Go issue for Windows support](https://github.com/golang/go/issues/19282))
|
||||||
- Supported on rclone v1.50 or greater.
|
- Supported on rclone v1.50 or greater.
|
||||||
- All plugins in the folder specified by variable `$RCLONE_PLUGIN_PATH` are loaded.
|
- All plugins in the folder specified by variable `$RCLONE_PLUGIN_PATH` are loaded.
|
||||||
- If this variable doesn't exist, plugin support is disabled.
|
- If this variable doesn't exist, plugin support is disabled.
|
||||||
- Plugins must be compiled against the exact version of rclone to work.
|
- 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
|
### Building
|
||||||
|
|
||||||
|
@@ -34,21 +34,21 @@ When a ticket comes in it should be triaged. This means it should be classified
|
|||||||
|
|
||||||
Rclone uses the labels like this:
|
Rclone uses the labels like this:
|
||||||
|
|
||||||
* `bug` - a definitely verified bug
|
- `bug` - a definitely verified bug
|
||||||
* `can't reproduce` - a problem which we can't reproduce
|
- `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
|
- `duplicate` - normally close these and ask the user to subscribe to the original
|
||||||
* `enhancement: new remote` - a new rclone backend
|
- `enhancement: new remote` - a new rclone backend
|
||||||
* `enhancement` - a new feature
|
- `enhancement` - a new feature
|
||||||
* `FUSE` - to do with `rclone mount` command
|
- `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
|
- `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
|
- `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
|
- `IMPORTANT` - note to maintainers not to forget to fix this for the release
|
||||||
* `maintenance` - internal enhancement, code re-organisation, etc.
|
- `maintenance` - internal enhancement, code re-organisation, etc.
|
||||||
* `Needs Go 1.XX` - waiting for that version of Go to be released
|
- `Needs Go 1.XX` - waiting for that version of Go to be released
|
||||||
* `question` - not a `bug` or `enhancement` - direct to the forum for next time
|
- `question` - not a `bug` or `enhancement` - direct to the forum for next time
|
||||||
* `Remote: XXX` - which rclone backend this affects
|
- `Remote: XXX` - which rclone backend this affects
|
||||||
* `thinking` - not decided on the course of action yet
|
- `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.
|
||||||
|
|
||||||
@@ -56,11 +56,11 @@ When a ticket is tagged it should be added to a milestone, either the next relea
|
|||||||
|
|
||||||
The milestones have these meanings:
|
The milestones have these meanings:
|
||||||
|
|
||||||
* v1.XX - stuff we would like to fit into this release
|
- v1.XX - stuff we would like to fit into this release
|
||||||
* v1.XX+1 - stuff we are leaving until the next release
|
- 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
|
- 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
|
- 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.
|
||||||
|
|
||||||
|
246
README.md
246
README.md
@@ -20,99 +20,99 @@ Rclone *("rsync for cloud storage")* is a command-line program to sync files and
|
|||||||
|
|
||||||
## Storage providers
|
## Storage providers
|
||||||
|
|
||||||
* 1Fichier [:page_facing_up:](https://rclone.org/fichier/)
|
- 1Fichier [:page_facing_up:](https://rclone.org/fichier/)
|
||||||
* Akamai Netstorage [:page_facing_up:](https://rclone.org/netstorage/)
|
- Akamai Netstorage [:page_facing_up:](https://rclone.org/netstorage/)
|
||||||
* Alibaba Cloud (Aliyun) Object Storage System (OSS) [:page_facing_up:](https://rclone.org/s3/#alibaba-oss)
|
- Alibaba Cloud (Aliyun) Object Storage System (OSS) [:page_facing_up:](https://rclone.org/s3/#alibaba-oss)
|
||||||
* Amazon S3 [:page_facing_up:](https://rclone.org/s3/)
|
- Amazon S3 [:page_facing_up:](https://rclone.org/s3/)
|
||||||
* ArvanCloud Object Storage (AOS) [:page_facing_up:](https://rclone.org/s3/#arvan-cloud-object-storage-aos)
|
- ArvanCloud Object Storage (AOS) [:page_facing_up:](https://rclone.org/s3/#arvan-cloud-object-storage-aos)
|
||||||
* Backblaze B2 [:page_facing_up:](https://rclone.org/b2/)
|
- Backblaze B2 [:page_facing_up:](https://rclone.org/b2/)
|
||||||
* Box [:page_facing_up:](https://rclone.org/box/)
|
- Box [:page_facing_up:](https://rclone.org/box/)
|
||||||
* Ceph [:page_facing_up:](https://rclone.org/s3/#ceph)
|
- Ceph [:page_facing_up:](https://rclone.org/s3/#ceph)
|
||||||
* China Mobile Ecloud Elastic Object Storage (EOS) [:page_facing_up:](https://rclone.org/s3/#china-mobile-ecloud-eos)
|
- China Mobile Ecloud Elastic Object Storage (EOS) [:page_facing_up:](https://rclone.org/s3/#china-mobile-ecloud-eos)
|
||||||
* Cloudflare R2 [:page_facing_up:](https://rclone.org/s3/#cloudflare-r2)
|
- Cloudflare R2 [:page_facing_up:](https://rclone.org/s3/#cloudflare-r2)
|
||||||
* Citrix ShareFile [:page_facing_up:](https://rclone.org/sharefile/)
|
- Citrix ShareFile [:page_facing_up:](https://rclone.org/sharefile/)
|
||||||
* DigitalOcean Spaces [:page_facing_up:](https://rclone.org/s3/#digitalocean-spaces)
|
- DigitalOcean Spaces [:page_facing_up:](https://rclone.org/s3/#digitalocean-spaces)
|
||||||
* Digi Storage [:page_facing_up:](https://rclone.org/koofr/#digi-storage)
|
- Digi Storage [:page_facing_up:](https://rclone.org/koofr/#digi-storage)
|
||||||
* Dreamhost [:page_facing_up:](https://rclone.org/s3/#dreamhost)
|
- Dreamhost [:page_facing_up:](https://rclone.org/s3/#dreamhost)
|
||||||
* Dropbox [:page_facing_up:](https://rclone.org/dropbox/)
|
- Dropbox [:page_facing_up:](https://rclone.org/dropbox/)
|
||||||
* Enterprise File Fabric [:page_facing_up:](https://rclone.org/filefabric/)
|
- Enterprise File Fabric [:page_facing_up:](https://rclone.org/filefabric/)
|
||||||
* Fastmail Files [:page_facing_up:](https://rclone.org/webdav/#fastmail-files)
|
- Fastmail Files [:page_facing_up:](https://rclone.org/webdav/#fastmail-files)
|
||||||
* FileLu [:page_facing_up:](https://rclone.org/filelu/)
|
- FileLu [:page_facing_up:](https://rclone.org/filelu/)
|
||||||
* Files.com [:page_facing_up:](https://rclone.org/filescom/)
|
- Files.com [:page_facing_up:](https://rclone.org/filescom/)
|
||||||
* FlashBlade [:page_facing_up:](https://rclone.org/s3/#pure-storage-flashblade)
|
- FlashBlade [:page_facing_up:](https://rclone.org/s3/#pure-storage-flashblade)
|
||||||
* FTP [:page_facing_up:](https://rclone.org/ftp/)
|
- FTP [:page_facing_up:](https://rclone.org/ftp/)
|
||||||
* GoFile [:page_facing_up:](https://rclone.org/gofile/)
|
- GoFile [:page_facing_up:](https://rclone.org/gofile/)
|
||||||
* Google Cloud Storage [:page_facing_up:](https://rclone.org/googlecloudstorage/)
|
- Google Cloud Storage [:page_facing_up:](https://rclone.org/googlecloudstorage/)
|
||||||
* Google Drive [:page_facing_up:](https://rclone.org/drive/)
|
- Google Drive [:page_facing_up:](https://rclone.org/drive/)
|
||||||
* Google Photos [:page_facing_up:](https://rclone.org/googlephotos/)
|
- Google Photos [:page_facing_up:](https://rclone.org/googlephotos/)
|
||||||
* HDFS (Hadoop Distributed Filesystem) [:page_facing_up:](https://rclone.org/hdfs/)
|
- HDFS (Hadoop Distributed Filesystem) [:page_facing_up:](https://rclone.org/hdfs/)
|
||||||
* Hetzner Storage Box [:page_facing_up:](https://rclone.org/sftp/#hetzner-storage-box)
|
- Hetzner Storage Box [:page_facing_up:](https://rclone.org/sftp/#hetzner-storage-box)
|
||||||
* HiDrive [:page_facing_up:](https://rclone.org/hidrive/)
|
- HiDrive [:page_facing_up:](https://rclone.org/hidrive/)
|
||||||
* HTTP [:page_facing_up:](https://rclone.org/http/)
|
- HTTP [:page_facing_up:](https://rclone.org/http/)
|
||||||
* Huawei Cloud Object Storage Service(OBS) [:page_facing_up:](https://rclone.org/s3/#huawei-obs)
|
- Huawei Cloud Object Storage Service(OBS) [:page_facing_up:](https://rclone.org/s3/#huawei-obs)
|
||||||
* iCloud Drive [:page_facing_up:](https://rclone.org/iclouddrive/)
|
- iCloud Drive [:page_facing_up:](https://rclone.org/iclouddrive/)
|
||||||
* ImageKit [:page_facing_up:](https://rclone.org/imagekit/)
|
- ImageKit [:page_facing_up:](https://rclone.org/imagekit/)
|
||||||
* Internet Archive [:page_facing_up:](https://rclone.org/internetarchive/)
|
- Internet Archive [:page_facing_up:](https://rclone.org/internetarchive/)
|
||||||
* Jottacloud [:page_facing_up:](https://rclone.org/jottacloud/)
|
- Jottacloud [:page_facing_up:](https://rclone.org/jottacloud/)
|
||||||
* IBM COS S3 [:page_facing_up:](https://rclone.org/s3/#ibm-cos-s3)
|
- IBM COS S3 [:page_facing_up:](https://rclone.org/s3/#ibm-cos-s3)
|
||||||
* IONOS Cloud [:page_facing_up:](https://rclone.org/s3/#ionos)
|
- IONOS Cloud [:page_facing_up:](https://rclone.org/s3/#ionos)
|
||||||
* Koofr [:page_facing_up:](https://rclone.org/koofr/)
|
- Koofr [:page_facing_up:](https://rclone.org/koofr/)
|
||||||
* Leviia Object Storage [:page_facing_up:](https://rclone.org/s3/#leviia)
|
- Leviia Object Storage [:page_facing_up:](https://rclone.org/s3/#leviia)
|
||||||
* Liara Object Storage [:page_facing_up:](https://rclone.org/s3/#liara-object-storage)
|
- Liara Object Storage [:page_facing_up:](https://rclone.org/s3/#liara-object-storage)
|
||||||
* Linkbox [:page_facing_up:](https://rclone.org/linkbox)
|
- Linkbox [:page_facing_up:](https://rclone.org/linkbox)
|
||||||
* Linode Object Storage [:page_facing_up:](https://rclone.org/s3/#linode)
|
- Linode Object Storage [:page_facing_up:](https://rclone.org/s3/#linode)
|
||||||
* Magalu Object Storage [:page_facing_up:](https://rclone.org/s3/#magalu)
|
- Magalu Object Storage [:page_facing_up:](https://rclone.org/s3/#magalu)
|
||||||
* Mail.ru Cloud [:page_facing_up:](https://rclone.org/mailru/)
|
- Mail.ru Cloud [:page_facing_up:](https://rclone.org/mailru/)
|
||||||
* Memset Memstore [:page_facing_up:](https://rclone.org/swift/)
|
- Memset Memstore [:page_facing_up:](https://rclone.org/swift/)
|
||||||
* MEGA [:page_facing_up:](https://rclone.org/mega/)
|
- MEGA [:page_facing_up:](https://rclone.org/mega/)
|
||||||
* MEGA S4 Object Storage [:page_facing_up:](https://rclone.org/s3/#mega)
|
- MEGA S4 Object Storage [:page_facing_up:](https://rclone.org/s3/#mega)
|
||||||
* Memory [:page_facing_up:](https://rclone.org/memory/)
|
- Memory [:page_facing_up:](https://rclone.org/memory/)
|
||||||
* Microsoft Azure Blob Storage [:page_facing_up:](https://rclone.org/azureblob/)
|
- Microsoft Azure Blob Storage [:page_facing_up:](https://rclone.org/azureblob/)
|
||||||
* Microsoft Azure Files Storage [:page_facing_up:](https://rclone.org/azurefiles/)
|
- Microsoft Azure Files Storage [:page_facing_up:](https://rclone.org/azurefiles/)
|
||||||
* Microsoft OneDrive [:page_facing_up:](https://rclone.org/onedrive/)
|
- Microsoft OneDrive [:page_facing_up:](https://rclone.org/onedrive/)
|
||||||
* Minio [:page_facing_up:](https://rclone.org/s3/#minio)
|
- Minio [:page_facing_up:](https://rclone.org/s3/#minio)
|
||||||
* Nextcloud [:page_facing_up:](https://rclone.org/webdav/#nextcloud)
|
- Nextcloud [:page_facing_up:](https://rclone.org/webdav/#nextcloud)
|
||||||
* Blomp Cloud Storage [:page_facing_up:](https://rclone.org/swift/)
|
- Blomp Cloud Storage [:page_facing_up:](https://rclone.org/swift/)
|
||||||
* OpenDrive [:page_facing_up:](https://rclone.org/opendrive/)
|
- OpenDrive [:page_facing_up:](https://rclone.org/opendrive/)
|
||||||
* OpenStack Swift [:page_facing_up:](https://rclone.org/swift/)
|
- OpenStack Swift [:page_facing_up:](https://rclone.org/swift/)
|
||||||
* Oracle Cloud Storage [:page_facing_up:](https://rclone.org/swift/)
|
- Oracle Cloud Storage [:page_facing_up:](https://rclone.org/swift/)
|
||||||
* Oracle Object Storage [:page_facing_up:](https://rclone.org/oracleobjectstorage/)
|
- Oracle Object Storage [:page_facing_up:](https://rclone.org/oracleobjectstorage/)
|
||||||
* Outscale [:page_facing_up:](https://rclone.org/s3/#outscale)
|
- Outscale [:page_facing_up:](https://rclone.org/s3/#outscale)
|
||||||
* OVHcloud Object Storage (Swift) [:page_facing_up:](https://rclone.org/swift/)
|
- OVHcloud Object Storage (Swift) [:page_facing_up:](https://rclone.org/swift/)
|
||||||
* OVHcloud Object Storage (S3-compatible) [:page_facing_up:](https://rclone.org/s3/#ovhcloud)
|
- OVHcloud Object Storage (S3-compatible) [:page_facing_up:](https://rclone.org/s3/#ovhcloud)
|
||||||
* ownCloud [:page_facing_up:](https://rclone.org/webdav/#owncloud)
|
- ownCloud [:page_facing_up:](https://rclone.org/webdav/#owncloud)
|
||||||
* pCloud [:page_facing_up:](https://rclone.org/pcloud/)
|
- pCloud [:page_facing_up:](https://rclone.org/pcloud/)
|
||||||
* Petabox [:page_facing_up:](https://rclone.org/s3/#petabox)
|
- Petabox [:page_facing_up:](https://rclone.org/s3/#petabox)
|
||||||
* PikPak [:page_facing_up:](https://rclone.org/pikpak/)
|
- PikPak [:page_facing_up:](https://rclone.org/pikpak/)
|
||||||
* Pixeldrain [:page_facing_up:](https://rclone.org/pixeldrain/)
|
- Pixeldrain [:page_facing_up:](https://rclone.org/pixeldrain/)
|
||||||
* premiumize.me [:page_facing_up:](https://rclone.org/premiumizeme/)
|
- premiumize.me [:page_facing_up:](https://rclone.org/premiumizeme/)
|
||||||
* put.io [:page_facing_up:](https://rclone.org/putio/)
|
- put.io [:page_facing_up:](https://rclone.org/putio/)
|
||||||
* Proton Drive [:page_facing_up:](https://rclone.org/protondrive/)
|
- Proton Drive [:page_facing_up:](https://rclone.org/protondrive/)
|
||||||
* QingStor [:page_facing_up:](https://rclone.org/qingstor/)
|
- QingStor [:page_facing_up:](https://rclone.org/qingstor/)
|
||||||
* Qiniu Cloud Object Storage (Kodo) [:page_facing_up:](https://rclone.org/s3/#qiniu)
|
- Qiniu Cloud Object Storage (Kodo) [:page_facing_up:](https://rclone.org/s3/#qiniu)
|
||||||
* Quatrix [:page_facing_up:](https://rclone.org/quatrix/)
|
- Quatrix [:page_facing_up:](https://rclone.org/quatrix/)
|
||||||
* Rackspace Cloud Files [:page_facing_up:](https://rclone.org/swift/)
|
- Rackspace Cloud Files [:page_facing_up:](https://rclone.org/swift/)
|
||||||
* RackCorp Object Storage [:page_facing_up:](https://rclone.org/s3/#RackCorp)
|
- RackCorp Object Storage [:page_facing_up:](https://rclone.org/s3/#RackCorp)
|
||||||
* rsync.net [:page_facing_up:](https://rclone.org/sftp/#rsync-net)
|
- rsync.net [:page_facing_up:](https://rclone.org/sftp/#rsync-net)
|
||||||
* Scaleway [:page_facing_up:](https://rclone.org/s3/#scaleway)
|
- Scaleway [:page_facing_up:](https://rclone.org/s3/#scaleway)
|
||||||
* Seafile [:page_facing_up:](https://rclone.org/seafile/)
|
- Seafile [:page_facing_up:](https://rclone.org/seafile/)
|
||||||
* Seagate Lyve Cloud [:page_facing_up:](https://rclone.org/s3/#lyve)
|
- Seagate Lyve Cloud [:page_facing_up:](https://rclone.org/s3/#lyve)
|
||||||
* SeaweedFS [:page_facing_up:](https://rclone.org/s3/#seaweedfs)
|
- SeaweedFS [:page_facing_up:](https://rclone.org/s3/#seaweedfs)
|
||||||
* Selectel Object Storage [:page_facing_up:](https://rclone.org/s3/#selectel)
|
- Selectel Object Storage [:page_facing_up:](https://rclone.org/s3/#selectel)
|
||||||
* SFTP [:page_facing_up:](https://rclone.org/sftp/)
|
- SFTP [:page_facing_up:](https://rclone.org/sftp/)
|
||||||
* SMB / CIFS [:page_facing_up:](https://rclone.org/smb/)
|
- SMB / CIFS [:page_facing_up:](https://rclone.org/smb/)
|
||||||
* StackPath [:page_facing_up:](https://rclone.org/s3/#stackpath)
|
- StackPath [:page_facing_up:](https://rclone.org/s3/#stackpath)
|
||||||
* Storj [:page_facing_up:](https://rclone.org/storj/)
|
- Storj [:page_facing_up:](https://rclone.org/storj/)
|
||||||
* SugarSync [:page_facing_up:](https://rclone.org/sugarsync/)
|
- SugarSync [:page_facing_up:](https://rclone.org/sugarsync/)
|
||||||
* Synology C2 Object Storage [:page_facing_up:](https://rclone.org/s3/#synology-c2)
|
- Synology C2 Object Storage [:page_facing_up:](https://rclone.org/s3/#synology-c2)
|
||||||
* Tencent Cloud Object Storage (COS) [:page_facing_up:](https://rclone.org/s3/#tencent-cos)
|
- Tencent Cloud Object Storage (COS) [:page_facing_up:](https://rclone.org/s3/#tencent-cos)
|
||||||
* Uloz.to [:page_facing_up:](https://rclone.org/ulozto/)
|
- Uloz.to [:page_facing_up:](https://rclone.org/ulozto/)
|
||||||
* Wasabi [:page_facing_up:](https://rclone.org/s3/#wasabi)
|
- Wasabi [:page_facing_up:](https://rclone.org/s3/#wasabi)
|
||||||
* WebDAV [:page_facing_up:](https://rclone.org/webdav/)
|
- WebDAV [:page_facing_up:](https://rclone.org/webdav/)
|
||||||
* Yandex Disk [:page_facing_up:](https://rclone.org/yandex/)
|
- Yandex Disk [:page_facing_up:](https://rclone.org/yandex/)
|
||||||
* Zoho WorkDrive [:page_facing_up:](https://rclone.org/zoho/)
|
- Zoho WorkDrive [:page_facing_up:](https://rclone.org/zoho/)
|
||||||
* Zata.ai [:page_facing_up:](https://rclone.org/s3/#Zata)
|
- Zata.ai [:page_facing_up:](https://rclone.org/s3/#Zata)
|
||||||
* The local filesystem [:page_facing_up:](https://rclone.org/local/)
|
- The local filesystem [:page_facing_up:](https://rclone.org/local/)
|
||||||
|
|
||||||
Please see [the full list of all storage providers and their features](https://rclone.org/overview/)
|
Please see [the full list of all storage providers and their features](https://rclone.org/overview/)
|
||||||
|
|
||||||
@@ -120,47 +120,47 @@ Please see [the full list of all storage providers and their features](https://r
|
|||||||
|
|
||||||
These backends adapt or modify other storage providers
|
These backends adapt or modify other storage providers
|
||||||
|
|
||||||
* Alias: rename existing remotes [:page_facing_up:](https://rclone.org/alias/)
|
- Alias: rename existing remotes [:page_facing_up:](https://rclone.org/alias/)
|
||||||
* Cache: cache remotes (DEPRECATED) [:page_facing_up:](https://rclone.org/cache/)
|
- Cache: cache remotes (DEPRECATED) [:page_facing_up:](https://rclone.org/cache/)
|
||||||
* Chunker: split large files [:page_facing_up:](https://rclone.org/chunker/)
|
- Chunker: split large files [:page_facing_up:](https://rclone.org/chunker/)
|
||||||
* Combine: combine multiple remotes into a directory tree [:page_facing_up:](https://rclone.org/combine/)
|
- Combine: combine multiple remotes into a directory tree [:page_facing_up:](https://rclone.org/combine/)
|
||||||
* Compress: compress files [:page_facing_up:](https://rclone.org/compress/)
|
- Compress: compress files [:page_facing_up:](https://rclone.org/compress/)
|
||||||
* Crypt: encrypt files [:page_facing_up:](https://rclone.org/crypt/)
|
- Crypt: encrypt files [:page_facing_up:](https://rclone.org/crypt/)
|
||||||
* Hasher: hash files [:page_facing_up:](https://rclone.org/hasher/)
|
- Hasher: hash files [:page_facing_up:](https://rclone.org/hasher/)
|
||||||
* Union: join multiple remotes to work together [:page_facing_up:](https://rclone.org/union/)
|
- Union: join multiple remotes to work together [:page_facing_up:](https://rclone.org/union/)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* MD5/SHA-1 hashes checked at all times for file integrity
|
- MD5/SHA-1 hashes checked at all times for file integrity
|
||||||
* Timestamps preserved on files
|
- Timestamps preserved on files
|
||||||
* Partial syncs supported on a whole file basis
|
- Partial syncs supported on a whole file basis
|
||||||
* [Copy](https://rclone.org/commands/rclone_copy/) mode to just copy new/changed files
|
- [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
|
- [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
|
- [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
|
- [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
|
- Can sync to and from network, e.g. two different cloud accounts
|
||||||
* Optional large file chunking ([Chunker](https://rclone.org/chunker/))
|
- Optional large file chunking ([Chunker](https://rclone.org/chunker/))
|
||||||
* Optional transparent compression ([Compress](https://rclone.org/compress/))
|
- Optional transparent compression ([Compress](https://rclone.org/compress/))
|
||||||
* Optional encryption ([Crypt](https://rclone.org/crypt/))
|
- Optional encryption ([Crypt](https://rclone.org/crypt/))
|
||||||
* Optional FUSE mount ([rclone mount](https://rclone.org/commands/rclone_mount/))
|
- Optional FUSE mount ([rclone mount](https://rclone.org/commands/rclone_mount/))
|
||||||
* Multi-threaded downloads to local disk
|
- 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
|
## Installation & documentation
|
||||||
|
|
||||||
Please see the [rclone website](https://rclone.org/) for:
|
Please see the [rclone website](https://rclone.org/) for:
|
||||||
|
|
||||||
* [Installation](https://rclone.org/install/)
|
- [Installation](https://rclone.org/install/)
|
||||||
* [Documentation & configuration](https://rclone.org/docs/)
|
- [Documentation & configuration](https://rclone.org/docs/)
|
||||||
* [Changelog](https://rclone.org/changelog/)
|
- [Changelog](https://rclone.org/changelog/)
|
||||||
* [FAQ](https://rclone.org/faq/)
|
- [FAQ](https://rclone.org/faq/)
|
||||||
* [Storage providers](https://rclone.org/overview/)
|
- [Storage providers](https://rclone.org/overview/)
|
||||||
* [Forum](https://forum.rclone.org/)
|
- [Forum](https://forum.rclone.org/)
|
||||||
* ...and more
|
- ...and more
|
||||||
|
|
||||||
## Downloads
|
## Downloads
|
||||||
|
|
||||||
* https://rclone.org/downloads/
|
- https://rclone.org/downloads/
|
||||||
|
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
|
106
RELEASE.md
106
RELEASE.md
@@ -4,47 +4,47 @@ This file describes how to make the various kinds of releases
|
|||||||
|
|
||||||
## Extra required software for making a release
|
## Extra required software for making a release
|
||||||
|
|
||||||
* [gh the github cli](https://github.com/cli/cli) for uploading packages
|
- [gh the github cli](https://github.com/cli/cli) for uploading packages
|
||||||
* pandoc for making the html and man pages
|
- pandoc for making the html and man pages
|
||||||
|
|
||||||
## Making a release
|
## Making a release
|
||||||
|
|
||||||
* git checkout master # see below for stable branch
|
- git checkout master # see below for stable branch
|
||||||
* git pull # IMPORTANT
|
- git pull # IMPORTANT
|
||||||
* git status - make sure everything is checked in
|
- git status - make sure everything is checked in
|
||||||
* Check GitHub actions build for master is Green
|
- Check GitHub actions build for master is Green
|
||||||
* make test # see integration test server or run locally
|
- make test # see integration test server or run locally
|
||||||
* make tag
|
- 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 tidy
|
||||||
* make doc
|
- make doc
|
||||||
* git status - to check for new man pages - git add them
|
- git status - to check for new man pages - git add them
|
||||||
* git commit -a -v -m "Version v1.XX.0"
|
- git commit -a -v -m "Version v1.XX.0"
|
||||||
* make retag
|
- make retag
|
||||||
* git push origin # without --follow-tags so it doesn't push the tag if it fails
|
- git push origin # without --follow-tags so it doesn't push the tag if it fails
|
||||||
* git push --follow-tags origin
|
- git push --follow-tags origin
|
||||||
* # Wait for the GitHub builds to complete then...
|
- # Wait for the GitHub builds to complete then...
|
||||||
* make fetch_binaries
|
- make fetch_binaries
|
||||||
* make tarball
|
- make tarball
|
||||||
* make vendorball
|
- make vendorball
|
||||||
* make sign_upload
|
- make sign_upload
|
||||||
* make check_sign
|
- make check_sign
|
||||||
* make upload
|
- make upload
|
||||||
* make upload_website
|
- make upload_website
|
||||||
* make upload_github
|
- make upload_github
|
||||||
* make startdev # make startstable for stable branch
|
- make startdev # make startstable for stable branch
|
||||||
* # announce with forum post, twitter post, patreon post
|
- # announce with forum post, twitter post, patreon post
|
||||||
|
|
||||||
## Update dependencies
|
## Update dependencies
|
||||||
|
|
||||||
Early in the next release cycle update the dependencies.
|
Early in the next release cycle update the dependencies.
|
||||||
|
|
||||||
* Review any pinned packages in go.mod and remove if possible
|
- Review any pinned packages in go.mod and remove if possible
|
||||||
* `make updatedirect`
|
- `make updatedirect`
|
||||||
* `make GOTAGS=cmount`
|
- `make GOTAGS=cmount`
|
||||||
* `make compiletest`
|
- `make compiletest`
|
||||||
* Fix anything which doesn't compile at this point and commit changes here
|
- Fix anything which doesn't compile at this point and commit changes here
|
||||||
* `git commit -a -v -m "build: update all dependencies"`
|
- `git commit -a -v -m "build: update all dependencies"`
|
||||||
|
|
||||||
If the `make updatedirect` upgrades the version of go in the `go.mod`
|
If the `make updatedirect` upgrades the version of go in the `go.mod`
|
||||||
|
|
||||||
@@ -77,12 +77,12 @@ Optionally upgrade the direct and indirect dependencies. This is very
|
|||||||
likely to fail if the manual method was used abve - in that case
|
likely to fail if the manual method was used abve - in that case
|
||||||
ignore it as it is too time consuming to fix.
|
ignore it as it is too time consuming to fix.
|
||||||
|
|
||||||
* `make update`
|
- `make update`
|
||||||
* `make GOTAGS=cmount`
|
- `make GOTAGS=cmount`
|
||||||
* `make compiletest`
|
- `make compiletest`
|
||||||
* roll back any updates which didn't compile
|
- roll back any updates which didn't compile
|
||||||
* `git commit -a -v --amend`
|
- `git commit -a -v --amend`
|
||||||
* **NB** watch out for this changing the default go version in `go.mod`
|
- **NB** watch out for this changing the default go version in `go.mod`
|
||||||
|
|
||||||
Note that `make update` updates all direct and indirect dependencies
|
Note that `make update` updates all direct and indirect dependencies
|
||||||
and there can occasionally be forwards compatibility problems with
|
and there can occasionally be forwards compatibility problems with
|
||||||
@@ -117,27 +117,27 @@ If rclone needs a point release due to some horrendous bug:
|
|||||||
|
|
||||||
Set vars
|
Set vars
|
||||||
|
|
||||||
* BASE_TAG=v1.XX # e.g. v1.52
|
- BASE_TAG=v1.XX # e.g. v1.52
|
||||||
* NEW_TAG=${BASE_TAG}.Y # e.g. v1.52.1
|
- NEW_TAG=${BASE_TAG}.Y # e.g. v1.52.1
|
||||||
* echo $BASE_TAG $NEW_TAG # v1.52 v1.52.1
|
- echo $BASE_TAG $NEW_TAG # v1.52 v1.52.1
|
||||||
|
|
||||||
First make the release branch. If this is a second point release then
|
First make the release branch. If this is a second point release then
|
||||||
this will be done already.
|
this will be done already.
|
||||||
|
|
||||||
* git co -b ${BASE_TAG}-stable ${BASE_TAG}.0
|
- git co -b ${BASE_TAG}-stable ${BASE_TAG}.0
|
||||||
* make startstable
|
- make startstable
|
||||||
|
|
||||||
Now
|
Now
|
||||||
|
|
||||||
* git co ${BASE_TAG}-stable
|
- git co ${BASE_TAG}-stable
|
||||||
* git cherry-pick any fixes
|
- git cherry-pick any fixes
|
||||||
* make startstable
|
- make startstable
|
||||||
* Do the steps as above
|
- Do the steps as above
|
||||||
* git co master
|
- 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 checkout ${BASE_TAG}-stable docs/content/changelog.md
|
||||||
* git commit -a -v -m "Changelog updates from Version ${NEW_TAG}"
|
- git commit -a -v -m "Changelog updates from Version ${NEW_TAG}"
|
||||||
* git push
|
- git push
|
||||||
|
|
||||||
## Sponsor logos
|
## Sponsor logos
|
||||||
|
|
||||||
|
@@ -57,11 +57,11 @@ def make_out(data, indent=""):
|
|||||||
return
|
return
|
||||||
del(data[category])
|
del(data[category])
|
||||||
if indent != "" and len(lines) == 1:
|
if indent != "" and len(lines) == 1:
|
||||||
out_lines.append(indent+"* " + title+": " + lines[0])
|
out_lines.append(indent+"- " + title+": " + lines[0])
|
||||||
return
|
return
|
||||||
out_lines.append(indent+"* " + title)
|
out_lines.append(indent+"- " + title)
|
||||||
for line in lines:
|
for line in lines:
|
||||||
out_lines.append(indent+" * " + line)
|
out_lines.append(indent+" - " + line)
|
||||||
return out, out_lines
|
return out, out_lines
|
||||||
|
|
||||||
|
|
||||||
@@ -129,12 +129,12 @@ def main():
|
|||||||
new_features[name].append(message)
|
new_features[name].append(message)
|
||||||
|
|
||||||
# Output new features
|
# Output new features
|
||||||
out, new_features_lines = make_out(new_features, indent=" ")
|
out, new_features_lines = make_out(new_features, indent=" ")
|
||||||
for name in sorted(new_features.keys()):
|
for name in sorted(new_features.keys()):
|
||||||
out(name)
|
out(name)
|
||||||
|
|
||||||
# Output bugfixes
|
# Output bugfixes
|
||||||
out, bugfix_lines = make_out(bugfixes, indent=" ")
|
out, bugfix_lines = make_out(bugfixes, indent=" ")
|
||||||
for name in sorted(bugfixes.keys()):
|
for name in sorted(bugfixes.keys()):
|
||||||
out(name)
|
out(name)
|
||||||
|
|
||||||
@@ -163,15 +163,15 @@ def main():
|
|||||||
|
|
||||||
[See commits](https://github.com/rclone/rclone/compare/%(version)s...%(next_version)s)
|
[See commits](https://github.com/rclone/rclone/compare/%(version)s...%(next_version)s)
|
||||||
|
|
||||||
* New backends
|
- New backends
|
||||||
* New commands
|
- New commands
|
||||||
* New Features
|
- New Features
|
||||||
%(new_features)s
|
%(new_features)s
|
||||||
* Bug Fixes
|
- Bug Fixes
|
||||||
%(bugfixes)s
|
%(bugfixes)s
|
||||||
%(backend_changes)s""" % locals())
|
%(backend_changes)s""" % locals())
|
||||||
sys.stdout.write(old_tail)
|
sys.stdout.write(old_tail)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
@@ -41,5 +41,5 @@ flag/option).
|
|||||||
|
|
||||||
Bugs are stored in rclone's GitHub project:
|
Bugs are stored in rclone's GitHub project:
|
||||||
|
|
||||||
* [Reported bugs](https://github.com/rclone/rclone/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
|
- [Reported bugs](https://github.com/rclone/rclone/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
|
||||||
* [Known issues](https://github.com/rclone/rclone/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Known+Problem%22)
|
- [Known issues](https://github.com/rclone/rclone/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Known+Problem%22)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -3227,9 +3227,9 @@ For non backend configuration the order is as follows:
|
|||||||
- `RCLONE_CONFIG_PASS` set to contain your config file password (see
|
- `RCLONE_CONFIG_PASS` set to contain your config file password (see
|
||||||
[Configuration Encryption](#configuration-encryption) section)
|
[Configuration Encryption](#configuration-encryption) section)
|
||||||
- `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` (or the lowercase versions thereof).
|
- `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` (or the lowercase versions thereof).
|
||||||
- `HTTPS_PROXY` takes precedence over `HTTP_PROXY` for https requests.
|
- `HTTPS_PROXY` takes precedence over `HTTP_PROXY` for https requests.
|
||||||
- The environment values may be either a complete URL or a "host[:port]"
|
- The environment values may be either a complete URL or a "host[:port]"
|
||||||
for, in which case the "http" scheme is assumed.
|
for, in which case the "http" scheme is assumed.
|
||||||
- `USER` and `LOGNAME` values are used as fallbacks for current username.
|
- `USER` and `LOGNAME` values are used as fallbacks for current username.
|
||||||
The primary method for looking up username is OS-specific: Windows API on
|
The primary method for looking up username is OS-specific: Windows API on
|
||||||
Windows, real user ID in /etc/passwd on Unix systems. In the documentation
|
Windows, real user ID in /etc/passwd on Unix systems. In the documentation
|
||||||
|
@@ -198,12 +198,12 @@ them into regular expressions.
|
|||||||
|
|
||||||
Rclone path/file name filters are made up of one or more of the following flags:
|
Rclone path/file name filters are made up of one or more of the following flags:
|
||||||
|
|
||||||
* `--include`
|
- `--include`
|
||||||
* `--include-from`
|
- `--include-from`
|
||||||
* `--exclude`
|
- `--exclude`
|
||||||
* `--exclude-from`
|
- `--exclude-from`
|
||||||
* `--filter`
|
- `--filter`
|
||||||
* `--filter-from`
|
- `--filter-from`
|
||||||
|
|
||||||
There can be more than one instance of individual flags.
|
There can be more than one instance of individual flags.
|
||||||
|
|
||||||
@@ -274,15 +274,15 @@ every path against the supplied regular expression(s).
|
|||||||
|
|
||||||
Directory recursion optimisation occurs if either:
|
Directory recursion optimisation occurs if either:
|
||||||
|
|
||||||
* A source remote does not support the rclone `ListR` primitive. local,
|
- A source remote does not support the rclone `ListR` primitive. local,
|
||||||
sftp, Microsoft OneDrive and WebDAV do not support `ListR`. Google
|
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)
|
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
|
- 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
|
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.
|
`size` are naturally recursive but `sync`, `copy` and `move` are not.
|
||||||
|
|
||||||
* Whenever the `--disable ListR` flag is applied to an rclone command.
|
- Whenever the `--disable ListR` flag is applied to an rclone command.
|
||||||
|
|
||||||
Rclone commands imply directory filter rules from path/file filter
|
Rclone commands imply directory filter rules from path/file filter
|
||||||
rules. To view the directory filter rules rclone has implied for a
|
rules. To view the directory filter rules rclone has implied for a
|
||||||
@@ -660,9 +660,9 @@ not as work as expected in your shell and may require quoting.
|
|||||||
|
|
||||||
E.g. linux, OSX (`*` metacharacter)
|
E.g. linux, OSX (`*` metacharacter)
|
||||||
|
|
||||||
* `--include \*.jpg`
|
- `--include \*.jpg`
|
||||||
* `--include '*.jpg'`
|
- `--include '*.jpg'`
|
||||||
* `--include='*.jpg'`
|
- `--include='*.jpg'`
|
||||||
|
|
||||||
Microsoft Windows expansion is done by the command, not shell, so
|
Microsoft Windows expansion is done by the command, not shell, so
|
||||||
`--include *.jpg` does not require quoting.
|
`--include *.jpg` does not require quoting.
|
||||||
@@ -895,6 +895,6 @@ file name patterns have metadata patterns.
|
|||||||
The most frequent filter support issues on
|
The most frequent filter support issues on
|
||||||
the [rclone forum](https://forum.rclone.org/) are:
|
the [rclone forum](https://forum.rclone.org/) are:
|
||||||
|
|
||||||
* Not using paths relative to the root of the remote
|
- Not using paths relative to the root of the remote
|
||||||
* Not using `/` to match from the root of a remote
|
- Not using `/` to match from the root of a remote
|
||||||
* Not using `**` to match the contents of a directory
|
- Not using `**` to match the contents of a directory
|
||||||
|
@@ -9,10 +9,10 @@ Rclone is a Go program and comes as a single binary file.
|
|||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
|
|
||||||
* [Download](/downloads/) the relevant binary.
|
- [Download](/downloads/) the relevant binary.
|
||||||
* Extract the `rclone` executable, `rclone.exe` on Windows, from the archive.
|
- Extract the `rclone` executable, `rclone.exe` on Windows, from the archive.
|
||||||
* Run `rclone config` to setup. See [rclone config docs](/docs/) for more details.
|
- Run `rclone config` to setup. See [rclone config docs](/docs/) for more details.
|
||||||
* Optionally configure [automatic execution](#autostart).
|
- Optionally configure [automatic execution](#autostart).
|
||||||
|
|
||||||
See below for some expanded Linux / macOS / Windows instructions.
|
See below for some expanded Linux / macOS / Windows instructions.
|
||||||
|
|
||||||
@@ -270,9 +270,9 @@ from the rclone image.
|
|||||||
- If you want to access the RC interface (either via the API or the Web UI), it is
|
- 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
|
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 is present [here](https://web.archive.org/web/20200808071950/https://pythonspeed.com/articles/docker-connection-refused/).
|
the container. An explanation about why this is necessary is present [here](https://web.archive.org/web/20200808071950/https://pythonspeed.com/articles/docker-connection-refused/).
|
||||||
* NOTE: Users running this container with the docker network set to `host` should
|
- 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
|
probably set it to listen to localhost only, with `127.0.0.1:5572` as the value for
|
||||||
`--rc-addr`
|
`--rc-addr`
|
||||||
|
|
||||||
- It is possible to use `rclone mount` inside a userspace Docker container, and expose
|
- 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
|
the resulting fuse mount to the host. The exact `docker run` options to do that might
|
||||||
@@ -329,7 +329,7 @@ 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:
|
- Default config directory:
|
||||||
- /home/$USER/snap/rclone/current/.config/rclone
|
- /home/$USER/snap/rclone/current/.config/rclone
|
||||||
|
|
||||||
Note: Due to the strict confinement of Snap, `rclone mount` feature is `not` supported.
|
Note: Due to the strict confinement of Snap, `rclone mount` feature is `not` supported.
|
||||||
|
|
||||||
@@ -495,9 +495,9 @@ the locations that rclone will use.
|
|||||||
To override them set the corresponding options (as command-line arguments, or as
|
To override them set the corresponding options (as command-line arguments, or as
|
||||||
[environment variables](https://rclone.org/docs/#environment-variables)):
|
[environment variables](https://rclone.org/docs/#environment-variables)):
|
||||||
|
|
||||||
- [--config](https://rclone.org/docs/#config-string)
|
- [--config](https://rclone.org/docs/#config-string)
|
||||||
- [--cache-dir](https://rclone.org/docs/#cache-dir-string)
|
- [--cache-dir](https://rclone.org/docs/#cache-dir-string)
|
||||||
- [--temp-dir](https://rclone.org/docs/#temp-dir-string)
|
- [--temp-dir](https://rclone.org/docs/#temp-dir-string)
|
||||||
|
|
||||||
## Autostart
|
## Autostart
|
||||||
|
|
||||||
|
@@ -178,9 +178,9 @@ matter how many times you run the sync it never completes fully.
|
|||||||
The local filesystem and SFTP may or may not be case sensitive
|
The local filesystem and SFTP may or may not be case sensitive
|
||||||
depending on OS.
|
depending on OS.
|
||||||
|
|
||||||
* Windows - usually case insensitive, though case is preserved
|
- Windows - usually case insensitive, though case is preserved
|
||||||
* OSX - usually case insensitive, though it is possible to format case sensitive
|
- 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
|
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
|
avoid files whose name differs only by case even on case sensitive
|
||||||
|
@@ -57,17 +57,17 @@ This website may use social sharing buttons which help share web content directl
|
|||||||
|
|
||||||
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 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 allows storing the authentication credentials on the user machine in the local configuration file.
|
||||||
* Rclone does not share any user data with third parties.
|
- Rclone does not share any user data with third parties.
|
||||||
|
|
||||||
## Resources & Further Information ##
|
## Resources & Further Information ##
|
||||||
|
|
||||||
* [Data Protection Act 1998](http://www.legislation.gov.uk/ukpga/1998/29/contents)
|
- [Data Protection Act 1998](http://www.legislation.gov.uk/ukpga/1998/29/contents)
|
||||||
* [Privacy and Electronic Communications Regulations 2003](http://www.legislation.gov.uk/uksi/2003/2426/contents/made)
|
- [Privacy and Electronic Communications Regulations 2003](http://www.legislation.gov.uk/uksi/2003/2426/contents/made)
|
||||||
* [Privacy and Electronic Communications Regulations 2003 - The Guide](https://ico.org.uk/for-organisations/guide-to-pecr/)
|
- [Privacy and Electronic Communications Regulations 2003 - The Guide](https://ico.org.uk/for-organisations/guide-to-pecr/)
|
||||||
* [Twitter Privacy Policy](https://twitter.com/privacy)
|
- [Twitter Privacy Policy](https://twitter.com/privacy)
|
||||||
* [Facebook Privacy Policy](https://www.facebook.com/about/privacy/)
|
- [Facebook Privacy Policy](https://www.facebook.com/about/privacy/)
|
||||||
* [Google Privacy Policy](https://www.google.com/privacy.html)
|
- [Google Privacy Policy](https://www.google.com/privacy.html)
|
||||||
* [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy)
|
- [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy)
|
||||||
* [Sample Website Privacy Policy](http://www.jamieking.co.uk/resources/free_sample_privacy_policy.html)
|
- [Sample Website Privacy Policy](http://www.jamieking.co.uk/resources/free_sample_privacy_policy.html)
|
||||||
|
@@ -2537,11 +2537,11 @@ Here is how to use some of them:
|
|||||||
- 30-second CPU profile: `go tool pprof http://localhost:5572/debug/pprof/profile`
|
- 30-second CPU profile: `go tool pprof http://localhost:5572/debug/pprof/profile`
|
||||||
- 5-second execution trace: `wget http://localhost:5572/debug/pprof/trace?seconds=5`
|
- 5-second execution trace: `wget http://localhost:5572/debug/pprof/trace?seconds=5`
|
||||||
- Goroutine blocking profile
|
- Goroutine blocking profile
|
||||||
- Enable first with: `rclone rc debug/set-block-profile-rate rate=1` ([docs](#debug-set-block-profile-rate))
|
- Enable first with: `rclone rc debug/set-block-profile-rate rate=1` ([docs](#debug-set-block-profile-rate))
|
||||||
- `go tool pprof http://localhost:5572/debug/pprof/block`
|
- `go tool pprof http://localhost:5572/debug/pprof/block`
|
||||||
- Contended mutexes:
|
- Contended mutexes:
|
||||||
- Enable first with: `rclone rc debug/set-mutex-profile-fraction rate=1` ([docs](#debug-set-mutex-profile-fraction))
|
- Enable first with: `rclone rc debug/set-mutex-profile-fraction rate=1` ([docs](#debug-set-mutex-profile-fraction))
|
||||||
- `go tool pprof http://localhost:5572/debug/pprof/mutex`
|
- `go tool pprof http://localhost:5572/debug/pprof/mutex`
|
||||||
|
|
||||||
See the [net/http/pprof docs](https://golang.org/pkg/net/http/pprof/)
|
See the [net/http/pprof docs](https://golang.org/pkg/net/http/pprof/)
|
||||||
for more info on how to use the profiling and for a general overview
|
for more info on how to use the profiling and for a general overview
|
||||||
|
Reference in New Issue
Block a user