如何按名称从 BlobStore 读取文件

How to read file from BlobStore by name

假设我有一些文件上传表单,比如文档中的那个 https://cloud.google.com/appengine/docs/java/blobstore/

如果我将文件 file.txt 保存到 blobstore,如果我不知道它是 BlobKey,我该如何从中获取它。更准确地说,我想通过这样的请求获取此文件:myapp.appspot.com/getfile?file_name=file.txt 我只想在 url.

上查看文件 file.txt

如果您使用 Blobstore,则必须记住某处的密钥才能检索 blob。

如果您使用 Blobstore 将文件存储在 Cloud Storage 中,那么您可以使用对象名称访问它们,对象名称可以是上传文件的原始名称。

如果你的文件是public,你可以直接访问它:

https://storage.googleapis.com/" + bucket + "/" + objectName

如果您想先在您的应用程序中阅读,然后 return 给客户端,那么您可以使用:

String filename = "/gs/" + bucket + "/" + objectName;
BlobstoreService blobService = BlobstoreServiceFactory.getBlobstoreService();
blobService.serve(blobService.createGsBlobKey(filename), response);