mirror of
https://github.com/pgsty/minio.git
synced 2026-07-19 12:10:24 +03:00
enhance getActualSize() to return valid values for most situations (#20228)
This commit is contained in:
@@ -30,8 +30,8 @@ import (
|
||||
// if inclFreeVersions is true all the versions are in fivs.Versions, free and non-free versions alike.
|
||||
//
|
||||
// Note: Only the scanner requires fivs.Versions to have exclusively non-free versions. This is used while enforcing NewerNoncurrentVersions lifecycle element.
|
||||
func getFileInfoVersions(xlMetaBuf []byte, volume, path string, allParts, inclFreeVersions bool) (FileInfoVersions, error) {
|
||||
fivs, err := getAllFileInfoVersions(xlMetaBuf, volume, path, allParts)
|
||||
func getFileInfoVersions(xlMetaBuf []byte, volume, path string, inclFreeVersions bool) (FileInfoVersions, error) {
|
||||
fivs, err := getAllFileInfoVersions(xlMetaBuf, volume, path, true)
|
||||
if err != nil {
|
||||
return fivs, err
|
||||
}
|
||||
@@ -106,7 +106,6 @@ func getAllFileInfoVersions(xlMetaBuf []byte, volume, path string, allParts bool
|
||||
type fileInfoOpts struct {
|
||||
InclFreeVersions bool
|
||||
Data bool
|
||||
AllParts bool
|
||||
}
|
||||
|
||||
func getFileInfo(xlMetaBuf []byte, volume, path, versionID string, opts fileInfoOpts) (FileInfo, error) {
|
||||
@@ -117,7 +116,7 @@ func getFileInfo(xlMetaBuf []byte, volume, path, versionID string, opts fileInfo
|
||||
return FileInfo{}, e
|
||||
} else if buf != nil {
|
||||
inData = data
|
||||
fi, err = buf.ToFileInfo(volume, path, versionID, opts.AllParts)
|
||||
fi, err = buf.ToFileInfo(volume, path, versionID, true)
|
||||
if len(buf) != 0 && errors.Is(err, errFileNotFound) {
|
||||
// This special case is needed to handle len(xlMeta.versions) == 0
|
||||
return FileInfo{
|
||||
@@ -146,7 +145,7 @@ func getFileInfo(xlMetaBuf []byte, volume, path, versionID string, opts fileInfo
|
||||
}, nil
|
||||
}
|
||||
inData = xlMeta.data
|
||||
fi, err = xlMeta.ToFileInfo(volume, path, versionID, opts.InclFreeVersions, opts.AllParts)
|
||||
fi, err = xlMeta.ToFileInfo(volume, path, versionID, opts.InclFreeVersions, true)
|
||||
}
|
||||
if !opts.Data || err != nil {
|
||||
return fi, err
|
||||
|
||||
Reference in New Issue
Block a user