在 Google 云端硬盘中查找文件的上一个父文件夹



假设我有文件夹A和文件夹B。File.txt存储在文件夹A中并移动到文件夹B。给定该文件,是否可以知道该文件的上一个父文件夹?似乎可以知道文件被移到了哪个文件夹,但不能知道原始文件夹。

您可以使用Google Drive Activity API,它允许您检索有关用户的Google Drive中所做更改的信息。

使用activity.query((

在驱动器活动API中发出请求

有两种方式可以请求活动:按驱动器项,或按文件夹层次结构下的所有内容。

  • itemName:该密钥的格式为";项目/ITEM_ID";。通常这是驱动器中的一个文件。如果为此键指定文件夹,它将显示文件夹本身的活动,例如创建或重命名文件夹时的活动。

  • CCD_ 2:该密钥的格式是";items/FOLDER_ID";,响应将包括该文件夹下子树中所有项目的活动。

当没有设置键时,它默认使用祖先名称";项目/根";,它将显示您Google Drive中所有项目的活动。

过滤

您可以通过在请求中构造filter字符串来限制可能在DriveActivity对象中返回的操作。

要按操作类型进行限制,请使用字段名称detail.action_detail_case和";具有";运算符(:(和一个奇异值或括号中允许的操作类型列表。示例包括:

detail.action_detail_case: RENAME
detail.action_detail_case:(CREATE UPLOAD)
-detail.action_detail_case:MOVE

这些过滤条件可以组合在单个过滤器串中。


样本请求正文:

{
"filter": "detail.action_detail_case:MOVE",
"itemName": "items/1kNGhKfVBtNHDNZPxUEzHYxxxxxx"
}
  • 筛选所有具有moveActionDetail的驱动器活动
  • 主要条件是返回具有file id: 1kNGhKfVBtNHDNZPxUEzHYxxxxxx的特定文件的活动

响应体:

这将返回一个DriveActivity对象,该对象将包含ActionDetail对象下的Move对象。您可以参考removedParents->CCD_ 8以获得关于该文件的上一个父文件夹的信息。

{
"activities": [
{
"primaryActionDetail": {
"move": {
"addedParents": [
{
"driveItem": {
"name": "items/1TrX6KcAJppWCj9GSUjSYn79Aqxxxx",
"title": "NewFolder",
.....
}
}
],
"removedParents": [
{
"driveItem": {
"name": "items/1YUrD6lUshY2IG0fIi0aFUoQRxxxx",
"title": "Untitled folder",
.....
}
}
]
}
},
......
],
"actions": [
{
......
}
],
"targets": [
{
"driveItem": {
"name": "items/1kNGhKfVBtNHDNZPxUEzHYxxxxxx",
"title": "sampledoc.json",
......
}
}
],
"timestamp": "2021-03-16T16:04:24.072Z"
}
]
}

最新更新