大きなファイルをアップロードせずに送る
最終確認
クラウド型の転送サービスでは、ファイル全体のアップロードが終わるまで、相手はダウンロードを始められません。無料だと数 GB までに制限されることも多くあります。両方の端末がオンラインなら、直接送ることで待ち時間も制限もなくせます。
tosstome が大きなファイルを扱うしくみ
- サイズの上限は設けていません。データはチャンク単位でストリーミングされ、エンドツーエンドで受信確認を返すので、送信側が受信側を大きく追い越すことはありません。
- WebRTC の直接接続では、データがサーバーを通らないため、速度は 2 つの端末の間にあるネットワークで決まります。
- 直接接続できないときは、中継サーバーがチャンクを届いた順に転送します。ファイルをためこむことはなく、あとには何も残りません。
注意したい点は 1 つ:ブラウザのメモリ
ブラウザは、保存を押すまでディスクに書き込めないため、受信側のタブはそれまでファイル全体をメモリに保持します。数 GB なら、たいていのコンピューターでは問題ありませんが、スマートフォンや数十 GB のファイルでは難しいことがあります。
大きなファイルは、コマンドラインの受信箱があるコンピューターで受信してください。届いたデータをその場でディスクに書き込むので、ファイルサイズに関係なくメモリ使用量は一定です。
tosstome listen --dir ~/Videos/incoming
あとは、受信箱のリンクを使って任意のブラウザから、または別のターミナルから tosstome send で送ります。
とても大きな転送のコツ
- 両方の端末をスリープさせず、送信側のタブを前面に出したままにします。スマートフォンはバックグラウンドのタブを一時停止します。
- できれば同じ Wi-Fi か Ethernet を使います。ローカルネットワーク内の直接接続が最速です。
- 相手が同時にオンラインになれない場合、ピアツーピア (P2P) のツールは向いていません。クラウドドライブや、保存してリンクを渡すサービスを使ってください。
よくある質問
ファイルサイズの上限はありますか?
tosstome 側では上限を設けていません。受信側のブラウザは、保存するまでファイルをメモリに保持します。そのため数 GB のファイルでは、データをそのままディスクに書き込むコマンドラインの受信箱のほうが受信に向いています。
クラウドドライブにアップロードするより速いですか?
たいていは速いです。全体のアップロードが終わるのを待たず、送信中のデータを受信側がそのまま受け取れるからです。ローカルネットワークの中なら、データはネットワークの外に出ません。インターネット経由の場合、速度は 2 つの回線のうち遅いほうで決まります。
ファイルはどこかにアップロードされたり、保存されたりしますか?
いいえ。ネットワークの条件が合えば、ファイルは WebRTC で端末から端末へ直接届きます。合わない場合は Cloudflare 上の中継サーバーを通りますが、届いたバイトをそのまま転送するだけで、何も保存しません。受信側がオフラインなら、何も送信されません。
受信者はあとからダウンロードできますか?
いいえ。両方の端末が同時にオンラインである必要があります。何も保存しないことの引き換えです。