ffsend is the command line client of Firefox Send. This article will show how Firefox Send and ffsend work. It’ll also detail how it can be installed and used in Fedora.
What are Firefox Send and ffsend ?
Firefox Send is a file sharing tool from Mozilla that allows sending encrypted files to other users. You can install Send on your own server, or use the Mozilla-hosted link send.firefox.com. The hosted version officially supports files up to 1 GB, and links that expire after a configurable download count (default of 1) or 24 hours, and then all the files on the Send server are deleted. This tool is still in experimental phase, and therefore shouldn’t be used in production or to share important or sensitive data.
While Firefox Send is the tool itself and can be used with a web interface, ffsend is a command-line utility you can use with scripts and arguments. It has a wide range of configuration options and can be left working in the background without any human intervention.
How does it work?
FFSend can both upload and download files. The remote host can use either the Firefox tool or another web browser to download the file. Neither Firefox Send nor ffsend require the use of Firefox.
It’s important to highlight that ffsend uses client-side encryption. This means that files are encrypted before they’re uploaded. You share secrets together with the link, so be careful when sharing, because anyone with the link will be able to download the file. As an extra layer of protection, you can protect the file with a password by using the following argument:
ffsend password URL -p PASSWORD
Other features
There are a few other features worth mentioning. Here’s a list:
- Configurable download limit, between 1 and 20 times, before the link expires
- Built-in extract and archiving functions
- Track history of shared files
- Inspect or delete shared files
- Folders can be shared as well, either as they are or as compressed files
- Generate a QR code, for easier download on a mobile phone
How to install in Fedora
While Fedora Send works with Firefox without installing anything extra, you’ll need to install the CLI tool to use ffsend. This tool is in the official repositories, so you only need a simple dnf command with sudo.
$ sudo dnf install ffsend
After that, you can use ffsend from the terminal .
Upload a file
Uploading a file is a simple as
$ ffsend upload /etc/os-release
Upload complete
Share link: https://send.firefox.com/download/05826227d70b9a4b/#RM_HSBq6kuyeBem8Z013mg
The file now can be easily share using the Share link URL.
Downloading a file
Downloading a file is as simple as uploading.
$ ffsend download https://send.firefox.com/download/05826227d70b9a4b/#RM_HSBq6kuyeBem8Z013mg
Download complete
Before downloading a file it might be useful to check if the file exist and get information about it. ffsend provides 2 handy commands for that.
$ ffsend exists https://send.firefox.com/download/88a6324e2a99ebb6/#YRJDh8ZDQsnZL2KZIA-PaQ
Exists: true
Password: false
$ ffsend info https://send.firefox.com/download/88a6324e2a99ebb6/#YRJDh8ZDQsnZL2KZIA-PaQ
ID: 88a6324e2a99ebb6
Downloads: 0 of 1
Expiry: 23h59m (86388s
Upload history
ffsend also provides a way to check the history of the uploads made with the tools. This can be really useful if you upload a lot of files during a scripted tasks for example and you want to keep track of each files download status.
$ ffsend history
LINK EXPIRY
1 https://send.firefox.com/download/#8TJ9QNw 23h59m
2 https://send.firefox.com/download/KZIA-PaQ 23h54m
Delete a file
Another useful feature is the possibility to delete a file.
ffsend delete https://send.firefox.com/download/2d9faa7f34bb1478/#phITKvaYBjCGSRI8TJ9QNw
Firefox Send is a great service and the ffsend tools makes it really convenient to use from the terminal. More examples and documentation is available on ffsend‘s Gitlab repository.
Kamil
Perhaps we should introduce some QA to fedoramagazine articles?
$ sudo dnf install ffsend
No match for argument: ffsend
Error: Unable to find a match
Artem
Try not disable module repo then.
Installed Packages
Name : ffsend
Version : 0.2.46
Hans-Joachim Bothe
sudo dnf install ffsend
works nicely on Fedora 30. Probably no version for older Fedora available.
Igor Gnatenko
It is available all the way back to Fedora 28 (although there modular repos were still separate).
Kamil
Turns out this is a module and not a standard package. And not even Fedora Packages app can show it:
https://apps.fedoraproject.org/packages/s?search=ffsend
Oh Modularity, how we love you…
Artem
https://bodhi.fedoraproject.org/updates/?packages=ffsend%3Alatest
https://src.fedoraproject.org/rpms/rust-ffsend
Igor Gnatenko
@Kamil, yes. You are not supposed to disable modular repositories 🙂
Rick
I don’t use Firefox any more. Mozilla has gone woke.
They had a good run.
Tim Visée
Note that this isn’t a Firefox component. Firefox is just in the name. You can use this in any browser, and of course, through the CLI.
Rick Graham
Thanks.
Avi Wadhwa
what do you mean “woke”?
Robert Fairbrother
i noticed a few problems for a wile but i think they bounced back. i just hope this isin’t a tactic from infiltrators to get Mozilla in trouble
50.66.39.177
Charles
Very interesting product/service from Mozilla. Thank you for writing the article.
Mohnish
Is
ever aware of the share URL OR is the share URL all local client side affair?
Tim Visée
No. The server creates the download URL with the file ID, but this isn’t enough to decrypt and download. The client then appends the secret (as a hash) to the URL, to allow decryption. So, this required secret is never on the server.
Jose M. Acosta
I like to know what meaning text below trancribed when I tgry to u install upgrade fedora29
nnot download flash-player-npapi-32.0.0.192-release.x86_64.rpm: All mirrors were tried; Last error: Interrupted by header callback: Server reports Content-Length: 5264400 but expected size is: 9026892
Rick Graham
Looks like it can’t get the flash player upgrade. Flash is a security hole, you prolly don’t want it anyway. It may be required for DRM, dunno, I don’t allow that either.