[英]How to fetch name of all files in google drive using google drive api?
I am trying to fetch name of all the files in my google drive but the problem is that I can fetch only specific amount of file how can I remove this limitation and fetch all files here's the code provided by google on their site我正在尝试获取 google 驱动器中所有文件的名称,但问题是我只能获取特定数量的文件,如何删除此限制并获取所有文件,这是 google 在其网站上提供的代码
I am using google drive api v3我正在使用谷歌驱动器 API v3
from __future__ import print_function
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
# If modifying these scopes, delete the file token.pickle.
SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']
def main():
"""Shows basic usage of the Drive v3 API.
Prints the names and ids of the first 10 files the user has access to.
"""
creds = None
# The file token.pickle stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists('token.pickle'):
with open('token.pickle', 'rb') as token:
creds = pickle.load(token)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open('token.pickle', 'wb') as token:
pickle.dump(creds, token)
service = build('drive', 'v3', credentials=creds)
# Call the Drive v3 API
results = service.files().list(
pageSize=10, fields="nextPageToken, files(id, name)").execute()
items = results.get('files', [])
if not items:
print('No files found.')
else:
print('Files:')
for item in items:
print(u'{0} ({1})'.format(item['name'], item['id']))
if __name__ == '__main__':
main()
In this code there is a variable pageSize whose value is 10 and if I increase its value so I can fetch more files but I want to fetch all files so how can I do that.在这段代码中有一个变量 pageSize ,它的值是 10,如果我增加它的值,这样我就可以获取更多文件,但我想获取所有文件,所以我该怎么做。
Files.list has an optional paramter called pagesize Files.list有一个名为 pagesize 的可选参数
pageSize integer The maximum number of files to return per page.
pageSize integer 每页返回的最大文件数。 Partial or empty result pages are possible even before the end of the files list has been reached.
即使在到达文件列表末尾之前,部分或空的结果页面也是可能的。 Acceptable values are 1 to 1000, inclusive.
可接受的值为 1 到 1000,包括 1 到 1000。 (Default: 100)
(默认值:100)
You have set yours to pageSize=10 you should set it up to 1000 and then use the nextPageToken to select the next set of rows if there are more.您已将您的 pageSize=10 设置为 1000,然后使用 nextPageToken 选择下一组行(如果有更多行)。
I am not a python developer the following code is a guess.我不是 python 开发人员,以下代码是猜测。
page_token = saved_start_page_token;
while page_token is not None:
response = service.changes().list(pageToken=page_token,
pageSize=1000, fields="nextPageToken, files(id, name)").execute()
page_token = response.get('nextPageToken')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.