Extract id from url instead of query params
Now that the handler can be used directly we cannot rely on the pat router for the id. This also makes it consistent with how ids are extracted from urls elsewhere
This commit is contained in:
parent
bc88c70725
commit
7cbeb02662
22
handler.go
22
handler.go
|
@ -298,7 +298,7 @@ func (handler *Handler) PatchFile(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
id := r.URL.Query().Get(":id")
|
id := extractIDFromPath(r.URL.Path)
|
||||||
|
|
||||||
// Ensure file is not locked
|
// Ensure file is not locked
|
||||||
if _, ok := handler.locks[id]; ok {
|
if _, ok := handler.locks[id]; ok {
|
||||||
|
@ -370,7 +370,7 @@ func (handler *Handler) PatchFile(w http.ResponseWriter, r *http.Request) {
|
||||||
// GetFile handles requests to download a file using a GET request. This is not
|
// GetFile handles requests to download a file using a GET request. This is not
|
||||||
// part of the specification.
|
// part of the specification.
|
||||||
func (handler *Handler) GetFile(w http.ResponseWriter, r *http.Request) {
|
func (handler *Handler) GetFile(w http.ResponseWriter, r *http.Request) {
|
||||||
id := r.URL.Query().Get(":id")
|
id := extractIDFromPath(r.URL.Path)
|
||||||
|
|
||||||
// Ensure file is not locked
|
// Ensure file is not locked
|
||||||
if _, ok := handler.locks[id]; ok {
|
if _, ok := handler.locks[id]; ok {
|
||||||
|
@ -417,7 +417,7 @@ func (handler *Handler) GetFile(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
// DelFile terminates an upload permanently.
|
// DelFile terminates an upload permanently.
|
||||||
func (handler *Handler) DelFile(w http.ResponseWriter, r *http.Request) {
|
func (handler *Handler) DelFile(w http.ResponseWriter, r *http.Request) {
|
||||||
id := r.URL.Query().Get(":id")
|
id := extractIDFromPath(r.URL.Path)
|
||||||
|
|
||||||
// Ensure file is not locked
|
// Ensure file is not locked
|
||||||
if _, ok := handler.locks[id]; ok {
|
if _, ok := handler.locks[id]; ok {
|
||||||
|
@ -594,14 +594,13 @@ func parseConcat(header string) (isPartial bool, isFinal bool, partialUploads []
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract ids out of URL
|
id := extractIDFromPath(value)
|
||||||
result := reExtractFileID.FindStringSubmatch(value)
|
if id == "" {
|
||||||
if len(result) != 2 {
|
|
||||||
err = ErrInvalidConcat
|
err = ErrInvalidConcat
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
partialUploads = append(partialUploads, result[1])
|
partialUploads = append(partialUploads, id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -613,3 +612,12 @@ func parseConcat(header string) (isPartial bool, isFinal bool, partialUploads []
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// extractIDFromPath pulls the last segment from the url provided
|
||||||
|
func extractIDFromPath(url string) string {
|
||||||
|
result := reExtractFileID.FindStringSubmatch(url)
|
||||||
|
if len(result) != 2 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return result[1]
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue