2015-05-11 2 views
0

Я использую Blobstore для загрузки простого текстового файла с использованием этого документа: https://cloud.google.com/appengine/docs/java/blobstore/#Java_Uploading_a_blob. Я понимаю из документов, как сохранять и обслуживать blob для пользователей, но я не понимаю, как мой сервлет, который обрабатывает загрузку файла, действительно просматривает содержимое текстового файла?Как читать содержимое загруженного блоба?

+0

Вы можете использовать 'org.apache.commons.fileupload' для разбора' многослойную/form-data' пользователь может отправить файл в форме, как 'многочастного/форм-data', то ваш сервлет может читать его ... – brso05

ответ

0

Я нашел ответы. Это код:

Map<String, List<FileInfo>> infos = blobstoreService.getFileInfos(request); 
Long fileSize = infos.get("myFile").get(0).getSize(); 
Map<String, List<BlobKey>> blobKeys = blobstoreService.getUploads(request); 
byte[] fileBytes = 
     blobstoreService.fetchData(blobKeys.get("myFile").get(0), 0, fileSize); 
String input = new String(fileBytes); 
0

В python есть класс BlobReader, который поможет вам в этом. (https://cloud.google.com/appengine/docs/python/blobstore/blobreaderclass)

Кажется, что вы используете Java. Кажется, что нет эквивалентного класса в Java. То, что я сделал бы, это использовать GCS в качестве поддержки для вашего blobstore (https://cloud.google.com/appengine/docs/java/blobstore/#Java_Using_the_Blobstore_API_with_Google_Cloud_Storage). Таким образом, файлы, загруженные в blobstore, будут доступны в GCS.

Затем вы можете прочитать файл, используя клиентскую библиотеку GCS для Java.