從App Engine Blobstore的文檔中,BlobStore中的每個條目都應在DataStore中有一個BlobInfo條目。那麼爲什麼我的blobInfo在下面的代碼中爲空?App Engine(Java)Blobstore:成功存儲Blob後無BlobInfo
注:
- 如果我刪除的BlobInfo代碼,該servlet返回的資源,因爲它應該(但不包含文件名)
- 爲了簡便起見,我刪除異常和參數處理
我會非常感謝您的幫助。
public class GetResourceServlet extends HttpServlet {
private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
private BlobInfoFactory infoFactory = new BlobInfoFactory();
public void doGet ( HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String blobKeyStr = request.getParameter("blob-key");
BlobKey blobKey = new BlobKey(blobKeyStr);
BlobInfo info = infoFactory.loadBlobInfo(blobKey); // returns null !?
String fname = info.getFilename();
response.addHeader("content-disposition", "attachment; filename=" + fname);
blobstoreService.serve(blobKey, response);
}
您是否可以在管理控制檯中看到您想要在BlobViewer中訪問的blob? –
Blob存儲在Blobstore中。實際上,blobstoreService.serve()應該返回blob。問題是我無法檢索應存儲在數據存儲區(而非Blobstore)中的blob元數據。如果我查看DataViewer,則看不到任何類型爲'BlobInfo'的條目,但我不知道是否應該... –
元數據存儲在__BlobInfo__下。查詢「SELECT * FROM __BlobInfo__」 –