Skip to content

Commit 029ffd2

Browse files
vupn0712sys6101
andauthored
s3: fix Copy ignoring storage class
Co-authored-by: sys6101 <[email protected]>
1 parent f81cd7d commit 029ffd2

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

backend/s3/s3.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2928,7 +2928,9 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object,
29282928
req := s3.CopyObjectInput{
29292929
MetadataDirective: types.MetadataDirectiveCopy,
29302930
}
2931-
2931+
if srcObj.storageClass != nil {
2932+
req.StorageClass = types.StorageClass(*srcObj.storageClass)
2933+
}
29322934
// Build upload options including headers and metadata
29332935
ci := fs.GetConfig(ctx)
29342936
uploadOptions := fs.MetadataAsOpenOptions(ctx)
@@ -4501,7 +4503,12 @@ func (o *Object) prepareUpload(ctx context.Context, src fs.ObjectInfo, options [
45014503
ACL: types.ObjectCannedACL(o.fs.opt.ACL),
45024504
Key: &bucketPath,
45034505
}
4504-
4506+
if tierObj, ok := src.(fs.GetTierer); ok {
4507+
tier := tierObj.GetTier()
4508+
if tier != "" {
4509+
ui.req.StorageClass = types.StorageClass(strings.ToUpper(tier))
4510+
}
4511+
}
45054512
// Fetch metadata if --metadata is in use
45064513
meta, err := fs.GetMetadataOptions(ctx, o.fs, src, options)
45074514
if err != nil {

0 commit comments

Comments
 (0)