Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It would be even better if you didn't have to install any client software at all on the downloading devices, exchange ssh keys, or pass around a password to an account on your system in order to transfer files around your local network.

A useful utility that a friend wrote is https://github.com/akovacs/uploadserver - it's basically a nicer version of:

    python -m http.server 8000
Download prebuilt binaries for Linux, Windows, Mac OS from https://github.com/akovacs/uploadserver/releases/ or install from source if you prefer [1]

Start the file server, and then navigate to it using the web browser of your choice on any device (no need for a client application).

    chmod +x upload_server
    ./upload_server
Navigate to the server's ip address port 8000 in the browser of your choice and upload files using the web UI or directly via curl:

    curl -X POST --data-binary @file_to_upload.txt http://192.168.1.X:8000/uploaded_file.txt
Then download the file to another machine or mobile device either from your web browser or via a commandline tool:

    curl http://192.168.1.X:8000/uploads/uploaded_file.txt --output downloaded_file.txt

[1] Steps for installing from source code:

    # install rust toolchain
    sudo apt install rustc git
    curl https://sh.rustup.rs -sSf | sh
    rustup install nightly
    rustup default nightly
    git clone https://github.com/akovacs/uploadserver
    cd uploadserver
    cargo run --release


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: