packagemainimport("bytes""context""fmt""log""os""github.com/minio/minio-go/v7""github.com/minio/minio-go/v7/pkg/credentials")funcrequired(namestring)string{value:=os.Getenv(name)ifvalue==""{log.Fatalf("%s is required",name)}returnvalue}funcmain(){ctx:=context.Background()client,err:=minio.New(required("S3_ENDPOINT"),&minio.Options{Creds:credentials.NewStaticV4(required("S3_ACCESS_KEY"),required("S3_SECRET_KEY"),"",),Secure:os.Getenv("S3_USE_SSL")=="true",})iferr!=nil{log.Fatal(err)}constbucket="go-quickstart"constobject="hello.txt"exists,err:=client.BucketExists(ctx,bucket)iferr!=nil{log.Fatal(err)}if!exists{iferr=client.MakeBucket(ctx,bucket,minio.MakeBucketOptions{Region:"us-east-1",});err!=nil{log.Fatal(err)}}payload:=[]byte("hello from SILO\n")info,err:=client.PutObject(ctx,bucket,object,bytes.NewReader(payload),int64(len(payload)),minio.PutObjectOptions{ContentType:"text/plain"},)iferr!=nil{log.Fatal(err)}fmt.Printf("Uploaded %s: %d bytes\n",info.Key,info.Size)}