ffsend a 0x0.st (μblog)
V roku 2023 sme si povedali o službe oshi.at, ktorá slúžila na nahrávanie veľkých súborov na ich servre z pohodlia príkazového riadku. Žiaľ, ten minulý čas je správne, služba už nefunguje. Aké sú ďalšie alternatívy?
Úvod
Ten článok si možno prečítať len pre zaujímavosť, avšak už nie je aktuálny.
Aké existujú možnosti na nahrávanie veľkých súborov, ktoré nám následne vygenerujú link na ich stiahnutie s rôznou expiráciou, a súčasne sa dajú použiť v príkazovom riadku shellu?
Nuž, veľa ich nie je. V tomto článku sa budem venovať dvom. Tá prvá je postavená na už neexistujúcom Firefox Send. Bola to bezplatná „transfer“ služba od Mozilly, ktorá umožňovala bezpečné a dočasné zdieľanie súborov cez internet. Jej používatelia nahrali súbor na server, získali jedinečný odkaz a ten poslali príjemcovi. Súbory boli voliteľne zašifrované na strane klienta a bolo možné nastaviť expiráciu odkazu a limit počtu stiahnutí. Mozilla ukončila Firefox Send v roku 2020 po zneužití služby (široké šírenie škodlivého obsahu cez anonymné odkazy).
A tu sa ukazuje sila a krása slobodného sveta. Kódy a myšlienku prevzali iní a táto služba žije naďalej vďaka dobrovoľníkom.
Send (ffsend)
Na jeho prežití a vylepšení sa podieľa najväčšou zásluhou Tim Visée, mladý vývojár z Holandska. Jednak udržiava jednu serverovú inštanciu na nahrávanie, ale čo je dôležitejšie, spravuje a vylepšuje program ffsend.
A ten slúži práve na nahrávanie (a iné operácie) súborov na jeho alebo iný server.
Na github-e sú uvedené príklady použitia i linky na stiahnutie zdrojových kódov i skompilovaných bináriek. Ak človek nemá všetky potrebné knižnice nainštalované, potom je rozumné stiahnuť si staticky zostavenú binárku so zahrnutými knižnicami (označenú ako ffsend-v*-linux-x64-static
).
Niekoľko príkladov použitia:
- Nahratie súboru na predvolené úložisko vis.ee
ffsend upload <veľký súbor>
- Nahratie súboru na iné úložisko s limitom počtu stiahnutí
ffsend upload <veľký súbor> -h https://send.mni.li --downloads 3
Zoznam úložísk je na github-e vývojára, spolu s uvedením maximálnej veľkosti súboru, času uloženia a tiež limitu stiahnutí.
- Stiahnutie súboru z úložiska
Z príkazového riadku:
ffsend download <vygenerovaná url adresa>
…alebo vložením vygenerovanej adresy do webového prehliadača.
- Informácie o súbore
ffsend info <vygenerovaná url adresa>
Už len dodám, že súbory možno uložiť pod heslom, pozerať si históriu uploadov a priradených url adries, mazať ich. A tiež že nahrávanie a sťahovanie súborov je možné aj cez webový prehliadač.
Skutočne výborný nástroj!
Dôkaz o výhode otvoreného softvéru — každý môže pokračovať v jeho vývoji a vylepšovať ho — či už opraviť chyby, pridať funkcie alebo prispôsobiť ho vlastným potrebám.
0x0.st
0x0 v ukazovateľoch (C/C++) označuje nulový pointer. A tak sa volá i web 0x0.st: NULL POINTER.
Je to úložisko, kde maximálna veľkosť súboru je 512 MiB a dĺžka úschovy 365 dní, ale platí to podľa tejto závislosti:
retention = min_age + (min_age - max_age) * pow((file_size / max_size - 1), 3)
počet dní 365 | \ | \ | \ | \ | \ | \ | .. | \ 197.5 | ----------..------------------------------------------- | .. | \ | .. | ... | .. | ... | .... | ...... 30 | .................... 0 256.0 512.0 MiB
Nahratie nie je pomocou nejakého „špeci“ programu, alebo pomocou web rozhrania, ale posielaním HTTP POST požiadavky na https://0x0.st s údajmi zakódovanými ako multipart/form-data. A to spravíme pomocou curl
.
Pár príkladov:
- Nahratie súboru
curl -F'file=@<veľký súbor>' --progress-bar https://0x0.st | tee /dev/null
- Stiahnutie súboru
wget <vygerenerovaná url adresa>
- Zmazanie súboru
curl -Ftoken=<token> -Fdelete= <vygerenerovaná url adresa>
- Zmena času expirácie
curl -Ftoken=<token> -Fexpires=3 <vygerenerovaná url adresa>
<token> by sme podľa autora mali získať pri použití
curl -i
, čo mi akosi nešlo: takú X-Token hlavičku mi server naspäť neposlal a neskúmal som viacej prečo(^_-)
.
Záver
Veľmi šikovné programy možno samozrejme zaobaliť do pekných aliasov alebo funkcií, či už pre shell, alebo aj iný interpreter.
Krása slobodného softvéru, ktorý nesleduje užívateľa, spočíva v niekoľkých aspektoch, ako je ochrana súkromia, transparentnosť, komunitná podpora,…
Tieto faktory prispievajú k tomu, že slobodný softvér, ktorý nesleduje užívateľa, je nielen praktický, ale aj etický a udržateľný vo svojom prístupe k technológii.
Pre pridávanie komentárov sa musíte prihlásiť.