| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- import cn.reghao.dfs.store.db.mapper.*;
- import cn.reghao.dfs.store.model.constant.VideoUrlType;
- import cn.reghao.dfs.store.model.dto.UploadingFile;
- import cn.reghao.dfs.store.model.po.*;
- import cn.reghao.dfs.store.model.vo.ImageFileRet;
- import cn.reghao.dfs.store.model.dto.UploadedFile;
- import cn.reghao.dfs.store.service.FileUploadService;
- import cn.reghao.dfs.store.service.media.ImageFileService;
- import cn.reghao.dfs.store.service.media.MediaQuality;
- import cn.reghao.dfs.store.service.media.MediaResolution;
- import cn.reghao.jutil.jdk.http.util.UrlFormatter;
- import cn.reghao.dfs.store.DfsStoreApplication;
- import cn.reghao.jutil.tool.id.IdGenerator;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.io.FileUtils;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.test.context.ActiveProfiles;
- import org.springframework.test.context.junit4.SpringRunner;
- import java.io.*;
- import java.net.URI;
- import java.net.http.HttpClient;
- import java.net.http.HttpRequest;
- import java.net.http.HttpResponse;
- import java.time.Duration;
- import java.util.*;
- /**
- * @author reghao
- * @date 2022-04-23 17:17:50
- */
- @Slf4j
- @ActiveProfiles("dev")
- @SpringBootTest(classes = DfsStoreApplication.class)
- @RunWith(SpringRunner.class)
- public class ConsistentCheckTest {
- @Autowired
- FileUploadService fileUploadService;
- @Autowired
- ImageFileService imageFileService;
- HttpClient client = HttpClient.newBuilder()
- .version(HttpClient.Version.HTTP_1_1)
- .build();
- @Test
- public void test() {
- List<String> urls = new ArrayList<>();
- for (String url : urls) {
- try {
- HttpRequest.Builder builder = HttpRequest.newBuilder()
- .uri(URI.create(url))
- .timeout(Duration.ofSeconds(30))
- .GET();
- HttpResponse<InputStream> streamBody = client.send(builder.build(), HttpResponse.BodyHandlers.ofInputStream());
- if (streamBody.statusCode() != 200) {
- log.error("{} 获取失败", url);
- continue;
- }
- byte[] imageBytes = getBytes(streamBody.body());
- String filename = UrlFormatter.getFilename(url);
- long size = imageBytes.length;
- String contentType = "image/jpeg";
- ByteArrayInputStream inputStream = new ByteArrayInputStream(imageBytes);
- UploadingFile uploadingFile = new UploadingFile(filename, size, contentType, inputStream);
- UploadedFile uploadedFile = fileUploadService.put(uploadingFile);
- /*ImageFileRet imageFileRet = imageFileService.process(uploadedFile);
- String imageFileId = imageFileRet.getImageFileId();
- String url1 = imageFileRet.getThumbnailUrl();*/
- //saveFile(inputStream, new File(String.format("/home/reghao/Downloads/0/%s", filename)));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- private void saveFile(InputStream in, File file) throws IOException {
- File parentDir = file.getParentFile();
- if (!parentDir.exists()) {
- FileUtils.forceMkdir(parentDir);
- }
- FileOutputStream fos = new FileOutputStream(file);
- // 1MiB
- int len = 1024*1024;
- byte[] buf = new byte[len];
- int readLen;
- while ((readLen = in.read(buf, 0, len)) != -1) {
- fos.write(buf, 0, readLen);
- }
- fos.close();
- }
- private byte[] getBytes(InputStream in) throws IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- // 1MiB
- int len = 1024*1024;
- byte[] buf = new byte[len];
- int readLen;
- while ((readLen = in.read(buf, 0, len)) != -1) {
- baos.write(buf, 0, readLen);
- }
- baos.close();
- in.close();
- return baos.toByteArray();
- }
- @Test
- public void saveLocalVideoFile() throws Exception {
- String videoFileId = "wOdK71938E";
- String filePath = "/home/reghao/Downloads/mp4/0/video_720.mp4";
- saveVideoFile(videoFileId, filePath);
- }
- private void saveVideoFile(String videoFileId, String filePath) throws Exception {
- File file = new File(filePath);
- String filename = file.getName();
- long size = file.length();
- String contentType = "video/mp4";
- InputStream inputStream = new FileInputStream(file);
- UploadingFile uploadingFile = new UploadingFile(filename, size, contentType, inputStream);
- UploadedFile fileRet = fileUploadService.put(uploadingFile);
- String fileId = fileRet.getFileId();
- int width = 1280;
- int height = 720;
- MediaResolution mediaResolution = MediaQuality.getQuality(width, height);
- VideoUrl videoUrl = new VideoUrl(videoFileId, fileId, VideoUrlType.mp4.getName(),
- width, height, mediaResolution.getQuality());
- videoUrlMapper.save(videoUrl);
- }
- @Autowired
- FileInfoMapper fileInfoMapper;
- @Autowired
- FileUrlMapper fileUrlMapper;
- @Autowired
- VideoFileMapper videoFileMapper;
- @Autowired
- VideoUrlMapper videoUrlMapper;
- /**
- * 检查 FileInfo 和 FileUrl 的一致性
- * FileInfo 和 FileUrl 是 one-to-many 关系
- *
- * @param
- * @return
- * @date 2022-08-14 下午2:30
- */
- @Test
- public void fileTest() {
- int i = 0;
- List<FileInfo> list = fileInfoMapper.findAll();
- for (FileInfo fileInfo : list) {
- String fileId = fileInfo.getFileId();
- List<FileUrl> fileUrls = fileUrlMapper.findByFileId(fileId);
- if (fileUrls.size() == 0) {
- log.error("{} 没有 FileUrl", fileId);
- } else if (fileUrls.size() > 1) {
- log.error("{} 有 {} 个 FileUrl", fileId, fileUrls.size());
- }
- log.info("{}", i++);
- }
- }
- @Test
- public void videoFileTest() {
- int i = 0;
- List<FileUrl> list = fileUrlMapper.findAllVideoUrl();
- for (FileUrl fileUrl : list) {
- String fileId = fileUrl.getFileId();
- VideoUrl videoUrl = videoUrlMapper.findByFileId(fileId);
- if (videoUrl != null) {
- String videoFileId = videoUrl.getVideoFileId();
- videoUrlMapper.updateSetUrl(fileId, fileUrl.getUrl());
- VideoFile videoFile = videoFileMapper.findByVideoFileId(videoFileId);
- if (videoFile == null) {
- log.error("{} 没有 VideoFile", fileId);
- }
- } else {
- log.error("{} 没有 VideoUrl", fileId);
- }
- log.info("{}", i++);
- }
- }
- IdGenerator idGenerator = new IdGenerator("image-file-id");
- @Test
- public void imageFileTest() {
- int i = 0;
- List<FileUrl> list = fileUrlMapper.findAllImageUrl();
- for (FileUrl fileUrl : list) {
- String fileId = fileUrl.getFileId();
- log.error("{} 没有 ImageUrl", fileId);
- log.info("{}", i++);
- }
- }
- @Test
- public void videoFileTest1() {
- int i = 0;
- List<VideoFile> videoFiles = videoFileMapper.findAll();
- for (VideoFile videoFile : videoFiles) {
- String coverUrl = videoFile.getCoverUrl();
- log.error("{} 没有 ImageUrl", videoFile.getVideoFileId());
- //log.info("{}", i++);
- }
- }
- }
|