1// +build example
2
3/*
4 * MinIO Go Library for Amazon S3 Compatible Cloud Storage
5 * Copyright 2015-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
20package main
21
22import (
23	"context"
24	"encoding/xml"
25	"log"
26	"os"
27
28	"github.com/minio/minio-go/v7"
29	"github.com/minio/minio-go/v7/pkg/credentials"
30)
31
32func main() {
33	// Note: YOUR-ACCESSKEYID, YOUR-SECRETACCESSKEY and my-bucketname are
34	// dummy values, please replace them with original values.
35
36	// Requests are always secure (HTTPS) by default. Set secure=false to enable insecure (HTTP) access.
37	// This boolean value is the last argument for New().
38
39	// New returns an Amazon S3 compatible client object. API compatibility (v2 or v4) is automatically
40	// determined based on the Endpoint value.
41	s3Client, err := minio.New("s3.amazonaws.com", &minio.Options{
42		Creds:  credentials.NewStaticV4("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", ""),
43		Secure: true,
44	})
45	if err != nil {
46		log.Fatalln(err)
47	}
48
49	// s3Client.TraceOn(os.Stderr)
50
51	// Get bucket lifecycle from S3
52	lifecycle, err := s3Client.GetBucketLifecycle(context.Background(), "my-bucketname")
53	if err != nil {
54		log.Fatalln(err)
55	}
56
57	// Save the lifecycle document to a file
58	localLifecycleFile, err := os.Create("lifecycle.json")
59	if err != nil {
60		log.Fatalln(err)
61	}
62	defer localLifecycleFile.Close()
63
64	enc := xml.NewEncoder(localLifecycleFile)
65	enc.Indent("  ", "    ")
66	if err := enc.Encode(lifecycle); err != nil {
67		log.Fatalln(err)
68	}
69}
70