F*EX use case: fex yourself

fex yourself with fexsend

fexsend has a feature "fex yourself more easily"

First, you have to install the F*EX clients.

Then initialize fexsend (if not already done). Example:

framstag@tux:~: fexsend -I
F*EX server URL: fex.rus.uni-stuttgart.de
proxy address (hostname:port or empty if none):
Your email address as registered at fex.rus.uni-stuttgart.de: framstag@rus.uni-stuttgart.de
Your auth-ID for framstag@rus.uni-stuttgart.de at fex.rus.uni-stuttgart.de: JFD7gDd
data written to /home/framstag/.fex/id
This saves your authorization data in $HOME/.fex/id

If you use a "." as the recipient address the file is sent to yourself and the download URL is shown.

Example:

  framstag@fex: fexsend some.thing .
  Server/User: https://fex.belwue.de/framstag@rus.uni-stuttgart.de
  Recipient: framstag@rus.uni-stuttgart.de
  some.thing : 18304 kB in 2 s (9152 kB/s)
  Location: https://fex.belwue.de/fop/7Hxt1t8J/some.thing

So, you can download the file by simply copy&pasting the URL, for example with wget.
You can also send this URL to a mailing list, because for this special case autodeletion and download restrictions are off by default.

But what if you cannot use your mouse, for example if you have a text console without GUI or you must provide the download link by telephone?
Then a more easier URL is desirable! Do it with // as pseudo-recipient!

  framstag@flupp: fexsend zz.tar //
  Server/User: https://fex.belwue.de/framstag@rus.uni-stuttgart.de
  zz.tar : 8906 kB in 1 s (8906 kB/s)
  Location: https://fex.belwue.de/fop/3c1WzS4X/zz.tar
  Location: https://fex.belwue.de//zz.tar
Look at the last line!

Background: I have VMs with NAT, but without GUI, therefore no cut+paste, no NFS, no ssh, no sendfile and fexsend is not configured. Nevertheless I want "quick&dirty" file transfer to this VM. Typing a regular F*EX download URL is inconvenient.

But https://fex.belwue.de//zz.tar is much easier to handle, even tellable via a phone call.
But pay attention: ANYONE can guess this URL and "steal" your file!

You may also use the pseudo recipients "." and "//" with the web interface.


fex yourself with fexpack

To send more than just one single file and preserve file attributes like time stamps and permission bits, you can use the fexsend addon fexpack.

Example:

  framstag@flupp: fexpack *png
  archive name: png
  phoon.png                                      
  xplanet.png
  png.tar: 889 kB in 1 s = 889 kB/s          
  Recipient: https://fex.belwue.de/framstag@rus.uni-stuttgart.de
  FOP=https://fex.belwue.de/fop/hvH2ZNfN/png.tar
  wget -qO - $FOP | tar -xv -f -

You can copy&paste the last 2 lines to any account on any UNIX system.
It will extract there your files with all file attributes.

fexpack can pack directory trees, too.

But fexpack can do even more! It can provide you with an upload function:

  framstag@flupp: fexpack -u
  # get upload variable (valid for one day) and upload function:
  eval $(curl -s https://fex.belwue.de/fup?ukey=_ZYXcFssZ)
Copy&paste this last line into a bash on any account on any UNIX system and you will have there a F*EX upload function fup without the need to install any software!

  root@obertux:/var/log# eval $(curl -s https://fex.belwue.de/fup?ukey=_L8XpEkjO)
  usage: fup FILE...
  
  root@obertux:/var/log# fup syslog*
  archive name: syslog
  syslog
  syslog.1
  syslog.2.gz
  syslog.3.gz
  syslog.4.gz
  syslog.5.gz
  syslog.6.gz
  syslog.7.gz
  fup_syslog.tar (13 MB) received and saved
  https://fex.belwue.de/fop/ABCxhNLx/fup_syslog.tar

Explanation: the curl command gets the upload variable and upload function from the fexserver and the eval command makes it available for your bash.
See output of curl without eval:

  root@obertux:/var/log# curl -s https://fex.belwue.de/fup?ukey=_L8XpEkjO
  FUP=https://fex.belwue.de/fup?ukey=_L8XpEkjO
  fup() {
    a=$(basename "$1");
    test -r "$1" || { echo "usage: fup FILE...";return; };
    test -z "$2" || { echo -n "archive name: ";read a; };
    t="/tmp/fup_$a.tar";
    tar cvf "$t" "$@" &&
    curl -F "keep=1" -F "comment=[$(id -nu)@$(hostname)]" -F "file=@$t" $FUP|cat;
    rm "$t";
  }; fup


fex yourself with fexzip

Similar to fexpack, fexzip packs files or directories into a transfer archive, fexes it to yourself and shows you a download URL.
All-in-one with just one command!

fexpack uses tar as transfer container, which is unusual on Windows and can lead to unpacking problems.

If you have Windows recipients, then better use fexzip, which uses zip as transfer container.

Example:

framstag@flupp:~: fexzip blubb
Making fex archive (blubb.zip):
  adding: blubb/ (stored 0%)
  adding: blubb/index.html (stored 0%)
  adding: blubb/phoon.png (stored 0%)
  adding: blubb/xplanet.png (stored 0%)
  adding: blubb/xx.mp3 (stored 0%)
blubb.zip: 7 MB in 1 s = 8851 kB/s
Recipient: framstag@rus.uni-stuttgart.de (autodelete=no,keep=1,locale=english)
Location: https://fex.rus.uni-stuttgart.de/fop/Nxyzzy5x1/blubb.zip


To install the F*EX clients see the FAQ.


But wait, there is still more! → Internet clipboard