列出 google 驱动器中的文件夹内容,returns 也删除了文件

Listing folder content from google drive, returns removed files too

我使用以下函数从 google 驱动器 (API V3) 获取文件夹内容(文件列表):

def get_gdrive_content(folder_id):
    ret_val = []

    page_token = None
    while True:
        response = service.files().list(q=f"parents = '{folder_id}'",
                                              fields='nextPageToken, files(id, name, mimeType)',
                                              pageToken=page_token
                                        ).execute()

        for file in response.get('files', []):
            ret_inner = {'file_name': file.get('name'), 'mime_type': file.get('mimeType'), 'file_id': file.get('id')}
            ret_val.append(ret_inner)

        page_token = response.get('nextPageToken', None)
        if page_token is None:
            break

    return ret_val

这行得通,我得到了文件列表,只是有一个问题:如果我删除了 google 驱动器上的文件,此函数仍然 returns 删除了文件。

Gdrive 上删除的文件可能会超时?我只是找不到这个:here

我在文档中搜索得不够好?或者我的代码有问题? 非常感谢任何帮助!

根据文档,您可能希望在查询中添加 thrashed = false

def get_gdrive_content(folder_id):
    ret_val = []
    page_token = None
    while True:
        response = service.files().list(
                      q=f"parents = '{folder_id}' and thrashed = false",
                      fields='nextPageToken, files(id, name, mimeType)',
                      pageToken=page_token
                   ).execute()
        for file in response.get('files', []):
            ret_inner = {
                            'file_name': file.get('name'),
                            'mime_type': file.get('mimeType'),
                            'file_id': file.get('id')
                        }
            ret_val.append(ret_inner)
        page_token = response.get('nextPageToken', None)
        if page_token is None:
            break
    return ret_val