mirror of
https://github.com/minio/minio.git
synced 2025-04-21 11:04:20 -04:00
Merge pull request #577 from fkautz/pr_out_router_should_work_with_uploads_unescaped_now
This commit is contained in:
commit
5a372f4dd7
@ -128,11 +128,9 @@ var notimplementedBucketResourceNames = map[string]bool{
|
|||||||
"requestPayment": true,
|
"requestPayment": true,
|
||||||
"versioning": true,
|
"versioning": true,
|
||||||
"website": true,
|
"website": true,
|
||||||
"uploads": true,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// List of not implemented object queries
|
// List of not implemented object queries
|
||||||
var notimplementedObjectResourceNames = map[string]bool{
|
var notimplementedObjectResourceNames = map[string]bool{
|
||||||
"torrent": true,
|
"torrent": true,
|
||||||
"uploads": true,
|
|
||||||
}
|
}
|
||||||
|
@ -213,6 +213,7 @@ func (server *minioAPI) putObjectHandler(w http.ResponseWriter, req *http.Reques
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (server *minioAPI) newMultipartUploadHandler(w http.ResponseWriter, req *http.Request) {
|
func (server *minioAPI) newMultipartUploadHandler(w http.ResponseWriter, req *http.Request) {
|
||||||
|
// TODO ensure ?uploads is part of URL
|
||||||
acceptsContentType := getContentType(req)
|
acceptsContentType := getContentType(req)
|
||||||
if acceptsContentType == unknownContentType {
|
if acceptsContentType == unknownContentType {
|
||||||
writeErrorResponse(w, req, NotAcceptable, acceptsContentType, req.URL.Path)
|
writeErrorResponse(w, req, NotAcceptable, acceptsContentType, req.URL.Path)
|
||||||
@ -232,7 +233,7 @@ func (server *minioAPI) newMultipartUploadHandler(w http.ResponseWriter, req *ht
|
|||||||
var err error
|
var err error
|
||||||
if uploadID, err = server.driver.NewMultipartUpload(bucket, object, ""); err != nil {
|
if uploadID, err = server.driver.NewMultipartUpload(bucket, object, ""); err != nil {
|
||||||
log.Println(iodine.New(err, nil))
|
log.Println(iodine.New(err, nil))
|
||||||
writeErrorResponse(w, req, NotImplemented, acceptsContentType, req.URL.Path)
|
writeErrorResponse(w, req, NotAcceptable, acceptsContentType, req.URL.Path)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
response := generateInitiateMultipartUploadResult(bucket, object, uploadID)
|
response := generateInitiateMultipartUploadResult(bucket, object, uploadID)
|
||||||
@ -287,7 +288,7 @@ func (server *minioAPI) putObjectPartHandler(w http.ResponseWriter, req *http.Re
|
|||||||
vars := mux.Vars(req)
|
vars := mux.Vars(req)
|
||||||
bucket = vars["bucket"]
|
bucket = vars["bucket"]
|
||||||
object = vars["object"]
|
object = vars["object"]
|
||||||
uploadID := vars["uploadID"]
|
uploadID := vars["uploadId"]
|
||||||
partIDString := vars["partNumber"]
|
partIDString := vars["partNumber"]
|
||||||
partID, err := strconv.Atoi(partIDString)
|
partID, err := strconv.Atoi(partIDString)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -351,7 +352,7 @@ func (server *minioAPI) completeMultipartUploadHandler(w http.ResponseWriter, re
|
|||||||
vars := mux.Vars(req)
|
vars := mux.Vars(req)
|
||||||
bucket := vars["bucket"]
|
bucket := vars["bucket"]
|
||||||
object := vars["object"]
|
object := vars["object"]
|
||||||
uploadID := vars["uploadID"]
|
uploadID := vars["uploadId"]
|
||||||
|
|
||||||
for _, part := range parts.Part {
|
for _, part := range parts.Part {
|
||||||
partMap[part.PartNumber] = part.ETag
|
partMap[part.PartNumber] = part.ETag
|
||||||
|
@ -49,9 +49,9 @@ func HTTPHandler(driver drivers.Driver) http.Handler {
|
|||||||
mux.HandleFunc("/{bucket}/{object:.*}", api.headObjectHandler).Methods("HEAD")
|
mux.HandleFunc("/{bucket}/{object:.*}", api.headObjectHandler).Methods("HEAD")
|
||||||
if featureflags.Get(featureflags.MultipartPutObject) {
|
if featureflags.Get(featureflags.MultipartPutObject) {
|
||||||
log.Println("Enabling feature", featureflags.MultipartPutObject)
|
log.Println("Enabling feature", featureflags.MultipartPutObject)
|
||||||
mux.HandleFunc("/{bucket}/{object:.*}?uploads", api.newMultipartUploadHandler).Methods("POST")
|
|
||||||
mux.HandleFunc("/{bucket}/{object:.*}", api.putObjectPartHandler).Queries("partNumber", "{partNumber:[0-9]+}", "uploadId", "{uploadId:.*}").Methods("PUT")
|
mux.HandleFunc("/{bucket}/{object:.*}", api.putObjectPartHandler).Queries("partNumber", "{partNumber:[0-9]+}", "uploadId", "{uploadId:.*}").Methods("PUT")
|
||||||
mux.HandleFunc("/{bucket}/{object:.*}", api.completeMultipartUploadHandler).Queries("uploadId", "{uploadId:.*}").Methods("POST")
|
mux.HandleFunc("/{bucket}/{object:.*}", api.completeMultipartUploadHandler).Queries("uploadId", "{uploadId:.*}").Methods("POST")
|
||||||
|
mux.HandleFunc("/{bucket}/{object:.*}", api.newMultipartUploadHandler).Methods("POST")
|
||||||
}
|
}
|
||||||
mux.HandleFunc("/{bucket}/{object:.*}", api.putObjectHandler).Methods("PUT")
|
mux.HandleFunc("/{bucket}/{object:.*}", api.putObjectHandler).Methods("PUT")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user