storj.io/minio@v0.0.0-20230509071714-0cbc90f649b1/pkg/madmin/examples/bucket-target.go (about) 1 //go:build ignore 2 // +build ignore 3 4 /* 5 * MinIO Cloud Storage, (C) 2020 MinIO, Inc. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 */ 20 21 package main 22 23 import ( 24 "context" 25 "fmt" 26 "log" 27 28 "storj.io/minio/pkg/auth" 29 "storj.io/minio/pkg/madmin" 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, err := auth.CreateCredentials("access-key", "secret-key") 44 if err != nil { 45 log.Fatalln(err) 46 } 47 target := madmin.BucketTarget{Endpoint: "site2:9000", Credentials: creds, TargetBucket: "destbucket", IsSSL: false, Type: madmin.ReplicationArn, BandwidthLimit: 2 * 1024 * 1024} 48 // Set bucket target 49 arn, err := madmClnt.SetBucketTarget(ctx, "srcbucket", &target) 50 if err != nil { 51 log.Fatalln(err) 52 } 53 fmt.Println("replication target ARN is:", arn) 54 // List all bucket target(s) 55 target, err = madmClnt.ListBucketTargets(ctx, "srcbucket", "") 56 if err != nil { 57 log.Fatalln(err) 58 } 59 // Get bucket target for arn type "replica" 60 target, err = madmClnt.ListBucketTargets(ctx, "srcbucket", "replica") 61 if err != nil { 62 log.Fatalln(err) 63 } 64 // update credentials for target 65 creds, err := auth.CreateCredentials("access-key2", "secret-key2") 66 if err != nil { 67 log.Fatalln(err) 68 } 69 target := madmin.BucketTarget{Endpoint: "site2:9000", Credentials: creds, SourceBucket: "srcbucket", TargetBucket: "destbucket", IsSSL: false, Arn: "arn:minio:ilm:us-east-1:3cbe15b8-82b9-44bc-a737-db9051ab359a:srcbucket"} 70 // update credentials on bucket target 71 if _, err := madmClnt.UpdateBucketTarget(ctx, &target); err != nil { 72 log.Fatalln(err) 73 } 74 75 // Remove bucket target 76 arn := "arn:minio:replica::ac66b2cf-dd8f-4e7e-a882-9a64132f0d59:dest" 77 if err := madmClnt.RemoveBucketTarget(ctx, "srcbucket", arn); err != nil { 78 log.Fatalln(err) 79 } 80 81 }