Могу ли я вернуть файл из API Google Drive без предварительной записи его на мой сервер? (php) - PullRequest
0 голосов
/ 04 апреля 2020

В настоящее время у меня есть скрипт, который перебирает папку на диске Google и выполняет различные действия, одним из которых является синхронизация c файлов, загруженных / обновленных на gdrive, с файлами на сервере. Сценарий решает, что ему нужен файл, и использует следующую функцию для записи его на сервер:

function get_file($file, $service, $docroot, $area){

    $errorthrown = false;
    try {
      $getFile = $service->files->get($file->id, array('alt' => 'media'));
      $content = $getFile->getBody()->getContents();
      $handle = fopen($docroot.'file/'.$area.'/'.$file->name,"w");
      fwrite($handle, $content);
      fclose($handle);          
    } catch (\Throwable $e) {
        print "The Google Drive API threw an error, but dont worry, we'll come back for this.";
        return "error";
    }
}

Теперь я хотел бы предложить файловый менеджер на сервере, который позволяет пользователям выбирать файлы, в том числе на сервере и те, которые не являются. Есть ли способ принудительной загрузки файлов, возвращенных из API Google Drive, без первого fwrite () ing? Например, с использованием readfile () или fpassthru ()?

Я пробовал разные вещи с readfile ( ) но с Google Drive у меня есть содержимое файла, но нет пути к самому файлу.

Есть идеи?

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...