Я создаю папку внутри root teamdrive с помощью google-drive-sdk, и она работает, но с некоторой задержкой после завершения вызова API. Если я попытаюсь запросить корневую папку с именем вновь созданной папки сразу после создания - я получаю пустой массив. Но если я сделаю то же самое через пару секунд, я увижу новый элемент.
$file = $service->files->create(
$folder,
[
"supportsTeamDrives" => true
]
);
printf("Folder ID: %s\n", $file->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);
Пустой массив
Но если я делаю 'sleep (3)' перед запросом - массив не пуст и содержит новую папку.
Информации об этой задержке в документации я не нашел. Что это такое и есть ли способ получить результат без задержек?






Хотя я не могу говорить о внутренностях Drive API, я могу представить, что любая задержка между созданием папки и папкой, запрашиваемой из Files.list(), связана с внутренней индексацией и распространением данных для общих дисков, поскольку они отличаются от обычные файлы Диска.
Обратите внимание, что такого варианта использования - Я создаю этот файл, и сразу нужно его найти - можно избежать - действие создание файла имеет возвращаемое значение, которое включает прямой дескриптор созданного файла.
Response
If successful, this method returns a Files resource in the response body.
@limion Я не работаю в Google, поэтому не могу вам сказать, почему они не предоставляют публичной информации об этих особенностях реализации. Возможно, существуют официальные документы или аналогичные справочные документы для разработчиков по базовым протоколам, в которых содержится дополнительная информация. Что касается того, почему индексирование является асинхронным: чтобы они могли предоставить более быстрый ответ, который дает вам то, что вам нужно, чтобы использовать ссылку на файл.
Понятно, что они делают какую-то внутреннюю индексацию. Но почему они делают это асинхронно? Потому что, с моей точки зрения, данные о задержке не соответствуют друг другу. И почему в документации нет информации о такой индексации?