76 lines
3.1 KiB
Java
76 lines
3.1 KiB
Java
|
package com.ruoyi.common.utils;
|
|||
|
|
|||
|
import com.qiniu.util.Auth;
|
|||
|
import com.qiniu.util.UrlSafeBase64;
|
|||
|
import okhttp3.OkHttpClient;
|
|||
|
import okhttp3.Request;
|
|||
|
import okhttp3.RequestBody;
|
|||
|
|
|||
|
import java.util.HashMap;
|
|||
|
import java.util.Map;
|
|||
|
import java.util.concurrent.TimeUnit;
|
|||
|
import java.util.logging.Level;
|
|||
|
import java.util.logging.Logger;
|
|||
|
|
|||
|
public class QiniuBase64UploadUtil {
|
|||
|
|
|||
|
//设置账号的ACCESS_KEY和SECRET_KEY密钥配置
|
|||
|
String ACCESS_KEY = "A3MK35bMQiqNeik5Cvv7v6huki8r6S8ISO1c9iM2";
|
|||
|
String SECRET_KEY = "FqDnpJXCifV5sHCWZnj_tqVxXDS3wfnPZT152yB0";
|
|||
|
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
|
|||
|
String bucketname = "cf-img";
|
|||
|
String upToken = auth.uploadToken(bucketname);
|
|||
|
|
|||
|
/**
|
|||
|
* base64图片上传
|
|||
|
* @param file64 base64
|
|||
|
* @param name 文件名称
|
|||
|
* @throws Exception
|
|||
|
* "http://upload.qiniup.com/putb64/"华东空间上传域名
|
|||
|
* "http://upload-z1.qiniu.com/putb64/"华北空间上传域名
|
|||
|
* "http://upload-z2.qiniu.com/putb64/"华南空间上传域名
|
|||
|
* "http://upload-na0.qiniu.com/putb64/"北美空间上传域名
|
|||
|
* @return
|
|||
|
* code 上传状态(200上传成功)
|
|||
|
* url 上传地址(code为200,才有url地址)
|
|||
|
*/
|
|||
|
public Map<String,Object> put64image(String file64,String name) throws Exception {
|
|||
|
;
|
|||
|
//-1代表自动获取长度(非华东空间需要修改上传域名)
|
|||
|
String url = "http://upload.qiniup.com/putb64/"+ -1 +"/key/"+ UrlSafeBase64.encodeToString(name);
|
|||
|
RequestBody rb = RequestBody.create(null, file64);
|
|||
|
Request request = new Request.Builder().
|
|||
|
url(url).
|
|||
|
addHeader("Content-Type", "application/octet-stream")
|
|||
|
.addHeader("Authorization", "UpToken " + upToken)
|
|||
|
.post(rb).build();
|
|||
|
OkHttpClient client = new OkHttpClient.Builder()
|
|||
|
.readTimeout(240,TimeUnit.SECONDS)//设置读取超时时间
|
|||
|
.writeTimeout(120,TimeUnit.SECONDS)//设置写的超时时间
|
|||
|
.connectTimeout(120,TimeUnit.SECONDS)//设置连接超时时间
|
|||
|
.build();
|
|||
|
Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE);
|
|||
|
okhttp3.Response response = client.newCall(request).execute();
|
|||
|
String code = response.toString().substring(response.toString().indexOf("code=")+5,response.toString().indexOf(", message"));
|
|||
|
String message = response.toString().substring(response.toString().indexOf("message=")+8,response.toString().indexOf(", url"));
|
|||
|
Map<String,Object> result = new HashMap<>();
|
|||
|
result.put("code", code);
|
|||
|
result.put("message", message);
|
|||
|
if(code.equals("200")){
|
|||
|
result.put("url", "http://fileimg.makalu.cc/"+name);
|
|||
|
}
|
|||
|
response.body().close();
|
|||
|
System.out.println(result);
|
|||
|
return result;
|
|||
|
|
|||
|
}
|
|||
|
/**
|
|||
|
* 测试
|
|||
|
* base64没有data头
|
|||
|
*/
|
|||
|
// public static void main(String[] args) throws Exception {
|
|||
|
// String file64 = "";
|
|||
|
// new QiniuBase64UploadUtil().put64image(file64,"face-"+UUID.randomUUID()+".jpg");
|
|||
|
// }
|
|||
|
}
|