/* * MinIO Cloud Storage, (C) 2020 MinIO, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cmd import ( "context" "encoding/xml" "path" "github.com/minio/minio-go/v6/pkg/tags" ) func saveBucketTagging(ctx context.Context, objAPI ObjectLayer, bucket string, t *tags.Tags) error { data, err := xml.Marshal(t) if err != nil { return toObjectErr(err, bucket) } configFile := path.Join(bucketConfigPrefix, bucket, bucketTaggingConfigFile) if err := saveConfig(ctx, objAPI, configFile, data); err != nil { return toObjectErr(err, bucket) } return nil } func deleteBucketTagging(ctx context.Context, objAPI ObjectLayer, bucket string) error { configFile := path.Join(bucketConfigPrefix, bucket, bucketTaggingConfigFile) if err := deleteConfig(ctx, objAPI, configFile); err != nil && err != errConfigNotFound { return toObjectErr(err, bucket) } return nil } func readBucketTagging(ctx context.Context, objAPI ObjectLayer, bucket string) (*tags.Tags, error) { configFile := path.Join(bucketConfigPrefix, bucket, bucketTaggingConfigFile) configData, err := readConfig(ctx, objAPI, configFile) if err != nil { if err == errConfigNotFound { return nil, BucketTaggingNotFound{Bucket: bucket} } return nil, toObjectErr(err, bucket) } t := &tags.Tags{} if err = xml.Unmarshal(configData, t); err != nil { return nil, toObjectErr(err, bucket) } return t, nil }