SpringCloud集成七牛云(多文件上传)

本文详述了如何将SpringCloud服务与七牛云集成,实现多文件上传。首先,介绍了七牛云后台配置,包括创建对象存储空间、添加域名和CNAME解析。接着,讲解了代码集成,涉及pom依赖、配置参数、服务和控制器代码。最后,讨论了处理跨域问题的方法,并提供了相关参考资料。
摘要由CSDN通过智能技术生成

关键字

后台服务,测试客户端,图片存储服务,二级域名服务解析,Bucket,CNAME

其中
后台服务 本文使用SpringCloud 单体服务,用作接收从客户端上传的文件信息,并转发到七牛云服务存储
测试客户端 本文使用 h5+jquery 图片上传客户端 ,用于选择上传图片,并连接后台服务
图片存储服务 需要从七牛官网申请注册,并开通对应的对象存储
域名服务解析 本文使用阿里云的域名解析服务,扮演的角色是:”通过指定域名获取图片最终存储的路径。这里使用的是阿里云的服务和万网的域名。阿里云把在七牛云服务上设置的二级域名进行域名解析,同时最终七牛云服务会把解析的最终地址指向七牛云服务文件本身“。
Bucket 七牛云后台配置的对象存储空间名称
CNAME 七牛云后台配置的融合cdn的域名的别名

集成过程

七牛云服务后台配置相关

注册部分省略…注册完成后我们在个人中心就能获取到两个关键的key值在后续我们代码集成里面要使用这里请记好到时候要到这里来找对应的两个key值AccessKey 和Secret Key
在这里插入图片描述

新增对象存储空间(必须)

在这里插入图片描述
对象存储空间也就是我们文件要存储的地方,这里我们先按照公开空间来处理,公开空间和私有空间的区别主要在于获取上传的文件方式上,公开空间获取文件直接根据特定规则拼接成url就可以直接获取对应的文件,而私有空间则在获取文件只要有一步验证的过程明细参考官网文档

新增域名(必须)

首先这里新增的域名主要是用作后续我们上传图片以后要根据特定的域名及定制获取图片的真实路径
在这里插入图片描述

这里的添加的域名可以是基于自己已经购买的域名然后自定义的二级域名这里笔者有个域名hdlxdl.site ,为了和之前其他服务的域名冲突这里新建域名file.hdlxdl.site ,细心的小伙伴可能就有问题了我在这里随便写了一个这么样一个的域名,七牛怎么就能直接通过这个域名获取到文件并使用呢,请继续往下看

CNAME及域名解析(必须)

当我们在融合CDN里新建了自定义的域名后,在进入我们在第二步新建的对象空间,就能发现我们新建的域名,但是这个时候还不能直接使用我们要进行非常关键的一个步骤就是CNAME解析,关于CNAME的概念以及为什么要配置CNAME这里
大体的意思就是,当我们新建一个cdn加速域名的时候,默认就会生成一个CNAME域名的别名,我们就需要域名服务商对这个别名进行解析和映射。
在这里插入图片描述
点击具体的域名详情页可以看到起对应的CNAME信息,这里的CNAME我们将来会把他用到域名解析里面的记录值里面去。这里要给记清楚在这里可以找到他
在这里插入图片描述

进入阿里云服务管理后台,找到域名解析这里,进行对应的域名解析配置
在这里插入图片描述
在这里插入图片描述

这里我们看到为什么笔者要把自定的域名写成file.hdlxdl.site了,因为后面的一级域名的后缀是不能修改的,这是一个根本。所以我们按照如何这样的配置选项最终就把我们在七牛云商上的融合CDN新建的域名进行了映射,以后我们访问file.hdlxdl.site/ 其实最终都映射到了记录值也就是CNAME对应的地址上去了,这也就是为什么我们自己定的域名地址我们可以直接通过其访问到文件的具体地址的原因了

配置图片处理(非必须)

有时候我们需要把上传到七牛云的图片添加水印,或者裁剪等处理。这个时候就可以新建一些样式这里新建完成的样式,我们可以在访问图片路径的时候追加的路径后,这样七牛云就自动给我们把图片处理为样式里定义的格式或者水印样式等。这里不过多介绍具体的样式定义读者可以自己去挨个玩
在这里插入图片描述

图片上红色箭头指向的样式,也就是我们可以直接使用在图片地址拼接后。追加到图片路径的url后即可后续代码里我们会使用到。

代码集成

添加pom依赖

其中<version>[7.2.0, 7.2.99]</version>这里的version指定了一个版本范围,每次更新pom.xml的时候会尝试去下载7.2.x版本中的最新版本,你可以手动指定一个固定的版本

   <dependency>
        <groupId>com.qiniu</groupId>
        <artifactId>qiniu-java-sdk</artifactId>
        <version>[7.2.0, 7.2.99]</version>
   </dependency>

添加参数配置

application.properties 文件添加七牛关键参数配置

# 七牛密钥,配上自己申请的七牛账号对应的密钥
qiniu.AccessKey=365WTiGZnoPEj7fXFw8LXCOYvVKP8U-tfh32NqUd
qiniu.SecretKey=fhHetsZ5QT_-j2Rayh4GHlGO0nLmn9p3Q4WJLObk
# 七牛空间名
qiniu.Bucket=zhujohnle

# 外链访问路径
qiniu.cdn.prefix=file.hdlxdl.site/

qiniu.picstyle=?watermark/2/text/6K-t57uP6K--5aCC/font/5a6L5L2T/fontsize/500/fill/I0VGRUZFRg==/dissolve/100/gravity/SouthEast/dx/10/dy/10

service核心代码
@Service
public class QiniuUploadFileServiceImpl implements IQiniuUploadFileService,InitializingBean {
   
	private static final Logger logger = LoggerFactory.getLogger(QiniuUploadFileServiceImpl.class);

	@Autowired
    private UploadManager uploadManager;
 
    @Autowired
    private BucketManager bucketManager;
 
    @Autowired
    private Auth auth;
 
    @Value("${qiniu.Bucket}")
    private String bucket;

	@Value("${qiniu.cdn.prefix}")
    private String DOMAIN;

	@Value("${qiniu.picstyle}")
	private String STYLE;


 
    /**
     * 定义七牛云上传的相关策略
     */
    p
该项目是采用目前比较流行的SpringBoot/SpringCloud构建微服务电商项目,项目叫 《果然新鲜》,实现一套串联的微服务电商项目。完全符合一线城市微服务电商的需求,对学习微服务电商架构,有非常大的帮助,该项目涵盖从微服务电商需求讨论、数据库设计、技术选型、互联网安全架构、整合SpringCloud各自组件、分布式基础设施等实现一套完整的微服务解决方案。 项目使用分布式微服务框架,涉及后台管理员服务、地址服务、物流服务、广告服务、商品服务、商品类别服务、品牌服务、订单服务 、购物车服务、首页频道服务、公告服务、留言服务、搜索服务、会员服务等。  系统架构图   SpringBoot+SpringCloud+SSM构建微服务电商项目使用SpringCloud Eureka作为注册中心,实现服务治理使用Zuul网关框架管理服务请求入口使用Ribbon实现本地负载均衡器和Feign HTTP客户端调用工具使用Hystrix服务保护框架(服务降级、隔离、熔断、限流)使用消息总线Stream RabbitMQ和 Kafka微服务API接口安全控制和单点登录系统CAS+JWT+OAuth2.0分布式基础设施构建分布式任务调度平台XXL-JOB分布式日志采集系统ELK分布式事务解决方案LCN分布式锁解决方案Zookeeper、Redis分布式配置中心(携程Apollo)高并发分布式全局ID生成(雪花算法)分布式Session框架Spring-Session分布式服务追踪与调用链Zipkin项目运营与部署环境分布式设施环境,统一采用Docker安装使用jenkins+docker+k8s实现自动部署微服务API管理ApiSwagger使用GitLab代码管理(GitHub  GitEE)统一采用第三方云数据库使用七牛云服务器对静态资源实现加速 开发环境要求JDK统一要求:JDK1.8Maven统一管理依赖 统一采用Docker环境部署编码统一采用UTF-8开发工具IDEA 或者 Eclipse 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值