File Sharing Using cURL

File sharing from terminal which suck less

·

3 min read

File Sharing Using cURL

These days, sharing photographs, videos, and document files is a pretty routine task. If you don't want to use any Google or Microsoft accounts, the procedure can occasionally get very frustrating. Then the only option is to use a website that offers this feature without requiring a login, such as WeTransfer.

But what if you want to share something more quickly or from a terminal then we can use a very interesting and mind-blowing website THE NULL POINTER. This site allows you to create an HTTP POST request to send a file very quickly. I just have to do

curl -F 'file=@yourfile.png' https://0x0.st

And, this will return a shareable link in the terminal (fast and easy enough).

The full source code is accessible as a Git Repo If you'd like to run a server and website like this, it is amazing.

Installing Required Dependencies

cURL comes pre-installed in most Linux distributions but in case you didn't have it installed.

Install on Ubuntu / Debian

sudo apt install curl fzf

Install on Arch OS

sudo pacman -Sy curl fzf

Create A File Sharing CLI Utility 'fshare'

curl -sS -F "file=@$(find $HOME | fzf)" https://0x0.st | xclip -selection clipboard && xclip -selection clipboard -o

In the command above, you simply upload a file to THE NULL POINTER, copy the shareable link to the clipboard, and then stdout the link on the terminal.

Explanation

  • -sS show any info on stdout only if any error occurred

  • -F allow uploading a file on THE NULL POINTER

  • "file=@$(find $HOME | fzf)" grab file location using fzf

  • xclip -selection clipboard copy sharable link to clipboard

  • xclip -selection clipboard -o finally also stdout on terminal

Now, we can simply create an alias out of this by simply pasting in .zshrc or .bashrc

alias fshare='curl -sS -F "file=@$(find $HOME | fzf)" https://0x0.st | xclip -selection clipboard && xclip -selection clipboard -o'

Rather than an alias, I usually prefer to use a standalone bash script and making it executable. I have fshare bash script on my GitHub (Check Here). Where you can always get updated version of fshare there. So to install it run below commands.

sudo wget https://raw.githubusercontent.com/FlareXes/Micro-Utils/main/bin/fshare -O /usr/local/bin/fshare

sudo chmod +x /usr/local/bin/fshare

fshare

But, THE NULL POINTER is a free service which means it comes with restrictions some of which are listed below.

0x0.st is not a platform for:

  • piracy

  • extremist material of any kind

  • malware / botnet C&C

  • anything related to crypto currencies

  • tor exit nodes not allowed

  • any file types:

    • application/x-dosexec

    • application/x-executable

    • application/x-hdf5

    • application/java-archive

    • android apks and system images

Check out their website for more information.

If you don't like these restrictions then spin up your own server because it is open-source and available as a git repo and don't spam on them.