Не отображается созданная папка в корне Teamdrive

Я создаю папку внутри 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)' перед запросом - массив не пуст и содержит новую папку.

Информации об этой задержке в документации я не нашел. Что это такое и есть ли способ получить результат без задержек?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
98
1

Ответы 1

Хотя я не могу говорить о внутренностях Drive API, я могу представить, что любая задержка между созданием папки и папкой, запрашиваемой из Files.list(), связана с внутренней индексацией и распространением данных для общих дисков, поскольку они отличаются от обычные файлы Диска.

Обратите внимание, что такого варианта использования - Я создаю этот файл, и сразу нужно его найти - можно избежать - действие создание файла имеет возвращаемое значение, которое включает прямой дескриптор созданного файла.

Response
If successful, this method returns a Files resource in the response body.

Понятно, что они делают какую-то внутреннюю индексацию. Но почему они делают это асинхронно? Потому что, с моей точки зрения, данные о задержке не соответствуют друг другу. И почему в документации нет информации о такой индексации?

limion 18.03.2018 14:00

@limion Я не работаю в Google, поэтому не могу вам сказать, почему они не предоставляют публичной информации об этих особенностях реализации. Возможно, существуют официальные документы или аналогичные справочные документы для разработчиков по базовым протоколам, в которых содержится дополнительная информация. Что касается того, почему индексирование является асинхронным: чтобы они могли предоставить более быстрый ответ, который дает вам то, что вам нужно, чтобы использовать ссылку на файл.

tehhowch 18.03.2018 15:07

Другие вопросы по теме