У меня есть кусок текста в большой строке, которую я динамически создаю в javascript в веб-приложении.Я хочу сохранить его в BLOB-магазине.Тем не менее, я не могу понять, как заставить это работать.Я создаю URL-адрес для публикации с помощью обычной команды blobstoreService.createUploadUrl ().
Одной из возможностей отправки моей строки в URL-адрес хранилища BLOB-объектов является использование jQuery.ajax:
jQuery.ajax({url:blobstore_url,contentType:'multipart/form-data',type:'POST',data:{file:mystring}})
Однако, когда я запускаю эту команду, я получаю ошибку AppEngine "java.lang.OutOfMemoryError: Java heap space".Попытка погуглить эту ошибку предполагает, что в данных моей формы отсутствует обязательный атрибут «имя», но я не могу понять, как указать это с помощью jQuery.ajax.
Другая возможность - использовать объект FormData браузера:
formData = new FormData()
formData.append("file",my_string)
xhr = new XMLHttpRequest()
xhr.open("POST", blobstore_url)
xhr.send(formData)
Это работает нормально, но затем, когда мой «успешный» URL-адрес запускается хранилищем BLOB-объектов в моем серверном приложении AppEngine, список опубликованных BLOB-объектов становится пустым.Я предполагаю, что не могу просто добавить my_string к formData как объект файла, но мне нужно вместо этого сделать что-то еще.
Я знаю, что я очень близок к тому, чтобы это работало, но упускаю некоторые важные мелочи.Если кто-нибудь из вас сможет помочь мне разобраться, как исправить любой из двух описанных выше подходов, я был бы рад - Спасибо!