func handlePut(conn http.ResponseWriter, req *http.Request, blobReceiver blobserver.BlobReceiver) { if w, ok := blobReceiver.(blobserver.ContextWrapper); ok { blobReceiver = w.WrapContext(req) } blobRef := blobref.FromPattern(kPutPattern, req.URL.Path) if blobRef == nil { httputil.BadRequestError(conn, "Malformed PUT URL.") return } if !blobRef.IsSupported() { httputil.BadRequestError(conn, "unsupported object hash function") return } _, err := blobReceiver.ReceiveBlob(blobRef, req.Body) if err != nil { httputil.ServerError(conn, err) return } fmt.Fprint(conn, "OK") }
func blobFromUrlPath(path string) *blobref.BlobRef { return blobref.FromPattern(kGetPattern, path) }