Droopyが可能にする巨大ファイルの簡易送信

 誰かがあなたを受取人として巨大なファイルを送信したいという状況を考えてみよう。直ぐに思いつくのは電子メールに添付することだが、多くのメールサーバではファイルサイズに制限が課されている。あるいはインスタントメッセージやIRC(Internet Relay Chat)のセッション中に転送することも考えられるが、この方式ではいったんチャットサーバに送られてから再度手元のマシンに再送信される訳であり、実質2回のファイル転送が行われる分だけ低速化することになる。巨大なファイルを送るというだけならRapidShareやMegaUploadなど専用のファイル転送サービスを利用すれば問題ないはずだが、これらのサービスの場合、秘匿性の高い情報を交換する場合は安全性についての懸念が残される。いっそのこと手元のマシンにFTPサーバを構築するという選択肢もあるが、こうしたサーバの場合は外部に向けて常時オープンにしておかなくてはならない。幸いなことに、こうした問題を一気に解決してくれる簡単なソリューションが存在する。それがdroopyというツールだ。

 droopyはこの4月にPythonライセンスの適用下でリリースされたばかりのオープンソース型ツールで、簡単なセットアップ手順にてWebサーバを立ち上げておき、クライアント側には指定のディレクトリにファイルを個別アップロードする操作を行ってもらうというシステムになっている。このアップロードは2つのPC間で直接実行されるので、必要なファイルを受信し終わったらdroopyを停止させておけば、それ以上のアップロードは受け付けなくなる。送信をする側のユーザが行う操作は、指定されたURLのWebページにアクセスして、必要な数のファイルをアップロードすることだけである。ファイル送信に特化したシステムとして、これ以上に簡単な方式はないだろう。

インストールと操作の手順

 droopyはPythonスクリプトの1つなので、そのインストール手順に難しい点はない(当然Python本体が利用可能なことが前提となるが、最近のディストリビューションであればPythonは標準で装備済みか簡単にインストールできるようになっている)。まずはdroopyのスクリプトをダウンロードして/usr/binなどの位置に置いておくが、ここでの操作にはroot権限が必要となる。次にdroopyを直接起動できるようにするため、droopyファイルに実行可能権限を与えておく(chmod +x droopy)。またファイヤウォールの設定でポート8000を開くようにしておかないと、外部からの接続はできないままとなる。

 droopyの操作法もごく簡単なものだが、配布元のWebサイトに掲載されている説明は最新版のものではないので、その点には注意が必要だ。実行用の構文を確認するには「droopy -h」あるいはdroopy --helpとコマンド入力をすればよく、この操作により次の説明が表示されるようになっている。

usage: ./droopy [-m message] [-p picture] [-d directory] port
example: ./droopy -m "Hi, this is Bob. You can send me a file." -p avatar.png

droopy_thumb.png
Droopy

 ここに表示されているように指定可能なパラメータは3つしか存在しない。このうち-m(あるいは--message)パラメータは、アップロード用ページにアクセスしたユーザに提示するメッセージの指定に使用する。ここではHTMLコマンドも使用できるが、単なるファイルアップロードの説明にそれほど凝った文字装飾は必要ないだろう。同じく-p(あるいは--picture)パラメータはページ上に表示させる画像ファイルの指定であり、-d(あるいは--directory)パラメータはダウンロード用ディレクトリの指定に使用する。droopyのWebサイトにある説明では、転送されてくるファイルのダウンロード先は常にdroopyの格納ディレクトリとされると書かれているが、実は最後のパラメータ指定によって任意に変更できるのだ。

 使用するIPアドレスとドメインが固定されているユーザの場合、必要な準備は以上で終了である。後はファイルの送信元となる相手に「http://ドメインのアドレス:8000にアクセスして指示どおりにアップロードの操作をしてください」と連絡すればいい。そうではなく、自分がどのようなIPアドレスを使用しているか分からないというユーザの場合は、手元のブラウザでhttp://127.0.0.1:8000にアクセスすると「Discover the address of this page」(このページのアドレスを確認する)というページが表示されるはずだ。後はこれをクリックして表示されるアドレスを、ファイルの送信元となる相手に通知すればいい(その他にもifconfigなどのツールを使用する手もあるが、その種の知識に疎いユーザにとってはこれが最も簡単なソリューションのはずである)。なおダウンロードサイトの指定については、DynDNSを使用する方法なども存在する。

woof
 他からファイルを受信するのではなく手元のファイルを相手先に送信したいという場合はwoofというツールの使用を検討すればいいだろう。これはdroopyと同様のスクリプトであるが、相手先にはダウンロード用のページを提示することになる。

 以上すべての準備が整うと、残された操作は相手先からファイルの送信処理をしてもらうことだけであり、1つ目のファイルの送信が完了すると2つ目以降のファイルを送信するためのリンクが表示されるはずである。なお同じ名前のファイルを繰り返し送信した場合は、上書きを避けるために2回目以降のファイル名中に番号が追加されるようになっており、例えばfoo.barというファイルを3回送信すると、foo.bar、foo-1.bar、foo-2.barというファイルが手元に届くことになる。必要なファイルがすべてダウンロードし終わったら、Ctrl-Cのキー操作によってdroopyを停止させておけばいい。

 droopyというツールは単一機能に限定した作りとなっている分だけインストールも操作も簡単であり、大型ファイルの交換という問題に悩まされているユーザの場合は、1つの簡易ソリューションとして手元のマシンに用意しておいて損はしないだろう。

Federico Kerekiはウルグアイ出身のシステムエンジニアで、20年以上に渡るシステム開発、コンサルティング、大学講師の経験を有している。

Linux.com 原文