diff --git a/internal/objectstorage/posix/posix.go b/internal/objectstorage/posix/posix.go index 8a4201d..3364a03 100644 --- a/internal/objectstorage/posix/posix.go +++ b/internal/objectstorage/posix/posix.go @@ -73,7 +73,7 @@ func (s *PosixStorage) Stat(p string) (*types.ObjectInfo, error) { return nil, err } - return &types.ObjectInfo{Path: p, LastModified: fi.ModTime()}, nil + return &types.ObjectInfo{Path: p, LastModified: fi.ModTime(), Size: fi.Size()}, nil } func (s *PosixStorage) ReadObject(p string) (types.ReadSeekCloser, error) { @@ -219,7 +219,7 @@ func (s *PosixStorage) List(prefix, startWith, delimiter string, doneCh <-chan s if strings.HasPrefix(p, prefix) && p > startWith { select { // Send object content. - case objectCh <- types.ObjectInfo{Path: p, LastModified: info.ModTime()}: + case objectCh <- types.ObjectInfo{Path: p, LastModified: info.ModTime(), Size: info.Size()}: // If receives done from the caller, return here. case <-doneCh: return io.EOF diff --git a/internal/objectstorage/posixflat/posixflat.go b/internal/objectstorage/posixflat/posixflat.go index d3e4a7c..cdcdd6e 100644 --- a/internal/objectstorage/posixflat/posixflat.go +++ b/internal/objectstorage/posixflat/posixflat.go @@ -249,7 +249,7 @@ func (s *PosixFlatStorage) Stat(p string) (*types.ObjectInfo, error) { return nil, err } - return &types.ObjectInfo{Path: p, LastModified: fi.ModTime()}, nil + return &types.ObjectInfo{Path: p, LastModified: fi.ModTime(), Size: fi.Size()}, nil } func (s *PosixFlatStorage) ReadObject(p string) (types.ReadSeekCloser, error) { @@ -416,7 +416,7 @@ func (s *PosixFlatStorage) List(prefix, startWith, delimiter string, doneCh <-ch if p > prevp { select { // Send object content. - case objectCh <- types.ObjectInfo{Path: p, LastModified: info.ModTime()}: + case objectCh <- types.ObjectInfo{Path: p, LastModified: info.ModTime(), Size: info.Size()}: // If receives done from the caller, return here. case <-doneCh: return io.EOF diff --git a/internal/objectstorage/s3/s3.go b/internal/objectstorage/s3/s3.go index 4d47825..06b28bd 100644 --- a/internal/objectstorage/s3/s3.go +++ b/internal/objectstorage/s3/s3.go @@ -72,7 +72,7 @@ func (s *S3Storage) Stat(p string) (*types.ObjectInfo, error) { return nil, merr } - return &types.ObjectInfo{Path: p, LastModified: oi.LastModified}, nil + return &types.ObjectInfo{Path: p, LastModified: oi.LastModified, Size: oi.Size}, nil } func (s *S3Storage) ReadObject(filepath string) (types.ReadSeekCloser, error) { @@ -157,7 +157,7 @@ func (s *S3Storage) List(prefix, startWith, delimiter string, doneCh <-chan stru for _, object := range result.Contents { select { // Send object content. - case objectCh <- types.ObjectInfo{Path: object.Key, LastModified: object.LastModified}: + case objectCh <- types.ObjectInfo{Path: object.Key, LastModified: object.LastModified, Size: object.Size}: // If receives done from the caller, return here. case <-doneCh: return diff --git a/internal/objectstorage/types/types.go b/internal/objectstorage/types/types.go index cd11a90..7911bbb 100644 --- a/internal/objectstorage/types/types.go +++ b/internal/objectstorage/types/types.go @@ -33,9 +33,9 @@ type ReadSeekCloser interface { } type ObjectInfo struct { - Path string - + Path string LastModified time.Time + Size int64 Err error }