Google Apps Engine
対応しようと思ったきっかけ 今作っているサービスで、GAEでDB内のデータのまるごと検索をしたい!と思ったのがきっかけです。Datastoreのデータは、Keyを使ってのgetはかなり早いですが、文字列を使っての検索(しかも、特定カラムではなく全部)を検索する…
そもそものきっかけ 今作っているウェブサービスで、AngularJSを使っているフロントエンドから、ファイルと一緒に、ユーザの入力値も一緒にアップする必要があったので、その方法をメモ。angular-file-upload (https://github.com/danialfarid/ng-file-uploa…
GAEのリストプロパティにて、TextやBlobなどのIndexされないものと、 IndexされるStringなどのデータを一緒に入れたときの話。GAEのドキュメントには、下記の英語の引用通りですが、・Indexされるものが先 (Stringなど。どうやらnullも含むらしい) ・Indexさ…
Base64のエンコード/デコードを使ったときの話。Android + GAEでBase64エンコード/デコードしたときに、 org.apache.commons.codec.binary.Base64をインポートして使っていたら、 GAEでは問題ない一方で、Androidだと、 Base64.encodeBase64String();と Base…
以前の記事 GAEのDatastore Read Operations - まめージェント 以降、GAEのDatastoreアクセス周りを大幅にリファクタリングしました。 今回は、JDOを使うこと前提の設計から、 Low Level APIで、極力Datastore Read OperationsやDatastore Write Operations…
belboさんにDatastore Opsを減らすには、 QueryではなくKeyを使ってget()した方がいいよ、 というご指摘を受けよくよく考えると自分、 Keyって何なんだか、よくワカッテネ・・・。 そして、そもそもKVSとRDSの違い、よくワカッテネ・・・。 ということに気づ…
実際にサービスを公開するにあたり、GAE上で Staging server / Production serverをどうハンドリングするかについて 調べてみたのでメモ。今のところ、(やはりというべきか何というべきか)下記2つの方法がありそう 1: 同じApp IDを使い、アプリ内でIf文でS…
仕事の方では普通、ドキュメントを英語で書いていることもあり、 今作っているサービスでも日本語であまり使ってなかったのですが、 HTMLのフォームをテストしていて、そこからメールを送信すると、 受信したメールの日本語部分が文字化けしていることに気づ…
GAEのDatastore Read Operationsの無料枠、 2014年6月末時点では0.05M (5万回)なんですが、 JMeterで負荷テストをしていて、この上限にあっという間に到達してビビったので その情報をシェア。DatastoreをQueryするときは、 だいたい下記のような感じでクエ…
GAEに対してHTTPS通信したい・・・ そのために、SSL証明書を用意しないと・・・と思いいろいろと調べたのでメモ。ネット上には”独自ドメインだと、証明書を用意しないといけないですよ” 的な記述はあるんですが、じゃあ普通(?)のhttps://myappname.appspo…
GAEのデプロイ中にエラーが発生したり中断した際、 バージョンがどうのこうの、というエラーが発生し、デプロイができなくなることがある。そのときは、Eclipse上ではなく、ターミナルからRollbackをする必要がある。 コマンドは下記の通り。 ./appcfg.sh ro…
GAEでAndroidから渡されたStirngをBlobにしてDatastoreに格納したい、 というケースがあったのでメモ。■StringからBlob String origin = "test string"; if (origin != null) { try { byte[] bytes = origin.getBytes("UTF-8"); return new Blob(bytes); } c…