mirror of
https://github.com/rclone/rclone.git
synced 2025-12-23 23:38:34 -05:00
s3: fix Copy ignoring storage class
Co-authored-by: sys6101 <csvmen@gmail.com>
This commit is contained in:
@@ -2928,7 +2928,9 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object,
|
|||||||
req := s3.CopyObjectInput{
|
req := s3.CopyObjectInput{
|
||||||
MetadataDirective: types.MetadataDirectiveCopy,
|
MetadataDirective: types.MetadataDirectiveCopy,
|
||||||
}
|
}
|
||||||
|
if srcObj.storageClass != nil {
|
||||||
|
req.StorageClass = types.StorageClass(*srcObj.storageClass)
|
||||||
|
}
|
||||||
// Build upload options including headers and metadata
|
// Build upload options including headers and metadata
|
||||||
ci := fs.GetConfig(ctx)
|
ci := fs.GetConfig(ctx)
|
||||||
uploadOptions := fs.MetadataAsOpenOptions(ctx)
|
uploadOptions := fs.MetadataAsOpenOptions(ctx)
|
||||||
@@ -4501,7 +4503,12 @@ func (o *Object) prepareUpload(ctx context.Context, src fs.ObjectInfo, options [
|
|||||||
ACL: types.ObjectCannedACL(o.fs.opt.ACL),
|
ACL: types.ObjectCannedACL(o.fs.opt.ACL),
|
||||||
Key: &bucketPath,
|
Key: &bucketPath,
|
||||||
}
|
}
|
||||||
|
if tierObj, ok := src.(fs.GetTierer); ok {
|
||||||
|
tier := tierObj.GetTier()
|
||||||
|
if tier != "" {
|
||||||
|
ui.req.StorageClass = types.StorageClass(strings.ToUpper(tier))
|
||||||
|
}
|
||||||
|
}
|
||||||
// Fetch metadata if --metadata is in use
|
// Fetch metadata if --metadata is in use
|
||||||
meta, err := fs.GetMetadataOptions(ctx, o.fs, src, options)
|
meta, err := fs.GetMetadataOptions(ctx, o.fs, src, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user