2017-12-08 45 views
0

aws golang sdkを使用してs3バケットにファイルをアップロードしたいと思います。私はPOSTリクエストを聞いているWebサーバーを持っていて、私はどんなタイプの複数のファイルも受け取ることを期待しています。 SDKを使用してs3を使用した複数のファイルアップロード

は、S3構造体PutObjectInputBodyがタイプio.ReadSeekerであることを期待し、私がアップロードしたファイルからコンテンツを抽出し、順番にio.ReadSeekerインターフェイスを満足するかどうかはわかりません。

images := r.MultipartForm.File 

for _, files := range images { 
    for _, f := range files { 

     # In my handler, I can loop over the files 
     # and see the content 
     fmt.Println(f.Header) 

     _, err = svc.PutObjectWithContext(ctx, &s3.PutObjectInput{ 
       Bucket: aws.String("bucket"), 
       Key: aws.String("key"), 
       Body: FILE_CONTENT_HERE, 
      }) 
    } 
} 

答えて

1

io.ReadSeekerを取得するためにFileHeader.Openメソッドを使用します。

f, err := f.Open() 
    if err != nil { 
     // handle error 
    } 

    _, err = svc.PutObjectWithContext(ctx, &s3.PutObjectInput{ 
      Bucket: aws.String("bucket"), 
      Key: aws.String("key"), 
      Body: f, 
     }) 

返信a Fileを返します。このタイプはio.ReadSeekerインターフェイスを満たします。

関連する問題