package com.qcloud.cos; import java.io.InputStream; import com.qcloud.cos.request.CreateFolderRequest; import com.qcloud.cos.request.DelFileRequest; import com.qcloud.cos.request.DelFolderRequest; import com.qcloud.cos.request.GetFileInputStreamRequest; import com.qcloud.cos.request.GetFileLocalRequest; import com.qcloud.cos.request.ListFolderRequest; import com.qcloud.cos.request.MoveFileRequest; import com.qcloud.cos.request.StatFileRequest; import com.qcloud.cos.request.StatFolderRequest; import com.qcloud.cos.request.UpdateFileRequest; import com.qcloud.cos.request.UpdateFolderRequest; import com.qcloud.cos.request.UploadFileRequest; import com.qcloud.cos.request.UploadSliceFileRequest; /** * @author chengwu COS提供给用户使用的API接口 */ public interface COS { /** * 上传文件请求, 对小文件(8MB以下)使用单文件上传接口, 大文件使用分片上传接口, 推荐使用 * * @param request 上传文件请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String uploadFile(UploadFileRequest request); /** * 上传单文件请求, 不分片,优先推荐使用uploadFile接口 * * @param request 上传文件请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String uploadSingleFile(UploadFileRequest request); /** * 分片上传文件 * * @param request 分片上传请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":$mess}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String uploadSliceFile(UploadSliceFileRequest request); /** * 获取文件属性 * * @param request 获取文件属性请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String statFile(StatFileRequest request); /** * 更新文件属性 * * @param request 更新文件属性请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String updateFile(UpdateFileRequest request); /** * 移动文件 * * @param request 移动文件请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String moveFile(MoveFileRequest request); /** * 删除文件 * * @param request 删除文件请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String delFile(DelFileRequest request); /** * 下载文件到本地 * * @param request * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String getFileLocal(GetFileLocalRequest request); /** * 下载文件并得到下载流 * * @param request * @return 下载输入流 */ InputStream getFileInputStream(GetFileInputStreamRequest request) throws Exception; /** * 创建目录 * * @param request 创建目录请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String createFolder(CreateFolderRequest request); /** * 更新目录属性 * * @param request 更新目录属性请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String updateFolder(UpdateFolderRequest request); /** * 获取目录属性请求 * * @param request 获取目录属性请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String statFolder(StatFolderRequest request); /** * 获取目录列表请求 * * @param request 获取目录列表请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String listFolder(ListFolderRequest request); /** * 删除目录请求 * * @param request 删除目录请求 * @return JSON格式的字符串, 格式为{"code":$code, "message":"$mess"}, code为0表示成功, 其他为失败, * message为success或者失败原因 */ String delFolder(DelFolderRequest request); /** * 关闭COS客户端连接池,释放涉及的资源,释放后,不能再使用COS的接口,必须重新生成一个新对象 */ void shutdown(); }