diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/TikTokConfig.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/TikTokConfig.java index 03dfb26..a8ae6bf 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/TikTokConfig.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/TikTokConfig.java @@ -24,4 +24,10 @@ public class TikTokConfig { @Value("${tiktok.grant_type}") private String grant_type; + + @Value("${tiktok.tokenUrl}") + private String tokenUrl; + + @Value("${tiktok.checkImgUrl}") + private String checkImgUrl; } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java index 1b31dec..fe1bf7c 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java @@ -1,13 +1,13 @@ package com.bnyer.file.controller; -import com.alibaba.fastjson.JSONObject; import com.bnyer.common.core.domain.R; import com.bnyer.file.service.IFileService; import com.bnyer.file.service.IQiniuService; -import com.bnyer.file.service.ITikTokImage; import com.bnyer.file.service.MinioService; import com.bnyer.file.utils.ImgUtil; import com.bnyer.file.vo.TiktokImgVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -26,6 +25,7 @@ import java.util.List; * * @author ruoyi */ +@Api(value = "文件上传接口",tags = "文件上传接口") @RestController @Slf4j public class SysFileController { @@ -34,13 +34,12 @@ public class SysFileController { @Autowired private IQiniuService qiniuService; @Autowired - private ITikTokImage tikTokImage; - @Autowired private IFileService fileService; /** * 批量上传图片 */ + @ApiOperation(value="批量上传到七牛云") @PostMapping("/uploadBatch") public R> uploadBatch(MultipartFile[] files) { try { @@ -63,6 +62,7 @@ public class SysFileController { * @return * @throws IOException */ + @ApiOperation(value="批量压缩上传到七牛云") @PostMapping("/uploadBatchCompImg") public R> compression(MultipartFile[] files) throws IOException { List list = new ArrayList<>(); @@ -80,6 +80,7 @@ public class SysFileController { /** * 批量审核 */ + @ApiOperation(value="批量图片审核") @PostMapping("/checkBatch") public R> checkBatch(ArrayList files) { try { @@ -91,34 +92,7 @@ public class SysFileController { return R.fail("上传文件失败"); } } - - @PostMapping("/upload") - @ResponseBody - public R upload(@RequestParam("file") MultipartFile file) { - String url = null; - try { - //url = minioService.uploadFile(file); - // url=qiniuService.userUpload(file); - String imageString = ImgUtil.getImageString(file); - //System.out.println(imageString); - //JSONObject jsonObject = qiniuService.checkImageContent("data:application/octet-stream;base64," + imageString); - System.out.println("================================="); - //System.out.println(jsonObject); - tikTokImage.checkImageContent(file); - } catch (Exception e) { - log.error("文件上传失败,原因为:【{}】", e.getMessage()); - return R.fail("文件上传失败!"); - } - return R.ok(url); - } - - @PostMapping("/download") - @ResponseBody - public R download(@RequestParam("fileName") String fileName, HttpServletResponse response) { - minioService.download(fileName, response); - return R.ok(); - } - + @ApiOperation(value="批量上传到minio") @PostMapping("/uploadBanner") @ResponseBody public R uploadBanner(@RequestParam("file") MultipartFile file) { diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IQiniuService.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IQiniuService.java index c023d30..9c845c7 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IQiniuService.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IQiniuService.java @@ -1,14 +1,17 @@ package com.bnyer.file.service; -import com.alibaba.fastjson.JSONObject; import org.springframework.web.multipart.MultipartFile; -import java.io.File; import java.util.ArrayList; public interface IQiniuService { String userUpload(MultipartFile file); + /** + * 检查图片内容是否符合规定 + * @param imageUrl 图片的url地址或者图片Base64编码(Base64编码请求时应在开头加上data:application/octet-stream;base64,) + * @return JSONObject + */ String checkImageContent(String imageUrl); /** diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java index 75a1e16..d55751e 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java @@ -2,10 +2,8 @@ package com.bnyer.file.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.alibaba.nacos.common.codec.Base64; import com.bnyer.file.config.QiniuConfig; import com.bnyer.file.service.IQiniuService; -import com.bnyer.file.utils.ImgUtil; import com.bnyer.file.utils.StringUtil; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; @@ -22,8 +20,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -92,11 +88,7 @@ public class QiniuServiceImpl implements IQiniuService { return "error"; } - /** - * 检查图片内容是否符合规定 - * @param imageUrl 图片的url地址或者图片Base64编码(Base64编码请求时应在开头加上data:application/octet-stream;base64,) - * @return JSONObject - */ + @Override public String checkImageContent(String imageUrl) { //基础参数拼接 @@ -145,6 +137,7 @@ public class QiniuServiceImpl implements IQiniuService { * @param multipartFiles * @return 格式正确的文件 */ + @Override public ArrayList checkImageFormat(ArrayList multipartFiles){ ArrayList afterCheckFiles = new ArrayList<>(); for (MultipartFile multipartFile : multipartFiles) { diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/TikTokImageServiceImpl.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/TikTokImageServiceImpl.java index e3a12ee..2a55015 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/TikTokImageServiceImpl.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/TikTokImageServiceImpl.java @@ -3,34 +3,14 @@ package com.bnyer.file.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.alibaba.nacos.common.codec.Base64; import com.bnyer.file.config.TikTokConfig; -import com.bnyer.file.service.IQiniuService; import com.bnyer.file.service.ITikTokImage; import com.bnyer.file.utils.HttpUtils; import com.bnyer.file.utils.ImgUtil; -import com.bnyer.file.utils.StringUtil; -import com.google.gson.Gson; -import com.google.gson.JsonSyntaxException; -import com.qiniu.common.QiniuException; -import com.qiniu.common.Zone; -import com.qiniu.http.Client; -import com.qiniu.http.Response; -import com.qiniu.storage.Configuration; -import com.qiniu.storage.UploadManager; -import com.qiniu.storage.model.DefaultPutRet; -import com.qiniu.util.Auth; -import com.qiniu.util.StringMap; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; import java.util.HashMap; /** @@ -43,12 +23,6 @@ public class TikTokImageServiceImpl implements ITikTokImage { @Autowired private TikTokConfig tikTokConfig; - private String getTokenUrl="https://developer.toutiao.com/api/apps/v2/token"; - - private String checkImgUrl="https://developer.toutiao.com/api/apps/censor/image"; - public static void main(String[] args) { - } - @Override public Boolean checkImageContent(MultipartFile file) { String token=""; @@ -57,7 +31,7 @@ public class TikTokImageServiceImpl implements ITikTokImage { param.put("secret", tikTokConfig.getSecret()); param.put("grant_type", tikTokConfig.getGrant_type()); String body = JSON.toJSONString(param); - String res = HttpUtils.sendPost(getTokenUrl, body); + String res = HttpUtils.sendPost(tikTokConfig.getTokenUrl(), body); String err_tips = JSON.parseObject(res).get("err_tips").toString(); if (err_tips.equals("success")){ res=JSON.parseObject(res).get("data").toString(); @@ -69,7 +43,7 @@ public class TikTokImageServiceImpl implements ITikTokImage { checkParam.put("access_token", token); checkParam.put("image_data", ImgUtil.getImageString(file)); String checkBody = JSON.toJSONString(checkParam); - String checkRes = HttpUtils.sendPost(checkImgUrl, checkBody); + String checkRes = HttpUtils.sendPost(tikTokConfig.getCheckImgUrl(), checkBody); JSONObject jsonObject = JSON.parseObject(checkRes); JSONArray predicts = JSON.parseArray(jsonObject.get("predicts").toString()); for (Object predict : predicts) { diff --git a/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml b/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml index c56e817..ccea5fc 100644 --- a/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml +++ b/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml @@ -12,7 +12,7 @@ spring: name: bnyer-file profiles: # 环境配置 - active: prod + active: dev servlet: multipart: maxFileSize: 5MB