Expose Tus handlers

This commit is contained in:
Max Brosnahan 2015-11-04 17:15:22 -07:00
parent 71747f2805
commit 093256b7a8
2 changed files with 14 additions and 11 deletions

View File

@ -80,7 +80,10 @@ type Handler struct {
CompleteUploads chan FileInfo
}
// Create a new handler using the given configuration.
// NewHandler creates a new handler without routing using the given
// configuration. It exposes the http handlers which need to be combined with
// a router (aka mux) of your choice. If you are looking for preconfigured
// handler see NewRoutedHandler.
func NewHandler(config Config) (*Handler, error) {
logger := config.Logger
if logger == nil {
@ -175,7 +178,7 @@ func (handler *Handler) TusMiddleware(h http.Handler) http.Handler {
// Create a new file upload using the datastore after validating the length
// and parsing the metadata.
func (handler *Handler) postFile(w http.ResponseWriter, r *http.Request) {
func (handler *Handler) PostFile(w http.ResponseWriter, r *http.Request) {
// Parse Upload-Concat header
isPartial, isFinal, partialUploads, err := parseConcat(r.Header.Get("Upload-Concat"))
if err != nil {
@ -237,7 +240,7 @@ func (handler *Handler) postFile(w http.ResponseWriter, r *http.Request) {
}
// Returns the length and offset for the HEAD request
func (handler *Handler) headFile(w http.ResponseWriter, r *http.Request) {
func (handler *Handler) HeadFile(w http.ResponseWriter, r *http.Request) {
id := r.URL.Query().Get(":id")
info, err := handler.dataStore.GetInfo(id)
@ -271,7 +274,7 @@ func (handler *Handler) headFile(w http.ResponseWriter, r *http.Request) {
// Add a chunk to an upload. Only allowed if the upload is not locked and enough
// space is left.
func (handler *Handler) patchFile(w http.ResponseWriter, r *http.Request) {
func (handler *Handler) PatchFile(w http.ResponseWriter, r *http.Request) {
//Check for presence of application/offset+octet-stream
if r.Header.Get("Content-Type") != "application/offset+octet-stream" {
@ -356,7 +359,7 @@ func (handler *Handler) patchFile(w http.ResponseWriter, r *http.Request) {
}
// Download a file using a GET request. This is not 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")
// Ensure file is not locked
@ -403,7 +406,7 @@ func (handler *Handler) getFile(w http.ResponseWriter, r *http.Request) {
}
// Terminate 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")
// Ensure file is not locked

View File

@ -27,11 +27,11 @@ func NewRoutedHandler(config Config) (*RoutedHandler, error) {
routedHandler.routeHandler = handler.TusMiddleware(mux)
mux.Post("", http.HandlerFunc(handler.postFile))
mux.Head(":id", http.HandlerFunc(handler.headFile))
mux.Get(":id", http.HandlerFunc(handler.getFile))
mux.Del(":id", http.HandlerFunc(handler.delFile))
mux.Add("PATCH", ":id", http.HandlerFunc(handler.patchFile))
mux.Post("", http.HandlerFunc(handler.PostFile))
mux.Head(":id", http.HandlerFunc(handler.HeadFile))
mux.Get(":id", http.HandlerFunc(handler.GetFile))
mux.Del(":id", http.HandlerFunc(handler.DelFile))
mux.Add("PATCH", ":id", http.HandlerFunc(handler.PatchFile))
return routedHandler, nil
}