aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/storage/needle/needle_read.go21
1 files changed, 6 insertions, 15 deletions
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) {