2

GoogleDrive Objective-C SDK を使用していますが、問題が発生しています。パス -> ID マッピング構造を構築したいので、Drive にすべてのユーザー ファイルのリストを要求します。通常、これで問題なく動作します。ただし、ユーザーが非常に大量のファイルを持っている場合、サーバーは内部エラーを返します。GTLQueryDrive の maxResults プロパティをより低い数値に設定することで、これを修正できます。これを行うと、GTLDriveFileList の nextPageToken (および nextLink) プロパティが nil であることを除いて、すべてが期待どおりに機能します。ファイル情報を取得し続けるには、この nextPageToken が必要だと思います。クエリのフィールド プロパティを nil、nextPageToken を含む文字列、および nextPageToken を含まない文字列に設定しようとしました。nextPageToken プロパティは、すべての場合で nil のように見えます。足りないものはありますか?ありがとう!

4

1 に答える 1

-1

コメントチェーンに基づいて回答を追加します。

これが実験できる小さなサンプルです。

driveService.shouldFetchNextPages = YES;

GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];
query.maxResults = 5;
// queryTicket can be used to track the status of the request.
[driveService executeQuery:query
    completionHandler:^(GTLServiceTicket *ticket, GTLDriveFileList *files,
                        NSError *error) {
        if (files) {
            NSLog(@"Have response %@", files.items);
            NSLog(@"Token %@", files.nextPageToken);
            NSLog(@"Count %d", files.items.count);
        }
    }];

shouldFetchNextPagesがYESに設定されている場合、結果にはnextPageTokenが含まれません。代わりに、(maxResultsに基づいて)5つを超えるファイルがあると仮定すると、次の行に沿って何かを表示するメッセージとともに、完全なリストがログファイルに表示されます。

Executing drive.files.list required fetching 4 pages; use a query with a larger maxResults for faster results

shouldFetchNextPagesをNOに設定すると、この場合、結果は5つの結果に制限され、nextPageTokenには、結果セットの次のページを取得するための有効なトークンが含まれます。

于 2012-11-15T19:03:44.870 に答える