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: "",