http: fix incorrect URLs with initial slash

* http: trim initial slash building url
* Add a test for http object with leading slash

Fixes #8261
This commit is contained in:
Oleg Kunitsyn
2025-01-09 18:40:00 +01:00
committed by GitHub
parent 42240f4b5d
commit fdff1a54ee
2 changed files with 30 additions and 2 deletions

View File

@ -331,12 +331,13 @@ func (f *Fs) NewObject(ctx context.Context, remote string) (fs.Object, error) {
// Join's the remote onto the base URL
func (f *Fs) url(remote string) string {
trimmedRemote := strings.TrimLeft(remote, "/") // remove leading "/" since we always have it in f.endpointURL
if f.opt.NoEscape {
// Directly concatenate without escaping, no_escape behavior
return f.endpointURL + remote
return f.endpointURL + trimmedRemote
}
// Default behavior
return f.endpointURL + rest.URLPathEscape(remote)
return f.endpointURL + rest.URLPathEscape(trimmedRemote)
}
// Errors returned by parseName