【问题标题】:uploading image buffer with minio使用 minio 上传图像缓冲区
【发布时间】:2020-05-14 11:47:23
【问题描述】:

我正在尝试使用 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)
}

我得到错误:不能在 minioClient.FPutObject 的参数中使用阅读器(类型 *bytes.Reader)作为类型字符串

【问题讨论】:

  • minio 包的FPut* 函数采用文件名(即字符串)。使用PutObject 函数传入实现io.Reader 的任何内容。
  • @torek 谢谢,它现在完美运行。如果您创建回复,我可以将此帖子标记为已解决:)

标签: image go amazon-s3 buffer minio


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以使用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

    【讨论】:

      猜你喜欢
      • 2014-10-26
      • 2013-11-30
      • 2021-02-04
      • 2020-10-18
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 2012-01-27
      • 2021-10-02
      相关资源
      最近更新 更多