我编写了一个谷歌应用引擎应用程序,利用Blobstore存储以编程方式生成的数据。为此,我使用了文件API,但不幸的是,该API已被弃用,而改用Google Cloud Storage。因此,我正在重写我的辅助类以便使用GCS。
我希望保持接口尽可能与之前相似,也因为我在Datastore中持久化BlobKeys以保留对文件的引用(更改生产应用程序的模型总是很痛苦的)。当我将某些内容保存到GCS时,我会检索一个BlobKey。
按照此处指定的方法,我将数据保留在Datastore中。
那么问题来了:文档告诉我如何使用
我希望保持接口尽可能与之前相似,也因为我在Datastore中持久化BlobKeys以保留对文件的引用(更改生产应用程序的模型总是很痛苦的)。当我将某些内容保存到GCS时,我会检索一个BlobKey。
BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/" + fileName.getBucketName() + "/" + fileName.getObjectName());
按照此处指定的方法,我将数据保留在Datastore中。
那么问题来了:文档告诉我如何使用
blobstoreService.serve(blobKey, resp);
在servlet响应中服务GCS文件,但是我该如何检索文件内容(以InputStream、byte数组或其他方式),以便在我的代码中进行进一步处理?在我的当前实现中,我使用从AppEngineFile中读取的FileReadChannel(已弃用)。