スマホからPCに大きなファイルを転送したいのに、データケーブルが見つからない?

同僚と大量の写真を共有したいけど、クラウドにアップロードするのは面倒?

ezshare は、そんな場面のために作られました。

プロジェクト概要

属性内容
GitHubmifi/ezshare
Stars752
言語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を持っている画像/動画を圧縮、サイズ制限あり
AirDropAppleエコシステムで優れた体験Apple製品のみ
Snapdropezshareと似た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