Google cloud platform 云CDN签名url与云存储签名url?
云存储已签名url文档: 云CDN已签名url文档: 他们之间有什么区别?我不知道该用哪一个 我的情况如下: 我想将我的bucket和objects从public改为notpublic,这意味着我将从权限中删除Google cloud platform 云CDN签名url与云存储签名url?,google-cloud-platform,google-cloud-storage,Google Cloud Platform,Google Cloud Storage,云存储已签名url文档: 云CDN已签名url文档: 他们之间有什么区别?我不知道该用哪一个 我的情况如下: 我想将我的bucket和objects从public改为notpublic,这意味着我将从权限中删除alluser成员 我正在寻找一种方法,使我的应用程序的用户可以通过某种身份验证访问对象(图像、媒体)。否则,internet上的所有用户都将访问我的存储桶和对象。用户不需要谷歌账户,所以我认为IAM和ACL不是正确的方式 我不确定云存储签名url是否正确。还有一个问题是,我已经在我的数据
alluser
成员
我正在寻找一种方法,使我的应用程序的用户可以通过某种身份验证访问对象(图像、媒体)。否则,internet上的所有用户都将访问我的存储桶和对象。用户不需要谷歌账户,所以我认为IAM
和ACL
不是正确的方式
我不确定云存储签名url是否正确。还有一个问题是,我已经在我的数据库中使用云存储对象public url存储了很多url,如下所示:
https://storage.googleapis.com/ez2on/1536250853638-NN.jpg
当客户端(前端)尝试访问此数据时,我应该如何在后端为这些旧数据生成签名url
感谢您的建议。关于签名URL,它们在内部的工作原理大致相同,并且或多或少以相同的方式生成URL。云存储有一个内置的CDN,所以使用云存储签名URL就足够了 使用已签名的URL,您不需要将用户列入白名单,您只需向他们发送URL,他们可以在有限的时间内访问该URL 对于您的用例,签名URL可能不是最好的选择,因为它们的生命周期有限,因此我建议您的用户使用应用程序自己的逻辑(而不是IAM)登录到您的应用程序,或者在不登录的情况下访问应用程序(如果不需要登录),然后让应用程序通过服务帐户(IAM)处理用户对云存储对象的请求:
用户
(非谷歌/谷歌)登录到应用
(应用登录,非IAM)用户
请求由应用程序
提供的对象,但不包含内部数据(bucket的路径等)app
使用自己的服务帐户(IAM)请求对象到云存储
云存储
将对象传递给应用,应用传递给用户您可以设置服务帐户或。谢谢。我很困惑,我用一个服务帐户在后端获取对象,如何将对象传递到前端,一个对象url?我想我应该把对象名保存到数据库中,而不是整个url。当我向前端发送数据时,前端应该向我的后端发送使用这些对象名称的对象URL请求。我说的对吗?您可以直接将其传递到前端,例如在base64中,使用print()为其提供服务。最好不要将对象URL传递给前端。最理想的方法是将对象的路径保存到数据库,而不是保存整个URL,并且在请求对象时,将基本URL(带有bucket的名称)与对象的路径连接起来。我不认为你在最后一个问题上是对的:当向前端发送数据时,它应该发送对对象及其相对路径的请求,后端将它们与基本URL连接起来,并请求它们到云存储。OK。我不想将base64编码的图像传递到前端,因为它的大小。即使我的后端使用服务帐户请求对象的整个url。但是桶和对象不是公共的。我认为前端会得到如下url:
https://storage.googleapis.com/ez2on/1536250853638-NN.jpg
从我的后端根据API,它仍然没有访问此对象的权限。我的后端有使用服务帐户的权限,而我的前端没有。这会阻止我。然后使用签名的URL,后端生成它们并将它们传递给前端,通常保持bucket私有。我认为从云存储发送也比从应用程序引擎发送便宜。例如: