Add XL reader without data (#12351)

Add XL metadata reader that reads metadata only on larger files.

Use for scanning and listing for now.
This commit is contained in:
Klaus Post
2021-05-21 18:10:54 +02:00
committed by GitHub
parent 783ea5eb5c
commit 9d1b6fb37d
3 changed files with 170 additions and 2 deletions

View File

@@ -421,13 +421,29 @@ func (s *xlStorage) NSScanner(ctx context.Context, cache dataUsageCache, updates
return sizeSummary{}, errSkipFile
}
buf, err := xioutil.ReadFile(item.Path)
f, err := os.OpenFile(item.Path, readMode, 0)
if err != nil {
if intDataUpdateTracker.debug {
console.Debugf(color.Green("scannerBucket:")+" object path missing: %v: %w\n", item.Path, err)
}
return sizeSummary{}, errSkipFile
}
defer f.Close()
stat, err := f.Stat()
if err != nil {
if intDataUpdateTracker.debug {
console.Debugf(color.Green("scannerBucket:")+" stat failed: %v: %w\n", item.Path, err)
}
return sizeSummary{}, errSkipFile
}
buf, err := readXLMetaNoData(f, stat.Size())
if err != nil {
if intDataUpdateTracker.debug {
console.Debugf(color.Green("scannerBucket:")+" readXLMetaNoData: %v: %w\n", item.Path, err)
}
return sizeSummary{}, errSkipFile
}
// Remove filename which is the meta file.
item.transformMetaDir()