ダウンロードシステムはどのようにして動いているか

このシステム中身はどうなってるんだろ

このシステムはMicrosoft社のAzure上にRazorを使って作られているデーターベースシステムなんよ

QRコードダウンロード番号は全部別の番号

他の人と同じ番号ってことはないの?

このシステムでは乱数を使って発生させた12桁の番号を使ってるんだよ

QRコードダウンロードシステムでは、12桁の番号を乱数を使って発生させています。同じ番号が無いようにチェックをしています。ですから、各ダウンロード用の番号は全て異なる番号になります。

QRコードを使ってアクセスされるサイトはどこにあるの?

QRコードを使ってアクセスされるサイトはどこにあるの?

一番最初にアクセスされるサイトはダウンロードの確認用サイトなんだ。本当にダウンロードを開始していいか確認するためにそうなっているんだよ。

実際にはhttps://tsuka.com/qd/12桁の番号 という名前のサイトがアクセスされます。一番最後の12桁の数字はディレクトリ名としてRazorというシステムに渡され、qd.cshtml.csというプログラムの中で認識した後、Webフォームの機能を使ってダウンロードボタンを表示します。受け取ったダウンロード用12桁の番号はhidden属性をもった値としてフォームに埋め込まれます。

最初のURLでのアクセスはGetという方法になりますが、フォームのボタンを押したときはPostという方法に切り替わります。同じプログラム内ですがPostで受信した場合は、リクエストをダウンロードシステムの本体にリダイレクトします。具体的にはボタンを押すとhttps://tsuka.com/qr/12桁の番号 へリダイレクトされます。

QRコードとダウンロードするファイルの関連付け

む、難しいなあ

なるべく簡単に書いてるんだけどね…

QRコードはSQLのデーターベースと照合されます。データーベースには12桁の番号と、音源や映像の元ファイルの番号、ダウンロードされる時使うファイル名、最後にその番号がアクセスされた日時、ダウンロード可能な残りの回数が記録されています。

ダウンロード回数が残ってる場合は、残りの回数から1を引き算し、現在の時刻と新しい残りの回数をデーターベースに書き込みます。

実際のダウンロードを行う

元のファイルは、サイトとは別のAzure上のストレッジに格納されているので、そのデーターを読み込みます。

読み込んだデーターをHTTPに変換します。最後にレスポンスのヘッダーを付けて、そのファイルがどのようなデーターか、つまり音楽なのか映像なのかというMIME種別をつけてクライアントの端末に送ります。


このようにして、QRコードのダウロードシステムは成り立っています。

このようなサイトを作りたい方は相談してください。このシステムのコードは塚本が書きました。

このページの画像はAIで作成しています。