Goでシンプルなファイル転送ツールを作った
Nov 9, 2024 08:45 · 853 words · 2 minute read
Pythonの標準機能のみでファイル送信を実装しているツールを見かけました。 便利そうだったので、Goで同じようなツールを作ってみました。
目次
ツールのURL
ツールのRepositoryはこちらです。
https://github.com/kapiecii/instant-receive-server
ツールの使用例
- 年末調整などの手続きに必要なファイルを仕事用のPCに送信する
- スマホで撮影した写真を仕事用のPCに送信する
ローカルネットワーク内のWebサーバーにファイルを送信する仕組みなので、メールやチャットツールなどの外部環境を介さず、直接ファイルを送信できます。
Goを選んだ理由
Goでは、「Webサーバーを起動するライブラリ」や「Webアプリのテンプレートエンジンに使えるライブラリ」が標準ライブラリとして提供されています。
また、Goは標準機能でクロスビルドができます。Windows, Mac, Linuxのどこでも、ビルド済みの実行ファイルを渡すだけで使えます。 Goの実行環境が無い環境でもさっと動かせるのは結構大きなメリットだと感じています。
作ったツールのメリットとデメリット
メリット
- ローカルネットワーク内で簡単にファイルの受信ができる。
- メールやチャットツールなど、外部サービスを経由せずにファイルを受信できる。
- ビルド済み実行ファイルを1つ渡すだけで使える。
- Goの標準ライブラリだけで実装しているので、外部ライブラリとの依存の問題が無い。(外部ライブラリを使うよりも信頼性も高いはず?)
デメリット
- 認証機能や暗号化通信、その他セキュリティに関係する機能は実装していないので、信頼できるローカルネットワーク以外では使わない方がいい。
使った感想
なかなかに便利です。生活のちょっとした不便を解決できるツールを作るのはいいですね。
今回GitHub Copilotを使いました。 自分が欲しいツールを圧倒的短時間で作れたのはいいんですが、Copilotが賢くて自分ではほぼコードを書いていないので不完全燃焼感もあります。