Browse Source

feature1.0.0-Img:优化七牛云配置

master
penny 4 years ago
parent
commit
d99cb5b6d9
  1. 32
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/QiniuConfig.java
  2. 57
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java
  3. 10
      bnyer-services/bnyer-file/src/main/resources/bootstrap.yml

32
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/QiniuConfig.java

@ -0,0 +1,32 @@
package com.bnyer.file.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
@Configuration
@RefreshScope
@Getter
@Setter
public class QiniuConfig {
@Value("${qiniu.accessKey}")
private String accessKey;
@Value("${qiniu.secretKey}")
private String secretKey;
@Value("${qiniu.bucketName}")
private String bucketName;
@Value("${qiniu.url}")
private String url;
@Value("${qiniu.qiniuHostUrl}")
private String qiniuHostUrl;
@Value("${qiniu.qiniuCheckImgUrl}")
private String qiniuCheckImgUrl;
}

57
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java

@ -1,10 +1,9 @@
package com.bnyer.file.service.impl; package com.bnyer.file.service.impl;
import cn.hutool.core.net.multipart.UploadFile;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.codec.Base64; import com.alibaba.nacos.common.codec.Base64;
import com.bnyer.common.core.domain.R; import com.bnyer.file.config.QiniuConfig;
import com.bnyer.file.service.IQiniuService; import com.bnyer.file.service.IQiniuService;
import com.bnyer.file.utils.StringUtil; import com.bnyer.file.utils.StringUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -18,7 +17,7 @@ import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth; import com.qiniu.util.Auth;
import com.qiniu.util.StringMap; import com.qiniu.util.StringMap;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -33,23 +32,15 @@ import java.util.ArrayList;
* @Date: 2022-06-08-10:51 * @Date: 2022-06-08-10:51
* @Description: * @Description:
*/ */
@Service("qiniuService") @Service
public class QiniuServiceImpl implements IQiniuService { public class QiniuServiceImpl implements IQiniuService {
@Value("${qiniu.accessKey}")
private static String accessKey;
@Value("${qiniu.secretKey}") @Autowired
private static String secretKey; private QiniuConfig qiniuConfig;
@Value("${qiniu.bucketName}")
private static String bucketName;
@Value("${qiniu.url}")
private static String url;
private String token = null; private String token = null;
private UploadManager uploadManager; private UploadManager uploadManager;
private static Zone zone = new Zone.Builder(Zone.autoZone()) private Zone zone = new Zone.Builder(Zone.autoZone())
.upHttp("http://upload.qiniup.com") .upHttp("http://upload.qiniup.com")
.upHttps("http://upload.qiniup.com") .upHttps("http://upload.qiniup.com")
.upBackupHttp("http://upload.qiniup.com") .upBackupHttp("http://upload.qiniup.com")
@ -60,18 +51,18 @@ public class QiniuServiceImpl implements IQiniuService {
.iovipHttp("http://iovip.qbox.me").build(); .iovipHttp("http://iovip.qbox.me").build();
@Override @Override
public String userUpload(MultipartFile file) { public String userUpload(MultipartFile file) {
String s = updloadFile(file); return this.updloadFile(file);
return s;
} }
public static String updloadFile(MultipartFile file){ public String updloadFile(MultipartFile file){
String url = null;
// 获取文件的名称 // 获取文件的名称
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
//构造一个带指定 Region 对象的配置类 //构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(zone); Configuration cfg = new Configuration(zone);
cfg.useHttpsDomains=false; cfg.useHttpsDomains=false;
UploadManager uploadManager = new UploadManager(cfg); UploadManager uploadManager = new UploadManager(cfg);
Auth auth = Auth.create(accessKey, secretKey); Auth auth = Auth.create(qiniuConfig.getAccessKey(), qiniuConfig.getSecretKey());
String token = auth.uploadToken(bucketName); String token = auth.uploadToken(qiniuConfig.getBucketName());
// 使用工具类根据上传文件生成唯一图片名称 // 使用工具类根据上传文件生成唯一图片名称
String imgName = StringUtil.getRandomImgName(fileName); String imgName = StringUtil.getRandomImgName(fileName);
if (!file.isEmpty()) { if (!file.isEmpty()) {
@ -80,7 +71,7 @@ public class QiniuServiceImpl implements IQiniuService {
inputStream=(FileInputStream) file.getInputStream(); inputStream=(FileInputStream) file.getInputStream();
Response response = uploadManager.put(inputStream, imgName, token,null,null); Response response = uploadManager.put(inputStream, imgName, token,null,null);
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
url=url+"/"+putRet.key; url=qiniuConfig.getUrl()+"/"+putRet.key;
//System.out.println(putRet.hash); //System.out.println(putRet.hash);
inputStream.close(); inputStream.close();
} catch (QiniuException ex) { } catch (QiniuException ex) {
@ -105,16 +96,15 @@ public class QiniuServiceImpl implements IQiniuService {
* @param imageUrl 图片的url地址或者图片Base64编码Base64编码请求时应在开头加上data:application/octet-stream;base64, * @param imageUrl 图片的url地址或者图片Base64编码Base64编码请求时应在开头加上data:application/octet-stream;base64,
* @return JSONObject * @return JSONObject
*/ */
public static JSONObject checkImageContent(String imageUrl) { public JSONObject checkImageContent(String imageUrl) {
//基础参数拼接 //基础参数拼接
String url = "http://ai.qiniuapi.com/v3/image/censor"; String url = qiniuConfig.getQiniuCheckImgUrl();
String host = "ai.qiniuapi.com"; String host = qiniuConfig.getQiniuHostUrl();
String body = "{ \"data\": { \"uri\": \""+imageUrl+"\" }, \"params\": { \"scenes\": [ \"pulp\", \"terror\", \"politician\" ] } }"; String body = "{ \"data\": { \"uri\": \""+imageUrl+"\" }, \"params\": { \"scenes\": [ \"pulp\", \"terror\", \"politician\" ] } }";
String contentType = "application/json"; String contentType = "application/json";
String method = "POST"; String method = "POST";
String accessKey="p53_UbfvTkc_EsRZU-neo7FN6dK1TpEhH9xpHf1q"; String accessKey= qiniuConfig.getAccessKey();
String secretKey="1W3byAEOKcsz7fKdE_ndCDJy6u_IGojH4A_fwuQx"; String secretKey= qiniuConfig.getSecretKey();
Auth auth = Auth.create(accessKey, secretKey); Auth auth = Auth.create(accessKey, secretKey);
String qiniuToken = "Qiniu " + auth.signRequestV2(url, method, body.getBytes(), contentType); String qiniuToken = "Qiniu " + auth.signRequestV2(url, method, body.getBytes(), contentType);
//log.info("url={},body={},qiniuToken={}",url,body,qiniuToken); //log.info("url={},body={},qiniuToken={}",url,body,qiniuToken);
@ -239,10 +229,11 @@ public class QiniuServiceImpl implements IQiniuService {
} }
return ""; return "";
} }
public static void main(String[] args) { // public static void main(String[] args) {
String imageString = getImageString("C:\\Users\\ASUS\\Documents\\WeChat Files\\wxid_vzk0z5ghy6q922\\FileStorage\\File\\2020-09\\20220608134731.png"); //
JSONObject jsonObject = checkImageContent("data:application/octet-stream;base64," + imageString); // String imageString = getImageString("C:\\Users\\ASUS\\Documents\\WeChat Files\\wxid_vzk0z5ghy6q922\\FileStorage\\File\\2020-09\\20220608134731.png");
System.out.println(JSON.parseObject(jsonObject.get("result").toString()).get("suggestion").toString()); // JSONObject jsonObject = checkImageContent("data:application/octet-stream;base64," + imageString);
System.out.println(jsonObject); // System.out.println(JSON.parseObject(jsonObject.get("result").toString()).get("suggestion").toString());
} // System.out.println(jsonObject);
// }
} }

10
bnyer-services/bnyer-file/src/main/resources/bootstrap.yml

@ -16,13 +16,3 @@ spring:
servlet: servlet:
multipart: multipart:
maxFileSize: 5MB maxFileSize: 5MB
qiniu:
accessKey: p53_UbfvTkc_EsRZU-neo7FN6dK1TpEhH9xpHf1q
secretKey: 1W3byAEOKcsz7fKdE_ndCDJy6u_IGojH4A_fwuQx
url: http://rd582ra2f.hd-bkt.clouddn.com/
bucketName: cyjd
tiktok:
appId: ttc408b2b55b364f6601
secret: 58ac3ac54e7f9899cdc61a09d7f0a018b5049fd4
grant_type: client_credential

Loading…
Cancel
Save