🐖:首先去七牛云官网注册账号,创建自己的对象存储库
🐖:然后在自己项目中导入七牛云的依赖包
<!-- https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.28</version>
</dependency>
🐖:使用工具类uilt
public class Qiniu {
//根据七牛云的个人中心来填写
private static final String accessKey = "XXXXXXX";
private static final String secretKey = "XXXXXXX";
//自己创建的对象存储的名字
private static final String bucket = "XXX";
/**
* @param data
* @return 外键地址
*/
public static String upLoadImage(byte[] data) {
//图片的外链地址
//这里需要在七牛云控制台设置好自己的域名地址
StringBuffer imgUrl = new StringBuffer("http://XXX.XXXX.com/");
//构造一个带指定Zone对象的配置类 华北地区是zone1() 注意地区不同这里也不一样
Configuration cfg = new Configuration(Zone.zone1());
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = null;
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
//上传文件
Response response = uploadManager.put(data, key, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet);
imgUrl.append(putRet.key);
} catch (QiniuException ex) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
return imgUrl.toString();//返回我们要的Url,可以浏览器直接访问地址
}
}
🐖:以图片为例子
public Object avatar(MultipartFile multipartFile) throws IOException { //公共功能可以提出来
//MultipartFile 转成数组
byte[] imByte= multipartFile.getBytes();
String imageUrl = Qiniu.upLoadImage(imByte);
JSONObject jsonObject = new JSONObject();
jsonObject.set("avatarUrl",imageUrl);
return Result.success(jsonObject);
}