A non-blocking directory listing and file server. It implementats HTTP/1.1 keepalive, chunked transfer, and byte range.
The HTTP server implementation provides a channel for writing chunked response. It could be used as a library. Read the API.
Usage: gofile port [dir]
Examples:
gofile 8080
gofile 8080 ~/public
go get -u github.com/siadat/gofile
- GET and HEAD methods
- Support keep-alive connections
- Support chunked transfer encoding
- Requests must include a
Host
header - Requests with
Connection: close
should be closed - Support for requests with absolute URLs
- If-Modified-Since support
- Byte range support
- Transparent response compression
Submit an issue or send a pull request.
Make sure you ./run-tests.bash
to test your patch.
Thanks @valyala for his feature suggestions. Thanks @maruel for reviewing the http package.