|
发表于 2019-7-18 17:57:08
|
显示全部楼层
本帖最后由 007slm 于 2019-7-18 17:58 编辑
1. 前端上传推荐使用附件组件上传
2. 后端上传需要解决2件事情
a) 上传文件到对象存储
/storage/postObject post请求
参数storeFileName需要唯一用来指定对象存储名字
spring mvc api描述如下
@RequestMapping(path="/postObject",method=RequestMethod.POST)
postObject(@RequestParam("file") MultipartFile file,@RequestParam("storeFileName") String storeFileName)
b) 数据库字段中记录对oss记录的引用,格式为json数组
[{
"storeFileName":"刚才上传指定的storeFileName",
"realFileName":"文件的原始文件名字"
},{
多个文件依次增加
}]
3. 下载或者查看
需要首选获取一个打开对应文件的url
/storage/presignedGetObject
方法签名如下
@RequestMapping(path="/presignedGetObject")
public String presignedGetObject(@RequestParam String objectName, @RequestParam(defaultValue="604800",required=false) Integer expires)
获得url后赋值给image 或者pdfviewer等即可
注意:安全模式下每次获得的url都不相同,即便url泄露,在expires时间后url也不可用,
如果不需要安全模式。规则如下
storeFileName如果以anoy_开头表示本文件为非安全资源,上传后查看的url固定的.只要按照一定规则拼出url即可使用.
非安全模式下牛刀上每个应用产生url的规则并不完全一致,所以每个应用可以先调用本api获取一次,路径的最后部分即为stroeFileName,替换为其他文件storeFileName即可使用。
例如非安全文件的查看url形如 https://testminio-ide.xcaas.net/这部分即为不变部分,开发测试生产部署都一样/storeFileName
|
|