ezshare:752⭐のLANファイル共有ツール
スマホからPCに大きなファイルを転送したいのに、データケーブルが見つからない?
同僚と大量の写真を共有したいけど、クラウドにアップロードするのは面倒?
ezshare は、そんな場面のために作られました。
プロジェクト概要
| 属性 | 内容 |
|---|---|
| GitHub | mifi/ezshare |
| Stars | 752 |
| 言語 | TypeScript |
| 特徴 | LAN共有、双方向転送、QRコード、クリップボード同期 |
| 最終更新 | 2日前 |
解決する課題
日常の業務でよくあるシーン:
- デバイス間のファイル転送:スマホで撮った写真をPCに送りたい、でもWeChatは画質を圧縮するし、QQはログインが必要、AirDropはApple製品のみ
- 大容量ファイルの共有:動画素材が大きすぎてクラウドの無料枠を超える、USBも手元にない
- 臨時共有:来訪者に資料をダウンロードしてほしい、でもWiFiパスワードは教えたくない
- クリップボード同期:スマホでコピーしたテキストをPCに貼り付けたい
ezshare の解決策:
- 純LAN転送:インターネットを経由しない、速度はルーターの性能のみに依存
- クライアント不要:受信側はブラウザだけで、アプリのインストールは一切不要
- 双方向転送:ダウンロードだけでなく、アップロードも可能、クリップボードも同期
- すぐ使える:コマンド一つで起動、QRコードを自動生成
主な機能
1. ワンクリック起動
npx @ezshare/cli
またはグローバルインストール:
npm install -g @ezshare/cli
cd /path/to/share
ezshare
起動後、ターミナルにアクセスURLとQRコードが表示されるので、スマホで読み取るだけ。
2. ファイルブラウズとダウンロード
Webインターフェースで現在のディレクトリのファイルとフォルダが一覧表示:
- 単一ファイルダウンロード:クリックするだけ
- フォルダ丸ごとダウンロード:自動的にZIPに圧縮、ストリーミング配信
- オンラインプレビュー:画像、動画の直接再生とスライドショー対応
3. ファイルアップロード
受信側はダウンロードだけでなく、アップロードも可能:
- スマホからPCへ写真を素早く転送
- 複数人での相互ファイル交換
- 設定不要、ブラウザでドラッグ&ドロップ
4. クリップボード同期
お気に入りの機能:
- サーバー→クライアント:PCでコピーした文字列をスマホで貼り付け
- クライアント→サーバー:スマホでコピーした文字列をPCで貼り付け
パスワード、住所、リンクなどの一時的な共有に最適。
5. QRコード対応
起動後にQRコードを自動生成。スマホのカメラで読み取るだけでアクセスできる。URLを間違えて入力する心配なし。
クイックスタート
インストール
# npxを使用(推奨、インストール不要)
npx @ezshare/cli
# またはグローバルインストール
npm install -g @ezshare/cli
基本的な使い方
# 現在のディレクトリで共有を開始
cd ~/Documents
ezshare
# 指定ディレクトリで開始
ezshare /path/to/share
# ヘルプを表示
ezshare --help
Dockerデプロイ
Node.jsを入れたくない場合:
# Docker Composeを使用
docker compose up --build
# または手動実行
docker run -p 3003:3003 -v $(pwd)/shared:/shared mifi/ezshare
類似ツールとの比較
| ツール | 特徴 | 制限 |
|---|---|---|
| WeChatファイル転送 | 誰でもWeChatを持っている | 画像/動画を圧縮、サイズ制限あり |
| AirDrop | Appleエコシステムで優れた体験 | Apple製品のみ |
| Snapdrop | ezshareと似たWebツール | 公開サーバーに依存 |
| LocalSend | オープンソースのクロスプラットフォーム転送ツール | クライアントアプリが必要 |
| ezshare | ブラウザアクセス、双方向転送 | Node.jsまたはDockerが必要 |
ezshare の最大の強みは受信側の負担がゼロ——相手はブラウザさえあればよく、何もインストールする必要がない。技術に詳しくない人にファイルを送る場合に特に便利。
適したシーン
推奨
- 開発者が複数デバイス間で素早くファイルを転送
- オフィス内で同僚に臨時で資料を共有
- クライアント/来訪者にファイルを提示、WiFiパスワードは教えたくない
- スマホとPC間で大容量ファイルを転送(クラウドを経由しない)
- 簡易的なファイルサーバーの素早い構築
非推奨
- 長期運用が必要なファイルサーバー(機能がシンプルすぎる)
- インターネット経由のアクセス(Ngrok/Cloudflare Tunnelの方法はあるが、専用のソリューションほど安全ではない)
- 複雑な権限管理(現在はシンプルなディレクトリ共有のみ)
高度なテクニック
Ngrokとの組み合わせで外部アクセス
外部からアクセスさせたい場合:
# ezshareを起動
ezshare
# 別ターミナルでNgrokを使用
ngrok http 8080
Ngrokが生成したURLを共有すればOK。
LAN内で固定アドレス
固定マシンから頻繁にアクセスする場合は、ルーターのDHCP予約を設定してサーバーに固定IPを割り当て、hostsファイルで覚えやすいドメイン名を設定できる。
技術的なハイライト
- TypeScript:型安全、保守性が高い
- 純粋なHTTP:WebSocketに依存せず、互換性が極めて高い
- ストリーミングZIP:大きなディレクトリも圧縮しながら転送、パッケージングの待ち時間なし
- Electronパッケージ:スタンドアロンのデスクトップアプリ版も提供(Node.js不要)
まとめ
ezshare は典型的な「小さいけれど美しい」ツール——多くの機能は持たないが、「LAN内でのファイル共有」という一つのことを極めている。752 starsという数値は、実際のニーズを解決しつつ、肥大化しすぎていないことを示している。
デバイス間でファイルを転送したり、同僚に資料を共有したりする機会が多いなら、このツールはツールボックスに加える価値がある。インターネットなしでファイル転送ができるという「オフラインの自由」自体が、一種の安心感だから。
| 属性 | 内容 |
|---|---|
| リポジトリ | https://github.com/mifi/ezshare |
| ライセンス | MIT |
| 言語 | TypeScript |
| 作者 | @mifi |