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