登录
首页 >  Golang >  Go问答

将使用minio上传图像数据

来源:stackoverflow

时间:2024-03-24 08:24:42 338浏览 收藏

为了将 image.Image (image.NRGBA) 数据上传到 MinIO 存储,使用 minio 包的 FPutObject 函数会出现错误,因为该函数需要一个文件名作为参数。解决方案是使用 PutObject 函数,它接受实现 io.Reader 的任何内容,例如 reader 变量。

问题内容

我正在尝试使用minio将image.image(image.nrgba)上传到存储空间。 这是我的代码:

buff := new(bytes.Buffer)

err = png.Encode(buff, image)
if err != nil {
    fmt.Println("failed to create buffer", err)
}

reader := bytes.NewReader(buff.Bytes())

n, err := minioClient.FPutObject(bucketName, objectName, reader, minio.PutObjectOptions{ContentType:contentType})
if err != nil {
    log.Fatalln(err)
}

我收到错误:无法使用 reader(类型 *bytes.reader)作为 minioclient.fputobject 参数中的类型字符串


解决方案


minio 包的 fput* 函数采用文件名,即字符串。使用 putobject 函数(或其上下文变体)传入实现 io.reader 的任何内容,例如 reader 变量。

您可以使用 putobject

info, err := minioClient.PutObject(ctx, bucketName, objectName, reader, int64(len(bytes))), minio.PutObjectOptions{ContentType: contentType})

api文档位于https://docs.min.io/docs/golang-client-api-reference#PutObject

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>