com.bimface.sdk.interfaces.BdfsInterface Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bimface-java-sdk Show documentation
Show all versions of bimface-java-sdk Show documentation
Bimface provide the required call java sdk.
The newest version!
package com.bimface.sdk.interfaces;
import com.bimface.bdfs.bean.*;
import com.bimface.bdfs.bean.dto.*;
import com.bimface.bdfs.bean.dto.v1.FileItemDTOV1;
import com.bimface.bdfs.bean.dto.v1.multipartupload.*;
import com.bimface.page.PagedList;
import com.bimface.sdk.bean.request.CreateFolderRequest;
import com.bimface.sdk.bean.request.FileItemQueryRequest;
import com.bimface.sdk.bean.request.ProjectCreateRequest;
import com.bimface.sdk.bean.response.FileItemUploadStatusBean;
import com.glodon.paas.foundation.restclient.RESTResponse;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.*;
import java.util.List;
/**
* Created by tangj-i on 2023/3/27.
*/
public interface BdfsInterface {
String BASE_HUB_URL = "domain/v1/hubs";
String BASE_PROJECT_URL = "domain/v1/hubs/{hubId}/projects";
String BASE_FILEITEM_URL = "data/v1/projects";
/**
* 获取hub列表
*/
@GET(BASE_HUB_URL + "")
Call>> getHubList(@Query("name") String name,
@Query("tenantCode") String tenantCode,
@Query("info") String info,
@Query("dateTimeFrom") String dateTimeFrom,
@Query("dateTimeTo") String dateTimeTo,
@Header("Authorization") String token);
/**
* 获取Hub Meta信息
*/
@GET(BASE_HUB_URL + "/{hubId}")
Call> getHubMeta(@Path("hubId") Long hubId,
@Header("Authorization") String token);
/**
* 创建project
*/
@POST(BASE_PROJECT_URL + "")
Call> createProject(@Path("hubId") String hubId,
@Body ProjectCreateRequest request,
@Header("Authorization") String token);
/**
* 获取project列表
*/
@GET(BASE_PROJECT_URL + "")
Call>> getProjectList(@Path("hubId") String hubId,
@Query(value = "name") String name,
@Query(value = "useFuzzySearch") Boolean useFuzzySearch,
@Header("Authorization") String token);
/**
* 获取项目信息
*
* @param hubId hubId
* @param projectId 项目Id
* @return
*/
@GET(BASE_PROJECT_URL + "/{projectId}")
Call> getProjectMeta(@Path("hubId") String hubId,
@Path("projectId") String projectId,
@Header("Authorization") String token);
/**
* 删除项目
*
* @param hubId hubId
* @param projectId 项目Id
* @return
*/
@DELETE(BASE_PROJECT_URL + "/{projectId}")
Call> deleteProject(@Path("hubId") String hubId,
@Path("projectId") String projectId,
@Header("Authorization") String token);
/**
* 更新项目信息
*
* @param hubId hubId
* @param projectId 项目Id
* @param updateProjectReq 更新项目信息请求体
* @return
*/
@PATCH(BASE_PROJECT_URL + "/{projectId}")
Call> updateProject(@Path("hubId") String hubId,
@Path("projectId") String projectId,
@Body UpdateProjectRequest updateProjectReq,
@Header("Authorization") String token);
/**
* 获取项目根文件夹信息
*
* @param hubId hubId
* @param projectId 项目Id
* @return
*/
@GET("v1/domain/hubs/{hub-id}/projects/{project-id}/root-folder")
Call> getProjectRootFolderInfo(@Path("hub-id") String hubId,
@Path("project-id") String projectId,
@Header("Authorization") String token);
/**
* 指定目录创建文件夹
*/
@POST(BASE_FILEITEM_URL + "/{projectId}/folders")
Call> createFolder(@Path("projectId") String projectId,
@Body CreateFolderRequest createFolderRequest,
@Header("Authorization") String token);
/**
* 获取文件夹信息
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/folders")
Call> getFolder(@Path("projectId") String projectId,
@Query("folderId") String folderId,
@Query("path") String path,
@Header("Authorization") String token);
/**
* 查询文件列表
* 获取文件夹下的所有文件
*
* @param projectId
* @param queryRequest
* @return
*/
@POST(BASE_FILEITEM_URL + "/{projectId}/folders/contents")
Call>> getChildrenFileItems(@Path("projectId") String projectId,
@Body FileItemQueryRequest queryRequest,
@Header("Authorization") String token);
/**
* 获取文件夹路径
*
* @param projectId
* @param folderId
* @param token
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/folders/{folderId}/path")
Call> getFolderPathById(@Path("projectId") String projectId,
@Path("folderId") String folderId,
@Header("Authorization") String token);
/**
* 获取父文件夹
*
* @param projectId
* @param folderId
* @param token
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/folders/{folderId}/parent")
Call> getParent(@Path("projectId") String projectId,
@Path("folderId") String folderId,
@Header("Authorization") String token);
/**
* 文件夹重命名
* 根据folderId(path)更新文件夹
*
* @param projectId 项目id
* @param updateFolderReq 更新文件夹请求体
* @param token
* @return
*/
@PATCH(BASE_FILEITEM_URL + "/{projectId}/folders")
Call> updateFolder(@Path("projectId") String projectId,
@Body UpdateFolderRequest updateFolderReq,
@Header("Authorization") String token);
/**
* 删除文件夹
* 根据folderId(path)删除文件夹
*
* @param projectId 项目id
* @param folderId 文件夹id(folderId和path,必须二选一填入)
* @param path 文件夹路径,使用URL编码(UTF-8),最多256个字符(folderId和path,必须二选一填入)
* @param token
* @return
*/
@DELETE(BASE_FILEITEM_URL + "/{projectId}/folders")
Call> deleteFolder(@Path("projectId") String projectId,
@Query("folderId") String folderId,
@Query("path") String path,
@Header("Authorization") String token);
/**
* 上传文件流
*
* @param projectId
* @param parentId
* @param parentPath
* @param name
* @param sourceId
* @param length
* @param fileBody
* @param token
* @return
*/
@POST(BASE_FILEITEM_URL + "/{projectId}/fileItems")
Call> uploadFileItem(@Path("projectId") String projectId,
@Query("parentId") String parentId,
@Query("parentPath") String parentPath,
@Query("name") String name,
@Query("sourceId") String sourceId,
@Query("length") Long length,
@Body RequestBody fileBody,
@Header("Authorization") String token);
/**
* 指定外部文件url方式上传
*
* @param projectId 项目ID
* @param parentId 父文件夹Id
* @param parentPath 父文件夹路径
* @param name 文件名称
* @param sourceId 调用方的文件源ID,不能重复
* @param url sourceUrl
* @param etag 文件etag
* @param maxLength maxLength
* @param token
* @return
*/
@POST(BASE_FILEITEM_URL + "/{projectId}/fileItems/sourceUrl")
Call> uploadByUrl(@Path("projectId") String projectId,
@Query("parentId") String parentId,
@Query("parentPath") String parentPath,
@Query("name") String name,
@Query("sourceId") String sourceId,
@Query("url") String url,
@Query("etag") String etag,
@Query("maxLength") Long maxLength,
@Header("Authorization") String token);
/**
* 创建追加文件
*
* @param projectId 项目ID
* @param parentId 父文件夹Id
* @param parentPath 父文件夹路径
* @param name 文件名称
* @param length 文件流的长度
* @param sourceId 调用方的文件源ID,不能重复
* @param token
* @return
*/
@POST(BASE_FILEITEM_URL + "/{projectId}/fileItems/appendFile")
Call> createAppendFile(@Path("projectId") String projectId,
@Query("parentId") String parentId,
@Query("parentPath") String parentPath,
@Query("name") String name,
@Query("length") Long length,
@Query("sourceId") String sourceId,
@Header("Authorization") String token);
/**
* 获取追加文件信息
* 获取FileItemAppendFile
*
* @param projectId 项目ID
* @param appendFileId 追加上传ID
* @param token
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/fileItems/appendFile")
Call> getAppendFile(@Path("projectId") String projectId,
@Query("appendFileId") String appendFileId,
@Header("Authorization") String token);
/**
* 追加上传文件
*
* @param projectId 项目ID
* @param appendFileId 父文件夹Id
* @param position 父文件夹路径
* @param token
* @return
*/
@POST(BASE_FILEITEM_URL + "/{projectId}/fileItems/appendUpload")
Call> appendUpload(@Path("projectId") String projectId,
@Query("appendFileId") String appendFileId,
@Query("position") String position,
@Body RequestBody fileBody,
@Header("Authorization") String token);
/**
* 复制文件
*
* @param projectId 项目ID
* @param copyFileRequest 复制文件请求体
* @param token
* @return
*/
@POST(BASE_FILEITEM_URL + "/{projectId}/fileItems/copyItem")
Call>> copyFile(@Path("projectId") String projectId,
@Body CopyFileRequest copyFileRequest,
@Header("Authorization") String token);
/**
* 获取文件直传的policy凭证
* 获取上传file的policy
*
* @param projectId 项目ID
* @param parentId 父文件ID
* @param parentPath 父文件路径
* @param name 文件名称
* @param sourceId 调用方的文件源ID
* @param maxLength 文件流的长度
* @param token
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/fileItems/policy")
Call> getFileItemPolicy(@Path("projectId") String projectId,
@Query("parentId") String parentId,
@Query("parentPath") String parentPath,
@Query("name") String name,
@Query("sourceId") String sourceId,
@Query("maxLength") Long maxLength,
@Header("Authorization") String token);
/**
* 获取fileItem Meta
* 获取文件信息
*
* @param projectId
* @param fileItemId
* @param path
* @param withItemSource
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/fileItems/meta")
Call> getFileItemMeta(@Path("projectId") String projectId,
@Query("fileItemId") String fileItemId,
@Query("path") String path,
@Query("withItemSource") Boolean withItemSource,
@Header("Authorization") String token);
/**
* 获取上传状态
* 获取文件状态
*
* @param projectId
* @param fileItemId
* @param path
* @param token
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/fileItems/status")
Call> getFileItemUploadStatus(@Path("projectId") String projectId,
@Query("fileItemId") String fileItemId,
@Query("path") String path,
@Header("Authorization") String token);
/**
* 获取下载url
* 源文件下载
*
* @param projectId
* @param itemId
* @param path
* @param expireTime
* @param token
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/fileItems/downloadUrl")
Call> getFileItemSignedUrl(@Path("projectId") String projectId,
@Query("fileItemId") String itemId,
@Query("path") String path,
@Query("expireTime") Integer expireTime,
@Header("Authorization") String token);
/**
* 获取文件路径
* 根据fileItemId获取fileItemPath
*
* @param projectId 项目ID
* @param fileItemId 文件ID
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/fileItems/{fileItemId}/fileItemsPath")
Call> getFileItemPathById(@Path("projectId") String projectId,
@Path("fileItemId") String fileItemId,
@Header("Authorization") String token);
/**
* 打包下载压缩文件
*
* @param projectId 项目ID
* @param fileItemIds 文件ID
* @return
*/
@GET(BASE_FILEITEM_URL + "/{projectId}/fileItems/downloadZip")
Call> downloadFiles(@Path("projectId") String projectId,
@Query("fileItemIds") List fileItemIds,
@Header("Authorization") String token);
/**
* 移动文件位置
*
* @param projectId 项目ID
* @param moveFileRequest 移动文件请求体
* @return
*/
@PATCH(BASE_FILEITEM_URL + "/{projectId}/fileItems/moveItem")
Call>> moveFile(@Path("projectId") String projectId,
@Body MoveFileRequest moveFileRequest,
@Header("Authorization") String token);
/**
* 文件重命名
*
* @param projectId 项目ID
* @param updateFileRequest 更新文件请求体
* @return
*/
@PATCH(BASE_FILEITEM_URL + "/{projectId}/fileItems")
Call> fileRename(@Path("projectId") String projectId,
@Body UpdateFileRequest updateFileRequest,
@Header("Authorization") String token);
/**
* 批量删除文件
*
* @param projectId
* @param fileItemIds
* @param token
* @return
*/
@HTTP(method = "DELETE", path = BASE_FILEITEM_URL + "/{projectId}/fileItems", hasBody = true)
Call> batchDeleteFileItems(@Path("projectId") String projectId,
@Body List fileItemIds,
@Header("Authorization") String token);
/**
* 创建分片上传任务
*
* @param projectId 项目id
* @param initMultipartUploadRequest 初始化分片上传的请求体
* @param token Authorization
* @return InitMultipartUploadDTO
*/
@POST("v1/data/projects/{project-id}/file-items/multi-part-files")
Call> initMultipartUpload(@Path("project-id") String projectId,
@Body InitMultipartUploadRequest initMultipartUploadRequest,
@Header("Authorization") String token);
/**
* 获取分片上传url
*
* @param projectId 项目 id
* @param multipartSignedUrlRequest 获取分片的 signedUrl的请求体
* @return 生成的 signed url
*/
@POST("v1/data/projects/{project-id}/file-items/multi-part-files/signed-url")
Call> getMultipartSignedUrl(@Path("project-id") String projectId,
@Body MultipartSignedUrlRequest multipartSignedUrlRequest,
@Header("Authorization") String token);
/**
* 合并分片生成文件
*
* @param projectId 项目 id
* @param completeMultipartUploadRequest 完成分片上传的请求体
* @return 返回生成的 FileItem
*/
@POST("v1/data/projects/{project-id}/file-items/multi-part-files/merge")
Call> completeMultiPartUpload(@Path("project-id") String projectId,
@Body CompleteMultipartUploadRequest completeMultipartUploadRequest,
@Header("Authorization") String token);
/**
* 终止分片上传任务
*
* @param projectId 项目 id
* @param abortMultipartUploadRequest 终止分片上传的请求体
* @return 提示信息
*/
@POST("v1/data/projects/{project-id}/file-items/multi-part-files/abort")
Call> abortMultiPartUpload(@Path("project-id") String projectId,
@Body AbortMultipartUploadRequest abortMultipartUploadRequest,
@Header("Authorization") String token);
/**
* 获取所有版本文件信息
*
* @param projectId 项目ID
* @param fileItemId 文件Id
* @param path 文件路径
* @param pageNo 开始页码
* @param pageSize 每页大小
* @return PagedList
*/
@GET("data/v1/projects/{projectId}/fileItems/files")
Call>> getAllVersions(@Path("projectId") String projectId,
@Query("fileItemId") String fileItemId,
@Query("path") String path,
@Query("pageNo") Integer pageNo,
@Query("pageSize") Integer pageSize,
@Header("Authorization") String token);
/**
* 上传版本文件
*
* @param projectId 项目ID
* @param fileItemId 文件Id
* @param path 文件路径
* @param name 文件名称
* @param length 文件长度
* @param sourceId 调用方的文件源ID,不能重复
* @return FileItemDTO
*/
@POST("data/v1/projects/{projectId}/files")
Call> createVersion(@Path("projectId") String projectId,
@Query("fileItemId") String fileItemId,
@Query("path") String path,
@Query("name") String name,
@Query("length") Long length,
@Query("sourceId") String sourceId,
@Body RequestBody fileBody,
@Header("Authorization") String token);
/**
* 获取新版本直传的policy凭证
*
* @param projectId 项目ID
* @param fileItemId 文件Id
* @param path 文件路径
* @param name 文件名称
* @param sourceId 调用方的文件源ID,不能重复
* @param maxLength 文件流的长度
* @return UploadPolicyResponse
*/
@GET("data/v1/projects/{projectId}/files/policy")
Call> getFilePolicy(@Path("projectId") String projectId,
@Query("fileItemId") String fileItemId,
@Query("path") String path,
@Query("name") String name,
@Query("sourceId") String sourceId,
@Query("maxLength") Long maxLength,
@Header("Authorization") String token);
/**
* 获取指定版本文件信息
*
* @param projectId 项目ID
* @param fileId 文件版本Id
* @param withFileSource 是否携带itemSource
* @return FileItemDTO
*/
@GET("data/v1/projects/{projectId}/files/{fileId}/meta")
Call> getVersion(@Path("projectId") String projectId,
@Path("fileId") String fileId,
@Query("withFileSource") Boolean withFileSource,
@Header("Authorization") String token);
/**
* 下载指定版本文件
*
* @param projectId 项目ID
* @param fileId 文件版本Id
* @param expireTime 有限期,默认3600s
* @return String
*/
@GET("data/v1/projects/{projectId}/files/{fileId}/downloadUrl")
Call> getVersionSignedUrl(@Path("projectId") String projectId,
@Path("fileId") String fileId,
@Query("expireTime") Integer expireTime,
@Header("Authorization") String token);
/**
* 删除指定版本文件
*
* @param projectId 项目ID
* @param fileIds 文件版本Id
* @return String
*/
@HTTP(method = "DELETE", path = "data/v1/projects/{projectId}/files", hasBody = true)
Call> deleteVersion(@Path("projectId") String projectId,
@Body List fileIds,
@Header("Authorization") String token);
/**
* 获取成功上传的分片列表
* @param projectId 项目ID
* @param id 分片上传ID
* @param token 访问令牌
* @return 成功上传的分片列表
*/
@GET("v1/data/projects/{project-id}/file-items/multi-part-files/upload-parts")
Call> getSuccessUploadParts(@Path("project-id") String projectId,
@Query("id") String id,
@Header("Authorization") String token);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy