我编写了一个 Google App Engine 应用程序,它使用 Blobstore 来保存以编程方式生成的数据。为此,我使用了Files API,不幸的是,它已被弃用,取而代之的是 Google Cloud Storage。所以我正在重写我的助手类以使用 GCS。
我希望界面尽可能与以前相似,因为我将 BlobKeys 保留在 Datastore 中以保留对文件的引用(并且更改生产应用程序的模型总是很痛苦)。当我将某些内容保存到 GCS 时,我使用
BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/" + fileName.getBucketName() + "/" + fileName.getObjectName());
按照这里的规定,我将它保存在数据存储区中。
所以这里的问题是:文档告诉我如何blobstoreService.serve(blobKey, resp);
在 servlet 响应中提供 GCS 文件,但是如何检索文件内容(如 InputStream、字节数组或其他)以在我的代码中使用它以进行进一步处理?在我当前的实现中,我通过FileReadChannel
读取AppEngineFile
(均已弃用)来做到这一点。