こんにちは。少しご無沙汰してしまいました。good-lemonです。

今日はアカウント作成不要、コマンドライン一つで、ファイル共有がカンタンにできる、transfer.sh をご紹介します。

ファイル共有には、DropboxやGoogle Driveなど、各種クラウドサービスを使う方法がありますが、いずれもアカウント作成が必要だったり、使用可能な容量の上限を気にしたり…といった課題がありました。transfer.shは、アカウント不要、コマンドラインたった一つで、14日間有効な共有リンクが作成できます。ミニマルデザインです。

準備は、たったひとつ。.bashrcや.zshrcなどに、下記をコピペして、source ~/.bashrc (.zshrc) しておきます。

# Add this to .bashrc or its equivalent
transfer() { if [ $# -eq 0 ]; then echo -e “No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md”; return 1; fi
tmpfile=$( mktemp -t transferXXX ); if tty -s; then basefile=$(basename “$1” | sed -e ‘s/[^a-zA-Z0-9._-]/-/g’); curl –progress-bar –upload-file “$1” “https://transfer.sh/$basefile” >> $tmpfile; else curl –progress-bar –upload-file “-” “https://transfer.sh/$1” >> $tmpfile ; fi; cat $tmpfile; rm -f $tmpfile; }

すると

$ transfer hello.txt

で、ファイル転送できちゃうのだそうです。

というわけで、実際にやってみました。

$ echo test > hello.txt
$ transfer hello.txt
######################################################################## 100.0%
https://transfer.sh/sW2Oc/hello.txt

あっけないほどカンタンです。実際に上記リンクにアクセスしてみると…

ダウンロードできるようになっていました。もちろん、コマンドラインでファイルを取ってくるときは

curl -O https://transfer.sh/sW2Oc/hello.txt

などでOKです。データは14日間で消えるのでご注意を。

基本的には、HTTP経由で https://transfer.sh にファイル転送できれば、何の手段でも良いので、~/.{ba,z}shrcに設定を書かずに

$ curl –upload-file ./hello.txt https://transfer.sh/hello.txt

とするだけでもOKです。

プログラマの方、MacやLinux, Windows10のターミナルが好きな方には、刺さるサービスかと思います。開発者は、Remco Verhoef氏です。自分が便利に使えるサービスを作ったといい、現状マネタイズなどはあまり考えていないそうです。ただ、徐々に知名度が上がって利用者も増えてきたそうで、いつまでサービスを維持できるか、セキュリティ面をどのように強化するかが課題だとか。

何よりこのシンプルさが、良いと思います。長く続いてほしいです。