The use case is a copy from a local (linux) filesystem to AWS s3 using both:
- --s3-profile
- An s3 endpoint in the rsync configuration
Version is:
rclone v1.61.1
- os/version: centos 7.9.2009 (64 bit)
- os/kernel: 3.10.0-1160.83.1.el7.x86_64 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.19.4
- go/linking: static
- go/tags: none
Here's the command, and the sad result:
$ ~/bin/rclone-v1.61.1-linux-amd64/rclone copy --s3-acl "" --s3-profile MYNAMEDPROFILE 1gb-accountingtest.tz s3-standard:TARGETBUCKET/standard/x3 -v
2023/02/09 12:05:23 ERROR : Attempt 1/3 failed with 1 errors and: SerializationError: failed to unmarshal error message
status code: 400, request id:
caused by: UnmarshalError: failed to unmarshal error message
00000000 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 |<?xml version="1|
00000010 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 55 54 |.0" encoding="UT|
00000020 46 2d 38 22 3f 3e 0a 3c 45 72 72 6f 72 3e 3c 43 |F-8"?>.<Error><C|
00000030 6f 64 65 3e 49 6e 76 61 6c 69 64 52 65 71 75 65 |ode>InvalidReque|
00000040 73 74 3c 2f 43 6f 64 65 3e 3c 4d 65 73 73 61 67 |st</Code><Messag|
00000050 65 3e 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 |e>Missing requir|
00000060 65 64 20 68 65 61 64 65 72 20 66 6f 72 20 74 68 |ed header for th|
00000070 69 73 20 72 65 71 75 65 73 74 3a 20 78 2d 61 6d |is request: x-am|
00000080 7a 2d 63 6f 6e 74 65 6e 74 2d 73 68 61 32 35 36 |z-content-sha256|
00000090 3c 2f 4d 65 73 73 61 67 65 3e 3c 52 65 71 75 65 |</Message><Reque|
000000a0 73 74 49 64 3e 32 45 46 57 41 31 41 4e 57 43 48 |stId>2EFWA1ANWCH|
000000b0 54 31 44 46 53 3c 2f 52 65 71 75 65 73 74 49 64 |T1DFS</RequestId|
000000c0 3e 3c 48 6f 73 74 49 64 3e 6d 77 38 78 32 6e 78 |><HostId>mw8x2nx|
000000d0 65 32 33 35 64 32 4f 6a 2f 57 65 77 37 33 43 6b |e235d2Oj/Wew73Ck|
000000e0 48 6e 55 6a 71 36 48 6b 69 47 38 74 55 31 6e 66 |HnUjq6HkiG8tU1nf|
000000f0 45 67 63 55 76 77 45 58 64 4b 52 2b 49 6b 56 79 |EgcUvwEXdKR+IkVy|
00000100 73 4d 74 4c 77 50 67 52 6e 76 65 55 39 76 68 74 |sMtLwPgRnveU9vht|
00000110 6f 47 31 77 3d 3c 2f 48 6f 73 74 49 64 3e 3c 2f |oG1w=</HostId></|
00000120 45 72 72 6f 72 3e |Error>|
caused by: unknown error response tag, {{ Error} []}
2023/02/09 12:05:33 INFO :
Transferred: 0 B / 0 B, -, 0 B/s, ETA -
Elapsed time: 1m37.3s
Here's the config, with the endpoint redacted. Note that the bucket
in the endpoint is actually correct AWS syntax
[s3-standard]
type = s3
provider = AWS
env_auth = true
region = us-east-1
endpoint = https://bucket.vpce-REDACTED.s3.us-east-1.vpce.amazonaws.com
storage_class = STANDARD
A log from the command with the -vv
flag
$ ~/bin/rclone-v1.61.1-linux-amd64/rclone copy --s3-acl "" --s3-profile MYNAMEDPROFILE 1gb-accountingtest.tz s3-standard:TARGETBUCKET/standard/x3/ -vv
2023/02/09 12:24:48 DEBUG : rclone: Version "v1.61.1" starting with parameters ["STUFF/bin/rclone-v1.61.1-linux-amd64/rclone" "copy" "--s3-acl" "" "--s3-profile" "MYNAMEDPROFILE" "1gb-accountingtest.tz" "s3-standard:TARGETBUCKET/standard/x3/" "-vv"]
2023/02/09 12:24:48 DEBUG : Creating backend with remote "1gb-accountingtest.tz"
2023/02/09 12:24:48 DEBUG : Using config file from "/STUFF/.config/rclone/rclone.conf"
2023/02/09 12:24:48 DEBUG : fs cache: adding new entry for parent of "1gb-accountingtest.tz", "STUFF/drtesting"
2023/02/09 12:24:48 DEBUG : Creating backend with remote "s3-standard:TARGETBUCKET/standard/x3"
2023/02/09 12:24:48 DEBUG : s3-standard: detected overridden config - adding "{VJUoK}" suffix to name
2023/02/09 12:25:39 DEBUG : fs cache: renaming cache item "s3-standard:TARGETBUCKET/standard/x3" to be canonical "s3-standard{VJUoK}:TARGETBUCKET/standard/x3"
2023/02/09 12:26:27 ERROR : Attempt 1/3 failed with 1 errors and: SerializationError: failed to unmarshal error message
status code: 400, request id:
caused by: UnmarshalError: failed to unmarshal error message
00000000 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 |<?xml version="1|
00000010 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 55 54 |.0" encoding="UT|
00000020 46 2d 38 22 3f 3e 0a 3c 45 72 72 6f 72 3e 3c 43 |F-8"?>.<Error><C|
00000030 6f 64 65 3e 49 6e 76 61 6c 69 64 52 65 71 75 65 |ode>InvalidReque|
00000040 73 74 3c 2f 43 6f 64 65 3e 3c 4d 65 73 73 61 67 |st</Code><Messag|
00000050 65 3e 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 |e>Missing requir|
00000060 65 64 20 68 65 61 64 65 72 20 66 6f 72 20 74 68 |ed header for th|
00000070 69 73 20 72 65 71 75 65 73 74 3a 20 78 2d 61 6d |is request: x-am|
00000080 7a 2d 63 6f 6e 74 65 6e 74 2d 73 68 61 32 35 36 |z-content-sha256|
00000090 3c 2f 4d 65 73 73 61 67 65 3e 3c 52 65 71 75 65 |</Message><Reque|
000000a0 73 74 49 64 3e 52 36 31 51 34 30 50 4b 42 35 43 |stId>R61Q40PKB5C|
000000b0 43 39 36 54 33 3c 2f 52 65 71 75 65 73 74 49 64 |C96T3</RequestId|
000000c0 3e 3c 48 6f 73 74 49 64 3e 6d 4b 38 2f 6b 67 38 |><HostId>mK8/kg8|
000000d0 68 38 4a 4f 63 44 4f 69 76 74 38 50 55 6b 5a 59 |h8JOcDOivt8PUkZY|
000000e0 35 58 6b 5a 69 6f 77 41 5a 79 70 2b 51 79 5a 31 |5XkZiowAZyp+QyZ1|
000000f0 62 5a 36 6c 61 38 66 78 4a 64 47 72 68 42 72 46 |bZ6la8fxJdGrhBrF|
00000100 73 49 53 32 41 6c 37 49 48 6f 71 45 70 52 6e 58 |sIS2Al7IHoqEpRnX|
00000110 48 76 77 41 3d 3c 2f 48 6f 73 74 49 64 3e 3c 2f |HvwA=</HostId></|
00000120 45 72 72 6f 72 3e |Error>|
caused by: unknown error response tag, {{ Error} []}
2023/02/09 12:26:39 INFO :
Transferred: 0 B / 0 B, -, 0 B/s, ETA -
Elapsed time: 1m51.3s
Notes and thoughts
- This looks an awful lot like the error on empty ACLs with S3 profiles that was fixed in 1.61., see this. Note that the test includes the empty --s3-acl parameter which was part of the 1.61 fix
- The problem is directly related to the presence or absence of a declared S3 endpoint in the config entry. For example, using a config entry like this, which is the same except it has no endpoint:
[s3-standard-none]
type = s3
provider = AWS
env_auth = true
region = us-east-1
storage_class = STANDARD
we see:
$ ~/bin/rclone-v1.61.1-linux-amd64/rclone copy --s3-acl "" --s3-profile dr-systems-storage-team 1gb-accountingtest.tz s3-standard-none:ncbi-dr-systems-test-1a/standard/x15/ -vv
2023/02/09 12:35:18 DEBUG : rclone: Version "v1.61.1" starting with parameters ["/home/pattcornerri/bin/rclone-v1.61.1-linux-amd64/rclone" "copy" "--s3-acl" "" "--s3-profile" "dr-systems-storage-team" "1gb-accountingtest.tz" "s3-standard-none:ncbi-dr-systems-test-1a/standard/x15/" "-vv"]
2023/02/09 12:35:18 DEBUG : Creating backend with remote "1gb-accountingtest.tz"
2023/02/09 12:35:18 DEBUG : Using config file from "/home/pattcornerri/.config/rclone/rclone.conf"
2023/02/09 12:35:18 DEBUG : fs cache: adding new entry for parent of "1gb-accountingtest.tz", "/home/pattcornerri/drtesting"
2023/02/09 12:35:18 DEBUG : Creating backend with remote "s3-standard-none:ncbi-dr-systems-test-1a/standard/x15/"
2023/02/09 12:35:18 DEBUG : s3-standard-none: detected overridden config - adding "{VJUoK}" suffix to name
2023/02/09 12:35:18 DEBUG : fs cache: renaming cache item "s3-standard-none:ncbi-dr-systems-test-1a/standard/x15/" to be canonical "s3-standard-none{VJUoK}:ncbi-dr-systems-test-1a/standard/x15"
2023/02/09 12:35:19 DEBUG : 1gb-accountingtest.tz: Need to transfer - File not found at Destination
2023/02/09 12:35:19 INFO : S3 bucket ncbi-dr-systems-test-1a path standard/x15: Bucket "ncbi-dr-systems-test-1a" created with ACL ""
2023/02/09 12:35:21 DEBUG : 1gb-accountingtest.tz: multipart upload starting chunk 1 size 5Mi offset 0/1.096Gi
2023/02/09 12:35:21 DEBUG : 1gb-accountingtest.tz: multipart upload starting chunk 2 size 5Mi offset 5Mi/1.096Gi
2023/02/09 12:35:21 DEBUG : 1gb-accountingtest.tz: multipart upload starting chunk 3 size 5Mi offset 10Mi/1.096Gi
2023/02/09 12:35:21 DEBUG : 1gb-accountingtest.tz: multipart upload starting chunk 4 size 5Mi offset 15Mi/1.096Gi
2023/02/09 12:35:22 DEBUG : 1gb-accountingtest.tz: multipart upload starting chunk 5 size 5Mi offset 20Mi/1.096Gi
etc
- The endpoint is required to use direct connects
- The named profile is required for cross account access