【问题标题】:Google Drive API - List files in a shared folder that I have not accessed yetGoogle Drive API - 列出我尚未访问的共享文件夹中的文件
【发布时间】:2020-06-16 17:37:19
【问题描述】:

我正在尝试自动从 Google Drive 共享文件夹下载文件。文件夹的内容每天都在变化。该文件夹将与任何知道该文件夹链接的人共享。

我的问题是查询不会返回我尚未打开的新文件,除非我在 Google Drive 中打开新文件。

folder_id = 'xxxx...xxx'
results = drive_service.files().list(q=f"parents in '{folder_id}' and trashed = false", fields="nextPageToken, files(id, name)").execute()

有没有办法列出我尚未打开的共享文件夹中的文件?

我试图否定 sharedWithMe 字段,但它不起作用。

【问题讨论】:

    标签: python google-drive-api


    【解决方案1】:

    是的,有,但您需要指定要在搜索中包含共享文件夹

    您可以通过将includeItemsFromAllDrives 和supportsAllDrives 设置为true 来做到这一点

    在python中你可以用

    folder_id = 'xxxx...xxx'
    结果 = drive_service.files().list(supportsAllDrives=True, includeItemsFromAllDrives=True, q="parents in '{folder_id}' and tramed = false", fields = "nextPageToken, files(id, name)").execute( )
    

    更新

    请注意,shared with anyone with a link 表示在您打开文件之前,它不会明确与您共享,因此不会显示为您的文件列表的一部分。如果您想更改此设置,您需要让所有者将您指定为文件夹的查看者。

    【讨论】:

    • 感谢您的回答,但我已经尝试过了,但它仍然不适合我。我不确定帐户类型是否对其有影响,但我会尝试切换到服务帐户。
    • 抱歉,我的代码中有一个小的输入错误。您是否尝试使用Try this API 检索文件?您对这些文件和文件夹拥有什么权限? folder_id 是共享驱动器上文件夹的 ID 还是驱动器本身的 ID?请注意,当文件转储到您有权访问的共享驱动器时,它与sharedWithMe 不同。仅当文件与服务帐户共享或服务帐户是共享云端硬盘的成员时,使用服务帐户才会有帮助。
    • 我使用 Try this API 进行了尝试,但我得到了相同的行为。我开始认为它旨在以这种方式运行。我已读取该文件夹及其内容的权限。我认为该文件夹已与任何知道链接的人共享。
    • 现在我明白为什么了——你说shared with anyone with a link。这意味着在您打开文件之前,它不会明确与您共享,因此不会显示为文件列表的一部分。如果您想更改此设置,您需要让所有者指定您为文件夹的查看者。
    • 哦,我现在明白了。这实际上就是我正在寻找的答案。我会接受您的回答,但请在上面的答案中包含您的最新评论。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-31
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2017-12-16
    相关资源
    最近更新 更多