# Device Transfer

> スマホからパソコンへ、ファイルもフォルダごとも直接送れます。6桁のコードでペアリングするだけ。アップロードもアカウントも不要で、サーバーは中身に触れません。

- URL: https://bytescope.dev/ja/device-transfer/
- Locale: ja · Also: [en](https://bytescope.dev/en/device-transfer.md) · [zh-Hant](https://bytescope.dev/zh-Hant/device-transfer.md)
- Runs: ファイルは2台のあいだを直接流れます。ペアリング用のサーバーが中継するのは接続情報だけで、中身は1バイトも通りません。
- Requires: Any modern browser on both devices (WebRTC). Sending a whole folder needs Chrome, Edge or Opera on desktop (File System Access API).
- Updated: 2026-09-08

## What it does

両方の端末でこのページを開き、片方に出た6桁のコードをもう片方で入力するか QR で読み取ると、2つのブラウザーが互いへの直接接続を組み立てます。あとはファイルを放り込むだけ。フォルダごとでも構造はそのままです。アカウントもアプリのインストールも要らず、アップロード欄の容量制限もなく、いったんサーバーへ登ってからまた降りてくるのを待つ必要もありません。同じ Wi-Fi なら回線が出せるだけの速度で流れ、実測では毎秒数十メガバイトに届きます。

### サーバーが扱うのは接続情報だけで、ファイルには触れません

ここは二度読む価値があります。2つのブラウザーは自力では互いを見つけられないので、小さなペアリング用サービスが相手側の接続情報 — ネットワーク上の宛先と、暗号化された通り道の設定 — を橋渡しします。扱うのはそれだけです。経路ができた時点でペアリング用サービスは退場し、以後すべてのバイトは暗号化された `WebRTC` のデータチャネルを通って2台のあいだを直接流れます。保存も記録もされません。そもそも置かれていないので、漏れる先がありません。転送中に開発者ツールのネットワークタブを見れば確かめられます。

### フォルダ、チェックサム、そして切れたとき

フォルダはまず目録 — 全部のパスとサイズ — として送られ、そのあと1ファイルずつ流れます。だから両端が中身を把握でき、進捗の数字に意味があります。各ファイルは読むときと書くときの二度 `SHA-256` を通し、両方の値が一致したものだけが受け側に残ります。合わなければ、それらしい壊れたファイルとして保存するのではなく捨てます。大きなフォルダの途中で切れても、再接続すれば止まった場所から続きます。受け側が「どのファイルをどこまで書いて検証済みか」を申告し、送り側は済んだものを飛ばして足りない分だけを流します。パスを黙って書き換えることもありません。受け側で保存できない名前は、別物に化けて届くより先に名指しで断ります。

### 正直な限界

フォルダ単位で気持ちよく使えるのはデスクトップ同士と Android です。iOS は送るより受け取る方が得意で、Safari はページにファイルは渡してもフォルダは渡しません。受け側でディスク上に本物のディレクトリを再現するには File System Access が要るため、そこはデスクトップの Chromium 限定です。それ以外の環境では、いったんブラウザーの専用領域に置いてから最後にひとつの zip として渡します。ZIP 形式が扱える範囲を超える大きさなら、自動的に複数に分けます。そして中継サーバーは意図的に置いていません。別々のネットワークにいるなどして2台に経路がないときは、こちらの機械にファイルを通すのではなく「同じ Wi-Fi につないでください」と正直に伝えます。

## Limits

Does not relay through a server: both devices must reach each other directly (same Wi-Fi or a network without symmetric NAT), and nothing is stored in the cloud.

## FAQ

### ファイルはそちらのサーバーを通りますか？

通りません。サーバーが扱うのは接続情報 — 2つのブラウザーが互いを見つけるための宛先とチャネル設定 — だけです。見つかった時点で退場し、以後すべてのバイトは暗号化された経路を通って2台のあいだを直接流れます。アップロードも、どこかに残る複製も、あとで消す対象もありません。信じる代わりに確かめたければ、どちらかの端末で開発者ツールのネットワークタブを開いたまま大きなファイルを送ってみてください。ペアリングのやり取りのあとは何も出てきません。

### 速度は？　どれくらい大きなフォルダを送れますか？

同じ Wi-Fi なら毎秒数十メガバイトが目安です。写真が数ギガあってもコーヒー1杯ぶんで、午後をつぶすほどではありません。上限を決めるのは受け側の空き容量で、こちらではありません。ファイルは細切れで流れるので、どちらの端末も全体をメモリーに抱えることはないからです。実際の天井は受け側の空きと、フォルダではなく zip として受け取る場合の ZIP 形式そのものの制限で、後者はページが自動で複数に分けて回避します。

### 途中で止まりました。最初からやり直しですか？

いいえ、再接続を押してください。受け側はファイルごとに「ディスクへ書いて検証まで終わったバイト数」を持っていて、再開はその記録から組み立てられます。推測ではありません。送り側は完了済みのファイルを知らされてまるごと飛ばし、中断したファイルは受け側が保持を証明できる地点から流し直します。切れた瞬間に転送中だったファイルは、検証済みの地点から続くか、捨てて丸ごと送り直すかのどちらかです。チェックサムを確かめられない半端なファイルが残ることはありません。

### なぜ「同じ Wi-Fi につないで」と言われるのですか？

中継サーバーを置いていないからで、これは機能の不足ではなく選択です。中継するということは、あなたのファイルがこちらの機械を通るということで、それはこのページが避けようとしている性質そのものです。帯域の費用もいずれ利用者に跳ね返ります。同じネットワークにいる2台はほぼ確実に直接つながります。別々のネットワークの2台は、双方のルーターの振る舞い次第でつながったりつながらなかったりします。つながらないときは、取り繕わずそう表示します。

### 実際にどのブラウザーと端末で動きますか？

接続そのものは `WebRTC` と安全な接続があればどこでも動き、これは現行のデスクトップ／モバイルのブラウザーすべてに当てはまります。フォルダごと送るのはデスクトップの Chromium がいちばん得意で、実際のディレクトリをたどれます。Android は先に全部読み込む簡易的な選択に、iOS Safari はフォルダではなくファイル単位になります。受け側でディスク上に構造を再現できるのはデスクトップ Chromium だけで、それ以外は zip のダウンロードになります。判定はユーザーエージェントの推測ではなく、読み込み後にブラウザーの機能を実際に調べて表示します。

## Related tools

- [QR File Transfer](https://bytescope.dev/ja/qr-file-transfer.md) — 回線を一切使わず、小さなファイルを画面からカメラへ QR で渡します。
- [WebRTC Test](https://bytescope.dev/ja/webrtc-test.md) — 頼る前に、自分の回線が P2P 接続に何をするかを確かめられます。
- [File Hash](https://bytescope.dev/ja/file-hash.md) — 転送結果を自分で確かめたいときに、両側でハッシュを取れます。
