Movatterモバイル変換


[0]ホーム

URL:


Close Sidebar

Go Client API Reference

Initialize MinIO client object

MinIO

packagemainimport("log""github.com/minio/minio-go/v7""github.com/minio/minio-go/v7/pkg/credentials")funcmain(){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,})iferr!=nil{log.Fatalln(err)}log.Printf("%#v\n",minioClient)// minioClient is now setup}

AWS S3

packagemainimport("fmt""github.com/minio/minio-go/v7""github.com/minio/minio-go/v7/pkg/credentials")funcmain(){// Initialize minio client object.s3Client,err:=minio.New("s3.amazonaws.com",&minio.Options{Creds:credentials.NewStaticV4("YOUR-ACCESSKEYID","YOUR-SECRETACCESSKEY",""),Secure:true,})iferr!=nil{fmt.Println(err)return}}
Bucket operationsObject operationsPresigned operationsBucket Policy/Notification OperationsClient custom settings
MakeBucketAppendObjectPresignedGetObjectSetBucketPolicySetAppInfo
GetObjectPresignedPutObjectGetBucketPolicy
ListBucketsPutObjectPresignedHeadObjectSetBucketNotificationTraceOn
BucketExistsCopyObjectPresignedPostPolicyGetBucketNotificationTraceOff
RemoveBucketStatObjectRemoveAllBucketNotificationSetS3TransferAccelerate
ListObjectsRemoveObjectListenBucketNotification
RemoveObjectsSetBucketLifecycle
ListIncompleteUploadsRemoveIncompleteUploadGetBucketLifecycle
SetBucketTaggingFPutObjectSetObjectLockConfig
GetBucketTaggingFGetObjectGetObjectLockConfig
RemoveBucketTaggingComposeObjectEnableVersioning
SetBucketReplicationDisableVersioning
GetBucketReplicationPutObjectRetentionGetBucketEncryption
RemoveBucketReplicationGetObjectRetentionRemoveBucketEncryption
CancelBucketReplicationResyncPutObjectLegalHold
GetObjectLegalHold
SelectObjectContent
PutObjectTagging
GetObjectTagging
RemoveObjectTagging
RestoreObject
GetObjectAttributes

1. Constructor

New(endpoint string, opts *Options) (*Client, error)

Initializes a new client object.

Parameters

ParamTypeDescription
endpointstringS3 compatible object storage endpoint
optsminio.OptionsOptions for constructing a new client

minio.Options

FieldTypeDescription
opts.Creds*credentials.CredentialsS3 compatible object storage access credentials
opts.SecureboolIf ’true’ API requests will be secure (HTTPS), and insecure (HTTP) otherwise
opts.Transporthttp.RoundTripperCustom transport for executing HTTP transactions
opts.RegionstringS3 compatible object storage region
opts.BucketLookupBucketLookupTypeBucket lookup type can be one of the following values
minio.BucketLookupDNS
minio.BucketLookupPath
minio.BucketLookupAuto

2. Bucket operations

MakeBucket(ctx context.Context, bucketName string, opts MakeBucketOptions)

Creates a new bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
optsminio.MakeBucketOptionsBucket options such asRegion where the bucket is to be created. Default value is us-east-1. Other valid values are listed below. Note: When used with minio server, use the region specified in its config file (defaults to us-east-1).
us-east-1
us-east-2
us-west-1
us-west-2
ca-central-1
eu-west-1
eu-west-2
eu-west-3
eu-central-1
eu-north-1
ap-east-1
ap-south-1
ap-southeast-1
ap-southeast-2
ap-northeast-1
ap-northeast-2
ap-northeast-3
me-south-1
sa-east-1
us-gov-west-1
us-gov-east-1
cn-north-1
cn-northwest-1

Example

// Create a bucket at region 'us-east-1' with object locking enabled.err=minioClient.MakeBucket(context.Background(),"mybucket",minio.MakeBucketOptions{Region:"us-east-1",ObjectLocking:true})iferr!=nil{fmt.Println(err)return}fmt.Println("Successfully created mybucket.")

ListBuckets(ctx context.Context) ([]BucketInfo, error)

Lists all buckets.

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketList[]minio.BucketInfoLists of all buckets

minio.BucketInfo

FieldTypeDescription
bucket.NamestringName of the bucket
bucket.CreationDatetime.TimeDate of bucket creation

Example

buckets,err:=minioClient.ListBuckets(context.Background())iferr!=nil{fmt.Println(err)return}for_,bucket:=rangebuckets{fmt.Println(bucket)}

BucketExists(ctx context.Context, bucketName string) (found bool, err error)

Checks if a bucket exists.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
foundboolIndicates whether bucket exists or not
errerrorStandard Error

Example

found,err:=minioClient.BucketExists(context.Background(),"mybucket")iferr!=nil{fmt.Println(err)return}iffound{fmt.Println("Bucket found")}

RemoveBucket(ctx context.Context, bucketName string) error

Removes a bucket, bucket should be empty to be successfully removed.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Example

err=minioClient.RemoveBucket(context.Background(),"mybucket")iferr!=nil{fmt.Println(err)return}

ListObjects(ctx context.Context, bucketName string, opts ListObjectsOptions) <-chan ObjectInfo

Lists objects in a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
optsminio.ListObjectsOptionsOptions per to list objects

Return Value

ParamTypeDescription
objectInfochan minio.ObjectInfoRead channel for all objects in the bucket, the object is of the format listed below:

minio.ObjectInfo

FieldTypeDescription
objectInfo.KeystringName of the object
objectInfo.Sizeint64Size of the object
objectInfo.ETagstringMD5 checksum of the object
objectInfo.LastModifiedtime.TimeTime when object was last modified
ctx,cancel:=context.WithCancel(context.Background())defercancel()objectCh:=minioClient.ListObjects(ctx,"mybucket",minio.ListObjectsOptions{Prefix:"myprefix",Recursive:true,})forobject:=rangeobjectCh{ifobject.Err!=nil{fmt.Println(object.Err)return}fmt.Println(object)}

ListIncompleteUploads(ctx context.Context, bucketName, prefix string, recursive bool) <- chan ObjectMultipartInfo

Lists partially uploaded objects in a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
prefixstringPrefix of objects that are partially uploaded
recursivebooltrue indicates recursive style listing andfalse indicates directory style listing delimited by ‘/’.

Return Value

ParamTypeDescription
multiPartInfochan minio.ObjectMultipartInfoEmits multipart objects of the format listed below:

minio.ObjectMultipartInfo

FieldTypeDescription
multiPartObjInfo.KeystringName of incompletely uploaded object
multiPartObjInfo.UploadIDstringUpload ID of incompletely uploaded object
multiPartObjInfo.Sizeint64Size of incompletely uploaded object

Example

isRecursive:=true// Recursively list everything at 'myprefix'multiPartObjectCh:=minioClient.ListIncompleteUploads(context.Background(),"mybucket","myprefix",isRecursive)formultiPartObject:=rangemultiPartObjectCh{ifmultiPartObject.Err!=nil{fmt.Println(multiPartObject.Err)return}fmt.Println(multiPartObject)}

SetBucketTagging(ctx context.Context, bucketName string, tags *tags.Tags) error

Sets tags to a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
tags*tags.TagsBucket tags

Example

// Create tags from a map.tags,err:=tags.NewTags(map[string]string{"Tag1":"Value1","Tag2":"Value2",},false)iferr!=nil{log.Fatalln(err)}err=minioClient.SetBucketTagging(context.Background(),"my-bucketname",tags)iferr!=nil{log.Fatalln(err)}

GetBucketTagging(ctx context.Context, bucketName string) (*tags.Tags, error)

Gets tags of a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Value

ParamTypeDescription
tags*tags.TagsBucket tags

Example

tags,err:=minioClient.GetBucketTagging(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}fmt.Printf("Fetched Object Tags: %v\n",tags)

RemoveBucketTagging(ctx context.Context, bucketName string) error

Removes all tags on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Example

err:=minioClient.RemoveBucketTagging(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}

3. Object operations

AppendObject(ctx context.Context, bucketName, objectName string, reader io.Reader, objectSize int64, opts AppendObjectOptions) (UploadInfo, error)

Parameters

ParamTypeDescription
ctxcontext.ContextCustom Context for timeout/cancellation of the call
bucketNamestringName of bucket
objectNamestringName of Object
readerio.Readerstandard Reader Interface
objectSizeint64Size of the object
optsminio.AppendObjectOptionsAdditional Options for Append Operation

Return Value

ParamTypeDescription
infominio.UploadInfoInformation about the newly uploaded or copied object
errerrorStandard error

minio.AppendObjectOptions

FieldTypeDescription
opts.Progressio.ReaderA progress reader to indicate progress
opts.ChuckSizeuint64Maximum Append Size
opts.DisableContentSha256boolAggressively disable sha256 payload.

minio.UploadInfo

FieldTypeDescription
info.BucketstringName of bucket
info.KeystringName of object
info.ETagstringMD5 checksum of the object
info.SizestringSize of object

Example

opt:=minio.AppendObjectOptions{}info,err:=minio.AppendObject(context.Background(),"my-bucket-name","my-object-name",my_progress_reader,size,opt)iferr!=nil{log.Fatalln(err)}

GetObject(ctx context.Context, bucketName, objectName string, opts GetObjectOptions) (*Object, error)

Returns a stream of the object data. Most of the common errors occur when reading the stream.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
optsminio.GetObjectOptionsOptions for GET requests specifying additional options like encryption, If-Match

minio.GetObjectOptions

FieldTypeDescription
opts.ServerSideEncryptionencrypt.ServerSideInterface provided byencrypt package to specify server-side-encryption. (For more information seehttps://godoc.org/github.com/minio/minio-go/v7)
opts.Internalminio.AdvancedGetOptionsThis option is intended for internal use by MinIO server. This option should not be set unless the application is aware of intended use.

Return Value

ParamTypeDescription
object*minio.Objectminio.Object represents object reader. It implements io.Reader, io.Seeker, io.ReaderAt and io.Closer interfaces.

Example

object,err:=minioClient.GetObject(context.Background(),"mybucket","myobject",minio.GetObjectOptions{})iferr!=nil{fmt.Println(err)return}deferobject.Close()localFile,err:=os.Create("/tmp/local-file.jpg")iferr!=nil{fmt.Println(err)return}deferlocalFile.Close()if_,err=io.Copy(localFile,object);err!=nil{fmt.Println(err)return}

FGetObject(ctx context.Context, bucketName, objectName, filePath string, opts GetObjectOptions) error

Downloads and saves the object as a file in the local filesystem.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
filePathstringPath to download object to
optsminio.GetObjectOptionsOptions for GET requests specifying additional options like encryption, If-Match

Example

err=minioClient.FGetObject(context.Background(),"mybucket","myobject","/tmp/myobject",minio.GetObjectOptions{})iferr!=nil{fmt.Println(err)return}

PutObjectFanOut(ctx context.Context, bucket string, body io.Reader, fanOutReq …PutObjectFanOutRequest) ([]PutObjectFanOutResponse, error)

A variant of PutObject instead of writing a single object from a single stream multiple objects are written, defined via a list ofPutObjectFanOutRequest. Each entry inPutObjectFanOutRequest carries an object keyname and its relevant metadata if any.Key is mandatory, rest of the other options in *PutObjectFanOutRequest( are optional.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
fanOutDataio.ReaderAny Go type that implements io.Reader
fanOutReqminio.PutObjectFanOutRequestUser input list of all the objects that will be created on the server

minio.PutObjectFanOutRequest

FieldTypeDescription
Entries[]minio.PutObjectFanOutEntyryList of object fan out entries
Checksumsmap[string]stringChecksums for the input data
SSE_encrypt.ServerSideEncryption settings for the entire fan-out

minio.PutObjectFanOutEntry

FieldTypeDescription
KeystringName of the object
UserMetadatamap[string]stringMap of user metadata
UserTagsmap[string]stringMap of user object tags
ContentTypestringContent type of object, e.g “application/text”
ContentEncodingstringContent encoding of object, e.g “gzip”
ContentDispositionstringContent disposition of object, “inline”
ContentLanguagestringContent language of object, e.g “French”
CacheControlstringUsed to specify directives for caching mechanisms in both requests and responses e.g “max-age=600”
Retentionminio.RetentionModeRetention mode to be set, e.g “COMPLIANCE”
RetainUntilDatetime.TimeTime until which the retention applied is valid

minio.PutObjectFanOutResponse

FieldTypeDescription
KeystringName of the object
ETagstringETag opaque unique value of the object
VersionIDstringVersionID of the uploaded object
LastModified_time.TimeLast modified time of the latest object
ErrorerrorIs nonnil only when the fan-out for a specific object failed

PutObject(ctx context.Context, bucketName, objectName string, reader io.Reader, objectSize int64,opts PutObjectOptions) (info UploadInfo, err error)

Uploads objects that are less than 128MiB in a single PUT operation. For objects that are greater than 128MiB in size, PutObject seamlessly uploads the object as parts of 128MiB or more depending on the actual file size. The max upload size for an object is 5TB.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
readerio.ReaderAny Go type that implements io.Reader
objectSizeint64Size of the object being uploaded. Pass -1 if stream size is unknown (Warning: passing -1 will allocate a large amount of memory)
optsminio.PutObjectOptionsAllows user to set optional custom metadata, content headers, encryption keys and number of threads for multipart upload operation.

minio.PutObjectOptions

FieldTypeDescription
opts.UserMetadatamap[string]stringMap of user metadata
opts.UserTagsmap[string]stringMap of user object tags
opts.Progressio.ReaderReader to fetch progress of an upload
opts.ContentTypestringContent type of object, e.g “application/text”
opts.ContentEncodingstringContent encoding of object, e.g “gzip”
opts.ContentDispositionstringContent disposition of object, “inline”
opts.ContentLanguagestringContent language of object, e.g “French”
opts.CacheControlstringUsed to specify directives for caching mechanisms in both requests and responses e.g “max-age=600”
opts.Mode*minio.RetentionModeRetention mode to be set, e.g “COMPLIANCE”
opts.RetainUntilDate*time.TimeTime until which the retention applied is valid
opts.ServerSideEncryptionencrypt.ServerSideInterface provided byencrypt package to specify server-side-encryption. (For more information seehttps://godoc.org/github.com/minio/minio-go/v7)
opts.StorageClassstringSpecify storage class for the object. Supported values for MinIO server areREDUCED_REDUNDANCY andSTANDARD
opts.WebsiteRedirectLocationstringSpecify a redirect for the object, to another object in the same bucket or to a external URL.
opts.SendContentMd5boolSpecify if you’d like to sendcontent-md5 header with PutObject operation. Note that setting this flag will cause higher memory usage because of in-memorymd5sum calculation.
opts.PartSizeuint64Specify a custom part size used for uploading the object
opts.Internalminio.AdvancedPutOptionsThis option is intended for internal use by MinIO server and should not be set unless the application is aware of intended use.
minio.UploadInfo
FieldTypeDescription
info.ETagstringThe ETag of the new object
info.VersionIDstringThe version identifyer of the new object

Example

file,err:=os.Open("my-testfile")iferr!=nil{fmt.Println(err)return}deferfile.Close()fileStat,err:=file.Stat()iferr!=nil{fmt.Println(err)return}uploadInfo,err:=minioClient.PutObject(context.Background(),"mybucket","myobject",file,fileStat.Size(),minio.PutObjectOptions{ContentType:"application/octet-stream"})iferr!=nil{fmt.Println(err)return}fmt.Println("Successfully uploaded bytes: ",uploadInfo)

API methods PutObjectWithSize, PutObjectWithMetadata, PutObjectStreaming, and PutObjectWithProgress available in minio-go SDK release v3.0.3 are replaced by the new PutObject call variant that accepts a pointer to PutObjectOptions struct.

CopyObject(ctx context.Context, dst CopyDestOptions, src CopySrcOptions) (UploadInfo, error)

Create or replace an object through server-side copying of an existing object. It supports conditional copying, copying a part of an object and server-side encryption of destination and decryption of source. See theCopySrcOptions andDestinationInfo types for further details.

To copy multiple source objects into a single destination object see theComposeObject API.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
dstminio.CopyDestOptionsArgument describing the destination object
srcminio.CopySrcOptionsArgument describing the source object

minio.UploadInfo

FieldTypeDescription
info.ETagstringThe ETag of the new object
info.VersionIDstringThe version identifyer of the new object

Example

// Use-case 1: Simple copy object with no conditions.// Source objectsrcOpts:=minio.CopySrcOptions{Bucket:"my-sourcebucketname",Object:"my-sourceobjectname",}// Destination objectdstOpts:=minio.CopyDestOptions{Bucket:"my-bucketname",Object:"my-objectname",}// Copy object calluploadInfo,err:=minioClient.CopyObject(context.Background(),dstOpts,srcOpts)iferr!=nil{fmt.Println(err)return}fmt.Println("Successfully copied object:",uploadInfo)
// Use-case 2:// Copy object with copy-conditions, and copying only part of the source object.// 1. that matches a given ETag// 2. and modified after 1st April 2014// 3. but unmodified since 23rd April 2014// 4. copy only first 1MiB of object.// Source objectsrcOpts:=minio.CopySrcOptions{Bucket:"my-sourcebucketname",Object:"my-sourceobjectname",MatchETag:"31624deb84149d2f8ef9c385918b653a",MatchModifiedSince:time.Date(2014,time.April,1,0,0,0,0,time.UTC),MatchUnmodifiedSince:time.Date(2014,time.April,23,0,0,0,0,time.UTC),Start:0,End:1024*1024-1,}// Destination objectdstOpts:=minio.CopyDestOptions{Bucket:"my-bucketname",Object:"my-objectname",}// Copy object call_,err=minioClient.CopyObject(context.Background(),dstOpts,srcOpts)iferr!=nil{fmt.Println(err)return}fmt.Println("Successfully copied object:",uploadInfo)

ComposeObject(ctx context.Context, dst minio.CopyDestOptions, srcs …minio.CopySrcOptions) (UploadInfo, error)

Create an object by concatenating a list of source objects using server-side copying.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
dstminio.CopyDestOptionsStruct with info about the object to be created.
srcs…minio.CopySrcOptionsSlice of struct with info about source objects to be concatenated in order.

minio.UploadInfo

FieldTypeDescription
info.ETagstringThe ETag of the new object
info.VersionIDstringThe version identifyer of the new object

Example

// Prepare source decryption key (here we assume same key to// decrypt all source objects.)sseSrc:=encrypt.DefaultPBKDF([]byte("password"),[]byte("salt"))// Source objects to concatenate. We also specify decryption// key for eachsrc1Opts:=minio.CopySrcOptions{Bucket:"bucket1",Object:"object1",Encryption:sseSrc,MatchETag:"31624deb84149d2f8ef9c385918b653a",}src2Opts:=minio.CopySrcOptions{Bucket:"bucket2",Object:"object2",Encryption:sseSrc,MatchETag:"f8ef9c385918b653a31624deb84149d2",}src3Opts:=minio.CopySrcOptions{Bucket:"bucket3",Object:"object3",Encryption:sseSrc,MatchETag:"5918b653a31624deb84149d2f8ef9c38",}// Prepare destination encryption keysseDst:=encrypt.DefaultPBKDF([]byte("new-password"),[]byte("new-salt"))// Create destination infodstOpts:=CopyDestOptions{Bucket:"bucket",Object:"object",Encryption:sseDst,}// Compose object call by concatenating multiple source files.uploadInfo,err:=minioClient.ComposeObject(context.Background(),dst,srcs...)iferr!=nil{fmt.Println(err)return}fmt.Println("Composed object successfully:",uploadInfo)

FPutObject(ctx context.Context, bucketName, objectName, filePath, opts PutObjectOptions) (info UploadInfo, err error)

Uploads contents from a file to objectName.

FPutObject uploads objects that are less than 128MiB in a single PUT operation. For objects that are greater than the 128MiB in size, FPutObject seamlessly uploads the object in chunks of 128MiB or more depending on the actual file size. The max upload size for an object is 5TB.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
filePathstringPath to file to be uploaded
optsminio.PutObjectOptionsPointer to struct that allows user to set optional custom metadata, content-type, content-encoding, content-disposition, content-language and cache-control headers, pass encryption module for encrypting objects, and optionally configure number of threads for multipart put operation.

minio.UploadInfo

FieldTypeDescription
info.ETagstringThe ETag of the new object
info.VersionIDstringThe version identifyer of the new object

Example

uploadInfo,err:=minioClient.FPutObject(context.Background(),"my-bucketname","my-objectname","my-filename.csv",minio.PutObjectOptions{ContentType:"application/csv",});iferr!=nil{fmt.Println(err)return}fmt.Println("Successfully uploaded object: ",uploadInfo)

StatObject(ctx context.Context, bucketName, objectName string, opts StatObjectOptions) (ObjectInfo, error)

Fetch metadata of an object.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
optsminio.StatObjectOptionsOptions for GET info/stat requests specifying additional options like encryption, If-Match

Return Value

ParamTypeDescription
objInfominio.ObjectInfoObject stat information

minio.ObjectInfo

FieldTypeDescription
objInfo.LastModifiedtime.TimeTime when object was last modified
objInfo.ETagstringMD5 checksum of the object
objInfo.ContentTypestringContent type of the object
objInfo.Sizeint64Size of the object

Example

objInfo,err:=minioClient.StatObject(context.Background(),"mybucket","myobject",minio.StatObjectOptions{})iferr!=nil{fmt.Println(err)return}fmt.Println(objInfo)

RemoveObject(ctx context.Context, bucketName, objectName string, opts minio.RemoveObjectOptions) error

Removes an object with some specified options

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
optsminio.RemoveObjectOptionsAllows user to set options

minio.RemoveObjectOptions

FieldTypeDescription
opts.GovernanceBypassboolSet the bypass governance header to delete an object locked with GOVERNANCE mode
opts.VersionIDstringVersion ID of the object to delete
opts.Internalminio.AdvancedRemoveOptionsThis option is intended for internal use by MinIO server and should not be set unless the application is aware of intended use.
opts:=minio.RemoveObjectOptions{GovernanceBypass:true,VersionID:"myversionid",}err=minioClient.RemoveObject(context.Background(),"mybucket","myobject",opts)iferr!=nil{fmt.Println(err)return}

PutObjectRetention(ctx context.Context, bucketName, objectName string, opts minio.PutObjectRetentionOptions) error

Applies object retention lock onto an object.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
optsminio.PutObjectRetentionOptionsAllows user to set options like retention mode, expiry date and version id

RemoveObjects(ctx context.Context, bucketName string, objectsCh <-chan ObjectInfo, opts RemoveObjectsOptions) <-chan RemoveObjectError

Removes a list of objects obtained from an input channel. The call sends a delete request to the server up to 1000 objects at a time. The errors observed are sent over the error channel.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectsChchan minio.ObjectInfoChannel of objects to be removed
optsminio.RemoveObjectsOptionsAllows user to set options

minio.RemoveObjectsOptions

FieldTypeDescription
opts.GovernanceBypassboolSet the bypass governance header to delete an object locked with GOVERNANCE mode

Return Values

ParamTypeDescription
errorCh<-chan minio.RemoveObjectErrorReceive-only channel of errors observed during deletion.
objectsCh:=make(chanminio.ObjectInfo)// Send object names that are needed to be removed to objectsChgofunc(){deferclose(objectsCh)// List all objects from a bucket-name with a matching prefix.forobject:=rangeminioClient.ListObjects(context.Background(),"my-bucketname","my-prefixname",true,nil){ifobject.Err!=nil{log.Fatalln(object.Err)}objectsCh<-object}}()opts:=minio.RemoveObjectsOptions{GovernanceBypass:true,}forrErr:=rangeminioClient.RemoveObjects(context.Background(),"my-bucketname",objectsCh,opts){fmt.Println("Error detected during deletion: ",rErr)}

GetObjectRetention(ctx context.Context, bucketName, objectName, versionID string) (mode *RetentionMode, retainUntilDate *time.Time, err error)

Returns retention set on a given object.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
versionIDstringVersion ID of the object
err=minioClient.PutObjectRetention(context.Background(),"mybucket","myobject","")iferr!=nil{fmt.Println(err)return}

PutObjectLegalHold(ctx context.Context, bucketName, objectName string, opts minio.PutObjectLegalHoldOptions) error

Applies legal-hold onto an object.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
optsminio.PutObjectLegalHoldOptionsAllows user to set options like status and version id

minio.PutObjectLegalHoldOptions

FieldTypeDescription
opts.Status*minio.LegalHoldStatusLegal-Hold status to be set
opts.VersionIDstringVersion ID of the object to apply retention on
s:=minio.LegalHoldEnabledopts:=minio.PutObjectLegalHoldOptions{Status:&s,}err=minioClient.PutObjectLegalHold(context.Background(),"mybucket","myobject",opts)iferr!=nil{fmt.Println(err)return}

GetObjectLegalHold(ctx context.Context, bucketName, objectName, versionID string) (status *LegalHoldStatus, err error)

Returns legal-hold status on a given object.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
optsminio.GetObjectLegalHoldOptionsAllows user to set options like version id
opts:=minio.GetObjectLegalHoldOptions{}err=minioClient.GetObjectLegalHold(context.Background(),"mybucket","myobject",opts)iferr!=nil{fmt.Println(err)return}

SelectObjectContent(ctx context.Context, bucketName string, objectsName string, expression string, options SelectObjectOptions) *SelectResults

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
ctxcontext.ContextRequest context
bucketNamestringName of the bucket
objectNamestringName of the object
optionsSelectObjectOptionsQuery Options

Return Values

ParamTypeDescription
SelectResultsSelectResultsIs an io.ReadCloser object which can be directly passed to csv.NewReader for processing output.
// Initialize minio client object.minioClient,err:=minio.New(endpoint,&minio.Options{Creds:credentials.NewStaticV4(accessKeyID,secretAccessKey,""),Secure:useSSL,})opts:=minio.SelectObjectOptions{Expression:"select count(*) from s3object",ExpressionType:minio.QueryExpressionTypeSQL,InputSerialization:minio.SelectObjectInputSerialization{CompressionType:minio.SelectCompressionNONE,CSV:&minio.CSVInputOptions{FileHeaderInfo:minio.CSVFileHeaderInfoNone,RecordDelimiter:"\n",FieldDelimiter:",",},},OutputSerialization:minio.SelectObjectOutputSerialization{CSV:&minio.CSVOutputOptions{RecordDelimiter:"\n",FieldDelimiter:",",},},}reader,err:=s3Client.SelectObjectContent(context.Background(),"mycsvbucket","mycsv.csv",opts)iferr!=nil{log.Fatalln(err)}deferreader.Close()if_,err:=io.Copy(os.Stdout,reader);err!=nil{log.Fatalln(err)}

PutObjectTagging(ctx context.Context, bucketName, objectName string, otags *tags.Tags) error

set new object Tags to the given object, replaces/overwrites any existing tags.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
objectTags*tags.TagsMap with Object Tag’s Key and Value

Example

err=minioClient.PutObjectTagging(context.Background(),bucketName,objectName,objectTags)iferr!=nil{fmt.Println(err)return}

GetObjectTagging(ctx context.Context, bucketName, objectName string) (*tags.Tags, error)

Fetch Object Tags from the given object

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object

Example

tags,err=minioClient.GetObjectTagging(context.Background(),bucketName,objectName)iferr!=nil{fmt.Println(err)return}fmt.Printf("Fetched Tags: %s",tags)

RemoveObjectTagging(ctx context.Context, bucketName, objectName string) error

Remove Object Tags from the given object

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object

Example

err=minioClient.RemoveObjectTagging(context.Background(),bucketName,objectName)iferr!=nil{fmt.Println(err)return}

RestoreObject(ctx context.Context, bucketName, objectName, versionID string, opts minio.RestoreRequest) error

Restore or perform SQL operations on an archived object

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
versionIDstringVersion ID of the object
opts_minio.RestoreRequestRestore request options

Example

opts:=minio.RestoreRequest{}opts.SetDays(1)opts.SetGlacierJobParameters(minio.GlacierJobParameters{Tier:minio.TierStandard})err=s3Client.RestoreObject(context.Background(),"your-bucket","your-object","",opts)iferr!=nil{log.Fatalln(err)}

GetObjectAttributes(ctx context.Context, bucketName, objectName string, opts ObjectAttributesOptions) (*ObjectAttributes, error)

Returns a stream of the object data. Most of the common errors occur when reading the stream.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
optsminio.ObjectAttributesOptionsConfiguration for pagination and selection of object attributes

minio.ObjectAttributesOptions

FieldTypeDescription
opts.ServerSideEncryptionencrypt.ServerSideInterface provided byencrypt package to specify server-side-encryption. (For more information seehttps://godoc.org/github.com/minio/minio-go/v7)
opts.MaxParts_intThis option defines how many parts should be returned by the API
opts.VersionID_stringVersionID defines which version of the object will be used
opts.PartNumberMarker_intThis options defines which part number pagination will start after, the part which number is equal to PartNumberMarker will not be included in the response

Return Value

ParamTypeDescription
objectAttributes*minio.ObjectAttributesminio.ObjectAttributes contains the information about the object and it’s parts.

Example

objectAttributes,err:=c.GetObjectAttributes(context.Background(),"your-bucket","your-object",minio.ObjectAttributesOptions{VersionID:"object-version-id",NextPartMarker:0,MaxParts:100,})iferr!=nil{fmt.Println(err)return}fmt.Println(objectAttributes)

RemoveIncompleteUpload(ctx context.Context, bucketName, objectName string) error

Removes a partially uploaded object.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object

Example

err=minioClient.RemoveIncompleteUpload(context.Background(),"mybucket","myobject")iferr!=nil{fmt.Println(err)return}

4. Presigned operations

PresignedGetObject(ctx context.Context, bucketName, objectName string, expiry time.Duration, reqParams url.Values) (*url.URL, error)

Generates a presigned URL for HTTP GET operations. Browsers/Mobile clients may point to this URL to directly download objects even if the bucket is private. This presigned URL can have an associated expiration time in seconds after which it is no longer operational. The maximum expiry is 604800 seconds (i.e. 7 days) and minimum is 1 second.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
expirytime.DurationExpiry of presigned URL in seconds
reqParamsurl.ValuesAdditional response header overrides supportsresponse-expires,response-content-type,response-cache-control,response-content-disposition.

Example

// Set request parameters for content-disposition.reqParams:=make(url.Values)reqParams.Set("response-content-disposition","attachment; filename=\"your-filename.txt\"")// Generates a presigned url which expires in a day.presignedURL,err:=minioClient.PresignedGetObject(context.Background(),"mybucket","myobject",time.Second*24*60*60,reqParams)iferr!=nil{fmt.Println(err)return}fmt.Println("Successfully generated presigned URL",presignedURL)

PresignedPutObject(ctx context.Context, bucketName, objectName string, expiry time.Duration) (*url.URL, error)

Generates a presigned URL for HTTP PUT operations. Browsers/Mobile clients may point to this URL to upload objects directly to a bucket even if it is private. This presigned URL can have an associated expiration time in seconds after which it is no longer operational. The default expiry is set to 7 days.

NOTE: you can upload to S3 only with specified object name.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
expirytime.DurationExpiry of presigned URL in seconds

Example

// Generates a url which expires in a day.expiry:=time.Second*24*60*60// 1 day.presignedURL,err:=minioClient.PresignedPutObject(context.Background(),"mybucket","myobject",expiry)iferr!=nil{fmt.Println(err)return}fmt.Println("Successfully generated presigned URL",presignedURL)

PresignedHeadObject(ctx context.Context, bucketName, objectName string, expiry time.Duration, reqParams url.Values) (*url.URL, error)

Generates a presigned URL for HTTP HEAD operations. Browsers/Mobile clients may point to this URL to directly get metadata from objects even if the bucket is private. This presigned URL can have an associated expiration time in seconds after which it is no longer operational. The default expiry is set to 7 days.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
objectNamestringName of the object
expirytime.DurationExpiry of presigned URL in seconds
reqParamsurl.ValuesAdditional response header overrides supportsresponse-expires,response-content-type,response-cache-control,response-content-disposition.

Example

// Set request parameters for content-disposition.reqParams:=make(url.Values)reqParams.Set("response-content-disposition","attachment; filename=\"your-filename.txt\"")// Generates a presigned url which expires in a day.presignedURL,err:=minioClient.PresignedHeadObject(context.Background(),"mybucket","myobject",time.Second*24*60*60,reqParams)iferr!=nil{fmt.Println(err)return}fmt.Println("Successfully generated presigned URL",presignedURL)

PresignedPostPolicy(ctx context.Context, post PostPolicy) (*url.URL, map[string]string, error)

Allows setting policy conditions to a presigned URL for POST operations. Policies such as bucket name to receive object uploads, key name prefixes, expiry policy may be set.

// Initialize policy condition config.policy:=minio.NewPostPolicy()// Apply upload policy restrictions:policy.SetBucket("mybucket")policy.SetKey("myobject")policy.SetExpires(time.Now().UTC().AddDate(0,0,10))// expires in 10 days// Only allow 'png' images.policy.SetContentType("image/png")// Only allow content size in range 1KB to 1MB.policy.SetContentLengthRange(1024,1024*1024)// Add a user metadata using the key "custom" and value "user"policy.SetUserMetadata("custom","user")// Get the POST form key/value object:url,formData,err:=minioClient.PresignedPostPolicy(context.Background(),policy)iferr!=nil{fmt.Println(err)return}// POST your content from the command line using `curl`fmt.Printf("curl ")fork,v:=rangeformData{fmt.Printf("-F %s=%s ",k,v)}fmt.Printf("-F file=@/etc/bash.bashrc ")fmt.Printf("%s\n",url)

5. Bucket policy/notification operations

SetBucketPolicy(ctx context.Context, bucketname, policy string) error

Set access permissions on bucket or an object prefix.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
policystringPolicy to be set

Return Values

ParamTypeDescription
errerrorStandard Error

Example

policy:=`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject"],"Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::my-bucketname/*"],"Sid": ""}]}`err=minioClient.SetBucketPolicy(context.Background(),"my-bucketname",policy)iferr!=nil{fmt.Println(err)return}

GetBucketPolicy(ctx context.Context, bucketName string) (policy string, error)

Get access permissions on a bucket or a prefix.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
policystringPolicy returned from the server
errerrorStandard Error

Example

policy,err:=minioClient.GetBucketPolicy(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}

GetBucketNotification(ctx context.Context, bucketName string) (notification.Configuration, error)

Get notification configuration on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
confignotification.Configurationstructure which holds all notification configurations
errerrorStandard Error

Example

bucketNotification,err:=minioClient.GetBucketNotification(context.Background(),"mybucket")iferr!=nil{fmt.Println("Failed to get bucket notification configurations for mybucket",err)return}for_,queueConfig:=rangebucketNotification.QueueConfigs{for_,e:=rangequeueConfig.Events{fmt.Println(e+" event is enabled")}}

SetBucketNotification(ctx context.Context, bucketName string, config notification.Configuration) error

Set a new bucket notification on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
confignotification.ConfigurationRepresents the XML to be sent to the configured web service

Return Values

ParamTypeDescription
errerrorStandard Error

Example

queueArn:=notification.NewArn("aws","sqs","us-east-1","804605494417","PhotoUpdate")queueConfig:=notification.NewConfig(queueArn)queueConfig.AddEvents(minio.ObjectCreatedAll,minio.ObjectRemovedAll)queueConfig.AddFilterPrefix("photos/")queueConfig.AddFilterSuffix(".jpg")config:=notification.Configuration{}config.AddQueue(queueConfig)err=minioClient.SetBucketNotification(context.Background(),"mybucket",config)iferr!=nil{fmt.Println("Unable to set the bucket notification: ",err)return}

RemoveAllBucketNotification(ctx context.Context, bucketName string) error

Remove all configured bucket notifications on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
errerrorStandard Error

Example

err=minioClient.RemoveAllBucketNotification(context.Background(),"mybucket")iferr!=nil{fmt.Println("Unable to remove bucket notifications.",err)return}

ListenBucketNotification(context context.Context, bucketName, prefix, suffix string, events []string) <-chan notification.Info

ListenBucketNotification API receives bucket notification events through the notification channel. The returned notification channel has two fields ‘Records’ and ‘Err’.

  • ‘Records’ holds the notifications received from the server.
  • ‘Err’ indicates any error while processing the received notifications.

NOTE: Notification channel is closed at the first occurrence of an error.

Parameters

ParamTypeDescription
bucketNamestringBucket to listen notifications on
prefixstringObject key prefix to filter notifications for
suffixstringObject key suffix to filter notifications for
events[]stringEnables notifications for specific event types

Return Values

ParamTypeDescription
notificationInfochan notification.InfoChannel of bucket notifications

minio.NotificationInfo

|Field |Type |Description ||notificationInfo.Records |[]notification.Event | Collection of notification events ||notificationInfo.Err |error | Carries any error occurred during the operation (Standard Error) |

Example

// Listen for bucket notifications on "mybucket" filtered by prefix, suffix and events.fornotificationInfo:=rangeminioClient.ListenBucketNotification(context.Background(),"mybucket","myprefix/",".mysuffix",[]string{"s3:ObjectCreated:*","s3:ObjectAccessed:*","s3:ObjectRemoved:*",}){ifnotificationInfo.Err!=nil{fmt.Println(notificationInfo.Err)}fmt.Println(notificationInfo)}

ListenNotification(context context.Context, prefix, suffix string, events []string) <-chan notification.Info

ListenNotification API receives bucket and object notification events through the notification channel. The returned notification channel has two fields ‘Records’ and ‘Err’.

  • ‘Records’ holds the notifications received from the server.
  • ‘Err’ indicates any error while processing the received notifications.

NOTE: Notification channel is closed at the first occurrence of an error.

Parameters

ParamTypeDescription
bucketNamestringBucket to listen notifications on
prefixstringObject key prefix to filter notifications for
suffixstringObject key suffix to filter notifications for
events[]stringEnables notifications for specific event types

Return Values

ParamTypeDescription
notificationInfochan notification.InfoRead channel for all notifications

minio.NotificationInfo

|Field |Type |Description ||notificationInfo.Records |[]notification.Event | Collection of notification events ||notificationInfo.Err |error | Carries any error occurred during the operation (Standard Error) |

Example

// Listen for bucket notifications on "mybucket" filtered by prefix, suffix and events.fornotificationInfo:=rangeminioClient.ListenNotification(context.Background(),"myprefix/",".mysuffix",[]string{"s3:BucketCreated:*","s3:BucketRemoved:*","s3:ObjectCreated:*","s3:ObjectAccessed:*","s3:ObjectRemoved:*",}){ifnotificationInfo.Err!=nil{fmt.Println(notificationInfo.Err)}fmt.Println(notificationInfo)}

SetBucketLifecycle(ctx context.Context, bucketname, config *lifecycle.Configuration) error

Set lifecycle on bucket or an object prefix.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
configlifecycle.ConfigurationLifecycle to be set

Return Values

ParamTypeDescription
errerrorStandard Error

Example

config:=lifecycle.NewConfiguration()config.Rules=[]lifecycle.Rule{{ID:"expire-bucket",Status:"Enabled",Expiration:lifecycle.Expiration{Days:365,},},}err=minioClient.SetBucketLifecycle(context.Background(),"my-bucketname",config)iferr!=nil{fmt.Println(err)return}

GetBucketLifecycle(ctx context.Context, bucketName string) (*lifecycle.Configuration error)

Get lifecycle on a bucket or a prefix.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
configlifecycle.ConfigurationLifecycle returned from the server
errerrorStandard Error

Example

lifecycle,err:=minioClient.GetBucketLifecycle(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}

SetBucketEncryption(ctx context.Context, bucketname string, config sse.Configuration) error

Set default encryption configuration on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
configsse.ConfigurationStructure that holds default encryption configuration to be set

Return Values

ParamTypeDescription
errerrorStandard Error

Example

s3Client,err:=minio.New("s3.amazonaws.com",&minio.Options{Creds:credentials.NewStaticV4("YOUR-ACCESSKEYID","YOUR-SECRETACCESSKEY",""),Secure:true,})iferr!=nil{log.Fatalln(err)}// Set default encryption configuration on an S3 bucketerr=s3Client.SetBucketEncryption(context.Background(),"my-bucketname",sse.NewConfigurationSSES3())iferr!=nil{log.Fatalln(err)}

GetBucketEncryption(ctx context.Context, bucketName string) (*sse.Configuration, error)

Get default encryption configuration set on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
configsse.ConfigurationStructure that holds default encryption configuration
errerrorStandard Error

Example

s3Client,err:=minio.New("s3.amazonaws.com",&minio.Options{Creds:credentials.NewStaticV4("YOUR-ACCESSKEYID","YOUR-SECRETACCESSKEY",""),Secure:true,})iferr!=nil{log.Fatalln(err)}// Get default encryption configuration set on an S3 bucket and print it outencryptionConfig,err:=s3Client.GetBucketEncryption(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}fmt.Printf("%+v\n",encryptionConfig)

RemoveBucketEncryption(ctx context.Context, bucketName string) (error)

Remove default encryption configuration set on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
errerrorStandard Error

Example

err:=s3Client.RemoveBucketEncryption(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}// "my-bucket" is successfully deleted/removed.

SetObjectLockConfig(ctx context.Context, bucketname, mode *RetentionMode, validity *uint, unit *ValidityUnit) error

Set object lock configuration in given bucket. mode, validity and unit are either all set or all nil.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
modeRetentionModeRetention mode to be set
validityuintValidity period to be set
unitValidityUnitUnit of validity period

Return Values

ParamTypeDescription
errerrorStandard Error

Example

mode:=Governancevalidity:=uint(30)unit:=Dayserr=minioClient.SetObjectLockConfig(context.Background(),"my-bucketname",&mode,&validity,&unit)iferr!=nil{fmt.Println(err)return}

GetObjectLockConfig(ctx context.Context, bucketName string) (objectLock,*RetentionMode, *uint, *ValidityUnit, error)

Get object lock configuration of given bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
objectLockobjectLocklock enabled status
modeRetentionModeCurrent retention mode
validityuintCurrent validity period
unitValidityUnitUnit of validity period
errerrorStandard Error

Example

enabled,mode,validity,unit,err:=minioClient.GetObjectLockConfig(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}fmt.Println("object lock is %s for this bucket",enabled)ifmode!=nil{fmt.Printf("%v mode is enabled for %v %v for bucket 'my-bucketname'\n",*mode,*validity,*unit)}else{fmt.Println("No mode is enabled for bucket 'my-bucketname'")}

EnableVersioning(ctx context.Context, bucketName string) error

Enable bucket versioning support.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
errerrorStandard Error

Example

err:=minioClient.EnableVersioning(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}fmt.Println("versioning enabled for bucket 'my-bucketname'")

DisableVersioning(ctx context.Context, bucketName) error

Disable bucket versioning support.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
errerrorStandard Error

Example

err:=minioClient.DisableVersioning(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}fmt.Println("versioning disabled for bucket 'my-bucketname'")

GetBucketVersioning(ctx context.Context, bucketName string) (BucketVersioningConfiguration, error)

Get versioning configuration set on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
configurationminio.BucketVersioningConfigurationStructure that holds versioning configuration
errerrorStandard Error

Example

s3Client,err:=minio.New("s3.amazonaws.com",&minio.Options{Creds:credentials.NewStaticV4("YOUR-ACCESSKEYID","YOUR-SECRETACCESSKEY",""),Secure:true,})iferr!=nil{log.Fatalln(err)}// Get versioning configuration set on an S3 bucket and print it outversioningConfig,err:=s3Client.GetBucketVersioning(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}fmt.Printf("%+v\n",versioningConfig)

SetBucketReplication(ctx context.Context, bucketname, cfg replication.Config) error

Set replication configuration on a bucket. Role can be obtained by first defining the replication target on MinIO usingmc admin bucket remote set to associate the source and destination buckets for replication with the replication endpoint.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket
cfgreplication.ConfigReplication configuration to be set

Return Values

ParamTypeDescription
errerrorStandard Error

Example

replicationStr:=`<ReplicationConfiguration>   <Role></Role>   <Rule>      <DeleteMarkerReplication>         <Status>Disabled</Status>      </DeleteMarkerReplication>      <Destination>         <Bucket>string</Bucket>         <StorageClass>string</StorageClass>      </Destination>      <Filter>         <And>            <Prefix>string</Prefix>            <Tag>               <Key>string</Key>               <Value>string</Value>            </Tag>            ...         </And>         <Prefix>string</Prefix>         <Tag>            <Key>string</Key>            <Value>string</Value>         </Tag>      </Filter>      <ID>string</ID>      <Prefix>string</Prefix>      <Priority>integer</Priority>      <Status>string</Status>   </Rule></ReplicationConfiguration>`replicationConfig:=replication.Config{}iferr:=xml.Unmarshal([]byte(replicationStr),&replicationConfig);err!=nil{log.Fatalln(err)}cfg.Role:="arn:minio:s3::598361bf-3cec-49a7-b529-ce870a34d759:*"err=minioClient.SetBucketReplication(context.Background(),"my-bucketname",replicationConfig)iferr!=nil{fmt.Println(err)return}

GetBucketReplication(ctx context.Context, bucketName string) (replication.Config, error)

Get current replication config on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
replicationreplication.ConfigReplication config returned from the server
errerrorStandard Error

Example

replication,err:=minioClient.GetBucketReplication(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}

RemoveBucketReplication(ctx context.Context, bucketname string) error

Removes replication configuration on a bucket.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
errerrorStandard Error

Example

err=minioClient.RemoveBucketReplication(context.Background(),"my-bucketname")iferr!=nil{fmt.Println(err)return}

CancelBucketReplicationResync(ctx context.Context, bucketName string, tgtArn string) (id string, err error)

Cancels in progress replication resync (MinIO AiStor Only API)

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context of timeout/cancellation of the call
bucketNamestringName of the bucket
tgtArnstringTarget Amazon Resource Name

Return Values

ParamTypeDescription
idstringRecieved upon successful cancellation of replication resync
errerrorStandard Error

Example

id,err:=minioClient.CancelBucketReplicationResync(context.Background(),"my-bucket-name","my-target-arn")iferr!=nil{fmt.Println(err)return}

GetBucketReplicationMetrics(ctx context.Context, bucketName string) (replication.Metrics, error)

Get latest replication metrics on a bucket. This is a MinIO specific extension.

Parameters

ParamTypeDescription
ctxcontext.ContextCustom context for timeout/cancellation of the call
bucketNamestringName of the bucket

Return Values

ParamTypeDescription
metricsreplication.MetricsReplication metrics returned from the server
errerrorStandard Error

Example

replMetrics,err:=minioClient.GetBucketReplicationMetrics(context.Background(),"my-bucketname")iferr!=nil{log.Fatalln(err)}

6. Client custom settings

SetAppInfo(appName, appVersion string)

Add custom application details to User-Agent.

Parameters

ParamTypeDescription
appNamestringName of the application performing the API requests.
appVersionstringVersion of the application performing the API requests.

Example

// Set Application name and version to be used in subsequent API requests.minioClient.SetAppInfo("myCloudApp","1.0.0")

TraceOn(outputStream io.Writer)

Enables HTTP tracing. The trace is written to the io.Writer provided. If outputStream is nil, trace is written to os.Stdout.

Parameters

ParamTypeDescription
outputStreamio.WriterHTTP trace is written into outputStream.

TraceOff()

Disables HTTP tracing.

SetS3TransferAccelerate(acceleratedEndpoint string)

Set AWS S3 transfer acceleration endpoint for all API requests hereafter.NOTE: This API applies only to AWS S3 and is a no operation for S3 compatible object storage services.

Parameters

ParamTypeDescription
acceleratedEndpointstringSet to new S3 transfer acceleration endpoint.
On this page

Page Feedback

Was this page helpful?

Thank you for your feedback!

How can we improve this page?

Optionally provide your email if you would like us to follow up on your feedbackPlease enter a valid email address

Sending feedback...

Failed to send feedback. Please try again.


[8]ページ先頭

©2009-2025 Movatter.jp