GitHub - minio/minio-go: MinIO Client SDK for Go
source link: https://github.com/minio/minio-go
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
MinIO Go Client SDK for Amazon S3 Compatible Cloud Storage
The MinIO Go Client SDK provides simple APIs to access any Amazon S3 compatible object storage.
This quickstart guide will show you how to install the MinIO client SDK, connect to MinIO, and provide a walkthrough for a simple file uploader. For a complete list of APIs and examples, please take a look at the Go Client API Reference.
This document assumes that you have a working Go development environment.
Download from Github
GO111MODULE=on go get github.com/minio/minio-go/v6
Initialize MinIO Client
MinIO client requires the following four parameters specified to connect to an Amazon S3 compatible object storage.
Parameter Description endpoint URL to object storage service. accessKeyID Access key is the user ID that uniquely identifies your account. secretAccessKey Secret key is the password to your account. secure Set this value to 'true' to enable secure (HTTPS) access.package main import ( "github.com/minio/minio-go/v6" "log" ) func main() { endpoint := "play.min.io" accessKeyID := "Q3AM3UQ867SPQQA43P2F" secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG" useSSL := true // Initialize minio client object. minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL) if err != nil { log.Fatalln(err) } log.Printf("%#v\n", minioClient) // minioClient is now setup }
Quick Start Example - File Uploader
This example program connects to an object storage server, creates a bucket and uploads a file to the bucket.
We will use the MinIO server running at https://play.min.io in this example. Feel free to use this service for testing and development. Access credentials shown in this example are open to the public.
FileUploader.go
package main import ( "github.com/minio/minio-go/v6" "log" ) func main() { endpoint := "play.min.io" accessKeyID := "Q3AM3UQ867SPQQA43P2F" secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG" useSSL := true // Initialize minio client object. minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL) if err != nil { log.Fatalln(err) } // Make a new bucket called mymusic. bucketName := "mymusic" location := "us-east-1" err = minioClient.MakeBucket(bucketName, location) if err != nil { // Check to see if we already own this bucket (which happens if you run this twice) exists, errBucketExists := minioClient.BucketExists(bucketName) if errBucketExists == nil && exists { log.Printf("We already own %s\n", bucketName) } else { log.Fatalln(err) } } else { log.Printf("Successfully created %s\n", bucketName) } // Upload the zip file objectName := "golden-oldies.zip" filePath := "/tmp/golden-oldies.zip" contentType := "application/zip" // Upload the zip file with FPutObject n, err := minioClient.FPutObject(bucketName, objectName, filePath, minio.PutObjectOptions{ContentType:contentType}) if err != nil { log.Fatalln(err) } log.Printf("Successfully uploaded %s of size %d\n", objectName, n) }
Run FileUploader
go run file-uploader.go 2016/08/13 17:03:28 Successfully created mymusic 2016/08/13 17:03:40 Successfully uploaded golden-oldies.zip of size 16253413 mc ls play/mymusic/ [2016-05-27 16:02:16 PDT] 17MiB golden-oldies.zip
API Reference
The full API Reference is available here.
API Reference : Bucket Operations
API Reference : Bucket policy Operations
API Reference : Bucket notification Operations
SetBucketNotification
GetBucketNotification
RemoveAllBucketNotification
ListenBucketNotification
(MinIO Extension)
API Reference : File Object Operations
API Reference : Object Operations
GetObject
PutObject
GetObjectWithContext
PutObjectWithContext
PutObjectStreaming
StatObject
CopyObject
RemoveObject
RemoveObjects
RemoveIncompleteUpload
SelectObjectContent
API Reference : Presigned Operations
API Reference : Client custom settings
Full Examples
Full Examples : Bucket Operations
- makebucket.go
- listbuckets.go
- bucketexists.go
- removebucket.go
- listobjects.go
- listobjectsV2.go
- listincompleteuploads.go
Full Examples : Bucket policy Operations
Full Examples : Bucket lifecycle Operations
Full Examples : Bucket notification Operations
- setbucketnotification.go
- getbucketnotification.go
- removeallbucketnotification.go
- listenbucketnotification.go (MinIO Extension)
Full Examples : File Object Operations
Full Examples : Object Operations
- putobject.go
- getobject.go
- putobject-context.go
- getobject-context.go
- statobject.go
- copyobject.go
- removeobject.go
- removeincompleteupload.go
- removeobjects.go
Full Examples : Encrypted Object Operations
Full Examples : Presigned Operations
Explore Further
Contribute
License
This SDK is distributed under the Apache License, Version 2.0, see LICENSE and NOTICE for more information.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK