我正在开发一个web应用程序,作为与Google云存储(GCS)的接口。
我正在使用后端服务来检索我存储在GCS上的文件列表及其使用JSON API的URL,并将其返回到我的Web应用程序。然而,我真的无法通过这些URL加载文件,总是返回403禁止。
我不确定GCS身份验证在幕后是如何工作的,也不确定是否可以直接授予对网络应用程序的访问权限。我不确定如何通过超文本传输协议请求附加应用程序鉴别信息。我所知道的是,我可以通过后端服务做到这一点,但出于简单的原因,我想知道是否有可能绕过它。我尝试的一件事是将网络应用程序域(将通过超文本传输协议请求中的引用器发送)添加到ACL中,这根本不起作用。
感谢@Brandon在下面指出的。我可以授权任何有权访问该应用程序的人查看GCS的内容,因为它是一个内部应用程序,我在第一次为web应用程序提供服务时已经检查了他们的身份验证。
====
解决方案
我最终使用了5分钟后到期的signedUrl,我强烈建议使用gCloud与gcs交互(他们的python文档真的很好)。再次感谢彻底的回答!
您的web浏览器上有一个用户希望下载一个只有应用程序的服务帐户具有读取权限的对象。您有几个选择:
#4是你想要的。您的用户会要求您的应用程序提供一个文件,您的应用程序将决定是否允许他们通过您正在做的任何事情访问该文件(密码?IP检查?饼干?随便吧。)然后,您的应用程序将响应一个URL,用户可以使用该URL直接从GCS获取文件。
此URL称为"签名URL"。您的应用程序使用自己的私钥向URL添加签名,该签名指示承载可以下载哪个对象,并且该URL长期有效。为URL签名的过程有些棘手,但幸运的是,gCloud存储库有帮助函数可以生成它们。
我试图设计一个应用程序,从我的谷歌云存储帐户下载适当的声音文件。该应用程序不访问用户帐户,但我自己的帐户。 我的阅读让我相信,最合适的模式是服务账户https://code.google.com/p/google-api-java-client/wiki/OAuth2#Service_Accounts 不幸的是,开发人员决定不提供Android的例子。他们确实提供了一个很好的例子,只是简单的Jav
null
我正在使用请求将文件上传到谷歌云存储。 请求是: 我得到以下错误作为响应: 我在某处读到,我需要打开谷歌云存储JSON API。是否必须打开谷歌云存储JSON API,或者是否有其他解决方案来修复此错误?
我使用Reactjs创建一个网站并将其托管在Firebase上,并使用google cloud函数上的和设置,以处理函数。网站有一个