无法在teamdrive root

时间:2018-03-16 16:04:38

标签: php google-drive-api google-api-php-client

我正在使用google-drive-sdk在teamdrive root中创建一个文件夹,但是在API调用完成后它有效但有一些延迟。如果我在创建后尝试使用新创建的文件夹的名称查询根文件夹 - 我得到一个空数组。但如果我在几秒钟之后也这样做,我会看到新项目。

$file = $service->files->create(
    $folder,
    [
        "supportsTeamDrives" => true
    ]
);
printf("Folder ID: %s\n", $file->id);

我看到文件夹ID

$params = [
    "q" => "'{$teamDriveId}' in parents and trashed = false and mimeType = 'application/vnd.google-apps.folder' and name ='$path'",
    "pageSize" => 1,
    "corpora"               => "teamDrive",
    "includeTeamDriveItems" => true,
    "supportsTeamDrives"    => true,
    "teamDriveId"           => $teamDriveId
];

$files = $service->files->listFiles($params);
$list = $files->getFiles();

var_dump($list);

空数组

但如果我这样做,那就睡觉(3)'在查询之前 - 数组不为空并包含新文件夹。

我没有在文档中找到有关此延迟的任何信息。它是什么,有没有办法让结果没有延迟?

1 个答案:

答案 0 :(得分:0)

虽然我无法与Drive API的内部对话,但我可以想象创建文件夹和可从Files.list()查询的文件夹之间的任何延迟都是由于团队的内部索引和数据传播驱动器,因为它们与常规驱动器文件不同。

请注意,这样的用例 - 我创建此文件然后立即需要找到它 - 是可以避免的 - creating the file的行为具有包含直接句柄的返回值到创建的文件。

  

<强>响应
  如果成功,此方法将在响应正文中返回Files资源。