我正在尝试通过setParents更新Google_DriveFile对象的父级,然后在文件上调用update。 (所以我正在尝试将文件移动到另一个文件夹。)从API文档(https://developers.google.com/drive/v2/reference/files/update)看起来这是可能的,我猜我只是做错了什么。任何帮助将不胜感激。
除了移动文件外,一切都很好。更新调用的返回与原始父项(不是新父项)的文件相同。
$files = $service->files->listFiles(array('q' => "'" . Configure::read('GoogleDrive.search_directory_id') . "' in parents"));
//debug($files); exit;
if (!empty($files->items)){
foreach ($files->items as $file){
if ($file->mimeType != 'image/jpeg'){
// move to processed, do nothing else
}else{
if (!empty($file->downloadUrl)){
$request = new Google_HttpRequest($file->downloadUrl, 'GET', null, null);
$httpRequest = Google_Client::$io->authenticatedRequest($request);
if ($httpRequest->getResponseHttpCode() == 200) {
//file_put_contents(WWW_ROOT . 'drive_downloads' . DS . strtolower($file->title), $httpRequest->getResponseBody());
echo 'Writing file: ' . strtolower($file->title);
} else {
echo 'Couldnt get this file!: ' . $file->title;
}
}
}
// let's move the file to the processed folder here...
$newParent = new Google_ParentReference(Configure::read('GoogleDrive.will_processed_directory_id'));
$file->setParents(array($newParent));
$service->files->update($file->id, $file);
}
}
答案 0 :(得分:0)
难道你不知道我提交这个问题的时候,我找到了答案。我不知道我在想什么。我想我看了很长时间。我不得不改变
$newParent = new Google_ParentReference(Configure::read('GoogleDrive.will_processed_directory_id'));
$file->setParents(array($newParent));
到
$newParent = new Google_ParentReference();
$newParent->setId(Configure::read('GoogleDrive.will_processed_directory_id'));
$file->setParents(array($newParent));
谢谢!