Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-oss
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-oss
Commits
c8243422
Commit
c8243422
authored
Jan 21, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test
parents
ef5879d3
0998a6ac
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
186 additions
and
0 deletions
+186
-0
yd-oss-api/src/main/java/com/yd/oss/api/controller/ApiOssController.java
+14
-0
yd-oss-api/src/main/java/com/yd/oss/api/service/ApiOssService.java
+10
-0
yd-oss-api/src/main/java/com/yd/oss/api/service/impl/ApiOssServiceImpl.java
+25
-0
yd-oss-feign/src/main/java/com/yd/oss/feign/client/ApiOssFeignClient.java
+14
-0
yd-oss-feign/src/main/java/com/yd/oss/feign/fallback/ApiOssFeignFallbackFactory.java
+8
-0
yd-oss-feign/src/main/java/com/yd/oss/feign/response/ApiBatchUploadResponse.java
+54
-0
yd-oss-service/src/main/java/com/yd/oss/service/service/OssService.java
+5
-0
yd-oss-service/src/main/java/com/yd/oss/service/service/impl/AliYunOssServiceImpl.java
+56
-0
No files found.
yd-oss-api/src/main/java/com/yd/oss/api/controller/ApiOssController.java
View file @
c8243422
...
@@ -4,6 +4,7 @@ import com.yd.common.result.Result;
...
@@ -4,6 +4,7 @@ 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
;
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.ApiFileMetadataResponse
;
import
com.yd.oss.feign.response.ApiFileMetadataResponse
;
import
com.yd.oss.feign.response.ApiUploadResponse
;
import
com.yd.oss.feign.response.ApiUploadResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -12,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -12,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
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
;
import
java.util.List
;
/**
/**
* OSS接口信息
* OSS接口信息
*
*
...
@@ -108,4 +111,15 @@ public class ApiOssController implements ApiOssFeignClient {
...
@@ -108,4 +111,15 @@ public class ApiOssController implements ApiOssFeignClient {
public
Result
<
ApiFileMetadataResponse
>
getFileMetadata
(
String
fileKey
)
{
public
Result
<
ApiFileMetadataResponse
>
getFileMetadata
(
String
fileKey
)
{
return
apiOssService
.
getFileMetadata
(
fileKey
,
""
,
""
);
return
apiOssService
.
getFileMetadata
(
fileKey
,
""
,
""
);
}
}
/**
* 批量上传文件 - body入参方式
* @param files 上传的文件列表
* @param request 批量上传请求参数
* @return 批量上传响应
*/
@Override
public
Result
<
ApiBatchUploadResponse
>
batchUploadFiles
(
List
<
MultipartFile
>
files
,
ApiUploadFileRequest
request
)
{
return
apiOssService
.
batchUploadFiles
(
files
,
request
);
}
}
}
yd-oss-api/src/main/java/com/yd/oss/api/service/ApiOssService.java
View file @
c8243422
...
@@ -2,11 +2,13 @@ package com.yd.oss.api.service;
...
@@ -2,11 +2,13 @@ package com.yd.oss.api.service;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
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.ApiFileMetadataResponse
;
import
com.yd.oss.feign.response.ApiFileMetadataResponse
;
import
com.yd.oss.feign.response.ApiUploadResponse
;
import
com.yd.oss.feign.response.ApiUploadResponse
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
public
interface
ApiOssService
{
public
interface
ApiOssService
{
Result
<
ApiUploadResponse
>
uploadFile
(
MultipartFile
file
,
String
bucket
,
String
provider
,
String
uploadUser
);
Result
<
ApiUploadResponse
>
uploadFile
(
MultipartFile
file
,
String
bucket
,
String
provider
,
String
uploadUser
);
...
@@ -25,4 +27,12 @@ public interface ApiOssService {
...
@@ -25,4 +27,12 @@ public interface ApiOssService {
Result
<
ApiFileMetadataResponse
>
getFileMetadata
(
String
fileKey
,
String
bucket
,
String
provider
);
Result
<
ApiFileMetadataResponse
>
getFileMetadata
(
String
fileKey
,
String
bucket
,
String
provider
);
/**
* 批量上传文件
* @param files 文件列表
* @param request 批量上传请求参数
* @return 批量上传响应
*/
Result
<
ApiBatchUploadResponse
>
batchUploadFiles
(
List
<
MultipartFile
>
files
,
ApiUploadFileRequest
request
);
}
}
yd-oss-api/src/main/java/com/yd/oss/api/service/impl/ApiOssServiceImpl.java
View file @
c8243422
...
@@ -4,6 +4,7 @@ import com.alibaba.cloud.commons.lang.StringUtils;
...
@@ -4,6 +4,7 @@ import com.alibaba.cloud.commons.lang.StringUtils;
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.request.ApiUploadFileRequest
;
import
com.yd.oss.feign.request.ApiUploadFileRequest
;
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
com.yd.oss.service.dto.FileMetadata
;
import
com.yd.oss.service.dto.FileMetadata
;
...
@@ -22,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
...
@@ -22,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.time.Duration
;
import
java.time.Duration
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
@Slf4j
@Slf4j
...
@@ -236,4 +238,27 @@ public class ApiOssServiceImpl implements ApiOssService {
...
@@ -236,4 +238,27 @@ public class ApiOssServiceImpl implements ApiOssService {
}
}
}
}
/**
* 批量上传文件
* @param files 文件列表
* @param request 批量上传请求参数
* @return 批量上传响应
*/
@Override
public
Result
<
ApiBatchUploadResponse
>
batchUploadFiles
(
List
<
MultipartFile
>
files
,
ApiUploadFileRequest
request
)
{
try
{
// 转换请求参数
OssUploadFileReqDto
reqDto
=
new
OssUploadFileReqDto
();
BeanUtils
.
copyProperties
(
request
,
reqDto
);
// 调用服务层批量上传方法
ApiBatchUploadResponse
response
=
ossService
.
batchUploadFiles
(
files
,
reqDto
);
return
Result
.
success
(
response
);
}
catch
(
Exception
e
)
{
log
.
error
(
"批量上传文件失败"
,
e
);
return
Result
.
fail
(
"批量上传文件失败: "
+
e
.
getMessage
());
}
}
}
}
yd-oss-feign/src/main/java/com/yd/oss/feign/client/ApiOssFeignClient.java
View file @
c8243422
...
@@ -3,6 +3,7 @@ package com.yd.oss.feign.client;
...
@@ -3,6 +3,7 @@ package com.yd.oss.feign.client;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
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.ApiFileMetadataResponse
;
import
com.yd.oss.feign.response.ApiFileMetadataResponse
;
import
com.yd.oss.feign.response.ApiUploadResponse
;
import
com.yd.oss.feign.response.ApiUploadResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
...
@@ -10,6 +11,8 @@ import org.springframework.http.MediaType;
...
@@ -10,6 +11,8 @@ 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
java.util.List
;
/**
/**
* OSS服务信息Feign客户端
* OSS服务信息Feign客户端
*/
*/
...
@@ -83,4 +86,15 @@ public interface ApiOssFeignClient {
...
@@ -83,4 +86,15 @@ public interface ApiOssFeignClient {
@GetMapping
(
"/metadata"
)
@GetMapping
(
"/metadata"
)
Result
<
ApiFileMetadataResponse
>
getFileMetadata
(
@RequestParam
(
"fileKey"
)
String
fileKey
);
Result
<
ApiFileMetadataResponse
>
getFileMetadata
(
@RequestParam
(
"fileKey"
)
String
fileKey
);
/**
* 批量上传文件 - body入参方式
* @param files 上传的文件列表
* @param request 批量上传请求参数
* @return 批量上传响应
*/
@PostMapping
(
value
=
"/batch/upload"
,
consumes
=
MediaType
.
MULTIPART_FORM_DATA_VALUE
)
Result
<
ApiBatchUploadResponse
>
batchUploadFiles
(
@RequestPart
(
"files"
)
List
<
MultipartFile
>
files
,
ApiUploadFileRequest
request
);
}
}
yd-oss-feign/src/main/java/com/yd/oss/feign/fallback/ApiOssFeignFallbackFactory.java
View file @
c8243422
...
@@ -3,6 +3,7 @@ package com.yd.oss.feign.fallback;
...
@@ -3,6 +3,7 @@ package com.yd.oss.feign.fallback;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.oss.feign.client.ApiOssFeignClient
;
import
com.yd.oss.feign.client.ApiOssFeignClient
;
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.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
lombok.extern.slf4j.Slf4j
;
...
@@ -10,6 +11,8 @@ import org.springframework.cloud.openfeign.FallbackFactory;
...
@@ -10,6 +11,8 @@ import org.springframework.cloud.openfeign.FallbackFactory;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
/**
/**
* OSS服务信息Feign降级处理
* OSS服务信息Feign降级处理
*/
*/
...
@@ -58,6 +61,11 @@ public class ApiOssFeignFallbackFactory implements FallbackFactory<ApiOssFeignCl
...
@@ -58,6 +61,11 @@ public class ApiOssFeignFallbackFactory implements FallbackFactory<ApiOssFeignCl
public
Result
<
ApiFileMetadataResponse
>
getFileMetadata
(
String
fileKey
)
{
public
Result
<
ApiFileMetadataResponse
>
getFileMetadata
(
String
fileKey
)
{
return
null
;
return
null
;
}
}
@Override
public
Result
<
ApiBatchUploadResponse
>
batchUploadFiles
(
List
<
MultipartFile
>
files
,
ApiUploadFileRequest
request
)
{
return
null
;
}
};
};
}
}
}
}
yd-oss-feign/src/main/java/com/yd/oss/feign/response/ApiBatchUploadResponse.java
0 → 100644
View file @
c8243422
package
com
.
yd
.
oss
.
feign
.
response
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* 批量文件上传响应
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ApiBatchUploadResponse
{
/**
* 成功上传的文件列表
*/
private
List
<
ApiUploadResponse
>
successFiles
;
/**
* 失败的文件列表
*/
private
List
<
FailedFile
>
failedFiles
;
/**
* 成功数量
*/
private
Integer
successCount
;
/**
* 失败数量
*/
private
Integer
failedCount
;
/**
* 失败的文件信息
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
static
class
FailedFile
{
/**
* 原始文件名
*/
private
String
fileName
;
/**
* 失败原因
*/
private
String
reason
;
}
}
yd-oss-service/src/main/java/com/yd/oss/service/service/OssService.java
View file @
c8243422
...
@@ -74,5 +74,10 @@ public interface OssService {
...
@@ -74,5 +74,10 @@ public interface OssService {
String
upload
(
byte
[]
content
,
String
fileName
);
String
upload
(
byte
[]
content
,
String
fileName
);
String
upload
(
InputStream
inputStream
,
String
fileName
);
String
upload
(
InputStream
inputStream
,
String
fileName
);
// 批量上传文件
com
.
yd
.
oss
.
feign
.
response
.
ApiBatchUploadResponse
batchUploadFiles
(
java
.
util
.
List
<
org
.
springframework
.
web
.
multipart
.
MultipartFile
>
files
,
com
.
yd
.
oss
.
service
.
dto
.
OssUploadFileReqDto
reqDto
);
}
}
yd-oss-service/src/main/java/com/yd/oss/service/service/impl/AliYunOssServiceImpl.java
View file @
c8243422
...
@@ -787,4 +787,60 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -787,4 +787,60 @@ public class AliYunOssServiceImpl implements OssService {
}
}
}
}
/**
* 批量上传文件
* @param files 文件列表
* @param reqDto 上传请求参数
* @return 批量上传响应
*/
@Override
public
com
.
yd
.
oss
.
feign
.
response
.
ApiBatchUploadResponse
batchUploadFiles
(
java
.
util
.
List
<
MultipartFile
>
files
,
OssUploadFileReqDto
reqDto
)
{
com
.
yd
.
oss
.
feign
.
response
.
ApiBatchUploadResponse
response
=
new
com
.
yd
.
oss
.
feign
.
response
.
ApiBatchUploadResponse
();
java
.
util
.
List
<
com
.
yd
.
oss
.
feign
.
response
.
ApiUploadResponse
>
successFiles
=
new
java
.
util
.
ArrayList
<>();
java
.
util
.
List
<
com
.
yd
.
oss
.
feign
.
response
.
ApiBatchUploadResponse
.
FailedFile
>
failedFiles
=
new
java
.
util
.
ArrayList
<>();
if
(
files
==
null
||
files
.
isEmpty
())
{
response
.
setSuccessFiles
(
successFiles
);
response
.
setFailedFiles
(
failedFiles
);
response
.
setSuccessCount
(
0
);
response
.
setFailedCount
(
0
);
return
response
;
}
for
(
MultipartFile
file
:
files
)
{
try
{
// 调用单文件上传方法
OssUploadFileResDto
uploadResult
=
uploadFileBody
(
file
,
reqDto
);
// 转换为ApiUploadResponse
com
.
yd
.
oss
.
feign
.
response
.
ApiUploadResponse
uploadResponse
=
new
com
.
yd
.
oss
.
feign
.
response
.
ApiUploadResponse
();
uploadResponse
.
setFileBizId
(
uploadResult
.
getFileBizId
());
uploadResponse
.
setFileKey
(
uploadResult
.
getFileKey
());
uploadResponse
.
setOriginalName
(
uploadResult
.
getOriginalName
());
uploadResponse
.
setUrl
(
uploadResult
.
getUrl
());
uploadResponse
.
setFileSize
(
uploadResult
.
getFileSize
());
uploadResponse
.
setFileType
(
uploadResult
.
getFileType
());
successFiles
.
add
(
uploadResponse
);
}
catch
(
Exception
e
)
{
log
.
error
(
"批量上传文件失败: {}"
,
file
.
getOriginalFilename
(),
e
);
com
.
yd
.
oss
.
feign
.
response
.
ApiBatchUploadResponse
.
FailedFile
failedFile
=
new
com
.
yd
.
oss
.
feign
.
response
.
ApiBatchUploadResponse
.
FailedFile
();
failedFile
.
setFileName
(
file
.
getOriginalFilename
());
failedFile
.
setReason
(
e
.
getMessage
());
failedFiles
.
add
(
failedFile
);
}
}
response
.
setSuccessFiles
(
successFiles
);
response
.
setFailedFiles
(
failedFiles
);
response
.
setSuccessCount
(
successFiles
.
size
());
response
.
setFailedCount
(
failedFiles
.
size
());
log
.
info
(
"批量上传完成: 成功{}个, 失败{}个"
,
successFiles
.
size
(),
failedFiles
.
size
());
return
response
;
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment