webGLゲーム対応のアップローダーサイトを作った(IDCFオブジェクトストレージ)

Unity5のwebGLプレイヤーのことです(旧式プレイヤーも可能ですが推奨しません)。zipで上げてサーバー上で展開し、iframeやLightBox別窓で表示させているので、UE4とかゲーム以外でも同じように表示される仕様(になってると思う)です。

webGLアップローダーのmuut2015-11-23

メインサイトのFreeGAはConoHaのオブジェクトストレージを使うことに決定したのですが、IDCFクラウドのオブジェクトストレージって50GBも無料なんですよね。

折角なので簡単なサブサイトを半日ぐらいで作って、オンライン限定のゲーム共有サイトにしました。

ゲームをオブジェクトストレージ上で共有してサイト内で遊ぶサイト

サブサイトとはいえ1年ぐらい前から実現したかった内容なんですよ。長期間の試行錯誤を続けてきたものの、残念ながらFreeGAとは相性が悪かったので分離した形になります。

サイトのコンセプト

UnityやRPGツクールMVを扱うゲーム制作者が主なターゲットです。

スマホゲームとPCゲームの検索を明確に分けてプレイヤーの利便性も重視しています。

 

ゲームの制作者はWEBブラウザ用にビルド済のデータをZIP形式でアップロードし、ユーザー側はサイト内でプレイします。

 

最大アップロードサイズは400MB付近で様子を見ます。それ以上のファイルはフリーガにてダウンロードゲームとして公開してください。

muutによる高機能掲示板つき

これはオマケですが、あまりに素晴らしいシステムだったので導入しています。

muutでは与えられたコードを一行追加するだけで、とても高機能な掲示板が構築されます。サーバー負荷も小さく、運営に困るような制限もありません。

まぁ、muut自体がなくなったら使えなくなっちゃうのでメインサイトには使えませんがね。

以下はサイト制作に関する技術的な話

技術的な内容については1年以上も前から試行錯誤を続けてきたことですが、オブジェクトストレージをマウントできるようになったことで急加速的に実現されました。

基本はs3fs、Policy設定でつまずいたからs3cmdも併用

オブジェクトストレージといえばamazonのS3ですが、同じノウハウで扱えるサービスも増えてきました。

当分はIDCFオブジェクトストレージの無料枠内で運営していきますが、それを超えるぐらい成長する日が訪れるのであれば喜ばしいことですね。

s3cmdでPolicyの基本設定

s3fsでのパーミッションだけでOKかとも思ったのですが、403エラーで無理でした。問題の切り分け方法を画一できていないので潔く諦めます。

それに一番怪しいのは、s3特有のPolicyでしょう。

s3fsでの設定方法を知らないのでs3cmdで対応します(他の方法があれば教えて欲しいです)。

親切なことにIDCFのサイト内に解説が載っているので大丈夫ですね(^^♪

s3cmd setpolicyでUnicodeDecodeError

やばい!ascii関連のエラーが出た!!文字コードとか良く理解してないっす。

Problem: UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe2 in position 101: ordinal not in range(128)

結果:色々やったが的外れ

IDCFさんが用意してくれているPDF内で、下記の赤記号部分に問題を発見

{
“Id”: “Policy1381122551879”,
“Statement”: [
{
“Sid”: “Stmt1381122547899”,
“Action”: [ “s3:GetObject” ],
“Effect”: “Allow”,
“Resource”: “arn:aws:s3:::testbucket/*”,
“Condition”: {
“IpAddress”: {
“aws:SourceIp”: xxx.xxx.xxx.xxx/xx
},
“NotIpAddress”: {
“aws:SourceIp”: ” yyy.yyy.yyy.yyy/yy”
}
},
“Principal”: {
“AWS”: [ “*” ]
}
}
]
}

 

あれ!?

xxx.xxx.xxx.xxx/xx  →  “xxx.xxx.xxx.xxx/xx”だよね。

そもそも  ってどうやって入力するんだ!

 

実はIDCFさんからコピペすることが多いのですが・・・時々謎記号に変換された状態でペーストされます。

どの段階で問題が発生しているか解りませんが、まさにコピペプラグラマー殺しですね!!

所詮コピペプログラマー

いつでも殺される覚悟はしてきましたよ(´-ω-`)プログラマーニナリタイナー

 

ERROR: S3 error: 400 (MalformedPolicy): Policy has invalid resourceが発生

この変はケアレスミスです。

一つのIpAddress内で2つ指示したり、aws:SecureTransportを間違ってNotIpAddressの中で指示したり、IPアドレスの後の/24を忘れたり、”Resourc・・・・・・・・・たり・・・・・たり・・・・・・!

 

こんな短いコードで何回ミスしてるんだ!!

 

所詮コピペプログラマー

今回みたいにコピペを封じられたら、4行の中の3行は間違える自信があるよ( ̄ー ̄)

 

通信端点が接続されていません

エラーもなくなりポリシーも受理されたのに・・・全っ然見れない!!!

ついに最終奥義を使いました!!!

{
“Version”:”2012-10-17″,
“Statement”:[{
“Sid”:”PublicReadGetObject”,
“Effect”:”Allow”,
“Principal”: “*”,
“Action”:[“s3:GetObject”],
“Resource”:[“arn:aws:s3:::example-bucket/*”
]
}
]
}

これは全ての人がアクセスできてしまうというamazon公式の禁断コードです!

 

が!通らない!!!!!

 

もう完全に終わってる・・・・・・・・・・・・・・・・・・・

 

完!!

 

 

もう諦めて御粥作ってたのですが(風邪気味)、ふと、wordpressのメディアファイルも見れなくなってることに気が付きました。

 

根本的に変だと思い df -k で確認すると『通信端点が接続されていません』のエラーを発見。

 

 

えええええええぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇぇええええ?

 

・・・・・・・・・・

 

ええええええええええええええええええええええええええええええええええええええええええええええ!!?

 

ええ!?(ブチ切れ)

 

いつから見えない敵と戦っていたんだろう!!

s3fsでマウントしてるので、s3cmdをconfigureした辺りが怪しいのかも。

 

コンセントが抜けたパソコンを電気屋さんに修理してもらったかのような感覚です。

 

『umount』 して『s3fs バケット名』で解決

『umount』 して『s3fs バケット名』で解決・・・・しない!!

 

びっくりしたけど、2回連続でumountしたら解決したっぽい。

おそらく2回マウントされていたのだと思います。2回マウントすると同じのを2重にマウントしちゃうのか。

 

他にもいろいろありましたが、必死すぎて覚書にしている余裕もありませんでしたね。

いつも思うけど、一番肝心な大変だった内容ほど覚書に残せないものです。

FreeGA.netとmuut.freega.netをよろしくお願いします

muut.freega.netはサブサイトですがアイディア自体は一年越しに実現されたものなので思い入れがあります!

もちろんFreeGA.netについては一生運営する強い覚悟を持ちながら制作しているので、何年掛かろうと必ず素晴らしいサービスに成長させます。

サーバーの勉強をしていると面白そうなオープンソースなんかも多くて色々やってみたくなるのですが、そこはグッとこらえて最低限のジャンルに絞ったつもりです。

今後も規模は拡大せず着実な運営を続ける方針ですが、ご意見などがあれば気楽におっしゃって頂けると幸いです。

年内はFreeGAmuutもベータ版での運営になると思いますが、会員登録や利用をお待ちしております。

 -

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

同じ分類

ConoHaとAWSとGCEを比べてみるとConoHaって凄いと感じつつwpXクラウドにも可能性

最近は興味深い技術が多すぎてサーバー選びも一苦労ですね。 さくらのVPSも石狩リージョンが初期費用無料なので2週間の〚…続き〛

XサーバーのPukiWikiではkakasiもchasenも使えない

有名どころのオープンソースには触っておきたいのでWikiGAというFreeGAのウィキサイトを立ててみました。 サブ〚…続き〛

IDCFクラウドとConoHaが2015年で最強!1点だけ注意

IDCFクラウドという一見マイナーなクラウド型のサーバーですが、私の中で世界一に決定しそうです。 小さく初めて大きく〚…続き〛

NGINXで外部DBのWordPress設定をしたらCan’t select database

最近は色々なサーバーで色々な試みをしているので色々な失敗を経験しています。 その中でも日本人のソースが足りないと感じ〚…続き〛

wordpressのマルチサイトで【参加サイトに表示されない】理由は簡単なミス

それは、Multisite Language Switcherを使う為にマルチサイトを構築するときのことでした。 &〚…続き〛

G+