github.com/minio/madmin-go/v2@v2.2.1/examples/bucket-quota.go (about) 1 //go:build ignore 2 // +build ignore 3 4 // Copyright (c) 2015-2022 MinIO, Inc. 5 // 6 // This file is part of MinIO Object Storage stack 7 // 8 // This program is free software: you can redistribute it and/or modify 9 // it under the terms of the GNU Affero General Public License as 10 // published by the Free Software Foundation, either version 3 of the 11 // License, or (at your option) any later version. 12 // 13 // This program is distributed in the hope that it will be useful, 14 // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 // GNU Affero General Public License for more details. 17 // 18 // You should have received a copy of the GNU Affero General Public License 19 // along with this program. If not, see <http://www.gnu.org/licenses/>. 20 // 21 22 package main 23 24 import ( 25 "context" 26 "fmt" 27 "log" 28 29 "github.com/minio/madmin-go/v2" 30 ) 31 32 func main() { 33 // Note: YOUR-ACCESSKEYID, YOUR-SECRETACCESSKEY and my-bucketname are 34 // dummy values, please replace them with original values. 35 36 // API requests are secure (HTTPS) if secure=true and insecure (HTTP) otherwise. 37 // New returns an MinIO Admin client object. 38 madmClnt, err := madmin.New("your-minio.example.com:9000", "YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", true) 39 if err != nil { 40 log.Fatalln(err) 41 } 42 var kiB uint64 = 1 << 10 43 ctx := context.Background() 44 quota := &madmin.BucketQuota{ 45 Quota: 32 * kiB, 46 Type: madmin.HardQuota, 47 } 48 // set bucket quota config 49 if err := madmClnt.SetBucketQuota(ctx, "bucket-name", quota); err != nil { 50 log.Fatalln(err) 51 } 52 // gets bucket quota config 53 quotaCfg, err := madmClnt.GetBucketQuota(ctx, "bucket-name") 54 if err != nil { 55 log.Fatalln(err) 56 } 57 fmt.Println(quotaCfg) 58 // remove bucket quota config 59 if err := madmClnt.RemoveBucketQuota(ctx, "bucket-name"); err != nil { 60 log.Fatalln(err) 61 } 62 }