【发布时间】:2020-12-28 08:38:50
【问题描述】:
我正在编写一个下载公开共享的 Google 云端硬盘文件的应用程序。我的应用程序已经知道它需要下载的文件的 ID。以下是我可以做到这一点的三种可能的方法,但没有一种是令人满意的:
1.) 使用 url https://drive.google.com/uc?id=<fileID>&export=download 下载文件是可行的,但会受到严格的速率限制,因为请求是在未经身份验证的情况下发送的。
2.) 使用https://www.googleapis.com/auth/drive.file 身份验证下载文件不起作用。这是因为documentation 表示它只提供对“应用程序创建或打开的文件”的访问。
3.) 使用https://www.googleapis.com/auth/drive 身份验证下载文件有效(无需对“drive.file”案例进行任何其他代码修改)。由于需要对使用此范围的应用程序进行安全评估,因此我无法使用此选项。
前进的唯一方法似乎是使用“drive.file”身份验证,这些文件由应用程序打开。我该怎么做?我认为Picker API 是从应用程序内部执行此操作的预期方式,但我看不到支持按特定文件 ID 过滤,我更喜欢不需要用户输入的解决方案,尤其是因为选项(1) 和 (3) 不需要用户输入。
(作为旁注,此安全策略背后的逻辑对我来说没有意义。如果(2)由于安全/身份验证问题而不可能,那么(1)应该是不可能的。如果(2 ) 由于速率限制问题是不可能的,那么 (3) 应该是不可能的。有人告诉我这是预期的行为。)
【问题讨论】:
标签: google-api google-drive-api google-oauth google-authentication google-picker