Categorygithub.com/EndlessCheng/minio-go/v7
modulepackage
7.0.6
Repository: https://github.com/endlesscheng/minio-go.git
Documentation: pkg.go.dev

# README

MinIO Go Client SDK for Amazon S3 Compatible Cloud Storage Slack Sourcegraph Apache V2 License

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/v7

Initialize MinIO Client

MinIO client requires the following four parameters specified to connect to an Amazon S3 compatible object storage.

ParameterDescription
endpointURL to object storage service.
minio.OptionsAll the options such as credentials, custom transport etc.
package main

import (
	"log"

	"github.com/minio/minio-go/v7"
	"github.com/minio/minio-go/v7/pkg/credentials"
)

func main() {
	endpoint := "play.min.io"
	accessKeyID := "Q3AM3UQ867SPQQA43P2F"
	secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
	useSSL := true

	// Initialize minio client object.
	minioClient, err := minio.New(endpoint, &minio.Options{
		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
		Secure: useSSL,
	})
	if err != nil {
		log.Fatalln(err)
	}

	log.Printf("%#v\n", minioClient) // minioClient is now set up
}

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 (
	"context"
	"log"

	"github.com/minio/minio-go/v7"
	"github.com/minio/minio-go/v7/pkg/credentials"
)

func main() {
	ctx := context.Background()
	endpoint := "play.min.io"
	accessKeyID := "Q3AM3UQ867SPQQA43P2F"
	secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
	useSSL := true

	// Initialize minio client object.
	minioClient, err := minio.New(endpoint, &minio.Options{
		Creds:  credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
		Secure: useSSL,
	})
	if err != nil {
		log.Fatalln(err)
	}

	// Make a new bucket called mymusic.
	bucketName := "mymusic"
	location := "us-east-1"

	err = minioClient.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{Region: location})
	if err != nil {
		// Check to see if we already own this bucket (which happens if you run this twice)
		exists, errBucketExists := minioClient.BucketExists(ctx, 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(ctx, 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

API Reference : File Object Operations

API Reference : Object Operations

API Reference : Presigned Operations

API Reference : Client custom settings

Full Examples

Full Examples : Bucket Operations

Full Examples : Bucket policy Operations

Full Examples : Bucket lifecycle Operations

Full Examples : Bucket encryption Operations

Full Examples : Bucket replication Operations

Full Examples : Bucket notification Operations

Full Examples : File Object Operations

Full Examples : Object Operations

Full Examples : Encrypted Object Operations

Full Examples : Presigned Operations

Explore Further

Contribute

Contributors Guide

License

This SDK is distributed under the Apache License, Version 2.0, see LICENSE and NOTICE for more information.

# Packages

No description provided by the author

# Functions

New - instantiate minio client with options.
NewCore - Returns new initialized a Core client, this CoreClient should be only used under special conditions such as need to access lower primitives and being able to use them to write your own wrappers.
NewPostPolicy - Instantiate new post policy.
NewSelectResults creates a Select Result parser that parses the response and returns a Reader that will return parsed and assembled select output.
ToErrorResponse - Returns parsed ErrorResponse struct from body and http headers.
ToObjectInfo converts http header values into ObjectInfo type, extracts metadata and fills in all the necessary fields in ObjectInfo.

# Constants

Different types of url lookup supported by the server.Initialized to BucketLookupAuto.
Different types of url lookup supported by the server.Initialized to BucketLookupAuto.
Different types of url lookup supported by the server.Initialized to BucketLookupAuto.
Compliance - compliance mode.
Constants for file header info.
Constants for file header info.
Constants for file header info.
Constants for csv quote styles.
Constants for csv quote styles.
Days - denotes no.
DefaultRetryCap - Each retry attempt never waits no longer than this maximum time duration.
DefaultRetryUnit - default unit multiplicative per retry.
Governance - governance mode.
Constants for JSONTypes.
Constants for JSONTypes.
LegalHoldDisabled indicates legal hold is disabled.
LegalHoldEnabled indicates legal hold is enabled.
MaxJitter will randomize over the full exponential backoff time.
NoJitter disables the use of jitter for randomizing the exponential backoff time.
Constants for expression type.
ReplicationStatusComplete indicates replication completed ok.
ReplicationStatusFailed indicates replication failed.
ReplicationStatusPending indicates replication is pending.
ReplicationStatusReplica indicates object is a replica of a source.
Constants for compression types under select API.
Constants for compression types under select API.
Constants for compression types under select API.
Constants for input data types.
Constants for input data types.
Constants for input data types.
Years - denotes no.

# Variables

DefaultTransport - this default transport is similar to http.DefaultTransport but with additional param DisableCompression is set to true to avoid decompressing content with 'gzip' encoding.
MaxRetry is the maximum number of retries before stopping.

# Structs

BucketInfo container for bucket metadata.
BucketVersioningConfiguration is the versioning configuration structure.
Client implements Amazon S3 compatible methods.
CommonPrefix container for prefix response.
CompletePart sub container lists individual part numbers and their md5sum, part of completeMultipartUpload.
CopyDestOptions represents options specified by user for CopyObject/ComposeObject APIs.
CopySrcOptions represents a source object to be copied, using server-side copying APIs.
Core - Inherits Client and adds new methods to expose the low level S3 APIs.
CSVInputOptions csv input specific options.
CSVOutputOptions csv output specific options.
ErrorResponse - Is the typed error returned by all API operations.
GetObjectLegalHoldOptions represents options specified by user for GetObjectLegalHold call.
GetObjectOptions are used to specify additional headers or options during GET requests.
GetObjectTaggingOptions holds the object version ID to fetch the tagging key/value pairs.
JSONInputOptions json input specific options.
JSONOutputOptions - json output specific options.
ListBucketResult container for listObjects response.
ListBucketV2Result container for listObjects response version 2.
ListMultipartUploadsResult container for ListMultipartUploads response.
ListObjectPartsResult container for ListObjectParts response.
ListObjectsOptions holds all options of a list object request.
ListVersionsResult is an element in the list object versions response.
MakeBucketOptions holds all options to tweak bucket creation.
Object represents an open object.
ObjectInfo container for object metadata.
ObjectMultipartInfo container for multipart object metadata.
ObjectPart container for particular part of an object.
Options for New method.
Owner name.
ParquetInputOptions parquet input specific options.
PostPolicy - Provides strict static type conversion and validation for Amazon S3's POST policy JSON string.
ProgressMessage is a struct for progress xml message.
PutObjectLegalHoldOptions represents options specified by user for PutObjectLegalHold call.
PutObjectOptions represents options specified by user for PutObject call.
PutObjectRetentionOptions represents options specified by user for PutObject call.
PutObjectTaggingOptions holds an object version id to update tag(s) of a specific object version.
RemoveObjectError - container of Multi Delete S3 API error.
RemoveObjectOptions represents options specified by user for RemoveObject call.
RemoveObjectsOptions represents options specified by user for RemoveObjects call.
RemoveObjectTaggingOptions holds the version id of the object to remove.
Retention - bucket level retention configuration.
SelectObjectInputSerialization - input serialization parameters.
SelectObjectOptions - represents the input select body.
SelectObjectOutputSerialization - output serialization parameters.
SelectResults is used for the streaming responses from the server.
StatsMessage is a struct for stat xml message.
UploadInfo contains information about the newly uploaded or copied object.
Version is an element in the list object versions response.

# Type aliases

BucketLookupType is type of url lookup supported by server.
CSVFileHeaderInfo - is the parameter for whether to utilize headers.
CSVQuoteFields - is the parameter for how CSV fields are quoted.
JSONType determines json input serialization type.
LegalHoldStatus - object legal hold status.
QueryExpressionType - is of what syntax the expression is, this should only be SQL.
ReplicationStatus represents replication status of object.
RetentionMode - object retention mode.
SelectCompressionType - is the parameter for what type of compression is present.
SelectObjectType - is the parameter which defines what type of object the operation is being performed on.
StatObjectOptions are used to specify additional headers or options during GET info/stat requests.
StringMap represents map with custom UnmarshalXML.
ValidityUnit - retention validity unit.