当前位置: 首页 > 知识库问答 >
问题:

GoogleDriveAPIv3和PHP客户端2.0-在单个请求中下载文件内容和元数据

丁念
2023-03-14

我试图下载文件从谷歌驱动器使用PHP客户端v2.0与驱动器API V3.

是否可以在单个HTTP请求中检索文件的正文和元数据?

-

如果我没有提供'alt=media',则返回包含所有元数据但没有正文的Google\u Service\u Drive\u DriveFile

问题

是否可以在同一个请求中同时获取元数据和正文?


共有1个答案

施学
2023-03-14

试着这样做:

<?php

//先看这个:https://developers.google.com/api-client-library/php/auth/web-app

require_once __DIR__ . '/vendor/autoload.php';

//更改您的时区日期\默认\时区\设置(“太平洋/奥克兰”);

$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
$client->setIncludeGrantedScopes(true);

//将作用域更改为所需的作用域

$client->addScope(Google_Service_Drive::DRIVE_FILE, Google_Service_Drive::DRIVE_APPDATA, Google_Service_Drive::DRIVE, Google_Service_Drive::DRIVE_METADATA);
$accessToken = json_decode(file_get_contents('credentials.json'), true);
$client->setAccessToken($accessToken);

//如果令牌已过期,请刷新该令牌。谷歌在一小时后到期,这是必要的

if ($client->isAccessTokenExpired()) {
    $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
    file_put_contents('credentials.json', json_encode($client->getAccessToken()));
}

$service = new Google_Service_Drive($client);
$results = $service->files->listFiles($optParams);
$fileId = 'yourfileid;
$file = $service->files->get($fileId, array('alt' => 'media'));
file_put_contents("hello.pdf",$file->getBody());
?>
 类似资料:
  • 如何恰当地做到这一点?也许我需要配置akka调度程序?

  • 本文向大家介绍Java下http下载文件客户端和上传文件客户端实例代码,包括了Java下http下载文件客户端和上传文件客户端实例代码的使用技巧和注意事项,需要的朋友参考一下 一、下载客户端代码 上述代码只适合下载小文件,如果下载大文件则会出现  Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 错误,所以

  • 问题内容: 我需要进行API调用,以上传文件以及带有有关文件详细信息的JSON字符串。 我正在尝试使用python请求库来执行此操作: 这将引发以下错误: 如果我从请求中删除“文件”,则它可以工作。 如果我从请求中删除了“数据”,它将起作用。 如果我不将数据编码为JSON,则可以使用。 因此,我认为错误与在同一请求中发送JSON数据和文件有关。 关于如何使它工作的任何想法? 问题答案: 不要使用j

  • 问题内容: 如何在一个HTTP请求中下载多个文件?我的意思是,当您有多个附件时,选择要下载的内容,然后按下载,这样便可以自动下载它们,而不必手动单击每个附件。 我正在使用PHP作为服务器端加密。 问题答案: 它 是 可以发送一个在HTTP响应多: 通常,HTTP与任何其他媒体类型一样对待多部分消息主体:严格作为有效负载。[…] HTTP用户代理应遵循与MIME用户代理在收到多部分类型时相同或相似的

  • 客户端的HTTP/HTTPS请求。 进程:主进程​ ClientRequest是由EventEmitter来实现Writable Stream​ new ClientRequest(options) 作用:发起新的HTTP/HTTPS请求 options(Object | String) - options是String时即请求URL。 options 是Object时则按以下属性请求: meth

  • 我有一个php脚本,它将文件流式传输到客户端。 当我只需点击下载链接(例如,file.php?=id{file-id})时,下载就开始了,但所有数据都进入RAM。这样做的问题是当用户的RAM已满时,下载就会停止。我说的是AVG。100GB文件。 最快的解决办法是什么?GoogleDrive/OneDrive等如何做到?