я использую PHP SDK
копировать файлы в Гугл Диск, моя учетная запись может использовать неограниченное хранилище
После загрузки 300-500 файлов отображается превышение предела скорости пользователя, и я не могу загрузить его до следующего дня
{
"code": 403,
"message": "User rate limit exceeded."}
function copydrive($driveid,$folder,$newname){
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => $newname,
'parents' => array($folder)
));
$result = $GLOBALS['service']->files->copy($driveid, $fileMetadata);
return $result->id;
}
$newid = copydrive($episode['drive'],$folderid,$filename);
if($newid!=''){
$qrun2=$conn->prepare("update episode set mydrive='".$newid."' where id=".$episode['id']);
$qrun2->execute();
echo "<script language='javascript'>";
echo 'setTimeout(function(){window.location.reload(1);}, 2000);';
echo "</script>";
}
Обновить используя пакетный запрос все еще получаю ошибку
$qrun=$conn->prepare("SELECT * FROM episode WHERE drive!='' and mydrive is null limit 50");
$qrun->execute();
$episode=$qrun->fetchAll();
$batch = $service->createBatch();
$num=0;
foreach($episode as $item){
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'parents' => array('parent folder id')
));
$result = $GLOBALS['service']->files->copy($item['drive'], $fileMetadata);
$batch->add($result,'copy-'.$num);
$num++;
}
$results = $batch->execute();
$total_rs = count($results);
for($x=0;$x<$total_rs;$x++){
$qrun2=$conn->prepare("update episode set mydrive='".$results['response-copy-'.$x]->id."' where id=".$episode[$x]['id']);
$qrun2->execute();
}
В панели инструментов API запрос за 1 час составляет 344
Это происходит потому, что вы выполняете свой запрос, вероятно, с высокой скоростью. Я бы предложил:
замедление, как создание задержки между запросами.
Если вы можете выполнить Запросы дозирования тогда сделай так.
Если это применимо к вам, попробуйте использовать других пользователей для создания запроса в рамках проекта, например, для разделения запросов.
Других решений пока нет …