我们正在构建一个应用程序,允许用户连接他们的云存储(在本例中为 gDrive(并从我们的应用程序上传文件,但是他们也可以断开与它的连接,也许可以连接到另一个。
用例可能是:
用户连接到 gDrive(应用程序创建文件夹并上传文件(> 稍后用户会断开云端硬盘应用内>的连接 稍后的用户重新连接
问题是我们随后想要抓取这个以前创建的文件夹并进行更改,问题是,为了让用户重新连接,他们必须重新授权,设置一个新令牌,因此我们不再有权访问该文件夹,而是我们的应用程序自动创建一个具有相同名称的新文件夹 - 显然这不是我们想要的。
我们能想到的唯一解决方案是不重新授权断开连接/连接或增加oauth的范围并搜索文件夹。
我们将来将使用rClone之类的东西,但现在我们专注于几个主要的云服务。
还有其他解决方案吗?
- 您的应用使用的是 drive.file 范围,该范围允许它访问由应用创建或打开的文件。
- 用户通常会断开与应用程序的连接,从而有效地取消其授权。因此,应用无权访问上次用户连接到应用时创建的文件夹。
drive.file
范围的描述非常清楚:
对应用创建或打开的文件的每文件访问权限。文件授权基于每个用户授予,并在用户取消对应用的授权时撤销。
因此,不幸的是,允许应用程序访问以前创建的文件夹的唯一两种方法是您已经草绘的文件夹:
- 使用提供更广泛访问权限的范围:在这种情况下,范围可能应该是
https://www.googleapis.com/auth/drive
,因为据我了解,该应用程序需要写入访问权限。 - 更改应用的工作流程,以便用户不会取消对应用的授权。
关于更广泛范围的使用,以下功能请求(显然最近被内化(可以在实施时提供可接受的解决方法:
- FR:驱动器 授权应用程序时限制对文件夹的访问
我建议您为引用的问题加注星标,跟踪其发展并帮助确定其优先级。