MCPcopy Index your code
hub / github.com/SignTools/SignTools / addTusHandlers

Function addTusHandlers

main.go:243–287  ·  view source on GitHub ↗

https://tus.github.io/tusd/advanced-topics/usage-package/

(e *echo.Echo, uploadEndpoints map[string]echo.MiddlewareFunc)

Source from the content-addressed store, hash-verified

241
242// https://tus.github.io/tusd/advanced-topics/usage-package/
243func addTusHandlers(e *echo.Echo, uploadEndpoints map[string]echo.MiddlewareFunc) error {
244 uploadsPath := storage.GetUploadsPath()
245 store := filestore.New(uploadsPath)
246 locker := filelocker.New(uploadsPath)
247 composer := tusd.NewStoreComposer()
248 store.UseIn(composer)
249 locker.UseIn(composer)
250 logger := xzerolog.NewHandler(&log.Logger)
251 handler, err := tusd.NewUnroutedHandler(tusd.Config{
252 BasePath: "/files/",
253 StoreComposer: composer,
254 NotifyCompleteUploads: true,
255 UseRelativeUrls: true,
256 Logger: log3.New(logger),
257 })
258 go func() {
259 for {
260 event := <-handler.CompleteUploads
261 storage.Uploads.Add(event.Upload.ID)
262 }
263 }()
264 if err != nil {
265 return err
266 }
267 tusMiddleware := echo.WrapMiddleware(handler.Middleware)
268 stripMiddleware := echo.WrapMiddleware(func(h http.Handler) http.Handler {
269 return http.StripPrefix("/files/", h)
270 })
271 for prefix, authMiddleware := range uploadEndpoints {
272 // middlewares run in order, make sure auth goes first!
273 e.POST(prefix, func(c echo.Context) error {
274 handler.PostFile(c.Response().Writer, c.Request())
275 return nil
276 }, authMiddleware, tusMiddleware)
277 }
278 e.HEAD("/files/:file_id", func(c echo.Context) error {
279 handler.HeadFile(c.Response().Writer, c.Request())
280 return nil
281 }, stripMiddleware, tusMiddleware)
282 e.PATCH("/files/:file_id", func(c echo.Context) error {
283 handler.PatchFile(c.Response().Writer, c.Request())
284 return nil
285 }, stripMiddleware, tusMiddleware)
286 return nil
287}
288
289func getTweaks(c echo.Context, app storage.App) error {
290 tweaks, err := app.ReadDir(storage.TweaksDir)

Callers 1

serveFunction · 0.85

Calls 3

GetUploadsPathFunction · 0.92
NewMethod · 0.80
AddMethod · 0.80

Tested by

no test coverage detected