文件服务
1. 参数
2. 文件下载/图片查看(getfile)
包括查看图片,下载文件
参数名 | 说明 | 是否必传 | 默认值 |
---|---|---|---|
file_id |
文件ID,目前没有项目使用这种方式 | 与file_name必传其一 | 无 |
file_name |
文件名,现在case工具在调用文件服务时传参时多数不传文件后缀名(这个设计是不科学的) | 与file_id必传其一 | 无 |
download |
如果传该参数,则强制下载所有文件,其值可为空,true或具体文件名(如abc.pdf) | 否 | 无 |
productid |
产品ID | 是 | 无 |
spaceid |
spaceid | 否 | 与产品ID相同 |
systemid |
数据库 | 否 | 11 |
modelid |
压缩策略id | 否 | wpf |
3. 文件上传(upload)
参数名 | 说明 | 是否必传 | 默认值 |
---|---|---|---|
productid |
产品ID | 是 | 无 |
spaceid |
spaceid | 否 | 与产品ID相同 |
systemid |
数据库 | 否 | 11 |
modelid |
压缩策略id | 否 | wpf |
4. 文件更新(reupload)
参数名 | 说明 | 是否必传 | 默认值 |
---|---|---|---|
id |
要删除的文件名 | 与delfile_name必传其一 | 无 |
delfile_name |
要删除的文件名 | 与id必传其一 | 无 |
productid |
产品ID | 是 | 无 |
spaceid |
spaceid | 否 | 与产品ID相同 |
systemid |
数据库 | 否 | 11 |
modelid |
压缩策略id | 否 | wpf |
5. 文件删除
5.1. 根据文件名删除(delfile)
参数名 | 说明 | 是否必传 | 默认值 |
---|---|---|---|
id |
要删除的文件名,如果有多个文件,请使用逗号(,)隔开 | 与delfile_name必传其一 | 无 |
delfile_name |
要删除的文件名,如果有多个文件,请使用逗号(,)隔开 | 与id必传其一 | 无 |
productid |
产品ID | 是 | 无 |
spaceid |
spaceid | 否 | 与产品ID相同 |
systemid |
数据库 | 否 | 11 |
modelid |
压缩策略id | 否 | wpf |
5.2. 根据文件id删除(delfilebyid)
参数名 | 说明 | 是否必传 | 默认值 |
---|---|---|---|
id |
要删除的文件名,如果有多个文件,请使用逗号(,)隔开 | 是 | 无 |
productid |
产品ID | 是 | 无 |
spaceid |
spaceid | 否 | 与产品ID相同 |
systemid |
数据库 | 否 | 11 |
modelid |
压缩策略id | 否 | wpf |
6. 七牛云
使用控件
7. 文件压缩
如果希望上传的文件使用压缩策略,则需要在上传文件(必须是图片文件)时添加modelid
参数,如:
http://127.0.0.1:8888/upload?productid=feidao_400&modelid=test
注意:暂时文件服务支持的只有webp格式的缩略图。如有其它需求,需要文件服务再开发。
7.1. 配置表(默认为该产品对应的11库):
mode_collection
7.1.1. 字段说明
字段名 | 说明 | 示例 |
---|---|---|
_id | 关键字 | |
modeId | 压缩策略id | wpf |
standard | 默认的压缩策略,详见下表 | `[{“standardId”:”img1”,”width” :”54”,”height”:”0”,”fixed”:”false”},{“standardId”:”img2”,”width”:”350”,”height”:”0”,”fixed”:”false”},{“standardId”:”img3”,”width”:”800”,”height”:”0”,”fixed”:”false”}] |
productid | 产品id |
7.1.2. 压缩策略
多数时候实际的缩略图宽高是按照原图比例基于此策略计算出来,所以上例中只设置了宽(0和不设置该字段效果相同),未设置高。实际上宽和高只设置一个就可以。如果宽和高都设置,在压力图片的时候将会使用设置的宽高,有时候会造成图片比例被拉伸。
字段名 | 说明 | 示例 |
---|---|---|
standardId | 标识,唯一值 | |
width | 宽 | 如果为空或0,将使用实际比例根据高计算出宽 |
height | 高 | 如果为空或0,将使用实际比例根据宽计算出高 |
fixed | 未知 | false |
8. office文件处理(自动转换为pdf或图片)
8.1. 上传office文件示例
http://192.168.40.196/fsweb/upload-office?productid=feidao_400&toimg
8.2. 存在的问题
在某种情况下调用libreoffice将office文件转换为pdf文件时会导致出错。此时会有两个进程(具体进程名字未记录,待补)一直不退出,导致下次调用时一直失败。
8.3. 目前支持的类型
基本上只要是libreoffice支持的文件类型都可以,但是如果文件本身损坏,将导致转换失败。
8.4. 转换图片
添加参数toimg
即可。
8.5. 数据格式
[
{
"id": "5047e62c-b814-45d0-9d9f-cfd000850176",
"name": "40550A.xls",
"origin": {
"_id": "5047e62c-b814-45d0-9d9f-cfd000850176",
"length": 51200,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:23.917Z",
"filename": "9cef19d3-2b60-43c3-b1fc-93548efe6180.xls",
"md5": "be6d6d8c5761348f2e4c336f873f009a",
"contentType": "application/vnd.ms-excel",
"metadata": {
"originialFileName": "40550A.xls",
"productid": "feidao_400"
}
},
"pdf": {
"_id": "01949eaa-5eb4-4d9a-8b95-cf1fd6a281a6",
"length": 72434,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:23.929Z",
"filename": "upload_2fb9cf2d9800270bd3390e181d7cf46e.pdf",
"md5": "4cb3adcd265f37f2f79e565a6f5ab554",
"contentType": "application/pdf",
"metadata": {
"originialFileName": "40550A.pdf",
"productid": "feidao_400"
}
},
"images": [
{
"_id": "d69080b3-2ca8-4a41-9a06-649ae71d8718",
"length": 108529,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:23.992Z",
"filename": "upload_2fb9cf2d9800270bd3390e181d7cf46e-1.jpg",
"md5": "2621863e7438acaddf025c3a3ef97711",
"contentType": "image/jpeg",
"metadata": {
"originialFileName": "upload_2fb9cf2d9800270bd3390e181d7cf46e-1.jpg",
"productid": "feidao_400"
}
},
{
"_id": "e04e37d8-2fa3-43a4-b5e6-34e4e4611201",
"length": 108546,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:24.007Z",
"filename": "upload_2fb9cf2d9800270bd3390e181d7cf46e-2.jpg",
"md5": "40e0b6bd8338aae0eb458b8fcc7fdf5f",
"contentType": "image/jpeg",
"metadata": {
"originialFileName": "upload_2fb9cf2d9800270bd3390e181d7cf46e-2.jpg",
"productid": "feidao_400"
}
},
{
"_id": "4a1bd229-eaaa-48d2-8df5-510f4b4ded4a",
"length": 111290,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:24.002Z",
"filename": "upload_2fb9cf2d9800270bd3390e181d7cf46e-3.jpg",
"md5": "86332a600749a4a444276e2f6935794c",
"contentType": "image/jpeg",
"metadata": {
"originialFileName": "upload_2fb9cf2d9800270bd3390e181d7cf46e-3.jpg",
"productid": "feidao_400"
}
},
{
"_id": "d76e56f5-ed59-4241-a805-61ad1fa0bc75",
"length": 115169,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:24.023Z",
"filename": "upload_2fb9cf2d9800270bd3390e181d7cf46e-4.jpg",
"md5": "03dae38ca66fe8151bde15df5b6c7bd7",
"contentType": "image/jpeg",
"metadata": {
"originialFileName": "upload_2fb9cf2d9800270bd3390e181d7cf46e-4.jpg",
"productid": "feidao_400"
}
},
{
"_id": "7a5da439-9b02-4828-853b-5f86e6376d47",
"length": 97466,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:24.016Z",
"filename": "upload_2fb9cf2d9800270bd3390e181d7cf46e-5.jpg",
"md5": "bfe85a5b5f51c45b76b3ad61be6ad190",
"contentType": "image/jpeg",
"metadata": {
"originialFileName": "upload_2fb9cf2d9800270bd3390e181d7cf46e-5.jpg",
"productid": "feidao_400"
}
},
{
"_id": "af2c42a5-6aba-4e46-9cf2-d0e53288ebe8",
"length": 49411,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:24.002Z",
"filename": "upload_2fb9cf2d9800270bd3390e181d7cf46e-6.jpg",
"md5": "8c32eef8d4102fbeb89cdfd6e426817f",
"contentType": "image/jpeg",
"metadata": {
"originialFileName": "upload_2fb9cf2d9800270bd3390e181d7cf46e-6.jpg",
"productid": "feidao_400"
}
},
{
"_id": "feabdf4a-914f-4946-96fa-6c24923b4255",
"length": 11572,
"chunkSize": 261120,
"uploadDate": "2018-11-10T06:21:24.017Z",
"filename": "upload_2fb9cf2d9800270bd3390e181d7cf46e-7.jpg",
"md5": "1b5834b3d106eff52c15aa8aa14df414",
"contentType": "image/jpeg",
"metadata": {
"originialFileName": "upload_2fb9cf2d9800270bd3390e181d7cf46e-7.jpg",
"productid": "feidao_400"
}
}
]
}
]
8.6. 注意
- 必须使用文件上传控件,不支持上传base64格式的文件
- 转换过程比较耗时(在我本机测试,一个32M的doc文档,转换需要1.7分钟),为避免超时错误,请在文件上传控件添加timeout属性(默认的超时设置为30秒)
- 支持上传pdf转换为图片文件
- 目前,转换为图片之后是jpg格式,其它格式暂不支持。
- 上传返回的数据结构与普通上传有差异,不支持同一文件名的不同文件同时上传。
9. 图片转换png处理
9.1. 转换png示例
http://192.168.40.196/fsweb/img-2-png?productid=feidao_400
9.2. 返回数据格式
[
[
{
"_id": "94cacbf1-b110-4861-8ee4-bc412357d5ff",
"length": 50378,
"chunkSize": 261120,
"uploadDate": "2018-12-03T09:48:48.360Z",
"filename": "6dea89b0-2896-4608-b871-c8777b2cec41.tif",
"md5": "e9e721905f5160fb82617b0e1c9a0a3e",
"contentType": "image/tiff",
"metadata": {
"originialFileName": "1_1.tif",
"productid": "feidao_400"
}
},
{
"_id": "5c04fc0086bf8a68759a07bc",
"length": 147506,
"chunkSize": 261120,
"uploadDate": "2018-12-03T09:48:49.658Z",
"filename": "df1b9aee-e673-449e-a105-3485d7ddf13b.png",
"md5": "d743424cd3ac3c57b3e598963d70bbee",
"contentType": "image/png",
"metadata": {
"originialFileName": "df1b9aee-e673-449e-a105-3485d7ddf13b.png",
"productid": "feidao_400"
}
}
]
]
9.3. 注意
- 必须使用文件上传控件,不支持上传base64格式的文件
- 暂时只有tif格式文件测试通过,但通常的其它图片类型jpg,gif应该也都支持。如果项目中遇到转换失败的情况,主及时联系我