mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 16:34:30 +01:00
rc: Fix serving bucket based objects with --rc-serve
Before this change serving bucket based objects `[remote:bucket]/path/to/object` would fail with 404 not found. This was because the leading `/` in `/path/to/object` was being passed to NewObject.
This commit is contained in:
parent
2c72e7f0a2
commit
f681d32996
@ -243,6 +243,7 @@ func (s *Server) serveRemote(w http.ResponseWriter, r *http.Request, path string
|
||||
}
|
||||
directory.Serve(w, r)
|
||||
} else {
|
||||
path = strings.Trim(path, "/")
|
||||
o, err := f.NewObject(path)
|
||||
if err != nil {
|
||||
writeError(path, nil, w, errors.Wrap(err, "failed to find object"), http.StatusInternalServerError)
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"regexp"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@ -229,7 +230,7 @@ func TestRemoteServing(t *testing.T) {
|
||||
Expected: `{
|
||||
"error": "failed to find object: object not found",
|
||||
"input": null,
|
||||
"path": "/notfound",
|
||||
"path": "notfound",
|
||||
"status": 404
|
||||
}
|
||||
`,
|
||||
@ -268,6 +269,14 @@ func TestRemoteServing(t *testing.T) {
|
||||
Headers: map[string]string{
|
||||
"Content-Length": "18",
|
||||
},
|
||||
}, {
|
||||
Name: "file with no slash after ]",
|
||||
URL: strings.TrimRight(remoteURL, "/") + "file.txt",
|
||||
Status: http.StatusOK,
|
||||
Expected: "this is file1.txt\n",
|
||||
Headers: map[string]string{
|
||||
"Content-Length": "18",
|
||||
},
|
||||
}, {
|
||||
Name: "file2",
|
||||
URL: remoteURL + "dir/file2.txt",
|
||||
|
Loading…
Reference in New Issue
Block a user