2015-09-08 4 views
0

я получаю сообщение об ошибке:RequestTooLargeError: Запрос на datastore_v3.Put API вызова() была слишком большой

The request to API call datastore_v3.Put() was too large. 
File "/base/data/home/apps/s~app-prod/version/controllers/app/file.py", line 470, in function_name 
temp_o.put() 
RequestTooLargeError: The request to API call datastore_v3.Put() was too large. 

для следующего кода:

temp_o = models.Temp.all().get() 
temp_o.list = json.dumps(temp_list) 
temp_o.put() 

Когда я получаю размер temp_o .list используя следующий код:

logging.info('size of list = %s', sys.getsizeof(temp_o.list)) 

в результате я получаю это:

size of list = 4241156 

Поскольку sys.getsizeof() возвращает значение в байтах, то это всего лишь 4,2 МБ. Почему сохранение данных только 4.2 МБ приводит к RequestTooLargeError в Google App Engine?

+0

Поскольку предел составляет 1 мб на сущность, так что да, 4.2mb слишком велико – marcadian

ответ

3

Это связано с ограничением 1 МБ на максимальный размер сущности. В моем случае temp_o.list является TextProperty. См. cloud.google.com/appengine/docs/python/datastore (прокрутите в конце страницы)

Смежные вопросы