0

setParents を介して Google_DriveFile オブジェクトの親を更新し、ファイルの update を呼び出しようとしています。(そのため、ファイルを別のフォルダーに移動しようとしています。) API ドキュメント (https://developers.google.com/drive/v2/reference/files/update) から、これは可能であるように見えます。私は何か間違ったことをしているだけです。どんな助けでも大歓迎です。

ファイルの移動を除いて、すべてがうまく機能します。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);
    }
}
4

1 に答える 1

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));

ありがとう!

于 2012-12-26T20:04:09.950 に答える