Skip to content

Commit

Permalink
Fix S3 uploads (#178)
Browse files Browse the repository at this point in the history
My previous change that reworked how metadata generation worked was not
correct for two reasons:

* It passed the original `io.Reader` (with no bytes remaining) to
  `GenerateMetadata`
* It did not seek back to the beginning of the temporary file after
  writing to it, causing any subsequent reads to return EOF.

This change fixes both issues and S3 uploads now work fine. We really
ought to investigate adding test coverage to our S3 backend to avoid
similar recurrences.
  • Loading branch information
mutantmonkey authored and andreimarcu committed Jun 4, 2019
1 parent 872340e commit 50c1bdc
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion backends/s3/s3.go
Expand Up @@ -122,7 +122,12 @@ func (b S3Backend) Put(key string, r io.Reader, expiry time.Time, deleteKey stri
return m, err
}

m, err = helpers.GenerateMetadata(r)
_, err = tmpDst.Seek(0, 0)
if err != nil {
return m, err
}

m, err = helpers.GenerateMetadata(tmpDst)
if err != nil {
return
}
Expand All @@ -131,6 +136,11 @@ func (b S3Backend) Put(key string, r io.Reader, expiry time.Time, deleteKey stri
// XXX: we may not be able to write this to AWS easily
//m.ArchiveFiles, _ = helpers.ListArchiveFiles(m.Mimetype, m.Size, tmpDst)

_, err = tmpDst.Seek(0, 0)
if err != nil {
return m, err
}

uploader := s3manager.NewUploaderWithClient(b.svc)
input := &s3manager.UploadInput{
Bucket: aws.String(b.bucket),
Expand Down

0 comments on commit 50c1bdc

Please sign in to comment.