Загрузить файл в Teamdrives с Drive API и переполнением стека

Я хочу загрузить файлы в мой teamdrive, но это не удалось. Загрузка на мой диск работает.

Я вызываю функцию с локальным файлом, массивом с идентификатором папки в моем Teamdrive и идентификатором Team Drive.
$ service — объект Google_Service_Drive и $ client — Google_Client

Я использую опцию supportTeamDrives.

Если я попробую listFiles, Teamdrives также не существует.

Как я могу получить доступ к Teamdrives через API в PHP?

Эта версия работает сейчас:

function uploadGD($local_file, $folderid = NULL, $teamdrive = NULL)
{
global $service;
global $client;
try {

// Call the API with the media upload, defer so it doesn't immediately return.
$client->setDefer(true);
//$request = $service->files->create($file);

$optParams = array(
'fields' => 'id',
'supportsTeamDrives' => true,
);

$request = $service->files->create(new Google_Service_Drive_DriveFile(array(
"name" => basename($local_file),
"teamDriveId" => $teamdrive,
"parents" => $folderid,
"mimeType" => mime_content_type($local_file))), $optParams);

// Create a media file upload to represent our upload process.
$media = new Google_Http_MediaFileUpload(
$client,
$request,
mime_content_type($local_file),
null,
true,
1 * 1024 * 1024
);
$media->setFileSize(filesize($local_file));

// Upload the various chunks. $status will be false until the process is
// complete.
$status = false;
$handle = fopen($local_file, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}

// The final value of $status will be the data from the API for the object
// that has been uploaded.
$result = false;
if($status != false) {
$result = $status;
}

fclose($handle);
// Reset to the client to execute requests immediately in the future.
$client->setDefer(false);

return "google|" . $result["id"];
} catch (Exception $e) {
return "Fehler:".$e->getMessage();
}

}

Сообщение об ошибке показывает:

{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found: 0AHUD0ou-txfUUk9PVA.",
"locationType": "parameter",
"location": "fileId"}
],
"code": 404,
"message": "File not found: 0AHUD0ou-txfUUk9PVA."}
}

1

Решение

«Файл не найден: 0AHUD0ou-txfUUk9PVA.»,

в основном означает, что пользователь, с которым вы аутентифицируетесь, не имеет доступа к рассматриваемому файлу, поскольку не может его найти. Вы должны сделать файл files.list, чтобы увидеть, к каким файлам пользователь имеет доступ.

Если вы проходите аутентификацию с помощью учетной записи службы, вам необходимо убедиться, что учетной записи службы предоставлен доступ к учетной записи группового диска, тогда она сможет получить доступ к файлам.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]