как обернуть файл как blob и зафиксировать их как хранилище данных в Google App Engine java

Я попытался с файловым сервисом хранить данные в Google приложении, и я успешно загрузил его, но позже я заметил, что он не сохраняет значения blob. Итак, я googled и получил эту ссылку Как обрабатывать данные с несколькими формами? или Как обрабатывать загрузки файлов в мое приложение? , предоставляемые Google.

В этом документе код говорит, как показано ниже,

 FileItemIterator iterator = upload.getItemIterator(req);
 while (iterator.hasNext()) {
 FileItemStream item = iterator.next();
 InputStream stream = item.openStream();
 if (item.isFormField()) {
 log.warning("Got a form field: " + item.getFieldName());
 } else {
 log.warning("Got an uploaded file: " + item.getFieldName() +", name = " + item.getName());

//You now have the filename (item.getName() and the
//contents (which you can read from stream). Here we just
//print them back out to the servlet output stream, but you
//will probably want to do something more interesting (for
//example, wrap them in a Blob and commit them to the
//datastore).

Здесь я не понимаю, как обернуть их как blob и передать их в хранилище данных. может кто-нибудь предложить мне, как это решить. Сохраняет ли этот файл файл как значения blob в движке Google?

1
nl ja de

1 ответы

InputStream is = item.openStream();
try {
   FileService fileService = FileServiceFactory.getFileService();
   AppEngineFile file = fileService.createNewBlobFile(mime, fileName);
   boolean lock = true;
   FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);
   byte[] buffer = new byte[BUFFER_SIZE];
   int readBytes;
   while ((readBytes = is.read(buffer)) != -1) {
       writeChannel.write(ByteBuffer.wrap(buffer, 0, readBytes));
   }
   writeChannel.closeFinally();
   String blobKey = fileService.getBlobKey(file).getKeyString();
} catch (Exception e) {
   e.printStackTrace(resp.getWriter());
}
1
добавлено
Сохраняет ли это файл как значения blob или как файл в blobstore?
добавлено автор Sabarish, источник
Но мне нужно хранить как значения blob, вы можете сказать, как достичь этого, не используя createUploadURL в свойстве action action
добавлено автор Sabarish, источник
FileServiceFactory теперь устарел :(
добавлено автор AlikElzin-kilaka, источник
Файл в blobstore.
добавлено автор Peter Knego, источник
Просто создайте db Entity и добавьте свойство массива байтов.
добавлено автор Peter Knego, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async

Google Cloud Platform_ru
Google Cloud Platform_ru
49 участник(ов)

Русскоязычное обсуждение google_cloud_pladform