From 49d734d24929e443934951a53bca74905238e819 Mon Sep 17 00:00:00 2001 From: IsAurora6 <85173010+IsAurora6@users.noreply.github.com> Date: Fri, 8 Aug 2025 23:31:22 +0800 Subject: [PATCH] feat: standardize Resource APIs by handling path prefix internally and returning clean paths (#4047) --- controllers/resource.go | 6 ++++++ object/resource_direct.go | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/controllers/resource.go b/controllers/resource.go index 64bf0e01..e89d4f31 100644 --- a/controllers/resource.go +++ b/controllers/resource.go @@ -20,6 +20,7 @@ import ( "fmt" "io" "mime" + "path" "path/filepath" "strings" @@ -187,6 +188,11 @@ func (c *ApiController) DeleteResource() { } _, resource.Name = refineFullFilePath(resource.Name) + tag := c.Input().Get("tag") + if tag == "Direct" { + resource.Name = path.Join(provider.PathPrefix, resource.Name) + } + err = object.DeleteFile(provider, resource.Name, c.GetAcceptLanguage()) if err != nil { c.ResponseError(err.Error()) diff --git a/object/resource_direct.go b/object/resource_direct.go index 7f9c6bfb..f69f871e 100644 --- a/object/resource_direct.go +++ b/object/resource_direct.go @@ -31,9 +31,11 @@ func GetDirectResources(owner string, user string, provider *Provider, prefix st fullPathPrefix := util.UrlJoin(provider.PathPrefix, prefix) objects, err := storageProvider.List(fullPathPrefix) for _, obj := range objects { + name := strings.TrimPrefix(obj.Path, "/") + name = strings.TrimPrefix(name, provider.PathPrefix+"/") resource := &Resource{ Owner: owner, - Name: strings.TrimPrefix(obj.Path, "/"), + Name: name, CreatedTime: obj.LastModified.Local().Format(time.RFC3339), User: user, Provider: "",