• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

docs/H18-Feb-2020-

examples/H18-Feb-2020-

pkg/H18-Feb-2020-

testcerts/H18-Feb-2020-

.gitignoreH A D18-Feb-202020

.travis.ymlH A D18-Feb-2020687

CONTRIBUTING.mdH A D18-Feb-20201.3 KiB

LICENSEH A D18-Feb-202011.1 KiB

MAINTAINERS.mdH A D18-Feb-20201.2 KiB

MakefileH A D18-Feb-2020679

NOTICEH A D18-Feb-202040

README.mdH A D18-Feb-202012.6 KiB

README_zh_CN.mdH A D18-Feb-202011.5 KiB

api-compose-object.goH A D18-Feb-202018.5 KiB

api-compose-object_test.goH A D18-Feb-20205 KiB

api-datatypes.goH A D18-Feb-20203.8 KiB

api-error-response.goH A D18-Feb-20208.1 KiB

api-error-response_test.goH A D18-Feb-202010.4 KiB

api-get-bucket-encryption.goH A D18-Feb-20202.3 KiB

api-get-lifecycle.goH A D18-Feb-20202 KiB

api-get-object-acl-context.goH A D18-Feb-20203.9 KiB

api-get-object-acl.goH A D18-Feb-2020889

api-get-object-context.goH A D18-Feb-20201,014

api-get-object-file.goH A D18-Feb-20203.6 KiB

api-get-object.goH A D18-Feb-202019.7 KiB

api-get-options.goH A D18-Feb-20203.6 KiB

api-get-policy.goH A D18-Feb-20202 KiB

api-list.goH A D18-Feb-202026.7 KiB

api-notification.goH A D18-Feb-20207.4 KiB

api-object-legal-hold.goH A D18-Feb-20204.7 KiB

api-object-lock.goH A D18-Feb-20206.1 KiB

api-object-retention.goH A D18-Feb-20204.7 KiB

api-object-tagging.goH A D18-Feb-20204.4 KiB

api-presigned.goH A D18-Feb-20206.9 KiB

api-put-bucket.goH A D18-Feb-202017.4 KiB

api-put-object-common.goH A D18-Feb-20204.3 KiB

api-put-object-context.goH A D18-Feb-20201.1 KiB

api-put-object-copy.goH A D18-Feb-20202.4 KiB

api-put-object-file-context.goH A D18-Feb-20201.9 KiB

api-put-object-file.goH A D18-Feb-2020990

api-put-object-multipart.goH A D18-Feb-202011.6 KiB

api-put-object-streaming.goH A D18-Feb-202013.2 KiB

api-put-object.goH A D18-Feb-20209.1 KiB

api-put-object_test.goH A D18-Feb-20202.1 KiB

api-remove.goH A D18-Feb-20209.6 KiB

api-s3-datatypes.goH A D18-Feb-20207.3 KiB

api-select.goH A D18-Feb-202014.6 KiB

api-stat.goH A D18-Feb-20206.6 KiB

api.goH A D18-Feb-202027.7 KiB

api_unit_test.goH A D18-Feb-20207.5 KiB

appveyor.ymlH A D18-Feb-2020760

bucket-cache.goH A D18-Feb-20206.5 KiB

bucket-cache_test.goH A D18-Feb-202011.8 KiB

bucket-notification.goH A D18-Feb-20209.2 KiB

constants.goH A D18-Feb-20202.2 KiB

core.goH A D18-Feb-20209.9 KiB

core_test.goH A D18-Feb-202021.2 KiB

functional_tests.goH A D18-Feb-2020322.6 KiB

get-options_test.goH A D18-Feb-20201.8 KiB

go.modH A D18-Feb-2020448

go.sumH A D18-Feb-20203.9 KiB

hook-reader.goH A D18-Feb-20202.4 KiB

post-policy.goH A D18-Feb-20208.2 KiB

retry-continous.goH A D18-Feb-20201.9 KiB

retry.goH A D18-Feb-20203.5 KiB

s3-endpoints.goH A D18-Feb-20202.4 KiB

s3-error.goH A D18-Feb-20204.6 KiB

staticcheck.confH A D18-Feb-202070

test-utils_test.goH A D18-Feb-20202.1 KiB

transport.goH A D18-Feb-20201.9 KiB

utils.goH A D18-Feb-20208.3 KiB

utils_test.goH A D18-Feb-202013.4 KiB

README.md

1# MinIO Go Client SDK for Amazon S3 Compatible Cloud Storage [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Sourcegraph](https://sourcegraph.com/github.com/minio/minio-go/-/badge.svg)](https://sourcegraph.com/github.com/minio/minio-go?badge) [![Apache V2 License](http://img.shields.io/badge/license-Apache%20V2-blue.svg)](https://github.com/minio/minio-go/blob/master/LICENSE)
2
3The MinIO Go Client SDK provides simple APIs to access any Amazon S3 compatible object storage.
4
5This 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](https://docs.min.io/docs/golang-client-api-reference).
6
7This document assumes that you have a working [Go development environment](https://golang.org/doc/install).
8
9## Download from Github
10```sh
11GO111MODULE=on go get github.com/minio/minio-go/v6
12```
13
14## Initialize MinIO Client
15MinIO client requires the following four parameters specified to connect to an Amazon S3 compatible object storage.
16
17| Parameter  | Description|
18| :---         |     :---     |
19| endpoint   | URL to object storage service.   |
20| accessKeyID | Access key is the user ID that uniquely identifies your account. |
21| secretAccessKey | Secret key is the password to your account. |
22| secure | Set this value to 'true' to enable secure (HTTPS) access. |
23
24
25```go
26package main
27
28import (
29	"github.com/minio/minio-go/v6"
30	"log"
31)
32
33func main() {
34	endpoint := "play.min.io"
35	accessKeyID := "Q3AM3UQ867SPQQA43P2F"
36	secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
37	useSSL := true
38
39	// Initialize minio client object.
40	minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL)
41	if err != nil {
42		log.Fatalln(err)
43	}
44
45	log.Printf("%#v\n", minioClient) // minioClient is now setup
46}
47```
48
49## Quick Start Example - File Uploader
50This example program connects to an object storage server, creates a bucket and uploads a file to the bucket.
51
52We will use the MinIO server running at [https://play.min.io](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.
53
54### FileUploader.go
55```go
56package main
57
58import (
59	"github.com/minio/minio-go/v6"
60	"log"
61)
62
63func main() {
64	endpoint := "play.min.io"
65	accessKeyID := "Q3AM3UQ867SPQQA43P2F"
66	secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
67	useSSL := true
68
69	// Initialize minio client object.
70	minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL)
71	if err != nil {
72		log.Fatalln(err)
73	}
74
75	// Make a new bucket called mymusic.
76	bucketName := "mymusic"
77	location := "us-east-1"
78
79	err = minioClient.MakeBucket(bucketName, location)
80	if err != nil {
81		// Check to see if we already own this bucket (which happens if you run this twice)
82		exists, errBucketExists := minioClient.BucketExists(bucketName)
83		if errBucketExists == nil && exists {
84			log.Printf("We already own %s\n", bucketName)
85		} else {
86			log.Fatalln(err)
87		}
88	} else {
89		log.Printf("Successfully created %s\n", bucketName)
90	}
91
92	// Upload the zip file
93	objectName := "golden-oldies.zip"
94	filePath := "/tmp/golden-oldies.zip"
95	contentType := "application/zip"
96
97	// Upload the zip file with FPutObject
98	n, err := minioClient.FPutObject(bucketName, objectName, filePath, minio.PutObjectOptions{ContentType:contentType})
99	if err != nil {
100		log.Fatalln(err)
101	}
102
103	log.Printf("Successfully uploaded %s of size %d\n", objectName, n)
104}
105```
106
107### Run FileUploader
108```sh
109go run file-uploader.go
1102016/08/13 17:03:28 Successfully created mymusic
1112016/08/13 17:03:40 Successfully uploaded golden-oldies.zip of size 16253413
112
113mc ls play/mymusic/
114[2016-05-27 16:02:16 PDT]  17MiB golden-oldies.zip
115```
116
117## API Reference
118The full API Reference is available here.
119
120* [Complete API Reference](https://docs.min.io/docs/golang-client-api-reference)
121
122### API Reference : Bucket Operations
123* [`MakeBucket`](https://docs.min.io/docs/golang-client-api-reference#MakeBucket)
124* [`ListBuckets`](https://docs.min.io/docs/golang-client-api-reference#ListBuckets)
125* [`BucketExists`](https://docs.min.io/docs/golang-client-api-reference#BucketExists)
126* [`RemoveBucket`](https://docs.min.io/docs/golang-client-api-reference#RemoveBucket)
127* [`ListObjects`](https://docs.min.io/docs/golang-client-api-reference#ListObjects)
128* [`ListObjectsV2`](https://docs.min.io/docs/golang-client-api-reference#ListObjectsV2)
129* [`ListIncompleteUploads`](https://docs.min.io/docs/golang-client-api-reference#ListIncompleteUploads)
130
131### API Reference : Bucket policy Operations
132* [`SetBucketPolicy`](https://docs.min.io/docs/golang-client-api-reference#SetBucketPolicy)
133* [`GetBucketPolicy`](https://docs.min.io/docs/golang-client-api-reference#GetBucketPolicy)
134
135### API Reference : Bucket notification Operations
136* [`SetBucketNotification`](https://docs.min.io/docs/golang-client-api-reference#SetBucketNotification)
137* [`GetBucketNotification`](https://docs.min.io/docs/golang-client-api-reference#GetBucketNotification)
138* [`RemoveAllBucketNotification`](https://docs.min.io/docs/golang-client-api-reference#RemoveAllBucketNotification)
139* [`ListenBucketNotification`](https://docs.min.io/docs/golang-client-api-reference#ListenBucketNotification) (MinIO Extension)
140
141### API Reference : File Object Operations
142* [`FPutObject`](https://docs.min.io/docs/golang-client-api-reference#FPutObject)
143* [`FGetObject`](https://docs.min.io/docs/golang-client-api-reference#FGetObject)
144* [`FPutObjectWithContext`](https://docs.min.io/docs/golang-client-api-reference#FPutObjectWithContext)
145* [`FGetObjectWithContext`](https://docs.min.io/docs/golang-client-api-reference#FGetObjectWithContext)
146
147### API Reference : Object Operations
148* [`GetObject`](https://docs.min.io/docs/golang-client-api-reference#GetObject)
149* [`PutObject`](https://docs.min.io/docs/golang-client-api-reference#PutObject)
150* [`GetObjectWithContext`](https://docs.min.io/docs/golang-client-api-reference#GetObjectWithContext)
151* [`PutObjectWithContext`](https://docs.min.io/docs/golang-client-api-reference#PutObjectWithContext)
152* [`PutObjectStreaming`](https://docs.min.io/docs/golang-client-api-reference#PutObjectStreaming)
153* [`StatObject`](https://docs.min.io/docs/golang-client-api-reference#StatObject)
154* [`CopyObject`](https://docs.min.io/docs/golang-client-api-reference#CopyObject)
155* [`RemoveObject`](https://docs.min.io/docs/golang-client-api-reference#RemoveObject)
156* [`RemoveObjects`](https://docs.min.io/docs/golang-client-api-reference#RemoveObjects)
157* [`RemoveIncompleteUpload`](https://docs.min.io/docs/golang-client-api-reference#RemoveIncompleteUpload)
158* [`SelectObjectContent`](https://docs.min.io/docs/golang-client-api-reference#SelectObjectContent)
159
160
161### API Reference : Presigned Operations
162* [`PresignedGetObject`](https://docs.min.io/docs/golang-client-api-reference#PresignedGetObject)
163* [`PresignedPutObject`](https://docs.min.io/docs/golang-client-api-reference#PresignedPutObject)
164* [`PresignedHeadObject`](https://docs.min.io/docs/golang-client-api-reference#PresignedHeadObject)
165* [`PresignedPostPolicy`](https://docs.min.io/docs/golang-client-api-reference#PresignedPostPolicy)
166
167### API Reference : Client custom settings
168* [`SetAppInfo`](http://docs.min.io/docs/golang-client-api-reference#SetAppInfo)
169* [`SetCustomTransport`](http://docs.min.io/docs/golang-client-api-reference#SetCustomTransport)
170* [`TraceOn`](http://docs.min.io/docs/golang-client-api-reference#TraceOn)
171* [`TraceOff`](http://docs.min.io/docs/golang-client-api-reference#TraceOff)
172
173## Full Examples
174
175### Full Examples : Bucket Operations
176* [makebucket.go](https://github.com/minio/minio-go/blob/master/examples/s3/makebucket.go)
177* [listbuckets.go](https://github.com/minio/minio-go/blob/master/examples/s3/listbuckets.go)
178* [bucketexists.go](https://github.com/minio/minio-go/blob/master/examples/s3/bucketexists.go)
179* [removebucket.go](https://github.com/minio/minio-go/blob/master/examples/s3/removebucket.go)
180* [listobjects.go](https://github.com/minio/minio-go/blob/master/examples/s3/listobjects.go)
181* [listobjectsV2.go](https://github.com/minio/minio-go/blob/master/examples/s3/listobjectsV2.go)
182* [listincompleteuploads.go](https://github.com/minio/minio-go/blob/master/examples/s3/listincompleteuploads.go)
183
184### Full Examples : Bucket policy Operations
185* [setbucketpolicy.go](https://github.com/minio/minio-go/blob/master/examples/s3/setbucketpolicy.go)
186* [getbucketpolicy.go](https://github.com/minio/minio-go/blob/master/examples/s3/getbucketpolicy.go)
187* [listbucketpolicies.go](https://github.com/minio/minio-go/blob/master/examples/s3/listbucketpolicies.go)
188
189### Full Examples : Bucket lifecycle Operations
190* [setbucketlifecycle.go](https://github.com/minio/minio-go/blob/master/examples/s3/setbucketlifecycle.go)
191* [getbucketlifecycle.go](https://github.com/minio/minio-go/blob/master/examples/s3/getbucketlifecycle.go)
192
193### Full Examples : Bucket encryption Operations
194* [setbucketencryption.go](https://github.com/minio/minio-go/blob/master/examples/s3/setbucketencryption.go)
195* [getbucketencryption.go](https://github.com/minio/minio-go/blob/master/examples/s3/getbucketencryption.go)
196* [deletebucketencryption.go](https://github.com/minio/minio-go/blob/master/examples/s3/deletebucketencryption.go)
197
198### Full Examples : Bucket notification Operations
199* [setbucketnotification.go](https://github.com/minio/minio-go/blob/master/examples/s3/setbucketnotification.go)
200* [getbucketnotification.go](https://github.com/minio/minio-go/blob/master/examples/s3/getbucketnotification.go)
201* [removeallbucketnotification.go](https://github.com/minio/minio-go/blob/master/examples/s3/removeallbucketnotification.go)
202* [listenbucketnotification.go](https://github.com/minio/minio-go/blob/master/examples/minio/listenbucketnotification.go) (MinIO Extension)
203
204### Full Examples : File Object Operations
205* [fputobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/fputobject.go)
206* [fgetobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/fgetobject.go)
207* [fputobject-context.go](https://github.com/minio/minio-go/blob/master/examples/s3/fputobject-context.go)
208* [fgetobject-context.go](https://github.com/minio/minio-go/blob/master/examples/s3/fgetobject-context.go)
209
210### Full Examples : Object Operations
211* [putobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/putobject.go)
212* [getobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/getobject.go)
213* [putobject-context.go](https://github.com/minio/minio-go/blob/master/examples/s3/putobject-context.go)
214* [getobject-context.go](https://github.com/minio/minio-go/blob/master/examples/s3/getobject-context.go)
215* [statobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/statobject.go)
216* [copyobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/copyobject.go)
217* [removeobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/removeobject.go)
218* [removeincompleteupload.go](https://github.com/minio/minio-go/blob/master/examples/s3/removeincompleteupload.go)
219* [removeobjects.go](https://github.com/minio/minio-go/blob/master/examples/s3/removeobjects.go)
220
221### Full Examples : Encrypted Object Operations
222* [put-encrypted-object.go](https://github.com/minio/minio-go/blob/master/examples/s3/put-encrypted-object.go)
223* [get-encrypted-object.go](https://github.com/minio/minio-go/blob/master/examples/s3/get-encrypted-object.go)
224* [fput-encrypted-object.go](https://github.com/minio/minio-go/blob/master/examples/s3/fputencrypted-object.go)
225
226### Full Examples : Presigned Operations
227* [presignedgetobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/presignedgetobject.go)
228* [presignedputobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/presignedputobject.go)
229* [presignedheadobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/presignedheadobject.go)
230* [presignedpostpolicy.go](https://github.com/minio/minio-go/blob/master/examples/s3/presignedpostpolicy.go)
231
232## Explore Further
233* [Complete Documentation](https://docs.min.io)
234* [MinIO Go Client SDK API Reference](https://docs.min.io/docs/golang-client-api-reference)
235
236## Contribute
237[Contributors Guide](https://github.com/minio/minio-go/blob/master/CONTRIBUTING.md)
238
239[![Build Status](https://travis-ci.org/minio/minio-go.svg)](https://travis-ci.org/minio/minio-go)
240[![Build status](https://ci.appveyor.com/api/projects/status/1d05e6nvxcelmrak?svg=true)](https://ci.appveyor.com/project/harshavardhana/minio-go)
241
242## License
243This SDK is distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0), see [LICENSE](./LICENSE) and [NOTICE](./NOTICE) for more information.
244

README_zh_CN.md

1# 适用于与Amazon S3兼容云存储的MinIO Go SDK [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Sourcegraph](https://sourcegraph.com/github.com/minio/minio-go/-/badge.svg)](https://sourcegraph.com/github.com/minio/minio-go?badge)
2
3MinIO Go Client SDK提供了简单的API来访问任何与Amazon S3兼容的对象存储服务。
4
5**支持的云存储:**
6
7- AWS Signature Version 4
8   - Amazon S3
9   - MinIO
10
11- AWS Signature Version 2
12   - Google Cloud Storage (兼容模式)
13   - Openstack Swift + Swift3 middleware
14   - Ceph Object Gateway
15   - Riak CS
16
17本文我们将学习如何安装MinIO client SDK,连接到MinIO,并提供一下文件上传的示例。对于完整的API以及示例,请参考[Go Client API Reference](https://docs.min.io/docs/golang-client-api-reference)18
19本文假设你已经有 [Go开发环境](https://golang.org/doc/install)20
21## 从Github下载
22```sh
23go get -u github.com/minio/minio-go
24```
25
26## 初始化MinIO Client
27MinIO client需要以下4个参数来连接与Amazon S3兼容的对象存储。
28
29| 参数  | 描述|
30| :---         |     :---     |
31| endpoint   | 对象存储服务的URL   |
32| accessKeyID | Access key是唯一标识你的账户的用户ID。 |
33| secretAccessKey | Secret key是你账户的密码。 |
34| secure | true代表使用HTTPS |
35
36
37```go
38package main
39
40import (
41	"github.com/minio/minio-go/v6"
42	"log"
43)
44
45func main() {
46	endpoint := "play.min.io"
47	accessKeyID := "Q3AM3UQ867SPQQA43P2F"
48	secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
49	useSSL := true
50
51	// 初使化 minio client对象。
52	minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL)
53	if err != nil {
54		log.Fatalln(err)
55	}
56
57	log.Printf("%#v\n", minioClient) // minioClient初使化成功
58}
59```
60
61## 示例-文件上传
62本示例连接到一个对象存储服务,创建一个存储桶并上传一个文件到存储桶中。
63
64我们在本示例中使用运行在 [https://play.min.io](https://play.min.io) 上的MinIO服务,你可以用这个服务来开发和测试。示例中的访问凭据是公开的。
65
66### FileUploader.go
67```go
68package main
69
70import (
71	"github.com/minio/minio-go/v6"
72	"log"
73)
74
75func main() {
76	endpoint := "play.min.io"
77	accessKeyID := "Q3AM3UQ867SPQQA43P2F"
78	secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
79	useSSL := true
80
81	// 初使化minio client对象。
82	minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL)
83	if err != nil {
84		log.Fatalln(err)
85	}
86
87	// 创建一个叫mymusic的存储桶。
88	bucketName := "mymusic"
89	location := "us-east-1"
90
91	err = minioClient.MakeBucket(bucketName, location)
92	if err != nil {
93		// 检查存储桶是否已经存在。
94		exists, err := minioClient.BucketExists(bucketName)
95		if err == nil && exists {
96			log.Printf("We already own %s\n", bucketName)
97		} else {
98			log.Fatalln(err)
99		}
100	}
101	log.Printf("Successfully created %s\n", bucketName)
102
103	// 上传一个zip文件。
104	objectName := "golden-oldies.zip"
105	filePath := "/tmp/golden-oldies.zip"
106	contentType := "application/zip"
107
108	// 使用FPutObject上传一个zip文件。
109	n, err := minioClient.FPutObject(bucketName, objectName, filePath, minio.PutObjectOptions{ContentType:contentType})
110	if err != nil {
111		log.Fatalln(err)
112	}
113
114	log.Printf("Successfully uploaded %s of size %d\n", objectName, n)
115}
116```
117
118### 运行FileUploader
119```sh
120go run file-uploader.go
1212016/08/13 17:03:28 Successfully created mymusic
1222016/08/13 17:03:40 Successfully uploaded golden-oldies.zip of size 16253413
123
124mc ls play/mymusic/
125[2016-05-27 16:02:16 PDT]  17MiB golden-oldies.zip
126```
127
128## API文档
129完整的API文档在这里。
130* [完整API文档](https://docs.min.io/docs/golang-client-api-reference)
131
132### API文档 : 操作存储桶
133* [`MakeBucket`](https://docs.min.io/docs/golang-client-api-reference#MakeBucket)
134* [`ListBuckets`](https://docs.min.io/docs/golang-client-api-reference#ListBuckets)
135* [`BucketExists`](https://docs.min.io/docs/golang-client-api-reference#BucketExists)
136* [`RemoveBucket`](https://docs.min.io/docs/golang-client-api-reference#RemoveBucket)
137* [`ListObjects`](https://docs.min.io/docs/golang-client-api-reference#ListObjects)
138* [`ListObjectsV2`](https://docs.min.io/docs/golang-client-api-reference#ListObjectsV2)
139* [`ListIncompleteUploads`](https://docs.min.io/docs/golang-client-api-reference#ListIncompleteUploads)
140
141### API文档 : 存储桶策略
142* [`SetBucketPolicy`](https://docs.min.io/docs/golang-client-api-reference#SetBucketPolicy)
143* [`GetBucketPolicy`](https://docs.min.io/docs/golang-client-api-reference#GetBucketPolicy)
144
145### API文档 : 存储桶通知
146* [`SetBucketNotification`](https://docs.min.io/docs/golang-client-api-reference#SetBucketNotification)
147* [`GetBucketNotification`](https://docs.min.io/docs/golang-client-api-reference#GetBucketNotification)
148* [`RemoveAllBucketNotification`](https://docs.min.io/docs/golang-client-api-reference#RemoveAllBucketNotification)
149* [`ListenBucketNotification`](https://docs.min.io/docs/golang-client-api-reference#ListenBucketNotification) (MinIO Extension)
150
151### API文档 : 操作文件对象
152* [`FPutObject`](https://docs.min.io/docs/golang-client-api-reference#FPutObject)
153* [`FGetObject`](https://docs.min.io/docs/golang-client-api-reference#FPutObject)
154* [`FPutObjectWithContext`](https://docs.min.io/docs/golang-client-api-reference#FPutObjectWithContext)
155* [`FGetObjectWithContext`](https://docs.min.io/docs/golang-client-api-reference#FGetObjectWithContext)
156
157### API文档 : 操作对象
158* [`GetObject`](https://docs.min.io/docs/golang-client-api-reference#GetObject)
159* [`PutObject`](https://docs.min.io/docs/golang-client-api-reference#PutObject)
160* [`GetObjectWithContext`](https://docs.min.io/docs/golang-client-api-reference#GetObjectWithContext)
161* [`PutObjectWithContext`](https://docs.min.io/docs/golang-client-api-reference#PutObjectWithContext)
162* [`PutObjectStreaming`](https://docs.min.io/docs/golang-client-api-reference#PutObjectStreaming)
163* [`StatObject`](https://docs.min.io/docs/golang-client-api-reference#StatObject)
164* [`CopyObject`](https://docs.min.io/docs/golang-client-api-reference#CopyObject)
165* [`RemoveObject`](https://docs.min.io/docs/golang-client-api-reference#RemoveObject)
166* [`RemoveObjects`](https://docs.min.io/docs/golang-client-api-reference#RemoveObjects)
167* [`RemoveIncompleteUpload`](https://docs.min.io/docs/golang-client-api-reference#RemoveIncompleteUpload)
168
169### API文档: 操作加密对象
170* [`GetEncryptedObject`](https://docs.min.io/docs/golang-client-api-reference#GetEncryptedObject)
171* [`PutEncryptedObject`](https://docs.min.io/docs/golang-client-api-reference#PutEncryptedObject)
172
173### API文档 : Presigned操作
174* [`PresignedGetObject`](https://docs.min.io/docs/golang-client-api-reference#PresignedGetObject)
175* [`PresignedPutObject`](https://docs.min.io/docs/golang-client-api-reference#PresignedPutObject)
176* [`PresignedHeadObject`](https://docs.min.io/docs/golang-client-api-reference#PresignedHeadObject)
177* [`PresignedPostPolicy`](https://docs.min.io/docs/golang-client-api-reference#PresignedPostPolicy)
178
179### API文档 : 客户端自定义设置
180* [`SetAppInfo`](http://docs.min.io/docs/golang-client-api-reference#SetAppInfo)
181* [`SetCustomTransport`](http://docs.min.io/docs/golang-client-api-reference#SetCustomTransport)
182* [`TraceOn`](http://docs.min.io/docs/golang-client-api-reference#TraceOn)
183* [`TraceOff`](http://docs.min.io/docs/golang-client-api-reference#TraceOff)
184
185## 完整示例
186
187### 完整示例 : 操作存储桶
188* [makebucket.go](https://github.com/minio/minio-go/blob/master/examples/s3/makebucket.go)
189* [listbuckets.go](https://github.com/minio/minio-go/blob/master/examples/s3/listbuckets.go)
190* [bucketexists.go](https://github.com/minio/minio-go/blob/master/examples/s3/bucketexists.go)
191* [removebucket.go](https://github.com/minio/minio-go/blob/master/examples/s3/removebucket.go)
192* [listobjects.go](https://github.com/minio/minio-go/blob/master/examples/s3/listobjects.go)
193* [listobjectsV2.go](https://github.com/minio/minio-go/blob/master/examples/s3/listobjectsV2.go)
194* [listincompleteuploads.go](https://github.com/minio/minio-go/blob/master/examples/s3/listincompleteuploads.go)
195
196### 完整示例 : 存储桶策略
197* [setbucketpolicy.go](https://github.com/minio/minio-go/blob/master/examples/s3/setbucketpolicy.go)
198* [getbucketpolicy.go](https://github.com/minio/minio-go/blob/master/examples/s3/getbucketpolicy.go)
199* [listbucketpolicies.go](https://github.com/minio/minio-go/blob/master/examples/s3/listbucketpolicies.go)
200
201### 完整示例 : 存储桶通知
202* [setbucketnotification.go](https://github.com/minio/minio-go/blob/master/examples/s3/setbucketnotification.go)
203* [getbucketnotification.go](https://github.com/minio/minio-go/blob/master/examples/s3/getbucketnotification.go)
204* [removeallbucketnotification.go](https://github.com/minio/minio-go/blob/master/examples/s3/removeallbucketnotification.go)
205* [listenbucketnotification.go](https://github.com/minio/minio-go/blob/master/examples/minio/listenbucketnotification.go) (MinIO扩展)
206
207### 完整示例 : 操作文件对象
208* [fputobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/fputobject.go)
209* [fgetobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/fgetobject.go)
210* [fputobject-context.go](https://github.com/minio/minio-go/blob/master/examples/s3/fputobject-context.go)
211* [fgetobject-context.go](https://github.com/minio/minio-go/blob/master/examples/s3/fgetobject-context.go)
212
213### 完整示例 : 操作对象
214* [putobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/putobject.go)
215* [getobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/getobject.go)
216* [putobject-context.go](https://github.com/minio/minio-go/blob/master/examples/s3/putobject-context.go)
217* [getobject-context.go](https://github.com/minio/minio-go/blob/master/examples/s3/getobject-context.go)
218* [statobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/statobject.go)
219* [copyobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/copyobject.go)
220* [removeobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/removeobject.go)
221* [removeincompleteupload.go](https://github.com/minio/minio-go/blob/master/examples/s3/removeincompleteupload.go)
222* [removeobjects.go](https://github.com/minio/minio-go/blob/master/examples/s3/removeobjects.go)
223
224### 完整示例 : 操作加密对象
225* [put-encrypted-object.go](https://github.com/minio/minio-go/blob/master/examples/s3/put-encrypted-object.go)
226* [get-encrypted-object.go](https://github.com/minio/minio-go/blob/master/examples/s3/get-encrypted-object.go)
227* [fput-encrypted-object.go](https://github.com/minio/minio-go/blob/master/examples/s3/fputencrypted-object.go)
228
229### 完整示例 : Presigned操作
230* [presignedgetobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/presignedgetobject.go)
231* [presignedputobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/presignedputobject.go)
232* [presignedheadobject.go](https://github.com/minio/minio-go/blob/master/examples/s3/presignedheadobject.go)
233* [presignedpostpolicy.go](https://github.com/minio/minio-go/blob/master/examples/s3/presignedpostpolicy.go)
234
235## 了解更多
236* [完整文档](https://docs.min.io)
237* [MinIO Go Client SDK API文档](https://docs.min.io/docs/golang-client-api-reference)
238
239## 贡献
240[贡献指南](https://github.com/minio/minio-go/blob/master/docs/zh_CN/CONTRIBUTING.md)
241
242[![Build Status](https://travis-ci.org/minio/minio-go.svg)](https://travis-ci.org/minio/minio-go)
243[![Build status](https://ci.appveyor.com/api/projects/status/1d05e6nvxcelmrak?svg=true)](https://ci.appveyor.com/project/harshavardhana/minio-go)
244
245