aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/object_lock_utils.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2025-07-18 17:51:14 -0700
committerchrislu <chris.lu@gmail.com>2025-07-18 17:51:14 -0700
commit2d6532d80e8680ff06e28c5864a82235ce1da4ae (patch)
tree984e5ed19e175c593b8d4bbfb68c56465eb6a96d /weed/s3api/object_lock_utils.go
parentdce0672ae037ce969deebf8eb9ad37a5549feb12 (diff)
downloadseaweedfs-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.go27
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
}