mirror of
https://github.com/zfile-dev/zfile.git
synced 2025-04-19 05:34:52 +00:00
60 lines
2.6 KiB
Java
60 lines
2.6 KiB
Java
package im.zhaojun.huawei.service;
|
|
|
|
import com.amazonaws.auth.AWSStaticCredentialsProvider;
|
|
import com.amazonaws.auth.BasicAWSCredentials;
|
|
import com.amazonaws.client.builder.AwsClientBuilder;
|
|
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
|
|
import im.zhaojun.common.model.StorageConfig;
|
|
import im.zhaojun.common.model.constant.StorageConfigConstant;
|
|
import im.zhaojun.common.model.enums.StorageTypeEnum;
|
|
import im.zhaojun.common.service.AbstractS3FileService;
|
|
import im.zhaojun.common.service.FileService;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
|
|
/**
|
|
* @author zhaojun
|
|
*/
|
|
@Service
|
|
public class HuaweiServiceImpl extends AbstractS3FileService implements FileService {
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(HuaweiServiceImpl.class);
|
|
|
|
@Override
|
|
public void init() {
|
|
try {
|
|
Map<String, StorageConfig> stringStorageConfigMap = storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.HUAWEI);
|
|
String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue();
|
|
String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue();
|
|
String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue();
|
|
|
|
bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue();
|
|
domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue();
|
|
basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue();
|
|
|
|
if (Objects.isNull(accessKey) || Objects.isNull(secretKey) || Objects.isNull(endPoint) || Objects.isNull(bucketName)) {
|
|
log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription());
|
|
isInitialized = false;
|
|
} else {
|
|
BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
|
|
s3Client = AmazonS3ClientBuilder.standard()
|
|
.withCredentials(new AWSStaticCredentialsProvider(credentials))
|
|
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "obs")).build();
|
|
|
|
isInitialized = testConnection();
|
|
}
|
|
} catch (Exception e) {
|
|
log.debug(getStorageTypeEnum().getDescription() + " 初始化异常, 已跳过");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public StorageTypeEnum getStorageTypeEnum() {
|
|
return StorageTypeEnum.HUAWEI;
|
|
}
|
|
|
|
} |