diff --git a/pkg/local_object_storage/shard/get.go b/pkg/local_object_storage/shard/get.go index b5648db2..42e92c45 100644 --- a/pkg/local_object_storage/shard/get.go +++ b/pkg/local_object_storage/shard/get.go @@ -122,7 +122,15 @@ func (s *Shard) fetchObjectData(addr *addressSDK.Address, skipMeta bool, big, sm } } - if skipMeta { + var exists bool + if !skipMeta { + exists, err = meta.Exists(s.metaBase, addr) + if err != nil && s.GetMode() != ModeDegraded { + return res, false, err + } + } + + if skipMeta || err != nil { res, err = small(s.blobStor, nil) if err == nil || errors.Is(err, object.ErrRangeOutOfBounds) { return res, false, err @@ -131,11 +139,6 @@ func (s *Shard) fetchObjectData(addr *addressSDK.Address, skipMeta bool, big, sm return res, false, err } - exists, err := meta.Exists(s.metaBase, addr) - if err != nil { - return nil, false, err - } - if !exists { var errNotFound apistatus.ObjectNotFound