优化资源上传和记录存储

This commit is contained in:
none 2023-03-07 11:17:15 +08:00
parent 0db709cb3e
commit 4df9680361
4 changed files with 20 additions and 23 deletions

View File

@ -49,6 +49,9 @@ public class BackendConstant {
public final static String[] UPLOAD_IMAGE_CONTENT_TYPE_WL = {"image/png", "image/jpg", "image/jpeg", "image/gif"};
public final static String UPLOAD_IMAGE_DIR = "images/";
// 视频上传配置
public final static String UPLOAD_VIDEO_DIR = "videos/";
public final static String PRIVACY_FIELD_TYPE_EMAIL = "email";
public final static String PRIVACY_FIELD_TYPE_PHONE = "phone";
public final static String PRIVACY_FIELD_TYPE_NAME = "name";

View File

@ -45,8 +45,12 @@ public class DepartmentController {
@BackendPermissionMiddleware(slug = BPermissionConstant.DEPARTMENT_STORE)
@GetMapping("/create")
public JsonResponse create(@RequestParam(name = "parent_id", defaultValue = "0") Integer parentId) {
List<Department> data = departmentService.listByParentId(parentId);
public JsonResponse create() {
Map<Integer, List<Department>> departments = departmentService.all().stream().collect(Collectors.groupingBy(Department::getParentId));
HashMap<String, Object> data = new HashMap<>();
data.put("departments", departments);
return JsonResponse.data(data);
}

View File

@ -79,10 +79,6 @@ public class ResourceController {
@PostMapping("/create")
@Transactional
public JsonResponse store(@RequestBody @Validated ResourceRequest req) {
Integer categoryId = req.getCategoryId();
if (categoryService.getById(categoryId) == null) {
return JsonResponse.error("资源分类不存在");
}
String disk = req.getDisk();
if (!Arrays.asList(BackendConstant.RESOURCE_DISK_WHITELIST).contains(disk)) {
return JsonResponse.error("存储磁盘参数错误");
@ -102,7 +98,7 @@ public class ResourceController {
}
}
Resource res = resourceService.create(categoryId, type, req.getName(), extension, req.getSize(), disk, req.getFileId(), req.getPath(), req.getUrl());
Resource res = resourceService.create(req.getCategoryId(), type, req.getName(), extension, req.getSize(), disk, req.getFileId(), req.getPath(), req.getUrl());
if (isVideoType) {
resourceVideoService.create(res.getId(), duration);

View File

@ -73,12 +73,7 @@ public class UploadController {
String savePath = BackendConstant.UPLOAD_IMAGE_DIR + newFilename;
try {
PutObjectArgs objectArgs = PutObjectArgs.builder()
.bucket(minioConfig.getBucket())
.object(savePath)
.stream(file.getInputStream(), file.getSize(), -1)
.contentType(contentType)
.build();
PutObjectArgs objectArgs = PutObjectArgs.builder().bucket(minioConfig.getBucket()).object(savePath).stream(file.getInputStream(), file.getSize(), -1).contentType(contentType).build();
minioClient.putObject(objectArgs);
@ -105,12 +100,13 @@ public class UploadController {
try {
String filename = HelperUtil.randomString(32) + "." + extension;
String uploadId = playEduMinioClient.uploadId(minioConfig.getBucket(), filename);
String path = BackendConstant.UPLOAD_VIDEO_DIR + filename;
String uploadId = playEduMinioClient.uploadId(minioConfig.getBucket(), path);
HashMap<String, String> data = new HashMap<>();
data.put("resource_type", resourceType);
data.put("upload_id", uploadId);
data.put("filename", filename);
data.put("filename", path);
return JsonResponse.data(data);
} catch (Exception e) {
@ -130,13 +126,7 @@ public class UploadController {
extraQueryParams.put("partNumber", partNumber + "");
extraQueryParams.put("uploadId", uploadId);
String url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()
.bucket(minioConfig.getBucket())
.object(filename)
.method(Method.PUT)
.expiry(60 * 60 * 24)
.extraQueryParams(extraQueryParams)
.build());
String url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().bucket(minioConfig.getBucket()).object(filename).method(Method.PUT).expiry(60 * 60 * 24).extraQueryParams(extraQueryParams).build());
HashMap<String, String> data = new HashMap<>();
data.put("url", url);
@ -159,7 +149,11 @@ public class UploadController {
return JsonResponse.error("uploadId必填");
}
playEduMinioClient.merge(minioConfig.getBucket(), filename, uploadId);
return JsonResponse.success();
HashMap<String, Object> data = new HashMap<>();
data.put("url", minioConfig.getDomain() + minioConfig.getBucket() + "/" + filename);
return JsonResponse.data(data);
}
}