回收站

本文档描述网盘与相册服务的回收站功能,您可以通过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"
}

注意:

(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)清空回收站,但是云盘空间容量未释放

清空回收站,云盘空间容量更新,是异步操作,处理需要一段时间。可以等待异步任务完成后,再获取云盘容量。