mirror of
https://github.com/rclone/rclone.git
synced 2025-01-03 04:49:47 +01:00
s3: when copying from s3 to s3, preserve metadata #111
See: https://forum.rclone.org/t/s3-bucket-migration-with-metadata-issues/10262
This commit is contained in:
parent
c3e2392f2b
commit
b7199fe3d7
@ -3171,11 +3171,26 @@ func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, op
|
||||
|
||||
multipart := size < 0 || size >= int64(o.fs.opt.UploadCutoff)
|
||||
|
||||
// Set the mtime in the meta data
|
||||
metadata := map[string]*string{
|
||||
metaMtime: aws.String(swift.TimeToFloatString(modTime)),
|
||||
// Metadata for upload
|
||||
metadata := map[string]*string{}
|
||||
fs.Debugf(o, "src = %#v", src)
|
||||
|
||||
// Read metadata from source s3 object if available
|
||||
srcObj, ok := fs.UnWrapObjectInfo(src).(*Object)
|
||||
if ok {
|
||||
fs.Debugf(o, "Reading metadata from %v", srcObj)
|
||||
err := srcObj.readMetaData(ctx) // reads info and meta, returning an error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for k, v := range srcObj.meta {
|
||||
metadata[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
// Set the mtime in the meta data
|
||||
metadata[metaMtime] = aws.String(swift.TimeToFloatString(modTime))
|
||||
|
||||
// read the md5sum if available
|
||||
// - for non multipart
|
||||
// - so we can add a ContentMD5
|
||||
|
Loading…
Reference in New Issue
Block a user