0

このコードを使用して、GAE SDK と google-api-python-client を使用する Google ドライブ リーダーのすべてのファイルとフォルダーを一覧表示します。クエリのリーダーは、App Engine サービス アカウントです。

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

アイテム数は2ページで約160アイテム。ただし、while ループは停止しません。「最後の」ページ アイテムの後、nextPageTokens を受け取り続けますが、次のページのアイテムのリストは空です。

GAE SDK のログは、https ://docs.google.com/file/d/0B9-mEcXX8BPaQUJZZmVkWGxiZFk/edit?usp=sharing にあります。

更新、ループは停止しますが...

ページとアイテムのカウンターをいくつか追加しました。165 個のフォルダーとファイル項目 (最初の 2 ページで 165 個を受信) を含む 135 ページの後、None nextPageToken を受信しました。それでやっと止まる。163 リスト リクエスト (ページ) はアイテムを報告しません。

リーダーは、ルートの下の 1 つのフォルダーと、このフォルダーの下のすべてのサブフォルダーとファイルにアクセスできます。それで、何が起こっているのですか。これはバグですか?

4

0 に答える 0