diff --git a/weed/storage/needle/needle_read.go b/weed/storage/needle/needle_read.go index 905969e36..69c510e08 100644 --- a/weed/storage/needle/needle_read.go +++ b/weed/storage/needle/needle_read.go @@ -96,21 +96,12 @@ func (n *Needle) ReadBytes(bytes []byte, offset int64, size Size, version Versio } // ReadData hydrates the needle from the file, with only n.Id is set. -func (n *Needle) ReadData(r backend.BackendStorageFile, offset int64, size Size, version Version) (err error) { - bytes, err := ReadNeedleBlob(r, offset, size, version) - if err != nil { - return err - } - err = n.ReadBytes(bytes, offset, size, version) - if err == ErrorSizeMismatch && OffsetSize == 4 { - offset = offset + int64(MaxPossibleVolumeSize) - bytes, err = ReadNeedleBlob(r, offset, size, version) - if err != nil { - return err - } - err = n.ReadBytes(bytes, offset, size, version) - } - return err +func (n *Needle) ReadData(r backend.BackendStorageFile, offset int64, size Size, version Version) error { + return n.ReadFromFile(r, offset, size, version, NeedleReadOptions{ + ReadHeader: true, + ReadData: true, + ReadMeta: true, + }) } func (n *Needle) ParseNeedleHeader(bytes []byte) {