【问题标题】:InvocationTargetException storing files with appengine-gcs-client-0.5 dev_appserver使用 appengine-gcs-client-0.5 dev_appserver 存储文件的 InvocationTargetException
【发布时间】:2015-08-26 21:00:25
【问题描述】:

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

似乎对 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")

我需要做什么才能让它工作?

【问题讨论】:

    标签: java google-app-engine google-cloud-storage


    【解决方案1】:

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

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

    这仅对 dev_appserver 是必需的 - 生产应用程序不会有这个问题。

    【讨论】:

    • 感谢您的解决方案,我为此发疯了。
    • 好吧,这似乎是目前让它工作的唯一方法,但是一旦重新启动 de devserver,内存支持的存储文件就会关闭并且无法读取。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      相关资源
      最近更新 更多