【发布时间】:2016-12-12 23:50:42
【问题描述】:
我正在开发一个 Web 应用程序,作为与 Google Cloud Storage (GCS) 的接口。
我正在使用后端服务来检索我存储在 GCS 上的文件列表及其使用 JSON API 的 URL,并将其返回到我的 Web 应用程序。但是,我并不能真正通过那些 URL 加载文件,这些 URL 总是返回 403 禁止。
我不确定 GCS 身份验证在幕后是如何工作的,以及是否可以直接授予对 Web 应用程序的访问权限。我不确定如何通过 http 请求附加应用程序身份验证信息。我所知道的是我可以通过后端服务来做到这一点,但为了简单起见,我想知道是否有可能解决这个问题。我尝试的一件事是将Web应用程序域(将通过http请求中的引用者发送)添加到该存储桶的ACL中,这根本不起作用。
感谢@Brandon 在下面指出的内容。我可以授予任何有权访问该应用程序的人查看 GCS 的内容,因为它是一个内部应用程序,并且我在首次提供 Web 应用程序时已经检查了他们的身份验证。
====
解决方案
我最终使用了 5 分钟后过期的 signedUrl,我强烈建议使用 gcloud 与 gcs 进行交互(他们的 python document 非常好)。再次感谢您的详尽回答!
【问题讨论】:
-
您想使用谁的权限?您的应用程序自己的权限,还是您应用程序的各个用户(拥有自己的 Google 帐户)的权限?
-
感谢@Brandon。为简单起见,我想使用应用程序权限,因为它是一个内部应用程序。另外,我知道我有可能有一个后端服务(如果它们也托管在 GAE 上)请求使用 appid 进行访问。但我真的很想简单地依赖前端。
标签: google-app-engine web-applications google-cloud-storage