首页 > 解决方案 > 如何检查文件是否被删除 google drive api

问题描述

我有一个问题,我使用这个客户端从我的应用程序到谷歌驱动器 api。

但问题是我无法检查文件是否trashed存在。

我在这里尝试

$client = new \Google_Client();
$client->setScopes(\Google_Service_Drive::DRIVE);
$client->setAuthConfig(app_path().'/Credentials/gDrive.json');

$service = new \Google_Service_Drive($client);
$folder = $service->files->get("fileid");

这总是将垃圾返回为空,无论它是否被丢弃..

标签: phpapigoogle-apigoogle-drive-apigoogle-api-php-client

解决方案


我相信你的目标和你目前的情况如下。

  • 您想使用 googleapis for php 检查文件是否被放入“垃圾箱”。
  • 您已经能够使用 Drive API 获取文件元数据。
  • 您正在使用 Drive API v3。

修改点:

  • 使用 Drive API v3 时,“Files:get”方法不会返回所有文件元数据。我认为你的问题的原因是这个。所以在这种情况下,需要使用fields. 在您的情况下,如果您只想检查trashed,则可以trashed用作字段。

当这反映到您的脚本中时,它变成如下。

修改后的脚本:

从:
$folder = $service->files->get("fileid");
到:
$folder = $service->files->get("fileid", array("fields" => "trashed"));
$trashed = $folder['trashed'] ? "true" : "false";
echo $trashed;
  • 当文件fileid被放入“垃圾箱”时,$trashedtrue.
  • 当文件fileid未放入“垃圾箱”时,$trashedfalse.

笔记:

  • 例如,您想要所有文件元数据,您可以"fields" => "*"使用"fields" => "trashed".

参考:


推荐阅读