github.com/minio/madmin-go/v3@v3.0.51/examples/bucket-target.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/v3" 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 ctx := context.Background() 43 creds := madmin.Credentials{ 44 AccessKey: "access-key", 45 SecretKey: "secret-key", 46 } 47 target := madmin.BucketTarget{ 48 Endpoint: "site2:9000", 49 Credentials: creds, 50 TargetBucket: "destbucket", 51 IsSSL: false, 52 Type: madmin.ReplicationArn, 53 BandwidthLimit: 2 * 1024 * 1024, 54 } 55 // Set bucket target 56 arn, err := madmClnt.SetBucketTarget(ctx, "srcbucket", &target) 57 if err != nil { 58 log.Fatalln(err) 59 } 60 fmt.Println("replication target ARN is:", arn) 61 // List all bucket target(s) 62 target, err = madmClnt.ListBucketTargets(ctx, "srcbucket", "") 63 if err != nil { 64 log.Fatalln(err) 65 } 66 // Get bucket target for arn type "replica" 67 target, err = madmClnt.ListBucketTargets(ctx, "srcbucket", "replica") 68 if err != nil { 69 log.Fatalln(err) 70 } 71 // update credentials for target 72 creds = Credentials{ 73 AccessKey: "access-key2", 74 SecretKey: "secret-key2", 75 } 76 target = madmin.BucketTarget{ 77 Endpoint: "site2:9000", 78 Credentials: creds, 79 SourceBucket: "srcbucket", 80 TargetBucket: "destbucket", 81 IsSSL: false, 82 Arn: "arn:minio:ilm:us-east-1:3cbe15b8-82b9-44bc-a737-db9051ab359a:srcbucket", 83 } 84 // update credentials on bucket target 85 if _, err := madmClnt.UpdateBucketTarget(ctx, &target); err != nil { 86 log.Fatalln(err) 87 } 88 89 // Remove bucket target 90 arn := "arn:minio:replica::ac66b2cf-dd8f-4e7e-a882-9a64132f0d59:dest" 91 if err := madmClnt.RemoveBucketTarget(ctx, "srcbucket", arn); err != nil { 92 log.Fatalln(err) 93 } 94 }