暂存提交

This commit is contained in:
2026-07-31 18:10:32 +08:00
parent e834482717
commit 9a37657148
35 changed files with 435 additions and 44 deletions
@@ -35,12 +35,23 @@ public class LocalQualificationStorage {
/** 服务启动时校验存储根目录,避免健康检查正常但首次上传才暴露挂载或权限问题。 */
@PostConstruct
public void initialize() {
Path probe = null;
try {
Files.createDirectories(root);
if (!Files.isDirectory(root) || !Files.isWritable(root)) {
throw new IOException("存储根目录不可写");
}
probe = root.resolve(".qualification-storage-probe-" + UUID.randomUUID());
Files.write(probe, new byte[] {0x42}, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE);
Files.delete(probe);
} catch (IOException exception) {
if (probe != null) {
try {
Files.deleteIfExists(probe);
} catch (IOException cleanupException) {
exception.addSuppressed(cleanupException);
}
}
LOGGER.error("企业资质存储根目录不可用:{}", root, exception);
throw new IllegalStateException("企业资质存储根目录不可用", exception);
}
+11
View File
@@ -34,3 +34,14 @@ baiyue:
file:
storage-root: ${FILE_STORAGE_ROOT:${user.home}/baiyue-firstleg/uploads}
management.endpoints.web.exposure.include: health,info,prometheus
logging:
file:
name: "${LOGGING_FILE_NAME:${LOG_PATH:./logs}/${spring.application.name}.log}"
logback:
rollingpolicy:
file-name-pattern: "${LOGGING_ROLLING_FILE_NAME_PATTERN:${LOG_PATH:./logs}/${spring.application.name}.%d{yyyy-MM-dd}.%i.log.gz}"
max-file-size: "${LOGGING_ROLLING_MAX_FILE_SIZE:100MB}"
max-history: "${LOGGING_ROLLING_MAX_HISTORY:30}"
total-size-cap: "${LOGGING_ROLLING_TOTAL_SIZE_CAP:5GB}"
clean-history-on-start: "${LOGGING_ROLLING_CLEAN_HISTORY_ON_START:false}"
@@ -34,6 +34,7 @@ class LocalQualificationStorageTest {
assertTrue(Files.isRegularFile(stored.path()));
assertEquals(stored.path().toAbsolutePath(),
storage.load(10001L, stored.fileName()).getFile().toPath().toAbsolutePath());
assertThrows(BizException.class, () -> storage.load(10002L, stored.fileName()));
}
@Test