ユーザーがmultipart.File
自分のサーバーにアップロードしたファイルがあり、そのファイルを取得して を使用して s3 にアップロードしますaws-sdk-go
が、その画像のサムネイルも作成したいと考えています。
以下のコードは、 I がローカル ファイルのfile
の戻り値である場合にテストで正常に動作しますが、 に送信した同じ変数を送信するとブロックにヒットします。os.Open(...
err
CreateThumbnail
s3
io.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にかなり慣れていないので、何が間違っているのか少し迷っています。私も試しましたが、結果は同じです。png
gif
image.Decode(bufio.NewReader(imageFile))
err