Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 是否可以让通过应用程序验证的用户看到云存储对象?_Google Cloud Platform_Google Cloud Storage_Google Iam - Fatal编程技术网

Google cloud platform 是否可以让通过应用程序验证的用户看到云存储对象?

Google cloud platform 是否可以让通过应用程序验证的用户看到云存储对象?,google-cloud-platform,google-cloud-storage,google-iam,Google Cloud Platform,Google Cloud Storage,Google Iam,目前,我的web应用程序允许最终用户使用后端生成的签名URL将图像上传到Google云存储 我还想让这些对象在上传后对这些用户可见。我能想到的最简单的解决方案是允许使用类似allAuthenticatedUsers的内容进行读取访问,但只适用于使用我的应用程序进行身份验证的用户。我还没有找到一种方法来解决这个问题,但这似乎是一个非常明显的解决方案,可以解决一个常见的问题。如果这是不可能的,我猜这是因为谷歌没有区分这个用户是如何被认证的,只是他们是 我想到的另一个解决方案是在用户首次登录后为他们创

目前,我的web应用程序允许最终用户使用后端生成的签名URL将图像上传到Google云存储

我还想让这些对象在上传后对这些用户可见。我能想到的最简单的解决方案是允许使用类似
allAuthenticatedUsers
的内容进行读取访问,但只适用于使用我的应用程序进行身份验证的用户。我还没有找到一种方法来解决这个问题,但这似乎是一个非常明显的解决方案,可以解决一个常见的问题。如果这是不可能的,我猜这是因为谷歌没有区分这个用户是如何被认证的,只是他们是


我想到的另一个解决方案是在用户首次登录后为他们创建IAM成员帐户,并仅限制对这些帐户的访问,但我希望选择阻力最小的路径。

如果您使用的是App Engine,则可以使用App Engine App Identity service。这样,您的用户将能够使用App Engine服务帐户凭据访问数据。可以找到有关配置此功能的更多信息


如果您不是这样,创建IAM服务帐户将是我可以看到的唯一选项。您可以使用。您还可以创建组并仅向组中添加受邀请的用户。然后,您可以为组成员指定角色:storage.objectViewer

如果您正在使用App Engine,您可以使用App Engine App Identity服务。这样,您的用户将能够使用App Engine服务帐户凭据访问数据。可以找到有关配置此功能的更多信息

如果您不是这样,创建IAM服务帐户将是我可以看到的唯一选项。您可以使用。您还可以创建组并仅向组中添加受邀请的用户。然后,您可以为组成员指定角色:storage.objectViewer

你可以检查一下。通过以下步骤:

  • 使用要签名的资源的路径构造
  • 创建上述请求的十六进制encodec哈希值
  • 构造要签名的字符串,该字符串包括以下元素:
  • 使用带有SHA-256的RSA签名对要签名的字符串进行签名
  • 使用以下连接构造签名URL:
  • 请检查此项。

    您可以检查此项。通过以下步骤:

  • 使用要签名的资源的路径构造
  • 创建上述请求的十六进制encodec哈希值
  • 构造要签名的字符串,该字符串包括以下元素:
  • 使用带有SHA-256的RSA签名对要签名的字符串进行签名
  • 使用以下连接构造签名URL:

  • 请检查这个。

    我给了你一个链接,让你开始。正如我所说的,如果你不懂技术,你就得工作。我将把研究工作交给你。我已经删除了我的答案。我给了你一个链接让你开始。正如我所说的,如果你不懂技术,你就得工作。我将把研究工作交给你。我已经删除了我的答案。我没有使用AppEngine,你提出的解决方案与我所想的我必须要做的非常一致。同时,我可能会添加一个代理端点,创建一次性使用或获取URL。我没有使用AppEngine,您提出的解决方案与我所想的非常一致。同时,我可能会添加一个代理端点,创建一次性使用或获取URL。感谢您的回答和链接。如上所述,我一直在考虑这种方法,但是我有点依赖于阻止第三方请求——实际上,两个阻止第三方请求——只是为了显示图像。您可以考虑允许匿名访问这些图像,这样它们就可以直接用这个路径看到:是的,这就是我在过去进行类似集成时能够做到的。不幸的是,这一次还没有开始。因此我建议实现上述场景,因为它实际上已经准备好使用,并测试它是否满足您的需要。感谢您的回答和链接。如上所述,我一直在考虑这种方法,但是我有点依赖于阻止第三方请求——实际上,两个阻止第三方请求——只是为了显示图像。您可以考虑允许匿名访问这些图像,这样它们就可以直接用这个路径看到:是的,这就是我在过去进行类似集成时能够做到的。不幸的是,这一次还没有开始,所以我建议实现上面的场景,因为它实际上已经可以使用了,并测试它是否满足您的需求。
    SIGNING_ALGORITHM: This should be GOOG4-RSA-SHA256.
    CURRENT_DATETIME: The current date and time, in the ISO 8601 basic format YYYYMMDD'T'HHMMSS'Z'.
    CREDENTIAL SCOPE: The credential scope of the request for signing the string-to-sign.
    HASHED_CANONICAL_REQUEST: The hex-encoded, SHA-256 hash of the canonical request, which you created in the previous step.
    
    https://storage.googleapis.com/ + PATH_TO_RESOURCE + "?" + CANONICAL_QUERY_STRING + "&X-Goog-Signature=" + REQUEST_SIGNATURE