“pageSize”参数在 Google Drive api v3 中不起作用

2024-02-13

我使用 google Drive api v3 和 php。我坚持解决一个问题。我将 pageSize 设置为 1000,但我只收到 300 多个文件和 nextPageToken。如果我只有 400 个文件并将 pageSize 设置为 1000,为什么我必须使用 nextPageToken?

$drive = new Google_Service_Drive($client);

$optParams = array(
    'pageSize' => 1000,
    'fields' => "nextPageToken, files(id,name,mimeType,webContentLink,webViewLink)",
    'q' => "'" . $folderId . "' in parents and trashed = false",
    'orderBy' => 'name'
    );

$results = $drive->files->listFiles($optParams);

有多种情况会导致输出集限制为小于建议的页面大小。例如,包括permissions文件字段中的每个字段将限制为 100 个,同时包括parents每个项目将限制为 360 个。可能还有其他条件。

最重要的是,您不能可靠地依赖于使用所请求的大小设置最大输出pageSize。为了确保您获得所需的完整文件集,您需要检查并处理nextPageToken.

这是一个例子:

function GetFiles($service)
{

    $fileFields =
        'id, mimeType, name, ownedByMe, owners, parents, webContentLink';

    $options =
    [
        'pageSize' => 1000,
        'supportsAllDrives' => true,
        'fields' => "files($fileFields), nextPageToken"
    ];

    $files = [];
    $pageToken = null;
    do
    {
        try
        {
            if ($pageToken !== null)
            {
                $options['pageToken'] = $pageToken;
            }

            $response = $service->files->listFiles($options);

            $files = array_merge($files, $response->files);
            $pageToken = $response->getNextPageToken();
        }
        catch (Exception $exception)
        {
            $message = $exception->getMessage();
            echo "exception: $message\r\n";
            $pageToken = null;
        }
    } while ($pageToken !== null);

    return $files;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“pageSize”参数在 Google Drive api v3 中不起作用 的相关文章

随机推荐

  • 操作栏徽标左内边距

    操作栏在徽标左侧显示一个空格 我认为这个空间是为upindicator保留的 例如 我想给这个空间指定 20dp 的距离 我怎样才能做到这一点 我可以将图标的内边距设置为 0 但这不会消除徽标和屏幕左侧之间的空间 我尝试通过使用自定义布局来
  • SQL Server Express 2017 安装失败 [0x851A001A]

    安装 SQL Server 已经让我痛苦了好几个小时了 我无法得到任何工作 我设置了一个全新安装的 Windows Server 2016 虚拟机 并尝试安装 SQL Server Express 我按照建议将用户设置为网络服务here h
  • 为什么在未提供祖先的情况下查询不返回结果?

    为什么在未指定祖先时过滤器不起作用 无论祖先如何 它是否都应该适用于实体类型 我的用例 我已经设置了多个带有父键的实体 该键与另一个实体 主实体 相对应 以便我可以通过祖先 主实体键 获取子级 然而问题似乎是我无法再查询实体属性 除非我指定
  • Lucene 通配符匹配在化学符号上失败(?)

    使用 Hibernate 搜索注释 大部分只是 Field index Index TOKENIZED 我已经索引了一些与我的名为 Compound 的持久类相关的字段 我已经使用以下命令对所有索引字段设置了文本搜索MultiFieldQu
  • 当公式重新计算中仅特定 Excel 单元格发生更改时调用函数

    据我所知 Worksheet Calculate当工作表中任何单元格的值因公式重新计算而发生更改时调用 有没有办法让我只需要在公式重新计算中特定单元格发生更改时调用函数 要在更改特定单元格时发生某些事情 您需要在文件中嵌入相关的选择更改事件
  • 如何在 PowerShell 中正确/全局地对 UTF-8(无 BOM)文件进行分类? (到另一个文件)

    创建文件utf8 txt 确保编码为 UTF 8 无 BOM 将其内容设置为 In cmd exe type utf8 txt gt out txt 内容out txt is 在 PowerShell v4 中 cat utf8 txt g
  • 是否可以在 SAFEARRAY 中编组 ref 参数

    这是我的 C 服务器方法 public void Exec out int status string output status 3 Console WriteLine Exec 0 status output string Format
  • Android:如何通过 Http Post 将歌曲文件以及其他变量发送到服务器

    我要通过 HttpPost 向服务器发送歌曲文件 目前我正在使用此代码将数据发送到服务器 HttpPost postRequest new HttpPost try List
  • 定义 WCF 服务的 SLA

    我必须对一堆相互依赖的服务进行性能 负载测试 它们都使用 net tcp 并且大多数使用双工合约和内部队列 使用 lock syncRoot 手卷 POCO 队列类 if queue Empty Thread Wait 这是我想出的方法 确
  • 出现错误:尝试上传多个文件时出现意外字段

    如果我使用 multer 自述文件中的示例 我可以毫无问题地上传单个文件 但是 当我使用相同的示例时 我无法对多个文件执行此操作 我尝试使用常规 错误 意外的字段 在 makeError 处 Users mroker node projec
  • C++ 数组中每个 bool 1 位

    bool fp 81 根据我的理解 fp 应该使用 ceil 81 8 字节 因为它是连续的 我对么 我怎样才能证明这一点 不 缓冲区的大小是实现定义的 根据标准的引用 5 3 3 1 sizeof 运算符产生其操作数的对象表示中的字节数
  • 在java中删除字符串末尾的空格[重复]

    这个问题在这里已经有答案了 可能的重复 从 Java 字符串中去除前导和尾随空格 https stackoverflow com questions 6652687 strip leading and trailing spaces fro
  • Git Shell:我们如何从未跟踪的文件中删除特定文件

    我希望使用 shell 命令从 git 中未跟踪的文件中删除特定文件 但正如我所搜索的 只有一个解决方案 f force d directories too x remove ignored files too 让我们将文件视为gitign
  • 有 Firestore 安全规则的模拟器吗?

    我正在寻找一种有效测试新规则集的方法 我想在决定从实时数据库切换到 Firestore 之前测试规则 请提供解决方案或说明是否有任何正在进行的工作 2018 05 26 更新 现在 Firestore 安全规则模拟器已内置于Firebase
  • 如何在 SSISDB 中将可执行错误公开为消息

    我们当前正在从作为每晚批处理作业的一部分运行的 SSIS 执行进程任务调用使用 python 构建的可执行文件 这一切都工作正常 但是当可执行文件失败时 只会引发非常基本的通用错误消息 而不会引用真正的底层错误 当通过命令行运行可执行文件时
  • 使用计算的时间戳设置“VALID UNTIL”值

    我想创建用户或更改密码 并使用当前时间计算的时间戳 例子 CREATE USER user WITH PASSWORD password12345678 VALID UNTIL NOW interval 1 month 当然它是无效的 错误
  • 创建触发器以将列值插入到同一表的其他列 SQL Server 2005

    如何创建触发器以在表中新插入行的同一表的另一列的值相同的列中插入值 假设我有如下表 ColumnA ColumnB 我希望在行插入表或列值更新后立即将列值插入到 ColumnA 中 但反之亦然 即将columnA 值插入columnB 下面
  • 如何使用docker在微服务架构中传送日志?

    Heroku 在其中描述了日志十二因素应用程序清单 http 12factor net 作为简单的事件流 日志是从所有正在运行的进程和支持服务的输出流收集的聚合的 按时间排序的事件流 原始形式的日志通常是一种文本格式 每行一个事件 尽管异常
  • Heroku 上使用 PostgreSQL 的多租户 Rails 3 应用程序

    我在 Heroku 上有一个多租户应用程序 多个彼此一无所知的帐户 并且我不确定如何最好地构建我的数据库 Postgres 的架构看起来棒极了 http blog jerodsanto net 2011 07 building multi
  • “pageSize”参数在 Google Drive api v3 中不起作用

    我使用 google Drive api v3 和 php 我坚持解决一个问题 我将 pageSize 设置为 1000 但我只收到 300 多个文件和 nextPageToken 如果我只有 400 个文件并将 pageSize 设置为