mypfs
mypfs copied to clipboard
A "personal" fileserver for sharing files with (and receiving files from) other computers on your network.
mypfs
An personal fileserver for quickly sharing files with (and receiving files from) other computers on your network. More specifically, it is a small web server that exposes the files in the current directory and/or allows uploads to the same directory.
why?
- Me: Sarah, can you send me that 100MB zip of those log files?
- Sarah: Sure, I'll attach it to an email
- Me: Um, our email system doesn't allow attachments over 10MB
- Sarah: OK, do you have a flash drive?
- Me: No, that's such a pain.
- (I start mypfs)
- Me: Here, open your browser to
http://<my-internal-ip-address>:8080, enter this username when requested, and upload the file - (30 seconds later)
- Sarah: That was easy.
features
- mypfs provides an HTTP web interface to upload/download files to/from the current directory
- access to the web interface requires a username that is randomly generated during server startup (a password is not needed)
- runs on the command-line
- during startup you can specify upload, download, or accept the default of both
- server will run for 10 minutes (default), then exit -- (this is a security feature which gives enough time to exchange files and yet protect you if you forget to shut it off)
examples
mypfs --timeout=5 --port=8888(both upload and download)mypfs -t5 -p8888 download(just download)mypfs upload(just upload)mypfs --insecure(wide open to anyone)
how to install and run
- download executable for your platform ( windows, osx, linux )
- place executable somewhere in your path
- navigate to the directory with files you want to share
- run
mypfs - share URL and generated username with person you need to exchange files with.
safe use
- mypfs will work over the internet only if your computer has a public IP address or you have port-forwarding setup on your router.
- run mypfs in a small directory, never the root or home directory
- avoid use on a public network (like a coffeeshop) until more security features are added
- avoid extending the timeout unless you totally trust your network
- shut it down after you have exchanged files
version history
- 0.9.4 listens on IPV4 addresses (no IPV6... couldn't get both); startup displays URL to share
- 0.9.3 secret username is now optional with the --insecure (-k) flag
- 0.9.2 a secret username is generated -- required to access the site
- 0.9.1 log to standard out when someone downloads or uploads a file
- 0.9.0 first release
cool things that could be added
- add parameter with directory to be served i.e.
mypfs upload /tmp/share - on the web pages, show time remaining until server shuts down
- instead of exiting after timeout, show a "timeout" page
- support https (easy with GoLang, just not sure it will be used)
- limit uploads to a configurable amount