1. 类名解释
- OssService : 对象存储业务定义接口,定义业务中使用Oss功能的方法定义。具体实现方法由实现类定义。
- String getDownloadUrl(Long resourceId);
- @param resourceId:业务资源id
- @return 对应资源的下载地址
- OssQiNiuService:对象存储业务定义实现方法,实现OssService接口定义的具体逻辑。
- OssQiNiuBucketZoneEnum:对象存储空间位置,用来初始化OssQiNiu配置信息
- huabei(“https://upload-z1.qiniup.com”)
- huadong(“https://upload.qiniup.com”)
- huanan(“https://upload-z2.qiniup.com”)
- beimei(“https://upload-na0.qiniup.com”)
- xinjiapo(“https://upload-as0.qiniup.com”)
- OssBucketNameEnum:对象存储空间名称。
- 限制空间名称
- 抽象类型,分离服务提供商空间名称和业务中使用的空间名称
- app jar APP_PACKAGE(“app-package”),
- 车辆品牌,车型,车标,车系,车款等图片 CAR_PIC(“car-pic”),
- 产品,商品,套餐图片 GOODS_PIC(“goods-pic”),
- 工序工艺 PROCEDURE_PIC_VIDEO(“procedure-pic-video”),
- 个人头像等图片 PROFILE_PIC(“profile-pic”),
- 精检,精养拍照图片 SERVICE_PIC(“service-pic”),
- 门店附件,供应商附件 STORE_ATTACH_PIC(“store-attach-pic”);
- OssBucketInfo:对象存储信息
- private String bucketName;真实的空间名称
- private String domain;cdn域名
- OssQiniuCallbackBody:对象存储七牛回调类
- OssQiNiuCallbackUploadToken:对象存储七牛上传凭证类
- OssQiNiuConfiguration:对象存储七牛配置类
- private String accessKey/private String secretKey:密钥对
- private String callbackUrl:回调地址
- private Long expireSeconds:上传凭证有效时长
- private Boolean dev:环境配置
- private OssQiNiuBucketZoneEnum zone:存储空间位置
- private String cnameDomainSuffix:cdn配置CNAME的后缀
2. 上传流程
- 客户端(PC、移动)请求业务服务器获取上传凭证
1.1 接口:getQiniuCallbackUpToken
1.1.1 入参:
- OssBucketNameEnum bucketName:对象存储空间名称。
- String originName:文件原名
- String fops :资源预处理指令
1.1.2 回参: - key:上传到七牛及保存到业务服务器上的资源名称
- token:上传凭证
- actualBucketName:上传到七牛存储空间的真实名称
- uploadUrl:上传七牛存储空件的地域地址
- url:资源访问地址
- 客户端携带token请求七牛服务器上传资源
- 七牛服务器回调业务服务器
- 业务服务器保存资源元数据
- 返回业务服务器生成的资源标识ResouceId
- 七牛服务器返回客户端信息,包含ResouceId但不限于。
3. 客户端上传调整
- 请求业务服务器获取上传凭证阶段,之前传的是字符串。现在修改成枚举类型【OssBucketNameEnum bucketName】
4. 后端解耦逻辑
- 七牛服务商
- 配置dev
- 配置zone
- 配置cnameDomainSuffix
- 增加initOssBucketInfoStore环境信息
- 其他服务商
- 实现OssService接口
- 增加配置类