テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(akashic report) アカストでファイル共有をする

アカストはS3互換なので, 署名つきリクエストをすることが出来ます. S3には各ユーザごとにアカウントがあります. このアカウントは, アクセス制御のために使います. アクセス制御によって, あるユーザは別のユーザの資産を見ることが出来なくなります.

別のユーザに資産を共有するためには, ACLの設定を使うことが出来ます. しかし, ACLの設定は結構めんどくさいため, ちょこっとファイル共有をするために設定するのはうざいです. また, 特定のユーザとのみ共有としようとすれば, 相手もアカストのアカウントを持っている必要があります. これもうざいです.

ファイルをアップロードして, URLでばらまく, これを実現するのが署名つきリクエストです.

アカストオープンストレージを使って試してみます.

http://27.120.80.37:10947/

事前準備

  • mcをインストールします (zipをとってきて解凍するかgo getするかで簡単に終わります)
  • mcのセットアップをします. オープンストレージにアクセスすると以下のように表示されます. このままコピペして実行すれば設定されます.
And to configure mc, please run
$ mc config host add akashic-storage http://27.120.80.37:10946 OFYE8CUU6BDAESH3E0NO iYF8SSXZfcBP57WrkGclz0aaBXuXTcn98BLjerRr S3v2

実行

hogeと書いたhogeというファイルをアップロードして, 署名つきリクエスト用URLを生成するまでをやります.

// bbbというバケットを作成
$ mc mb akashic-storage/bbb 
// hogeというファイルをhogeというオブジェクト名でアップロード
$ mc cp hoge akashic-storage/bbb/hoge
// そのオブジェクトをmc share downloadで指定
$ mc share download akashic-storage/bbb/hoge
URL: http://27.120.80.37:10946/bbb/hoge
Expire: 7 days 0 hours 0 minutes 0 seconds
Share: http://27.120.80.37:10946/bbb/hoge?AWSAccessKeyId=OFYE8CUU6BDAESH3E0NO&Expires=1460718302&Signature=Asv8crTBwBV%2BePVkanLCCxlReOI%3D

簡単だと思いませんか?アカストを使うと, グループ内でのファイル交換を気軽に行うことが出来ます.

  • 共有したい秘密のファイルをDropboxに置くのは嫌だ.
  • Dropboxには他のファイルもあるので, なんとなくURLを公開したら他のファイルも見られてしまうのではないかと心配だ
  • もちろんネット上のファイル共有サービスなんて使いたくない(管理者に盗み見られるため)

アカストはオープンソースのS3互換ストレージです. 今私が公開してるオープンストレージがそうであるように, 月500円のVPSを借りれば誰でも簡単に運用することが出来ます. CPUをほとんど食わないので, 既存のVPS共存させることも可能です.

こういう機能があれば便利だなというアイデアがありましたらGithubのIssueかメールでご連絡お願いします.