Laden Sie große Dateien mit PHP Client Library auf Google Drive hoch
Ich versuche, die Google Drive-API über die PHP-Client-Bibliothek zu verwenden, um eine große Datei hochzuladen. Derzeit schlägt dies fehl, da die einzige anscheinend verfügbare Methode die "einfache" Upload-Methode ist. Leider müssen Sie dazu die gesamte Datei als Daten laden und es kommt zu einer Überschreitung meines PHP-Speicherlimits. Ich würde gerne wissen, ob es möglich ist und ein Beispiel dafür sehen, wie es gemacht wird. Ich weiß, dass es eine Methode für fortsetzbare und unterbrochene Uploads gibt, aber es gibt keine Dokumentation zur Verwendung.
<?php
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_DriveService.php';
$client = new Google_Client();
// Get your credentials from the APIs Console
$client->setClientId('YOUR_CLIENT_ID');
$client->setClientSecret('YOUR_CLIENT_SECRET');
$client->setRedirectUri('urn:ietf:wg:oauth:2.0:oob');
$client->setScopes(array('https://www.googleapis.com/auth/drive'));
$service = new Google_DriveService($client);
$authUrl = $client->createAuthUrl();
//Request authorization
print "Please visit:\n$authUrl\n\n";
print "Please enter the auth code:\n";
$authCode = trim(fgets(STDIN));
// Exchange authorization code for access token
$accessToken = $client->authenticate($authCode);
$client->setAccessToken($accessToken);
//Insert a file
$file = new Google_DriveFile();
$file->setTitle('My document');
$file->setDescription('A test document');
$file->setMimeType('text/plain');
$data = file_get_contents('document.txt');
$createdFile = $service->files->insert($file, array(
'data' => $data,
'mimeType' => 'text/plain',
));
print_r($createdFile);
?>