前期准备
开始操作前,确保您已经完成了 SDK 初始化。如果您还没有初始化 SDK,请先参考快速入门文档完成。
注意:
创建租户空间需要 admin 或 create_space 权限。
列出所有租户空间需要 admin 权限,否则仅列出当前访问令牌所代表的用户所创建的租户空间。
修改租户空间属性需要 admin 或 space_admin 权限(非 acl 鉴权)。
删除租户空间需要 admin 或 delete_space 权限。
创建租户空间
功能说明
createSpace 用于创建租户空间。可以设置空间的公有读属性、多相簿模式、允许上传的文件类型、敏感内容检测等扩展属性。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.CreateSpaceRequest;import com.tencent.cloud.smh.model.CreateSpace201Response;CreateSpaceRequest spaceBody = new CreateSpaceRequest();spaceBody.setIsPublicRead(true);spaceBody.setAllowPhoto(true);spaceBody.setAllowVideo(true);try {SpaceApi.APICreateSpaceRequest request = SpaceApi.APICreateSpaceRequest.newBuilder().libraryId("your-library-id").accessToken("your-access-token").userId("user-id").spaceId("custom-space-id").createSpaceRequest(spaceBody).build();ApiResponse<Object> apiResponse = client.space().createSpaceWithHttpInfo(request);int statusCode = apiResponse.getStatusCode();System.out.println("Status code: " + statusCode);if (statusCode == 201) {CreateSpace201Response result = (CreateSpace201Response) apiResponse.getData();System.out.println("Space created, ID: " + result.getSpaceId());}} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
userId | 用户身份识别 | String | 否 |
spaceId | 自定义租户空间 ID,名称不能以"-"开头或结尾,只支持英文小写字母和数字[a-z,0-9]、中划线"-"及其组合,长度为2~32个字符 | String | 否 |
createSpaceRequest | 租户空间的扩展属性 | CreateSpaceRequest | 否 |
createSpaceRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
isPublicRead | 是否为公有读,默认 false | Boolean | 否 |
isMultiAlbum | 是否为多相簿空间,默认 false | Boolean | 否 |
allowPhoto | 是否允许上传照片,默认 false | Boolean | 否 |
allowVideo | 是否允许上传视频,默认 false | Boolean | 否 |
allowPhotoExtname | 允许上传的照片扩展名列表 | List<String> | 否 |
allowVideoExtname | 允许上传的视频扩展名列表 | List<String> | 否 |
recognizeSensitiveContent | 是否检测敏感内容,默认 false | Boolean | 否 |
spaceTag | 空间标识,区分个人/团队空间 | String | 否 |
返回值说明
HTTP 状态码:201
创建成功,返回空间 ID。
响应字段说明
字段 | 说明 | 类型 |
spaceId | 新创建的租户空间的空间 ID | String |
列出租户空间
功能说明
listSpace 用于列出租户空间列表信息。支持分页查询。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.ListSpace200Response;try {SpaceApi.APIListSpaceRequest request = SpaceApi.APIListSpaceRequest.newBuilder().libraryId("your-library-id").accessToken("your-access-token").userId("user-id").limit(10).build();ApiResponse<Object> apiResponse = client.space().listSpaceWithHttpInfo(request);int statusCode = apiResponse.getStatusCode();System.out.println("Status code: " + statusCode);if (statusCode == 200) {ListSpace200Response result = (ListSpace200Response) apiResponse.getData();for (var space : result.getList()) {System.out.println("Space ID: " + space.getSpaceId()+ ", Created by: " + space.getUserId()+ ", Created at: " + space.getCreationTime());}}} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
userId | 用户身份识别 | String | 否 |
marker | 用于顺序列出分页的标识 | String | 否 |
limit | 每页项目数限制,默认1000,最大1000 | Integer | 否 |
ordered | 是否启用全局有序列出(按 spaceId 升序),取值为1表示启用,0或不传表示不启用;启用后 prefix 与 startName 才会生效 | Integer | 否 |
prefix | 按 spaceId 前缀过滤,仅返回 spaceId 以该前缀开头的租户空间;仅在 ordered = 1 时生效 | String | 否 |
startName | 分页起始游标(不包含),仅返回 spaceId 大于 startName 的租户空间;仅在 ordered = 1时生效;当与 marker 同时传入时 marker 优先,startName 会被忽略 | String | 否 |
返回值说明
HTTP 状态码:200
获取成功。
响应字段说明
字段 | 说明 | 类型 |
list | 租户空间列表 | List<ListSpace200ResponseListInner> |
marker | 用于顺序列出分页的标识 | String |
查询租户空间属性
功能说明
getSpaceExtension 用于查询租户空间的扩展属性。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.GetSpaceExtension200Response;try {SpaceApi.APIGetSpaceExtensionRequest request = SpaceApi.APIGetSpaceExtensionRequest.newBuilder().libraryId("your-library-id").spaceId("your-space-id").accessToken("your-access-token").userId("user-id").build();ApiResponse<Object> apiResponse = client.space().getSpaceExtensionWithHttpInfo(request);int statusCode = apiResponse.getStatusCode();System.out.println("Status code: " + statusCode);if (statusCode == 200) {GetSpaceExtension200Response result = (GetSpaceExtension200Response) apiResponse.getData();System.out.println("Public read: " + result.getIsPublicRead());System.out.println("Allow photo: " + result.getAllowPhoto());System.out.println("Allow video: " + result.getAllowVideo());System.out.println("Recognize sensitive content: " + result.getRecognizeSensitiveContent());}} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
userId | 用户身份识别 | String | 否 |
返回值说明
HTTP 状态码:200
获取成功,返回空间扩展属性(isPublicRead、allowPhoto、allowVideo、recognizeSensitiveContent 等)。
响应字段说明
字段 | 说明 | 类型 |
isPublicRead | 是否为公有读 | Boolean |
allowPhoto | 是否允许上传照片 | Boolean |
allowVideo | 是否允许上传视频 | Boolean |
recognizeSensitiveContent | 是否检测敏感内容 | Boolean |
spaceTag | 空间标识 | String |
修改租户空间属性
功能说明
updateSpaceExtension 用于修改租户空间属性。需要 admin 或 space_admin 权限。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.UpdateSpaceExtensionRequest;UpdateSpaceExtensionRequest extBody = new UpdateSpaceExtensionRequest();extBody.setIsPublicRead(true);extBody.setAllowPhoto(true);extBody.setRecognizeSensitiveContent(true);try {SpaceApi.APIUpdateSpaceExtensionRequest request = SpaceApi.APIUpdateSpaceExtensionRequest.newBuilder().libraryId("your-library-id").spaceId("your-space-id").accessToken("your-access-token").userId("user-id").updateSpaceExtensionRequest(extBody).build();ApiResponse<Object> apiResponse = client.space().updateSpaceExtensionWithHttpInfo(request);System.out.println("Status code: " + apiResponse.getStatusCode());System.out.println("Space extension updated");} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
userId | 用户身份识别 | String | 否 |
updateSpaceExtensionRequest | 租户空间的扩展属性 | UpdateSpaceExtensionRequest | 是 |
updateSpaceExtensionRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
isPublicRead | 是否为公有读 | Boolean | 否 |
allowPhoto | 是否允许上传照片(媒体类型媒体库) | Boolean | 否 |
allowVideo | 是否允许上传视频(媒体类型媒体库) | Boolean | 否 |
allowPhotoExtname | 允许的照片扩展名(媒体类型媒体库) | List<String> | 否 |
allowVideoExtname | 允许的视频扩展名(媒体类型媒体库) | List<String> | 否 |
allowFileExtname | 允许的文件扩展名(非媒体类型媒体库) | List<String> | 否 |
recognizeSensitiveContent | 是否检测敏感内容 | Boolean | 否 |
spaceTag | 空间标识;传入字符串更新,传入 null 清除,不传保持原值 | String | 否 |
返回值说明
HTTP 状态码:204
修改成功,无响应体。
列出空间首页内容
功能说明
getContentsView 用于列出空间首页内容,会忽略目录的层级关系,列出空间下所有文件。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.GetContentsView200Response;try {SpaceApi.APIGetContentsViewRequest request = SpaceApi.APIGetContentsViewRequest.newBuilder().libraryId("your-library-id").spaceId("your-space-id").accessToken("your-access-token").userId("user-id").filter("onlyFile").limit(20).withPath(true).build();ApiResponse<Object> apiResponse = client.space().getContentsViewWithHttpInfo(request);int statusCode = apiResponse.getStatusCode();System.out.println("Status code: " + statusCode);if (statusCode == 200) {GetContentsView200Response result = (GetContentsView200Response) apiResponse.getData();for (var content : result.getContents()) {System.out.println("Name: " + content.getName()+ ", Type: " + content.getType()+ ", Size: " + content.getSize());}}} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID | String | 是 |
filter | 筛选方式:onlyDir、onlyFile | String | 是 |
marker | 用于顺序列出分页的标识 | String | 否 |
limit | 分页限制 | Integer | 否 |
orderBy | 排序字段:name(默认)、modificationTime、size、creationTime、uploadTime、localCreationTime、localModificationTime | String | 否 |
orderByType | 排序方式:asc、desc | String | 否 |
withPath | 是否返回 path,默认 false | Boolean | 否 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
userId | 用户身份识别 | String | 否 |
category | 文件自定义分类 | String | 否 |
返回值说明
HTTP 状态码:200
获取成功,返回 nextMarker 和 contents 数组。
contents 数组元素字段说明
字段 | 类型 | 说明 |
name | String | 目录、相簿或文件的名称 |
path | List<String> | 文件路径,仅 withPath 为 true 时返回 |
inode | String | 文件或目录 ID |
type | String | 类型:dir(目录)、file(文件)、image(照片)、video(视频)、symlink(符号链接)、virtual(虚拟文件) |
creationTime | OffsetDateTime | 创建时间(目录、相簿)或上传时间(文件) |
modificationTime | OffsetDateTime | 修改时间(目录、相簿)或最近一次覆盖时间(文件) |
versionId | Integer | 历史版本 ID,仅操作历史版本时返回 |
contentType | String | 媒体类型 |
size | String | 文件大小,字符串格式 |
eTag | String | 文件 ETag |
crc64 | String | 文件 CRC64-ECMA182 校验值 |
metaData | Map<String, String> | 文件元数据键值对 |
previewByDoc | Boolean | 是否支持文档预览(WPS) |
previewByCI | Boolean | 是否支持数据万象预览 |
previewAsIcon | Boolean | 是否支持缩略图预览 |
fileType | String | 文件类型分类(如 excel、powerpoint 等) |
labels | List<String> | 文件或目录的简易标签 |
category | String | 文件自定义分类 |
localCreationTime | OffsetDateTime | 文件本地创建时间,仅文件返回 |
localModificationTime | OffsetDateTime | 文件本地修改时间,仅文件返回 |
空间文件数量统计
功能说明
getFileCountInSpace 用于空间文件数量统计。需要 admin 或 space_admin 权限。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.GetFileCountInSpace200Response;try {SpaceApi.APIGetFileCountInSpaceRequest request = SpaceApi.APIGetFileCountInSpaceRequest.newBuilder().libraryId("your-library-id").spaceId("your-space-id").accessToken("your-access-token").build();ApiResponse<Object> apiResponse = client.space().getFileCountInSpaceWithHttpInfo(request);int statusCode = apiResponse.getStatusCode();System.out.println("Status code: " + statusCode);if (statusCode == 200) {GetFileCountInSpace200Response result = (GetFileCountInSpace200Response) apiResponse.getData();System.out.println("Total files: " + result.getFileNum());System.out.println("Total directories: " + result.getDirNum());System.out.println("Recycled files: " + result.getRecycledFileNum());System.out.println("Recycled directories: " + result.getRecycledDirNum());System.out.println("History files: " + result.getHistoryFileNum());}} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
返回值说明
HTTP 状态码:200
获取成功。
响应字段说明
字段 | 说明 | 类型 |
fileNum | 总文件数量,字符串格式 | String |
dirNum | 总文件夹数量,字符串格式 | String |
recycledFileNum | 回收站文件数量,字符串格式 | String |
recycledDirNum | 回收站文件夹数量,字符串格式 | String |
historyFileNum | 历史版本文件数量,字符串格式 | String |
删除租户空间
功能说明
deleteSpace 用于删除租户空间。需要 admin 或 delete_space 权限。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;try {SpaceApi.APIDeleteSpaceRequest request = SpaceApi.APIDeleteSpaceRequest.newBuilder().libraryId("your-library-id").spaceId("space-to-delete").accessToken("your-access-token").userId("user-id").force(0).build();ApiResponse<Object> apiResponse = client.space().deleteSpaceWithHttpInfo(request);System.out.println("Status code: " + apiResponse.getStatusCode());System.out.println("Space deleted successfully");} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
userId | 用户身份识别 | String | 否 |
force | 是否强制删除,0: 非强制(默认),1: 强制 | Integer | 否 |
返回值说明
HTTP 状态码:204
删除成功,无响应体。
查询媒体库租户空间数量
功能说明
getLibrarySpaceCount 用于查询媒体库中的租户空间数量。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.GetLibrarySpaceCount200Response;try {SpaceApi.APIGetLibrarySpaceCountRequest request = SpaceApi.APIGetLibrarySpaceCountRequest.newBuilder().libraryId("your-library-id").accessToken("your-access-token").userId("user-id").build();ApiResponse<Object> apiResponse = client.space().getLibrarySpaceCountWithHttpInfo(request);int statusCode = apiResponse.getStatusCode();System.out.println("Status code: " + statusCode);if (statusCode == 200) {GetLibrarySpaceCount200Response result = (GetLibrarySpaceCount200Response) apiResponse.getData();System.out.println("Total spaces: " + result.getTotal());}} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
userId | 用户身份识别 | String | 否 |
返回值说明
HTTP 状态码:200
获取成功。
响应字段说明
字段 | 说明 | 类型 |
total | 租户空间数量 | Integer |
查询租户空间大小
功能说明
getSpaceSize 用于查询租户空间大小。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.GetSpaceSize200Response;try {SpaceApi.APIGetSpaceSizeRequest request = SpaceApi.APIGetSpaceSizeRequest.newBuilder().libraryId("your-library-id").spaceId("your-space-id").accessToken("your-access-token").userId("user-id").build();ApiResponse<Object> apiResponse = client.space().getSpaceSizeWithHttpInfo(request);int statusCode = apiResponse.getStatusCode();System.out.println("Status code: " + statusCode);if (statusCode == 200) {GetSpaceSize200Response result = (GetSpaceSize200Response) apiResponse.getData();System.out.println("Space size: " + result.getSize() + " bytes");}} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
userId | 用户身份识别 | String | 否 |
返回值说明
HTTP 状态码:200
获取成功。
响应字段说明
字段 | 说明 | 类型 |
size | 租户空间大小(单位:字节),字符串格式 | String |
设置租户空间限速
功能说明
setSpaceTrafficLimit 用于设置租户空间的下载限速。需要 admin 或 space_admin 权限。使用示例
import com.tencent.cloud.smh.ApiException;import com.tencent.cloud.smh.ApiResponse;import com.tencent.cloud.smh.api.SpaceApi;import com.tencent.cloud.smh.model.SetSpaceTrafficLimitRequest;SetSpaceTrafficLimitRequest limitBody = new SetSpaceTrafficLimitRequest();limitBody.setDownloadTrafficLimit(10485760); // 10MB/stry {SpaceApi.APISetSpaceTrafficLimitRequest request = SpaceApi.APISetSpaceTrafficLimitRequest.newBuilder().libraryId("your-library-id").spaceId("your-space-id").accessToken("your-access-token").setSpaceTrafficLimitRequest(limitBody).build();ApiResponse<Object> apiResponse = client.space().setSpaceTrafficLimitWithHttpInfo(request);System.out.println("Status code: " + apiResponse.getStatusCode());System.out.println("Traffic limit set successfully");} catch (ApiException e) {System.err.println("Error: " + e.getCode() + " - " + e.getMessage());}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
libraryId | 媒体库 ID | String | 是 |
spaceId | 空间 ID | String | 是 |
accessToken | 访问令牌;对于公有读媒体库或租户空间可不指定,否则需通过本参数传入或提前调用 client.withToken() 注入,二者取一 | String | 否 |
setSpaceTrafficLimitRequest | 限速设置对象 | SetSpaceTrafficLimitRequest | 是 |
setSpaceTrafficLimitRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
downloadTrafficLimit | 空间下载限速,范围 100KB/s-100MB/s(102400 - 104857600字节),输入 -1 表示取消限速 | Integer | 是 |
返回值说明
HTTP 状态码:204
修改成功,无响应体。