diff --git a/frontend b/frontend index 633579e7..ed5f51c3 160000 --- a/frontend +++ b/frontend @@ -1 +1 @@ -Subproject commit 633579e7380a47158dd71c8de3d52dcaca8ad014 +Subproject commit ed5f51c3ff0e3f479d8c076f00a8fa764d6109fb diff --git a/http/public.go b/http/public.go index f43e3f66..ab44778c 100644 --- a/http/public.go +++ b/http/public.go @@ -2,6 +2,7 @@ package http import ( "net/http" + "strings" "github.com/filebrowser/filebrowser/v2/files" ) @@ -10,7 +11,10 @@ var withHashFile = func(fn handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, d *data) (int, error) { link, err := d.store.Share.GetByHash(r.URL.Path) if err != nil { - return errToStatus(err), err + link, err = d.store.Share.GetByHash(ifPathWithName(r)) + if err != nil { + return errToStatus(err), err + } } user, err := d.store.Users.Get(d.server.Root, link.UserID) @@ -36,6 +40,12 @@ var withHashFile = func(fn handleFunc) handleFunc { } } +func ifPathWithName(r *http.Request) string { + pathElements := strings.Split(r.URL.Path, "/") + id := pathElements[len(pathElements)-2] + return id +} + var publicShareHandler = withHashFile(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) { return renderJSON(w, r, d.raw) })