Skip to content

Commit

Permalink
refactor: PutObject to return filesize
Browse files Browse the repository at this point in the history
BREAKING CHANGE: PutObject has different return type sig
  • Loading branch information
neurosnap committed Jun 13, 2024
1 parent 4f5e944 commit f703e13
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ func (h *UploadAssetHandler) writeAsset(data *FileData) error {
objectFileName,
)

_, err = h.Cfg.Storage.PutObject(
_, _, err = h.Cfg.Storage.PutObject(
data.Bucket,
objectFileName,
utils.NopReaderAtCloser(reader),
Expand Down
12 changes: 6 additions & 6 deletions storage/fs.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,20 +101,20 @@ func (s *StorageFS) GetObject(bucket Bucket, fpath string) (utils.ReaderAtCloser
return dat, info.Size(), info.ModTime(), nil
}

func (s *StorageFS) PutObject(bucket Bucket, fpath string, contents io.Reader, entry *utils.FileEntry) (string, error) {
func (s *StorageFS) PutObject(bucket Bucket, fpath string, contents io.Reader, entry *utils.FileEntry) (string, int64, error) {
loc := filepath.Join(bucket.Path, fpath)
err := os.MkdirAll(filepath.Dir(loc), os.ModePerm)
if err != nil {
return "", err
return "", 0, err
}
f, err := os.OpenFile(loc, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
if err != nil {
return "", err
return "", 0, err
}

_, err = io.Copy(f, contents)
size, err := io.Copy(f, contents)
if err != nil {
return "", err
return "", 0, err
}

f.Close()
Expand All @@ -124,7 +124,7 @@ func (s *StorageFS) PutObject(bucket Bucket, fpath string, contents io.Reader, e
_ = os.Chtimes(loc, uTime, uTime)
}

return loc, nil
return loc, size, nil
}

func (s *StorageFS) DeleteObject(bucket Bucket, fpath string) error {
Expand Down
6 changes: 3 additions & 3 deletions storage/minio.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ func (s *StorageMinio) GetObject(bucket Bucket, fpath string) (utils.ReaderAtClo
return obj, info.Size, modTime, nil
}

func (s *StorageMinio) PutObject(bucket Bucket, fpath string, contents io.Reader, entry *utils.FileEntry) (string, error) {
func (s *StorageMinio) PutObject(bucket Bucket, fpath string, contents io.Reader, entry *utils.FileEntry) (string, int64, error) {
opts := minio.PutObjectOptions{
UserMetadata: map[string]string{
"Mtime": fmt.Sprint(time.Now().Unix()),
Expand All @@ -191,10 +191,10 @@ func (s *StorageMinio) PutObject(bucket Bucket, fpath string, contents io.Reader
info, err := s.Client.PutObject(context.TODO(), bucket.Name, fpath, contents, -1, opts)

if err != nil {
return "", err
return "", 0, err
}

return fmt.Sprintf("%s/%s", info.Bucket, info.Key), nil
return fmt.Sprintf("%s/%s", info.Bucket, info.Key), info.Size, nil
}

func (s *StorageMinio) DeleteObject(bucket Bucket, fpath string) error {
Expand Down
2 changes: 1 addition & 1 deletion storage/storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ type ObjectStorage interface {
DeleteBucket(bucket Bucket) error

GetObject(bucket Bucket, fpath string) (utils.ReaderAtCloser, int64, time.Time, error)
PutObject(bucket Bucket, fpath string, contents io.Reader, entry *utils.FileEntry) (string, error)
PutObject(bucket Bucket, fpath string, contents io.Reader, entry *utils.FileEntry) (string, int64, error)
DeleteObject(bucket Bucket, fpath string) error
ListObjects(bucket Bucket, dir string, recursive bool) ([]os.FileInfo, error)
}

0 comments on commit f703e13

Please sign in to comment.