事件经过:由于前端同学不小心把上传图片服务器地址写死了测试域名(指向测试服务器),然后项目上到正式环境,一段时间后,发现用户发布商品时的商品详情富文本中的图片全部指向测试图片服务器域名,然后图片又太多了,手动逐条修复数据不太现实。
解决思路:
- 从数据库中查询商品详情富文本,分析出所有测试域名图片的
Url
地址; - 通过
Url
下载图片到本地服务器并保持图片存放路径与图片文件名和原本一致; - 通过
rsync
远程同步命令同步到正式服务器; - 修改数据库中商品图片
Url
地址指向正式服务器域名(因为路径和文件名与测试服务器一致,只需替换域名即可)。
- 从数据库中查询商品详情富文本,分析出所有测试域名图片的
- 引入
pom.xml
依赖
1 | <dependency> |
- 提供出临时接口以备调用同步图片
1 | /** |
1 | <!-- 这里测试图片服务器域名为:img-test.abc.com --> |
1 |
|
- 调用接口后,图片会先备份到本地服务器,通过rsync远程同步命令同步到正式服务器
1 | # 登录远程服务器,进入图片服务器目录 |
- 把测试域名换成正式域名访问图片成功!最后修改数据库商品详情:
1
update productInfo set detail = REPLACE(detail, 'img-test.abc.com%'', 'img.abc.com%'') where detail like like '%img-test.abc.com%'