Загрузка большого zip-файла на диск Google с помощью SDK для накопителя приводит к ошибке

Здравствуйте, я пытаюсь загрузить большой zip-файл на диск. Я старался new Google_Http_MediaFileUpload() но это дает мне эту ошибку.

Неустранимая ошибка PHP: Uncaught Google_Exception: не удалось запустить возобновляемую загрузку (HTTP 200)

Я не знаю, почему это происходит, поэтому кто-нибудь может сказать мне, в чем может быть проблема или почему мой сценарий вызывает это исключение.

Вот мой код,

$AT = Helper::get_Settings('google_token');

$client = new Google_Client();
$client->setClientId('Client_ID');
$client->setClientSecret('Client_Secret');
$client->setScopes(array('https://www.googleapis.com/auth/drive'));

$client->setAccessToken($AT);

// Making a new drive service
$service = new Google_Service_Drive($client);

// Making directory structure into google drive
$dirs = explode('/', $dir);
$parentid = '';
foreach ($dirs as $new_dir) {
$dirSt = new Google_Service_Drive_DriveFile();
$dirSt->setName($new_dir);
$dirSt->setMimeType('application/vnd.google-apps.folder');
if ($parentid != '') {
$dirSt->setParents(array($parentid));
}
$new_file = $service->files->create($dirSt, array(
'fields' => 'id'));

$parentid = $new_file->id;
}

// Uploading Backed up files
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$file_path = wp_upload_dir()['basedir'] . '/' . $fileName . '.zip';
$fileSize = filesize($file_path);
$chunkSizeBytes = 1 * 1024 * 1024;
$mime_type = 'application/zip';

$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => $fileName,
'parents' => array($parentid)
));

$client->setDefer(true);

$request = $service->files->create($fileMetadata);

// Create a media file upload to represent our upload process.
$media = new Google_Http_MediaFileUpload($client, $request, $mime_type, $chunkSizeBytes);
$media->setFileSize($fileSize);

$status = false;
$handle = fopen($file_path, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}

$result = false;
if ($status != false) {
$result = $status;
}

fclose($handle);
$client->setDefer(false);

Теперь, почему это бросает это исключение, я застрял здесь.

1

Решение

Задача ещё не решена.

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector