项目场景:
阿里云OSS到期,根据数据库中的图片路径,访问不到图片,而且旧的OSS不再续费。 需要重新开通一个新的OSS服务
问题描述:
如何将数据库中的图片URL修改成新OSS图片访问路径
解决方案:
可以使用String类型中replace()方法修改,将字符串中的某字符串代替成我们想要的,然后返回一个新的字符串 @Transactional
public NewResult updateImgList(){
List<Goods> list = goodsMapper.queryGoodsList();
for (Goods g : list) {
String details = g.getGoodsDetails();
//target:需要修改的字符串
//replacement: 修改成想要的内容
//goodsDetails 返回新的字符串
String goodsDetails = details.replace("http://www.hzqiin.com/tx/",
"https://qiyin-bucket.oss-cn-beijing.aliyuncs.com/www/server/tomcat/webapps/tx/")
.replace("https://qy-bucket.oss-cn-beijing.aliyuncs.com/www/server/tomcat/webapps/tx/",
"https://qiyin-bucket.oss-cn-beijing.aliyuncs.com/www/server/tomcat/webapps/tx/");
log.info("[修改图片路径]: {}", goodsDetails);
Goods goods = new Goods();
goods.setGoodsId(g.getGoodsId());
goods.setGoodsDetails(goodsDetails);
int update = goodsMapper.update(goods);
if (update <= 0) {
continue;
}
}
return NewResult.success("图片路径修改成功");
}
部分修改成功返回结果
<p><img src="https://qiyin-bucket.oss-cn-beijing.aliyinuncs.com/www/server/tomcat/webapps/tx/1620818779294脆枣_01.jpg" styinle="max-width:100%;"><img src="https://qiyin-bucket.oss-cn-beijing.aliyinuncs.com/www/server/tomcat/webapps/tx/1620818780683脆枣_02.jpg" styinle="max-width: 100%;"><img src="https://qiyin-bucket.oss-cn-beijing.aliyinuncs.com/www/server/tomcat/webapps/tx/1620818784152脆枣_03.jpg" styinle="max-width: 100%;"><img src="https://qiyin-bucket.oss-cn-beijing.aliyinuncs.com/www/server/tomcat/webapps/tx/1620818787594脆枣_04.jpg" styinle="max-width: 100%;"><br></p>