Terminal pogryzł człowieka: ffsend

Przesyłanie plików pomiędzy komputerami odmieniano już na tyle przypadków, że ffsend wydaje się być projektem z gatunku „wymyślmy bardziej okrągłe koło”. Jednak w obliczu niedawnych wydarzeń, warto pamiętać o tym programie. W obliczu zakończenia przez Mozillę inicjatywy Test Pilot przed ffsend rozpostarła się świetlana przyszłość.

FFsend
A to dlatego, że ze wszystkich pomysłów rozwijanych w ramach wspomnianego Firefox Test Pilot, to właśnie Send doczeka się kontynuacji. Ffsend jest niczym innym jak tekstowym implementacją tego standardu i narzędziem pozwalającym wykorzystać uroki łatwego i bezpiecznego udostępniania plików.

Send umożliwia przesłanie w bezpieczny sposób dużych plików (do 2GB). Za pomocą serwisu online wyślemy dowolny plik, który zostanie zaszyfrowany i zabezpieczony hasłem, a my otrzymamy link do tego zbioru danych, którym to linkiem możemy podzielić się ze znajomymi. Plik pozostanie na serwerze przez kolejne 24 godziny. Proste? Chyba prościej już nie można.

Ffsend oferuje dostęp do powyższych funkcji, tyle że z poziomu terminala. Obsługa programu ogranicza się do przyjęcia do świadomości kilku parametrów którymi możemy operować. Czy chcemy wysyłać czy pobierać. Czy chcemy zabezpieczyć dostęp hasłem. I inne.

$ ffsend --help
ffsend 0.1.2
Tim Visee <timvisee@gmail.com>
Easily and securely share files from the command line.
A fully featured Firefox Send client.

USAGE:
    ffsend [FLAGS] [OPTIONS] [SUBCOMMAND]

FLAGS:
    -f, --force          Force the action, ignore warnings
    -h, --help           Prints help information
    -i, --incognito      Don't update local history for actions
    -I, --no-interact    Not interactive, do not prompt
    -q, --quiet          Produce output suitable for logging and automation
    -V, --version        Prints version information
    -v, --verbose        Enable verbose information and logging
    -y, --yes            Assume yes for prompts

OPTIONS:
    -H, --history <FILE>                Use the specified history file [env: FFSEND_HISTORY]
    -t, --timeout <SECONDS>             Request timeout (0 to disable) [env: FFSEND_TIMEOUT]
    -T, --transfer-timeout <SECONDS>    Transfer timeout (0 to disable) [env: FFSEND_TRANSFER_TIMEOUT]

SUBCOMMANDS:
    upload        Upload files [aliases: u, up]
    download      Download files [aliases: d, down]
    debug         View debug information [aliases: dbg]
    delete        Delete a shared file [aliases: del]
    exists        Check whether a remote file exists [aliases: e]
    help          Prints this message or the help of the given subcommand(s)
    history       View file history [aliases: h]
    info          Fetch info about a shared file [aliases: i]
    parameters    Change parameters of a shared file [aliases: params]
    password      Change the password of a shared file [aliases: pass, p]

The public Send service that is used as default host is provided by Mozilla.
This application is not affiliated with Mozilla, Firefox or Firefox Send.

Dokładniejsze informacje dla konkretnych komend otrzymamy dodając zwyczajowe –help:

$ ffsend upload --help
ffsend-upload 0.1.2
Upload files

USAGE:
    ffsend upload [FLAGS] [OPTIONS] <FILE>

FLAGS:
    -a, --archive           Archive the upload in a single file
    -c, --copy              Copy the share link to your clipboard
    -f, --force             Force the action, ignore warnings
    -P, --gen-passphrase    Protect the file with a generated passphrase
        --help              Prints help information
    -i, --incognito         Don't update local history for actions
    -I, --no-interact       Not interactive, do not prompt
    -o, --open              Open the share link in your browser
    -q, --quiet             Produce output suitable for logging and automation
    -v, --verbose           Enable verbose information and logging
    -y, --yes               Assume yes for prompts

OPTIONS:
    -d, --download-limit <COUNT>        The file download limit [default: 1]
    -H, --history <FILE>                Use the specified history file [env: FFSEND_HISTORY]
    -h, --host <URL>                    The remote host to upload to [env: FFSEND_HOST]  [default:
                                        https://send.firefox.com/]
    -n, --name <NAME>                   Rename the file being uploaded
    -p, --password <PASSWORD>           Protect the file with a password
    -t, --timeout <SECONDS>             Request timeout (0 to disable) [env: FFSEND_TIMEOUT]
    -T, --transfer-timeout <SECONDS>    Transfer timeout (0 to disable) [env: FFSEND_TRANSFER_TIMEOUT]

ARGS:
    <FILE>    The file to upload

I w ten sposób wiemy już, że wystarczy:

ffsend upload obrazek.png --password 123123

… aby wysłać plik na serwery, a następnie:

ffsend download URL

… aby go pobrać po wprowadzeniu ustalonego hasła.

Program możemy pobrać z repozytorium Githuba, gdzie autor stworzył paczki dla niemal wszystkich dystrybucji. W przypadku Ubuntu, Minta i pochodnych pobieramy oczywiście paczkę deb (wymaga doinstalowania pakietu xclip).