Linuxコマンドラインを使っている時に、一時的なファイルを自分のパソコンにコピーしたい時や、他の人にファイルを共有したいという場面が頻繁にあります。例えばサーバーのログを共有したり、コマンドの処理結果を共有したりする場合などです。そのような場合、通常はSCPコマンドを使ってファイルを転送したりする必要がありますが、毎回一時的なファイルをコピーするのは大変です。そのような時にLinuxコマンドでファイルをアップロードして、別の端末でダウンロードできる最も簡単な方法を紹介します。何らかのサービスに登録する必要もありません!
とても便利に使えますが、データが暗号化されませんので重要なデータには利用しないようにしましょう。あくまでも一時的なデータ、かつ個人情報などを含まないデータの範囲で使うようにしましょう。
TEMP.SHという一時ファイルを預かってくれる無料サービス
TEMP.SHという、一時的なファイルを3日間だけ保管できる無料サービスがあります。このサービス
このサービスは、インターネットに接続されているLinuxマシンから、Linuxコマンドのcurlコマンドでファイルをアップロードでき、アップロードしたファイルはウェブブラウザからダウンロードできます。一時的なファイルを無料で3日間も保管してくれますのでとても重宝します。Linuxコマンドでファイルをアップロードできるということは、とても時短に繋がります。TEMP.SHを利用するためにソフトウェアをインストールする必要もありません。
Linuxコマンドでファイルをアップロードする方法
インターネットに接続されているLinuxマシン上に、次のような一時ファイルを作っておきます。ファイル名は日本語が使えませんので、英語表記のファイル名にする必要があります。ここではhello.txtとし、内容は次のようにUNICODEで日本語を書き込んでおきます。
$ cat hello.txt
本日は晴天なり。TEMP.SHサービスのテストです。
このファイルをtemp.shサービスに、Linuxのcurlコマンドでアップロードするには次のようなコマンドを実行します。「”file=@hello.txt”」の部分でアップロードしたいファイル名を指定します。ファイルのアップロード先は「https://temp.sh/upload」というURLになります。
$ curl -F "file=@hello.txt" https://temp.sh/upload
このコマンドを実行すると、すぐにダウンロードできる一時的なURLが表示されます。
$ curl -F "file=@hello.txt" https://temp.sh/upload
http://temp.sh/pFWCE/hello.txt
「http://temp.sh/pFWCE/hello.txt」というURLが返ってきます。毎回このURLは変化しますが、このURLを、ファイルを共有したい人に送ります。
なお先の例ではテキストファイルをtemp.shサービスにアップロードしましたが、画像ファイルなどもアップロードすることが出来ます。ここでは「http://temp.sh/FjaUW/ubuntu-logo-text-dark.png」というUbuntuのロゴ入り画像をアップロードしました。
$ curl -F "file=@/usr/share/pixmaps/ubuntu-logo-text-dark.png" https://temp.sh/upload
http://temp.sh/FjaUW/ubuntu-logo-text-dark.png
すると「http://temp.sh/FjaUW/ubuntu-logo-text-dark.png」というダウンロード用URLが返ってきますので、このURLをブラウザで開くと、問題なく次のような画像がダウンロードされます。
temp.shサービスにアップロードされたファイルをダウンロードする方法
URLを受け取った人は、このURLをブラウザで開くことで、次のようなダウンロード画面が表示されます。
このダウンロード画面の「Click here to download hello.txt」というボタンを押すことによってすぐにダウンロードが開始され、ファイルがダウンロードされます。ブラウザでダウンロードしたファイルを開くと、次のようにcurlコマンドでアップロードしたファイルと同じファイルがダウンロードされます。
共有されたファイルダウンロード用URLは、ファイルが保管されている間であればいつでもアクセス可能です。ファイルサイズ制限は4GBまでとなっていますが、余程大きなファイルでない限り問題にはならないでしょう。
まとめ
これまで見てきたように、TEMP.SHサービスを使うとLinuxコマンドラインで非常に簡単に一時的なファイルを他のマシンにダウンロードすることが出来ます。しかしURLは誰でもアクセス可能ですので、機密情報や個人情報は勿論のこと、重要なデータを扱う場合にはTEMP.SHサービスでファイルを共有しないようにしましょう。しかし、あくまでも一時的なデータかつ重要ではないデータをLinuxマシンからアップロードして他者と共有するには非常に便利ですので、上手く活用して時短できるようにしましょう。