本文档描述网盘与相册服务的回收站功能,您可以通过PDS提供的默认客户端访问回收站,也可以参考该文档调用API实现回收站的管理。
基本概念
回收站是个人云盘或团队云盘内的一个特殊空间,文件或文件夹放入到回收站后,需要通过列举回收站的API查看,无法通过列举文件、搜索文件API查询。
回收站的文件,可以进行恢复,恢复后可以通过列举文件、搜索文件API查询。
回收站的文件,占用云盘空间容量;彻底删除文件后,会释放占用的空间容量。
以个人云盘为例:
API 调用及示例
(1)列举回收站
调用ListRecyclebin - 列举回收站接口,获取单个云盘(drive)的回收站文件列表,支持分页。返回的文件列表,以放入回收站的时间倒序排序,越近放入回收站的文件或文件夹,排序越靠前。
请求示例:
{
"drive_id":"1"
}
响应示例:
{
"items": [{
"name": "test_folder",
"type": "folder",
"status": "available",
"parent_file_id": "xxxxxx",
"drive_id": "1",
"file_id": "xxxxxx",
"domain_id": "1",
"created_at": "2021-07-12T13:08:17.571Z",
"updated_at": "2022-04-20T02:38:56.898Z",
"trashed_at": "2022-04-20T02:38:56.898Z"
}],
"next_marker": ""
}
注意:
drive_id,是个人空间或团队空间的ID。
分页获取时,请求响应中的参数next_marker是下一页起始资源标识符,可设置为下一次请求的marker参数。当一次请求的响应参数next_marker为空时,表示已经获取到最后一页。
(2)放入回收站
调用TrashFile - 放入回收站接口,将文件或文件夹放入回收站。
请求示例:
{
"drive_id":"1",
"file_id":"xxxxxx"
}
响应示例:
{
"domain_id":"1",
"drive_id":"1",
"file_id":"xxxxxx",
"async_task_id":"xxxxxx"
}
注意:
file_id,是文件ID或文件夹ID。
文件放入回收站,接口调用完成时,会同步完成操作,响应参数async_task_id为空;文件夹放入回收站,可能触发异步任务,响应参数async_task_id不为空。调用该接口完成时,如果async_task_id不为空,需要调用GetAsyncTask - 获取异步任务信息接口,根据响应信息的status字段,确认异步任务处理结果。
(3)从回收站恢复
调用RestoreFile - 恢复文件或文件夹接口,将文件或文件夹恢复到普通空间。
请求示例:
{
"drive_id":"1",
"file_id":"xxxxxx"
}
响应示例:
{
"domain_id":"1",
"drive_id":"1",
"file_id":"xxxxxx",
"async_task_id":"xxxxxx"
}
注意:
file_id,是文件ID或文件夹ID。
调用该接口完成时,如果async_task_id不为空,需要调用GetAsyncTask - 获取异步任务信息接口,根据响应信息的status字段,确认异步任务处理结果。
(4)删除回收站文件
调用DeleteFile - 删除文件或文件夹接口,彻底删除文件或文件夹。删除文件接口,既可以直接彻底删除普通空间的文件,也可以彻底删除回收站的文件。文件或文件夹被彻底删除后,无法找回,请谨慎操作。
请求示例:
{
"drive_id":"1",
"file_id":"xxxxxx"
}
响应示例:
{
"domain_id":"1",
"drive_id":"1",
"file_id":"xxxxxx",
"async_task_id":"xxxxxx"
}
注意:
file_id,是文件ID或文件夹ID。
调用该接口完成时,如果async_task_id不为空,需要调用GetAsyncTask - 获取异步任务信息接口,根据响应信息的status字段,确认异步任务处理结果。
(5)清空回收站
调用ClearRecyclebin - 清空回收站接口,会发起异步任务,彻底删除回收站内所有文件或文件夹。文件或文件夹被彻底删除后,无法找回,请谨慎操作。
请求示例:
{
"drive_id":"1"
}
响应示例:
{
"domain_id":"1",
"drive_id":"1",
"async_task_id":"xxxxxx"
}
注意:
需要以该接口返回的async_task_id,调用GetAsyncTask - 获取异步任务信息接口,根据响应信息的status字段,确认异步任务处理结果。
(6)获取异步任务信息
调用放入回收站、从回收站恢复和清空回收站等API时,如果返回了参数async_task_id且值不为空,表明产生了异步任务。调用GetAsyncTask - 获取异步任务信息接口,以参数async_task_id获取任务处理结果。
请求示例:
{
"async_task_id":"xxxxxx"
}
响应示例:
{
"async_task_id": "xxxxxx",
"status": "Succeed"
}
注意:
回收站相关的异步任务,主要关注 status 参数,表示任务状态
Failed(失败)
Running(运行中)
PartialSucceed(部分成功)
Succeed(成功)
常见问题
(1)文件夹放入回收站,搜索接口还能获取到文件夹里的文件
文件夹放入回收站,会产生异步任务,处理需要一段时间。需要查询异步任务处理完成后,搜索接口获取的结果也会更新。
(2)清空回收站,但是云盘空间容量未释放
清空回收站,云盘空间容量更新,是异步操作,处理需要一段时间。可以等待异步任务完成后,再获取云盘容量。