我使用此代码列出了使用GAE SDK和google-api-python-client的Google Drive阅读器的所有文件和文件夹。查询中的读者是应用引擎服务帐户:
page_token = None
param = {'q' : '"example@appspot.gserviceaccount.com" in readers'}
while True:
try:
page = service.files().list(**param).execute()
for each in page.get('items', []):
logging.info('File Id: %s' % each['title'])
page_token = page.get('nextPageToken')
if page_token:
param['pageToken'] = page_token
logging.info(param)
else :
break
except errors.HttpError, error:
logging.error('An error occurred: %s' %(error))
break
两页中的项目总数约为160。但是while循环永远不会停止。在“最后”页面项目后,我一直收到nextPageTokens,但下一页的项目列表为空。
可以在此处找到GAE SDK日志:https://docs.google.com/file/d/0B9-mEcXX8BPaQUJZZmVkWGxiZFk/edit?usp=sharing
UPDATE,循环停止,但......
我为页面和项目添加了一些计数器。 在135页包含165个文件夹和文件项目(前两页收到165个)之后,我收到了一个None nextPageToken。所以它终于停止了。 163列表请求(页面)不报告任何项目。
读者可以访问根目录下的单个文件夹以及此文件夹下的所有子文件夹和文件。那么发生了什么。这是一个错误吗?