如何仅在通过我的域访问资源时授予访问权限?

How can I grant access only if resource is accessed through my domain?

我有一堆视频,都上传到Wistia。在 Wistia 上,我已经为我的域设置了访问权限,因此它们只会在从我的域中获取视频时播放。

如果有人使用查看源代码并复制视频 URL 并将其粘贴到单独的浏览器中 window,他们会收到“访问被拒绝”消息。

我正在考虑将我的视频移动到 Google 云存储。所以,我的问题是:

  1. Google云是否提供类似的域限制功能?
  2. 我该如何设置?现在,我创建了一个临时存储桶并上传了一个视频并授予它 public 访问权限。然后我复制了MP4文件的public link并添加到我的网站,它显然可以播放,但是任何付费会员都可以使用查看源,复制MP4 link并上传到其他流媒体服务供大家观看。

编辑 有没有办法以编程方式执行此操作 - 就像我的网站在 PHP - 所以类似的东西 - 将存储桶保持为受限访问,然后通过 PHP - 传递一些密钥并检索视频文件.不确定这样的事情是否可能。

谢谢

我不相信 Google Cloud Storage 中有与您在 Wistia 中使用的访问控制机制相同的访问控制机制。

在 GCS 中有多种方法可以限制对象访问(参见 https://cloud.google.com/storage/docs/access-control),但其中 none 是基于请求的来源。唯一可以解决您的问题的方法是使用 Signed URLs。基本上,用户会访问您的站点,但您的应用程序不会向他们提供他们将要使用的对象的 "real" URL,而是检索一个特殊的 URL,即时间-有限的。可以设置有效期。

但是如果您担心的是有人复制您的视频,他们可能仍然可以看到 URL 某个地方并立即从那里复制数据,所以我认为这不是真的解决你的问题。

抱歉,我不能提供更多帮助。