diff --git a/internal/objectstorage/posix/posix.go b/internal/objectstorage/posix/posix.go index c44a184..233c2f9 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) { @@ -215,7 +215,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 e70afe6..1db42f6 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) { @@ -412,7 +412,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 eb7d000..2e6be74 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) { @@ -156,7 +156,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 }