diff --git a/server/storage.go b/server/storage.go index f8125d2..b938482 100644 --- a/server/storage.go +++ b/server/storage.go @@ -27,6 +27,7 @@ import ( type Storage interface { Get(token string, filename string) (reader io.ReadCloser, contentType string, contentLength uint64, err error) Head(token string, filename string) (contentType string, contentLength uint64, err error) + PutMulti(token string, filename string, reader io.Reader, contentType string, contentLength uint64) error Put(token string, filename string, reader io.Reader, contentType string, contentLength uint64) error Delete(token string, filename string) error IsNotExist(err error) bool @@ -150,7 +151,6 @@ func (s *S3Storage) Head(token string, filename string) (contentType string, con if err != nil { return } - contentType = response.Header.Get("Content-Type") contentLength, err = strconv.ParseUint(response.Header.Get("Content-Length"), 10, 0) @@ -202,7 +202,7 @@ func (s *S3Storage) Delete(token string, filename string) (err error) { return } -func (s *S3Storage) Put(token string, filename string, reader io.Reader, contentType string, contentLength uint64) (err error) { +func (s *S3Storage) PutMulti(token string, filename string, reader io.Reader, contentType string, contentLength uint64) (err error) { key := fmt.Sprintf("%s/%s", token, filename) var ( @@ -316,6 +316,22 @@ func (s *S3Storage) Put(token string, filename string, reader io.Reader, content return } +func (s *S3Storage) Put(token string, filename string, reader io.Reader, contentType string, contentLength uint64) (err error) { + key := fmt.Sprintf("%s/%s", token, filename) + + s.logger.Printf("Uploading file %s to S3 Bucket", filename) + + err = s.bucket.PutReader(key, reader, contentType, s3.Private, s3.Options{}) + + if err != nil { + return + } + + s.logger.Printf("Completed uploading %s", filename) + + return +} + type GDrive struct { service *drive.Service rootId string