webアプリケーションに触れてみる(3)【WebGLで出力したUnityゲームのアップローダー】

いやぁ随分久々の更新になってしまいましたね

半年ぐらい放置していたと思います

その間何してたんですかね?僕にもあまり記憶がありません

勉強を頑張っていたような気もするんですが単位は危ういなぁというものがちらほら…

さて春休みに入ったので久々にプログラミングを再開しました

今回作成したのは前回までに引き続きWebGLで出力したUnityゲームのアップローダーです(これ言ったことありましたっけ)

完成したものがこちらになります

github.com

youtu.be

設計

f:id:ymzkmtfm:20180228024659p:plain

この図は何て名前で呼んだらいいんでしょうね?コンポーネント図とかいうんでしょうか?

それはさておき残念ながらフロントエンド君とRESTAPI君は死にました

理由としてはやってみると結構フロントエンドを作るのが面倒なうえに効果が薄いので外部に公開するようなAPIもいらねぇんじゃねぇ?ってことで削除しました

これに伴いデータ(アカウントとコンテンツ)はDjangoに面倒を見てもらうことになりました

新たに登場したsshfsは単純にリモートのサーバとファイルを同期するだけのものです

アカウントについて

アカウントは名前とメアド、パスワードなんかがとってあります

アカウント周りを作ってみるとわかるんですがDjangoはすごいですね

あーめんどくさそうだなーって部分は基本的に作り終わっていて適当にぽいぽいやればパスワード付きのアカウントとかログインしてないと見れない場所だとかユーザー一人一人に対して提供する内容を変えるとかが簡単にできます

Customizing authentication in Django | Django documentation | Django

nwpct1.hatenablog.com

torina.top

torina.top

qiita.com

コンテンツについて

コンテンツの方は名前とアカウントへの外部参照だけなのでクソみたいに簡単です

ただゲームをするにあたってファイルとかディレクトリ構成をきちんと保持しなければならなかったので結構泥臭く書いています

具体的には一つ一つ貰ったファイルをリモートのファイルサーバーに対してバイナリ単位でファイルを書き込んでいます

二つのディレクトリと一つのファイルを同時にアップロードするなんていう殆ど需要のない機能は流石のDjangoにも備わっていないようです

qiita.com

torina.top

感想

前回の状態から作業時間としては20時間くらいでしたが、結構サクッといいものつくれるなぁという印象です

とりあえずサービスとして公開する予定は今のところない(というかファイルのアップロード周りがセキュリティも糞もない状態でできない)のでこんなものでwebアプリケーション関係のことはおしまいにしたいと思います。

次は「コンピュータシステムの理論と実装」の実装とかやってみようかなぁって思っています

https://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E7%90%86%E8%AB%96%E3%81%A8%E5%AE%9F%E8%A3%85-%E2%80%95%E3%83%A2%E3%83%80%E3%83%B3%E3%81%AA%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-Noam-Nisan/dp/4873117127