diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2015-12-29 14:23:35 +0200 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2015-12-29 14:23:35 +0200 |
commit | f8ff9270f298792476d3093a5ecfde917df57093 (patch) | |
tree | d7258efef8ebdc2ea6f4d0562994401f0681405c /fs_handler_example_test.go | |
parent | Ignore *.fasthttp.gz files (diff) | |
download | fasthttp-f8ff9270f298792476d3093a5ecfde917df57093.tar.gz fasthttp-f8ff9270f298792476d3093a5ecfde917df57093.tar.bz2 fasthttp-f8ff9270f298792476d3093a5ecfde917df57093.zip |
Added an example for FS
Diffstat (limited to 'fs_handler_example_test.go')
-rw-r--r-- | fs_handler_example_test.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/fs_handler_example_test.go b/fs_handler_example_test.go new file mode 100644 index 0000000..dba4670 --- /dev/null +++ b/fs_handler_example_test.go @@ -0,0 +1,47 @@ +package fasthttp_test + +import ( + "bytes" + "log" + + "github.com/valyala/fasthttp" +) + +// Setup file handlers (aka 'file server config') +var ( + // Handler for serving images from /img/ path, + // i.e. /img/foo/bar.jpg will be served from + // /var/www/images/foo/bar.jpb . + imgPrefix = []byte("/img/") + imgHandler = fasthttp.FSHandler("/var/www/images", 1) + + // Handler for serving css from /static/css/ path, + // i.e. /static/css/foo/bar.css will be served from + // /home/dev/css/foo/bar.css . + cssPrefix = []byte("/static/css/") + cssHandler = fasthttp.FSHandler("/home/dev/css", 2) + + // Handler for serving the rest of requests, + // i.e. /foo/bar/baz.html will be served from + // /var/www/files/foo/bar/baz.html . + filesHandler = fasthttp.FSHandler("/var/www/files", 0) +) + +// Main request handler +func requestHandler(ctx *fasthttp.RequestCtx) { + path := ctx.Path() + switch { + case bytes.HasPrefix(path, imgPrefix): + imgHandler(ctx) + case bytes.HasPrefix(path, cssPrefix): + cssHandler(ctx) + default: + filesHandler(ctx) + } +} + +func ExampleFSHandler() { + if err := fasthttp.ListenAndServe(":80", requestHandler); err != nil { + log.Fatalf("Error in server: %s", err) + } +} |