Почему Google Диск / Файлы / Список находит файлы с одного общего диска, а не с другого? - PullRequest
0 голосов
/ 22 апреля 2020

Мы работаем над инструментом, который загружает все таблицы на Google Диске и отправляет их на MySQL. Это прекрасно работает для My Drive. Теперь мы «обновились» до G Suite for Business и обнаружили эту проблему с доступом к общему диску.

Это использование служебной учетной записи. Файлы на одном общем диске указаны в списке, а файлы на другом общем диске - нет. Файлы на другом диске будут перечислены, если мы укажем corpora и driveId.

Я проверил следующие разрешения:

  • Разрешения для учетной записи службы для общих дисков одинаковы
  • Никаких специальных разрешений для промежуточных папок или файлов не установлено

Я использую Google Drives API для вывода списка файлов, подобных этому:

$this->googleClient->setScopes(\Google_Service_Drive::DRIVE_METADATA_READONLY);
$googleService = new \Google_Service_Drive($this->googleClient);
$this->throttleIfNecessary();

// Collect file list
$optParams = [
    //'corpora'=> 'domain',
    'orderBy' => 'modifiedTime',
    'pageSize' => $count, // Google default is 100, maximum is 1000
    'q' => "mimeType = 'application/vnd.google-apps.spreadsheet' and modifiedTime >= '$modifiedTime'",
    #'fields' => 'nextPageToken, files(id,modifiedTime)',
    'fields' => 'files(id,modifiedTime)',
    'supportsAllDrives' => 'true',
    'includeItemsFromAllDrives' => 'true',
    'includeTeamDriveItems' => 'true',
    'supportsTeamDrives' => 'true',
    //'corpora' => 'drive',
    //'driveId' => 'oesntuheunt' // PMT Owners Shared Drive
];
print_r($optParams);
// https://developers.google.com/drive/api/v3/reference/files/list
$results = $googleService->files->listFiles($optParams);
print_r($results);

Как мне обновить это, чтобы служебная учетная запись могла получить доступ ко всем файлам на всех общих дисках? `

...