OSS静态资源上传开发文档
| 版本 | 说明 | 日期 | 作者 | 
|---|---|---|---|
| v1.0 | 初版架构 | 2017-08-09 | 郑皓 | 
| v2.0 | 1、修复命名不规范2、细节更改3、各种图形重新整理。 | 2017-08-10 | 郑皓 | 
1 需求
对接阿里云oss接口,实现图片上传。
2 开发
2.1 数据库设计
2.1.1 存储方案表(es_uploader)
| 字段 | 类型 | 长度 | 说明 | 
|---|---|---|---|
| id | int | 10 | Id | 
| up_name | varchar | 50 | 名称 | 
| up_open | int | 2 | 是否开启1:开启0:未开启 | 
| up_config | text | 255 | 参数 | 
| up_bean_id | varchar | 15 | 插件beanid | 
2.2 架构
2.2.1 OSS参数项的获取
说明:
- 浏览器通过getPlugin方法控制器发出请求 
- 控制器通过getPlugin方法调用业务层获取参数项目。 
- 在业务层通过findPlugin方法获取IUploader。通过返回的事件IUploader调用definitionConfigItem方法来获取存储方案,返回类型为List<ConfigItem>,在控制器层将其转换成json返回浏览器。 
2.2.2 OSS文件上传
说明:
- 浏览器通过需要上传文件的方法向控制器发出请求。 
- 控制器调业务层上传文件的方法,方法中调用工厂类getUploader方法,返回当前开启的存储方案(事件)。 
- 通过事件来调用当前选择开启的存储方案对应插件的上传方法,进行上传(删除)操作。上传才做会最终返回给浏览器路径。 
注意:
- 工厂类UploadFacatory是单例,遵循单例模式,只实例化一次。
2.2.3 商品缩略图上传
说明:
- 浏览器上传商品图片调GoodsGalleryUploadController控制器。 
- GoodsGalleryUploadController控制器通过调业务层upload方法来存储缩略图。 
- 具体实现首先通过IUpload调不同的上传实现,返回原图路径,接着根据缩略图规则将路径保存到数据库中。 
2.2.4 包命名
说明:在javashop-core中开发包设计如下
com.enation.app.base.upload.backend.controllor
com.enation.app.base.upload.service
com.enation.app.base.upload.service.impl
com.enation.app.base.upload.plugin
com.enation.app.base.upload.model
com.enation.app.base.upload