使用 PHP 客户端库将大文件上传到 google 驱动器

2023-11-25

我正在尝试通过他们的 PHP 客户端库使用 Google Drive API 上传大文件。目前它失败了,因为似乎唯一可用的方法是“简单”上传方法。不幸的是,这需要您将整个文件作为数据加载,并且它达到了我的 php 内存限制。我想知道是否可能并查看如何完成的示例。我知道有一种可恢复和分块上传的方法,但没有关于如何使用它的文档。

<?php
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_DriveService.php';

$client = new Google_Client();
// Get your credentials from the APIs Console
$client->setClientId('YOUR_CLIENT_ID');
$client->setClientSecret('YOUR_CLIENT_SECRET');
$client->setRedirectUri('urn:ietf:wg:oauth:2.0:oob');
$client->setScopes(array('https://www.googleapis.com/auth/drive'));

$service = new Google_DriveService($client);

$authUrl = $client->createAuthUrl();

//Request authorization
print "Please visit:\n$authUrl\n\n";
print "Please enter the auth code:\n";
$authCode = trim(fgets(STDIN));

// Exchange authorization code for access token
$accessToken = $client->authenticate($authCode);
$client->setAccessToken($accessToken);

//Insert a file
$file = new Google_DriveFile();
$file->setTitle('My document');
$file->setDescription('A test document');
$file->setMimeType('text/plain');

$data = file_get_contents('document.txt');

$createdFile = $service->files->insert($file, array(
      'data' => $data,
      'mimeType' => 'text/plain',
    ));

print_r($createdFile);
?>

看来这个问题已经有答案了?将文件作为流读取,一次一个块,并将其添加到缓冲区/直接写入套接字:

Google Drive API - PHP 客户端库 - 将 uploadType 设置为可恢复上传

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PHP 客户端库将大文件上传到 google 驱动器 的相关文章

随机推荐

  • 在 Ruby 中,“new”和“initialize”之间的关系是什么?初始化时如何返回nil?

    我想要的是 obj Foo new 0 gt nil or false 这不起作用 class Foo def initialize val return nil if val 0 end end 我知道在 C C Java C 中 我们不
  • 将 C 与 Android ndk 一起使用

    我正在尝试开发一个 Android 项目 该项目可以从 Java 代码到本机 C 代码进行简单的调用 我参考此链接作为我的指导 http mobile tutsplus com tutorials android ndk tutorial
  • numpy 中是否有 arange/linspace 的多维版本?

    我想要一个 2d NumPy 数组 x y 的列表 其中每个 x 位于 5 4 5 4 3 5 3 5 4 4 5 5 中 y 也相同 我可以 x np arange 5 5 1 0 5 y np arange 5 5 1 0 5 然后迭代
  • 为什么我们必须在react-native中的promise链的末尾调用`.done()`?

    In the 反应本机教程它说 请注意 我们在承诺链的末尾调用 done 始终使 一定要调用done 否则抛出的任何错误都会被吞掉 fetchData function fetch REQUEST URL then response gt
  • 在Java流中,peek真的只能用于调试吗?

    我正在阅读有关 Java 流的内容 并在阅读过程中发现新的东西 我发现的新事物之一是peek 功能 我在 peek 上读到的几乎所有内容都说它应该用于调试您的 Streams 如果我有一个流 其中每个帐户都有一个用户名 密码字段以及一个登录
  • 如何应用新的 Emacs C 样式来重新格式化所有源文件?

    我想使用 emacs 的 Google 格式化功能重新格式化所有源文件 google c style el see here 如何立即将此功能应用于我的所有源文件 以便它们都按照 Google 风格正确格式化和缩进 这有几个部分 您需要想出
  • 如何制作一个在 Windows 中无法被杀死的程序?

    我们正在制作一个供公司内部使用的 Jabber 客户端 我们需要以某种方式捕获用户试图终止程序的时刻 以实际重新启动它 或者只是让用户无法终止客户端 这可能吗 我们的 Jabber 客户端将用 C 编写 我将如何实现这一目标 你所要求的意义
  • Java 中私有静态嵌套类内的访问修饰符

    我在 Java 中有一个 私有静态 嵌套类 此类中的字段和方法的访问修饰符有何意义 我已经尝试过公共和私人 对我的申请没有影响 public class MyList
  • 删除域后的尾部斜杠

    这是我的 htaccess file
  • LINQ 的通配符搜索

    我想知道是否可以使用 LINQ 进行通配符搜索 我看到 LINQ 有 Contains StartsWith EndsWith 等 如果我想要 Test if it work 之类的东西怎么办 Regards 您可以使用SqlMethods
  • 在服务器上部署一段时间后无法连接数据库

    我将我的战争文件上传到我的服务器上 它在部署后完美运行 但一段时间后它显示异常 我正在使用 struts2 和 hibernate my hibernate cfg xml is
  • GLFW 3 已初始化,但还没有?

    我正在努力使用 GLFW 3 函数 glfwCreateWindow 创建窗口 我设置了一个错误回调函数 它几乎只是打印出错误号和描述 并且根据 GLFW 库尚未初始化 即使 glfwInit 函数刚刚返回成功 这是我的代码的摘录 Erro
  • ImageView 上的边框半径和阴影

    我想在 JavaFX 中应用边框半径和阴影 在 CSS3 中它将是 box shadow rgba 0 0 0 0 8 0 0 10px border radius 3px 现在我想在 JavaFX 中实现这一点 但即使是 border r
  • 必须使用mockbean而不是自动装配

    我用的是弹簧靴2 我创建了一个基本测试 RunWith SpringJUnit4ClassRunner class public class VehicleServiceImplTest private VehiculeServiceImp
  • 了解 ARKit 中的坐标空间

    我已阅读所有有关的 Apple 指南ARKit 并观看了一个全球开发者大会视频 但我不明白坐标系如何绑定到 一个真实的世界 A device 3D 场景 相互连接 我可以添加一个对象 例如SCNPlane let stripe SCNPla
  • VBA 中的公共对象模块是什么?

    我试图在 VBA 中尽可能接近函数指针 抽象类 我有一堂课叫VerificationManager并验证几个电子表格中的一堆单元格是否匹配 根据所使用的信息和电子表格 这将以不同的方式完成 我希望能够通过使用以下命令在字符串中指定要调用的方
  • 如何从 YouTube 获取频道 ID?

    我正在尝试使用以下方法从我的频道检索数据YouTube 数据 API V3 为此 我需要我的频道 ID 我尝试从我的 YouTube 帐户中找到我的频道 ID 但各种方法都失败了 如果有人给我一个建议 我会非常高兴 这是我用来检索数据的 U
  • $是什么? Powershell 中的别名?

    今天向我展示的脚本中有这样一行 If do some stuff 我从来没有见过美元符号问号别名 之前我无法通过谷歌确定它的用途 当我在 powershell 窗口中执行它时 它通常返回 True 但偶尔返回 False 我的测试似乎表明
  • CMake:包含目录的排序(如何混合基于系统和用户的包含路径?)

    我有一个 CMake 项目 其中包含并链接两个库 例如A and B 实际上它不止两个 其中之一是增强的东西 但这在这里并不重要 两者都位于通过FindSomething cmake 正确 填充标准 CMake 变量的脚本 例如通过添加包含
  • 使用 PHP 客户端库将大文件上传到 google 驱动器

    我正在尝试通过他们的 PHP 客户端库使用 Google Drive API 上传大文件 目前它失败了 因为似乎唯一可用的方法是 简单 上传方法 不幸的是 这需要您将整个文件作为数据加载 并且它达到了我的 php 内存限制 我想知道是否可能