Copy S3 Bucket to Bucket - Object Tags Don't Get Created

What is the problem you are having with rclone?

I am using the rclone copy command in order to copy files from one S3 bucket to another. There is a requirement to be able to add object tags.

Based on online documentation, both AWS S3, RCLONE and forums, I'm lead to believe the following command should work:

rclone copy s3:source-bucket/file.csv s3:dest-bucket --config=tmp/rclone.conf --header-upload "x-amz-tagging: foo=bar"

However, when I run the command, the copy takes place as expected but no object tags are given to it. All the correct S3 permissions have been applied to the credentials e.g. PutObjectTagging.

Run the command 'rclone version' and share the full output of the command.

rclone version

rclone v1.69.2
- os/version: darwin 15.5 (64 bit)
- os/kernel: 24.5.0 (arm64)
- os/type: darwin
- os/arch: arm64 (ARMv8 compatible)
- go/version: go1.24.2
- go/linking: dynamic
- go/tags: none

Which cloud storage system are you using? (eg Google Drive)

Amazon S3

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone copy s3:source-bucket/file.csv s3:dest-bucket --config=tmp/rclone.conf --header-upload "x-amz-tagging: foo=bar"

Please run 'rclone config redacted' and share the full output. If you get command not found, please make sure to update rclone.

rclone config redacted

[s3]
type = s3
provider = AWS
access_key_id = XXX
secret_access_key = XXX
region = eu-west-2
location_constraint = eu-west-2
acl = private
### Double check the config for sensitive info before posting publicly

A log from the command that you were trying to run with the -vv flag

rclone copy s3:source-bucket/file.csv s3:dest-bucket --header-upload "x-amz-tagging: foo=bar" -vv 

2025/06/05 11:20:47 DEBUG : rclone: Version "v1.69.2" starting with parameters ["rclone" "copy" "s3:source-bucket/file.csv" "s3:dest-bucket" "--header-upload" "x-amz-tagging: foo=bar" "-vv"]
2025/06/05 11:20:47 DEBUG : Creating backend with remote "s3:source-bucket/file.csv"
2025/06/05 11:20:47 DEBUG : Using config file from "/Users/user.name/.config/rclone/rclone.conf"
2025/06/05 11:20:47 DEBUG : fs cache: renaming child cache item "s3:source-bucket/file.csv" to be canonical for parent "s3:source-bucket"
2025/06/05 11:20:47 DEBUG : Creating backend with remote "s3:dest-bucket"
2025/06/05 11:20:47 DEBUG : file.csv: Need to transfer - File not found at Destination
2025/06/05 11:20:47 DEBUG : file.csv: md5 = 41ed0a959636dc929fd8807d496ef309 OK
2025/06/05 11:20:47 INFO  : file.csv: Copied (server-side copy)
2025/06/05 11:20:47 INFO  : 
Transferred:   	        846 B / 846 B, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Server Side Copies:     1 @ 846 B
Elapsed time:         0.3s

2025/06/05 11:20:47 DEBUG : 9 go routines active

welcome to the forum,

afiak, upload is not the same as server-side copy


upload transactions


set on the operation that actually uploaded the file - not on all the other operations (eg listing directories etc)


for a deeper look at the api calls, --dump=headers

Makes sense. Thanks!