When mirroring objects between two S3-compatible backends with:
rc mirror stage/bucket prod/bucket
the destination object loses its original Content-Type.
Example: a source object with Content-Type image/jpeg becomes
application/octet-stream on the target.
From the code, mirror currently does:
- source_client.get_object(&source_full)
- target_client.put_object(&target_full, data, None)
So the upload is performed without passing Content-Type at all.
S3Client::head_object() already reads content_type() into ObjectInfo,
so a minimal fix would be to fetch source metadata first and pass
source_info.content_type.as_deref() into put_object().
This likely affects not only Content-Type but potentially other object metadata as well.