社外ファイル共有へのownCloudの活用
弊社では現在、ownCloudを利用したファイル共有環境を利用しています。
ownCloudとは、ウェブベースのオンラインストレージソフトウェアです。自社サーバをオンラインストレージとすることで、よりセキュアなファイルのやり取りを行うことができます。
ownCloudではファイルのアップロードおよびダウンロード、共有設定や共有一覧の確認をウェブインタフェースで視覚的に行うことができ、それらをメールで通知する機能も備えています。これらの特徴を活かしてお客様との大容量のファイル共有に役立てることを目標としています。
ここではownCloud導入までの経緯や今後の展望をご紹介します。
既存システムと問題提起
弊社ではシステム構築業務、保守サポート業務において、メールに添付するには大きいサイズのデータをやり取りしなければならない場面があります。
このような添付付きメールファイルの宛先に複数のccやメーリングリストが含まれていると、全員に大容量データが送信されてしまい、メールスプールやトラフィックに大きな負荷をかけてしまいます。また特定サイズ以上の添付ファイルの送受信はメールゲートウェイにブロックされて不達になってしまう可能性もあります。
当初はファイルを分割してメール送付を行ったり、社内のウェブサーバまたはFTPサーバを用いてファイルを送付していましたが、その後社員がカスタマイズしたOSSのウェブベースファイル送信システムDECOを利用していました。
しかしこのシステム運用もいくつか問題を抱えていました。このシステムは Ruby on Rails で動作していますが、依存関係上 Rubyや関連モジュール のバージョンアップができなくなっており、それらを古いバージョンのまま使わざるを得ませんでした。
また公開ウェブサーバであるApacheとのリバースプロキシにも長時間のコネクションに関する問題があり、非常に大きなファイル送信では度々エラーが発生していました。
更にカスタマイズを行った社員がいなければ、今後の運用やメンテナンスも困難になります。
そのため、いち早くシステムを更新する必要がありました。
新システムへの要望とソフトウェア選定
まず弊社ではファイル送受信の前提として、社内サーバまたはお客様側のファイル送受信システムを利用することとし、他社管理下のファイル送受信サービスは使用しないとしています。
また既存システムの構築時でも同様だったのですが、開発が継続されているOSSを利用したいと考えていました。これは弊社がOSSを主に扱っているからです。そのうえで、次期システムに対して次のような要望が社内から寄せられました。
社内ユーザからは、従来踏襲の機能としてお客様ごとのアカウント発行ではなく、送受信依頼ごとにURLとパスワードを発行すること、送受信用のURLにはアクセス可能な期限をシステム側で設定できることが要望として上がりました。
システム管理側からは、既存システムの問題点であったバージョン依存が起こりにくいシステムであることや、公開ウェブサーバのApacheのリバースプロキシを経由したアクセスに問題が起きないこと、ウェブインタフェースや通知メールが文字化けしないことが要望として上がりました。
これらの要望を満たすべく様々なプロダクトを比較した結果、今回ownCloudを選定することとなりました。
ownCloudは現在も開発継続中のOSSであり、Webベースでのアップロードとダウンロードに対応しています。OpenUploadやPydio(AjaXplorer)といった同種の多くのプロダクトでは利用にはユーザアカウントを発行する必要がありましたが、ownCloudでは匿名ユーザのアクセスに対応しており、パスワードのみでのアクセスが可能で利用期限も設定することができます。
現在運用中のリバースプロキシを経由してのアクセスにも問題なく対応しており、ブラウザ側の機能ではなくシステム側でアップロードの進捗表示にも対応している点も要望を満たしています。
また、お客様に直接使っていただくことを考えると、インタフェースデザインがきれいに纏まっており、視覚テーマが独立しているため今後独自にカスタマイズできることも重要なポイントとなりました。
環境
OS | CentOS 7.1.1503 |
AP | Apache 2.4.6 |
サーバサイド言語処理 | PHP 5.4.16 |
DB | MariaDB 5.5.41 |
MTA | Postfix 2.10.1 |
オンラインストレージ | ownCloud 8.1.0 |
運用フロー
ダウンロード
- ダウンロードが必要なファイルを指定する。
- パスワードと有効期限を設定し、共有URLを生成する。
- お客様に共有URLとパスワードをそれぞれお知らせする。(別々が望ましい)
- ダウンロードされたときにメール通知が送られるので確認する。
- ダウンロードファイルの有効期限が切れ、Expiredとなることを確認する。
受信依頼フロー
- ownCloudにダウンロードURLの発行依頼
- お客様にアクセス先の通知
- お客様が対象ファイルをダウンロード
- ownCloudからダウンロード完了通知
アップロード
- アップロードファイルを受け取るフォルダを作成する。
- パスワードと有効期限を設定し、共有URLを生成する。
- お客様に共有URLとパスワードをそれぞれお知らせする。(別々が望ましい)
- ダウンロードされたときにメール通知が送られるので確認する。
- アップロード先の有効期限が切れ、Expiredとなることを確認する。
送信依頼フロー
- ownCloudにアップロード先URLの発行依頼
- お客様にアクセス先の通知
- お客様が通知されたアクセス先へアップロード
- ownCloudからアップロード完了通知、自動転送
※クライアントソフト使用の場合
課題と展望
課題
お客様が操作するUIは現時点ではファイルマネージャの機能を制限したものとなっており、利用フロー上では使用しない機能も多数表示されています。このままでは操作が直感的に分かりにくいため、画面のカスタマイズによるUI改善を検討しています。
また、運用面ではサポート担当者がディレクトリの作成やURL発行処理と言った数ステップの手動作業を行う必要があるため、これもある程度は自動化する機能追加を検討しています。
今後の展望
これまで紹介した機能の他にもowncloudは他のウェブシステムとの連携プラグインや、Dropboxのようなクライアントソフトウェアを使ったファイル自動同期などの機能を持っています。
これらを有効活用して、システム構成の幅を広げていきたいと考えています。