206 lines
4.4 KiB
TypeScript
206 lines
4.4 KiB
TypeScript
export interface BucketInfo {
|
|
FileNum: number
|
|
Mtime: number
|
|
Name: string
|
|
Path: string
|
|
QuotaSize: number
|
|
TotalSize: number
|
|
}
|
|
|
|
export interface BucketCreateAndEditParams {
|
|
|
|
BucketName: string
|
|
BucketLimitSize: number
|
|
}
|
|
|
|
export interface FileInfo {
|
|
Name: string
|
|
FileSize: number
|
|
Type: string
|
|
Mtime: number
|
|
Path: string
|
|
DownloadUrl: string
|
|
}
|
|
|
|
export interface FileEditParams {
|
|
OldFileName: string
|
|
NewFileName: string
|
|
}
|
|
|
|
export interface CreateDirParams {
|
|
DirName: string
|
|
}
|
|
|
|
/**
|
|
* 返回的数据
|
|
*/
|
|
export interface FileinfoData {
|
|
ChunkList?: FileinfoDataChunkList
|
|
/**
|
|
* 文件创建时间
|
|
*/
|
|
Ctime?: number
|
|
/**
|
|
* 文件最后修改时间
|
|
*/
|
|
Mtime?: number
|
|
/**
|
|
* 文件名
|
|
*/
|
|
Name?: string
|
|
/**
|
|
* 文件路径
|
|
*/
|
|
Path?: string
|
|
/**
|
|
* 文件大小
|
|
*/
|
|
Size?: number
|
|
/**
|
|
* 文件类型
|
|
*/
|
|
Type?: string
|
|
[property: string]: any
|
|
}
|
|
|
|
/**
|
|
* jwanfs-web-server.server.api.v1.ChunkList
|
|
*/
|
|
export interface FileinfoDataChunkList {
|
|
/**
|
|
* 分块数量
|
|
*/
|
|
Chunks?: FileinfoDataChunkInfo[]
|
|
/**
|
|
* 分块数量
|
|
*/
|
|
Total?: number
|
|
[property: string]: any
|
|
}
|
|
|
|
/**
|
|
* jwanfs-web-server.server.api.v1.ChunkInfo
|
|
*/
|
|
export interface FileinfoDataChunkInfo {
|
|
/**
|
|
* 分块ID
|
|
*/
|
|
ChunkID?: string
|
|
/**
|
|
* 分块大小 单位KB
|
|
*/
|
|
ChunkSize?: number
|
|
/**
|
|
* 数据中心标签
|
|
*/
|
|
DataCenterTags?: string[]
|
|
/**
|
|
* 内部存储卷地址
|
|
*/
|
|
InternalURL?: string[]
|
|
/**
|
|
* 服务器标签
|
|
*/
|
|
ServerTags?: string[]
|
|
[property: string]: any
|
|
}
|
|
|
|
export interface RecycledInfo {
|
|
/**
|
|
* 删除时间,时间戳精确到毫秒
|
|
*/
|
|
DeleteTime: number
|
|
/**
|
|
* 文件大小
|
|
*/
|
|
FileSize: number
|
|
/**
|
|
* 是否是文件夹
|
|
*/
|
|
IsDirectory: boolean
|
|
/**
|
|
* 是否来自Grpc
|
|
*/
|
|
IsFromGrpc: boolean
|
|
/**
|
|
* 文件最后修改时间,时间戳精确到秒
|
|
*/
|
|
Mtime: number
|
|
/**
|
|
* 文件名称
|
|
*/
|
|
Name: string
|
|
/**
|
|
* 文件夹路径
|
|
*/
|
|
Path: string
|
|
/**
|
|
* Grpc客户端进程号
|
|
*/
|
|
PID: string
|
|
/**
|
|
* 回收站有效时间,时间戳精确到秒
|
|
*/
|
|
RecycleEffectTime: number
|
|
/**
|
|
* 文件状态
|
|
*/
|
|
Status: number
|
|
/**
|
|
* 文件类型
|
|
*/
|
|
Type: string
|
|
}
|
|
|
|
export const bucketApi = {
|
|
list: (params: Page.Request) => request.get<Page.Response<BucketInfo>>('file_manage/bucket', params),
|
|
create: (params: BucketCreateAndEditParams) => request.post(`file_manage/bucket/${params.BucketName}`, {
|
|
BucketLimitSize: params.BucketLimitSize,
|
|
}),
|
|
edit: (params: BucketCreateAndEditParams) => request.put(`file_manage/bucket/${params.BucketName}`, {
|
|
BucketLimitSize: params.BucketLimitSize,
|
|
}),
|
|
delete: (BucketName: string) => request.delete(`file_manage/bucket/${BucketName}`),
|
|
detail: {
|
|
list: (params: Page.Request, path: string) => request.get<Page.Response<FileInfo>>(`file_manage/file/${path}`, params),
|
|
delete: (path: string) => request.delete(`file_manage/file/${path}`),
|
|
edit: (params: FileEditParams, path: string) => request.put(`file_manage/file/${path}/${params.OldFileName}`, params),
|
|
createDir: (params: CreateDirParams, path: string) => request.post(`file_manage/folder/${path}/${params.DirName}`),
|
|
upload: (file: File, url: string, token: string) => {
|
|
const formData = new FormData()
|
|
formData.append('File', file)
|
|
formData.append('Size', file.size.toString())
|
|
return request.upload(`${url}?Token=${token}`, formData, token)
|
|
},
|
|
info: (path: string) => request.get<FileinfoData>(`file_manage/fileinfo/${path}`),
|
|
uploadUrl: (params: {
|
|
Path: string
|
|
}) => request.get<{
|
|
token: string
|
|
url: string
|
|
endpoint: string
|
|
}>('file_manage/get/upload/info', params),
|
|
download: (params: FileInfo) => {
|
|
request.get<{
|
|
Url: string
|
|
}>(`file_manage/download/${params.Path}`).then((res) => {
|
|
window.open(res.Url)
|
|
})
|
|
// "/file_manage/download"
|
|
// window.open(`${params.DownloadUrl}`)
|
|
},
|
|
downloadUrl: (params: FileInfo) => {
|
|
return (`${params.DownloadUrl}`)
|
|
},
|
|
},
|
|
recycle: {
|
|
list: (params: Page.Request & { BucketName: string }) => request.get<Page.Response<RecycledInfo>>('recycle_file/list', params),
|
|
delete: (params: RecycledInfo) => request.post<{
|
|
ShareUrl: string
|
|
}>('recycle_file/delete', params),
|
|
restore: (params: RecycledInfo) => request.post<{
|
|
ShareUrl: string
|
|
}>('recycle_file/restore', params),
|
|
},
|
|
}
|