Google drive api 有没有可能让API密钥访问Google驱动器文件,但匿名用户无法访问?

Google drive api 有没有可能让API密钥访问Google驱动器文件,但匿名用户无法访问?,google-drive-api,Google Drive Api,我们有一个公司网站,可以播放培训视频。互联网上的任何人都可以访问该网站(用户可以在家登录),但需要用户名/密码才能登录该网站观看视频。这些视频包含私人公司信息,虽然我们希望员工登录网站观看视频,但我们不希望他们下载并分发视频 虽然我们在内部服务器上托管实际的web服务器,但高清视频占用大量带宽,我们更愿意将其存储在google drive上,只需从网站链接到这些视频的HTML5播放器,因此实际数据来自google 我们网站上的HTML5播放器需要直接链接到谷歌硬盘上的原始视频文件。使用实际的谷歌

我们有一个公司网站,可以播放培训视频。互联网上的任何人都可以访问该网站(用户可以在家登录),但需要用户名/密码才能登录该网站观看视频。这些视频包含私人公司信息,虽然我们希望员工登录网站观看视频,但我们不希望他们下载并分发视频

虽然我们在内部服务器上托管实际的web服务器,但高清视频占用大量带宽,我们更愿意将其存储在google drive上,只需从网站链接到这些视频的HTML5播放器,因此实际数据来自google

我们网站上的HTML5播放器需要直接链接到谷歌硬盘上的原始视频文件。使用实际的谷歌驱动器选项,如果我们使用“可共享链接”,它会链接到谷歌页面,而不是原始数据文件。我们发现,通过创建google API密钥并使用以下形式的链接,可以链接到原始数据文件:

https://www.googleapis.com/drive/v3/files/FILE_ID?key=API_KEY&alt=media
其中FILE_ID是来自googledrive的文件ID,API_KEY是我们的API KEY

这非常有效,只要google drive中对这些视频的文件权限设置为允许访问
,任何有链接的人都可以查看该文件

我们的问题是,如果我们网站上经过身份验证的用户(员工)打开javascript源代码或浏览器的“网络”选项卡(web开发者浏览器工具),他们就可以看到这个确切的URL,下载视频并分发,让其他人无需浏览我们的网站即可观看

API密钥本身可以通过这样一种方式锁定,即只有当请求带有在referer字段中设置的特定域名时才可用,这意味着用户不能再直接使用URL(除非用户足够聪明,能够用referer字段伪造请求)。这很好,我们对此很满意,除了一个足够聪明的人可以快速找到他们的浏览器在google drive上下载视频的链接,复制文件的ID,删除API密钥部分,然后作为匿名用户下载,因为任何有链接的人都可以访问

我的问题是:有没有办法让google锁定该文件,以便使用API密钥访问它,但匿名用户无法访问


我们的最终目标是将视频上传到google drive,建立一个URL(可能包含也可能不包含作为参数的键),让我们直接访问原始视频文件,我们可以在HTML5
标记中使用它作为源代码,但如果我们网站的用户使用浏览器浏览我们的源代码并找到这个URL,他们将无法直接从谷歌访问视频。

只要视频在浏览器中呈现,就没有切实可行的方法阻止用户下载。你可以使用模糊处理方法来增加这一点的难度,但这需要付出很多努力,而且一个专注且知识渊博的用户仍然能够避开它们——这就是为什么像YouTube下载程序和Netflix下载程序这样的东西存在的原因。请参阅此答案:

只要视频在浏览器中呈现,就没有实际的方法阻止用户下载它。你可以使用模糊处理方法来增加这一点的难度,但这需要付出很多努力,而且一个专注且知识渊博的用户仍然能够避开它们——这就是为什么像YouTube下载程序和Netflix下载程序这样的东西存在的原因。请参阅此答案:

API密钥没有帮助。它的目的是实现应用程序配额,而不是提供安全性。我的建议是,根据需要制作短期复制品。话虽如此,alexwennerberg是正确的。

API密钥没有任何帮助。它的目的是实现应用程序配额,而不是提供安全性。我的建议是,根据需要制作短期复制品。话虽如此,alexwennerberg是正确的。

使用API密钥时,需要共享文件。例如,对于您的情况,如何使用服务帐户?服务帐户与所有者帐户不同。您可以将服务帐户用作其他帐户。因此,用户只能使用服务帐户检索特定文件。例如,服务帐户的一个文档是。如果这不是你想要的,我很抱歉。我们需要的是一种使用嵌入在我们网站中的URL访问原始视频文件的方法,但是如果有人足够聪明,能够挖掘代码,找到URL并将其粘贴到他们的浏览器中,这样就不会让他们下载视频。你知道服务帐户是否能帮上忙吗?对不起。我注意到,当使用文件的URL加载文件时,需要共享文件。因此,在您的情况下,我认为将Web应用部署到特定用户可能会更好。当我注意到更合适的方法时,我想告诉你。当使用API密钥时,需要共享文件。例如,对于您的情况,如何使用服务帐户?服务帐户与所有者帐户不同。您可以将服务帐户用作其他帐户。因此,用户只能使用服务帐户检索特定文件。例如,服务帐户的一个文档是。如果这不是你想要的,我很抱歉。我们需要的是一种使用嵌入在我们网站中的URL访问原始视频文件的方法,但是如果有人足够聪明,能够挖掘代码,找到URL并将其粘贴到他们的浏览器中,这样就不会让他们下载视频。你知道服务帐户是否能帮上忙吗?对不起。我注意到,当使用文件的URL加载文件时,需要共享文件。因此,在您的情况下,我认为将Web应用部署到特定用户可能会更好。当我发现更合适的方法时,我想告诉你。