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参数项的获取

点击查看大图

点击查看大图

说明:

  1. 浏览器通过getPlugin方法控制器发出请求

  2. 控制器通过getPlugin方法调用业务层获取参数项目。

  3. 在业务层通过findPlugin方法获取IUploader。通过返回的事件IUploader调用definitionConfigItem方法来获取存储方案,返回类型为List<ConfigItem>,在控制器层将其转换成json返回浏览器。

2.2.2 OSS文件上传

点击查看大图

点击查看大图

说明:

  1. 浏览器通过需要上传文件的方法向控制器发出请求。

  2. 控制器调业务层上传文件的方法,方法中调用工厂类getUploader方法,返回当前开启的存储方案(事件)。

  3. 通过事件来调用当前选择开启的存储方案对应插件的上传方法,进行上传(删除)操作。上传才做会最终返回给浏览器路径。

注意:

  1. 工厂类UploadFacatory是单例,遵循单例模式,只实例化一次。

2.2.3 商品缩略图上传

点击查看大图

说明:

  1. 浏览器上传商品图片调GoodsGalleryUploadController控制器。

  2. GoodsGalleryUploadController控制器通过调业务层upload方法来存储缩略图。

  3. 具体实现首先通过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

results matching ""

    No results matching ""