Google App Engine

GAE/Pでスレッドの排他制御(synchronized)をする

Javaのsynchronized修飾子みたいなのを、デコレータで出来るようにした。 Memcacheを使ってる。 デコレートしたメソッドごとに排他制御出来るようにした。 synchronizedの引数でオプション指定が出来る。 オプションは、key / key_prefix / sleep_time / ret…

GAEでPython2.7を使ってthreadsafeを有効にする

なんだか解りづらいからメモ。 目的 本番サーバで、マルチスレッドで動かす。 開発サーバでも動くようにする。(残念ながらシングルスレッド) データストアはHigh Replication datastore必須 Python2.7を使う場合、データストアはHigh Replication datastor…

FUSE PYTHONでG-Storageをマウント出来るようにしてみた

前回、PHP FUSEでG-Storageをマウント出来るようにしてみた - yoshida_eth0の日記で作った奴だと、書き込みが出来なかった。 だから今回はPythonでやってみた。 実行するには、easy_installでoauthとtlsliteを入れる必要あり。 インスタンス変数をチェックす…

PHP FUSEでG-Storageをマウント出来るようにしてみた

Google App Engineでストレージサービス作ってみた - yoshida_eth0の日記で作ったRESTful APIを、ファイルシステムとしてマウントする。 Flexでファイラも作ったし、知識がなくても簡単に使える、っていう点はクリアしてるけど、ブラウザを立ち上げなきゃい…

G-StorageにOpenSocialの外部サーバ機能を追加してみた

/storage/opensocialを/opensocial/[username]として、サービスプロバイダの署名つきリクエストを許可するようにした。 G-Storage http://g-storage.appspot.com/ makeRequest関数を使うと、サービスプロバイダがプロキシになってOAuth認証パラメータをくっ…

G-StorageにOAuth認証(RSA-SHA1方式)をつけてみた

前回出来なかったって書いたけど、tlslite使って出来た。 これでWSSE、OAuth(RSA-SHA1)、OAuth(HMAC-SHA1)の認証が出来るようになった。 G-Storage http://g-storage.appspot.com/ スクリーンショット 公開鍵登録の部分。 RSA 普段何気なく使ってるRSAだけど…

GAEでRSA-SHA1方式のOAuth認証は出来なかった => 出来た

前々々回作ったG-Storageを機能追加した。 土日+有給の5連休で本気出した。 本気出し過ぎた。 明日から仕事。 G-Storage http://g-storage.appspot.com/ OAuth認証(RSA-SHA1方式) Pythonでは、PHPでいう所のopenssl_verify()がなくて、ダメだった。 TLSLite…

G-StorageにOAuth認証(HMAC-SHA1方式)をつけてみた

前々回作ったG-Storageを機能追加した。 G-Storage http://g-storage.appspot.com/ OAuth認証(HMAC-SHA1方式) サーバ側のHMAC-SHA1方式のOAuth認証はPHPでやった事あったから、それを移植。 OAuthパラメータ受け渡しに対応してるのは、以下の通り。 ・Author…

G-StorageにWSSE認証をつけてみた

前回作ったG-Storageを機能追加した。 G-Storage http://g-storage.appspot.com/ WSSE認証 サーバ側のWSSE認証はPHPでやった事あったから、それを移植。 Pythonの書き方についてはこの辺を参考に。 2年位で非推奨になった関数とかも多いみたい。 とりあえず…

Google App Engineでストレージサービス作ってみた

Google App Engineでストレージサービス作ってみた。 詳しくはトップページに書いたけど、Rest風のAPIでデータをやり取りするタイプのストレージサービス。 そのうちクライアント用にFlexでこれ専用のファイラでも作ろうか。 G-Storageって名前は、言うまで…

Google App Engineの開発サーバをApacheのVirtualHostにマッピングする

Google App Engineの開発サーバはdev_appserver.pyを起動してなくちゃいけなくて面倒。 デフォルトでは、ポート8080で127.0.0.1に対してバインドするようになってる。 Tomcatの動いてるサーバを使って外から開発したい場合、portとaddressを指定しなくちゃい…