1、注册七牛账号,并新建空间,配置自定义域名拿到对应的CNAME值
注册完进入页面后,点击对象存储
然后点空间管理
点新建空间,右侧会出需要填写的信息,输入空间名称点击确定就好了
创建好了以后点击进去,点自定义域名
进入添加域名的页面,这里输入的是你最终想配置的自己的图片域名地址
配置完点击保存,系统处理完以后会给你生成一个CNAME值,从下图标红的地方点进去
点击复制下图红框的CNAME值
2、把对应的CNAME值配置到阿里云域名解析
把复制的CNAME值配置到阿里云的域名解析列表里
需要注意的是,记录类型一定要选择CNAME,然后把刚才复制的CNAME值粘贴到记录值里,点击确定
这样配置好了以后,就可以把七牛云的图片地址代理到自己的图片域名下了,就可以使用自己的图片域名去访问放到七牛云上的图片了。
3、代码实现七牛云图片上传,并用自己配置的域名进行图片访问
下面用代码实现一下上传,然后用自己配置的域名访问一下试试
首先添加七牛的依赖包
<!--七牛图片-->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.28</version>
</dependency>
@RestController
@RequestMapping("/api/v1")
@Slf4j
public class UploadImg {
@RequestMapping(value = "/image", method = RequestMethod.POST, produces = { "application/json;charset=UTF-8" })
@ResponseBody
public String createImage(@RequestParam("file")MultipartFile file){
Map<String, Object> returnMap = new HashMap<>();
try {
String image = QiniuUtil.qiniu(file,log);
returnMap.put("Image", image);
} catch (Exception e) {
HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
ArrayList<Object> objects = new ArrayList<>();
}
return JSONObject.toJSONString(returnMap);
}
}
/**
* @description: 七牛图片上传
*/
public class QiniuUtil {
public static String qiniu(MultipartFile file, Logger logger) {
Configuration cfg = new Configuration(Region.region1());
UploadManager uploadManager = new UploadManager(cfg);
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = null;
try {
//这个两个AK和SK是从七牛的密钥管理页面拿到的,可以看下边的截图
Auth auth = Auth.create("xxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxx");
//下边这个bucket参数就是你在七牛云上创建的空间名称,
//可以创建多个图片空间,上传图片的时候就是根据这个参数来判断当前的图片放在哪个图片空间里
String upToken = auth.uploadToken("cjimg002");
try {
Response response = uploadManager.put(file.getBytes(), key, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
//返回的这个域名就是在阿里云上配置的解析的那个域名
return "http://life.xxxxxx.com/" + putRet.key;
} catch (QiniuException ex) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
logger.error("全局流水[{}]七牛云上传错误", ex2);
}
}
} catch (Exception e) {
logger.error("全局流水[{}]七牛云Key错误", e);
}
return "";
}
}
代码写完后,启动项目,上传一个图片试一下
选择文件,点击send
可以看到上传完成后的图片地址已经返回了
直接浏览器访问一下这个图片地址看一下
可以看到用配置完的域名访问到了上传后的图片