diff options
| author | chrislu <chris.lu@gmail.com> | 2025-07-18 01:39:23 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-07-18 01:39:23 -0700 |
| commit | bcc7a74a25d21ad1585d1df0206cb8251e0df06c (patch) | |
| tree | 6fec86e1b178b8db706d605a6579e33afb222926 /weed/s3api/s3api_bucket_config.go | |
| parent | 0d4eeb67be4eee895f28d3967365984e52c2ad27 (diff) | |
| download | seaweedfs-bcc7a74a25d21ad1585d1df0206cb8251e0df06c.tar.xz seaweedfs-bcc7a74a25d21ad1585d1df0206cb8251e0df06c.zip | |
use fields instead of xml
Diffstat (limited to 'weed/s3api/s3api_bucket_config.go')
| -rw-r--r-- | weed/s3api/s3api_bucket_config.go | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/weed/s3api/s3api_bucket_config.go b/weed/s3api/s3api_bucket_config.go index 1c2bcbd98..725ee3596 100644 --- a/weed/s3api/s3api_bucket_config.go +++ b/weed/s3api/s3api_bucket_config.go @@ -2,7 +2,6 @@ package s3api import ( "encoding/json" - "encoding/xml" "fmt" "path/filepath" "strings" @@ -128,14 +127,9 @@ func (s3a *S3ApiServer) getBucketConfig(bucket string) (*BucketConfig, s3err.Err config.Owner = string(owner) } // Parse Object Lock configuration if present - if objectLockConfigXML, exists := bucketEntry.Extended[s3_constants.ExtObjectLockConfigKey]; exists { - var objectLockConfig ObjectLockConfiguration - if err := xml.Unmarshal(objectLockConfigXML, &objectLockConfig); err != nil { - glog.Errorf("getBucketConfig: failed to parse Object Lock configuration for bucket %s: %v", bucket, err) - } else { - config.ObjectLockConfig = &objectLockConfig - glog.V(2).Infof("getBucketConfig: cached Object Lock configuration for bucket %s", bucket) - } + if objectLockConfig, found := LoadObjectLockConfigurationFromExtended(bucketEntry); found { + config.ObjectLockConfig = objectLockConfig + glog.V(2).Infof("getBucketConfig: cached Object Lock configuration for bucket %s", bucket) } } @@ -189,19 +183,12 @@ func (s3a *S3ApiServer) updateBucketConfig(bucket string, updateFn func(*BucketC if config.Owner != "" { config.Entry.Extended[s3_constants.ExtAmzOwnerKey] = []byte(config.Owner) } - // Update Object Lock configuration in extended attributes + // Update Object Lock configuration if config.ObjectLockConfig != nil { - configXML, err := xml.Marshal(config.ObjectLockConfig) - if err != nil { - glog.Errorf("updateBucketConfig: failed to marshal Object Lock configuration for bucket %s: %v", bucket, err) + if err := StoreObjectLockConfigurationInExtended(config.Entry, config.ObjectLockConfig); err != nil { + glog.Errorf("updateBucketConfig: failed to store Object Lock configuration for bucket %s: %v", bucket, err) return s3err.ErrInternalError } - config.Entry.Extended[s3_constants.ExtObjectLockConfigKey] = configXML - - // Also set the boolean flag for backward compatibility - if config.ObjectLockConfig.ObjectLockEnabled != "" { - config.Entry.Extended[s3_constants.ExtObjectLockEnabledKey] = []byte(config.ObjectLockConfig.ObjectLockEnabled) - } } // Save to filer |
