httpserve is an experimental web server and command-line http clients. Its set of tools permits to build a simple distributed file server and a fuse file client.
Web server - httpserve.py
The httpserve command let's you serve a file or folders indexed by their sha1.
usage: httpserve.py [-h] [--config configuration file] [--count n] [--fork n]
[--bw_limit n] [--sha1] [--public_ip ip address]
[--listen_address interface address] [--listen_port port]
[--allowed_ip ip address] [--forbidden_code http code]
[--nossl] [--ssl_proto protocol] [--ssl_key file]
[--ssl_cert file] [--ssl_duration days] [--redirect_root]
filename [filename ...]
Serve a file over http.
positional arguments:
filename Files to serve
optional arguments:
-h, --help show this help message and exit
--config configuration file, -c configuration file
Configuration file
--count n, -n n Uploads count before exiting
--fork n, -k n Number of parallel connection (forked children count)
--bw_limit n, -l n Maxmum bandwidth (kB/s) by client
--sha1 Prefix urls with the sha1 sum of the file (the sha1
may be stored in a file named filename.sha)
--public_ip ip address
Public ip address
--listen_address interface address, -i interface address
Interface to bind to
--listen_port port, -p port
Ports list (comma separated) or range (boundaries
separated with a minus)
--allowed_ip ip address
Comma separated list of allowed ip addresses
--forbidden_code http code
Http code to return in case of forbiden request
--nossl, --http Disable SSL
--ssl_proto protocol SSL protocol to be used (one of "SSLv3" or "TLSv1")
--ssl_key file SSL private key file
--ssl_cert file SSL certificate file
--ssl_duration days SSL generated certificate validity duration in days
--redirect_root Return 404 to requests on /
Web client - httpget.py
This client is a simple client like wget that download files from multiple hosts.
usage: httpget.py [-h] [--config configuration file]
[--urls_list http://host1/,http://host2/] [--nconn n]
[--bw_limit n]
url [url ...]
Get a file over http.
positional arguments:
url Urls to download
optional arguments:
-h, --help show this help message and exit
--config configuration file, -c configuration file
Configuration file
--urls_list http://host1/,http://host2/, -H http://host1/,http://host2/
Urls of host to download from
--nconn n, -n n Concurrent connections
--bw_limit n, -l n Max bandwidth limitation (kB/s)
Web client - httpmount.py
httpmount is a filesystem over http. It's meant to mount web servers filebrowser as a filesystem.
Usage:
httpmount client.
httpmount.py [mountpoint] [options]
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-o opt,[opt...] mount options
-o config=configuration file
Configuration file
-o root=URL Urls of root directories [default:
http://127.0.0.1:8080/]
-o store=PATH Store files in PATH [default: store/]
-o urls_list=http://host1/,http://host2/
Urls of host to download from
-o nconn=n Concurrent connections
-o bw_limit=n Max bandwidth limitation (kB/s)
FUSE options:
[...]