【问题标题】:How to read the contents of an uploaded blob?如何读取上传的 blob 的内容?
【发布时间】:2015-05-11 19:01:08
【问题描述】:

我正在使用 Blobstore 上传一个简单的文本文件,使用此文档:https://cloud.google.com/appengine/docs/java/blobstore/#Java_Uploading_a_blob。我从文档中了解如何保存 blob 并将其提供给用户,但我不明白处理文件上传的 servlet 如何实际读取文本文件的内容?

【问题讨论】:

  • 您可以使用org.apache.commons.fileupload 解析multipart/form-data 用户可以以multipart/form-data 的形式发送文件,然后您的servlet 可以读取它...

标签: java google-app-engine blobstore


【解决方案1】:

我找到了答案。这是代码:

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);

【讨论】:

    【解决方案2】:

    在 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 中访问了。

    然后您可以使用 Java 的 GCS 客户端库读取该文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      • 2019-08-20
      • 2020-09-08
      • 2017-03-17
      相关资源
      最近更新 更多