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

 * Firefox Send 


Firefox Sendで出来ること

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

* ファイルをアップロードすると ダウンロード用のURLが発行されます ( 有効期限は24時間 )
( アップロードされたファイルは暗号化されています )

* 上記のダウンロード用のURLにアクセスすると、ファイルがダウンロード出来ます ( 一度のみ  ) 

 この様なアップローダーと呼ばれるサービスは他にも多数ありますが、Firefox Sendは アップロードしたファイルが ダウンロードされると同時に サーバー内の 元ファイルを即座に消去するという特徴があります。

 また、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 を立ち上げ
( ブラウザで設定されている言語によって 表示される言語が自動で切り替わります ) 

 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'));


Summary

以上がFirefox Sendの紹介でした。ファイルサーバーとは違い、" 個人 ⇔ 個人 " でファイルを安全に共有したい時に使うと 便利サービスだと思います。

また、オープンソースで開発されているので、社内で使ったり、クライアントに 機密情報を含むファイルを安全に送りたい時に使うなど 色々な要望に応えられそうです。

Firefox Send : サービスページ / レポジトリページ

 

この記事のカテゴリ

プログラミング

この記事のタグ

OSSパッケージ , Webサービス , nodejs

Socialシェアボタン

スポンサーリンク