aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_object_retention.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/s3api/s3api_object_retention.go')
-rw-r--r--weed/s3api/s3api_object_retention.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/weed/s3api/s3api_object_retention.go b/weed/s3api/s3api_object_retention.go
index 5d4f846ab..cffb12bca 100644
--- a/weed/s3api/s3api_object_retention.go
+++ b/weed/s3api/s3api_object_retention.go
@@ -188,18 +188,19 @@ func validateLegalHold(legalHold *ObjectLegalHold) error {
func validateObjectLockConfiguration(config *ObjectLockConfiguration) error {
// ObjectLockEnabled is required for bucket-level configuration
if config.ObjectLockEnabled == "" {
- return fmt.Errorf("object lock configuration must specify ObjectLockEnabled")
+ return ErrInvalidRetentionMode
}
// Validate ObjectLockEnabled value
if config.ObjectLockEnabled != s3_constants.ObjectLockEnabled {
- return fmt.Errorf("invalid object lock enabled value: %s", config.ObjectLockEnabled)
+ // ObjectLockEnabled can only be 'Enabled', any other value (including 'Disabled') is malformed XML
+ return ErrInvalidRetentionMode
}
// Validate Rule if present
if config.Rule != nil {
if config.Rule.DefaultRetention == nil {
- return fmt.Errorf("rule configuration must specify DefaultRetention")
+ return ErrInvalidRetentionPeriod
}
return validateDefaultRetention(config.Rule.DefaultRetention)
}