参考源码
参考文档
PutObject
PutObject(bucketName, objectName string, reader io.Reader, objectSize int64,opts PutObjectOptions) (n int, err error)
当对象小于128MiB时,直接在一次PUT请求里进行上传。当大于128MiB时,根据文件的实际大小,PutObject会自动地将对象进行拆分成128MiB一块或更大一些进行上传。对象的最大大小是5TB。
参数
参数 | 类型 | 描述 |
---|---|---|
bucketName |
string | 存储桶名称 |
objectName |
string | 对象的名称 |
reader |
io.Reader | 任意实现了io.Reader的GO类型 |
objectSize |
int64 | 上传的对象的大小,-1代表未知。 |
opts |
minio.PutObjectOptions | 允许用户设置可选的自定义元数据,内容标题,加密密钥和用于分段上传操作的线程数量。 |
minio.PutObjectOptions
属性 | 类型 | 描述 |
---|---|---|
opts.UserMetadata |
map[string]string | 用户元数据的Map |
opts.Progress |
io.Reader | 获取上传进度的Reader |
opts.ContentType |
string | 对象的Content type, 例如”application/text” |
opts.ContentEncoding |
string | 对象的Content encoding,例如”gzip” |
opts.ContentDisposition |
string | 对象的Content disposition, “inline” |
opts.CacheControl |
string | 指定针对请求和响应的缓存机制,例如”max-age=600” |
opts.EncryptMaterials |
encrypt.Materials | encrypt 包提供的对流加密的接口,(更多信息,请看https://godoc.org/github.com/minio/minio-go/v7) |
func main() {
InitClient()
CreateBucket(BucketName)
object, err := os.Open("./MinIO_FastStart.txt")
if err != nil {
log.Fatalln(err)
}
defer object.Close()
objectStat, err := object.Stat()
if err != nil {
log.Fatalln(err)
}
n, err := MinioClient.PutObject(context.Background(), BucketName, "MinIO_FastStart.txt", object, objectStat.Size(), minio.PutObjectOptions{ContentType: "application/octet-stream"})
if err != nil {
log.Fatalln(err)
}
log.Println("Uploaded", "my-objectname", " of size: ", n, "Successfully.")
}