前期准备
开始操作前,确保您已经完成了 SDK 初始化。如果您还没有初始化 SDK,请先参考快速入门文档完成。
注意事项:
租户空间的剩余空间非实时更新,当系统负荷较高时可能会有比较大的更新延时,进而可能导致意外超出配额。
如果配置了超额自动删除选项,可能导致旧文件被删除。
创建配额
功能说明
CreateQuota 实现创建配额,用于为租户空间设置存储配额限制。支持为多个租户空间设置共享配额,并可配置超额自动删除策略。使用示例
ctx := context.Background()quotaRequest := client.CreateQuotaRequest{Spaces: []string{"your-space-id"},Capacity: client.PtrString("1099511627776"),RemoveWhenExceed: true,RemoveAfterDays: 30,RemoveNewest: client.PtrBool(false),}resp, httpRes, err := apiClient.QuotaAPI.CreateQuota(ctx, "your-library-id").AccessToken("your-access-token").UserId("user-id").CreateQuotaRequest(quotaRequest).Execute()if err != nil {panic(err)}fmt.Printf("Quota created successfully with ID: %d\\n", *resp.QuotaId)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
accessToken | 访问令牌 | String | 否 |
userId | 用户身份识别,当访问令牌对应的权限为管理员权限且申请访问令牌时的用户身份识别为空时用来临时指定用户身份 | String | 否 |
createQuotaRequest | 创建配额请求对象 | CreateQuotaRequest | 是 |
createQuotaRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
spaces | 对于多租户空间媒体库,指定配额所涵盖的租户空间,以便同时控制多个租户空间的配额,不支持传空数组;对于单租户空间,不能指定该字段 | []String | 否 |
capacity | 配额的具体值,单位为字节(Byte),为了避免大数产生的精度损失,建议该字段指定为字符串形式 | String | 否 |
removeWhenExceed | 当指定为 false 时,配额仅用于上传时判断是否有足够空间,对于已经超限的空间不执行任何删除清理操作;当指定为 true 时,创建配额将检查当前存储量,如果存储量已经超限,那么将在 removeAfterDays 天数到达后开始删除文件以保证存储量在配额之下,默认删除最早的文件,如果 removeNewest 指定为 true 则删除最新的文件 | Boolean | 是 |
removeAfterDays | 存储量超限后在进行文件删除前等待的天数 | Int32 | 是 |
removeNewest | 是否从最新的文件开始删除,默认为 false,即从最旧的文件开始删除 | Boolean | 否 |
返回值说明
HTTP 状态码:201
创建成功,返回配额 ID。
响应字段说明
字段 | 说明 | 类型 |
quotaId | 配额 ID,用于后续查询配额的具体信息、修改配额值或删除配额 | int64 |
获取租户空间配额(按空间查询)
功能说明
GetQuota 实现获取指定空间的配额信息,用于查询指定空间的配额详情。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.QuotaAPI.GetQuota(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").UserId("user-id").Execute()if err != nil {panic(err)}fmt.Printf("Quota ID: %d\\n", *resp.Id)fmt.Printf("Capacity: %s bytes\\n", *resp.Capacity)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID,如果媒体库为单租户模式,则该参数固定为连字符(-);如果媒体库为多租户模式,则必须指定该参数 | String | 是 |
accessToken | 访问令牌 | String | 否 |
userId | 用户身份识别,当访问令牌对应的权限为管理员权限且申请访问令牌时的用户身份识别为空时用来临时指定用户身份 | String | 否 |
返回值说明
HTTP 状态码:200
获取成功,返回配额信息。
响应字段说明
字段 | 说明 | 类型 |
id | 配额 ID | int64 |
capacity | 配额的具体值,单位为字节(Byte),字符串格式 | String |
获取租户空间配额(space-quota 路径)
功能说明
GetSpaceQuota 用于通过 space-quota 路径获取租户空间的配额信息,功能与 GetQuota 一致,供不同接入方式选择。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.QuotaAPI.GetSpaceQuota(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").Execute()if err != nil {panic(err)}fmt.Printf("Quota ID: %d\\n", *resp.Id)fmt.Printf("Capacity: %s bytes\\n", *resp.Capacity)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | string | 是 |
spaceId | 空间 ID,如果媒体库为单租户模式,则该参数固定为连字符(-);如果媒体库为多租户模式,则必须指定该参数 | string | 是 |
accessToken | 访问令牌 | string | 否 |
userId | 用户身份识别 | string | 否 |
返回值说明
HTTP 状态码:200,返回配额信息(id:配额 ID,int64;capacity:配额值,单位字节,字符串格式)。
获取租户配额信息
功能说明
GetQuotaInfo 实现获取租户配额信息,用于根据配额 ID 查询配额的详细信息,包括配额涵盖的空间集合。使用示例
ctx := context.Background()resp, httpRes, err := apiClient.QuotaAPI.GetQuotaInfo(ctx, "your-library-id", "602").AccessToken("your-access-token").UserId("user-id").Execute()if err != nil {panic(err)}fmt.Printf("Quota capacity: %s bytes\\n", *resp.Capacity)fmt.Printf("Associated spaces: %v\\n", resp.Spaces)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
quotaId | 配额 ID | String | 是 |
accessToken | 访问令牌 | String | 否 |
userId | 用户身份识别,当访问令牌对应的权限为管理员权限且申请访问令牌时的用户身份识别为空时用来临时指定用户身份 | String | 否 |
返回值说明
HTTP 状态码:200
获取成功,返回配额详细信息。
响应字段说明
字段 | 说明 | 类型 |
spaces | 配额所使用的空间 ID 集合 | Array |
capacity | 配额的具体值,单位为字节(Byte),字符串格式 | String |
修改配额
功能说明
UpdateQuota 实现修改配额,用于修改指定租户空间的配额设置。使用示例
ctx := context.Background()updateRequest := client.UpdateQuotaRequest{Capacity: "1099511627776",RemoveWhenExceed: client.PtrBool(true),RemoveAfterDays: client.PtrInt32(30),RemoveNewest: client.PtrBool(false),}httpRes, err := apiClient.QuotaAPI.UpdateQuota(ctx, "your-library-id", "your-space-id").AccessToken("your-access-token").UserId("user-id").UpdateQuotaRequest(updateRequest).Execute()if err != nil {panic(err)}fmt.Printf("Quota updated successfully: %d\\n", httpRes.StatusCode)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID,如果媒体库为单租户模式,则该参数固定为连字符(-);如果媒体库为多租户模式,则必须指定该参数 | String | 是 |
accessToken | 访问令牌 | String | 否 |
userId | 用户身份识别 | String | 否 |
updateQuotaRequest | 修改配额请求对象 | UpdateQuotaRequest | 是 |
updateQuotaRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
capacity | 配额的具体值,单位为字节(Byte),为了避免大数产生的精度损失,建议该字段指定为字符串形式 | String | 是 |
removeWhenExceed | 当指定为 false 时,配额仅用于上传时判断是否有足够空间,对于已经超限的空间不执行任何删除清理操作;当指定为 true 时,修改配额将检查当前存储量,如果存储量已经超限,那么将在 removeAfterDays 天数到达后开始删除文件以保证存储量在配额之下,默认删除最早的文件,如果 removeNewest 指定为 true 则删除最新的文件 | Boolean | 否 |
removeAfterDays | 存储量超限后在进行文件删除前等待的天数 | Int32 | 否 |
removeNewest | 是否从最新的文件开始删除,默认为 false,即从最旧的文件开始删除 | Boolean | 否 |
返回值说明
HTTP 状态码:204
修改成功,无响应体。
根据配额 ID 修改配额
功能说明
UpdateQuotaById 实现根据配额 ID 修改配额,用于修改指定配额的设置。使用示例
ctx := context.Background()updateRequest := client.UpdateQuotaByIdRequest{Capacity: client.PtrString("1099511627776"),RemoveWhenExceed: client.PtrBool(true),RemoveAfterDays: client.PtrInt32(30),RemoveNewest: client.PtrBool(false),}httpRes, err := apiClient.QuotaAPI.UpdateQuotaById(ctx, "your-library-id", "602").AccessToken("your-access-token").UserId("user-id").UpdateQuotaByIdRequest(updateRequest).Execute()if err != nil {panic(err)}fmt.Printf("Quota updated by ID successfully: %d\\n", httpRes.StatusCode)
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
quotaId | 配额 ID,创建配额时会返回,也可以通过【获取租户空间配额】接口查询指定租户空间所在的配额 ID | String | 是 |
accessToken | 访问令牌 | String | 否 |
userId | 用户身份识别 | String | 否 |
updateQuotaByIdRequest | 修改配额请求对象 | UpdateQuotaByIdRequest | 是 |
updateQuotaByIdRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
spaces | 对于多租户空间媒体库,修改配额所涵盖的租户空间(暂不支持独立的增加或移除),以便同时控制多个租户空间的配额,不支持传空数组,如不指定该字段则不修改配额所涵盖的租户空间;对于单租户空间,不能指定该字段 | []String | 否 |
capacity | 配额的具体值,单位为字节(Byte),为了避免大数产生的精度损失,建议该字段指定为字符串形式,如不指定则不修改配额的具体值 | String | 否 |
removeWhenExceed | 当指定为 false 时,配额仅用于上传时判断是否有足够空间,对于已经超限的空间不执行任何删除清理操作;当指定为 true 时,修改配额将检查当前存储量,如果存储量已经超限,那么将在 removeAfterDays 天数到达后开始删除文件以保证存储量在配额之下,默认删除最早的文件,如果 removeNewest 指定为 true 则删除最新的文件,默认为 false | Boolean | 否 |
removeAfterDays | 存储量超限后在进行文件删除前等待的天数 | Int32 | 否 |
removeNewest | 是否从最新的文件开始删除,默认为 false,即从最旧的文件开始删除 | Boolean | 否 |
返回值说明
HTTP 状态码:204
修改成功,无响应体。