mirror of
https://github.com/minio/minio.git
synced 2025-11-07 12:52:58 -05:00
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:
@@ -154,11 +154,24 @@ func (s *xlStorage) WalkDir(ctx context.Context, opts WalkDirOptions, wr io.Writ
|
||||
// If root was an object return it as such.
|
||||
if HasSuffix(entry, xlStorageFormatFile) {
|
||||
var meta metaCacheEntry
|
||||
meta.metadata, err = xioutil.ReadFile(pathJoin(volumeDir, current, entry))
|
||||
f, err := os.OpenFile(pathJoin(volumeDir, current, entry), readMode, 0)
|
||||
if err != nil {
|
||||
logger.LogIf(ctx, err)
|
||||
continue
|
||||
}
|
||||
stat, err := f.Stat()
|
||||
if err != nil {
|
||||
logger.LogIf(ctx, err)
|
||||
f.Close()
|
||||
continue
|
||||
}
|
||||
meta.metadata, err = readXLMetaNoData(f, stat.Size())
|
||||
if err != nil {
|
||||
logger.LogIf(ctx, err)
|
||||
f.Close()
|
||||
continue
|
||||
}
|
||||
f.Close()
|
||||
meta.metadata = xlMetaV2TrimData(meta.metadata)
|
||||
meta.name = strings.TrimSuffix(entry, xlStorageFormatFile)
|
||||
meta.name = strings.TrimSuffix(meta.name, SlashSeparator)
|
||||
|
||||
Reference in New Issue
Block a user