Usual sending and receiving
The user starts filegive with the filename to send as a parameter, it gives a reachable URL to be given to the receiver (by chat for example), and the receiver points the browser to that url.
Sending to a destination in our network
$ filegive myfile.webm Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://192.168.10.34:46656/igmyvq/myfile.webm
The receiver only has to go to that URL (last line). For certificates management, check the Security page.
The sender sees a progress too:
New TLS connection from 192.168.10.53:43911 ciphersuite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Request from 192.168.10.53:43911 (Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0) # ^ When someone connects 1.4% (32727 B/s) # Status updated every 2 secs # Once the receivers finished the download, the program finishes
In case the person with filegive (and capable of setting up the tunnel, with upnp, ssh, ..) wants to receive, he can use the reverse mode:
# Any extra option works too (upnp, rate limit, ...) $ filegive -R Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://192.168.33.59:59847/afjwex/upload # The sender visits that, and uploads the file with the browser. The receiver # sees the log: New TLS connection from 192.168.10.53:36150 ciphersuite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA New incoming file: cinepaint-0.22-1.tar.gz Request from 192.168.10.34:36150 (Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0) Request from 192.168.10.34:36150 (Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0) finished 10.2% (302727 B/s) # Status updated every 2 secs User 0 downloaded all. Shutting down
Sending through internet
I omit the Fingerprint lines for brevety.
# Sending through internet behind a router with UPnP $ filegive -u ~/video/myfile.zip Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://28.42.21.50:12389/hjkasd/myfile.zip # Sending through internet behind a router with NAT-PMP $ filegive -A ~/video/myfile.zip Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://28.42.21.50:92341/jdskas/myfile.zip # Known port forwarded in the router $ filegive -e 28.42.21.50:9000 ~/video/myfile.zip # -u, asks the ip to the upnp Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://28.42.21.50:9000/kjbxmp/myfile.zip # Reply a a port/URL you already know # Known port forwarded in the router $ filegive -P 9000 -D kjbxmp ~/video/myfile.zip Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://28.42.21.50:9000/kjbxmp/myfile.zip # Using a third computer through ssh as a forwarder # It requires the special "GatewayPorts clientspecified", in sshd_config $ filegive -s mysshhost ~/video/myfile.zip Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://mysshhost:12318/jkdlja/myfile.zip # Using a third computer through ssh+socat as a forwarder # It requires the program "socat" installed in the remote computer $ filegive -ss mysshhost ~/video/myfile.zip Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://mysshhost:8539/iknlkn/myfile.zip
Special configurations
I omit the Fingerprint lines for brevety.
# Three receivers; process finishes when all finished download $ filegive -n 3 ~/video/myfile.zip Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 0: https://192.168.1.188:46584/asdfpe/myfile.zip 1: https://192.168.1.188:46584/nbfksk/myfile.zip 2: https://192.168.1.188:46584/lpoqnj/myfile.zip # Do not use any https at all $ filegive -p ~/video/myfile.zip Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 http://192.168.1.188:46584/jbcoie/myfile.zip # Offer a directory, people will be able to download anything inside $ filegive ~/video Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://192.168.1.188:46584/hjeksa/video # Offer a stdin input $ tar c video | filegive - https://192.168.1.188:46584/jasnbx/- # Rate limit to 50KB/s your upload $ filegive -r 50 ~/video/myfile.zip Certificate SHA1 (s: filegive tnyoetro): 3B:78:35:7A:58:C0:F3:B4:7C:72:62:11:1A:0D:41:A0:2B:51:8C:67 https://192.168.1.188:46584/hdshas/myfile.zip