php - 如何检查文件是否被删除 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");
这总是将垃圾返回为空,无论它是否被丢弃..
解决方案
我相信你的目标和你目前的情况如下。
- 您想使用 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
被放入“垃圾箱”时,$trashed
是true
. - 当文件
fileid
未放入“垃圾箱”时,$trashed
是false
.
笔记:
- 例如,您想要所有文件元数据,您可以
"fields" => "*"
使用"fields" => "trashed"
.
参考:
推荐阅读
- authentication - Active Directory SSO Authentican 导致为每个请求打开新选项卡
- spring-boot - java.lang.IllegalStateException:提交响应后无法转发问题迁移到 SpringBoot 2
- swift - 滑块值不会更新值,除非它被移动
- python - 无法在特定路径中安装 python 并获得 No module named docker
- angular - 组件中多个输入的 NgbTypeahead
- apache - Apache mod_rewrite 删除 .html 扩展名不起作用
- typescript - 用不同类型的属性分配对象的属性
- java - Netty 3 中的 channelOpen 和 channelClosed 上游事件中是否存在一对一的映射?
- python - Generic algorithm for element wise operation between hundreds of lists
- kubernetes - 在同一台服务器上运行 Kubernetes 主节点和节点(在 Kubernetes 主节点上调度 pod)