Which lightweight HTTP or FTP Server is good for simple file transfer? [closed]
This question is a followup to How to copy files to an untrusted computer?, as there doesn't seem to be a dedicated app for this purpose, I am now searching for a http or ftp server as an alternative. More specifically I am searching for a lightweight server that is usable for simple one-time file transfer between computers. By that I mean it should act as rsync/scp replacement to get files from one computer to another, not as a classic web server. Furthermore it should:
- run in userspace
- be trivial to configure (i.e. no config file, everything doable via command line)
- support username/password
- support continuation of downloads
- support the export of single files instead of whole directories
dbr's answer to the previous question gets close, but is of course just an ad hoc hack that lacks many useful features.
I'm often using this quick Python hack to serve a directory over HTTP.
python -m SimpleHTTPServer &
will serve the current directory.
By default, it binds to port 8000.
To choose another port:
python -m SimpleHTTPServer 9090 &
If you choose a port lower than 1024 on *nix, you might need root privileges, otherwise bind() will fail.
Someone on SO pointed me at Woof. A minimal httpd in python with an interface optimized just for such uses. It doesn't actually meet all your requirements, but by allowing you to specify the number of times it will connect it allows you to use the "Are you ready? I'm starting the server now." approach to securing the transfer.
To allow one (1) connection to download thisfile
on port 8080, you just run
$ woof thisfile
It's that easy.
Here is the rather abused original. If you like it, go vote for Nate.
You can try webfs which is available through the Ubuntu repository:
Webfs (a.k.a. webfsd) is a simple HTTP server for purely static content. You can use it to serve the content of an FTP server via HTTP, for example. It can also be used to quickly export some files by starting an httpd server in a few seconds, without editing config files first.
Another option is HFS (Http File Server), a Windows app that works well through Wine.
HFS (Http File Server) is file sharing software which allows you to send and receive files. You can limit this sharing to just a few friends, or be open to the whole world. HFS is different from classic file sharing because there is no network. [...] Since it is actually a web server, your friends can download files as if they were downloading from a website using a web browser.
Please ignore if you are not open to alternatives, but the fact that you are willing to install a HTTP server with no preferences shows me that you want to get the job done of transfering a file more so than how it is done -
May I recommend that you install a FTP server?
It will allow you to pretty much do everything you require and is usually very easy to set up,you can even configure the port to use 80 if that is a requirement.