如何使用java从谷歌应用引擎下载上传的blob文件

时间:2013-01-02 12:36:58

标签: java google-app-engine

我已将文件作为blob商店上传,并存储在本指南Uploading file to Google App engine的Google应用引擎中。现在我正在尝试显示文件名,以及当用户点击文件时要下载的相应文件。我不知道如何下载blob文件原来我上传的方式。我试过这个,

 Query query = new Query("__BlobInfo__");
 query.addFilter("filename", Query.FilterOperator.EQUAL, req.getParameter("name"));
 DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
 PreparedQuery pq = datastore.prepare(query);
 List<Entity> entList = pq.asList(FetchOptions.Builder.withLimit(1));
 if (entList.size() > 0) {
 BlobKey blobKey = new BlobKey(entList.get(0).getKey().getName());
 BlobInfoFactory bi = new BlobInfoFactory();
 String fname = bi.loadBlobInfo(blobKey).getFilename();
 if (fname.contains(".mp3") || fname.contains(".aac")) {
 res.setContentType("application/octet-stream");
 res.setHeader("Content-Type", "save as filename=" + fname);

但在上面的代码之后不知道如何处理。请建议我一个想法

1 个答案:

答案 0 :(得分:0)

请参阅BlobstoreService的函数serve。此外,概述还有serving blobs的部分。