macとwindows間でサクッとファイル転送したい
最近閉じたネットワーク内でwindowsとmac間でファイル転送することがたびたびある。
今まではDropboxを使っていたが、windowsマシンの方は常にDropboxにログインしているというマシンでもないので、ファイル転送のたびにDropboxにログインしてファイルのやりとりをするのが面倒だった。
どうにかウェブサービスを経由しないで直接ファイル転送をやれるような簡単なツールはないものかと頭をめぐらした先にあったのが、ftというGo言語で書かれたファイル転送ツールだった。
このツール、実は以前から気になっていて、個人的に gRPC
を学習する際の取っ掛かりとしてこのツールのソースコードをちょっと読んだりしていた。そのうち学習目的でJSで書き直してみたいと思ったまま、すっかり忘れてしまっていたのだが、今回ファイル転送するためのツールとして使ってみることにした。
ちなみに作者の方が書いたftに関する記事はこちら。
macにはGoが入っていたが、windowsにはGo環境がなかったので公式サイトから最新のインストーラーをダウンロードしてGo環境を作ったうえでftをインストールした。
ftのインストール
インストールは下記
(そういえば、go get
って廃止されるんだっけ...これからは go install
になるんだったかな?などと遠巻きにGoをかじっている浅い思考で脳の表層を撫で回しながらコマンドを叩く)
追記:現在は実行のためのコマンドをインストールする際は go install
を利用してインストールする
go install github.com/mattn/ft@latest # 追記:go getは利用しないため、下記の記述はコメントアウトした # go get github.com/mattn/ft
ftの使い方
GitHubのページを見れば書いてあるが、一応備忘録として書き残しておく。
ftでファイル転送をするためには送る側も受け取る側も ft
を使う。
ファイルを送る方のやること
送りたいファイルがあるディレクトリまで移動して、下記のコマンドを叩く。
ft serve
これでOK。
ちなみにwindows環境だと Microsoft Defender
が立ち上がってアクセスを許可させる必要があったので、許可した。
ちなみにこちらのマシンのローカルIPが必要になるので頭に入れておくこと。
ファイルを受け取る側がすること
下記のコマンドを叩くことで、ft serve
されているディレクトリ内にあるファイルをダウンロードできる。
# IPアドレスはGitHubのREADMEから持ってきている # また、ポート番号(:11111)つけないとダウンロードできなかったので、つけている # (README見ると不要な気もするけど、自身の環境だとポート番号つけないと動かなかったのでつけています) ft download -a 192.168.123.4:11111
ちなみにserve
されているファイルのリストを予めチェックすることもできる。
ft list -a 192.168.123.4:11111
そこまで重いファイルを転送しているわけではないが動作はすこぶる早く、使用感は良い。