mirror of https://github.com/cloudreve/Cloudreve
parent
b0375f5a24
commit
4c976b8627
2
assets
2
assets
|
@ -1 +1 @@
|
|||
Subproject commit 09480ffa21d859a1d2f9bb2421e6f78f113494c4
|
||||
Subproject commit 3a23464a0f4330e4583e99c1815b84c5240ffc9d
|
|
@ -770,7 +770,7 @@ func generateSavePath(policy *ent.StoragePolicy, req *fs.UploadRequest, user *en
|
|||
currentTime := time.Now()
|
||||
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)
|
||||
return re.ReplaceAllStringFunc(rule, func(match string) string {
|
||||
switch match {
|
||||
|
@ -811,7 +811,10 @@ func generateSavePath(policy *ent.StoragePolicy, req *fs.UploadRequest, user *en
|
|||
case "{uuid}":
|
||||
return uuid.Must(uuid.NewV4()).String()
|
||||
case "{path}":
|
||||
if pathAvailable {
|
||||
return req.Props.Uri.Dir() + fs.Separator
|
||||
}
|
||||
return match
|
||||
case "{originname}":
|
||||
return originName
|
||||
case "{ext}":
|
||||
|
@ -826,10 +829,10 @@ func generateSavePath(policy *ent.StoragePolicy, req *fs.UploadRequest, user *en
|
|||
|
||||
dirRule := policy.DirNameRule
|
||||
dirRule = filepath.ToSlash(dirRule)
|
||||
dirRule = dynamicReplace(`\{[^{}]+\}`, dirRule)
|
||||
dirRule = dynamicReplace(`\{[^{}]+\}`, dirRule, true)
|
||||
|
||||
nameRule := policy.FileNameRule
|
||||
nameRule = dynamicReplace(`\{[^{}]+\}`, nameRule)
|
||||
nameRule = dynamicReplace(`\{[^{}]+\}`, nameRule, false)
|
||||
|
||||
return path.Join(path.Clean(dirRule), nameRule)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue