The typical configuration of an uploading WebAPI looks like this:
(post "/upload" #:from-post '(store #:path "upload" #:sync #f)
(lambda (rc)
(case (:from-post rc 'store)
((success) (response-emit "upload succeeded!"))
((none) (response-emit "No uploaded files!"))
(else (response-emit "Impossible! please report bug!")))))
However, you may use the low-level API for more configurations as well:
(store-uploaded-files rc #:path (current-upload-path)
#:uid #f
#:gid #f
#:simple-ret? #t
#:mode #o664
#:path-mode #o775
#:sync #f)
rc is the route-context.
#:path is the specified path to put uploaded files.
#:uid is new UID for the uploaded files, #f uses the default UID.
#:gid specifies the GID.
#:simple-ret? specifies the mode of return:
#:mode chmod files to mode.
#:path-mode chmod upload path to mode.
#:sync sync while storing files.