列出 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
我使用以下函数从 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