GAEのBlobstoreで気になる2つの問題

ある案件でBlobstoreを使う機会がありまして、そのとき2点ほど問題が発生しました。
発生した問題と解決策を念のため書いておきます。
※ちなみに利用した言語はJAVAです。

(1)URLの有効期限の問題

一般的にブロブストアに画像をアップロードする場合バイナリデータの送信先(formのactionに指定するURL)をblobstoreService.createUploadUrl()で生成します。
ただ、実はここに落とし穴があります。おそらく実際にサービスでBlobstoreを利用している開発者にしかわからない問題かもしれません。(自分はユーザに指摘されて気づきました。。)

結論から言うと、生成されたURLに有効期限があり、その有効期限が切れるとアップロードができなくなります。解決策として、送信ボタン押下時にAjax経由で生成されたURLを使ってデータの送信をおこなうようにしました。

この問題については、Googleの人と直接話をしたのですが、あまり致命的な問題だと考えていないようでした。要は「ユーザがそんなに長い時間フォーム画面にとどまることがあるのか?」という認識です。もちろん、そのような可能性がある・・・というか実際におこっていることは伝えましたが、しばらくは解決しないような気がします。

(2)マルチバイト文字の文字化け問題

ある一部の漢字が文字化けしてしまう問題です。この問題は結構有名だと・・・思います。
解決策は、送信前にBase64エンコードして、データ受信時にBase64デコードするだけです。
(ネットで調べれば具体的な解決策は出てくると思います。)

ちなみに、この問題についてもGoogleの人と直接話をしました。
返答ですが、「そもそもバイナリデータ送信のためのAPIなので、マルチバイト文字は考慮されていない」とのことでした。
これは1の問題以上に解決する日が遠い気がします。。


以上、Blobstoreで気になる2つの問題でした。

Blobstore  2013年09月28日 00時09分 

iPhoneアプリを個人で出してます。Python/JavaScriptが大好きです。このブログはGAE/Pythonで作ったオリジナルブログです。
カテゴリ
開発アプリ