diff --git a/models/policy.go b/models/policy.go index 706ae35..bfb0453 100644 --- a/models/policy.go +++ b/models/policy.go @@ -170,6 +170,7 @@ func (policy *Policy) GenerateFileName(uid uint, origin string) string { "{second}": time.Now().Format("05"), "{originname}": origin, "{ext}": filepath.Ext(origin), + "{originname_without_ext}": strings.TrimSuffix(origin, filepath.Ext(origin)), "{uuid}": uuid.Must(uuid.NewV4()).String(), } diff --git a/models/policy_test.go b/models/policy_test.go index a6d94da..36022e1 100644 --- a/models/policy_test.go +++ b/models/policy_test.go @@ -134,6 +134,12 @@ func TestPolicy_GenerateFileName(t *testing.T) { testPolicy.FileNameRule = "123{date}ss{datetime}" asserts.Len(testPolicy.GenerateFileName(1, "123.txt"), 27) + testPolicy.FileNameRule = "{originname_without_ext}" + asserts.Len(testPolicy.GenerateFileName(1, "123.txt"), 3) + + testPolicy.FileNameRule = "{originname_without_ext}_{randomkey8}{ext}" + asserts.Len(testPolicy.GenerateFileName(1, "123.txt"), 16) + // 支持{originname}的策略 testPolicy.Type = "local" testPolicy.FileNameRule = "123{originname}"