2013-03-11 10 views
8

私はappengineでgoogle cloud sqlを使用しています。APIコールdatastore_v3.Put()へのリクエストが大きすぎました

私はDatasotre APIを使用していませんが、com.google.apphosting.api.ApiProxy$RequestTooLargeException: The request to API call datastore_v3.Put() was too large.を取得しています。

ドキュメントhttps://developers.google.com/appengine/docs/java/cloud-sql/developers-guide#access_limitsによると、データサイズの制限は60MBで16MBになると思います。

私のデータサイズは約1 MBで、私の反応は明らかに1分未満です。小さなデータで試してみると、すべて正常に動作します。

なぜ例外がスローされるのですか?何が問題ですか ? Google App Engineのバグですか?またはサイズ制限がある場合はどこに文書化されていますか?または何 ?

+1

Datastoreのエンティティあたりの制限は1Mbです。 Cloud SQLを使用していますか?また、セッションではDatastoreを使用していることに注意してください。セッションで1Mb以上を保存すると、この例外が発生する可能性があります。 –

+0

@PeterKnego私はCloud SQLを確実に使用します。セッションでは、HttpSessionを意味しますか? – Robert

+1

はい、具体的にGAEセッションのサポート:https://developers.google.com/appengine/docs/java/config/appconfig#Enabling_Sessions –

答えて

9

GAE sessionsが原因で発生します。これは、フードの下でセッションオブジェクトを保存するためにGAE Datastoreを使用します。この例外は、1Mb以上のデータがセッションに格納されている場合にスローされます。

+0

あなたはどのように問題を解決しましたか?あなたは何とかセッションからデータを削除しましたか? – qgicup

+0

2年が経ちましたが、私はこれをどうやって解決したのか覚えていません。セッションからデータを削除した可能性があります。毎回データベースからリロードしてください。あるいは、データを2つのオブジェクトに分割しました。各オブジェクトは1MB未満で、2つの異なるキーを使用してセッションに格納します。 – Robert