我一直在尝试直接从BlobStore编写和读取文件,但它不起作用。
问题是我打开像file = fileService.getBlobFile(blobKey);
这样的文件并且它不会抛出任何异常,但是在下一行中我调用readChannel = fileService.openReadChannel(file, false);
并且抛出一个FileNotFoundException。
我很困惑为什么第一行没有抛出异常。
不幸的是没有人回答这个问题。
答案 0 :(得分:1)
我在写入或删除方面没有任何问题,但在FileNotFoundException
使用openReadChannel(...)
时,我也得到AppEngineFile
。
我尝试使用从其构造函数创建的AppEngineFile
完整路径。我尝试过使用AppEngineFile
获得的getBlobFile(...)
,就像你上面那样。无论哪种方式,当AppEngineFile
传递给openReadChannel(...)
时,都会抛出FileNotFoundException
。
我的解决方法是让BlobstoreService.serve(...)
完成阅读和发送文件的所有工作。我怀疑使用FileService
来从AppEngineFile
读取还不支持(我使用的是1.6.0),所以读取必须通过BlobstoreService
({{1 }},serve(...)
,fetchData(...)
)。