使用 appengine-gcs-client-0.5 dev_appserver 存储文件的 InvocationTargetException
InvocationTargetException storing files with appengine-gcs-client-0.5 dev_appserver
我正在使用 appengine-gcs-client-0.5 and seeing InvocationTargetExceptions in my dev_appserver when calling GcsService.createOrReplace and GcsOutputChannel.close。
似乎对 storeBlob 的调用没有适当的权限,因为应用程序服务器在 com.google.appengine.api.blobstore.dev.FileBlobStorage.storeBlob:
中收到 AccessControlException
java.security.AccessControlException: access denied ("java.io.FilePermission" "/tmp/1440435923000-0/encoded_gs_key:<some key>" "write")
我需要做什么才能让它正常工作?
appengine-gcs-client-0.5 删除了对已弃用文件 API 的依赖,但 SDK 尚未获得将文件存储到 BlobStorage 服务所需的权限。作为下一个 SDK 版本发布之前的解决方法,您可以传递一个标志来为 Blobstore 服务配置内存支持的存储,如下所示:
dev_appserver.sh --jvm_flag=-Dblobstore.no_storage=true
这只是 dev_appserver 需要的 - 生产应用程序不会有这个问题。
从 AE 1.9.27(现已可用)开始,不再需要 jvm_flag(它应该可以正常工作)。
我正在使用 appengine-gcs-client-0.5 and seeing InvocationTargetExceptions in my dev_appserver when calling GcsService.createOrReplace and GcsOutputChannel.close。
似乎对 storeBlob 的调用没有适当的权限,因为应用程序服务器在 com.google.appengine.api.blobstore.dev.FileBlobStorage.storeBlob:
中收到 AccessControlExceptionjava.security.AccessControlException: access denied ("java.io.FilePermission" "/tmp/1440435923000-0/encoded_gs_key:<some key>" "write")
我需要做什么才能让它正常工作?
appengine-gcs-client-0.5 删除了对已弃用文件 API 的依赖,但 SDK 尚未获得将文件存储到 BlobStorage 服务所需的权限。作为下一个 SDK 版本发布之前的解决方法,您可以传递一个标志来为 Blobstore 服务配置内存支持的存储,如下所示:
dev_appserver.sh --jvm_flag=-Dblobstore.no_storage=true
这只是 dev_appserver 需要的 - 生产应用程序不会有这个问题。
从 AE 1.9.27(现已可用)开始,不再需要 jvm_flag(它应该可以正常工作)。