You've already forked FrameTour-BE
feat(storage): 集成动态存储配置管理
- 引入ScenicConfigManager以支持景区级别的存储配置 - 添加StorageFactory和IStorageAdapter以实现灵活的存储适配 - 在图像处理流程中集成存储适配器的初始化逻辑 - 支持从配置中加载存储类型和相关参数 - 提供降级机制,默认使用assets存储适配器 - 增强SourceRepository对存储配置的依赖注入支持
This commit is contained in:
@@ -6,6 +6,7 @@ import com.ycwl.basic.image.pipeline.enums.ImageSource;
|
|||||||
import com.ycwl.basic.image.pipeline.enums.ImageType;
|
import com.ycwl.basic.image.pipeline.enums.ImageType;
|
||||||
import com.ycwl.basic.image.pipeline.enums.PipelineScene;
|
import com.ycwl.basic.image.pipeline.enums.PipelineScene;
|
||||||
import com.ycwl.basic.image.pipeline.stages.*;
|
import com.ycwl.basic.image.pipeline.stages.*;
|
||||||
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.mapper.SourceMapper;
|
import com.ycwl.basic.mapper.SourceMapper;
|
||||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
||||||
@@ -16,6 +17,9 @@ import com.ycwl.basic.pipeline.core.PipelineBuilder;
|
|||||||
import com.ycwl.basic.pricing.dto.VoucherInfo;
|
import com.ycwl.basic.pricing.dto.VoucherInfo;
|
||||||
import com.ycwl.basic.pricing.enums.VoucherDiscountType;
|
import com.ycwl.basic.pricing.enums.VoucherDiscountType;
|
||||||
import com.ycwl.basic.pricing.service.IVoucherService;
|
import com.ycwl.basic.pricing.service.IVoucherService;
|
||||||
|
import com.ycwl.basic.storage.StorageFactory;
|
||||||
|
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
||||||
|
import com.ycwl.basic.storage.exceptions.StorageUnsupportedException;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
@@ -43,6 +47,8 @@ public class SourceRepository {
|
|||||||
private DeviceRepository deviceRepository;
|
private DeviceRepository deviceRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberRelationRepository memberRelationRepository;
|
private MemberRelationRepository memberRelationRepository;
|
||||||
|
@Autowired
|
||||||
|
private ScenicRepository scenicRepository;
|
||||||
|
|
||||||
public void addSource(SourceEntity source) {
|
public void addSource(SourceEntity source) {
|
||||||
sourceMapper.add(source);
|
sourceMapper.add(source);
|
||||||
@@ -127,6 +133,15 @@ public class SourceRepository {
|
|||||||
.build();
|
.build();
|
||||||
context.enableStage("image_sr");
|
context.enableStage("image_sr");
|
||||||
context.enableStage("image_enhance");
|
context.enableStage("image_enhance");
|
||||||
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(source.getScenicId());
|
||||||
|
IStorageAdapter adapter;
|
||||||
|
try {
|
||||||
|
adapter = StorageFactory.get(configManager.getString("store_type"));
|
||||||
|
adapter.loadConfig(configManager.getObject("store_config_json", Map.class));
|
||||||
|
} catch (StorageUnsupportedException ignored) {
|
||||||
|
adapter = StorageFactory.use("assets");
|
||||||
|
}
|
||||||
|
context.setStorageAdapter(adapter);
|
||||||
|
|
||||||
// 2. 设置结果URL回调 - 更新source记录
|
// 2. 设置结果URL回调 - 更新source记录
|
||||||
context.setResultUrlCallback(newUrl -> {
|
context.setResultUrlCallback(newUrl -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user