4

ユーザーがmultipart.File自分のサーバーにアップロードしたファイルがあり、そのファイルを取得して を使用して s3 にアップロードしますaws-sdk-goが、その画像のサムネイルも作成したいと考えています。

以下のコードは、 I がローカル ファイルのfileの戻り値である場合にテストで正常に動作しますが、 に送信した同じ変数を送信するとブロックにヒットします。os.Open(...errCreateThumbnails3io.Reader

import (
  "image"
  "image/jpeg"
)
func UploadToS3(file multipart.File, /*snip*/) {
  _, uploadErr := uploader.Upload(&s3manager.UploadInput{
    Bucket: aws.String(bucket),
    Key:    aws.String(key),
    Body:   file,
    ContentType: aws.String(mimeType),
    ACL: aws.String("public-read"),
  })
  reader, err := CreateThumbnail(file)
}    

func CreateThumbnail(imageFile io.Reader) (io.Reader, error) {
  decodedImage, _, err := image.Decode(imageFile)
  if err != nil {
   fmt.Println("Error decoding", err, decodedImage) // "unknown format"
   return nil, err
 }
 /*snip*/

問題に対して私が目にする答えのほとんどは、追加を伴いますが、それはすでにインポートされています (および とimport _ "image/jpeg"同様)。私はGolangにかなり慣れていないので、何が間違っているのか少し迷っています。私も試しましたが、結果は同じです。pnggifimage.Decode(bufio.NewReader(imageFile))err

4

1 に答える 1