×
最新の人気コンテンツ情報をまとめた
メールマガジンをお届けします

ページトップへ
CHANGE-MAKERSで度々ご紹介してきましたマーケティングオートメーションでもファイルを配布することは出来ます。今回は、マーケティングとは異なり日々の取引先や社内とのメール送受信で個人情報などが記載されたファイルを共有するための仕組みを「Bluemix Infrastructure(旧SoftLayer)」に構築してみましょう。


ザクッと要件は、
  • 共有したいファイルをアップロードするとユニークなURLが生成され、それをコピー&ペーストでメールに記載できる
  • 必ずパスワードをかけることができる (パスワードの強制)
  • 共有の期限を設定できる
  • 各ユーザーが個別に利用できる
とこんなところでしょうか。ここでは、「NextCloud」と呼ばれるオンラインストレージ構築ソフトウェアを用います。「NextCloud」は、2011年に登場した「ownCloud」の派生で、ownCloud社の創業者が、ownCloud社を退社し2016年6月にNextCloud社を設立、「ownCloud Enterprise Edition」をコミュニティドリブン(オープンソース)で実現することを目的に、NextCloudを開発・提供しています。

とりあえず必要な環境

使用クラウド:Bluemix Infrastructure(旧SoftLayer)
WebサーバーとDBサーバーを兼用
種別:Cloud Server パブリック
OS:Ubuntu14.04 64bit Minimal(最小構成)
CPU:2コア以上
メモリ:4GB以上
ストレージ:100GB以上
IPアドレス:パブリック IP と プライベート IP を1つずつ
ネットワーク速度:100 Mbps以上
メールサービス:必須ではないですがあれば便利 → SendGrid

利用者が少なければ1台で良いですが、将来的に増えてくるようであれば、ベアメタルサーバーの利用やWebサーバーやDBサーバーの冗長化を検討します。NextCloudのDBサーバーには、MySQL/MariaDBを使用しますので冗長化はこちらの記事をご覧ください。

インストール

シェルスクリプトを使って、必要なソフトウェアをインストールします。nanoはテキストエディタです。nanoが入っていない場合は、vi を使用します。
# nano setup.sh
nanoが使える場合は、下記をコピー&ペーストして、Ctrlキー + xキーを押し、yキーで保存します。
viを使用している場合は、iキーで入力モードに切り替えて下記をコピー&ペースト、Escキーを押してコマンドモードへ。:wq(コロンダブリューキュー)キーで保存します。このシェルスクリプトを実行すると、nanoが入っていない場合は、nanoが利用できるようになります。
また、シェルスクリプト内で、wgetに続くNextCloudのダウンロードURLは、16年11月現在の最新版のダウンロードURLをこちらで確認しています。
#!/bin/bash
apt-get update && apt-get upgrade -y
apt-get install wget unzip nano software-properties-common curl git -y
echo "Asia/Tokyo" | tee /etc/timezone
dpkg-reconfigure --frontend noninteractive tzdata
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
add-apt-repository 'deb [arch=amd64,i386] http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.1/ubuntu trusty main'
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
apt-get update && apt-get install apache2 php php-mysql libxml2-dev php-zip php-xml php-gd php-curl php-mbstring mariadb-server sysv-rc-conf -y
sysv-rc-conf mysql on
sysv-rc-conf apache2 on
cd /usr/local/src
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.1.zip
unzip nextcloud-10.0.1.zip
cp -r /usr/local/src/nextcloud /var/www/html/nextcloud
chown -R www-data:www-data /var/www/html/nextcloud/
cd /var/www/html/nextcloud/
ls -l
権限を付与し、シェルスクリプトを実行します。途中でEnterキーを押すことを求められますので、Enterキーを押します。
# chmod a+x setup.sh
# ./setup.sh
Webサーバーの設定を変更します。
# nano /etc/apache2/sites-available/000-default.conf
ルートディレクトリを変更します。
DocumentRoot /var/www/html → DocumentRoot /var/www/html/nextcloud
また、</VirtualHost>の下に、下記を追加します。追加後、Ctrlキー + xキーを押し、yキーで保存します。
<Directory /var/www/html/nextcloud>
Options Includes FollowSymlinks
AllowOverride All
DirectoryIndex index.php index.html index.htm
</Directory>
Webサーバーを再起動します。
# a2enmod rewrite && service apache2 restart
DBサーバーの設定を変更します。
# nano /etc/mysql/my.cnf
[mysqld]に、下記を追加します。追加後、Ctrlキー + xキーを押し、yキーで保存します。
binlog-format = MIXED
DBサーバーを再起動します。
# service mysql restart
DBサーバーにアクセスします。シェルスクリプト実行の際に求められたDBのroot管理者用パスワードを入力します。
# mysql -u root -p
データベースを作成します。データベース名やデータベースのユーザー名、パスワードは適宜設定してください。
例) データベース名:nextcloud_db
例) データベースのユーザー名:nextdbuser
例) データベースのパスワード:next_passwd
MariaDB [(none)]> CREATE DATABASE nextcloud_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextdbuser@'localhost' IDENTIFIED BY 'next_passwd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
「NextCloud」では、WebサーバーについてSSLサーバー証明書の使用が推奨されています。
SSLサーバー証明書を無料で取得し適用する方法については、こちらの記事をご覧ください。

NextCloud用管理者ユーザの登録

http://サーバーのPublic IP もしくはドメイン名
あるいは、https://サーバーのPublic IP もしくは、ドメイン名 にアクセスします。ここでは例として、http://demo.kolinzlabs.com:8080 とします。
下図のように管理者ユーザーの作成とデータベースを登録する画面が表示されますので、各項目に入力し「セットアップを完了します」をクリックします。

サンプルデータが用意され、すぐにファイルやフォルダを共有することができます。この状態で赤枠部分の共有アイコンをクリックすると、URLでファイルやフォルダを共有できますが、パスワードが任意になりますのでセキュリティ面で不安です。そこで、管理画面にてパスワードや共有期限を強制するように設定します。

画面右上のユーザー名をクリックし、[管理]を選択します。

管理画面が表示されます。画面左側の[Sharing]をクリックし、下図のようにチェックをいれます。チェックを入れると設定が自動保存されますので、チェックを入れるだけで良いです。初期の有効期限のデフォルト値は7日ですが、3日や4日などでもよいかもしれません。

同じく[Sharing]画面の「統合されたクラウド共有」にある2つのチェックボックスを外します。ソーシャルメディアと連携する際にチェックが必要になるのですが、ソーシャルメディアの業務利用について方針が定まっていない会社ではチェックを外しておいた方が良いでしょう。

初期は管理者ユーザーしかいません。画面右上のユーザー名をクリックし、[ユーザー]を選択しますと、管理者以外のユーザーやグループ(部署などの組織)を作成することができます。作成した各ユーザーに対して、グループへの登録、グループ管理者への任命、上限を設定することができます。

作成したユーザー名とパスワード、ログインURLを伝えます。
ログインURLは、先ほど用いたhttp://サーバーのPublic IP もしくはドメイン名
あるいは、https://サーバーのPublic IP もしくは、ドメイン名 になります。ここでは例として、http://demo.kolinzlabs.com:8080 としています。

外部とのファイルやフォルダ共有方法

管理者以外のユーザー作成を行いましたので、実際にメールには添付し難い大容量の動画ファイルや個人情報が記載されたファイルを社外の人と共有する手順を説明します。

  1. 先ほど作成したユーザーでログインします。
  2. 画面内で共有したいファイルやフォルダの共有アイコンをクリックします。
  3. 画面右側に「URLで共有」のチェックボックスが表示されますので、チェックします。
  4. チェック後、共有用のパスワードを入力し、Enterキーを押します。
  5. 共有用のURLが発行され、同時に有効期限も表示されます。
  6. 4で入力した共有用のパスワード、4で表示された共有用のURLをそれぞれメールでファイルを共有したい外部の人にお送りします。ファイルやフォルダや有効期限内であればアクセスすることができます。なお、共有用のパスワードは、共有用URL発効後であっても変更することができます。


まとめ

構築したメール向けの大容量ファイル共有の仕組みはURL共有ですから、メールに限らずチャットやSMS(ショートメッセージ)でも共有用のURLをメッセージに含めることでファイルやフォルダの共有ができます。
社外の人とチャットを使って仕事をすることが当たり前な現在、大容量ファイルや個人情報を含むファイルやフォルダを共有するのに、オンラインストレージを使いますが、使っているサービスによっては社内の人だけ限定で、外部の人がアクセスすることは困難であることがあります。
そういった時には、今回のように「NextCloud」のExternal Storage Support機能を有効にすると、Google DriveやAmazon S3、Dropbox、WebDAVをサポートするオンラインストレージ内のファイルを「NextCloud」内で利用することができるようになり、会社のシステム管理者の制御下で、ファイルやフォルダを安全に外部と共有し易くなります。


最後に、NextCloudのライセンスは、オープンソースライセンスの「AGPLv3」が適用されています。業務システムに使ったり、有償のクラウドサービスに使用することに制限はありません。ソースコードに変更を加えた場合に公開の義務がありますが、ソースコードを「無料で公開せよ」とは明記されていません。無料にしろ有料にしろ、ソースコードの開示要望があったときに何らかの方法で開示できれば良いだけです。
NextCloudの場合は、ソースコードに変更せずにそのまま使うことが殆どですから、あまり気にする必要はないでしょう。