最終回となる今回は,
Megauploadの閉鎖と復活
2012年1月19日,
Megauploadのようなオンラインストレージサービスを,
- 大容量のファイルをアップロードすることが可能である
- 同時ダウンロード数や速度が制限されていて,
有料会員登録することでダウンロード速度が速くなる - ファイルをアップロードすることで報酬を得られるプログラムがある
実態として,
知名度が高く,
1年後の2013年1月19日,
- 注1)
- ドメインはFBIによって2013年1月現在も差し押さえられたままです。http://
www. megaupload. com/
サービス運営者にも中身がわからない
サービス運営者にも中身がわからない,
Megaは,
Megaに学ぶクライアントサイド技術
というわけでMegaのようなクライアントサイドでの暗号化/
このサンプルには,
- ファイルはブラウザ上で暗号化/
復号化を行う - 復号にはパスワードが必要だが,
パスワードをlocation. hash (注3) を使って受け渡すことで負担なくダウンロードできる
それではアップロードとダウンロードに分けて,
- 注2)
- 動作環境はInternet Explorer 10,
Firefox, Google Chrome, Safari, Operaです。iPhoneからもアクセスができます。 - 注3
- URLの#以降の部分を指します。
暗号化してアップロード
ファイルを暗号化してアップロードするには
- ローカルファイルを読み取る
- 暗号化する
- アップロードする
という3つの処理が必要です。最近のPCとブラウザであれば,
ファイルを受け取る
ブラウザからのファイルアップロードと言えば,input type = file
を使うことで行えます。
今までは,
HTML5にてFile APIが整備されたことで,input type = file
によって選択されたファイル,
分割して読み取る
File APIにより,
reader = new FileReader;
reader.onload = function(){
reader.result;
};
reader.readAsBinaryString(file);
Fileオブジェクトが作られた段階では,
単純にFileオブジェクトをFileReaderを使って読み込む場合,
表1 File APIに関する各クラス
クラス名 | 役割 |
---|---|
Blob | サイズ固定, |
File | Blobにファイル用のプロパティが備わったもの |
FileReader | Blob, |
- 注4)
- データの形式を直接指定する形式のことです。
- 注5)
- 画像や音声などのバイナリデータを格納できるデータ型のことです。