# file-system
**Repository Path**: edgegallery/file-system
## Basic Information
- **Project Name**: file-system
- **Description**: No description available
- **Primary Language**: Go
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 11
- **Created**: 2021-05-24
- **Last Updated**: 2024-05-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# EdgeGallery file-system
## 概述
file-system作为中间件为多个模块提供上传、下载、查询、删除的文件管理服务,V1.3版本中加入了镜像文件瘦身功能
## 详细介绍
- 上传
上传文件可选镜像文件本身,若镜像文件过大,建议压缩成zip文件上传,或建议使用分片上传. 上传zip时,.qocw2文件需放在文件夹里压缩
- 下载
根据imageId下载文件时可选不同格式,通过query参数来控制
- 查询
根据imageId查询文件详情、文件瘦身详情、文件校验详情
- 删除
根据imageId删除存储的文件及数据信息
- 镜像瘦身
调用同pod内另一容器的imageOps功能辅助完成镜像瘦身操作,具体流程图如下:

## 接口定义
| | Method | URL | form-data参数 | 响应结构 | 接口实现说明 |
| ------------ | :----: | ----------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 上传镜像文件 | POST | /image-management/v1/images | userId:用户ID
file:文件
priority:存储优先级 | {
imageId:"string"
fileName:"string"
uploadTime:"string"
userId:"string"
storageMedium:"string"
msg:"string"
checkStatus:int
slimStatus:int
} | slimStatus:[0,1,2,3]分别表示未瘦身/瘦身中/成功/失败
上传镜像文件格式可选:.zip/.qcow2/.img/.iso
priority一般选0
上传zip时,镜像文件上层应包一层文件夹 |
| 下载镜像文件 | GET | /image-management/v1/images/{imageId}/action/download | 无 | file | 下载镜像文件格式可选,query为/?isZip=true时下载格式为.zip;不带query时下载镜像文件本身 |
| 查询虚机镜像 | GET | /image-management/v1/images/{imageId} | 无 | {
imageId:"string"
file:"string"
uploadTime:"string"
userId:"string"
storageMedium:"string"
slimStatus:int
checkStatusResponse:
{
status:int
msg:"string"
checkInfo:{
checkSum:"string"
checkResult:int
imageInfo:{
image-end-offset:"string"
check-errors:"string"
format:"string"
filename:"string"
}
}
}
} | slimStatus:[0,1,2,3]分别表示未瘦身/瘦身中/成功/失败
根据imageId查询文件详情 |
| 删除虚机镜像 | DELETE | /image-management/v1/images/{imageId} | 无 | 删除成功: delete success/
删除失败: error | 根据imageId删除本地文件 |
| 镜像瘦身 | POST | /image-management/v1/images/{imageId}/action/slim | 无 | compress in progress/
compress failed | 根据imageId进行镜像文件压缩瘦身 |
| 上传分片文件 | POST | /image-management/v1/images/upload | identifier: 文件标识
part: 分片文件.part
priority:存储优先级 | ok | 此接口只接受一个文件分片的上传,根据identifier存储在系统内部 |
| 取消上传 | DELETE | /image-management/v1/images/upload | identifier: 文件标识
priority:存储优先级 | 取消成功:cancel success/
取消失败:error | 取消上传会删除已上传的分片文件 |
| 合并分片文件 | POST | /image-management/v1/images/merge | identifier: 文件标识
filename: 文件名称
userId:用户ID
priority:存储优先级 | {
imageId:"string"
fileName:"string"
uploadTime:"string"
userId:"string"
storageMedium:"string"
msg:"string"
checkStatus:int
slimStatus:int
} | slimStatus:[0,1,2,3]分别表示未瘦身/瘦身中/成功/失败
filename为原文件原名,且格式可选zip或原格式 |