summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/minio/minio-go/docs/API.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/minio/minio-go/docs/API.md')
-rw-r--r--vendor/github.com/minio/minio-go/docs/API.md740
1 files changed, 527 insertions, 213 deletions
diff --git a/vendor/github.com/minio/minio-go/docs/API.md b/vendor/github.com/minio/minio-go/docs/API.md
index bfdd42db6..33b8c5891 100644
--- a/vendor/github.com/minio/minio-go/docs/API.md
+++ b/vendor/github.com/minio/minio-go/docs/API.md
@@ -54,19 +54,20 @@ func main() {
| :--- | :--- | :--- | :--- | :--- | :--- |
| [`MakeBucket`](#MakeBucket) | [`GetObject`](#GetObject) | [`NewSymmetricKey`](#NewSymmetricKey) | [`PresignedGetObject`](#PresignedGetObject) | [`SetBucketPolicy`](#SetBucketPolicy) | [`SetAppInfo`](#SetAppInfo) |
| [`ListBuckets`](#ListBuckets) | [`PutObject`](#PutObject) | [`NewAsymmetricKey`](#NewAsymmetricKey) | [`PresignedPutObject`](#PresignedPutObject) | [`GetBucketPolicy`](#GetBucketPolicy) | [`SetCustomTransport`](#SetCustomTransport) |
-| [`BucketExists`](#BucketExists) | [`PutObjectStreaming`](#PutObjectStreaming) | [`GetEncryptedObject`](#GetEncryptedObject) | [`PresignedPostPolicy`](#PresignedPostPolicy) | [`ListBucketPolicies`](#ListBucketPolicies) | [`TraceOn`](#TraceOn) |
-| [`RemoveBucket`](#RemoveBucket) | [`CopyObject`](#CopyObject) | [`PutEncryptedObject`](#PutEncryptedObject) | | [`SetBucketNotification`](#SetBucketNotification) | [`TraceOff`](#TraceOff) |
-| [`ListObjects`](#ListObjects) | [`StatObject`](#StatObject) | [`NewSSEInfo`](#NewSSEInfo) | | [`GetBucketNotification`](#GetBucketNotification) | [`SetS3TransferAccelerate`](#SetS3TransferAccelerate) |
-| [`ListObjectsV2`](#ListObjectsV2) | [`RemoveObject`](#RemoveObject) | | | [`RemoveAllBucketNotification`](#RemoveAllBucketNotification) | |
-| [`ListIncompleteUploads`](#ListIncompleteUploads) | [`RemoveObjects`](#RemoveObjects) | | | [`ListenBucketNotification`](#ListenBucketNotification) | |
-| | [`RemoveIncompleteUpload`](#RemoveIncompleteUpload) | | | | |
+| [`BucketExists`](#BucketExists) | [`CopyObject`](#CopyObject) | [`GetEncryptedObject`](#GetEncryptedObject) | [`PresignedPostPolicy`](#PresignedPostPolicy) | [`ListBucketPolicies`](#ListBucketPolicies) | [`TraceOn`](#TraceOn) |
+| [`RemoveBucket`](#RemoveBucket) | [`StatObject`](#StatObject) | [`PutEncryptedObject`](#PutEncryptedObject) | | [`SetBucketNotification`](#SetBucketNotification) | [`TraceOff`](#TraceOff) |
+| [`ListObjects`](#ListObjects) | [`RemoveObject`](#RemoveObject) | [`NewSSEInfo`](#NewSSEInfo) | | [`GetBucketNotification`](#GetBucketNotification) | [`SetS3TransferAccelerate`](#SetS3TransferAccelerate) |
+| [`ListObjectsV2`](#ListObjectsV2) | [`RemoveObjects`](#RemoveObjects) | [`FPutEncryptedObject`](#FPutEncryptedObject) | | [`RemoveAllBucketNotification`](#RemoveAllBucketNotification) | |
+| [`ListIncompleteUploads`](#ListIncompleteUploads) | [`RemoveIncompleteUpload`](#RemoveIncompleteUpload) | | | [`ListenBucketNotification`](#ListenBucketNotification) | |
| | [`FPutObject`](#FPutObject) | | | | |
| | [`FGetObject`](#FGetObject) | | | | |
| | [`ComposeObject`](#ComposeObject) | | | | |
| | [`NewSourceInfo`](#NewSourceInfo) | | | | |
| | [`NewDestinationInfo`](#NewDestinationInfo) | | | | |
-
-
+| | [`PutObjectWithContext`](#PutObjectWithContext) | | | |
+| | [`GetObjectWithContext`](#GetObjectWithContext) | | | |
+| | [`FPutObjectWithContext`](#FPutObjectWithContext) | | | |
+| | [`FGetObjectWithContext`](#FGetObjectWithContext) | | | |
## 1. Constructor
<a name="Minio"></a>
@@ -83,7 +84,7 @@ __Parameters__
|`ssl` | _bool_ | If 'true' API requests will be secure (HTTPS), and insecure (HTTP) otherwise |
### NewWithRegion(endpoint, accessKeyID, secretAccessKey string, ssl bool, region string) (*Client, error)
-Initializes minio client, with region configured. Unlike New(), NewWithRegion avoids bucket-location lookup operations and it is slightly faster. Use this function when if your application deals with single region.
+Initializes minio client, with region configured. Unlike New(), NewWithRegion avoids bucket-location lookup operations and it is slightly faster. Use this function when your application deals with a single region.
__Parameters__
@@ -122,7 +123,7 @@ __Example__
```go
-err := minioClient.MakeBucket("mybucket", "us-east-1")
+err = minioClient.MakeBucket("mybucket", "us-east-1")
if err != nil {
fmt.Println(err)
return
@@ -132,15 +133,16 @@ fmt.Println("Successfully created mybucket.")
<a name="ListBuckets"></a>
### ListBuckets() ([]BucketInfo, error)
-
Lists all buckets.
| Param | Type | Description |
|---|---|---|
-|`bucketList` | _[]BucketInfo_ | Lists of all buckets |
+|`bucketList` | _[]minio.BucketInfo_ | Lists of all buckets |
-| Param | Type | Description |
+__minio.BucketInfo__
+
+| Field | Type | Description |
|---|---|---|
|`bucket.Name` | _string_ | Name of the bucket |
|`bucket.CreationDate` | _time.Time_ | Date of bucket creation |
@@ -151,7 +153,7 @@ __Example__
```go
buckets, err := minioClient.ListBuckets()
- if err != nil {
+if err != nil {
fmt.Println(err)
return
}
@@ -162,7 +164,6 @@ for _, bucket := range buckets {
<a name="BucketExists"></a>
### BucketExists(bucketName string) (found bool, err error)
-
Checks if a bucket exists.
__Parameters__
@@ -197,8 +198,7 @@ if found {
<a name="RemoveBucket"></a>
### RemoveBucket(bucketName string) error
-
-Removes a bucket.
+Removes a bucket, bucket should be empty to be successfully removed.
__Parameters__
@@ -211,7 +211,7 @@ __Example__
```go
-err := minioClient.RemoveBucket("mybucket")
+err = minioClient.RemoveBucket("mybucket")
if err != nil {
fmt.Println(err)
return
@@ -220,7 +220,6 @@ if err != nil {
<a name="ListObjects"></a>
### ListObjects(bucketName, prefix string, recursive bool, doneCh chan struct{}) <-chan ObjectInfo
-
Lists objects in a bucket.
__Parameters__
@@ -238,9 +237,11 @@ __Return Value__
|Param |Type |Description |
|:---|:---| :---|
-|`chan ObjectInfo` | _chan ObjectInfo_ |Read channel for all objects in the bucket, the object is of the format listed below: |
+|`objectInfo` | _chan minio.ObjectInfo_ |Read channel for all objects in the bucket, the object is of the format listed below: |
-|Param |Type |Description |
+__minio.ObjectInfo__
+
+|Field |Type |Description |
|:---|:---| :---|
|`objectInfo.Key` | _string_ |Name of the object |
|`objectInfo.Size` | _int64_ |Size of the object |
@@ -269,7 +270,6 @@ for object := range objectCh {
<a name="ListObjectsV2"></a>
### ListObjectsV2(bucketName, prefix string, recursive bool, doneCh chan struct{}) <-chan ObjectInfo
-
Lists objects in a bucket using the recommended listing API v2
__Parameters__
@@ -287,14 +287,7 @@ __Return Value__
|Param |Type |Description |
|:---|:---| :---|
-|`chan ObjectInfo` | _chan ObjectInfo_ |Read channel for all the objects in the bucket, the object is of the format listed below: |
-
-|Param |Type |Description |
-|:---|:---| :---|
-|`objectInfo.Key` | _string_ |Name of the object |
-|`objectInfo.Size` | _int64_ |Size of the object |
-|`objectInfo.ETag` | _string_ |MD5 checksum of the object |
-|`objectInfo.LastModified` | _time.Time_ |Time when object was last modified |
+|`objectInfo` | _chan minio.ObjectInfo_ |Read channel for all the objects in the bucket, the object is of the format listed below: |
```go
@@ -317,7 +310,6 @@ for object := range objectCh {
<a name="ListIncompleteUploads"></a>
### ListIncompleteUploads(bucketName, prefix string, recursive bool, doneCh chan struct{}) <- chan ObjectMultipartInfo
-
Lists partially uploaded objects in a bucket.
@@ -336,11 +328,11 @@ __Return Value__
|Param |Type |Description |
|:---|:---| :---|
-|`chan ObjectMultipartInfo` | _chan ObjectMultipartInfo_ |Emits multipart objects of the format listed below: |
+|`multiPartInfo` | _chan minio.ObjectMultipartInfo_ |Emits multipart objects of the format listed below: |
-__Return Value__
+__minio.ObjectMultipartInfo__
-|Param |Type |Description |
+|Field |Type |Description |
|:---|:---| :---|
|`multiPartObjInfo.Key` | _string_ |Name of incompletely uploaded object |
|`multiPartObjInfo.UploadID` | _string_ |Upload ID of incompletely uploaded object |
@@ -370,8 +362,7 @@ for multiPartObject := range multiPartObjectCh {
## 3. Object operations
<a name="GetObject"></a>
-### GetObject(bucketName, objectName string) (*Object, error)
-
+### GetObject(bucketName, objectName string, opts GetObjectOptions) (*Object, error)
Returns a stream of the object data. Most of the common errors occur when reading the stream.
@@ -382,8 +373,15 @@ __Parameters__
|:---|:---| :---|
|`bucketName` | _string_ |Name of the bucket |
|`objectName` | _string_ |Name of the object |
+|`opts` | _minio.GetObjectOptions_ | Options for GET requests specifying additional options like encryption, If-Match |
+__minio.GetObjectOptions__
+
+|Field | Type | Description |
+|:---|:---|:---|
+| `opts.Materials` | _encrypt.Materials_ | Interface provided by `encrypt` package to encrypt a stream of data (For more information see https://godoc.org/github.com/minio/minio-go) |
+
__Return Value__
@@ -396,7 +394,7 @@ __Example__
```go
-object, err := minioClient.GetObject("mybucket", "photo.jpg")
+object, err := minioClient.GetObject("mybucket", "myobject", minio.GetObjectOptions{})
if err != nil {
fmt.Println(err)
return
@@ -413,34 +411,146 @@ if _, err = io.Copy(localFile, object); err != nil {
```
<a name="FGetObject"></a>
-### FGetObject(bucketName, objectName, filePath string) error
- Downloads and saves the object as a file in the local filesystem.
+### FGetObject(bucketName, objectName, filePath string, opts GetObjectOptions) error
+Downloads and saves the object as a file in the local filesystem.
+
+__Parameters__
+
+
+|Param |Type |Description |
+|:---|:---| :---|
+|`bucketName` | _string_ |Name of the bucket |
+|`objectName` | _string_ |Name of the object |
+|`filePath` | _string_ |Path to download object to |
+|`opts` | _minio.GetObjectOptions_ | Options for GET requests specifying additional options like encryption, If-Match |
+
+
+__Example__
+
+```go
+err = minioClient.FGetObject("mybucket", "myobject", "/tmp/myobject", minio.GetObjectOptions{})
+if err != nil {
+ fmt.Println(err)
+ return
+}
+```
+<a name="GetObjectWithContext"></a>
+### GetObjectWithContext(ctx context.Context, bucketName, objectName string, opts GetObjectOptions) (*Object, error)
+Identical to GetObject operation, but accepts a context for request cancellation.
__Parameters__
|Param |Type |Description |
|:---|:---| :---|
+|`ctx` | _context.Context_ |Request context |
+|`bucketName` | _string_ |Name of the bucket |
+|`objectName` | _string_ |Name of the object |
+|`opts` | _minio.GetObjectOptions_ | Options for GET requests specifying additional options like encryption, If-Match |
+
+
+__Return Value__
+
+
+|Param |Type |Description |
+|:---|:---| :---|
+|`object` | _*minio.Object_ |_minio.Object_ represents object reader. It implements io.Reader, io.Seeker, io.ReaderAt and io.Closer interfaces. |
+
+
+__Example__
+
+
+```go
+ctx, cancel := context.WithTimeout(context.Background(), 100 * time.Second)
+defer cancel()
+
+object, err := minioClient.GetObjectWithContext(ctx, "mybucket", "myobject", minio.GetObjectOptions{})
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+localFile, err := os.Create("/tmp/local-file.jpg")
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+if _, err = io.Copy(localFile, object); err != nil {
+ fmt.Println(err)
+ return
+}
+```
+
+<a name="FGetObjectWithContext"></a>
+### FGetObjectWithContext(ctx context.Context, bucketName, objectName, filePath string, opts GetObjectOptions) error
+Identical to FGetObject operation, but allows request cancellation.
+
+__Parameters__
+
+
+|Param |Type |Description |
+|:---|:---| :---|
+|`ctx` | _context.Context_ |Request context |
|`bucketName` | _string_ |Name of the bucket |
|`objectName` | _string_ |Name of the object |
|`filePath` | _string_ |Path to download object to |
+|`opts` | _minio.GetObjectOptions_ | Options for GET requests specifying additional options like encryption, If-Match |
__Example__
```go
-err := minioClient.FGetObject("mybucket", "photo.jpg", "/tmp/photo.jpg")
+ctx, cancel := context.WithTimeout(context.Background(), 100 * time.Second)
+defer cancel()
+
+err = minioClient.FGetObjectWithContext(ctx, "mybucket", "myobject", "/tmp/myobject", minio.GetObjectOptions{})
if err != nil {
fmt.Println(err)
return
}
```
-<a name="PutObject"></a>
-### PutObject(bucketName, objectName string, reader io.Reader, contentType string) (n int, err error)
+<a name="FGetEncryptedObject"></a>
+### FGetEncryptedObject(bucketName, objectName, filePath string, materials encrypt.Materials) error
+Identical to FGetObject operation, but decrypts an encrypted request
+
+__Parameters__
+
+|Param |Type |Description |
+|:---|:---| :---|
+|`bucketName` | _string_ |Name of the bucket |
+|`objectName` | _string_ |Name of the object |
+|`filePath` | _string_ |Path to download object to |
+|`materials` | _encrypt.Materials_ | Interface provided by `encrypt` package to encrypt a stream of data (For more information see https://godoc.org/github.com/minio/minio-go) |
+
+
+__Example__
+
+
+```go
+// Generate a master symmetric key
+key := encrypt.NewSymmetricKey([]byte("my-secret-key-00"))
+
+// Build the CBC encryption material
+cbcMaterials, err := encrypt.NewCBCSecureMaterials(key)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+err = minioClient.FGetEncryptedObject("mybucket", "myobject", "/tmp/myobject", cbcMaterials)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+```
+
+<a name="PutObject"></a>
+### PutObject(bucketName, objectName string, reader io.Reader, objectSize int64,opts PutObjectOptions) (n int, err error)
Uploads objects that are less than 64MiB in a single PUT operation. For objects that are greater than 64MiB in size, PutObject seamlessly uploads the object as parts of 64MiB or more depending on the actual file size. The max upload size for an object is 5TB.
__Parameters__
@@ -451,8 +561,21 @@ __Parameters__
|`bucketName` | _string_ |Name of the bucket |
|`objectName` | _string_ |Name of the object |
|`reader` | _io.Reader_ |Any Go type that implements io.Reader |
-|`contentType` | _string_ |Content type of the object |
-
+|`objectSize`| _int64_ |Size of the object being uploaded. Pass -1 if stream size is unknown |
+|`opts` | _minio.PutObjectOptions_ | Allows user to set optional custom metadata, content headers, encryption keys and number of threads for multipart upload operation. |
+
+__minio.PutObjectOptions__
+
+|Field | Type | Description |
+|:--- |:--- | :--- |
+| `opts.UserMetadata` | _map[string]string_ | Map of user metadata|
+| `opts.Progress` | _io.Reader_ | Reader to fetch progress of an upload |
+| `opts.ContentType` | _string_ | Content type of object, e.g "application/text" |
+| `opts.ContentEncoding` | _string_ | Content encoding of object, e.g "gzip" |
+| `opts.ContentDisposition` | _string_ | Content disposition of object, "inline" |
+| `opts.CacheControl` | _string_ | Used to specify directives for caching mechanisms in both requests and responses e.g "max-age=600"|
+| `opts.EncryptMaterials` | _encrypt.Materials_ | Interface provided by `encrypt` package to encrypt a stream of data (For more information see https://godoc.org/github.com/minio/minio-go) |
+| `opts.StorageClass` | _string_ | Specify storage class for the object. Supported values for Minio server are `REDUCED_REDUNDANCY` and `STANDARD` |
__Example__
@@ -465,32 +588,46 @@ if err != nil {
}
defer file.Close()
-n, err := minioClient.PutObject("mybucket", "myobject", file, "application/octet-stream")
+fileStat, err := file.Stat()
if err != nil {
fmt.Println(err)
return
}
-```
-<a name="PutObjectStreaming"></a>
-### PutObjectStreaming(bucketName, objectName string, reader io.Reader) (n int, err error)
+n, err := minioClient.PutObject("mybucket", "myobject", file, fileStat.Size(), minio.PutObjectOptions{ContentType:"application/octet-stream"})
+if err != nil {
+ fmt.Println(err)
+ return
+}
+fmt.Println("Successfully uploaded bytes: ", n)
+```
-Uploads an object as multiple chunks keeping memory consumption constant. It is similar to PutObject in how objects are broken into multiple parts. Each part in turn is transferred as multiple chunks with constant memory usage. However resuming previously failed uploads from where it was left is not supported.
+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.
+<a name="PutObjectWithContext"></a>
+### PutObjectWithContext(ctx context.Context, bucketName, objectName string, reader io.Reader, objectSize int64, opts PutObjectOptions) (n int, err error)
+Identical to PutObject operation, but allows request cancellation.
__Parameters__
|Param |Type |Description |
-|:---|:---|:---|
+|:---|:---| :---|
+|`ctx` | _context.Context_ |Request context |
|`bucketName` | _string_ |Name of the bucket |
|`objectName` | _string_ |Name of the object |
|`reader` | _io.Reader_ |Any Go type that implements io.Reader |
+|`objectSize`| _int64_ | size of the object being uploaded. Pass -1 if stream size is unknown |
+|`opts` | _minio.PutObjectOptions_ |Pointer to struct that allows user to set optional custom metadata, content-type, content-encoding,content-disposition and cache-control headers, pass encryption module for encrypting objects, and optionally configure number of threads for multipart put operation. |
+
__Example__
```go
+ctx, cancel := context.WithTimeout(context.Background(), 10 * time.Second)
+defer cancel()
+
file, err := os.Open("my-testfile")
if err != nil {
fmt.Println(err)
@@ -498,36 +635,42 @@ if err != nil {
}
defer file.Close()
-n, err := minioClient.PutObjectStreaming("mybucket", "myobject", file)
+fileStat, err := file.Stat()
if err != nil {
fmt.Println(err)
return
}
-```
+n, err := minioClient.PutObjectWithContext(ctx, "my-bucketname", "my-objectname", file, fileStat.Size(), minio.PutObjectOptions{
+ ContentType: "application/octet-stream",
+})
+if err != nil {
+ fmt.Println(err)
+ return
+}
+fmt.Println("Successfully uploaded bytes: ", n)
+```
<a name="CopyObject"></a>
### CopyObject(dst DestinationInfo, src SourceInfo) 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 the `SourceInfo` and `DestinationInfo` types for further details.
To copy multiple source objects into a single destination object see the `ComposeObject` API.
-
__Parameters__
|Param |Type |Description |
|:---|:---| :---|
-|`dst` | _DestinationInfo_ |Argument describing the destination object |
-|`src` | _SourceInfo_ |Argument describing the source object |
+|`dst` | _minio.DestinationInfo_ |Argument describing the destination object |
+|`src` | _minio.SourceInfo_ |Argument describing the source object |
__Example__
```go
-// Use-case 1: Simple copy object with no conditions, etc
+// Use-case 1: Simple copy object with no conditions.
// Source object
src := minio.NewSourceInfo("my-sourcebucketname", "my-sourceobjectname", nil)
@@ -539,13 +682,16 @@ if err != nil {
}
// Copy object call
-err = s3Client.CopyObject(dst, src)
+err = minioClient.CopyObject(dst, src)
if err != nil {
fmt.Println(err)
return
}
+```
-// Use-case 2: Copy object with copy-conditions, and copying only part of the source object.
+```go
+// 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
@@ -574,7 +720,7 @@ if err != nil {
}
// Copy object call
-err = s3Client.CopyObject(dst, src)
+err = minioClient.CopyObject(dst, src)
if err != nil {
fmt.Println(err)
return
@@ -582,10 +728,8 @@ if err != nil {
```
<a name="ComposeObject"></a>
-### ComposeObject(dst DestinationInfo, srcs []SourceInfo) error
-
-Create an object by concatenating a list of source objects using
-server-side copying.
+### ComposeObject(dst minio.DestinationInfo, srcs []minio.SourceInfo) error
+Create an object by concatenating a list of source objects using server-side copying.
__Parameters__
@@ -606,14 +750,14 @@ decKey := minio.NewSSEInfo([]byte{1, 2, 3}, "")
// Source objects to concatenate. We also specify decryption
// key for each
-src1 := minio.NewSourceInfo("bucket1", "object1", decKey)
-src1.SetMatchETag("31624deb84149d2f8ef9c385918b653a")
+src1 := minio.NewSourceInfo("bucket1", "object1", &decKey)
+src1.SetMatchETagCond("31624deb84149d2f8ef9c385918b653a")
-src2 := minio.NewSourceInfo("bucket2", "object2", decKey)
-src2.SetMatchETag("f8ef9c385918b653a31624deb84149d2")
+src2 := minio.NewSourceInfo("bucket2", "object2", &decKey)
+src2.SetMatchETagCond("f8ef9c385918b653a31624deb84149d2")
-src3 := minio.NewSourceInfo("bucket3", "object3", decKey)
-src3.SetMatchETag("5918b653a31624deb84149d2f8ef9c38")
+src3 := minio.NewSourceInfo("bucket3", "object3", &decKey)
+src3.SetMatchETagCond("5918b653a31624deb84149d2f8ef9c38")
// Create slice of sources.
srcs := []minio.SourceInfo{src1, src2, src3}
@@ -622,19 +766,24 @@ srcs := []minio.SourceInfo{src1, src2, src3}
encKey := minio.NewSSEInfo([]byte{8, 9, 0}, "")
// Create destination info
-dst := minio.NewDestinationInfo("bucket", "object", encKey, nil)
-err = s3Client.ComposeObject(dst, srcs)
+dst, err := minio.NewDestinationInfo("bucket", "object", &encKey, nil)
if err != nil {
- log.Println(err)
- return
+ fmt.Println(err)
+ return
+}
+
+// Compose object call by concatenating multiple source files.
+err = minioClient.ComposeObject(dst, srcs)
+if err != nil {
+ fmt.Println(err)
+ return
}
-log.Println("Composed object successfully.")
+fmt.Println("Composed object successfully.")
```
<a name="NewSourceInfo"></a>
### NewSourceInfo(bucket, object string, decryptSSEC *SSEInfo) SourceInfo
-
Construct a `SourceInfo` object that can be used as the source for server-side copying operations like `CopyObject` and `ComposeObject`. This object can be used to set copy-conditions on the source.
__Parameters__
@@ -647,18 +796,47 @@ __Parameters__
__Example__
-``` go
+```go
// No decryption parameter.
-src := NewSourceInfo("bucket", "object", nil)
+src := minio.NewSourceInfo("bucket", "object", nil)
+
+// Destination object
+dst, err := minio.NewDestinationInfo("my-bucketname", "my-objectname", nil, nil)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+// Copy object call
+err = minioClient.CopyObject(dst, src)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+```
+```go
// With decryption parameter.
-decKey := NewSSEKey([]byte{1,2,3}, "")
-src := NewSourceInfo("bucket", "object", decKey)
+decKey := minio.NewSSEInfo([]byte{1,2,3}, "")
+src := minio.NewSourceInfo("bucket", "object", &decKey)
+
+// Destination object
+dst, err := minio.NewDestinationInfo("my-bucketname", "my-objectname", nil, nil)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+// Copy object call
+err = minioClient.CopyObject(dst, src)
+if err != nil {
+ fmt.Println(err)
+ return
+}
```
<a name="NewDestinationInfo"></a>
### NewDestinationInfo(bucket, object string, encryptSSEC *SSEInfo, userMeta map[string]string) (DestinationInfo, error)
-
Construct a `DestinationInfo` object that can be used as the destination object for server-side copying operations like `CopyObject` and `ComposeObject`.
__Parameters__
@@ -672,24 +850,48 @@ __Parameters__
__Example__
-``` go
+```go
// No encryption parameter.
-dst, err := NewDestinationInfo("bucket", "object", nil, nil)
+src := minio.NewSourceInfo("bucket", "object", nil)
+dst, err := minio.NewDestinationInfo("bucket", "object", nil, nil)
+if err != nil {
+ fmt.Println(err)
+ return
+}
-// With encryption parameter.
-encKey := NewSSEKey([]byte{1,2,3}, "")
-dst, err := NewDecryptionInfo("bucket", "object", encKey, nil)
+// Copy object call
+err = minioClient.CopyObject(dst, src)
+if err != nil {
+ fmt.Println(err)
+ return
+}
```
+```go
+src := minio.NewSourceInfo("bucket", "object", nil)
-<a name="FPutObject"></a>
-### FPutObject(bucketName, objectName, filePath, contentType string) (length int64, err error)
+// With encryption parameter.
+encKey := minio.NewSSEInfo([]byte{1,2,3}, "")
+dst, err := minio.NewDestinationInfo("bucket", "object", &encKey, nil)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+// Copy object call
+err = minioClient.CopyObject(dst, src)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+```
+<a name="FPutObject"></a>
+### FPutObject(bucketName, objectName, filePath, opts PutObjectOptions) (length int64, err error)
Uploads contents from a file to objectName.
FPutObject uploads objects that are less than 64MiB in a single PUT operation. For objects that are greater than the 64MiB in size, FPutObject seamlessly uploads the object in chunks of 64MiB or more depending on the actual file size. The max upload size for an object is 5TB.
-
__Parameters__
@@ -698,25 +900,56 @@ __Parameters__
|`bucketName` | _string_ |Name of the bucket |
|`objectName` | _string_ |Name of the object |
|`filePath` | _string_ |Path to file to be uploaded |
-|`contentType` | _string_ |Content type of the object |
+|`opts` | _minio.PutObjectOptions_ |Pointer to struct that allows user to set optional custom metadata, content-type, content-encoding,content-disposition and cache-control headers, pass encryption module for encrypting objects, and optionally configure number of threads for multipart put operation. |
__Example__
```go
-n, err := minioClient.FPutObject("mybucket", "myobject.csv", "/tmp/otherobject.csv", "application/csv")
+n, err := minioClient.FPutObject("my-bucketname", "my-objectname", "my-filename.csv", minio.PutObjectOptions{
+ ContentType: "application/csv",
+});
if err != nil {
fmt.Println(err)
return
}
+fmt.Println("Successfully uploaded bytes: ", n)
```
-<a name="StatObject"></a>
-### StatObject(bucketName, objectName string) (ObjectInfo, error)
+<a name="FPutObjectWithContext"></a>
+### FPutObjectWithContext(ctx context.Context, bucketName, objectName, filePath, opts PutObjectOptions) (length int64, err error)
+Identical to FPutObject operation, but allows request cancellation.
+
+__Parameters__
+
+
+|Param |Type |Description |
+|:---|:---| :---|
+|`ctx` | _context.Context_ |Request context |
+|`bucketName` | _string_ |Name of the bucket |
+|`objectName` | _string_ |Name of the object |
+|`filePath` | _string_ |Path to file to be uploaded |
+|`opts` | _minio.PutObjectOptions_ |Pointer to struct that allows user to set optional custom metadata, content-type, content-encoding,content-disposition and cache-control headers, pass encryption module for encrypting objects, and optionally configure number of threads for multipart put operation. |
+
+__Example__
-Gets metadata of an object.
+```go
+ctx, cancel := context.WithTimeout(context.Background(), 100 * time.Second)
+defer cancel()
+
+n, err := minioClient.FPutObjectWithContext(ctx, "mybucket", "myobject.csv", "/tmp/otherobject.csv", minio.PutObjectOptions{ContentType:"application/csv"})
+if err != nil {
+ fmt.Println(err)
+ return
+}
+fmt.Println("Successfully uploaded bytes: ", n)
+```
+
+<a name="StatObject"></a>
+### StatObject(bucketName, objectName string, opts StatObjectOptions) (ObjectInfo, error)
+Fetch metadata of an object.
__Parameters__
@@ -725,16 +958,19 @@ __Parameters__
|:---|:---| :---|
|`bucketName` | _string_ |Name of the bucket |
|`objectName` | _string_ |Name of the object |
+|`opts` | _minio.StatObjectOptions_ | Options for GET info/stat requests specifying additional options like encryption, If-Match |
__Return Value__
|Param |Type |Description |
|:---|:---| :---|
-|`objInfo` | _ObjectInfo_ |Object stat information |
+|`objInfo` | _minio.ObjectInfo_ |Object stat information |
-|Param |Type |Description |
+__minio.ObjectInfo__
+
+|Field |Type |Description |
|:---|:---| :---|
|`objInfo.LastModified` | _time.Time_ |Time when object was last modified |
|`objInfo.ETag` | _string_ |MD5 checksum of the object|
@@ -742,11 +978,11 @@ __Return Value__
|`objInfo.Size` | _int64_ |Size of the object|
- __Example__
+__Example__
```go
-objInfo, err := minioClient.StatObject("mybucket", "photo.jpg")
+objInfo, err := minioClient.StatObject("mybucket", "myobject", minio.StatObjectOptions{})
if err != nil {
fmt.Println(err)
return
@@ -756,10 +992,8 @@ fmt.Println(objInfo)
<a name="RemoveObject"></a>
### RemoveObject(bucketName, objectName string) error
-
Removes an object.
-
__Parameters__
@@ -770,46 +1004,54 @@ __Parameters__
```go
-err := minioClient.RemoveObject("mybucket", "photo.jpg")
+err = minioClient.RemoveObject("mybucket", "myobject")
if err != nil {
fmt.Println(err)
return
}
```
-<a name="RemoveObjects"></a>
-### RemoveObjects(bucketName string, objectsCh chan string) errorCh chan minio.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.
+<a name="RemoveObjects"></a>
+### RemoveObjects(bucketName string, objectsCh chan string) (errorCh <-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__
|Param |Type |Description |
|:---|:---| :---|
|`bucketName` | _string_ |Name of the bucket |
-|`objectsCh` | _chan string_ | Prefix of objects to be removed |
+|`objectsCh` | _chan string_ | Channel of objects to be removed |
__Return Values__
|Param |Type |Description |
|:---|:---| :---|
-|`errorCh` | _chan minio.RemoveObjectError | Channel of errors observed during deletion. |
-
+|`errorCh` | _<-chan minio.RemoveObjectError_ | Receive-only channel of errors observed during deletion. |
```go
-errorCh := minioClient.RemoveObjects("mybucket", objectsCh)
-for e := range errorCh {
- fmt.Println("Error detected during deletion: " + e.Err.Error())
+objectsCh := make(chan string)
+
+// Send object names that are needed to be removed to objectsCh
+go func() {
+ defer close(objectsCh)
+ // List all objects from a bucket-name with a matching prefix.
+ for object := range minioClient.ListObjects("my-bucketname", "my-prefixname", true, nil) {
+ if object.Err != nil {
+ log.Fatalln(object.Err)
+ }
+ objectsCh <- object.Key
+ }
+}()
+
+for rErr := range minioClient.RemoveObjects("mybucket", objectsCh) {
+ fmt.Println("Error detected during deletion: ", rErr)
}
```
-
-
<a name="RemoveIncompleteUpload"></a>
### RemoveIncompleteUpload(bucketName, objectName string) error
-
Removes a partially uploaded object.
__Parameters__
@@ -824,7 +1066,7 @@ __Example__
```go
-err := minioClient.RemoveIncompleteUpload("mybucket", "photo.jpg")
+err = minioClient.RemoveIncompleteUpload("mybucket", "myobject")
if err != nil {
fmt.Println(err)
return
@@ -834,7 +1076,7 @@ if err != nil {
## 4. Encrypted object operations
<a name="NewSymmetricKey"></a>
-### NewSymmetricKey(key []byte) *minio.SymmetricKey
+### NewSymmetricKey(key []byte) *encrypt.SymmetricKey
__Parameters__
@@ -847,15 +1089,29 @@ __Return Value__
|Param |Type |Description |
|:---|:---| :---|
-|`symmetricKey` | _*minio.SymmetricKey_ |_minio.SymmetricKey_ represents a symmetric key structure which can be used to encrypt and decrypt data. |
+|`symmetricKey` | _*encrypt.SymmetricKey_ | represents a symmetric key structure which can be used to encrypt and decrypt data |
```go
-symKey := minio.NewSymmetricKey([]byte("my-secret-key-00"))
-```
+symKey := encrypt.NewSymmetricKey([]byte("my-secret-key-00"))
+// Build the CBC encryption material with symmetric key.
+cbcMaterials, err := encrypt.NewCBCSecureMaterials(symKey)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+fmt.Println("Successfully initialized Symmetric key CBC materials", cbcMaterials)
+
+object, err := minioClient.GetEncryptedObject("mybucket", "myobject", cbcMaterials)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+defer object.Close()
+```
<a name="NewAsymmetricKey"></a>
-### NewAsymmetricKey(privateKey []byte, publicKey[]byte) (*minio.AsymmetricKey, error)
+### NewAsymmetricKey(privateKey []byte, publicKey[]byte) (*encrypt.AsymmetricKey, error)
__Parameters__
@@ -869,32 +1125,50 @@ __Return Value__
|Param |Type |Description |
|:---|:---| :---|
-|`asymmetricKey` | _*minio.AsymmetricKey_ | represents an asymmetric key structure which can be used to encrypt and decrypt data. |
-|`err` | _error_ | encountered errors. |
+|`asymmetricKey` | _*encrypt.AsymmetricKey_ | represents an asymmetric key structure which can be used to encrypt and decrypt data |
+|`err` | _error_ | Standard Error |
```go
privateKey, err := ioutil.ReadFile("private.key")
if err != nil {
- log.Fatal(err)
+ fmt.Println(err)
+ return
}
publicKey, err := ioutil.ReadFile("public.key")
if err != nil {
- log.Fatal(err)
+ fmt.Println(err)
+ return
}
// Initialize the asymmetric key
-asymmetricKey, err := minio.NewAsymmetricKey(privateKey, publicKey)
+asymmetricKey, err := encrypt.NewAsymmetricKey(privateKey, publicKey)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+// Build the CBC encryption material for asymmetric key.
+cbcMaterials, err := encrypt.NewCBCSecureMaterials(asymmetricKey)
if err != nil {
- log.Fatal(err)
+ fmt.Println(err)
+ return
}
+fmt.Println("Successfully initialized Asymmetric key CBC materials", cbcMaterials)
+
+object, err := minioClient.GetEncryptedObject("mybucket", "myobject", cbcMaterials)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+defer object.Close()
```
<a name="GetEncryptedObject"></a>
-### GetEncryptedObject(bucketName, objectName string, encryptMaterials minio.EncryptionMaterials) (io.ReadCloser, error)
+### GetEncryptedObject(bucketName, objectName string, encryptMaterials encrypt.Materials) (io.ReadCloser, error)
-Returns the decrypted stream of the object data based of the given encryption materiels. Most of the common errors occur when reading the stream.
+Returns the decrypted stream of the object data based of the given encryption materials. Most of the common errors occur when reading the stream.
__Parameters__
@@ -902,7 +1176,7 @@ __Parameters__
|:---|:---| :---|
|`bucketName` | _string_ | Name of the bucket |
|`objectName` | _string_ | Name of the object |
-|`encryptMaterials` | _minio.EncryptionMaterials_ | The module to decrypt the object data |
+|`encryptMaterials` | _encrypt.Materials_ | Interface provided by `encrypt` package to encrypt a stream of data (For more information see https://godoc.org/github.com/minio/minio-go) |
__Return Value__
@@ -918,15 +1192,16 @@ __Example__
```go
// Generate a master symmetric key
-key := minio.NewSymmetricKey("my-secret-key-00")
+key := encrypt.NewSymmetricKey([]byte("my-secret-key-00"))
// Build the CBC encryption material
-cbcMaterials, err := NewCBCSecureMaterials(key)
+cbcMaterials, err := encrypt.NewCBCSecureMaterials(key)
if err != nil {
- t.Fatal(err)
+ fmt.Println(err)
+ return
}
-object, err := minioClient.GetEncryptedObject("mybucket", "photo.jpg", cbcMaterials)
+object, err := minioClient.GetEncryptedObject("mybucket", "myobject", cbcMaterials)
if err != nil {
fmt.Println(err)
return
@@ -938,6 +1213,7 @@ if err != nil {
fmt.Println(err)
return
}
+defer localFile.Close()
if _, err = io.Copy(localFile, object); err != nil {
fmt.Println(err)
@@ -947,11 +1223,9 @@ if _, err = io.Copy(localFile, object); err != nil {
<a name="PutEncryptedObject"></a>
-### PutEncryptedObject(bucketName, objectName string, reader io.Reader, encryptMaterials minio.EncryptionMaterials, metadata map[string][]string, progress io.Reader) (n int, err error)
-
+### PutEncryptedObject(bucketName, objectName string, reader io.Reader, encryptMaterials encrypt.Materials) (n int, err error)
Encrypt and upload an object.
-
__Parameters__
|Param |Type |Description |
@@ -959,10 +1233,7 @@ __Parameters__
|`bucketName` | _string_ |Name of the bucket |
|`objectName` | _string_ |Name of the object |
|`reader` | _io.Reader_ |Any Go type that implements io.Reader |
-|`encryptMaterials` | _minio.EncryptionMaterials_ | The module that encrypts data |
-|`metadata` | _map[string][]string_ | Object metadata to be stored |
-|`progress` | io.Reader | A reader to update the upload progress |
-
+|`encryptMaterials` | _encrypt.Materials_ | Interface provided by `encrypt` package to encrypt a stream of data (For more information see https://godoc.org/github.com/minio/minio-go) |
__Example__
@@ -970,25 +1241,29 @@ __Example__
// Load a private key
privateKey, err := ioutil.ReadFile("private.key")
if err != nil {
- log.Fatal(err)
+ fmt.Println(err)
+ return
}
// Load a public key
publicKey, err := ioutil.ReadFile("public.key")
if err != nil {
- log.Fatal(err)
+ fmt.Println(err)
+ return
}
// Build an asymmetric key
-key, err := NewAssymetricKey(privateKey, publicKey)
+key, err := encrypt.NewAsymmetricKey(privateKey, publicKey)
if err != nil {
- log.Fatal(err)
+ fmt.Println(err)
+ return
}
// Build the CBC encryption module
-cbcMaterials, err := NewCBCSecureMaterials(key)
+cbcMaterials, err := encrypt.NewCBCSecureMaterials(key)
if err != nil {
- t.Fatal(err)
+ fmt.Println(err)
+ return
}
// Open a file to upload
@@ -1000,17 +1275,71 @@ if err != nil {
defer file.Close()
// Upload the encrypted form of the file
-n, err := minioClient.PutEncryptedObject("mybucket", "myobject", file, encryptMaterials, nil, nil)
+n, err := minioClient.PutEncryptedObject("mybucket", "myobject", file, cbcMaterials)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+fmt.Println("Successfully uploaded encrypted bytes: ", n)
+```
+
+<a name="FPutEncryptedObject"></a>
+### FPutEncryptedObject(bucketName, objectName, filePath, encryptMaterials encrypt.Materials) (n int, err error)
+Encrypt and upload an object from a file.
+
+__Parameters__
+
+
+|Param |Type |Description |
+|:---|:---| :---|
+|`bucketName` | _string_ |Name of the bucket |
+|`objectName` | _string_ |Name of the object |
+|`filePath` | _string_ |Path to file to be uploaded |
+|`encryptMaterials` | _encrypt.Materials_ | Interface provided by `encrypt` package to encrypt a stream of data (For more information see https://godoc.org/github.com/minio/minio-go)The module that encrypts data |
+
+__Example__
+
+
+```go
+// Load a private key
+privateKey, err := ioutil.ReadFile("private.key")
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+// Load a public key
+publicKey, err := ioutil.ReadFile("public.key")
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+// Build an asymmetric key
+key, err := encrypt.NewAsymmetricKey(privateKey, publicKey)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+// Build the CBC encryption module
+cbcMaterials, err := encrypt.NewCBCSecureMaterials(key)
+if err != nil {
+ fmt.Println(err)
+ return
+}
+
+n, err := minioClient.FPutEncryptedObject("mybucket", "myobject.csv", "/tmp/otherobject.csv", cbcMaterials)
if err != nil {
fmt.Println(err)
return
}
+fmt.Println("Successfully uploaded encrypted bytes: ", n)
```
<a name="NewSSEInfo"></a>
### NewSSEInfo(key []byte, algo string) SSEInfo
-
Create a key object for use as encryption or decryption parameter in operations involving server-side-encryption with customer provided key (SSE-C).
__Parameters__
@@ -1020,18 +1349,11 @@ __Parameters__
| `key` | _[]byte_ | Byte-slice of the raw, un-encoded binary key |
| `algo` | _string_ | Algorithm to use in encryption or decryption with the given key. Can be empty (defaults to `AES256`) |
-__Example__
-
-``` go
-// Key for use in encryption/decryption
-keyInfo := NewSSEInfo([]byte{1,2,3}, "")
-```
## 5. Presigned operations
<a name="PresignedGetObject"></a>
### PresignedGetObject(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 default expiry is set to 7 days.
__Parameters__
@@ -1059,11 +1381,11 @@ if err != nil {
fmt.Println(err)
return
}
+fmt.Println("Successfully generated presigned URL", presignedURL)
```
<a name="PresignedPutObject"></a>
### PresignedPutObject(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.
@@ -1089,12 +1411,11 @@ if err != nil {
fmt.Println(err)
return
}
-fmt.Println(presignedURL)
+fmt.Println("Successfully generated presigned URL", presignedURL)
```
<a name="PresignedHeadObject"></a>
### PresignedHeadObject(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__
@@ -1121,23 +1442,18 @@ if err != nil {
fmt.Println(err)
return
}
+fmt.Println("Successfully generated presigned URL", presignedURL)
```
<a name="PresignedPostPolicy"></a>
### PresignedPostPolicy(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.
-Create policy :
-
```go
+// Initialize policy condition config.
policy := minio.NewPostPolicy()
-```
-Apply upload policy restrictions:
-
-
-```go
+// Apply upload policy restrictions:
policy.SetBucket("mybucket")
policy.SetKey("myobject")
policy.SetExpires(time.Now().UTC().AddDate(0, 0, 10)) // expires in 10 days
@@ -1148,18 +1464,17 @@ policy.SetContentType("image/png")
// Only allow content size in range 1KB to 1MB.
policy.SetContentLengthRange(1024, 1024*1024)
-// Get the POST form key/value object:
+// 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(policy)
if err != nil {
fmt.Println(err)
return
}
-```
-POST your content from the command line using `curl`:
-
-```go
+// POST your content from the command line using `curl`
fmt.Printf("curl ")
for k, v := range formData {
fmt.Printf("-F %s=%s ", k, v)
@@ -1172,7 +1487,6 @@ fmt.Printf("%s\n", url)
<a name="SetBucketPolicy"></a>
### SetBucketPolicy(bucketname, objectPrefix string, policy policy.BucketPolicy) error
-
Set access permissions on bucket or an object prefix.
Importing `github.com/minio/minio-go/pkg/policy` package is needed.
@@ -1203,7 +1517,9 @@ __Example__
```go
-err := minioClient.SetBucketPolicy("mybucket", "myprefix", policy.BucketPolicyReadWrite)
+// Sets 'mybucket' with a sub-directory 'myprefix' to be anonymously accessible for
+// both read and write operations.
+err = minioClient.SetBucketPolicy("mybucket", "myprefix", policy.BucketPolicyReadWrite)
if err != nil {
fmt.Println(err)
return
@@ -1212,7 +1528,6 @@ if err != nil {
<a name="GetBucketPolicy"></a>
### GetBucketPolicy(bucketName, objectPrefix string) (policy.BucketPolicy, error)
-
Get access permissions on a bucket or a prefix.
Importing `github.com/minio/minio-go/pkg/policy` package is needed.
@@ -1247,7 +1562,6 @@ fmt.Println("Access permissions for mybucket is", bucketPolicy)
<a name="ListBucketPolicies"></a>
### ListBucketPolicies(bucketName, objectPrefix string) (map[string]BucketPolicy, error)
-
Get access permissions rules associated to the specified bucket and prefix.
__Parameters__
@@ -1263,7 +1577,7 @@ __Return Values__
|Param |Type |Description |
|:---|:---| :---|
-|`bucketPolicies` | _map[string]BucketPolicy_ |Map of object resource paths and their permissions |
+|`bucketPolicies` | _map[string]minio.BucketPolicy_ |Map of object resource paths and their permissions |
|`err` | _error_ |Standard Error |
__Example__
@@ -1282,8 +1596,7 @@ for resource, permission := range bucketPolicies {
<a name="GetBucketNotification"></a>
### GetBucketNotification(bucketName string) (BucketNotification, error)
-
-Get all notification configurations related to the specified bucket.
+Get notification configuration on a bucket.
__Parameters__
@@ -1297,7 +1610,7 @@ __Return Values__
|Param |Type |Description |
|:---|:---| :---|
-|`bucketNotification` | _BucketNotification_ |structure which holds all notification configurations|
+|`bucketNotification` | _minio.BucketNotification_ |structure which holds all notification configurations|
|`err` | _error_ |Standard Error |
__Example__
@@ -1306,10 +1619,12 @@ __Example__
```go
bucketNotification, err := minioClient.GetBucketNotification("mybucket")
if err != nil {
- log.Fatalf("Failed to get bucket notification configurations for mybucket - %v", err)
+ fmt.Println("Failed to get bucket notification configurations for mybucket", err)
+ return
}
-for _, topicConfig := range bucketNotification.TopicConfigs {
- for _, e := range topicConfig.Events {
+
+for _, queueConfig := range bucketNotification.QueueConfigs {
+ for _, e := range queueConfig.Events {
fmt.Println(e + " event is enabled")
}
}
@@ -1317,7 +1632,6 @@ for _, topicConfig := range bucketNotification.TopicConfigs {
<a name="SetBucketNotification"></a>
### SetBucketNotification(bucketName string, bucketNotification BucketNotification) error
-
Set a new bucket notification on a bucket.
__Parameters__
@@ -1326,7 +1640,7 @@ __Parameters__
|Param |Type |Description |
|:---|:---| :---|
|`bucketName` | _string_ |Name of the bucket |
-|`bucketNotification` | _BucketNotification_ |Represents the XML to be sent to the configured web service |
+|`bucketNotification` | _minio.BucketNotification_ |Represents the XML to be sent to the configured web service |
__Return Values__
@@ -1339,24 +1653,25 @@ __Example__
```go
-topicArn := NewArn("aws", "sns", "us-east-1", "804605494417", "PhotoUpdate")
+queueArn := minio.NewArn("aws", "sqs", "us-east-1", "804605494417", "PhotoUpdate")
+
+queueConfig := minio.NewNotificationConfig(queueArn)
+queueConfig.AddEvents(minio.ObjectCreatedAll, minio.ObjectRemovedAll)
+queueConfig.AddFilterPrefix("photos/")
+queueConfig.AddFilterSuffix(".jpg")
-topicConfig := NewNotificationConfig(topicArn)
-topicConfig.AddEvents(minio.ObjectCreatedAll, minio.ObjectRemovedAll)
-lambdaConfig.AddFilterPrefix("photos/")
-lambdaConfig.AddFilterSuffix(".jpg")
+bucketNotification := minio.BucketNotification{}
+bucketNotification.AddQueue(queueConfig)
-bucketNotification := BucketNotification{}
-bucketNotification.AddTopic(topicConfig)
-err := c.SetBucketNotification(bucketName, bucketNotification)
+err = minioClient.SetBucketNotification("mybucket", bucketNotification)
if err != nil {
- fmt.Println("Unable to set the bucket notification: " + err)
+ fmt.Println("Unable to set the bucket notification: ", err)
+ return
}
```
<a name="RemoveAllBucketNotification"></a>
### RemoveAllBucketNotification(bucketName string) error
-
Remove all configured bucket notifications on a bucket.
__Parameters__
@@ -1377,18 +1692,16 @@ __Example__
```go
-err := c.RemoveAllBucketNotification(bucketName)
+err = minioClient.RemoveAllBucketNotification("mybucket")
if err != nil {
fmt.Println("Unable to remove bucket notifications.", err)
+ return
}
```
<a name="ListenBucketNotification"></a>
### ListenBucketNotification(bucketName, prefix, suffix string, events []string, doneCh <-chan struct{}) <-chan NotificationInfo
-
-ListenBucketNotification API receives bucket notification events through the
-notification channel. The returned notification channel has two fields
-'Records' and 'Err'.
+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.
@@ -1403,17 +1716,20 @@ __Parameters__
|`bucketName` | _string_ | Bucket to listen notifications on |
|`prefix` | _string_ | Object key prefix to filter notifications for |
|`suffix` | _string_ | Object key suffix to filter notifications for |
-|`events` | _[]string_| Enables notifications for specific event types |
+|`events` | _[]string_ | Enables notifications for specific event types |
|`doneCh` | _chan struct{}_ | A message on this channel ends the ListenBucketNotification iterator |
__Return Values__
|Param |Type |Description |
|:---|:---| :---|
-|`chan NotificationInfo` | _chan_ | Read channel for all notifications on bucket |
-|`NotificationInfo` | _object_ | Notification object represents events info |
-|`notificationInfo.Records` | _[]NotificationEvent_ | Collection of notification events |
-|`notificationInfo.Err` | _error_ | Carries any error occurred during the operation |
+|`notificationInfo` | _chan minio.NotificationInfo_ | Channel of bucket notifications |
+
+__minio.NotificationInfo__
+
+|Field |Type |Description |
+|`notificationInfo.Records` | _[]minio.NotificationEvent_ | Collection of notification events |
+|`notificationInfo.Err` | _error_ | Carries any error occurred during the operation (Standard Error) |
__Example__
@@ -1427,15 +1743,15 @@ doneCh := make(chan struct{})
defer close(doneCh)
// Listen for bucket notifications on "mybucket" filtered by prefix, suffix and events.
-for notificationInfo := range minioClient.ListenBucketNotification("YOUR-BUCKET", "PREFIX", "SUFFIX", []string{
+for notificationInfo := range minioClient.ListenBucketNotification("mybucket", "myprefix/", ".mysuffix", []string{
"s3:ObjectCreated:*",
"s3:ObjectAccessed:*",
"s3:ObjectRemoved:*",
}, doneCh) {
if notificationInfo.Err != nil {
- log.Fatalln(notificationInfo.Err)
+ fmt.Println(notificationInfo.Err)
}
- log.Println(notificationInfo)
+ fmt.Println(notificationInfo)
}
```
@@ -1443,7 +1759,7 @@ for notificationInfo := range minioClient.ListenBucketNotification("YOUR-BUCKET"
<a name="SetAppInfo"></a>
### SetAppInfo(appName, appVersion string)
-Adds application details to User-Agent.
+Add custom application details to User-Agent.
__Parameters__
@@ -1463,8 +1779,7 @@ minioClient.SetAppInfo("myCloudApp", "1.0.0")
<a name="SetCustomTransport"></a>
### SetCustomTransport(customHTTPTransport http.RoundTripper)
-Overrides default HTTP transport. This is usually needed for debugging
-or for adding custom TLS certificates.
+Overrides default HTTP transport. This is usually needed for debugging or for adding custom TLS certificates.
__Parameters__
@@ -1475,8 +1790,7 @@ __Parameters__
<a name="TraceOn"></a>
### 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.
+Enables HTTP tracing. The trace is written to the io.Writer provided. If outputStream is nil, trace is written to os.Stdout.
__Parameters__
@@ -1492,7 +1806,7 @@ Disables HTTP tracing.
<a name="SetS3TransferAccelerate"></a>
### SetS3TransferAccelerate(acceleratedEndpoint string)
Set AWS S3 transfer acceleration endpoint for all API requests hereafter.
-NOTE: This API applies only to AWS S3 and ignored with other S3 compatible object storage services.
+NOTE: This API applies only to AWS S3 and is a no operation for S3 compatible object storage services.
__Parameters__