Go 快速入门指南
MinIO Go Client API Reference
初始化 MinIO Client 对象。
MinIO
package main
import (
"log"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
func main() {
endpoint := "play.min.io"
accessKeyID := "Q3AM3UQ867SPQQA43P2F"
secretAccessKey := "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"
useSSL := true
// Initialize minio client object.
minioClient, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
Secure: useSSL,
})
if err != nil {
log.Fatalln(err)
}
log.Printf("%#v\n", minioClient) // minioClient is now setup
}
AWS S3
package main
import (
"fmt"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
func main() {
// Initialize minio client object.
s3Client, err := minio.New("s3.amazonaws.com", &minio.Options{
Creds: credentials.NewStaticV4("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", ""),
Secure: true,
})
if err != nil {
fmt.Println(err)
return
}
}
Bucket operations |
对象操作 |
预签名操作 |
Bucket Policy/Notification Operations |
客户端自定义设置 |
|---|---|---|---|---|
1. 构造函数
New(endpoint string, opts *Options) (*Client, error)
初始化一个新的客户端对象。
参数
Param |
类型 |
描述 |
|---|---|---|
|
字符串 |
S3兼容对象存储端点 |
|
minio.Options |
构建新客户端的选项 |
minio.Options
字段 |
类型 |
描述 |
|---|---|---|
|
*credentials.Credentials |
S3兼容对象存储访问凭据 |
|
bool |
如果为‘true’,API请求将是安全的(HTTPS),否则为不安全(HTTP) |
|
http.RoundTripper |
自定义传输层,用于执行HTTP事务 |
|
字符串 |
S3兼容对象存储区域 |
|
BucketLookupType |
Bucket lookup type 可以是以下值之一 |
minio.BucketLookupDNS |
||
minio.BucketLookupPath |
||
minio.BucketLookupAuto |
2. 存储桶操作
MakeBucket(ctx context.Context, bucketName string, opts MakeBucketOptions)
创建一个新的存储桶。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
minio.MakeBucketOptions |
Bucket options such as |
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})
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Successfully created mybucket.")
ListBuckets(ctx context.Context) ([]BucketInfo, error)
列出所有存储桶。
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
[]minio.BucketInfo |
所有存储桶列表 |
minio.BucketInfo
字段 |
类型 |
描述 |
|---|---|---|
|
字符串 |
存储桶的名称 |
|
time.Time |
存储桶创建日期 |
Example
buckets, err := minioClient.ListBuckets(context.Background())
if err != nil {
fmt.Println(err)
return
}
for _, bucket := range buckets {
fmt.Println(bucket)
}
BucketExists(ctx context.Context, bucketName string) (found bool, err error)
检查存储桶是否存在。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
bool |
指示存储桶是否存在 |
|
错误 |
标准错误 |
Example
found, err := minioClient.BucketExists(context.Background(), "mybucket")
if err != nil {
fmt.Println(err)
return
}
if found {
fmt.Println("Bucket found")
}
RemoveBucket(ctx context.Context, bucketName string) error
删除一个存储桶,存储桶必须为空才能成功删除。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
Example
err = minioClient.RemoveBucket(context.Background(), "mybucket")
if err != nil {
fmt.Println(err)
return
}
ListObjects(ctx context.Context, bucketName string, opts ListObjectsOptions) <-chan ObjectInfo
列出存储桶中的对象。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
minio.ListObjectsOptions |
按选项列出对象 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
chan minio.ObjectInfo |
读取存储桶中所有对象的通道,对象格式如下: |
minio.ObjectInfo
字段 |
类型 |
描述 |
|---|---|---|
|
字符串 |
对象名称 |
|
int64 |
对象的大小 |
|
字符串 |
对象的MD5校验和 |
|
time.Time |
对象最后修改时间 |
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
objectCh := minioClient.ListObjects(ctx, "mybucket", minio.ListObjectsOptions{
Prefix: "myprefix",
Recursive: true,
})
for object := range objectCh {
if object.Err != nil {
fmt.Println(object.Err)
return
}
fmt.Println(object)
}
ListIncompleteUploads(ctx context.Context, bucketName, prefix string, recursive bool) <- chan ObjectMultipartInfo
列出存储桶中部分上传的对象。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
部分上传对象的前缀 |
|
bool |
|
返回值
Param |
类型 |
描述 |
|---|---|---|
|
chan minio.ObjectMultipartInfo |
发出以下格式的多部分对象: |
minio.ObjectMultipartInfo
字段 |
类型 |
描述 |
|---|---|---|
|
字符串 |
未完全上传的对象名称 |
|
字符串 |
未完全上传对象的上传ID |
|
int64 |
未完全上传对象的大小 |
Example
isRecursive := true // Recursively list everything at 'myprefix'
multiPartObjectCh := minioClient.ListIncompleteUploads(context.Background(), "mybucket", "myprefix", isRecursive)
for multiPartObject := range multiPartObjectCh {
if multiPartObject.Err != nil {
fmt.Println(multiPartObject.Err)
return
}
fmt.Println(multiPartObject)
}
RemoveBucketTagging(ctx context.Context, bucketName string) error
删除存储桶上的所有标签。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
Example
err := minioClient.RemoveBucketTagging(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
3. Object operations
GetObject(ctx context.Context, bucketName, objectName string, opts GetObjectOptions) (*Object, error)
返回对象数据的流。大多数常见错误发生在读取流时。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
minio.GetObjectOptions |
GET 请求的选项,用于指定加密、If-Match 等附加选项 |
minio.GetObjectOptions
字段 |
类型 |
描述 |
|---|---|---|
|
encrypt.ServerSide |
Interface provided by |
|
minio.AdvancedGetOptions |
此选项仅供 MinIO 服务器内部使用。除非应用程序明确知晓其预期用途,否则不应设置此选项。 |
返回值 |
Param |
类型 |
描述 |
|---|---|---|
|
*minio.Object |
minio.Object表示对象读取器。它实现了 io.Reader、io.Seeker、io.ReaderAt 和 io.Closer 接口。 |
Example
object, err := minioClient.GetObject(context.Background(), "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
}
FGetObject(ctx context.Context, bucketName, objectName, filePath string, opts GetObjectOptions) error
下载并将对象保存为本地文件系统中的文件。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
字符串 |
下载对象的路径 |
|
minio.GetObjectOptions |
GET 请求的选项,指定加密、If-Match 等附加选项 |
Example
err = minioClient.FGetObject(context.Background(), "mybucket", "myobject", "/tmp/myobject", minio.GetObjectOptions{})
if err != nil {
fmt.Println(err)
return
}
PutObject(ctx context.Context, bucketName, objectName string, reader io.Reader, objectSize int64, opts PutObjectOptions) (info UploadInfo, err error)
对于小于128MiB的对象,通过单次PUT操作完成上传。对于大于128MiB的对象,PutObject会根据实际文件大小,将对象无缝分割为128MiB或更大的分段进行上传。单个对象的最大上传容量为5TB。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
io.Reader |
任何实现了 io.Reader 的 Go 类型 |
|
int64 |
正在上传的对象大小。如果流大小未知,请传递 -1(警告:传递 -1 将分配大量内存) |
|
minio.PutObjectOptions |
允许用户为分段上传操作设置可选的自定义元数据、内容头信息、加密密钥和线程数量。 |
minio.PutObjectOptions
字段 |
类型 |
描述 |
|---|---|---|
|
map[string]string |
用户元数据映射 |
|
map[string]string |
用户对象标签映射 |
|
io.Reader |
读取器用于获取上传进度 |
|
字符串 |
对象的内容类型,例如 "application/text" |
|
字符串 |
对象的内容编码,例如 "gzip" |
|
字符串 |
对象的内容配置方式,"inline" |
|
字符串 |
对象的内容语言,例如“法语” |
|
字符串 |
用于指定请求和响应中缓存机制的指令,例如“max-age=600” |
|
*minio.RetentionMode |
要设置的保留模式,例如“COMPLIANCE” |
|
*time.Time |
保留策略应用的有效截止时间 |
|
encrypt.ServerSide |
Interface provided by |
|
字符串 |
指定对象的存储类别。MinIO服务器支持的值为 |
|
字符串 |
为对象指定重定向,可以重定向到同一存储桶中的另一个对象或外部URL。 |
|
bool |
请指定是否要发送 |
|
uint64 |
指定用于上传对象的自定义分段大小 |
|
minio.AdvancedPutOptions |
此选项仅供 MinIO 服务器内部使用,除非应用程序明确知晓其用途,否则不应设置。 |
minio.UploadInfo |
字段 |
类型 |
描述 |
|---|---|---|
|
字符串 |
新对象的 ETag |
|
字符串 |
新对象的版本标识符 |
Example
file, err := os.Open("my-testfile")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
fileStat, err := file.Stat()
if err != nil {
fmt.Println(err)
return
}
uploadInfo, err := minioClient.PutObject(context.Background(), "mybucket", "myobject", file, fileStat.Size(), minio.PutObjectOptions{ContentType:"application/octet-stream"})
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Successfully uploaded bytes: ", uploadInfo)
minio-go SDK 版本 v3.0.3 中的 API 方法 PutObjectWithSize、PutObjectWithMetadata、PutObjectStreaming 和 PutObjectWithProgress 已被新的 PutObject 调用变体取代,该变体接受指向 PutObjectOptions 结构体的指针。
CopyObject(ctx context.Context, dst CopyDestOptions, src CopySrcOptions) (UploadInfo, error)
通过服务器端复制现有对象来创建或替换对象。它支持条件复制、复制对象的一部分以及目标的服务端加密和源的解密。请参阅CopySrcOptions和DestinationInfo有关更多详细信息,请参阅类型。
要将多个源对象复制到单个目标对象,请参阅ComposeObjectAPI。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
minio.CopyDestOptions |
描述目标对象的参数 |
|
minio.CopySrcOptions |
描述源对象的参数 |
minio.UploadInfo
字段 |
类型 |
描述 |
|---|---|---|
|
字符串 |
新对象的 ETag |
|
字符串 |
新对象的版本标识符 |
Example
// Use-case 1: Simple copy object with no conditions.
// Source object
srcOpts := minio.CopySrcOptions{
Bucket: "my-sourcebucketname",
Object: "my-sourceobjectname",
}
// Destination object
dstOpts := minio.CopyDestOptions{
Bucket: "my-bucketname",
Object: "my-objectname",
}
// Copy object call
uploadInfo, err := minioClient.CopyObject(context.Background(), dst, src)
if err != 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 object
srcOpts := 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 object
dstOpts := minio.CopyDestOptions{
Bucket: "my-bucketname",
Object: "my-objectname",
}
// Copy object call
_, err = minioClient.CopyObject(context.Background(), dst, src)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Successfully copied object:", uploadInfo)
ComposeObject(ctx context.Context, dst minio.CopyDestOptions, srcs …minio.CopySrcOptions) (UploadInfo, error)
通过服务器端复制连接源对象列表来创建一个对象。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
minio.CopyDestOptions |
包含待创建对象信息的结构体。 |
|
…minio.CopySrcOptions |
包含源对象信息的结构体切片,按顺序进行拼接。 |
minio.UploadInfo
字段 |
类型 |
描述 |
|---|---|---|
|
字符串 |
新对象的 ETag |
|
字符串 |
新对象的版本标识符 |
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 each
src1Opts := 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 key
sseDst := encrypt.DefaultPBKDF([]byte("new-password"), []byte("new-salt"))
// Create destination info
dstOpts := CopyDestOptions{
Bucket: "bucket",
Object: "object",
Encryption: sseDst,
}
// Compose object call by concatenating multiple source files.
uploadInfo, err := minioClient.ComposeObject(context.Background(), dst, srcs...)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Composed object successfully:", uploadInfo)
FPutObject(ctx context.Context, bucketName, objectName, filePath, opts PutObjectOptions) (info UploadInfo, err error)
将文件内容上传到 objectName。
FPutObject 对于小于 128MiB 的对象会通过单次 PUT 操作完成上传。对于超过 128MiB 的对象,FPutObject 会根据实际文件大小自动以 128MiB 或更大的分块进行无缝上传。单个对象的最大上传容量为 5TB。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
字符串 |
要上传的文件路径 |
|
minio.PutObjectOptions |
指向结构体的指针,允许用户设置可选的元数据、内容类型、内容编码、内容描述、内容语言和缓存控制头部,传递用于加密对象的加密模块,并可选择配置多部分上传操作的线程数。 |
minio.UploadInfo
字段 |
类型 |
描述 |
|---|---|---|
|
字符串 |
新对象的 ETag |
|
字符串 |
新对象的版本标识符 |
Example
uploadInfo, err := minioClient.FPutObject(context.Background(), "my-bucketname", "my-objectname", "my-filename.csv", minio.PutObjectOptions{
ContentType: "application/csv",
});
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Successfully uploaded object: ", uploadInfo)
StatObject(ctx context.Context, bucketName, objectName string, opts StatObjectOptions) (ObjectInfo, error)
获取对象的元数据。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
minio.StatObjectOptions |
GET info/stat 请求的选项,用于指定加密、If-Match 等附加选项 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
minio.ObjectInfo |
对象统计信息 |
minio.ObjectInfo
字段 |
类型 |
描述 |
|---|---|---|
|
time.Time |
对象最后修改时间 |
|
字符串 |
对象的MD5校验和 |
|
字符串 |
对象的内容类型 |
|
int64 |
对象的大小 |
Example
objInfo, err := minioClient.StatObject(context.Background(), "mybucket", "myobject", minio.StatObjectOptions{})
if err != nil {
fmt.Println(err)
return
}
fmt.Println(objInfo)
RemoveObject(ctx context.Context, bucketName, objectName string, opts minio.RemoveObjectOptions) error
移除具有某些指定选项的对象
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
minio.RemoveObjectOptions |
允许用户设置选项 |
minio.RemoveObjectOptions
字段 |
类型 |
描述 |
|---|---|---|
|
bool |
设置绕过治理标头以删除使用 GOVERNANCE 模式锁定的对象 |
|
字符串 |
要删除的对象的版本ID |
|
minio.AdvancedRemoveOptions |
此选项仅供 MinIO 服务器内部使用,除非应用程序明确知晓其用途,否则不应设置。 |
opts := minio.RemoveObjectOptions {
GovernanceBypass: true,
VersionID: "myversionid",
}
err = minioClient.RemoveObject(context.Background(), "mybucket", "myobject", opts)
if err != nil {
fmt.Println(err)
return
}
PutObjectRetention(ctx context.Context, bucketName, objectName string, opts minio.PutObjectRetentionOptions) error
对对象应用对象保留锁。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
minio.PutObjectRetentionOptions |
允许用户设置选项,如保留模式、到期日期和版本ID |
RemoveObjects(ctx context.Context, bucketName string, objectsCh <-chan ObjectInfo, opts RemoveObjectsOptions) <-chan RemoveObjectError
从输入通道中移除获取的对象列表。该调用会向服务器发送删除请求,每次最多处理1000个对象。观察到的错误将通过错误通道发送。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
chan minio.ObjectInfo |
要移除的对象通道 |
|
minio.RemoveObjectsOptions |
允许用户设置选项 |
minio.RemoveObjectsOptions
字段 |
类型 |
描述 |
|---|---|---|
|
bool |
设置绕过治理标头以删除使用 GOVERNANCE 模式锁定的对象 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
<-chan minio.RemoveObjectError |
删除期间观察到的错误接收专用通道。 |
objectsCh := make(chan minio.ObjectInfo)
// 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(context.Background(), "my-bucketname", "my-prefixname", true, nil) {
if object.Err != nil {
log.Fatalln(object.Err)
}
objectsCh <- object
}
}()
opts := minio.RemoveObjectsOptions{
GovernanceBypass: true,
}
for rErr := range minioClient.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)
返回在给定对象上设置的保留策略。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
字符串 |
对象的版本ID |
err = minioClient.PutObjectRetention(context.Background(), "mybucket", "myobject", "")
if err != nil {
fmt.Println(err)
return
}
PutObjectLegalHold(ctx context.Context, bucketName, objectName string, opts minio.PutObjectLegalHoldOptions) error
对对象应用法律保留。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
minio.PutObjectLegalHoldOptions |
允许用户设置选项,如状态和版本ID |
minio.PutObjectLegalHoldOptions
字段 |
类型 |
描述 |
|---|---|---|
|
*minio.LegalHoldStatus |
要设置的 Legal-Hold 状态 |
|
字符串 |
要应用保留的对象版本ID |
s := minio.LegalHoldEnabled
opts := minio.PutObjectLegalHoldOptions {
Status: &s,
}
err = minioClient.PutObjectLegalHold(context.Background(), "mybucket", "myobject", opts)
if err != nil {
fmt.Println(err)
return
}
GetObjectLegalHold(ctx context.Context, bucketName, objectName, versionID string) (status *LegalHoldStatus, err error)
返回给定对象的合法保留状态。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
minio.GetObjectLegalHoldOptions |
允许用户设置版本ID等选项 |
opts := minio.GetObjectLegalHoldOptions{}
err = minioClient.GetObjectLegalHold(context.Background(), "mybucket", "myobject", opts)
if err != nil {
fmt.Println(err)
return
}
SelectObjectContent(ctx context.Context, bucketName string, objectName string, expression string, options SelectObjectOptions) *SelectResults
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
context.Context |
请求上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
SelectObjectOptions |
查询选项 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
选择结果 |
这是一个可以直接传递给 csv.NewReader 进行输出处理的 io.ReadCloser 对象。 |
// 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)
if err != nil {
log.Fatalln(err)
}
defer reader.Close()
if _, err := io.Copy(os.Stdout, reader); err != nil {
log.Fatalln(err)
}
RemoveObjectTagging(ctx context.Context, bucketName, objectName string) error
从给定对象中移除对象标签
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
Example
err = minioClient.RemoveObjectTagging(context.Background(), bucketName, objectName)
if err != nil {
fmt.Println(err)
return
}
RestoreObject(ctx context.Context, bucketName, objectName, versionID string, opts minio.RestoreRequest) error
恢复或对归档对象执行SQL操作
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
字符串 |
对象的版本ID |
|
_minio.RestoreRequest |
恢复请求选项 |
Example
opts := minio.RestoreRequest{}
opts.SetDays(1)
opts.SetGlacierJobParameters(minio.GlacierJobParameters{Tier: minio.TierStandard})
err = s3Client.RestoreObject(context.Background(), "your-bucket", "your-object", "", opts)
if err != nil {
log.Fatalln(err)
}
RemoveIncompleteUpload(ctx context.Context, bucketName, objectName string) error
删除部分上传的对象。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
Example
err = minioClient.RemoveIncompleteUpload(context.Background(), "mybucket", "myobject")
if err != nil {
fmt.Println(err)
return
}
4. 预签名操作
PresignedGetObject(ctx context.Context, bucketName, objectName string, expiry time.Duration, reqParams url.Values) (*url.URL, error)
生成用于HTTP GET操作的预签名URL。浏览器/移动客户端可以指向此URL直接下载对象,即使存储桶是私有的。此预签名URL可以设置以秒为单位的关联过期时间,超过该时间后将不再可用。最大过期时间为604800秒(即7天),最小为1秒。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
time.Duration |
预签名URL的过期时间(秒) |
|
url.Values |
附加响应标头覆盖支持response-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)
if err != 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)
生成用于HTTP PUT操作的预签名URL。浏览器/移动客户端可以指向此URL,直接将对象上传到存储桶,即使该存储桶是私有的。此预签名URL可以设置以秒为单位的关联过期时间,超过该时间后将不再可用。默认过期时间设置为7天。
注意:您只能使用指定的对象名称上传到 S3。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
time.Duration |
预签名URL的过期时间(秒) |
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)
if err != 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)
生成用于HTTP HEAD操作的预签名URL。浏览器/移动客户端可以指向此URL,直接从对象获取元数据,即使存储桶是私有的。此预签名URL可以设置以秒为单位的关联过期时间,超过该时间后将不再可用。默认过期时间设置为7天。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
对象名称 |
|
time.Duration |
预签名URL的过期时间(秒) |
|
url.Values |
附加响应标头覆盖支持response-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)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Successfully generated presigned URL", presignedURL)
PresignedPostPolicy(ctx context.Context, post PostPolicy) (*url.URL, map[string]string, error)
允许为POST操作设置预签名URL的策略条件。可以设置接收对象上传的存储桶名称、键名前缀、过期策略等策略。
// 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)
if err != nil {
fmt.Println(err)
return
}
// POST your content from the command line using `curl`
fmt.Printf("curl ")
for k, v := range formData {
fmt.Printf("-F %s=%s ", k, v)
}
fmt.Printf("-F file=@/etc/bash.bashrc ")
fmt.Printf("%s\n", url)
5. 存储桶策略/通知操作
SetBucketPolicy(ctx context.Context, bucketname, policy string) error
对存储桶或对象前缀设置访问权限。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
字符串 |
要设置的策略 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
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)
if err != nil {
fmt.Println(err)
return
}
GetBucketPolicy(ctx context.Context, bucketName string) (policy string, error)
获取存储桶或前缀的访问权限。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
字符串 |
服务器返回的策略 |
|
错误 |
标准错误 |
Example
policy, err := minioClient.GetBucketPolicy(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
GetBucketNotification(ctx context.Context, bucketName string) (notification.Configuration, error)
获取存储桶的通知配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
notification.Configuration |
存储所有通知配置的结构 |
|
错误 |
标准错误 |
Example
bucketNotification, err := minioClient.GetBucketNotification(context.Background(), "mybucket")
if err != nil {
fmt.Println("Failed to get bucket notification configurations for mybucket", err)
return
}
for _, queueConfig := range bucketNotification.QueueConfigs {
for _, e := range queueConfig.Events {
fmt.Println(e + " event is enabled")
}
}
SetBucketNotification(ctx context.Context, bucketName string, config notification.Configuration) error
在存储桶上设置新的存储桶通知。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
notification.Configuration |
表示要发送到已配置 Web 服务的 XML |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
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)
if err != nil {
fmt.Println("Unable to set the bucket notification: ", err)
return
}
RemoveAllBucketNotification(ctx context.Context, bucketName string) error
删除桶上所有已配置的桶通知。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
Example
err = minioClient.RemoveAllBucketNotification(context.Background(), "mybucket")
if err != 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 通过通知通道接收存储桶通知事件。返回的通知通道包含 'Records' 和 'Err' 两个字段。
‘Records’ 保存从服务器接收到的通知。
‘Err’表示处理接收到的通知时出现的任何错误。
注意:通知通道在首次出现错误时关闭。
参数
Param |
类型 |
描述 |
|---|---|---|
|
字符串 |
要监听通知的存储桶 |
|
字符串 |
用于筛选通知的对象键前缀 |
|
字符串 |
用于过滤通知的对象键后缀 |
|
[]string |
启用特定事件类型的通知 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
chan notification.Info |
存储桶通知通道 |
minio.NotificationInfo
|字段 |类型 |描述 |notificationInfo.Records | []notification.Event| 通知事件集合 |notificationInfo.Err | 错误| 携带操作过程中发生的任何错误(标准错误) |
Example
// Listen for bucket notifications on "mybucket" filtered by prefix, suffix and events.
for notificationInfo := range minioClient.ListenBucketNotification(context.Background(), "mybucket", "myprefix/", ".mysuffix", []string{
"s3:ObjectCreated:*",
"s3:ObjectAccessed:*",
"s3:ObjectRemoved:*",
}) {
if notificationInfo.Err != nil {
fmt.Println(notificationInfo.Err)
}
fmt.Println(notificationInfo)
}
ListenNotification(context context.Context, prefix, suffix string, events []string) <-chan notification.Info
ListenNotification API 通过通知通道接收存储桶和对象通知事件。返回的通知通道包含两个字段 'Records' 和 'Err'。
‘Records’ 保存从服务器接收到的通知。
‘Err’表示处理接收到的通知时出现的任何错误。
注意:通知通道在首次出现错误时关闭。
参数
Param |
类型 |
描述 |
|---|---|---|
|
字符串 |
要监听通知的存储桶 |
|
字符串 |
用于筛选通知的对象键前缀 |
|
字符串 |
用于过滤通知的对象键后缀 |
|
[]string |
启用特定事件类型的通知 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
chan notification.Info |
所有通知的读取通道 |
minio.NotificationInfo
|字段 |类型 |描述 |notificationInfo.Records | []notification.Event| 通知事件集合 |notificationInfo.Err | 错误| 携带操作过程中发生的任何错误(标准错误) |
Example
// Listen for bucket notifications on "mybucket" filtered by prefix, suffix and events.
for notificationInfo := range minioClient.ListenNotification(context.Background(), "myprefix/", ".mysuffix", []string{
"s3:BucketCreated:*",
"s3:BucketRemoved:*",
"s3:ObjectCreated:*",
"s3:ObjectAccessed:*",
"s3:ObjectRemoved:*",
}) {
if notificationInfo.Err != nil {
fmt.Println(notificationInfo.Err)
}
fmt.Println(notificationInfo)
}
SetBucketLifecycle(ctx context.Context, bucketname, config *lifecycle.Configuration) error
为存储桶或对象前缀设置生命周期。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
lifecycle.Configuration |
要设置的生命周期 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
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)
if err != nil {
fmt.Println(err)
return
}
GetBucketLifecycle(ctx context.Context, bucketName string) (*lifecycle.Configuration error)
获取存储桶或前缀的生命周期配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
lifecycle.Configuration |
从服务器返回的生命周期 |
|
错误 |
标准错误 |
Example
lifecycle, err := minioClient.GetBucketLifecycle(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
SetBucketEncryption(ctx context.Context, bucketname string, config sse.Configuration) error
设置存储桶的默认加密配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
sse.Configuration |
用于设置默认加密配置的结构 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
Example
s3Client, err := minio.New("s3.amazonaws.com", &minio.Options{
Creds: credentials.NewStaticV4("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", ""),
Secure: true,
})
if err != nil {
log.Fatalln(err)
}
// Set default encryption configuration on an S3 bucket
err = s3Client.SetBucketEncryption(context.Background(), "my-bucketname", sse.NewConfigurationSSES3())
if err != nil {
log.Fatalln(err)
}
GetBucketEncryption(ctx context.Context, bucketName string) (*sse.Configuration, error)
获取存储桶上设置的默认加密配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
sse.Configuration |
存储默认加密配置的结构 |
|
错误 |
标准错误 |
Example
s3Client, err := minio.New("s3.amazonaws.com", &minio.Options{
Creds: credentials.NewStaticV4("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", ""),
Secure: true,
})
if err != nil {
log.Fatalln(err)
}
// Get default encryption configuration set on an S3 bucket and print it out
encryptionConfig, err := s3Client.GetBucketEncryption(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
fmt.Printf("%+v\n", encryptionConfig)
RemoveBucketEncryption(ctx context.Context, bucketName string) (error)
移除在存储桶上设置的默认加密配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
Example
err := s3Client.RemoveBucketEncryption(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
// "my-bucket" is successfully deleted/removed.
SetObjectLockConfig(ctx context.Context, bucketname, mode *RetentionMode, validity *uint, unit *ValidityUnit) error
在指定存储桶中设置对象锁定配置。mode、validity 和 unit 要么全部设置,要么全部为空。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
保留模式 |
要设置的保留模式 |
|
uint |
有效期待设定 |
|
有效性单位 |
有效期单位 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
Example
mode := Governance
validity := uint(30)
unit := Days
err = minioClient.SetObjectLockConfig(context.Background(), "my-bucketname", &mode, &validity, &unit)
if err != nil {
fmt.Println(err)
return
}
GetObjectLockConfig(ctx context.Context, bucketName string) (objectLock,*RetentionMode, *uint, *ValidityUnit, error)
获取指定存储桶的对象锁定配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
objectLock |
锁定启用状态 |
|
保留模式 |
当前保留模式 |
|
uint |
当前有效期 |
|
有效性单位 |
有效期单位 |
|
错误 |
标准错误 |
Example
enabled, mode, validity, unit, err := minioClient.GetObjectLockConfig(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
fmt.Println("object lock is %s for this bucket",enabled)
if mode != 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
启用存储桶版本控制支持。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
Example
err := minioClient.EnableVersioning(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
fmt.Println("versioning enabled for bucket 'my-bucketname'")
DisableVersioning(ctx context.Context, bucketName) error
禁用存储桶版本控制支持。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
Example
err := minioClient.DisableVersioning(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
fmt.Println("versioning disabled for bucket 'my-bucketname'")
GetBucketVersioning(ctx context.Context, bucketName string) (BucketVersioningConfiguration, error)
获取存储桶上设置的版本控制配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
minio.BucketVersioningConfiguration |
保存版本控制配置的结构 |
|
错误 |
标准错误 |
Example
s3Client, err := minio.New("s3.amazonaws.com", &minio.Options{
Creds: credentials.NewStaticV4("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", ""),
Secure: true,
})
if err != nil {
log.Fatalln(err)
}
// Get versioning configuration set on an S3 bucket and print it out
versioningConfig, err := s3Client.GetBucketVersioning(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
fmt.Printf("%+v\n", versioningConfig)
SetBucketReplication(ctx context.Context, bucketname, cfg replication.Config) error
为存储桶设置复制配置。角色可以通过先在 MinIO 上定义复制目标来获取mc admin bucket remote set将源存储桶和目标存储桶与复制端点关联以进行复制。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
|
replication.Config |
要设置的复制配置 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
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{}
if err := 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)
if err != nil {
fmt.Println(err)
return
}
GetBucketReplication(ctx context.Context, bucketName string) (replication.Config, error)
获取存储桶的当前复制配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
replication.Config |
从服务器返回的复制配置 |
|
错误 |
标准错误 |
Example
replication, err := minioClient.GetBucketReplication(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
RemoveBucketReplication(ctx context.Context, bucketname string) error
删除存储桶上的复制配置。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
错误 |
标准错误 |
Example
err = minioClient.RemoveBucketReplication(context.Background(), "my-bucketname")
if err != nil {
fmt.Println(err)
return
}
GetBucketReplicationMetrics(ctx context.Context, bucketName string) (replication.Metrics, error)
获取存储桶的最新复制指标。这是 MinIO 的特定扩展功能。
参数
Param |
类型 |
描述 |
|---|---|---|
|
context.Context |
调用的超时/取消自定义上下文 |
|
字符串 |
存储桶的名称 |
返回值
Param |
类型 |
描述 |
|---|---|---|
|
replication.Metrics |
从服务器返回的复制指标 |
|
错误 |
标准错误 |
Example
replMetrics, err := minioClient.GetBucketReplicationMetrics(context.Background(), "my-bucketname")
if err != nil {
log.Fatalln(err)
}
6. 客户端自定义设置
SetAppInfo(appName, appVersion string)
将自定义应用程序详情添加到 User-Agent。
参数
Param |
类型 |
描述 |
|---|---|---|
|
字符串 |
执行 API 请求的应用程序名称。 |
|
字符串 |
执行 API 请求的应用程序版本。 |
Example
// Set Application name and version to be used in subsequent API requests.
minioClient.SetAppInfo("myCloudApp", "1.0.0")
TraceOn(outputStream io.Writer)
启用 HTTP 跟踪功能。跟踪信息将被写入提供的 io.Writer。如果 outputStream 为 nil,跟踪信息将写入 os.Stdout。
参数
Param |
类型 |
描述 |
|---|---|---|
|
io.Writer |
HTTP trace 被写入 outputStream。 |
TraceOff()
禁用 HTTP 跟踪。
SetS3TransferAccelerate(acceleratedEndpoint string)
为所有后续API请求设置AWS S3传输加速端点。 注意:此API仅适用于AWS S3,对于S3兼容的对象存储服务无效。
参数
Param |
类型 |
描述 |
|---|---|---|
|
字符串 |
设置为新的 S3 传输加速端点。 |