问题描述
我们希望访问客户在其 Google 云端硬盘中的文件夹以及该文件夹下的所有文件。这可以是我们从应用创建的文件夹,也可以是客户端选择的文件夹。
- 我尝试的第一种方法是从应用程序创建文件夹。 问题是我只能列出文件夹本身,但没有列出内容。 https://developers.google.com/drive/api/v3/folder
- 第二种方法是使用 Google Picker API。在那里 客户可以选择让我们访问哪些文件夹。然而我们 只能访问该文件夹,而没有任何孩子 文件夹/文件。 https://developers.google.com/picker/docs
这似乎是一个简单直接的用例。但是似乎在他们的文档中找不到解决方案,或者我可能不理解某些逻辑。一种解决方案是将权限传播到它选择或创建的文件夹中包含的所有文件……或者让选择器选择所有子项。
我倾向于继续使用推荐范围 https://www.googleapis.com/auth/drive.file 。并且该文件夹可能包含数以千计的多个级别的单个文件,因此手动选择文件不是解决方案。对此的任何想法将不胜感激,谢谢!
解决方法
针对您情况的可能解决方案...
是在 shared drive 中创建文件夹。
因此,即使添加/更新/删除了新文件,您仍然可以看到所有更新并检索所需的信息,因为您可以持续访问此文件夹。
另一种更麻烦的解决方案......
是请求用户的许可并在他们每次使用应用程序时重新授权应用程序,以便在添加新文件的情况下您可以访问它。
参考
,我尝试的第一种方法是从应用程序创建文件夹。问题是我只能列出文件夹本身,但没有列出内容。 https://developers.google.com/drive/api/v3/folder
问题可能是您授权用户的范围。如果您获得只读访问权限,则您将无法创建,您需要完全驱动器访问权限才能执行此操作。
如果您使用的是 https://www.googleapis.com/auth/drive.file,那么您应该使用它创建一个文件夹,然后在我认为应该可以工作的文件夹中创建一个文件。
第二种方法是使用 Google Picker API。在那里,客户可以选择让我们访问哪些文件夹。但是,我们只能访问该文件夹,而不能访问任何子文件夹/文件。 https://developers.google.com/picker/docs
无法请求访问单个文件夹或文件。除非您使用 https://www.googleapis.com/auth/drive.file 范围,否则只能访问您的应用程序创建的文件。