We are trying to upload a lot of objects from a minio instance to Backblaze B2, including the metadata. Among all the metadata attributes we are storing with the objects, there is the X-Amz-Meta-Content-Disposition one.
It turns out that when that metadata attribute is set, rclone will set the Content-Disposition header with the value of "X-Amz-Meta-Content-Disposition". This is causing problems for us since we have values like this one:
X-Amz-Meta-Content-Disposition : attachment; filename="3 =?utf-8?q?Interaci=C3=B3n=2Epdf=22?=
which will cause this error from the B2 backend:
2022/09/28 20:33:16 ERROR : ddcce9dc0f5d4ab2a7e0ab2900b01dca: Failed to copy: InvalidRequest: invalid b2-content-disposition: hit end of string while looking for closing quote starting from 21 status code: 400, request id: 5394e15f7ac106ae, host id: aMLNlZWTDY7xkDmJWM9k5SjTpZipmvjhN
I think when using the S3 protocol, setting Content-Disposition on PUT (creating an object) will give the advantage of having that very same "filename=" available automaticall when a GET is requested, but I am not 100% sure of that.
Regardless of the "correctness" of the X-Amz-Meta-Content-Disposition values we may have, we have to go along with what we have stored because we simply cannot change tens of thousands of objects.
rclone v1.59.1 - os/version: centos 7.4.1708 (64 bit) - os/kernel: 5.11.22-5-pve (x86_64) - os/type: linux - os/arch: amd64 - go/version: go1.18.5 - go/linking: static - go/tags: none
Source is MinIO. Target is Backblaze B2 (configure with type s3 in rclone's config)
$ rclone --config=/etc/rclone.conf -M -v copy myminio:attachments/00/aa/ffc334afecd backblaze:attachments/00/aa/ffc334afecd
[backblaze] type = s3 provider = Other env_auth = false access_key_id = huehuehuehue secret_access_key = secretpass endpoint = s3.eu-central-003.backblazeb2.com sse_customer_algorithm=AES256 sse_customer_key=mylongandsecurekey #sse_customer_key_md5=
Not sure which part of the log I should paste here, can you please specify?