ダウンロードシステムはどのようにして動いているか
このシステム中身はどうなってるんだろ
このシステムは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で作成しています。