InvocationTargetException使用appengine-gcs-client-0.5 dev_appserver存储文件

我正在使用appengine-gcs-client-0.5并在调用GcsService.createOrReplace和GcsOutputChannel.close时在dev_appserver中看到InvocationTargetExceptions。

似乎对storeBlob的调用没有适当的权限,因为appserver在com.google.appengine.api.blobstore.dev.FileBlobStorage.storeBlob中获取了AccessControlException:

java.security.AccessControlException: access denied ("java.io.FilePermission" "/tmp/1440435923000-0/encoded_gs_key:" "write") 

为了让这个工作,我需要做什么?

appengine-gcs-client-0.5删除了对已弃用的Files API的依赖,但SDK尚未获得存储BlobStorage服务文件所需的权限。 作为解决方法,直到下一个SDK版本发布,您可以传递一个标志来为Blobstore服务配置内存支持的存储,如下所示:

dev_appserver.sh –jvm_flag = -Dblobstore.no_storage = true

这只是dev_appserver所必需的 – 生产应用程序不会有这个问题。

从AE 1.9.27(现在可用)开始,不再需要jvm_flag(它应该正常工作)。