fix: cap external uploads at 100mb

This commit is contained in:
hy001 2026-05-15 13:02:05 +08:00
parent 9a893d9cc0
commit b7ac08be5d
6 changed files with 10 additions and 12 deletions

View File

@ -34,8 +34,6 @@ red-circle:
access-url: ${LIKEI_TENCENT_COS_ACCESS_URL} access-url: ${LIKEI_TENCENT_COS_ACCESS_URL}
connection-timeout-ms: ${LIKEI_TENCENT_COS_CONNECTION_TIMEOUT_MS:15000} connection-timeout-ms: ${LIKEI_TENCENT_COS_CONNECTION_TIMEOUT_MS:15000}
connection-request-timeout-ms: ${LIKEI_TENCENT_COS_CONNECTION_REQUEST_TIMEOUT_MS:15000} connection-request-timeout-ms: ${LIKEI_TENCENT_COS_CONNECTION_REQUEST_TIMEOUT_MS:15000}
socket-timeout-ms: ${LIKEI_TENCENT_COS_SOCKET_TIMEOUT_MS:900000}
request-timeout-ms: ${LIKEI_TENCENT_COS_REQUEST_TIMEOUT_MS:900000}
shutdown-timeout-ms: ${LIKEI_TENCENT_COS_SHUTDOWN_TIMEOUT_MS:10000} shutdown-timeout-ms: ${LIKEI_TENCENT_COS_SHUTDOWN_TIMEOUT_MS:10000}
max-error-retry: ${LIKEI_TENCENT_COS_MAX_ERROR_RETRY:0} max-error-retry: ${LIKEI_TENCENT_COS_MAX_ERROR_RETRY:0}
instant-message: instant-message:

View File

@ -31,7 +31,7 @@ import java.util.UUID;
public class OssRestController { public class OssRestController {
private static final Logger log = LoggerFactory.getLogger(OssRestController.class); private static final Logger log = LoggerFactory.getLogger(OssRestController.class);
private static final long MAX_UPLOAD_SIZE_BYTES = 500L * 1024 * 1024; private static final long MAX_UPLOAD_SIZE_BYTES = 100L * 1024 * 1024;
private final AliYunStsService aliYunStsService; private final AliYunStsService aliYunStsService;
private final OssService ossService; private final OssService ossService;
@ -78,7 +78,7 @@ public class OssRestController {
return ResultResponse.failure(OssErrorCode.FILE_IS_NULL); return ResultResponse.failure(OssErrorCode.FILE_IS_NULL);
} }
if (file.getSize() > MAX_UPLOAD_SIZE_BYTES) { if (file.getSize() > MAX_UPLOAD_SIZE_BYTES) {
return ResultResponse.failure(OssErrorCode.FILE_SIZE_GREATER_THAN_500M); return ResultResponse.failure(OssErrorCode.FILE_SIZE_GREATER_THAN_100M);
} }
String name = file.getOriginalFilename().toLowerCase(); String name = file.getOriginalFilename().toLowerCase();
if(!FileUtils.fileContentType(name)) { if(!FileUtils.fileContentType(name)) {
@ -123,7 +123,7 @@ public class OssRestController {
return ResultResponse.failure(OssErrorCode.FILE_IS_NULL); return ResultResponse.failure(OssErrorCode.FILE_IS_NULL);
} }
if (file.getSize() > MAX_UPLOAD_SIZE_BYTES) { if (file.getSize() > MAX_UPLOAD_SIZE_BYTES) {
return ResultResponse.failure(OssErrorCode.FILE_SIZE_GREATER_THAN_500M); return ResultResponse.failure(OssErrorCode.FILE_SIZE_GREATER_THAN_100M);
} }
String storageKey = buildStorageKey(dir, filename, file.getOriginalFilename()); String storageKey = buildStorageKey(dir, filename, file.getOriginalFilename());
if (tencentCosStorageService.isEnabled()) { if (tencentCosStorageService.isEnabled()) {

View File

@ -19,8 +19,8 @@ public class TencentCosProperties {
private String accessUrl = ""; private String accessUrl = "";
private int connectionTimeoutMs = 15000; private int connectionTimeoutMs = 15000;
private int connectionRequestTimeoutMs = 15000; private int connectionRequestTimeoutMs = 15000;
private int socketTimeoutMs = 900000; private int socketTimeoutMs = 120000;
private int requestTimeoutMs = 900000; private int requestTimeoutMs = 120000;
private int shutdownTimeoutMs = 10000; private int shutdownTimeoutMs = 10000;
private int maxErrorRetry = 0; private int maxErrorRetry = 0;

View File

@ -5,7 +5,7 @@ import com.red.circle.framework.dto.IResponseErrorCode;
public enum OssErrorCode implements IResponseErrorCode { public enum OssErrorCode implements IResponseErrorCode {
FILE_IS_NULL(20001, "file is null"), FILE_IS_NULL(20001, "file is null"),
FILE_TYPE_NOT_SUPPORTED(20003, "File type not supported"), FILE_TYPE_NOT_SUPPORTED(20003, "File type not supported"),
FILE_SIZE_GREATER_THAN_500M(20003, "File size greater than 500M"), FILE_SIZE_GREATER_THAN_100M(20003, "File size greater than 100M"),
NETWORK_ANOMALY(20004, "network anomaly"); NETWORK_ANOMALY(20004, "network anomaly");
private final int code; private final int code;

View File

@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
public class UndertowUploadLimitConfiguration { public class UndertowUploadLimitConfiguration {
private static final long MAX_UPLOAD_REQUEST_SIZE_BYTES = 520L * 1024 * 1024; private static final long MAX_UPLOAD_REQUEST_SIZE_BYTES = 105L * 1024 * 1024;
@Bean @Bean
public WebServerFactoryCustomizer<ConfigurableUndertowWebServerFactory> undertowUploadLimitCustomizer() { public WebServerFactoryCustomizer<ConfigurableUndertowWebServerFactory> undertowUploadLimitCustomizer() {

View File

@ -2,7 +2,7 @@ server:
port: 3000 port: 3000
shutdown: graceful shutdown: graceful
undertow: undertow:
max-http-post-size: 520MB max-http-post-size: 105MB
no-request-timeout: 60000 no-request-timeout: 60000
spring: spring:
@ -12,8 +12,8 @@ spring:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
servlet: servlet:
multipart: multipart:
max-file-size: 500MB max-file-size: 100MB
max-request-size: 520MB max-request-size: 105MB
enabled: true enabled: true
profiles: profiles:
active: @profiles.active@ active: @profiles.active@