mirror of
https://github.com/minio/minio.git
synced 2025-11-20 18:06:10 -05:00
fix: Avoid double usage calculation on every restart (#8856)
On every restart of the server, usage was being calculated which is not useful instead wait for sufficient time to start the crawling routine. This PR also avoids lots of double allocations through strings, optimizes usage of string builders and also avoids crawling through symbolic links. Fixes #8844
This commit is contained in:
committed by
kannappanr
parent
e2b3c083aa
commit
f14f60a487
42
cmd/utils.go
42
cmd/utils.go
@@ -67,28 +67,24 @@ func request2BucketObjectName(r *http.Request) (bucketName, objectName string) {
|
||||
if err != nil {
|
||||
logger.CriticalIf(context.Background(), err)
|
||||
}
|
||||
return urlPath2BucketObjectName(path)
|
||||
|
||||
return path2BucketObject(path)
|
||||
}
|
||||
|
||||
// Convert url path into bucket and object name.
|
||||
func urlPath2BucketObjectName(path string) (bucketName, objectName string) {
|
||||
if path == "" || path == SlashSeparator {
|
||||
return "", ""
|
||||
// path2BucketObjectWithBasePath returns bucket and prefix, if any,
|
||||
// of a 'path'. basePath is trimmed from the front of the 'path'.
|
||||
func path2BucketObjectWithBasePath(basePath, path string) (bucket, prefix string) {
|
||||
path = strings.TrimPrefix(path, basePath)
|
||||
path = strings.TrimPrefix(path, SlashSeparator)
|
||||
m := strings.Index(path, SlashSeparator)
|
||||
if m < 0 {
|
||||
return path, ""
|
||||
}
|
||||
return path[:m], path[m+len(SlashSeparator):]
|
||||
}
|
||||
|
||||
// Trim any preceding slash separator.
|
||||
urlPath := strings.TrimPrefix(path, SlashSeparator)
|
||||
|
||||
// Split urlpath using slash separator into a given number of
|
||||
// expected tokens.
|
||||
tokens := strings.SplitN(urlPath, SlashSeparator, 2)
|
||||
bucketName = tokens[0]
|
||||
if len(tokens) == 2 {
|
||||
objectName = tokens[1]
|
||||
}
|
||||
|
||||
// Success.
|
||||
return bucketName, objectName
|
||||
func path2BucketObject(s string) (bucket, prefix string) {
|
||||
return path2BucketObjectWithBasePath("", s)
|
||||
}
|
||||
|
||||
// URI scheme constants.
|
||||
@@ -553,16 +549,6 @@ func getMinioMode() string {
|
||||
return mode
|
||||
}
|
||||
|
||||
func splitN(str, delim string, num int) []string {
|
||||
stdSplit := strings.SplitN(str, delim, num)
|
||||
retSplit := make([]string, num)
|
||||
for i := 0; i < len(stdSplit); i++ {
|
||||
retSplit[i] = stdSplit[i]
|
||||
}
|
||||
|
||||
return retSplit
|
||||
}
|
||||
|
||||
func iamPolicyClaimName() string {
|
||||
return globalOpenIDConfig.ClaimPrefix + globalOpenIDConfig.ClaimName
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user