С версии 1.5.4 create_upload_url
принимает дополнительные необязательные аргументы, которые могут ограничивать размер загрузки
create_upload_url(success_path, max_bytes_per_blob=None, max_bytes_total=None, rpc=None, gs_bucket_name=None)
Насколько я понимаю, max_bytes_per_blob
ограничивает размер каждого загружаемого файла, в то время как max_bytes_total
ограничивает общий размер всех файлов, загруженных в одном запросе.
Подробнее см. https://developers.google.com/appengine/docs/python/blobstore/functions
Например, чтобы ограничить размер загрузки до 5 МБ, назовите его так:
upload_url = blobstore.create_upload_url('/upload', max_bytes_total=5000000)
Если размер загрузки превышает лимит, возвращается HTTP-статус 413 (Request Entity Too Large).
Если вам нужно, вы можете перехватить его в jQuery следующим образом:
$("#file_form").ajaxForm({
success : function(response) {
...
},
error : function(jqXHR, textStatus, errorThrown) {
if (jqXHR.status == 413) {
$("#error_message").text("Uploaded files should not be larger than 5MB");
}
}
});