Ich habe die Google Drive-APIs in PHP verwendet, um Dateien von meinem Server auf Google Drive mit einem Cron-Job hochzuladen. Bis jetzt hat alles gut funktioniert.Google Drive php uploads bricht
Was ich festgestellt habe, ist, dass, wenn es eine Datei um 30mb gibt und wenn das Skript diese Datei erreicht, es bricht. Ich benutze ein Dienstkonto. Gibt es eine Grenze für die Größe des Datei-Uploads?
if(is_dir($dir)) {
$objects = scandir($dir);
$files_with_sizes = array();
foreach($objects as $item) {
if($item != "." && $item != "..") {
$files_with_sizes[$item] = filesize($dir . '/' . $item);
}
}
asort($files_with_sizes);
$folderId = insertFile($drive, "Backups_" . $_SERVER['HTTP_HOST'] . '_' . date("Y-m-d H:i:s") . "_" . time(), 'Folder for backup', null, "application/vnd.google-apps.folder", "")->getId();
insertPermission($drive, $folderId, "[email protected]", "user", "reader");
foreach ($files_with_sizes as $name => $object) {
if ($object != "." && $object != "..") {
$fileId = insertFile($drive, $name, $name, $folderId, "text/plain", $dir . '/' . $name)->getId();
}
}
}
function insertFile($service, $title, $description, $parentId, $mimeType, $filename) {
$file = new Google_Service_Drive_DriveFile();
$file->setTitle($title);
$file->setDescription($description);
$file->setMimeType($mimeType);
// Set the parent folder.
if ($parentId != null) {
$parent = new Google_Service_Drive_ParentReference();
$parent->setId($parentId);
$file->setParents(array($parent));
}
try {
if(is_file($filename)) {
$data = file_get_contents($filename);
$createdFile = $service->files->insert($file, array(
'data' => $data,
'mimeType' => $mimeType,
'uploadType' => 'multipart',
));
} else {
$createdFile = $service->files->insert($file, array(
'mimeType' => $mimeType,
));
}
// Uncomment the following line to print the File ID
// print 'File ID: %s' % $createdFile->getId();
return $createdFile;
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
}
function insertPermission($service, $fileId, $value, $type, $role) {
$newPermission = new Google_Service_Drive_Permission();
$newPermission->setValue($value);
$newPermission->setType($type);
$newPermission->setRole($role);
try {
return $service->permissions->insert($fileId, $newPermission);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
return NULL;
}
Bitte geben Sie den Code, der möglicherweise defekt ist/Probleme haben, damit wir Ihnen beim Debuggen helfen können, in den Fragen aktuellen Zustand, wir können/wollen Ihnen nicht helfen. – zanderwar
Ich denke, es hängt vom Dateityp ab, welche Größe es Docs kann ich glaube, kann etwa 50 MB zum Beispiel sein. Solange Sie den wiederaufsetzbaren Upload verwenden, sollte dies kein Problem darstellen. was @Zanderwar sagte, zeige deinen Code. – DaImTo
Könnte auch sein 'memory_limit' oder max Ausführungszeit (php.ini) – zanderwar