Firefoxで有名な Mozillaが ファイルの共有が出来るWebサービス「Firefox Send」を実験的にリリースしたので使ってみました。

Firefox Send はファイルを共有出来るWebサービスで、ドラッグ & ドロップ操作だけでファイルの共有ができます。
( アップロード出来るファイルの上限は2GB * 1GB以下を推薦 )
( アップロードされたファイルは暗号化されています )


この様なアップローダーと呼ばれるサービスは他にも多数ありますが、Firefox Sendは アップロードしたファイルが ダウンロードされると同時に サーバー内の 元ファイルを即座に消去するという特徴があります。
また、Firefox Send は " 安全にファイルの共有ができる " ということを公言しており、オープンソースで公開されています。
っということなので、自身の環境にFirefox Sendを導入してみました。
Firefox Send はnode.js
(8 以上) + redis
で作られているで 事前に導入が必要です。
Firefox SendのソースコードはGitHub上で公開されているので、レポジトリからzipファイルを入手するか、git
コマンド を使ってソースコードを入手します。
# ソースファイルの入手 * 'send'というディレクトリ名でプロジェクトがクローンされます
git clone https://github.com/mozilla/send.git
ソースコードを入手した後、依存パッケージの入手、ビルドをします。
$ cd send # sendディレクトリへ移動
$ npm install # 依存パッケージのインストール
$ npm build # assetファイルのコンパイル
ビルドが終われば、redisを起動させ、sendフォルダ上で ' npm run start
' コマンドを入力すれば アプリケーションが立ち上がり ブラウザで ' http://localhost:1443
' にアクセスすれば Firefox Sendが使えます。
# redis server の起動
$ redis-server /usr/local/etc/redis.conf
$ npm run start # サーバーの起動
# アプリケーション起動時に ' Error: Redis connection to localhost:6379 ' が表示される場合は、
# 'send/server/config.js ' の11行目の 'localhost' を '127.0.0.1' に変更してください
( ブラウザで設定されている言語によって 表示される言語が自動で切り替わります )

Firefox Send は フレームワークにnode.jsの ' Express
'、テンプレートエンジンには ' handlebars
' を 使って開発されています。機能が絞られている分、Expressを使って開発をした経験がある人は、20 ~ 30分もあれば Firefox Sendのコードの全体像が把握、カスタマイズも容易だと思われます。
また、' send/server/config.js
' の conf
オブジェクト内の値を変更することで、各種設定も可能です。
// send/server/config.js
const conf = convict({
// ... 大部分を割愛しています
// アップロード可能なファイルサイズ
max_file_size: {
format: Number,
default: 1024 * 1024 * 1024 * 2, // デフォルト: 2G
env: 'MAX_FILE_SIZE'
},
// ファイルがダウンロード可能な時間
expire_seconds: {
format: Number,
default: 86400, // 1日 ( 1日 = 86400秒)
env: 'EXPIRE_SECONDS'
}
});
テンプレート内の言語ファイルは ' public/locale
' で定義されており、ビューも簡単に変更可能です。
send/public/locales/ja/send.ftl
' 内に定義されています 
Expressを元に開発されているので、慣れている人であれば、数あるnpmパッケージを使ってカスタマイズすることも簡単にできます。
/* basic認証を付ける例 */
// インストール
// npm i basic-auth-connect --save
// send/server/server.js に下記を追加
const basicAuth = require('basic-auth-connect');
app.use(basicAuth('username', 'password'));
以上がFirefox Sendの紹介でした。ファイルサーバーとは違い、" 個人 ⇔ 個人 " でファイルを安全に共有したい時に使うと 便利サービスだと思います。
また、オープンソースで開発されているので、社内で使ったり、クライアントに 機密情報を含むファイルを安全に送りたい時に使うなど 色々な要望に応えられそうです。
Firefox Send : サービスページ / レポジトリページ