mirror of
https://github.com/minio/minio.git
synced 2025-02-09 20:58:08 -05:00
fix: support export bucket policy with ExportBucketMetadata (#20308)
This commit is contained in:
parent
9511056f44
commit
2d44c161c7
@ -427,6 +427,21 @@ func (a adminAPIHandlers) ExportBucketMetadataHandler(w http.ResponseWriter, r *
|
|||||||
cfgPath := pathJoin(bi.Name, cfgFile)
|
cfgPath := pathJoin(bi.Name, cfgFile)
|
||||||
bucket := bi.Name
|
bucket := bi.Name
|
||||||
switch cfgFile {
|
switch cfgFile {
|
||||||
|
case bucketPolicyConfig:
|
||||||
|
config, _, err := globalBucketMetadataSys.GetBucketPolicy(bucket)
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, BucketPolicyNotFound{Bucket: bucket}) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
writeErrorResponse(ctx, w, exportError(ctx, err, cfgFile, bucket), r.URL)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
configData, err := json.Marshal(config)
|
||||||
|
if err != nil {
|
||||||
|
writeErrorResponse(ctx, w, exportError(ctx, err, cfgFile, bucket), r.URL)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
rawDataFn(bytes.NewReader(configData), cfgPath, len(configData))
|
||||||
case bucketNotificationConfig:
|
case bucketNotificationConfig:
|
||||||
config, err := globalBucketMetadataSys.GetNotificationConfig(bucket)
|
config, err := globalBucketMetadataSys.GetNotificationConfig(bucket)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -264,6 +264,21 @@ func (sys *BucketMetadataSys) GetVersioningConfig(bucket string) (*versioning.Ve
|
|||||||
return meta.versioningConfig, meta.VersioningConfigUpdatedAt, nil
|
return meta.versioningConfig, meta.VersioningConfigUpdatedAt, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetBucketPolicy returns configured bucket policy
|
||||||
|
func (sys *BucketMetadataSys) GetBucketPolicy(bucket string) (*policy.BucketPolicy, time.Time, error) {
|
||||||
|
meta, _, err := sys.GetConfig(GlobalContext, bucket)
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, errConfigNotFound) {
|
||||||
|
return nil, time.Time{}, BucketPolicyNotFound{Bucket: bucket}
|
||||||
|
}
|
||||||
|
return nil, time.Time{}, err
|
||||||
|
}
|
||||||
|
if meta.policyConfig == nil {
|
||||||
|
return nil, time.Time{}, BucketPolicyNotFound{Bucket: bucket}
|
||||||
|
}
|
||||||
|
return meta.policyConfig, meta.PolicyConfigUpdatedAt, nil
|
||||||
|
}
|
||||||
|
|
||||||
// GetTaggingConfig returns configured tagging config
|
// GetTaggingConfig returns configured tagging config
|
||||||
// The returned object may not be modified.
|
// The returned object may not be modified.
|
||||||
func (sys *BucketMetadataSys) GetTaggingConfig(bucket string) (*tags.Tags, time.Time, error) {
|
func (sys *BucketMetadataSys) GetTaggingConfig(bucket string) (*tags.Tags, time.Time, error) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user