feat(blob path): diable {path} magic var for blob path
This commit is contained in:
2
assets
2
assets
Submodule assets updated: 09480ffa21...3a23464a0f
@@ -770,7 +770,7 @@ func generateSavePath(policy *ent.StoragePolicy, req *fs.UploadRequest, user *en
|
|||||||
currentTime := time.Now()
|
currentTime := time.Now()
|
||||||
originName := req.Props.Uri.Name()
|
originName := req.Props.Uri.Name()
|
||||||
|
|
||||||
dynamicReplace := func(regPattern string, rule string) string {
|
dynamicReplace := func(regPattern string, rule string, pathAvailable bool) string {
|
||||||
re := regexp.MustCompile(regPattern)
|
re := regexp.MustCompile(regPattern)
|
||||||
return re.ReplaceAllStringFunc(rule, func(match string) string {
|
return re.ReplaceAllStringFunc(rule, func(match string) string {
|
||||||
switch match {
|
switch match {
|
||||||
@@ -811,7 +811,10 @@ func generateSavePath(policy *ent.StoragePolicy, req *fs.UploadRequest, user *en
|
|||||||
case "{uuid}":
|
case "{uuid}":
|
||||||
return uuid.Must(uuid.NewV4()).String()
|
return uuid.Must(uuid.NewV4()).String()
|
||||||
case "{path}":
|
case "{path}":
|
||||||
|
if pathAvailable {
|
||||||
return req.Props.Uri.Dir() + fs.Separator
|
return req.Props.Uri.Dir() + fs.Separator
|
||||||
|
}
|
||||||
|
return match
|
||||||
case "{originname}":
|
case "{originname}":
|
||||||
return originName
|
return originName
|
||||||
case "{ext}":
|
case "{ext}":
|
||||||
@@ -826,10 +829,10 @@ func generateSavePath(policy *ent.StoragePolicy, req *fs.UploadRequest, user *en
|
|||||||
|
|
||||||
dirRule := policy.DirNameRule
|
dirRule := policy.DirNameRule
|
||||||
dirRule = filepath.ToSlash(dirRule)
|
dirRule = filepath.ToSlash(dirRule)
|
||||||
dirRule = dynamicReplace(`\{[^{}]+\}`, dirRule)
|
dirRule = dynamicReplace(`\{[^{}]+\}`, dirRule, true)
|
||||||
|
|
||||||
nameRule := policy.FileNameRule
|
nameRule := policy.FileNameRule
|
||||||
nameRule = dynamicReplace(`\{[^{}]+\}`, nameRule)
|
nameRule = dynamicReplace(`\{[^{}]+\}`, nameRule, false)
|
||||||
|
|
||||||
return path.Join(path.Clean(dirRule), nameRule)
|
return path.Join(path.Clean(dirRule), nameRule)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user