diff --git a/drivers/trainbit/driver.go b/drivers/trainbit/driver.go index ee71ba35..b8c514f5 100644 --- a/drivers/trainbit/driver.go +++ b/drivers/trainbit/driver.go @@ -119,7 +119,7 @@ func (d *Trainbit) Put(ctx context.Context, dstDir model.Obj, stream model.FileS query := &url.Values{} query.Add("q", strings.Split(dstDir.GetID(), "_")[1]) query.Add("guid", guid) - query.Add("name", url.QueryEscape(local2provider(stream.GetName(), false))) + query.Add("name", url.QueryEscape(local2provider(stream.GetName(), false) + ".")) endpoint.RawQuery = query.Encode() var total int64 total = 0 diff --git a/drivers/trainbit/util.go b/drivers/trainbit/util.go index 87568b61..3f70e526 100644 --- a/drivers/trainbit/util.go +++ b/drivers/trainbit/util.go @@ -88,36 +88,18 @@ func getToken(apiKey string, AUSHELLPORTAL string) (string, string, error) { } func local2provider(filename string, isFolder bool) string { - filename = strings.Replace(filename, "%", url.QueryEscape("%"), -1) - filename = strings.Replace(filename, "/", url.QueryEscape("/"), -1) - filename = strings.Replace(filename, ":", url.QueryEscape(":"), -1) - filename = strings.Replace(filename, "*", url.QueryEscape("*"), -1) - filename = strings.Replace(filename, "?", url.QueryEscape("?"), -1) - filename = strings.Replace(filename, "\"", url.QueryEscape("\""), -1) - filename = strings.Replace(filename, "<", url.QueryEscape("<"), -1) - filename = strings.Replace(filename, ">", url.QueryEscape(">"), -1) - filename = strings.Replace(filename, "|", url.QueryEscape("|"), -1) if isFolder { return filename } - return strings.Join([]string{filename, ".delete_suffix."}, "") + return filename + ".delete_suffix" } func provider2local(filename string) string { - index := strings.LastIndex(filename, ".delete_suffix.") + index := strings.LastIndex(filename, ".delete_suffix") if index != -1 { filename = filename[:index] } - rawName := strings.Replace(filename, url.QueryEscape("/"), "/", -1) - rawName = strings.Replace(rawName, url.QueryEscape(":"), ":", -1) - rawName = strings.Replace(rawName, url.QueryEscape("*"), "*", -1) - rawName = strings.Replace(rawName, url.QueryEscape("?"), "?", -1) - rawName = strings.Replace(rawName, url.QueryEscape("\""), "\"", -1) - rawName = strings.Replace(rawName, url.QueryEscape("<"), "<", -1) - rawName = strings.Replace(rawName, url.QueryEscape(">"), ">", -1) - rawName = strings.Replace(rawName, url.QueryEscape("|"), "|", -1) - rawName = strings.Replace(rawName, url.QueryEscape("%"), "%", -1) - return rawName + return filename } func parseRawFileObject(rawObject []any) ([]model.Obj, error) { @@ -132,7 +114,7 @@ func parseRawFileObject(rawObject []any) ([]model.Obj, error) { if isFolder { name = object["name"].(string) } else { - name = strings.Join([]string{object["name"].(string), object["ext"].(string)}, ".") + name = object["name"].(string) + object["ext"].(string) } modified, err := time.Parse("2006/01/02 15:04:05", object["modified"].(string)) if err != nil {