默认存储方式
This commit is contained in:
parent
201a6617ac
commit
fdf35224dd
@ -18,23 +18,17 @@ import com.ycwl.basic.service.task.TaskFaceService;
|
|||||||
import com.ycwl.basic.service.task.TaskService;
|
import com.ycwl.basic.service.task.TaskService;
|
||||||
import com.ycwl.basic.storage.StorageFactory;
|
import com.ycwl.basic.storage.StorageFactory;
|
||||||
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
||||||
import com.ycwl.basic.storage.enums.StorageType;
|
|
||||||
import com.ycwl.basic.storage.utils.StorageUtil;
|
import com.ycwl.basic.storage.utils.StorageUtil;
|
||||||
import com.ycwl.basic.task.FaceCleaner;
|
|
||||||
import com.ycwl.basic.utils.*;
|
import com.ycwl.basic.utils.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
|||||||
import com.ycwl.basic.storage.adapters.LocalStorageAdapter;
|
import com.ycwl.basic.storage.adapters.LocalStorageAdapter;
|
||||||
import com.ycwl.basic.storage.entity.StorageConfig;
|
import com.ycwl.basic.storage.entity.StorageConfig;
|
||||||
import com.ycwl.basic.storage.enums.StorageType;
|
import com.ycwl.basic.storage.enums.StorageType;
|
||||||
|
import com.ycwl.basic.storage.exceptions.StorageConfigException;
|
||||||
import com.ycwl.basic.storage.exceptions.StorageUndefinedException;
|
import com.ycwl.basic.storage.exceptions.StorageUndefinedException;
|
||||||
import com.ycwl.basic.storage.exceptions.StorageUnsupportedException;
|
import com.ycwl.basic.storage.exceptions.StorageUnsupportedException;
|
||||||
|
|
||||||
@ -37,7 +38,8 @@ public class StorageFactory {
|
|||||||
return get(storageType);
|
return get(storageType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Map<String, IStorageAdapter> definedName = new HashMap<>();
|
protected static Map<String, IStorageAdapter> definedName = new HashMap<>();
|
||||||
|
protected static IStorageAdapter defaultStorage = null;
|
||||||
|
|
||||||
public static void register(String name, IStorageAdapter adapter) {
|
public static void register(String name, IStorageAdapter adapter) {
|
||||||
definedName.put(name, adapter);
|
definedName.put(name, adapter);
|
||||||
@ -46,8 +48,19 @@ public class StorageFactory {
|
|||||||
public static IStorageAdapter use(String name) {
|
public static IStorageAdapter use(String name) {
|
||||||
IStorageAdapter adapter = definedName.get(name);
|
IStorageAdapter adapter = definedName.get(name);
|
||||||
if (adapter == null) {
|
if (adapter == null) {
|
||||||
throw new StorageUndefinedException(name);
|
throw new StorageUndefinedException("未定义的存储方式:"+name);
|
||||||
}
|
}
|
||||||
return adapter;
|
return adapter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IStorageAdapter use() {
|
||||||
|
if (defaultStorage == null) {
|
||||||
|
throw new StorageConfigException("未定义默认存储方式");
|
||||||
|
}
|
||||||
|
return defaultStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setDefault(String defaultStorage) {
|
||||||
|
StorageFactory.defaultStorage = use(defaultStorage);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
package com.ycwl.basic.storage.enums;
|
package com.ycwl.basic.storage.enums;
|
||||||
|
|
||||||
import com.ycwl.basic.storage.adapters.AliOssAdapter;
|
|
||||||
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
|
||||||
import com.ycwl.basic.storage.adapters.LocalStorageAdapter;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
public enum StorageType {
|
public enum StorageType {
|
||||||
|
@ -3,28 +3,30 @@ package com.ycwl.basic.storage.starter;
|
|||||||
import com.ycwl.basic.storage.StorageFactory;
|
import com.ycwl.basic.storage.StorageFactory;
|
||||||
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
||||||
import com.ycwl.basic.storage.starter.config.OverallStorageConfig;
|
import com.ycwl.basic.storage.starter.config.OverallStorageConfig;
|
||||||
|
import com.ycwl.basic.storage.starter.config.StorageConfigItem;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class StorageAutoConfiguration {
|
public class StorageAutoConfiguration {
|
||||||
private final OverallStorageConfig config;
|
private final OverallStorageConfig config;
|
||||||
public StorageAutoConfiguration(OverallStorageConfig config) {
|
public StorageAutoConfiguration(OverallStorageConfig config) {
|
||||||
this.config = config;
|
this.config = config;
|
||||||
if (config != null) {
|
if (config != null) {
|
||||||
loadConfig();
|
if (config.getConfigs() != null) {
|
||||||
|
loadConfig();
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(config.getDefaultUse())) {
|
||||||
|
StorageFactory.setDefault(config.getDefaultUse());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadConfig() {
|
private void loadConfig() {
|
||||||
config.getConfigs().forEach(item -> {
|
for (StorageConfigItem item : config.getConfigs()) {
|
||||||
String name = item.getName();
|
IStorageAdapter adapter = StorageFactory.get(item.getType());
|
||||||
String type = item.getType();
|
adapter.loadConfig(item.getConfig());
|
||||||
IStorageAdapter adapter = StorageFactory.get(type);
|
StorageFactory.register(item.getName(), adapter);
|
||||||
Map<String, String> config = item.getConfig();
|
}
|
||||||
adapter.loadConfig(config);
|
|
||||||
StorageFactory.register(name, adapter);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,11 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@ConfigurationProperties(prefix = "storage")
|
@ConfigurationProperties(prefix = "storage")
|
||||||
@Data
|
@Data
|
||||||
public class OverallStorageConfig {
|
public class OverallStorageConfig {
|
||||||
|
private String defaultUse;
|
||||||
private List<StorageConfigItem> configs;
|
private List<StorageConfigItem> configs;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.ycwl.basic.storage.starter.config;
|
package com.ycwl.basic.storage.starter.config;
|
||||||
|
|
||||||
|
import com.ycwl.basic.storage.enums.StorageType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -7,6 +8,6 @@ import java.util.Map;
|
|||||||
@Data
|
@Data
|
||||||
public class StorageConfigItem {
|
public class StorageConfigItem {
|
||||||
private String name;
|
private String name;
|
||||||
private String type;
|
private StorageType type;
|
||||||
private Map<String, String> config;
|
private Map<String, String> config;
|
||||||
}
|
}
|
||||||
|
@ -121,6 +121,7 @@ face:
|
|||||||
|
|
||||||
# 存储
|
# 存储
|
||||||
storage:
|
storage:
|
||||||
|
defaultUse: "assets"
|
||||||
configs:
|
configs:
|
||||||
- name: "faces"
|
- name: "faces"
|
||||||
type: "ALI_OSS"
|
type: "ALI_OSS"
|
||||||
|
@ -119,6 +119,7 @@ face:
|
|||||||
|
|
||||||
# 存储
|
# 存储
|
||||||
storage:
|
storage:
|
||||||
|
defaultUse: "assets"
|
||||||
configs:
|
configs:
|
||||||
- name: "faces"
|
- name: "faces"
|
||||||
type: "ALI_OSS"
|
type: "ALI_OSS"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user