前期准备
开始操作前,确保您已经完成了 SDK 初始化。如果您还没有初始化 SDK,请先参考快速入门文档完成。
注意事项:
创建租户空间需要 admin 或 create_space 权限。
列出所有租户空间需要 admin 权限,否则仅列出当前访问令牌所代表的用户所创建的租户空间。
修改租户空间属性需要 admin 或 space_admin 权限(非 acl 鉴权)。
删除租户空间需要 admin 或 delete_space 权限。
创建租户空间
功能说明
CreateSpace 用于创建租户空间。可以设置空间的公有读属性、多相簿模式、允许上传的文件类型、敏感内容检测等扩展属性。使用示例
ctx := context.Background()createReq := client.NewCreateSpaceRequest()createReq.SetSpaceTag("test-tag")resp, httpRes, err := apiClient.SpaceAPI.CreateSpace(ctx, "your-library-id").AccessToken("your-access-token").UserId("user-id").CreateSpaceRequest(*createReq).Execute()if err != nil {panic(err)}fmt.Printf("Space created with ID: %s\\n", *resp.SpaceId)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 租户空间 ID,2-32 个字符,仅支持小写字母、数字和中划线(-),不指定则自动生成 | string | 否 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
createSpaceRequest | 租户空间的扩展属性 | CreateSpaceRequest | 否 |
createSpaceRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
IsPublicRead | 是否为公有读,默认 false | bool | 否 |
IsMultiAlbum | 是否为多相簿空间,默认 false | bool | 否 |
AllowPhoto | 是否允许上传照片,默认 false | bool | 否 |
AllowVideo | 是否允许上传视频,默认 false | bool | 否 |
AllowPhotoExtname | 允许上传的照片扩展名列表 | []string | 否 |
AllowVideoExtname | 允许上传的视频扩展名列表 | []string | 否 |
RecognizeSensitiveContent | 是否检测敏感内容,默认 false | bool | 否 |
SpaceTag | 空间标识,区分个人/团队空间 | string | 否 |
返回值说明
HTTP 状态码:201
创建成功,返回空间 ID。
响应字段说明
字段 | 说明 | 类型 |
spaceId | 新创建的租户空间的空间 ID | String |
列出租户空间
功能说明
ListSpace 用于列出租户空间列表信息。支持分页查询。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.SpaceAPI.ListSpace(ctx, "your-library-id").AccessToken("your-access-token").UserId("user-id").Execute()if err != nil {panic(err)}fmt.Printf("Total spaces: %d\\n", len(resp.List))for _, space := range resp.List {fmt.Printf("Space ID: %s, User: %s, Created: %s\\n",space.SpaceId, space.UserId, space.CreationTime)}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
marker | 用于顺序列出分页的标识 | string | 否 |
limit | 每页项目数限制,默认 1000,最大 1000 | int32 | 否 |
ordered | 是否启用全局有序列出(按 spaceId 升序),取值为 1 表示启用,0 或不传表示不启用;启用后 prefix 与 startName 才会生效 | int32 | 否 |
prefix | 按 spaceId 前缀过滤,仅返回 spaceId 以该前缀开头的租户空间;仅在 ordered=1 时生效 | string | 否 |
startName | 分页起始游标(不包含),仅返回 spaceId 大于 startName 的租户空间;仅在 ordered=1 时生效;当与 marker 同时传入时 marker 优先,startName 会被忽略 | string | 否 |
返回值说明
HTTP 状态码:200
获取成功。
响应字段说明
字段 | 说明 | 类型 |
list | 租户空间列表 | Array |
marker | 用于顺序列出分页的标识 | String |
查询租户空间属性
功能说明
GetSpaceExtension 用于查询租户空间的扩展属性。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.SpaceAPI.GetSpaceExtension(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").UserId("user-id").Execute()if err != nil {panic(err)}fmt.Printf("Space extension properties:\\n")if resp.HasSpaceTag() {fmt.Printf("Space tag: %s\\n", resp.GetSpaceTag())}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 空间 ID | string | 是 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
返回值说明
HTTP 状态码:200
获取成功,返回空间扩展属性(isPublicRead、allowPhoto、allowVideo 等)。
修改租户空间属性
功能说明
UpdateSpaceExtension 用于修改租户空间属性。需要 admin 或 space_admin 权限。使用示例
ctx := context.Background()updateReq := client.NewUpdateSpaceExtensionRequest()updateReq.SetIsPublicRead(true)httpRes, err := apiClient.SpaceAPI.UpdateSpaceExtension(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").UserId("user-id").UpdateSpaceExtensionRequest(*updateReq).Execute()if err != nil {panic(err)}fmt.Printf("Space extension updated successfully: %d\\n", httpRes.StatusCode)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 空间 ID | string | 是 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
updateSpaceExtensionRequest | 租户空间的扩展属性 | UpdateSpaceExtensionRequest | 否 |
updateSpaceExtensionRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
IsPublicRead | 是否为公有读 | *bool | 否 |
IsMultiAlbum | 是否为多相簿空间(媒体类型媒体库) | *bool | 否 |
AllowPhoto | 是否允许上传照片(媒体类型媒体库) | *bool | 否 |
AllowVideo | 是否允许上传视频(媒体类型媒体库) | *bool | 否 |
AllowPhotoExtname | 允许的照片扩展名(媒体类型媒体库) | []string | 否 |
AllowVideoExtname | 允许的视频扩展名(媒体类型媒体库) | []string | 否 |
AllowFileExtname | 允许的文件扩展名(非媒体类型媒体库) | []string | 否 |
RecognizeSensitiveContent | 是否检测敏感内容 | *bool | 否 |
SpaceTag | 空间标识;传入字符串更新,传入 null 清除,不传保持原值 | NullableString | 否 |
返回值说明
HTTP 状态码:204
修改成功,无响应体。
列出空间首页内容
功能说明
GetContentsView 用于列出空间首页内容,会忽略目录的层级关系,列出空间下所有文件。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.SpaceAPI.GetContentsView(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").UserId("user-id").Filter("onlyFile").Execute()if err != nil {panic(err)}fmt.Printf("Total files: %d\\n", len(resp.Contents))
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 空间 ID | string | 是 |
filter | 筛选方式:onlyDir、onlyFile | string | 是 |
marker | 用于顺序列出分页的标识 | string | 否 |
limit | 分页限制 | int32 | 否 |
orderBy | 排序字段:name(默认)、modificationTime、size、creationTime、uploadTime、localCreationTime、localModificationTime | string | 否 |
orderByType | 排序方式:asc、desc | string | 否 |
withPath | 是否返回 path,默认 false | bool | 否 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
category | 文件自定义分类 | string | 否 |
返回值说明
HTTP 状态码:200
获取成功,返回 nextMarker 和 contents 数组。
空间文件数量统计
功能说明
GetFileCountInSpace 用于空间文件数量统计。需要 admin 或 space_admin 权限。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.SpaceAPI.GetFileCountInSpace(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").Execute()if err != nil {panic(err)}fmt.Printf("File count statistics:\\n")fmt.Printf("Total files: %s\\n", resp.FileNum)fmt.Printf("Total directories: %s\\n", resp.DirNum)fmt.Printf("Recycled files: %s\\n", resp.RecycledFileNum)fmt.Printf("Recycled directories: %s\\n", resp.RecycledDirNum)fmt.Printf("History files: %s\\n", resp.HistoryFileNum)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 空间 ID | string | 是 |
accessToken | 访问令牌 | string | 否 |
返回值说明
HTTP 状态码:200
获取成功。
响应字段说明
字段 | 说明 | 类型 |
fileNum | 总文件数量,字符串格式 | String |
dirNum | 总文件夹数量,字符串格式 | String |
recycledFileNum | 回收站文件数量,字符串格式 | String |
recycledDirNum | 回收站文件夹数量,字符串格式 | String |
historyFileNum | 历史版本文件数量,字符串格式 | String |
删除租户空间
功能说明
DeleteSpace 用于删除租户空间。需要 admin 或 delete_space 权限。使用示例
ctx := context.Background()httpRes, err := apiClient.SpaceAPI.DeleteSpace(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").UserId("user-id").Execute()if err != nil {panic(err)}fmt.Printf("Space deleted successfully: %d\\n", httpRes.StatusCode)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 空间 ID | string | 是 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
force | 是否强制删除,0: 非强制(默认),1: 强制 | int32 | 否 |
返回值说明
HTTP 状态码:204
删除成功,无响应体。
查询媒体库租户空间数量
功能说明
GetLibrarySpaceCount 用于查询媒体库中的租户空间数量。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.SpaceAPI.GetLibrarySpaceCount(ctx, "your-library-id").AccessToken("your-access-token").UserId("user-id").Execute()if err != nil {panic(err)}fmt.Printf("Total spaces in library: %d\\n", resp.Total)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
返回值说明
HTTP 状态码:200
获取成功。
响应字段说明
字段 | 说明 | 类型 |
total | 租户空间数量 | Integer |
查询租户空间大小
功能说明
GetSpaceSize 用于查询租户空间大小。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.SpaceAPI.GetSpaceSize(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").UserId("user-id").Execute()if err != nil {panic(err)}fmt.Printf("Space size: %s bytes\\n", resp.Size)// 转换为 MBsizeBytes, _ := strconv.ParseInt(*resp.Size, 10, 64)sizeMB := float64(sizeBytes) / (1024 * 1024)fmt.Printf("Space size: %.2f MB\\n", sizeMB)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 空间 ID | string | 是 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
返回值说明
HTTP 状态码:200
获取成功。
响应字段说明
字段 | 说明 | 类型 |
size | 租户空间大小(单位:字节),字符串格式 | String |
设置租户空间限速
功能说明
SetSpaceTrafficLimit 用于设置租户空间的下载限速。需要 admin 或 space_admin 权限。使用示例
ctx := context.Background()// 设置下载限速为 1MB/s = 1048576 bytes/strafficLimitReq := client.NewSetSpaceTrafficLimitRequest(1048576)httpRes, err := apiClient.SpaceAPI.SetSpaceTrafficLimit(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").SetSpaceTrafficLimitRequest(*trafficLimitReq).Execute()if err != nil {panic(err)}fmt.Printf("Traffic limit set successfully: %d\\n", httpRes.StatusCode)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 空间 ID | string | 是 |
accessToken | 访问令牌 | string | 否 |
setSpaceTrafficLimitRequest | 限速设置对象 | SetSpaceTrafficLimitRequest | 是 |
setSpaceTrafficLimitRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
DownloadTrafficLimit | 空间下载限速,范围 100KB/s-100MB/s(102400 - 104857600 字节),输入 -1 表示取消限速 | int32 | 是 |
返回值说明
HTTP 状态码:204
修改成功,无响应体。