Google AppEngine Blobstore:在Java中按文件名下载Blob

Zen*_*non 4 java google-app-engine blob blobstore

假设我已经将一堆文件(在这种情况下,如果重要的话)上传到GAE的BlobStore.
后来,我希望能够从其他地方下载这些文件.
我知道我可以使用BlobStoreService的serve方法通过BlobKey获取blob,但是如何获取与给定文件名关联的blobkey?
我似乎无法找到任何内置功能.

sys*_*out 18

包含filename属性的BlobInfo元数据存储在数据存储区中的只读__BlobInfo__实体中.

Query query = new Query("__BlobInfo__"); 
query.addFilter("filename", FilterOperator.EQUAL, filename); 
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
PreparedQuery pq = datastore.prepare(query); 
List<Entity> entList = pq.asList(FetchOptions.Builder.withLimit(1)); 
String name = entList.get(0).getKey().getName();
Run Code Online (Sandbox Code Playgroud)

  • @jtahlborn你所说的是你知道完整的答案,你只是懒得提供它?你不应该对你的答案没有被投票感到惊讶. (2认同)