Commit c8c95970 by zhangxingmin

push

parent ab25be09
package com.yd.oss.api.controller; package com.yd.oss.api.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.oss.api.service.ApiOssService; import com.yd.oss.api.service.ApiOssService;
import com.yd.oss.feign.client.ApiOssFeignClient; import com.yd.oss.feign.client.ApiOssFeignClient;
...@@ -7,9 +8,13 @@ import com.yd.oss.feign.request.ApiUploadFileRequest; ...@@ -7,9 +8,13 @@ import com.yd.oss.feign.request.ApiUploadFileRequest;
import com.yd.oss.feign.response.ApiBatchUploadResponse; import com.yd.oss.feign.response.ApiBatchUploadResponse;
import com.yd.oss.feign.response.ApiFileMetadataResponse; import com.yd.oss.feign.response.ApiFileMetadataResponse;
import com.yd.oss.feign.response.ApiUploadResponse; import com.yd.oss.feign.response.ApiUploadResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -21,6 +26,7 @@ import java.util.List; ...@@ -21,6 +26,7 @@ import java.util.List;
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-07-31
*/ */
@Slf4j
@RestController @RestController
@RequestMapping("/oss") @RequestMapping("/oss")
@Validated @Validated
...@@ -29,6 +35,9 @@ public class ApiOssController implements ApiOssFeignClient { ...@@ -29,6 +35,9 @@ public class ApiOssController implements ApiOssFeignClient {
@Autowired @Autowired
private ApiOssService apiOssService; private ApiOssService apiOssService;
@Autowired
private ObjectMapper objectMapper;
/** /**
* 上传文件 * 上传文件
* @param file 上传的文件 * @param file 上传的文件
...@@ -50,6 +59,17 @@ public class ApiOssController implements ApiOssFeignClient { ...@@ -50,6 +59,17 @@ public class ApiOssController implements ApiOssFeignClient {
return apiOssService.uploadFileBody(file,request); return apiOssService.uploadFileBody(file,request);
} }
public Result<ApiUploadResponse> uploadFileBodyWithJson(MultipartFile file,String requestJson) {
try {
// 反序列化 JSON 为 ApiUploadFileRequest
ApiUploadFileRequest request = objectMapper.readValue(requestJson, ApiUploadFileRequest.class);
return apiOssService.uploadFileBody(file, request);
} catch (Exception e) {
log.error("解析请求参数失败", e);
return Result.fail("请求参数格式错误");
}
}
/** /**
* 下载文件 * 下载文件
* @param fileKey 文件唯一标识 * @param fileKey 文件唯一标识
......
package com.yd.oss.feign.client; package com.yd.oss.feign.client;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.feign.config.FeignMultipartConfig;
import com.yd.oss.feign.fallback.ApiOssFeignFallbackFactory; import com.yd.oss.feign.fallback.ApiOssFeignFallbackFactory;
import com.yd.oss.feign.request.ApiUploadFileRequest; import com.yd.oss.feign.request.ApiUploadFileRequest;
import com.yd.oss.feign.response.ApiBatchUploadResponse; import com.yd.oss.feign.response.ApiBatchUploadResponse;
...@@ -11,8 +10,6 @@ import org.springframework.cloud.openfeign.FeignClient; ...@@ -11,8 +10,6 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import java.util.List; import java.util.List;
/** /**
...@@ -20,7 +17,6 @@ import java.util.List; ...@@ -20,7 +17,6 @@ import java.util.List;
*/ */
@FeignClient(name = "yd-oss-api", @FeignClient(name = "yd-oss-api",
path = "/oss/api/oss", path = "/oss/api/oss",
configuration = FeignMultipartConfig.class,
fallbackFactory = ApiOssFeignFallbackFactory.class) fallbackFactory = ApiOssFeignFallbackFactory.class)
public interface ApiOssFeignClient { public interface ApiOssFeignClient {
...@@ -46,7 +42,10 @@ public interface ApiOssFeignClient { ...@@ -46,7 +42,10 @@ public interface ApiOssFeignClient {
Result<ApiUploadResponse> uploadFileBody(@RequestPart("file") MultipartFile file, Result<ApiUploadResponse> uploadFileBody(@RequestPart("file") MultipartFile file,
@RequestPart("request") ApiUploadFileRequest request); @RequestPart("request") ApiUploadFileRequest request);
@PostMapping(value = "/upload/body/json", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<ApiUploadResponse> uploadFileBodyWithJson(
@RequestPart("file") MultipartFile file,
@RequestPart("request") String requestJson);
/** /**
* 下载文件 * 下载文件
......
...@@ -33,6 +33,11 @@ public class ApiOssFeignFallbackFactory implements FallbackFactory<ApiOssFeignCl ...@@ -33,6 +33,11 @@ public class ApiOssFeignFallbackFactory implements FallbackFactory<ApiOssFeignCl
} }
@Override @Override
public Result<ApiUploadResponse> uploadFileBodyWithJson(MultipartFile file, String requestJson) {
return null;
}
@Override
public Result downloadFile(String fileKey) { public Result downloadFile(String fileKey) {
return null; return null;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment