RedisTest.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. import cn.reghao.dfs.store.DfsStoreApplication;
  2. import cn.reghao.dfs.store.db.mapper.DataBlockMapper;
  3. import cn.reghao.dfs.store.db.mapper.FileContentMapper;
  4. import cn.reghao.dfs.store.db.mapper.FileMetaMapper;
  5. import cn.reghao.dfs.store.model.po.DataBlock;
  6. import cn.reghao.dfs.store.model.po.FileContent;
  7. import cn.reghao.dfs.store.model.po.FileMeta;
  8. import cn.reghao.dfs.store.model.vo.ObjectMeta;
  9. import cn.reghao.dfs.store.redis.ds.RedisString;
  10. import cn.reghao.dfs.store.redis.ds.RedisStringObj;
  11. import cn.reghao.jutil.jdk.db.Page;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.junit.Test;
  14. import org.junit.runner.RunWith;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.boot.test.context.SpringBootTest;
  17. import org.springframework.test.context.ActiveProfiles;
  18. import org.springframework.test.context.junit4.SpringRunner;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.UUID;
  22. /**
  23. * @author reghao
  24. * @date 2023-03-22 16:19:12
  25. */
  26. @Slf4j
  27. @ActiveProfiles("dev")
  28. @SpringBootTest(classes = DfsStoreApplication.class)
  29. @RunWith(SpringRunner.class)
  30. public class RedisTest {
  31. String key = "dfs:store:object:";
  32. @Autowired
  33. RedisStringObj redisString;
  34. @Autowired
  35. FileMetaMapper fileMetaMapper;
  36. @Autowired
  37. DataBlockMapper dataBlockMapper;
  38. @Test
  39. public void test() {
  40. int total = fileMetaMapper.count();
  41. List<FileMeta> list = fileMetaMapper.findAll();
  42. list.forEach(fileMeta -> {
  43. String objectName = fileMeta.getObjectName();
  44. String key1 = key + objectName;
  45. redisString.set(key1, fileMeta);
  46. });
  47. }
  48. @Test
  49. public void test1() {
  50. int pageSize = 10000;
  51. int pageNumber = 1;
  52. Page page = new Page(pageNumber, pageSize);
  53. List<ObjectMeta> list = fileMetaMapper.findObjectMetaByPage(page);
  54. while (!list.isEmpty()) {
  55. list.forEach(objectMeta -> {
  56. /*List<DataBlock> list1 = dataBlockMapper.findByObjectId(objectMeta.getObjectId());
  57. if (list1.isEmpty()) {
  58. return;
  59. }*
  60. String absolutePath = list1.get(0).getAbsolutePath();
  61. objectMeta.setAbsolutePath(absolutePath);*/
  62. String objectName = objectMeta.getObjectName();
  63. String key1 = key + objectName;
  64. redisString.set(key1, objectMeta);
  65. });
  66. pageNumber++;
  67. page = new Page(pageNumber, pageSize);
  68. list = fileMetaMapper.findObjectMetaByPage(page);
  69. log.info("page -> {}", pageNumber);
  70. }
  71. }
  72. @Autowired
  73. FileContentMapper fileContentMapper;
  74. @Test
  75. public void test2() {
  76. List<FileMeta> list = fileMetaMapper.findAll();
  77. list.forEach(fileMeta -> {
  78. String objectId = fileMeta.getObjectId();
  79. List<DataBlock> list1 = dataBlockMapper.findByObjectId(objectId);
  80. if (list1.isEmpty()) {
  81. log.info("{} 为空", objectId);
  82. return;
  83. }
  84. DataBlock dataBlock = list1.get(0);
  85. String contentId = UUID.randomUUID().toString().replace("-", "");
  86. FileContent fileContent = new FileContent(contentId, objectId);
  87. dataBlock.setContentId(contentId);
  88. fileContentMapper.save(fileContent);
  89. dataBlockMapper.updateContentId(objectId, contentId);
  90. });
  91. }
  92. @Test
  93. public void test3() {
  94. List<FileMeta> list = fileMetaMapper.findAll();
  95. list.forEach(fileMeta -> {
  96. String objectId = fileMeta.getObjectId();
  97. String objectName = fileMeta.getObjectName();
  98. ObjectMeta objectMeta = fileMetaMapper.findObjectMeta1(objectName);
  99. System.out.println();
  100. });
  101. }
  102. @Test
  103. public void test4() {
  104. String objectName = "audio/playback/rZ7EKPbG41.mp3";
  105. List<String> list = getParent(objectName);
  106. List<FileMeta> fileMetas = new ArrayList<>();
  107. list.forEach(parentName -> {
  108. FileMeta fileMeta = fileMetaMapper.findByObjectName(parentName);
  109. if (fileMeta == null) {
  110. fileMetas.add(new FileMeta(parentName, 2));
  111. }
  112. });
  113. if (!fileMetas.isEmpty()) {
  114. fileMetaMapper.saveAll(fileMetas);
  115. }
  116. }
  117. void addParent(String objectName) {
  118. List<String> list = getParent(objectName);
  119. List<FileMeta> fileMetas = new ArrayList<>();
  120. list.forEach(parentName -> {
  121. FileMeta fileMeta = fileMetaMapper.findByObjectName(parentName);
  122. if (fileMeta == null) {
  123. fileMetas.add(new FileMeta(parentName, 2));
  124. }
  125. });
  126. if (!fileMetas.isEmpty()) {
  127. fileMetaMapper.saveAll(fileMetas);
  128. }
  129. }
  130. List<String> getParent(String objectName) {
  131. String[] arr = objectName.split("/");
  132. List<String> list = new ArrayList<>();
  133. list.add(arr[0] + "/");
  134. for (int i = 1; i < arr.length-1; i++) {
  135. list.add(list.get(i-1) + arr[i] + "/");
  136. }
  137. return list;
  138. }
  139. private String getUrl(String objectName) {
  140. String domain = "https://oss.reghao.cn/";
  141. StringBuilder sb = new StringBuilder();
  142. sb.append("?").append("Expires=").append("")
  143. .append("&OSSAccessId=").append("")
  144. .append("&Signature=").append("");
  145. return domain + objectName + sb.toString();
  146. }
  147. }