Aleksandar Janković
5470d34740
backend/s3: use low-level-retries as the number of SDK retries
...
Amazon S3 is built to handle different kinds of workloads.
In rare cases where S3 is not able to scale for whatever reason users
will face status 500 errors.
Main mechanism for handling these errors are retries.
Amount of needed retries varies for each different use case.
This change is making retries for s3 backend configurable by using
--low-level-retries option.
2020-02-24 16:43:44 +01:00
Maciej Zimnoch
ac9cb50fdb
backend/s3: use memory pool for buffer allocations
...
Currently each multipart upload allocated his own buffers, which after
file upload was garbaged. Next files couldn't leverage already allocated
memory which resulted in inefficent memory management. This change
introduces backend memory pool keeping memory chunks which can be
used during object operations.
Fixes #3967
2020-02-24 13:32:32 +01:00
buengese
4a8b548add
jottacloud: use RawURLEncoding when decoding base64 encoded login token - fixes #3945
2020-02-22 23:12:56 +01:00
Lars Lehtonen
481c8a40ea
backend/azureblob: fmt nit
2020-02-20 15:50:53 +01:00
Lars Lehtonen
25ef3a281b
backend/azureblob: remove unused Object.parseTimeString()
2020-02-20 15:50:53 +01:00
Lars Lehtonen
219bd97e8a
backend/qingstor: lint fix
2020-02-14 18:11:01 +00:00
Lars Lehtonen
8b14cd24aa
backend/qingstor: prune multiUploader.list()
2020-02-14 18:11:01 +00:00
Nick Craig-Wood
3893c14889
operations: make rcat obey --ignore-checksum
2020-02-14 12:47:11 +00:00
Nick Craig-Wood
c41fbc0f90
operations: move Rcat tests back to main test file now S3 prob is fixed
2020-02-14 12:26:52 +00:00
Nick Craig-Wood
f45425e5a9
operations: factor CommonHash out of Copy for re-use elsewhere
2020-02-14 12:12:10 +00:00
Nick Craig-Wood
bd9fd629bc
test: add TestS3MinioEdge to test leading edge minio too #3934
2020-02-13 11:01:06 +00:00
Nick Craig-Wood
3b19f48929
testserver: add provider to TestS3Minio #3934
...
This is necessary to pass the TestIntegration/FsMkdir/FsEncoding
listing tests.
2020-02-13 11:01:06 +00:00
Outvi V
4996edc030
oauthutil: make instructions for rclone authorize more robust
...
It appends "--" to the rclone authorize command line before client_id,
in case that the client_id or client_secret has a prefix of "-"
(OneDrive's does), which affects the argument parsing.
2020-02-13 10:18:23 +00:00
Michał Matczuk
964f1f6a7e
fs/accounting: Restore "Max number of stats groups reached" log line
...
Changed log level to debug.
2020-02-12 21:21:25 +00:00
Michał Matczuk
e75c1f70bb
backend/s3: Added 500 as retryErrorCode
...
The error code 500 Internal Error indicates that Amazon S3 is unable to handle the request at that time. The error code 503 Slow Down typically indicates that the requests to the S3 bucket are very high, exceeding the request rates described in Request Rate and Performance Guidelines.
Because Amazon S3 is a distributed service, a very small percentage of 5xx errors are expected during normal use of the service. All requests that return 5xx errors from Amazon S3 can and should be retried, so we recommend that applications making requests to Amazon S3 have a fault-tolerance mechanism to recover from these errors.
https://aws.amazon.com/premiumsupport/knowledge-center/http-5xx-errors-s3/
2020-02-12 11:43:18 +00:00
Michał Matczuk
19a4d74ee7
backend/s3: Fail fast multipart upload
...
When a part upload request fails error is returned and gCtx is cancelled.
This does not prevent from other parts being tried.
They immediately fail due to a canceled context, but are retried by rclone anyway...
Example AWS debug output
```
-----------------------------------------------------
2020/02/11 14:12:17 DEBUG: Retrying Request s3/UploadPart, attempt 4
2020/02/11 14:12:17 DEBUG: Request s3/UploadPart Details:
---[ REQUEST POST-SIGN ]-----------------------------
PUT /backuptest-rclone/huge/file.db?partNumber=11&uploadId=190939b4-3c43-4b98-ac11-92303e3f11b0 HTTP/1.1
Host: 192.168.100.99:9000
User-Agent: aws-sdk-go/1.23.8 (go1.13.1; linux; amd64)
Content-Length: 5242880
Authorization: AWS4-HMAC-SHA256 Credential=miniouser/20200211/us-east-1/s3/aws4_request, SignedHeaders=content-length;content-md5;expect;host;x-amz-content-sha256;x-amz-date, Signature=3fc03a01f651cec09b05290459e9ceb26db9a8aa00c4e1b16e8cf5617eb81da8
Content-Md5: XzY+DlipXwbL6bvGYsXftg==
Expect: 100-Continue
X-Amz-Content-Sha256: c036cbb7553a909f8b8877d4461924307f27ecb66cff928eeeafd569c3887e29
X-Amz-Date: 20200211T131217Z
Accept-Encoding: gzip
-----------------------------------------------------
http://192.168.100.99:9000/backuptest-rclone/huge/file.db?partNumber=11&uploadId=190939b4-3c43-4b98-ac11-92303e3f11b0
2020/02/11 14:12:17 DEBUG: Response s3/UploadPart Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 500 InternalServerError
Content-Length: 0
-----------------------------------------------------
UploadPartWithContext() error InternalError: We encountered an internal error. Please try again
status code: 500, request id: , host id:
2020/02/11 14:12:18 DEBUG ERROR: Request s3/UploadPart:
---[ REQUEST DUMP ERROR ]-----------------------------
context canceled
------------------------------------------------------
UploadPartWithContext() error RequestCanceled: request context canceled
caused by: context canceled
2020/02/11 14:12:20 DEBUG ERROR: Request s3/UploadPart:
---[ REQUEST DUMP ERROR ]-----------------------------
context canceled
------------------------------------------------------
UploadPartWithContext() error RequestCanceled: request context canceled
caused by: context canceled
2020/02/11 14:12:22 DEBUG ERROR: Request s3/UploadPart:
---[ REQUEST DUMP ERROR ]-----------------------------
context canceled
------------------------------------------------------
UploadPartWithContext() error RequestCanceled: request context canceled
caused by: context canceled
```
This adds a fail fast behaviour in case the context was cancelled.
2020-02-12 11:40:34 +00:00
Nick Craig-Wood
55b5eded23
Add Frederick Zhang to contributors
2020-02-12 11:33:56 +00:00
Lars Lehtonen
3dbcf0af2d
backend/cache: Remove Unused Functions
...
This removes the unused functions run.writeRemoteRandomBytes() run.writeObjectRandomBytes() run.listPath() Directory.parentRemote() and Persistent.dumpRoot().
2020-02-12 11:23:57 +00:00
Lars Lehtonen
4e1a511f88
vfs: explicitly ignore unused variables
2020-02-12 11:20:54 +00:00
Frederick Zhang
b71e1a16b1
docs: update account type during OneDrive app registration
2020-02-12 11:04:49 +00:00
Nick Craig-Wood
ec1271818f
mount2: hide mount2 command for the moment
2020-02-11 14:28:13 +00:00
Nick Craig-Wood
8318020387
Implement mount2 with go-fuse
...
This passes the tests and works efficiently with the non sequential vfs ReadAt fix.
2020-02-11 14:28:13 +00:00
Nick Craig-Wood
c38d7be373
vendor: add github.com/hanwen/go-fuse/v2@master for mount2
2020-02-11 14:28:13 +00:00
Nick Craig-Wood
dc31212c3d
Add Tim Gallant to contributors
2020-02-11 14:28:13 +00:00
Lars Lehtonen
ac60b36e77
backend/premiumizeme: prune unused functions
2020-02-11 12:17:35 +00:00
Tim Gallant
1d73f071f6
fs: improve log output when no changes are made - fixes #3454
...
- changes a few log messages to debug level
- adds a log message for when 0 bytes are transferred
2020-02-11 12:16:15 +00:00
Nick Craig-Wood
5c869d5bd3
cmd: make stats be printed on non-zero exit code
...
This also rationalises the exit sequence so that dumping
goroutines/open files happens regardless of exit error state.
See: https://forum.rclone.org/t/transfer-stats-on-non-0-exit/14211
2020-02-10 16:40:43 +00:00
Nick Craig-Wood
a54210a2e4
docs: restore missing mount --daemon docs
...
This was done as part of ebfeec9fb4
which unfortunately patched
the auto generated files.
2020-02-10 15:29:39 +00:00
Nick Craig-Wood
040d226028
docs: restore missing QingStor doc fix
...
This was done as part of 64fce8438b
which unfortunately patched
the auto generated files.
2020-02-10 15:29:39 +00:00
Nick Craig-Wood
8b664c3ec5
docs: restore lost spelling fixes
...
These came from 3d424c6e08
which unfortunately got added the
docs to the auto generated files.
2020-02-10 15:29:39 +00:00
Nick Craig-Wood
102a38bb95
docs: restore lost VFS poll interval docs
...
These came from 3d475dc0ee
which unfortunately got added the
docs to the auto generated files.
2020-02-10 15:29:39 +00:00
Nick Craig-Wood
7a54e13110
docs: restore lost VFS case insensitive docs
...
These came from 1c4e33d4ad
which unfortunately
added the docs to the auto generated files.
2020-02-10 15:29:39 +00:00
Nick Craig-Wood
feee92c790
docs: restore lost mount share docs
...
These came from 162fdfe455
which unfortunately added the docs to
the auto generated files.
2020-02-10 15:29:39 +00:00
Nick Craig-Wood
de93852512
docs: restore lost auth proxy logs
...
These came from f2a789ea98
which unfortunately added the docs to
the auto generated files.
2020-02-10 15:29:39 +00:00
Nick Craig-Wood
dfb710eab7
gendocs: add autogenerated header to all docs
2020-02-10 15:29:39 +00:00
Nick Craig-Wood
25cfeb2a64
webdav: Fix X-OC-Mtime header for Transip compatibility - fixes #3126
2020-02-10 11:57:12 +00:00
Nick Craig-Wood
90377f5e65
s3: Specify that Minio supports URL encoding in listings
...
Thanks to @harshavardhana for pointing this out
See #3934 for background
2020-02-09 12:03:20 +00:00
Lars Lehtonen
f1d9bd5eab
lib/oauthutil: replace deprecated oauth2.NoContext
2020-02-07 17:49:29 +00:00
Lars Lehtonen
4ee3c21a9d
cmd/serve/ftp: replace deprecated os.SEEK_SET with io.SeekStart
2020-02-06 10:58:34 +00:00
Lars Lehtonen
fe6f4135b4
fs/rc: fix dropped error
2020-02-04 11:31:06 +00:00
Nick Craig-Wood
3dfa63b85c
onedrive: fix occasional 416 errors on multipart uploads
...
Before this change, when uploading multipart files, onedrive would
sometimes return an unexpected 416 error and rclone would abort the
transfer.
This is usually after a 500 error which caused rclone to do a retry.
This change checks the upload position on a 416 error and works how
much of the current chunk to skip, then retries (or skips) the current
chunk as appropriate.
If the position is before the current chunk or after the current chunk
then rclone will abort the transfer.
See: https://forum.rclone.org/t/fragment-overlap-error-with-encrypted-onedrive/14001
Fixes #3131
2020-02-01 21:15:07 +00:00
Gary Kim
ff2343475a
docs: Update README.md shields for changed CI
...
Signed-off-by: Gary Kim <gary@garykim.dev>
2020-02-01 20:17:40 +00:00
Nick Craig-Wood
bffd7f0f14
docs: note how to use GitHub's online editor to edit rclone's docs
2020-02-01 13:44:03 +00:00
Nick Craig-Wood
7c55fafe33
Add Durval Menezes to contributors
2020-02-01 13:41:47 +00:00
Nick Craig-Wood
2e7fe06beb
Add Dave Koston to contributors
2020-02-01 13:41:47 +00:00
Durval Menezes
8ff91ff31b
docs: Update the "Making your own client_id" section for drive
...
...so it accurately describes the new "Enhanced Security" Google process to get your own Client ID and Client Secret to use with rclone.
2020-02-01 13:41:18 +00:00
Nick Craig-Wood
4d1c616e97
Start v1.51.0-DEV development
2020-02-01 12:32:21 +00:00
Nick Craig-Wood
43daecd89b
Version v1.51.0
2020-02-01 10:40:01 +00:00
Dave Koston
9f99c20232
s3: Add StackPath Object Storage Support
2020-01-31 16:05:44 +00:00
Nick Craig-Wood
97ed8db75d
drive: hide dangerous config from the configurator
...
This hides:
- "use_created_date"
- "use_shared_date"
- "size_as_quota"
from the configurator (rclone config) as they interfere with normal
operations and shouldn't be set in a backend config.
They can still be put in the config file by hand and will still work
as variables, etc.
This adds some more docs to "size_as_quota" also.
Fixes #3912
2020-01-31 10:09:33 +00:00