diff --git a/CHANGELOG.md b/CHANGELOG.md index cfc4eaf43..f1ba8aaf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,7 @@ Changelog for FrostFS Node - Actually use `object.put.pool_size_local` and independent pool for local puts (#64). - Pretty printer of basic ACL in the NeoFS CLI (#2259) - Adding of public key for nns group `group.frostfs` at init step (#130) +- Iterating over just removed files by FSTree (#98) ### Removed ### Updated diff --git a/pkg/local_object_storage/blobstor/fstree/fstree.go b/pkg/local_object_storage/blobstor/fstree/fstree.go index 3265e68f3..1a1247001 100644 --- a/pkg/local_object_storage/blobstor/fstree/fstree.go +++ b/pkg/local_object_storage/blobstor/fstree/fstree.go @@ -135,13 +135,16 @@ func (t *FSTree) iterate(depth uint64, curPath []string, prm common.IteratePrm) continue } + data, err := os.ReadFile(filepath.Join(curPath...)) + if err != nil && os.IsNotExist(err) { + continue + } + if prm.LazyHandler != nil { err = prm.LazyHandler(addr, func() ([]byte, error) { - return os.ReadFile(filepath.Join(curPath...)) + return data, err }) } else { - var data []byte - data, err = os.ReadFile(filepath.Join(curPath...)) if err == nil { data, err = t.Decompress(data) }