Я могу загрузить файл на Google Drive с этим кодом:
//Insert a file
$file = new Google_Service_Drive_DriveFile();
$file->setName(uniqid().'.jpg');
$file->setDescription('A test document');
$file->setMimeType('image/jpeg');
$data = file_get_contents('a.jpg');
$createdFile = $service->files->create($file, array(
'data' => $data,
'mimeType' => 'image/jpeg',
'uploadType' => 'multipart'
));
Но это будет засчитано в квоту. Как отправить его в свободное хранилище, например, Google Photo?
Если вы хотите использовать Google Фото, вы должны использовать API Google Фото загружают медиа.
Замечания: Все медиафайлы, загруженные в Google Фото через API, хранятся в полном разрешении по адресу оригинальное качество. Если ваши загрузки превышают 25 МБ на пользователя, ваше приложение должно напоминать пользователю, что эти загрузки будут учитываться при хранении в их учетной записи Google.
Байты загружаются в Google с помощью запросов на загрузку. Если запрос на загрузку выполнен успешно, возвращается токен загрузки в виде необработанной текстовой строки. Для создания медиа-элементов используйте эти токены в batchCreate
вызов.
// Create a new upload request // Specify the filename that will be shown to the user in Google Photos // and the path to the file that will be uploaded // When specifying a filename, include the file extension try { $uploadToken = $photosLibraryClient->upload(file_get_contents($localFilePath), $filename); } catch (\GuzzleHttp\Exception\GuzzleException $e) { // Handle error }
Других решений пока нет …