日々学んだことを残しておこう。きっと未来の自分が探しにくる。 (ただ忘れっぽいだけです…)

Amazon S3を使って、超簡単データ共有サービスを作ってみた!


背景


発注者:「作業に必要なデータ送ります。サイズが大きいのでDVDに焼いて郵送するので、明日には着くと思います。」
私:「了解です。」

(1日後)

DVD受け取り、データの中身確認してみると不備を発見。

私:「データのおかしいですね。。。」
発注者:「再度、DVD送りなおします。」

(1日後)

うっ。。。
これだと、作業効率悪いよな~。

データ確認してみると、400MB程度だった。
確かにメールの添付ファイルの容量は小さいし、無料ファイル転送サービスも上限が数百MBくらいだから仕方ないのかな。

自分が発注者にデータ渡すときは、Amazon S3にアップして、URL教えてダウンロードしてもらっているけど、いざ自分がデータ受け取るときって、相手のツールレベルによって決まってしまう。
例えば、Amazon S3、GoogleDrive、DropBoxユーザであったり、自前サーバ持っているようなレベルであれば、すんなりいくけど、そうでない場合、結構めんどくない方法になることが多い。
ファイル分割して、メールで送られてきたり、DVDのメディアに焼いて郵送されたりと。

そのような相手に対して、クレジットの必要なAWSのアカウント作ってもらうのも申し訳ないし、どこかのストレージサービスにユーザ登録してもらって、広告メールばかり送られたりすると申し訳ないしでなかなか良い方法がない。
相手が少なくてメンバー固定化していたら、IAM(Identity and Access Management)設定して、マネジメントコンソール使ってもらうのでも良いけど、ユーザ数が多くなると管理面倒だし、マネジメントコンソール自体初めて見る人にとっては、英語だし、いっぱい機能あって触りたがらないですよね。。。たぶん。

ユーザ登録もいらなくて、直観的に誰でも使えるのないかな~。
う~ん、困った。
じゃ、自分で作ってしまえ!ということに。


サービスコンセプト


・100MB以上のデータサイズのファイル共有ができる。→ひとまず1GBにしてみることに。
・ユーザー登録不要にする。
・無料にする。→安くするためにデータ保管期間は1日に。
・簡単な操作にする。
・サーバに負荷はかけたくない。


技術的なお勉強


(1)Amazon S3 Browser Uploads
Amazon S3にブラウザから直接アップロードする機能があるじゃないか。サーバにデータを一旦アップロードすることなく、S3にアップロードできるヤツです。

(参考サイト)
Browser Uploads to S3 using HTML POST Forms


(2)Amazon S3ライフサイクル機能
S3なら、安いからデータ量多くても値段はさほど気にしなくて良いはず。でも、長期間保存すると従量制だから高くなるので、短期間にしよう。→1日に。
Amazon S3のライフサイクル機能を使うと、バケット内のファイルを指定したルールで自動削除が可能になるというヤツです。

(参考サイト)
Amazon S3でオブジェクトの有効期限を設定できるようになりました


(3)Amazon S3のCross Origin Resource Sharing機能
S3がCORSサポートしたので、ドラッグ&ドロップでAmazon S3にアップロードを行ったり、アップロードの進捗を表示できるヤツです。おしゃれにできるじゃないか。

(参考サイト)
Direct upload to s3 with cors


(4)Amazon S3によるサーバサイド暗号化に対応
通信は、SSL使って暗号化するけど、サーバーサイドでもファイル自体を暗号化できるっていうヤツです。ダウンロード時には自動で複合化してくれる。

(参考サイト)
Amazon S3がAES256によるサーバサイド暗号化に対応


(5)URLを推測されないようにする
今回ユーザー登録なしってコンセプトなので、各データのファイルURLが単純だとよろしくないので、推測されないようにURLをランダム値を追加しておこう。
UUID使えば良さそうかな。念のためファイルは、パスワード付zipファイルを推奨しておけば大丈夫かな。

(参考サイト)
UUID ウィキペディア



できたもの


Remobox インスタント共有データボックス
https://remobox.remoword.com/remobox/

Remobox使い方
http://www.remoword.com/remoapps-help/help-remobox.html

簡易的なデータ共有用のオンラインストレージサービスです。
ファイルをアップロードすると、ダウンロード先URLを表示します。そのURLを相手に教えてダウンロードしてもらえばOK。

ユーザー登録不要で無料で使えて、ファイル最大サイズ1GB、データ保管期限は約1日です。
ご利用は計画的にお願いします。

初めは自分の業務効率化のために作ろうと思いましたが、私と同じようにデータのやり取りに困っている方はぜひ使ってみてください。
まっ、S3とか使ってる人は、S3使えば良いだけですけどね。。。
2013-09-25 : AWS : コメント : 0 : トラックバック : 0
Pagetop
ホーム

広告

読みたいと思っている書籍

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく Amazon Web Services 定番業務システム12パターン 設計ガイド イラストで学ぶ 機械学習 最小二乗法による識別モデル学習を中心に (KS情報科学専門書) イラストで学ぶ ディープラーニング (KS情報科学専門書)

カウンタ

メールフォーム

名前:
メール:
件名:
本文:

GoogleTranslate

管理人のつぶやき

人気記事ランキング

カテゴリ

openclose

ブログ内検索

全記事表示リンク

全ての記事を表示する

ブログパーツ