| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.fasterxml.jackson.databind.SerializationFeature; |
| | | import com.github.therapi.runtimejavadoc.repack.com.eclipsesource.json.Json; |
| | | import org.apache.commons.io.IOUtils; |
| | | import org.apache.xmlbeans.impl.common.IOUtil; |
| | | import org.dromara.common.core.constant.CacheNames; |
| | | import org.dromara.common.core.domain.R; |
| | | import org.dromara.common.core.domain.model.LoginUser; |
| | |
| | | import org.dromara.common.oss.core.OssClient; |
| | | import org.dromara.common.oss.entity.SynchronousRequest; |
| | | import org.dromara.common.oss.entity.UploadResult; |
| | | import org.dromara.common.oss.entity.VideoRequest; |
| | | import org.dromara.common.oss.enumd.AccessPolicyType; |
| | | import org.dromara.common.oss.factory.OssFactory; |
| | | import org.dromara.common.satoken.utils.LoginHelper; |
| | | import org.dromara.system.domain.SysOss; |
| | | import org.dromara.system.domain.bo.SysOssBo; |
| | | import org.dromara.system.domain.properties.Boundary; |
| | | import org.dromara.system.domain.vo.SysOssVo; |
| | | import org.dromara.system.mapper.SysOssMapper; |
| | | import org.dromara.system.service.ISysOssService; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.*; |
| | | import java.net.URLEncoder; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | @Service |
| | | public class SysOssServiceImpl implements ISysOssService, OssService { |
| | | |
| | | private final Boundary boundary; |
| | | private final SysOssMapper baseMapper; |
| | | |
| | | @Override |
| | |
| | | return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult, file); |
| | | } |
| | | |
| | | @Override |
| | | public SysOssVo upload3(VideoRequest request) throws IOException { |
| | | |
| | | String originalfileName = request.getFileName(); |
| | | String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); |
| | | OssClient storage = OssFactory.instance(); |
| | | UploadResult uploadResult; |
| | | try { |
| | | uploadResult = storage.uploadSuffix(request.getFile().getBytes(), suffix, request.getFile().getContentType()); |
| | | } catch (IOException e) { |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | | // 保存文件信息 |
| | | return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult, request.getFile()); |
| | | } |
| | | |
| | | /** |
| | | * 同步 |
| | | * 同步 定时拉取 |
| | | * @param |
| | | * @param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public SysOssVo upload2(SynchronousRequest request) { |
| | | String originalfileName = request.getFile().getOriginalFilename(); |
| | | public SysOssVo upload2(SynchronousRequest request) throws ParseException { |
| | | String originalfileName = request.getFileName(); |
| | | String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); |
| | | OssClient storage = OssFactory.instance(); |
| | | // String type = request.getFileName().substring(14,request.getFileName().length()); |
| | | String type = request.getFile().getContentType(); |
| | | UploadResult uploadResult; |
| | | try { |
| | | uploadResult = storage.uploadSuffix2(request.getFile().getBytes(), request.getPath(), type); |
| | | } catch (IOException e) { |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | | // 保存文件信息 |
| | | System.out.println("canshu:" + "," + originalfileName +"," + suffix +"," + storage.getConfigKey() +"," + uploadResult + "," +request.getOssId() |
| | | +"," + request.getPassword() +"," + request.getCreateBy() +"," + request.getFileName() +"," + request.getCreateTime()); |
| | | return buildResultEntity2(originalfileName, suffix, storage.getConfigKey(), uploadResult,request.getOssId(), |
| | | request.getPassword(), "1731588854831022081", request.getFileName(), request.getCreateTime()); |
| | | } |
| | | |
| | | /** |
| | | * 同步 定时拉取 |
| | | * @param |
| | | * @param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public SysOssVo upload3(SynchronousRequest request) throws ParseException { |
| | | String originalfileName = request.getFileName(); |
| | | String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); |
| | | OssClient storage = OssFactory.instance(); |
| | | UploadResult uploadResult; |
| | |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | | // 保存文件信息 |
| | | System.out.println("canshu:" + "," + originalfileName +"," + suffix +"," + storage.getConfigKey() +"," + uploadResult + "," +request.getOssId() |
| | | +"," + request.getPassword() +"," + request.getCreateBy() +"," + request.getFileName() +"," + request.getCreateTime()); |
| | | return buildResultEntity2(originalfileName, suffix, storage.getConfigKey(), uploadResult,request.getOssId(), |
| | | request.getPassword(), request.getCreateBy()); |
| | | request.getPassword(), "1731588854831022081", request.getFileName(), request.getCreateTime()); |
| | | } |
| | | |
| | | // @Override |
| | |
| | | baseMapper.insert(oss); |
| | | //拼接同步信息 |
| | | SynchronousRequest request = new SynchronousRequest(); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | request.setFile(file); |
| | | request.setPath(uploadResult.getFilename() + "123"); |
| | | // request.setCreateTime(new Date()); |
| | | request.setFileName(oss.getOriginalName()); |
| | | request.setPath(uploadResult.getFilename()); |
| | | request.setCreateTime(format.format(oss.getCreateTime())); |
| | | request.setPassword(oss.getPassword()); |
| | | request.setCreateBy(String.valueOf(oss.getCreateBy())); |
| | | request.setCreateBy("1731588854831022081"); |
| | | request.setOssId(String.valueOf(oss.getOssId())); |
| | | // request.setOssId("123890"); |
| | | post(request); |
| | | |
| | | SysOssVo sysOssVo = MapstructUtils.convert(oss, SysOssVo.class); |
| | |
| | | @NotNull |
| | | private SysOssVo buildResultEntity2(String originalfileName, String suffix, String configKey, |
| | | UploadResult uploadResult, String ossId, String password, |
| | | String createBy) { |
| | | String createBy, String fileName, String createTime) throws ParseException { |
| | | SysOss oss = new SysOss(); |
| | | oss.setOssId(Long.valueOf(ossId.substring(0,ossId.length()-3) + "000")); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | oss.setOssId(Long.valueOf(ossId)); |
| | | oss.setUrl(uploadResult.getUrl()); |
| | | oss.setFileSuffix(suffix); |
| | | oss.setFileName(uploadResult.getFilename()); |
| | | oss.setOriginalName(originalfileName); |
| | | oss.setOriginalName(fileName); |
| | | oss.setService(configKey); |
| | | oss.setPassword(password); |
| | | oss.setCreateTime(new Date()); |
| | | oss.setCreateBy(Long.valueOf(createBy)); |
| | | oss.setCreateTime(format.parse(createTime)); |
| | | baseMapper.insert(oss); |
| | | SysOssVo sysOssVo = MapstructUtils.convert(oss, SysOssVo.class); |
| | | return this.matchingUrl(sysOssVo); |
| | |
| | | storage.delete(sysOss.getUrl()); |
| | | if(sysOss.getPassword().equals(password) || password.equals("000000")){ |
| | | baseMapper.deleteById(sysOss.getOssId()); |
| | | HttpUtils.sendDeleteRequest("http://192.168.3.43/resource/synchronization/delete",String.valueOf(sysOss.getOssId())); |
| | | // HttpUtils.sendDeleteRequest(boundary.getVideo() + "/resource/synchronization/delete",String.valueOf(sysOss.getOssId())); |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public R viewPasswordById(Long ossId) { |
| | |
| | | |
| | | private String post(SynchronousRequest request) throws IOException { |
| | | HashMap<String, String> headers = new HashMap<>(3); |
| | | String requestUrl = "http://192.168.3.43:8080/resource/synchronization/upload"; |
| | | String requestUrl = boundary.getVideo() + "/resource/synchronization/upload"; |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | String jsonString = ""; |
| | | try { |
| | | // 将Java对象转换为JSON字符串 |
| | | jsonString = objectMapper.writeValueAsString(request); |
| | | System.out.println(jsonString); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); |
| | | headers.put("content-type", "application/json"); |
| | | // 发送post请求 |
| | | String resultData = HttpUtils.sendPostRequest(requestUrl, request); |