diff options
| author | chrislu <chris.lu@gmail.com> | 2025-07-18 17:51:14 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-07-18 17:51:14 -0700 |
| commit | 2d6532d80e8680ff06e28c5864a82235ce1da4ae (patch) | |
| tree | 984e5ed19e175c593b8d4bbfb68c56465eb6a96d /weed/s3api/object_lock_utils.go | |
| parent | dce0672ae037ce969deebf8eb9ad37a5549feb12 (diff) | |
| download | seaweedfs-2d6532d80e8680ff06e28c5864a82235ce1da4ae.tar.xz seaweedfs-2d6532d80e8680ff06e28c5864a82235ce1da4ae.zip | |
fix test_object_lock_put_obj_lock_invalid_days
Diffstat (limited to 'weed/s3api/object_lock_utils.go')
| -rw-r--r-- | weed/s3api/object_lock_utils.go | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/weed/s3api/object_lock_utils.go b/weed/s3api/object_lock_utils.go index ffde5bd36..e207ca86d 100644 --- a/weed/s3api/object_lock_utils.go +++ b/weed/s3api/object_lock_utils.go @@ -59,9 +59,11 @@ func CreateObjectLockConfiguration(enabled bool, mode string, days int, years in if mode != "" && (days > 0 || years > 0) { config.Rule = &ObjectLockRule{ DefaultRetention: &DefaultRetention{ - Mode: mode, - Days: days, - Years: years, + Mode: mode, + Days: days, + Years: years, + DaysSet: days > 0, + YearsSet: years > 0, }, } } @@ -106,12 +108,12 @@ func StoreObjectLockConfigurationInExtended(entry *filer_pb.Entry, config *Objec } // Store days - if defaultRetention.Days > 0 { + if defaultRetention.DaysSet && defaultRetention.Days > 0 { entry.Extended[s3_constants.ExtObjectLockDefaultDaysKey] = []byte(strconv.Itoa(defaultRetention.Days)) } // Store years - if defaultRetention.Years > 0 { + if defaultRetention.YearsSet && defaultRetention.Years > 0 { entry.Extended[s3_constants.ExtObjectLockDefaultYearsKey] = []byte(strconv.Itoa(defaultRetention.Years)) } } else { @@ -167,9 +169,11 @@ func LoadObjectLockConfigurationFromExtended(entry *filer_pb.Entry) (*ObjectLock if mode != "" && (days > 0 || years > 0) { config.Rule = &ObjectLockRule{ DefaultRetention: &DefaultRetention{ - Mode: mode, - Days: days, - Years: years, + Mode: mode, + Days: days, + Years: years, + DaysSet: days > 0, + YearsSet: years > 0, }, } } @@ -192,8 +196,11 @@ func ExtractObjectLockInfoFromConfig(config *ObjectLockConfiguration) (bool, str defaultRetention := config.Rule.DefaultRetention // Convert years to days for consistent representation - days := defaultRetention.Days - if defaultRetention.Years > 0 { + days := 0 + if defaultRetention.DaysSet { + days = defaultRetention.Days + } + if defaultRetention.YearsSet && defaultRetention.Years > 0 { days += defaultRetention.Years * 365 } |
