当前位置: 首页 > 知识库问答 >
问题:

从谷歌云存储服务私有的、用户上传的媒体

贡正诚
2023-03-14

我正在评估在我的新项目中使用GCP,然而,我仍然试图弄清楚如何实现以下特性以及它将有什么样的成本。

什么是最好的策略来服务用户从GCP上传的媒体,同时让用户完全控制谁将能够访问它们?

作为一个用户,我想上传某种媒体(如:图像,视频等)以私人和安全的方式。
媒体必须由我和我授权访问的特定用户子组可见。
任何人都不能访问媒体,即使他获得了URL。

据我所知,与“访问控制”相关的特性大多是在项目和组织级别定制的。

到目前为止,最接近的功能是签名URL,但这不能满足即使您有URL也不能访问它的要求,即使它很快就到期了,也许这可能是一个很好的妥协。
这种方法的另一个问题是媒体不能在浏览器级别缓存,从长远来看,这可以节省相当多的带宽...

我想到的一个解决方案是,我可以通过GCE实例提供它,方法是在那里放置一个验证用户的应用程序,可能是通过JWT,然后在使用适当的缓存头的同时将其流回。

感谢任何愿意帮忙的人!

共有1个答案

罗翰
2023-03-14

签名URL是您想要的解决方案。

创建一个表示应用程序的服务帐户。当应用程序的用户想要上传一个对象时,向他们提供一个签名的URL以执行上传。新对象只能由您的服务帐户(和项目的其他成员)读取。

当用户想要查看一个对象时,执行您喜欢的任何检查,然后向他们提供一个签名的URL以读取该对象。如果担心URL被共享,请设置较短的过期时间。

 类似资料:
  • 我应该做什么才能成功上传图片?任何帮助都将不胜感激。 非常感谢。

  • 我们一直在使用服务,在(AWS)中,我们意外删除了一个目录,因此我们认为它应该在中,但是经过查看,尽管处于打开状态,但它并不存在。

  • 我想为app Engine中的应用程序提供存储在谷歌云存储中的静态文件。在HTML文件中,我使用了 如果登录用户的谷歌帐户有访问bucket的权限,它可以正常工作。由于应用程序可以被任何人访问谁将没有访问我的桶,在这种情况下,静态文件将不会被服务。 是否有可能使bucket中的静态文件公开可用?我将静态文件(custom.css)设置为“共享公共”(ACL设置为“public-read”),但其他

  • 我只是上传文件到谷歌云存储使用签名网址与Ajax上传。 已经完全上传了。但尝试从Bucket下载文件时,文件会像媒体文件一样损坏,否则pdf、txt文件工作正常。有什么建议请建议我谢谢。

  • 我试图从GCS读取文件。以下是我创建的方法。我在一些服务层中使用这个方法。因为这个方法中的一些调用是静态的和最终的,因为我的单元测试失败了。 以下是地面军事系统存储的代码: 我正试图为同样的问题编写Junit测试。但是文件。类是最终类,用于我收到空指针异常。 期待尽快收到你们的来信。