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
可以看到上傳完成後的圖片地址已經返回了
直接瀏覽器訪問一下這個圖片地址看一下
可以看到用配置完的域名訪問到了上傳後的圖片