1
0
mirror of https://github.com/rclone/rclone.git synced 2026-01-24 21:33:17 +00:00

Compare commits

..

11 Commits

Author SHA1 Message Date
Nick Craig-Wood
45032a2122 build: fix homebrew build failures
See: https://github.com/orgs/Homebrew/discussions/4612#discussioncomment-6351357
2023-07-05 16:45:29 +01:00
Nick Craig-Wood
41296a972a docs: update contact page on website 2023-07-05 12:19:04 +01:00
Nick Craig-Wood
22a14a8c98 operations: fix deadlock when using lsd/ls with --progress - Fixes #7102
The --progress flag overrides operations.SyncPrintf in order to do its
magic on stdout without interfering with other output.

Before this change the syncFprintf routine in operations (which is
used to print all output to stdout) was taking the
operations.StdoutMutex and the printProgress function in the
--progress routine was also attempting to take the same mutex causing
a deadlock.

This patch fixes the problem by moving the locking from the
syncFprintf function to SyncPrintf. It is then up to the function
overriding this to lock the StdoutMutex. This ensures the StdoutMutex
can never cause a deadlock.
2023-07-03 15:07:00 +01:00
Nick Craig-Wood
07133b892d dirtree: fix performance with large directories of directories and --fast-list
Before this change if using --fast-list on a directory with more than
a few thousand directories in it DirTree.CheckParents became very slow
taking up to 24 hours for a directory with 1,000,000 directories in
it.

This is because it becomes an O(N²) operation as DirTree.Find has to
search each directory in a linear fashion as it is stored as a slice.

This patch fixes the problem by scanning the DirTree for directories
before starting the CheckParents process so it never has to call
DirTree.Find.

After the fix calling DirTree.CheckParents on a directory with
1,000,000 directories in it will take about 1 second.

Anything which calls DirTree.Find can potentially have bad performance
so in the future we should redesign the DirTree to use a different
underlying datastructure or have an index.

https://forum.rclone.org/t/almost-24-hours-cpu-compute-time-during-sync-between-two-large-s3-buckets/39375/
2023-07-03 14:09:21 +01:00
Nick Craig-Wood
a8ca18165e Add Fjodor42 to contributors 2023-07-03 14:09:21 +01:00
Nick Craig-Wood
8c4e71fc84 Add Dean Attali to contributors 2023-07-03 14:09:21 +01:00
Nick Craig-Wood
351e2db2ef Add Sawada Tsunayoshi to contributors 2023-07-03 14:09:21 +01:00
Fjodor42
2234feb23d jottacloud: add Onlime provider 2023-07-02 11:16:07 +01:00
Anagh Kumar Baranwal
fb5125ecee build: fix macos builds for versions < 12
Signed-off-by: Anagh Kumar Baranwal <6824881+darthShadow@users.noreply.github.com>
2023-07-01 18:03:50 +01:00
Dean Attali
e8cbc54a06 docs: dropbox get client id, clarify you need to click a button 2023-07-01 17:50:40 +01:00
Nick Craig-Wood
00512e1303 Start v1.64.0-DEV development 2023-06-30 15:39:03 +01:00
25 changed files with 338 additions and 577 deletions

View File

@@ -130,8 +130,12 @@ jobs:
- name: Install Libraries on macOS
shell: bash
run: |
brew untap homebrew/core homebrew/cask
brew config
brew update
brew install --cask macfuse
env:
HOMEBREW_NO_INSTALL_FROM_API: # No value, so brew doesn't rely on homebrew-core / homebrew-cask
if: matrix.os == 'macos-11'
- name: Install Libraries on Windows

348
MANUAL.html generated

File diff suppressed because it is too large Load Diff

104
MANUAL.md generated
View File

@@ -1,6 +1,6 @@
% rclone(1) User Manual
% Nick Craig-Wood
% Jul 17, 2023
% Jun 30, 2023
# Rclone syncs your files to cloud storage
@@ -18,7 +18,7 @@
Rclone is a command-line program to manage files on cloud storage. It
is a feature-rich alternative to cloud vendors' web storage
interfaces. [Over 70 cloud storage products](#providers) support
interfaces. [Over 40 cloud storage products](#providers) support
rclone including S3 object stores, business & consumer file storage
services, as well as standard transfer protocols.
@@ -2723,40 +2723,6 @@ See the [global flags page](https://rclone.org/flags/) for global options not li
* [rclone config](https://rclone.org/commands/rclone_config/) - Enter an interactive configuration session.
# rclone config redacted
Print redacted (decrypted) config file, or the redacted config for a single remote.
# Synopsis
This prints a redacted copy of the config file, either the
whole config file or for a given remote.
The config file will be redacted by replacing all passwords and other
sensitive info with XXX.
This makes the config file suitable for posting online for support.
It should be double checked before posting as the redaction may not be perfect.
```
rclone config redacted [<remote>] [flags]
```
# Options
```
-h, --help help for redacted
```
See the [global flags page](https://rclone.org/flags/) for global options not listed here.
# SEE ALSO
* [rclone config](https://rclone.org/commands/rclone_config/) - Enter an interactive configuration session.
# rclone config show
Print (decrypted) config file, or the config for a single remote.
@@ -11886,7 +11852,7 @@ all files on `remote:` excluding those in root directory `dir` and sub
directories.
E.g. on Microsoft Windows `rclone ls remote: --exclude "*\[{JP,KR,HK}\]*"`
lists the files in `remote:` without `[JP]` or `[KR]` or `[HK]` in
lists the files in `remote:` with `[JP]` or `[KR]` or `[HK]` in
their name. Quotes prevent the shell from interpreting the `\`
characters.`\` characters escape the `[` and `]` so an rclone filter
treats them literally rather than as a character-range. The `{` and `}`
@@ -15228,7 +15194,7 @@ These flags are available for every command.
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default "rclone/v1.63.1")
--user-agent string Set the user-agent to a specified string (default "rclone/v1.63.0")
-v, --verbose count Print lots more stuff (repeat for more)
```
@@ -27924,7 +27890,7 @@ to be the same account as the Dropbox you want to access)
6. Switch to the `Permissions` tab. Enable at least the following permissions: `account_info.read`, `files.metadata.write`, `files.content.write`, `files.content.read`, `sharing.write`. The `files.metadata.read` and `sharing.read` checkboxes will be marked too. Click `Submit`
7. Switch to the `Settings` tab. Fill `OAuth2 - Redirect URIs` as `http://localhost:53682/` and click on `Add`
7. Switch to the `Settings` tab. Fill `OAuth2 - Redirect URIs` as `http://localhost:53682/`
8. Find the `App key` and `App secret` values on the `Settings` tab. Use these values in rclone config to add a new remote or edit an existing remote. The `App key` setting corresponds to `client_id` in rclone config, the `App secret` corresponds to `client_secret`
@@ -30908,7 +30874,7 @@ be the same account as the Google Drive you want to access)
"Google Drive API".
4. Click "Credentials" in the left-side panel (not "Create
credentials", which opens the wizard).
credentials", which opens the wizard), then "Create credentials"
5. If you already configured an "Oauth Consent Screen", then skip
to the next step; if not, click on "CONFIGURE CONSENT SCREEN" button
@@ -33730,6 +33696,8 @@ y/e/d> y
[Mail.ru Cloud](https://cloud.mail.ru/) is a cloud storage provided by a Russian internet company [Mail.Ru Group](https://mail.ru). The official desktop client is [Disk-O:](https://disk-o.cloud/en), available on Windows and Mac OS.
Currently it is recommended to disable 2FA on Mail.ru accounts intended for rclone until it gets eventually implemented.
## Features highlights
- Paths may be as deep as required, e.g. `remote:directory/subdirectory`
@@ -43602,27 +43570,6 @@ Options:
# Changelog
## v1.63.1 - 2023-07-17
[See commits](https://github.com/rclone/rclone/compare/v1.63.0...v1.63.1)
* Bug Fixes
* build: Fix macos builds for versions < 12 (Anagh Kumar Baranwal)
* dirtree: Fix performance with large directories of directories and `--fast-list` (Nick Craig-Wood)
* operations
* Fix deadlock when using `lsd`/`ls` with `--progress` (Nick Craig-Wood)
* Fix `.rclonelink` files not being converted back to symlinks (Nick Craig-Wood)
* doc fixes (Dean Attali, Mahad, Nick Craig-Wood, Sawada Tsunayoshi, Vladislav Vorobev)
* Local
* Fix partial directory read for corrupted filesystem (Nick Craig-Wood)
* Box
* Fix reconnect failing with HTTP 400 Bad Request (albertony)
* Smb
* Fix "Statfs failed: bucket or container name is needed" when mounting (Nick Craig-Wood)
* WebDAV
* Nextcloud: fix must use /dav/files/USER endpoint not /webdav error (Paul)
* Nextcloud chunking: add more guidance for the user to check the config (darix)
## v1.63.0 - 2023-06-30
[See commits](https://github.com/rclone/rclone/compare/v1.62.0...v1.63.0)
@@ -49286,43 +49233,32 @@ put them back in again.` >}}
* zzq <i@zhangzqs.cn>
* mac-15 <usman.ilamdin@phpstudios.com>
# Contact the rclone project
# Contact the rclone project #
## Forum
## Forum ##
Forum for questions and general discussion:
- https://forum.rclone.org
* https://forum.rclone.org
## Business support
For business support or sponsorship enquiries please see:
- https://rclone.com/
- sponsorship@rclone.com
## GitHub repository
## GitHub repository ##
The project's repository is located at:
- https://github.com/rclone/rclone
* https://github.com/rclone/rclone
There you can file bug reports or contribute with pull requests.
## Twitter
## Twitter ##
You can also follow Nick on twitter for rclone announcements:
You can also follow me on twitter for rclone announcements:
- [@njcw](https://twitter.com/njcw)
* [@njcw](https://twitter.com/njcw)
## Email
## Email ##
Or if all else fails or you want to ask something private or
confidential
- info@rclone.com
Please don't email requests for help to this address - those are
better directed to the forum unless you'd like to sign up for business
support.
confidential email [Nick Craig-Wood](mailto:nick@craig-wood.com).
Please don't email me requests for help - those are better directed to
the forum. Thanks!

91
MANUAL.txt generated
View File

@@ -1,6 +1,6 @@
rclone(1) User Manual
Nick Craig-Wood
Jul 17, 2023
Jun 30, 2023
Rclone syncs your files to cloud storage
@@ -16,7 +16,7 @@ About rclone
Rclone is a command-line program to manage files on cloud storage. It is
a feature-rich alternative to cloud vendors' web storage interfaces.
Over 70 cloud storage products support rclone including S3 object
Over 40 cloud storage products support rclone including S3 object
stores, business & consumer file storage services, as well as standard
transfer protocols.
@@ -2481,36 +2481,6 @@ SEE ALSO
- rclone config - Enter an interactive configuration session.
rclone config redacted
Print redacted (decrypted) config file, or the redacted config for a
single remote.
Synopsis
This prints a redacted copy of the config file, either the whole config
file or for a given remote.
The config file will be redacted by replacing all passwords and other
sensitive info with XXX.
This makes the config file suitable for posting online for support.
It should be double checked before posting as the redaction may not be
perfect.
rclone config redacted [<remote>] [flags]
Options
-h, --help help for redacted
See the global flags page for global options not listed here.
SEE ALSO
- rclone config - Enter an interactive configuration session.
rclone config show
Print (decrypted) config file, or the config for a single remote.
@@ -11425,7 +11395,7 @@ all files on remote: excluding those in root directory dir and sub
directories.
E.g. on Microsoft Windows rclone ls remote: --exclude "*\[{JP,KR,HK}\]*"
lists the files in remote: without [JP] or [KR] or [HK] in their name.
lists the files in remote: with [JP] or [KR] or [HK] in their name.
Quotes prevent the shell from interpreting the \ characters.\ characters
escape the [ and ] so an rclone filter treats them literally rather than
as a character-range. The { and } define an rclone pattern list. For
@@ -14768,7 +14738,7 @@ These flags are available for every command.
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default "rclone/v1.63.1")
--user-agent string Set the user-agent to a specified string (default "rclone/v1.63.0")
-v, --verbose count Print lots more stuff (repeat for more)
Backend Flags
@@ -27270,7 +27240,7 @@ Here is how to create your own Dropbox App ID for rclone:
Click Submit
7. Switch to the Settings tab. Fill OAuth2 - Redirect URIs as
http://localhost:53682/ and click on Add
http://localhost:53682/
8. Find the App key and App secret values on the Settings tab. Use
these values in rclone config to add a new remote or edit an
@@ -30268,7 +30238,7 @@ Here is how to create your own Google Drive client ID for rclone:
"Google Drive API".
4. Click "Credentials" in the left-side panel (not "Create
credentials", which opens the wizard).
credentials", which opens the wizard), then "Create credentials"
5. If you already configured an "Oauth Consent Screen", then skip to
the next step; if not, click on "CONFIGURE CONSENT SCREEN" button
@@ -33131,6 +33101,9 @@ Mail.ru Cloud is a cloud storage provided by a Russian internet company
Mail.Ru Group. The official desktop client is Disk-O:, available on
Windows and Mac OS.
Currently it is recommended to disable 2FA on Mail.ru accounts intended
for rclone until it gets eventually implemented.
Features highlights
- Paths may be as deep as required, e.g. remote:directory/subdirectory
@@ -43095,35 +43068,6 @@ Options:
Changelog
v1.63.1 - 2023-07-17
See commits
- Bug Fixes
- build: Fix macos builds for versions < 12 (Anagh Kumar Baranwal)
- dirtree: Fix performance with large directories of directories
and --fast-list (Nick Craig-Wood)
- operations
- Fix deadlock when using lsd/ls with --progress (Nick
Craig-Wood)
- Fix .rclonelink files not being converted back to symlinks
(Nick Craig-Wood)
- doc fixes (Dean Attali, Mahad, Nick Craig-Wood, Sawada
Tsunayoshi, Vladislav Vorobev)
- Local
- Fix partial directory read for corrupted filesystem (Nick
Craig-Wood)
- Box
- Fix reconnect failing with HTTP 400 Bad Request (albertony)
- Smb
- Fix "Statfs failed: bucket or container name is needed" when
mounting (Nick Craig-Wood)
- WebDAV
- Nextcloud: fix must use /dav/files/USER endpoint not /webdav
error (Paul)
- Nextcloud chunking: add more guidance for the user to check the
config (darix)
v1.63.0 - 2023-06-30
See commits
@@ -50216,13 +50160,6 @@ Forum for questions and general discussion:
- https://forum.rclone.org
Business support
For business support or sponsorship enquiries please see:
- https://rclone.com/
- sponsorship@rclone.com
GitHub repository
The project's repository is located at:
@@ -50233,16 +50170,12 @@ There you can file bug reports or contribute with pull requests.
Twitter
You can also follow Nick on twitter for rclone announcements:
You can also follow me on twitter for rclone announcements:
- [@njcw](https://twitter.com/njcw)
Email
Or if all else fails or you want to ask something private or
confidential
- info@rclone.com
Please don't email requests for help to this address - those are better
directed to the forum unless you'd like to sign up for business support.
confidential email Nick Craig-Wood. Please don't email me requests for
help - those are better directed to the forum. Thanks!

View File

@@ -1 +1 @@
v1.63.1
v1.64.0

View File

@@ -77,7 +77,7 @@ var (
)
type boxCustomClaims struct {
jwt.StandardClaims
jwt.RegisteredClaims
BoxSubType string `json:"box_sub_type,omitempty"`
}
@@ -206,14 +206,12 @@ func getClaims(boxConfig *api.ConfigJSON, boxSubType string) (claims *boxCustomC
}
claims = &boxCustomClaims{
//lint:ignore SA1019 since we need to use jwt.StandardClaims even if deprecated in jwt-go v4 until a more permanent solution is ready in time before jwt-go v5 where it is removed entirely
//nolint:staticcheck // Don't include staticcheck when running golangci-lint to avoid SA1019
StandardClaims: jwt.StandardClaims{
Id: val,
RegisteredClaims: jwt.RegisteredClaims{
ID: val,
Issuer: boxConfig.BoxAppSettings.ClientID,
Subject: boxConfig.EnterpriseID,
Audience: tokenURL,
ExpiresAt: time.Now().Add(time.Second * 45).Unix(),
Audience: jwt.ClaimStrings{tokenURL},
ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Second * 45)),
},
BoxSubType: boxSubType,
}

View File

@@ -74,6 +74,10 @@ const (
tele2CloudTokenURL = "https://mittcloud-auth.tele2.se/auth/realms/comhem/protocol/openid-connect/token"
tele2CloudAuthURL = "https://mittcloud-auth.tele2.se/auth/realms/comhem/protocol/openid-connect/auth"
tele2CloudClientID = "desktop"
onlimeCloudTokenURL = "https://cloud-auth.onlime.dk/auth/realms/onlime_wl/protocol/openid-connect/token"
onlimeCloudAuthURL = "https://cloud-auth.onlime.dk/auth/realms/onlime_wl/protocol/openid-connect/auth"
onlimeCloudClientID = "desktop"
)
// Register with Fs
@@ -139,6 +143,9 @@ func Config(ctx context.Context, name string, m configmap.Mapper, config fs.Conf
}, {
Value: "tele2",
Help: "Tele2 Cloud authentication.\nUse this if you are using Tele2 Cloud.",
}, {
Value: "onlime",
Help: "Onlime Cloud authentication.\nUse this if you are using Onlime Cloud.",
}})
case "auth_type_done":
// Jump to next state according to config chosen
@@ -261,6 +268,21 @@ machines.`)
RedirectURL: oauthutil.RedirectLocalhostURL,
},
})
case "onlime": // onlime cloud config
m.Set("configVersion", fmt.Sprint(configVersion))
m.Set(configClientID, onlimeCloudClientID)
m.Set(configTokenURL, onlimeCloudTokenURL)
return oauthutil.ConfigOut("choose_device", &oauthutil.Options{
OAuth2Config: &oauth2.Config{
Endpoint: oauth2.Endpoint{
AuthURL: onlimeCloudAuthURL,
TokenURL: onlimeCloudTokenURL,
},
ClientID: onlimeCloudClientID,
Scopes: []string{"openid", "jotta-default", "offline_access"},
RedirectURL: oauthutil.RedirectLocalhostURL,
},
})
case "choose_device":
return fs.ConfigConfirm("choose_device_query", false, "config_non_standard", `Use a non-standard device/mountpoint?
Choosing no, the default, will let you access the storage used for the archive

View File

@@ -516,7 +516,7 @@ func (f *Fs) List(ctx context.Context, dir string) (entries fs.DirEntries, err e
continue
}
}
fierr = fmt.Errorf("failed to get info about directory entry %q: %w", namepath, fierr)
err = fmt.Errorf("failed to read directory %q: %w", namepath, fierr)
fs.Errorf(dir, "%v", fierr)
_ = accounting.Stats(ctx).Error(fserrors.NoRetryError(fierr)) // fail the sync
continue

View File

@@ -19,7 +19,6 @@ import (
"github.com/rclone/rclone/fs/filter"
"github.com/rclone/rclone/fs/hash"
"github.com/rclone/rclone/fs/object"
"github.com/rclone/rclone/fs/operations"
"github.com/rclone/rclone/fstest"
"github.com/rclone/rclone/lib/file"
"github.com/rclone/rclone/lib/readers"
@@ -515,43 +514,3 @@ func TestFilterSymlinkCopyLinks(t *testing.T) {
func TestFilterSymlinkLinks(t *testing.T) {
testFilterSymlink(t, false)
}
func TestCopySymlink(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
defer r.Finalise()
when := time.Now()
f := r.Flocal.(*Fs)
// Create a file and a symlink to it
r.WriteFile("src/file.txt", "hello world", when)
require.NoError(t, os.Symlink("file.txt", filepath.Join(r.LocalName, "src", "link.txt")))
defer func() {
// Reset -L/-l mode
f.opt.FollowSymlinks = false
f.opt.TranslateSymlinks = false
f.lstat = os.Lstat
}()
// Set fs into "-l/--links" mode
f.opt.FollowSymlinks = false
f.opt.TranslateSymlinks = true
f.lstat = os.Lstat
// Create dst
require.NoError(t, f.Mkdir(ctx, "dst"))
// Do copy from src into dst
src, err := f.NewObject(ctx, "src/link.txt.rclonelink")
require.NoError(t, err)
require.NotNil(t, src)
dst, err := operations.Copy(ctx, f, nil, "dst/link.txt.rclonelink", src)
require.NoError(t, err)
require.NotNil(t, dst)
// Test that we made a symlink and it has the right contents
dstPath := filepath.Join(r.LocalName, "dst", "link.txt")
linkContents, err := os.Readlink(dstPath)
require.NoError(t, err)
assert.Equal(t, "file.txt", linkContents)
}

View File

@@ -447,8 +447,7 @@ func (f *Fs) List(ctx context.Context, dir string) (entries fs.DirEntries, err e
func (f *Fs) About(ctx context.Context) (_ *fs.Usage, err error) {
share, dir := f.split("/")
if share == "" {
// Just return empty info rather than an error if called on the root
return &fs.Usage{}, nil
return nil, fs.ErrorListBucketRequired
}
dir = f.toSambaPath(dir)

View File

@@ -14,6 +14,7 @@ import (
"io"
"net/http"
"path"
"strings"
"github.com/rclone/rclone/fs"
"github.com/rclone/rclone/lib/readers"
@@ -40,6 +41,10 @@ func (f *Fs) setUploadChunkSize(cs fs.SizeSuffix) (old fs.SizeSuffix, err error)
return
}
func (f *Fs) getChunksUploadURL() string {
return strings.Replace(f.endpointURL, "/dav/files/", "/dav/uploads/", 1)
}
func (o *Object) getChunksUploadDir() (string, error) {
hasher := md5.New()
_, err := hasher.Write([]byte(o.filePath()))
@@ -50,16 +55,12 @@ func (o *Object) getChunksUploadDir() (string, error) {
return uploadDir, nil
}
func (f *Fs) getChunksUploadURL() (string, error) {
submatch := nextCloudURLRegex.FindStringSubmatch(f.endpointURL)
if submatch == nil {
return "", errors.New("the remote url looks incorrect. Note that nextcloud chunked uploads require you to use the /dav/files/USER endpoint instead of /webdav. Please check 'rclone config show remotename' to verify that the url field ends in /dav/files/USERNAME")
func (f *Fs) verifyChunkConfig() error {
if f.opt.ChunkSize != 0 && !validateNextCloudChunkedURL.MatchString(f.endpointURL) {
return errors.New("chunked upload with nextcloud must use /dav/files/USER endpoint not /webdav")
}
baseURL, user := submatch[1], submatch[2]
chunksUploadURL := fmt.Sprintf("%s/dav/uploads/%s/", baseURL, user)
return chunksUploadURL, nil
return nil
}
func (o *Object) shouldUseChunkedUpload(src fs.ObjectInfo) bool {

View File

@@ -569,8 +569,7 @@ func (f *Fs) fetchAndSetBearerToken() error {
return nil
}
// The WebDAV url can optionally be suffixed with a path. This suffix needs to be ignored for determining the temporary upload directory of chunks.
var nextCloudURLRegex = regexp.MustCompile(`^(.*)/dav/files/([^/]+)`)
var validateNextCloudChunkedURL = regexp.MustCompile(`^.*/dav/files/[^/]+/?$`)
// setQuirks adjusts the Fs for the vendor passed in
func (f *Fs) setQuirks(ctx context.Context, vendor string) error {
@@ -593,18 +592,11 @@ func (f *Fs) setQuirks(ctx context.Context, vendor string) error {
f.propsetMtime = true
f.hasOCSHA1 = true
f.canChunk = true
if f.opt.ChunkSize == 0 {
fs.Logf(nil, "Chunked uploads are disabled because nextcloud_chunk_size is set to 0")
} else {
chunksUploadURL, err := f.getChunksUploadURL()
if err != nil {
return err
}
f.chunksUploadURL = chunksUploadURL
fs.Logf(nil, "Chunks temporary upload directory: %s", f.chunksUploadURL)
if err := f.verifyChunkConfig(); err != nil {
return err
}
f.chunksUploadURL = f.getChunksUploadURL()
fs.Logf(nil, "Chunks temporary upload directory: %s", f.chunksUploadURL)
case "sharepoint":
// To mount sharepoint, two Cookies are required
// They have to be set instead of BasicAuth

View File

@@ -114,7 +114,7 @@ commands_order = [
ignore_docs = [
"downloads.md",
"privacy.md",
"sponsor.md",
"donate.md",
]
def read_doc(doc):

View File

@@ -21,7 +21,7 @@ notoc: true
Rclone is a command-line program to manage files on cloud storage. It
is a feature-rich alternative to cloud vendors' web storage
interfaces. [Over 70 cloud storage products](#providers) support
interfaces. [Over 40 cloud storage products](#providers) support
rclone including S3 object stores, business & consumer file storage
services, as well as standard transfer protocols.

View File

@@ -738,3 +738,6 @@ put them back in again.` >}}
* Peter Fern <github@0xc0dedbad.com>
* zzq <i@zhangzqs.cn>
* mac-15 <usman.ilamdin@phpstudios.com>
* Sawada Tsunayoshi <34431649+TsunayoshiSawada@users.noreply.github.com>
* Dean Attali <daattali@gmail.com>
* Fjodor42 <molgaard@gmail.com>

View File

@@ -5,27 +5,6 @@ description: "Rclone Changelog"
# Changelog
## v1.63.1 - 2023-07-17
[See commits](https://github.com/rclone/rclone/compare/v1.63.0...v1.63.1)
* Bug Fixes
* build: Fix macos builds for versions < 12 (Anagh Kumar Baranwal)
* dirtree: Fix performance with large directories of directories and `--fast-list` (Nick Craig-Wood)
* operations
* Fix deadlock when using `lsd`/`ls` with `--progress` (Nick Craig-Wood)
* Fix `.rclonelink` files not being converted back to symlinks (Nick Craig-Wood)
* doc fixes (Dean Attali, Mahad, Nick Craig-Wood, Sawada Tsunayoshi, Vladislav Vorobev)
* Local
* Fix partial directory read for corrupted filesystem (Nick Craig-Wood)
* Box
* Fix reconnect failing with HTTP 400 Bad Request (albertony)
* Smb
* Fix "Statfs failed: bucket or container name is needed" when mounting (Nick Craig-Wood)
* WebDAV
* Nextcloud: fix must use /dav/files/USER endpoint not /webdav error (Paul)
* Nextcloud chunking: add more guidance for the user to check the config (darix)
## v1.63.0 - 2023-06-30
[See commits](https://github.com/rclone/rclone/compare/v1.62.0...v1.63.0)

68
docs/content/donate.md Normal file
View File

@@ -0,0 +1,68 @@
---
title: "Donations"
description: "Donations to the rclone project."
type: page
---
# {{< icon "fa fa-heart heart" >}} Donations to the rclone project
Rclone is a free open-source project with thousands of contributions
from volunteers all round the world and I would like to thank all of
you for donating your time to the project.
However, maintaining rclone is a lot of work - easily the equivalent
of a **full time job** - for me. Nothing stands still in the world of
cloud storage. Rclone needs constant attention adapting to changes by
cloud providers, adding new providers, adding new features, keeping
the integration tests working, fixing bugs and many more things!
I love doing the work and I'd like to spend more time doing it - your
support helps make that possible.
Thank you :-)
{{< nick >}}
PS I'm available for rclone and object storage related consultancy -
[email me](mailto:nick@craig-wood.com) for more info.
{{< monthly_donations >}}
## Personal users
If you are a personal user and you would like to support the project
with sponsorship as a way of saying thank you that would be most
appreciated. {{< icon "fa fa-heart heart" >}}
## Business users
If your business distributes rclone as part of its products (which the
generous MIT licence allows) or uses it internally then it would make
business sense to sponsor the rclone project to ensure that the
project you rely on stays healthy and well maintained.
If you run one of the cloud storage providers that rclone supports and
rclone is driving revenue your way then you know it makes sense to
sponsor the project. {{< icon "far fa-smile" >}}
Note that if you choose the "GitHub Sponsors" option they will provide
proper tax invoices appropriate for your country.
## Monthly donations
Monthly donations help keep rclone development sustainable in the long
run so this is the preferred option. A small amount every month is
much better than a one off donation as it allows planning for the
future.
{{< monthly_donations >}}
## One off donations
If you don't want to contribute monthly then of course we'd love a one
off donation.
{{< one_off_donations >}}
If you require a receipt or wish to contribute in a different way then
please [drop me an email](mailto:nick@craig-wood.com).

View File

@@ -1522,7 +1522,7 @@ be the same account as the Google Drive you want to access)
"Google Drive API".
4. Click "Credentials" in the left-side panel (not "Create
credentials", which opens the wizard).
credentials", which opens the wizard), then "Create credentials"
5. If you already configured an "Oauth Consent Screen", then skip
to the next step; if not, click on "CONFIGURE CONSENT SCREEN" button

View File

@@ -174,7 +174,7 @@ These flags are available for every command.
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default "rclone/v1.63.1")
--user-agent string Set the user-agent to a specified string (default "rclone/v1.63.0")
-v, --verbose count Print lots more stuff (repeat for more)
```

View File

@@ -14,6 +14,8 @@ it also provides white-label solutions to different companies, such as:
* Telia Sky (sky.telia.no)
* Tele2
* Tele2 Cloud (mittcloud.tele2.se)
* Onlime
* Onlime Cloud Storage (onlime.dk)
* Elkjøp (with subsidiaries):
* Elkjøp Cloud (cloud.elkjop.no)
* Elgiganten Sweden (cloud.elgiganten.se)
@@ -84,6 +86,18 @@ Tele2 Cloud customers as no support for creating a CLI token exists, and additio
authentication flow where the username is generated internally. To setup rclone to use Tele2 Cloud,
choose Tele2 Cloud authentication in the setup. The rest of the setup is identical to the default setup.
### Onlime Cloud Storage authentication
Onlime has sold access to Jottacloud proper, while providing localized support to Danish Customers, but
have recently set up their own hosting, transferring their customers from Jottacloud servers to their
own ones.
This, of course, necessitates using their servers for authentication, but otherwise functionality and
architecture seems equivalent to Jottacloud.
To setup rclone to use Onlime Cloud Storage, choose Onlime Cloud authentication in the setup. The rest
of the setup is identical to the default setup.
## Configuration
Here is an example of how to make a remote called `remote` with the default setup. First run:
@@ -127,6 +141,9 @@ Press Enter for the default (standard).
/ Tele2 Cloud authentication.
4 | Use this if you are using Tele2 Cloud.
\ (tele2)
/ Onlime Cloud authentication.
5 | Use this if you are using Onlime Cloud.
\ (onlime)
config_type> 1
Personal login token.
Generate here: https://www.jottacloud.com/web/secure

View File

@@ -8,6 +8,8 @@ versionIntroduced: "v1.50"
[Mail.ru Cloud](https://cloud.mail.ru/) is a cloud storage provided by a Russian internet company [Mail.Ru Group](https://mail.ru). The official desktop client is [Disk-O:](https://disk-o.cloud/en), available on Windows and Mac OS.
Currently it is recommended to disable 2FA on Mail.ru accounts intended for rclone until it gets eventually implemented.
## Features highlights
- Paths may be as deep as required, e.g. `remote:directory/subdirectory`

View File

@@ -1 +1 @@
v1.63.1
v1.64.0

View File

@@ -358,7 +358,7 @@ func Copy(ctx context.Context, f fs.Fs, dst fs.Object, remote string, src fs.Obj
inplace = true
remotePartial = remote
)
if !ci.Inplace && f.Features().Move != nil && f.Features().PartialUploads && !strings.HasSuffix(remote, ".rclonelink") {
if !ci.Inplace && f.Features().Move != nil && f.Features().PartialUploads {
// Avoid making the leaf name longer if it's already lengthy to avoid
// trouble with file name length limits.
suffix := "." + random.String(8) + ".partial"

View File

@@ -1,4 +1,4 @@
package fs
// VersionTag of rclone
var VersionTag = "v1.63.1"
var VersionTag = "v1.64.0"

126
rclone.1 generated
View File

@@ -1,7 +1,7 @@
.\"t
.\" Automatically generated by Pandoc 2.9.2.1
.\"
.TH "rclone" "1" "Jul 17, 2023" "User Manual" ""
.TH "rclone" "1" "Jun 30, 2023" "User Manual" ""
.hy
.SH Rclone syncs your files to cloud storage
.PP
@@ -24,7 +24,7 @@ Donate. (https://rclone.org/donate/)
Rclone is a command-line program to manage files on cloud storage.
It is a feature-rich alternative to cloud vendors\[aq] web storage
interfaces.
Over 70 cloud storage products support rclone including S3 object
Over 40 cloud storage products support rclone including S3 object
stores, business & consumer file storage services, as well as standard
transfer protocols.
.PP
@@ -3456,42 +3456,6 @@ not listed here.
.IP \[bu] 2
rclone config (https://rclone.org/commands/rclone_config/) - Enter an
interactive configuration session.
.SH rclone config redacted
.PP
Print redacted (decrypted) config file, or the redacted config for a
single remote.
.SH Synopsis
.PP
This prints a redacted copy of the config file, either the whole config
file or for a given remote.
.PP
The config file will be redacted by replacing all passwords and other
sensitive info with XXX.
.PP
This makes the config file suitable for posting online for support.
.PP
It should be double checked before posting as the redaction may not be
perfect.
.IP
.nf
\f[C]
rclone config redacted [<remote>] [flags]
\f[R]
.fi
.SH Options
.IP
.nf
\f[C]
-h, --help help for redacted
\f[R]
.fi
.PP
See the global flags page (https://rclone.org/flags/) for global options
not listed here.
.SH SEE ALSO
.IP \[bu] 2
rclone config (https://rclone.org/commands/rclone_config/) - Enter an
interactive configuration session.
.SH rclone config show
.PP
Print (decrypted) config file, or the config for a single remote.
@@ -14863,7 +14827,7 @@ directory \f[C]dir\f[R] and sub directories.
E.g.
on Microsoft Windows
\f[C]rclone ls remote: --exclude \[dq]*\[rs][{JP,KR,HK}\[rs]]*\[dq]\f[R]
lists the files in \f[C]remote:\f[R] without \f[C][JP]\f[R] or
lists the files in \f[C]remote:\f[R] with \f[C][JP]\f[R] or
\f[C][KR]\f[R] or \f[C][HK]\f[R] in their name.
Quotes prevent the shell from interpreting the \f[C]\[rs]\f[R]
characters.\f[C]\[rs]\f[R] characters escape the \f[C][\f[R] and
@@ -20848,7 +20812,7 @@ These flags are available for every command.
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default \[dq]rclone/v1.63.1\[dq])
--user-agent string Set the user-agent to a specified string (default \[dq]rclone/v1.63.0\[dq])
-v, --verbose count Print lots more stuff (repeat for more)
\f[R]
.fi
@@ -38381,7 +38345,7 @@ Click \f[C]Submit\f[R]
.IP "7." 3
Switch to the \f[C]Settings\f[R] tab.
Fill \f[C]OAuth2 - Redirect URIs\f[R] as
\f[C]http://localhost:53682/\f[R] and click on \f[C]Add\f[R]
\f[C]http://localhost:53682/\f[R]
.IP "8." 3
Find the \f[C]App key\f[R] and \f[C]App secret\f[R] values on the
\f[C]Settings\f[R] tab.
@@ -42488,7 +42452,8 @@ Under \[dq]ENABLE APIS AND SERVICES\[dq] search for \[dq]Drive\[dq], and
enable the \[dq]Google Drive API\[dq].
.IP " 4." 4
Click \[dq]Credentials\[dq] in the left-side panel (not \[dq]Create
credentials\[dq], which opens the wizard).
credentials\[dq], which opens the wizard), then \[dq]Create
credentials\[dq]
.IP " 5." 4
If you already configured an \[dq]Oauth Consent Screen\[dq], then skip
to the next step; if not, click on \[dq]CONFIGURE CONSENT SCREEN\[dq]
@@ -46110,6 +46075,9 @@ Mail.ru Cloud (https://cloud.mail.ru/) is a cloud storage provided by a
Russian internet company Mail.Ru Group (https://mail.ru).
The official desktop client is Disk-O: (https://disk-o.cloud/en),
available on Windows and Mac OS.
.PP
Currently it is recommended to disable 2FA on Mail.ru accounts intended
for rclone until it gets eventually implemented.
.SS Features highlights
.IP \[bu] 2
Paths may be as deep as required, e.g.
@@ -59513,60 +59481,6 @@ Options:
.IP \[bu] 2
\[dq]error\[dq]: return an error based on option value
.SH Changelog
.SS v1.63.1 - 2023-07-17
.PP
See commits (https://github.com/rclone/rclone/compare/v1.63.0...v1.63.1)
.IP \[bu] 2
Bug Fixes
.RS 2
.IP \[bu] 2
build: Fix macos builds for versions < 12 (Anagh Kumar Baranwal)
.IP \[bu] 2
dirtree: Fix performance with large directories of directories and
\f[C]--fast-list\f[R] (Nick Craig-Wood)
.IP \[bu] 2
operations
.RS 2
.IP \[bu] 2
Fix deadlock when using \f[C]lsd\f[R]/\f[C]ls\f[R] with
\f[C]--progress\f[R] (Nick Craig-Wood)
.IP \[bu] 2
Fix \f[C].rclonelink\f[R] files not being converted back to symlinks
(Nick Craig-Wood)
.RE
.IP \[bu] 2
doc fixes (Dean Attali, Mahad, Nick Craig-Wood, Sawada Tsunayoshi,
Vladislav Vorobev)
.RE
.IP \[bu] 2
Local
.RS 2
.IP \[bu] 2
Fix partial directory read for corrupted filesystem (Nick Craig-Wood)
.RE
.IP \[bu] 2
Box
.RS 2
.IP \[bu] 2
Fix reconnect failing with HTTP 400 Bad Request (albertony)
.RE
.IP \[bu] 2
Smb
.RS 2
.IP \[bu] 2
Fix \[dq]Statfs failed: bucket or container name is needed\[dq] when
mounting (Nick Craig-Wood)
.RE
.IP \[bu] 2
WebDAV
.RS 2
.IP \[bu] 2
Nextcloud: fix must use /dav/files/USER endpoint not /webdav error
(Paul)
.IP \[bu] 2
Nextcloud chunking: add more guidance for the user to check the config
(darix)
.RE
.SS v1.63.0 - 2023-06-30
.PP
See commits (https://github.com/rclone/rclone/compare/v1.62.0...v1.63.0)
@@ -73503,13 +73417,6 @@ mac-15 <usman.ilamdin@phpstudios.com>
Forum for questions and general discussion:
.IP \[bu] 2
https://forum.rclone.org
.SS Business support
.PP
For business support or sponsorship enquiries please see:
.IP \[bu] 2
https://rclone.com/
.IP \[bu] 2
sponsorship\[at]rclone.com
.SS GitHub repository
.PP
The project\[aq]s repository is located at:
@@ -73519,18 +73426,15 @@ https://github.com/rclone/rclone
There you can file bug reports or contribute with pull requests.
.SS Twitter
.PP
You can also follow Nick on twitter for rclone announcements:
You can also follow me on twitter for rclone announcements:
.IP \[bu] 2
[\[at]njcw](https://twitter.com/njcw)
.SS Email
.PP
Or if all else fails or you want to ask something private or
confidential
.IP \[bu] 2
info\[at]rclone.com
.PP
Please don\[aq]t email requests for help to this address - those are
better directed to the forum unless you\[aq]d like to sign up for
business support.
confidential email Nick Craig-Wood (mailto:nick@craig-wood.com).
Please don\[aq]t email me requests for help - those are better directed
to the forum.
Thanks!
.SH AUTHORS
Nick Craig-Wood.