帮你快速理解、总结文档立即下载

回收站管理

最近更新时间:2026-09-30 16:51:33
本文档已由 AI 辅助审校
我的收藏

前期准备

开始操作前,确保您已经完成了 SDK 初始化。如果您还没有初始化 SDK,请先参考快速入门文档完成。
注意事项:
若您使用回收站管理功能,需要具有相应空间的读权限。
恢复回收站项目需要 admin、space_admin 或 restore_recycled 权限。
永久删除回收站项目需要 admin、space_admin 或 delete_recycled 权限。
清空回收站时,回收站内的文件将首先在回收站内不可见,删除和释放空间的操作将异步执行。

列出回收站项目(marker 翻页,推荐)

RecycleList 实现查看回收站列表,使用 marker/limit 方式进行分页,推荐使用。
ctx := context.Background()

resp, httpRes, err := apiClient.RecycledAPI.RecycleList(ctx, "your-library-id", "your-space-id").
AccessToken("your-access-token").
ByMarker(1).
Limit(10).
OrderBy("removalTime").
OrderByType("desc").
UserId("user-id").
Execute()

if err != nil {
panic(err)
}

for _, item := range resp.Contents {
if item.Name != nil && item.RemainingTime != nil {
fmt.Printf("Item: %s, Remaining days: %d\\n", *item.Name, *item.RemainingTime)
}
}
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
accessToken
访问令牌
String
否
byMarker
marker 翻页标志,固定值为 1
Int32
是
marker
用于顺序列出分页的标识
String
否
limit
分页限制,取值范围 [1, 100],默认 20
Int32
否
orderBy
排序字段:name(按名称)、modificationTime(按修改时间)、size(按大小)、removalTime(按删除时间)、remainingTime(按剩余时间)
String
否
orderByType
排序方式:asc 升序,desc 降序
String
否
userId
用户身份识别
String
否
返回值说明:
HTTP 状态码:200,获取成功,返回回收站项目列表。
响应字段说明:
字段
说明
类型
nextMarker
用于顺序列出分页的标识,为空表示已翻页完毕
String
contents
回收站项目列表
Array
contents 数组元素说明:
字段
说明
类型
recycledItemId
回收站 ID
int64
originalPath
原始路径
Array
spaceId
空间 ID
String
size
文件大小,字符串格式
String
previewByDoc
是否可通过 WPS 预览
Boolean
previewByCI
是否可通过万象预览
Boolean
previewAsIcon
是否可用预览图当做 icon
Boolean
fileType
文件类型
String
name
文件名
String
type
条目类型:dir、file、image、video
String
creationTime
创建时间
String
modificationTime
修改时间
String
removalTime
删除时间
String
remainingTime
剩余天数
Integer

列出回收站项目(page 翻页,不推荐)

RecycleListByPage 使用传统分页方式查看回收站列表,不建议深翻页。
ctx := context.Background()

resp, httpRes, err := apiClient.RecycledAPI.RecycleListByPage(ctx, "your-library-id", "your-space-id").
AccessToken("your-access-token").
ByPage(1).
Page(1).
PageSize(20).
OrderBy("name").
OrderByType("asc").
UserId("user-id").
Execute()

if err != nil {
panic(err)
}

fmt.Printf("Total: %d\\n", resp.GetTotalNum())
for _, item := range resp.Contents {
if item.Name != nil && item.RemainingTime != nil {
fmt.Printf("Item: %s, Remaining days: %d\\n", *item.Name, *item.RemainingTime)
}
}
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
accessToken
访问令牌
String
否
byPage
page 翻页标志,固定值为 1
Int32
是
page
页码,默认 1
Int32
否
pageSize
每页数量,取值范围 [1, 100],默认 20
Int32
否
orderBy
排序字段:name 按名称,time 按时间
String
否
orderByType
排序方式:asc 升序,desc 降序
String
否
userId
用户身份识别
String
否
返回值说明:
HTTP 状态码:200,获取成功。
响应字段说明:
字段
说明
类型
totalNum
回收站所有文件和文件夹总数
Integer
contents
回收站项目列表
Array

查看回收站文件详情

RecycleInfo 实现获取回收站项目的详细信息。
ctx := context.Background()

resp, httpRes, err := apiClient.RecycledAPI.RecycleInfo(ctx, "your-library-id", "your-space-id", 123).
AccessToken("your-access-token").
Info(1).
Execute()

if err != nil {
panic(err)
}

fmt.Printf("File type: %s\\n", *resp.Type)
fmt.Printf("File size: %s bytes\\n", *resp.Size)
fmt.Printf("Cos URL: %s\\n", *resp.CosUrl)
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
recycledItemId
回收站项目 ID
int64
是
accessToken
访问令牌
String
否
info
获取文件详情,固定值为 1
float32
是
返回值说明:
HTTP 状态码:200,获取成功,返回文件详情(包含 cosUrl、contentType、size、crc64、metaData、labels 等字段)。

预览回收站项目

RecyclePreview 实现预览回收站中的文档、图片、视频等文件。
ctx := context.Background()

resp, httpRes, err := apiClient.RecycledAPI.RecyclePreview(ctx, "your-library-id", "your-space-id", 123).
AccessToken("your-access-token").
Preview(1).
Type_("pic").
Size(128).
Execute()

if err != nil {
panic(err)
}

fmt.Printf("Preview request completed: %d\\n", httpRes.StatusCode)
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
recycledItemId
回收站项目 ID
int64
是
accessToken
访问令牌
String
否
preview
预览标志,固定值为 1
float32
是
type_
文档预览方式,pic 以 JPG 格式预览,否则以 HTML 格式
String
否
size
图片或视频封面的缩放大小
Int32
否
scale
等比例缩放百分比
Int32
否
widthSize
缩放宽度
Int32
否
heightSize
缩放高度
Int32
否
frameNumber
gif 文件降帧的帧数
Int32
否
返回值说明:
HTTP 状态码:200,获取成功,返回预览 URL(响应 url 字段;服务端到实际预览地址的跳转由 SDK/HTTP 层处理)。

恢复指定回收站项目

RecycleRestore 实现恢复指定回收站项目。需要 admin、space_admin 或 restore_recycled 权限。
ctx := context.Background()

resp, httpRes, err := apiClient.RecycledAPI.RecycleRestore(ctx, "your-library-id", "your-space-id", 123).
AccessToken("your-access-token").
Restore(1).
ConflictResolutionStrategy("rename").
RestorePathStrategy("fallbackToRoot").
Execute()

if err != nil {
panic(err)
}

fmt.Printf("Item restored to: %v\\n", resp.Path)
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
recycledItemId
回收站项目 ID
int64
是
accessToken
访问令牌
String
否
restore
恢复标志,固定值为 1
float32
是
conflictResolutionStrategy
路径冲突处理方式:ask、rename、overwrite
String
否
restorePathStrategy
恢复路径策略:originalPath、fallbackToRoot
String
否
userId
用户身份识别
String
否
返回值说明:
HTTP 状态码:200,恢复成功,返回最终文件路径。

批量恢复回收站项目

RecycleRestoreBatch 实现批量恢复回收站项目。
ctx := context.Background()

itemIds := []int64{123, 456, 789}

resp200, resp202, resp207, httpRes, err := apiClient.RecycledAPI.RecycleRestoreBatch(ctx, "your-library-id", "your-space-id").
AccessToken("your-access-token").
Restore(1).
RecycleRestoreBatchRequest(itemIds).
RestorePathStrategy("fallbackToRoot").
Execute()

if err != nil {
panic(err)
}

switch httpRes.StatusCode {
case 200:
fmt.Printf("All items restored successfully\\n")
case 202:
fmt.Printf("Restore task accepted, taskId: %d\\n", *resp202.TaskId)
case 207:
fmt.Printf("Partial success\\n")
}
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
accessToken
访问令牌
String
否
restore
恢复标志,固定值为 1
float32
是
restorePathStrategy
恢复路径策略:originalPath、fallbackToRoot
String
否
userId
用户身份识别
String
否
recycleRestoreBatchRequest
回收站项目 ID 列表
[]Int64
是
返回值说明:
HTTP 状态码 200:同步恢复全部成功。
HTTP 状态码 202:异步方式恢复,返回 taskId。
HTTP 状态码 207:部分或全部执行失败。

永久删除指定回收站项目

RecyclePurge 实现永久删除指定回收站项目。删除后无法恢复。
ctx := context.Background()

httpRes, err := apiClient.RecycledAPI.RecyclePurge(ctx, "your-library-id", "your-space-id", 123).
AccessToken("your-access-token").
Execute()

if err != nil {
panic(err)
}

fmt.Printf("Item purged successfully: %d\\n", httpRes.StatusCode)
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
recycledItemId
回收站项目 ID
int64
是
accessToken
访问令牌
String
否
userId
用户身份识别
String
否
返回值说明:
HTTP 状态码:204,删除成功,无响应体。

批量永久删除回收站项目

RecyclePurgeBatch 实现批量永久删除回收站项目。
ctx := context.Background()

itemIds := []int64{123, 456, 789}

httpRes, err := apiClient.RecycledAPI.RecyclePurgeBatch(ctx, "your-library-id", "your-space-id").
AccessToken("your-access-token").
Delete(1).
RecyclePurgeBatchRequest(itemIds).
Execute()

if err != nil {
panic(err)
}

fmt.Printf("Items purged successfully: %d\\n", httpRes.StatusCode)
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
accessToken
访问令牌
String
否
delete
永久删除标志,固定值为 1
float32
是
userId
用户身份识别
String
否
recyclePurgeBatchRequest
回收站项目 ID 列表
[]Int64
是
返回值说明:
HTTP 状态码:204,删除成功,无响应体。

设置回收站生命周期

RecycleSetLifecycle 实现设置回收站生命周期。
ctx := context.Background()

lifecycleReq := *client.NewRecycleSetLifecycleRequest(30)

httpRes, err := apiClient.RecycledAPI.RecycleSetLifecycle(ctx, "your-library-id", "your-space-id").
AccessToken("your-access-token").
Lifecycle(1).
RecycleSetLifecycleRequest(lifecycleReq).
Execute()

if err != nil {
panic(err)
}

fmt.Printf("Lifecycle set successfully: %d\\n", httpRes.StatusCode)
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
accessToken
访问令牌
String
否
lifecycle
设置回收站生命周期标志,固定值为 1
float32
是
recycleSetLifecycleRequest
生命周期设置对象
RecycleSetLifecycleRequest
是
recycleSetLifecycleRequest 对象说明:
字段
参数描述
类型
是否必填
retentionDays
回收站保留天数,取值范围:0 < retentionDays ≤ 10000
Int32
是
返回值说明:
HTTP 状态码:204,修改成功,无响应体。

清空回收站

RecycleEmpty 实现清空回收站。回收站内的文件将首先在回收站内不可见,删除和释放空间的操作将异步执行。
ctx := context.Background()

httpRes, err := apiClient.RecycledAPI.RecycleEmpty(ctx, "your-library-id", "your-space-id").
AccessToken("your-access-token").
Execute()

if err != nil {
panic(err)
}

fmt.Printf("Recycle bin emptied successfully: %d\\n", httpRes.StatusCode)
参数说明:
参数名
参数描述
类型
是否必填
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
accessToken
访问令牌
String
否
userId
用户身份识别
String
否
返回值说明:
HTTP 状态码:204,删除成功,无响应体。