|
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
|
|
+import org.apache.commons.io.FileUtils;
|
|
import org.apache.http.HttpEntity;
|
|
import org.apache.http.HttpEntity;
|
|
import org.apache.http.client.ClientProtocolException;
|
|
import org.apache.http.client.ClientProtocolException;
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
@@ -37,11 +38,15 @@ import org.jeecg.modules.system.service.ISysCategoryService;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
|
+import org.springframework.core.io.FileSystemResource;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
|
|
+import java.net.HttpURLConnection;
|
|
import java.net.URI;
|
|
import java.net.URI;
|
|
|
|
+import java.net.URL;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -56,13 +61,14 @@ import java.util.Map;
|
|
@Service
|
|
@Service
|
|
public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> implements IFileInfoService {
|
|
public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> implements IFileInfoService {
|
|
private static final Logger logger = LoggerFactory.getLogger(FileInfoServiceImpl.class);
|
|
private static final Logger logger = LoggerFactory.getLogger(FileInfoServiceImpl.class);
|
|
|
|
+ private FileInfo fileInfo;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> uploadVideoToBytedance(String accountId, String videoUrl) {
|
|
public Map<String, Object> uploadVideoToBytedance(String accountId, String videoUrl) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
//TODO查询是否已经上传过头条平台
|
|
//TODO查询是否已经上传过头条平台
|
|
CTopOauthToken token = tokenService.getOAuthTokenByAccountId(accountId);
|
|
CTopOauthToken token = tokenService.getOAuthTokenByAccountId(accountId);
|
|
- JSONObject resultObject = uploadAdvideo(token.getAccessToken(), videoUrl, token.getAccountId() + "");
|
|
|
|
|
|
+ JSONObject resultObject = uploadAdvideo(token, videoUrl, token.getAccountId() + "");
|
|
System.out.println(resultObject);
|
|
System.out.println(resultObject);
|
|
Integer code = resultObject.getInteger("code");
|
|
Integer code = resultObject.getInteger("code");
|
|
String message = resultObject.getString("message");
|
|
String message = resultObject.getString("message");
|
|
@@ -71,11 +77,10 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.BYTEDANCE_VIDEO_UPLOAD_FAIL.getCode());
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.BYTEDANCE_VIDEO_UPLOAD_FAIL.getCode());
|
|
return resultMap;
|
|
return resultMap;
|
|
}
|
|
}
|
|
- JSONObject data = resultObject.getJSONObject("data");
|
|
|
|
- ByteDanceVideoInfo videoInfo = new ByteDanceVideoInfo(data, token);
|
|
|
|
- videoInfoMapper.insert(videoInfo);
|
|
|
|
|
|
+ fileInfo = (FileInfo) resultObject.get("file");
|
|
|
|
+
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.COMMON_SUCCESS.getCode());
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.COMMON_SUCCESS.getCode());
|
|
- resultMap.put("videoId", videoInfo.getId());
|
|
|
|
|
|
+ resultMap.put("videoId", fileInfo.getFileId());
|
|
return resultMap;
|
|
return resultMap;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -90,7 +95,7 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
CTopOauthToken token = tokenService.getOAuthTokenByAccountId(accountId);
|
|
CTopOauthToken token = tokenService.getOAuthTokenByAccountId(accountId);
|
|
JSONArray imageIds = new JSONArray();
|
|
JSONArray imageIds = new JSONArray();
|
|
for (int i = 0; i < imageUrls.length; i++) {
|
|
for (int i = 0; i < imageUrls.length; i++) {
|
|
- JSONObject resultObject = uploadAdImage(token.getAccessToken(), imageUrls[i], token.getAccountId() + "");
|
|
|
|
|
|
+ JSONObject resultObject = uploadAdImage(token, imageUrls[i], token.getAccountId() + "");
|
|
System.out.println(resultObject);
|
|
System.out.println(resultObject);
|
|
Integer code = resultObject.getInteger("code");
|
|
Integer code = resultObject.getInteger("code");
|
|
String message = resultObject.getString("message");
|
|
String message = resultObject.getString("message");
|
|
@@ -99,10 +104,8 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.BYTEDANCE_VIDEO_UPLOAD_FAIL.getCode());
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.BYTEDANCE_VIDEO_UPLOAD_FAIL.getCode());
|
|
return resultMap;
|
|
return resultMap;
|
|
}
|
|
}
|
|
- JSONObject data = resultObject.getJSONObject("data");
|
|
|
|
- ByteDanceVideoInfo videoInfo = new ByteDanceVideoInfo(data, token);
|
|
|
|
- videoInfoMapper.insert(videoInfo);
|
|
|
|
- imageIds.add(videoInfo.getId());
|
|
|
|
|
|
+ FileInfo fileInfo = (FileInfo) resultObject.get("file");
|
|
|
|
+ imageIds.add(fileInfo.getFileId());
|
|
}
|
|
}
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.COMMON_SUCCESS.getCode());
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.COMMON_SUCCESS.getCode());
|
|
resultMap.put("imageIds", imageIds);
|
|
resultMap.put("imageIds", imageIds);
|
|
@@ -118,7 +121,7 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
public Map<String, Object> uploadImageToBytedance(String accountId, String imageUrl) {
|
|
public Map<String, Object> uploadImageToBytedance(String accountId, String imageUrl) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
CTopOauthToken token = tokenService.getOAuthTokenByAccountId(accountId);
|
|
CTopOauthToken token = tokenService.getOAuthTokenByAccountId(accountId);
|
|
- JSONObject resultObject = uploadAdImage(token.getAccessToken(), imageUrl, token.getAccountId() + "");
|
|
|
|
|
|
+ JSONObject resultObject = uploadAdImage(token, imageUrl, token.getAccountId() + "");
|
|
Integer code = resultObject.getInteger("code");
|
|
Integer code = resultObject.getInteger("code");
|
|
String message = resultObject.getString("message");
|
|
String message = resultObject.getString("message");
|
|
if (null == code || code != 0) {
|
|
if (null == code || code != 0) {
|
|
@@ -126,19 +129,18 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.BYTEDANCE_IMAGE_UPLOAD_FAIL.getCode());
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.BYTEDANCE_IMAGE_UPLOAD_FAIL.getCode());
|
|
return resultMap;
|
|
return resultMap;
|
|
}
|
|
}
|
|
- JSONObject data = resultObject.getJSONObject("data");
|
|
|
|
- ByteDanceImageInfo imageInfo = new ByteDanceImageInfo(data, token);
|
|
|
|
- imageInfoService.saveOrUpdate(imageInfo);
|
|
|
|
|
|
+ FileInfo fileInfo = (FileInfo) resultObject.get("file");
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.COMMON_SUCCESS.getCode());
|
|
ResultMapUtils.setResultMap(resultMap, StatusCode.COMMON_SUCCESS.getCode());
|
|
JSONArray array = new JSONArray();
|
|
JSONArray array = new JSONArray();
|
|
- array.add(imageInfo.getId());
|
|
|
|
|
|
+ array.add(fileInfo.getFileId());
|
|
resultMap.put("imageIds", array);
|
|
resultMap.put("imageIds", array);
|
|
return resultMap;
|
|
return resultMap;
|
|
}
|
|
}
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private IByteDanceImageInfoService imageInfoService;
|
|
private IByteDanceImageInfoService imageInfoService;
|
|
-
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ FileInfoMapper fileInfoMapper;
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> getIndustryList(String accountId, Integer level) {
|
|
public Map<String, Object> getIndustryList(String accountId, Integer level) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
@@ -198,6 +200,13 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<FileInfo> getFileInfoByMd5(String md5) {
|
|
|
|
+ QueryWrapper<FileInfo> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("md5", md5).orderByDesc("create_time");
|
|
|
|
+ return fileInfoMapper.selectList(queryWrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ISysCategoryService categoryService;
|
|
private ISysCategoryService categoryService;
|
|
@@ -253,12 +262,55 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
- public JSONObject uploadAdImage(String accessToken, String imageUrl, String advertiserId) {
|
|
|
|
|
|
+ public JSONObject uploadAdImage(CTopOauthToken token, String imageUrl, String advertiserId) {
|
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
|
+ //1:下载文件到本地
|
|
|
|
+ String imagePath = downLoadByURL(imageUrl);
|
|
|
|
+ //2: 获取MD5值
|
|
|
|
+ String md5Hex = null;
|
|
|
|
+ try {
|
|
|
|
+ md5Hex = DigestUtils.md5Hex(new FileInputStream(imagePath));
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ //3: 根据MD5值查询是否已经上传过服务器
|
|
|
|
+ List<FileInfo> getFileInfo = getFileInfoByMd5(md5Hex);
|
|
|
|
+ if (null != getFileInfo && getFileInfo.size() > 0) {//表示已经上传过服务器
|
|
|
|
+ result.put("code", 0);
|
|
|
|
+ result.put("file", getFileInfo.get(0));
|
|
|
|
+ result.put("message", "图片上传成功");
|
|
|
|
+ result.put("success", true);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+ QueryWrapper<FileInfo> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("md5", md5Hex);
|
|
|
|
+ fileInfoMapper.delete(queryWrapper);
|
|
|
|
+
|
|
|
|
+ //文件上传
|
|
|
|
+ JSONObject bytedanceObject = imageUpload(token, advertiserId, imageUrl);
|
|
|
|
+ if (null == bytedanceObject) {
|
|
|
|
+ logger.info("今日头条图片上传失败");
|
|
|
|
+ result.put("code", -1);
|
|
|
|
+ result.put("message", "今日头条文件上传失败");
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+ JSONObject data = bytedanceObject.getJSONObject("data");
|
|
|
|
+ FileInfo fileInfo = new FileInfo(md5Hex, data, advertiserId, token, "https:" + imageUrl, imagePath, "IMAGE", "1");
|
|
|
|
+ fileInfoMapper.insert(fileInfo);
|
|
|
|
+ result.put("code", 0);
|
|
|
|
+ result.put("file", fileInfo);
|
|
|
|
+ result.put("message", "图片上传成功");
|
|
|
|
+ result.put("success", true);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private JSONObject imageUpload(CTopOauthToken token, String advertiserId, String imageUrl) {
|
|
|
|
+ JSONObject result = null;
|
|
// 请求地址
|
|
// 请求地址
|
|
String url = PropertiesUtils.getValue("bytedance_config", "bytedance_api_url") + PropertiesUtils.getValue("bytedance_config", "bytedance_v2_file_image_ad");
|
|
String url = PropertiesUtils.getValue("bytedance_config", "bytedance_api_url") + PropertiesUtils.getValue("bytedance_config", "bytedance_v2_file_image_ad");
|
|
// 构造请求
|
|
// 构造请求
|
|
HttpPost httpPost = new HttpPost(url);
|
|
HttpPost httpPost = new HttpPost(url);
|
|
- httpPost.setHeader("Access-Token", accessToken);
|
|
|
|
|
|
+ httpPost.setHeader("Access-Token", token.getAccessToken());
|
|
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
|
|
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
|
|
// 其他参数
|
|
// 其他参数
|
|
entityBuilder.addTextBody("advertiser_id", advertiserId);
|
|
entityBuilder.addTextBody("advertiser_id", advertiserId);
|
|
@@ -275,13 +327,13 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
response = client.execute(httpPost);
|
|
response = client.execute(httpPost);
|
|
if (response != null && response.getStatusLine().getStatusCode() == 200) {
|
|
if (response != null && response.getStatusLine().getStatusCode() == 200) {
|
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
|
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
|
|
- StringBuffer result = new StringBuffer();
|
|
|
|
|
|
+ StringBuffer buffer = new StringBuffer();
|
|
String line = "";
|
|
String line = "";
|
|
while ((line = bufferedReader.readLine()) != null) {
|
|
while ((line = bufferedReader.readLine()) != null) {
|
|
- result.append(line);
|
|
|
|
|
|
+ buffer.append(line);
|
|
}
|
|
}
|
|
bufferedReader.close();
|
|
bufferedReader.close();
|
|
- return JSONObject.parseObject(result.toString());
|
|
|
|
|
|
+ return JSONObject.parseObject(buffer.toString());
|
|
}
|
|
}
|
|
} catch (ClientProtocolException e) {
|
|
} catch (ClientProtocolException e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -300,24 +352,103 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
- public JSONObject uploadAdvideo(String accessToken, String videoUrl, String advertiserId) {
|
|
|
|
|
|
+ @Value("${jeecg.path.image-upload}")
|
|
|
|
+ private String imageUploadPath;
|
|
|
|
+ @Value("${jeecg.path.video-upload}")
|
|
|
|
+ private String videoUploadPath;
|
|
|
|
+
|
|
|
|
+ public String downLoadByURL(String fileUrl) {
|
|
|
|
+ //获取文件名,文件名实际上在URL中可以找到
|
|
|
|
+ String fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1);
|
|
|
|
+ //这里服务器上要将此图保存的路径
|
|
|
|
+ String savePath = this.imageUploadPath + fileName;
|
|
|
|
+ try {
|
|
|
|
+ URL url = new URL("https:" + fileUrl);/*将网络资源地址传给,即赋值给url*/
|
|
|
|
+ /*此为联系获得网络资源的固定格式用法,以便后面的in变量获得url截取网络资源的输入流*/
|
|
|
|
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
|
|
|
+ DataInputStream in = new DataInputStream(connection.getInputStream());
|
|
|
|
+ /*此处也可用BufferedInputStream与BufferedOutputStream*/
|
|
|
|
+ DataOutputStream out = new DataOutputStream(new FileOutputStream(savePath));
|
|
|
|
+ /*将参数savePath,即将截取的图片的存储在本地地址赋值给out输出流所指定的地址*/
|
|
|
|
+ byte[] buffer = new byte[4096];
|
|
|
|
+ int count = 0;
|
|
|
|
+ /*将输入流以字节的形式读取并写入buffer中*/
|
|
|
|
+ while ((count = in.read(buffer)) > 0) {
|
|
|
|
+ out.write(buffer, 0, count);
|
|
|
|
+ }
|
|
|
|
+ out.close();/*后面三行为关闭输入输出流以及网络资源的固定格式*/
|
|
|
|
+ in.close();
|
|
|
|
+ connection.disconnect();
|
|
|
|
+ //返回内容是保存后的完整的URL
|
|
|
|
+ return savePath;/*网络资源截取并存储本地成功返回true*/
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ System.out.println(e + fileUrl + savePath);
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public JSONObject uploadAdvideo(CTopOauthToken token, String videoUrl, String advertiserId) {
|
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
|
+ //1:下载文件到本地
|
|
|
|
+ String videoPath = downLoadByURL(videoUrl);
|
|
|
|
+ //2: 获取MD5值
|
|
|
|
+ String md5Hex = null;
|
|
|
|
+ try {
|
|
|
|
+ md5Hex = DigestUtils.md5Hex(new FileInputStream(videoPath));
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ //3: 根据MD5值查询是否已经上传过服务器
|
|
|
|
+ List<FileInfo> getFileInfo = getFileInfoByMd5(md5Hex);
|
|
|
|
+ if (null != getFileInfo && getFileInfo.size() > 0) {//表示已经上传过服务器
|
|
|
|
+ result.put("code", 0);
|
|
|
|
+ result.put("file", getFileInfo.get(0));
|
|
|
|
+ result.put("message", "视频上传成功");
|
|
|
|
+ result.put("success", true);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ QueryWrapper<FileInfo> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("md5", md5Hex);
|
|
|
|
+ fileInfoMapper.delete(queryWrapper);
|
|
|
|
+
|
|
|
|
+ //文件上传
|
|
|
|
+ JSONObject bytedanceObject = videoUpload(token, advertiserId, videoPath);
|
|
|
|
+ if (null == bytedanceObject) {
|
|
|
|
+ logger.info("今日头条视频上传失败");
|
|
|
|
+ result.put("code", -1);
|
|
|
|
+ result.put("message", "今日头条视频上传失败");
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+ JSONObject data = bytedanceObject.getJSONObject("data");
|
|
|
|
+ FileInfo fileInfo = new FileInfo(md5Hex, data, advertiserId, token, "https:" + videoUrl, videoPath, "VIDEO", "1");
|
|
|
|
+ fileInfoMapper.insert(fileInfo);
|
|
|
|
+ result.put("code", 0);
|
|
|
|
+ result.put("file", fileInfo);
|
|
|
|
+ result.put("message", "视频上传成功");
|
|
|
|
+ result.put("success", true);
|
|
|
|
+ return result;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private JSONObject videoUpload(CTopOauthToken token, String advertiserId, String videoPath) {
|
|
CloseableHttpResponse response = null;
|
|
CloseableHttpResponse response = null;
|
|
CloseableHttpClient client = null;
|
|
CloseableHttpClient client = null;
|
|
// 请求地址
|
|
// 请求地址
|
|
String url = PropertiesUtils.getValue("bytedance_config", "bytedance_api_url") + PropertiesUtils.getValue("bytedance_config", "bytedance_v2_file_video_ad");
|
|
String url = PropertiesUtils.getValue("bytedance_config", "bytedance_api_url") + PropertiesUtils.getValue("bytedance_config", "bytedance_v2_file_video_ad");
|
|
// 构造请求
|
|
// 构造请求
|
|
HttpPost httpPost = new HttpPost(url);
|
|
HttpPost httpPost = new HttpPost(url);
|
|
- httpPost.setHeader("Access-Token", accessToken);
|
|
|
|
|
|
+ httpPost.setHeader("Access-Token", token.getAccessToken());
|
|
// 文件参数
|
|
// 文件参数
|
|
try {
|
|
try {
|
|
- videoUrl = "https:" + videoUrl;
|
|
|
|
- URI uri = new URI(videoUrl);
|
|
|
|
- FileBody file = new FileBody(new File(uri));
|
|
|
|
- MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create().addPart("video_file", file);
|
|
|
|
|
|
+
|
|
|
|
+ FileBody file = new FileBody(new File(videoPath));
|
|
|
|
+ MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create()
|
|
|
|
+ .addPart("video_file", file);
|
|
// 其他参数
|
|
// 其他参数
|
|
entityBuilder.addTextBody("advertiser_id", advertiserId);
|
|
entityBuilder.addTextBody("advertiser_id", advertiserId);
|
|
- //TODO 需要后期优化修改代码逻辑
|
|
|
|
- entityBuilder.addTextBody("image_signature", DigestUtils.md5Hex(new FileInputStream(new File(uri))));
|
|
|
|
|
|
+ entityBuilder.addTextBody("video_signature", DigestUtils.md5Hex(new FileInputStream(new File(videoPath))));
|
|
HttpEntity entity = entityBuilder.build();
|
|
HttpEntity entity = entityBuilder.build();
|
|
client = HttpClientBuilder.create().build();
|
|
client = HttpClientBuilder.create().build();
|
|
httpPost.setURI(URI.create(url));
|
|
httpPost.setURI(URI.create(url));
|
|
@@ -347,6 +478,15 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private ICTopOauthTokenService tokenService;
|
|
private ICTopOauthTokenService tokenService;
|
|
|
|
+
|
|
|
|
+ public static void main(String[] args) throws Exception {
|
|
|
|
+
|
|
|
|
+// FileUtils.copyURLToFile(new URL("https://ctop-media.oss-cn-beijing.aliyuncs.com/%E9%AB%98%E6%B8%85%E7%89%882-1565344662650.mp4"),new File("D://1234.mp4"));
|
|
|
|
+// File file = new File("https://ctop-media.oss-cn-beijing.aliyuncs.com/%E9%AB%98%E6%B8%85%E7%89%882-1565344662650.mp4");
|
|
|
|
+// FileInputStream fis = new FileInputStream(file);
|
|
|
|
+// fis.read();
|
|
|
|
+ }
|
|
}
|
|
}
|