Я работаю над приложением Appengine на Java, которое позволяет пользователям
загружать изображения, нарисованные через библиотеку HTML5 Canvas под названием PaintWeb
(http://code.google.com/p/paintweb/).
В настоящее время у меня есть сервлет, который получает POST XMLHttpRequest от
библиотека javascript paintweb как форматированное изображение.
Библиотека Paintweb.js отправляет XMLHttpRequest POST
send = 'dataURL=' + encodeURIComponent(ev.dataURL),
headers = {'Content-Type': 'application/x-www-form-urlencoded'};
Пользовательский сервлет декодирует данные изображения в кодированном виде в виде большого двоичного объекта и
сохраняет их в хранилище данных со связанным объектом рисования
Пользовательский сервлет обслуживает BLOB-объекты в хранилище данных как
ContentType ("image / png") Мне интересно, могу ли я использовать новые BlobstoreService и ImageService
функции для загрузки моих холст-изображений HTML5 и использования их в качестве чистых BLOB-объектов (как показано в этом руководстве GWT BlobstoreService и ImageService )
В соответствии с документацией (http://code.google.com/appengine/docs/java/blobstore/overview.html#Uploading_a_Blob) кажется, что основной точкой остановки является то, что мне нужно POST-форму с:
<input type="file" name="myFile">
То, что я не думаю, возможно из Paintweb. Возможно, можно было бы обойти эту проблему, если бы на стороне сервера был какой-то способ хранения большого двоичного объекта в хранилище больших двоичных объектов (вместо хранилища данных), поэтому
что вы можете воспользоваться преимуществами отказа от использования квоты ЦП для обслуживания изображений.
Возможно ли или даже хорошая идея использовать Appengine URL Fetch
и переслать загрузку изображений в Blobstorage
"createUploadURL ()" со стороны сервера.
http://code.google.com/appengine/docs/java/urlfetch/usingjavanet.html
Кажется, что это возможно, но я не уверен, что это сэкономит мне ресурсы в долгосрочной перспективе (изображения - это простые маленькие рисунки, которые можно просматривать намного чаще, чем время загрузки, поэтому я чувствую, что получу хранение / обслуживание пособий в BlobstoreService.