
com.qiniu.entry.QSuitsEntry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of qsuits Show documentation
Show all versions of qsuits Show documentation
qiniu-suits is a efficient tools for qiniu api implemented by java8.
package com.qiniu.entry;
import com.aliyun.oss.ClientConfiguration;
import com.google.gson.JsonObject;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.region.Region;
import com.qiniu.common.Constants;
import com.qiniu.common.Zone;
import com.qiniu.config.ParamsConfig;
import com.qiniu.config.PropertiesFile;
import com.qiniu.datasource.*;
import com.qiniu.interfaces.IEntryParam;
import com.qiniu.interfaces.ILineProcess;
import com.qiniu.process.filtration.*;
import com.qiniu.process.other.ExportTS;
import com.qiniu.process.qdora.*;
import com.qiniu.process.qoss.*;
import com.qiniu.storage.Configuration;
import com.qiniu.util.OssUtils;
import com.qiniu.util.ParamsUtils;
import com.qiniu.util.ProcessUtils;
import java.io.File;
import java.io.IOException;
import java.util.*;
public class QSuitsEntry {
private IEntryParam entryParam;
private CommonParams commonParams;
private int connectTimeout;
private int readTimeout;
private int requestTimeout;
private Configuration qiniuConfig;
private ClientConfig tenClientConfig;
private ClientConfiguration aliClientConfig;
private String source;
private String qiniuAccessKey;
private String qiniuSecretKey;
private String regionName;
private String bucket;
private Map indexMap;
private int unitLen;
private int threads;
private boolean saveTotal;
private String process;
private int retryTimes;
private String savePath;
private String saveFormat;
private String saveSeparator;
private Set rmFields;
public QSuitsEntry(String[] args) throws Exception {
this.entryParam = new ParamsConfig(getEntryParams(args));
this.commonParams = new CommonParams(entryParam);
setMembers();
}
public QSuitsEntry(Map paramsMap) throws Exception {
this.entryParam = new ParamsConfig(paramsMap);
this.commonParams = new CommonParams(paramsMap);
setMembers();
}
public QSuitsEntry(IEntryParam entryParam) throws Exception {
this.entryParam = entryParam;
this.commonParams = new CommonParams(entryParam);
setMembers();
}
public void updateEntry(IEntryParam entryParam) throws Exception {
this.entryParam = entryParam;
this.commonParams = new CommonParams(entryParam);
setMembers();
}
public void updateEntry(CommonParams commonParams) {
this.commonParams = commonParams;
setMembers();
}
public void setQiniuConfig(Configuration configuration) throws IOException {
if (configuration == null) throw new IOException("the configuration can not be null when you set it.");
this.qiniuConfig = configuration;
}
public void setTenClientConfig(ClientConfig clientConfig) throws IOException {
if (clientConfig == null) throw new IOException("the clientConfig can not be null when you set it.");
this.tenClientConfig = clientConfig;
}
public void setAliClientConfig(ClientConfiguration clientConfig) throws IOException {
if (clientConfig == null) throw new IOException("the clientConfiguration can not be null when you set it.");
this.aliClientConfig = clientConfig;
}
private void setMembers() {
this.connectTimeout = commonParams.getConnectTimeout();
this.readTimeout = commonParams.getReadTimeout();
this.requestTimeout = commonParams.getRequestTimeout();
this.source = commonParams.getSource();
this.qiniuAccessKey = commonParams.getQiniuAccessKey();
this.qiniuSecretKey = commonParams.getQiniuSecretKey();
this.bucket = commonParams.getBucket();
this.regionName = commonParams.getRegionName();
this.indexMap = commonParams.getIndexMap();
this.unitLen = commonParams.getUnitLen();
this.threads = commonParams.getThreads();
this.saveTotal = commonParams.getSaveTotal();
this.rmFields = commonParams.getRmFields();
this.process = commonParams.getProcess();
this.retryTimes = commonParams.getRetryTimes();
this.savePath = commonParams.getSavePath() + commonParams.getSaveTag();
this.saveFormat = commonParams.getSaveFormat();
this.saveSeparator = commonParams.getSaveSeparator();
}
public static Map getEntryParams(String[] args) throws IOException {
Map paramsMap;
List configFiles = new ArrayList(){{
add("resources" + System.getProperty("file.separator") + "application.config");
add("resources" + System.getProperty("file.separator") + ".application.config");
add("resources" + System.getProperty("file.separator") + ".application.properties");
}};
boolean paramFromConfig = true;
if (args != null && args.length > 0) {
if (args[0].startsWith("-config=")) configFiles.add(args[0].split("=")[1]);
else paramFromConfig = false;
}
String configFilePath = null;
if (paramFromConfig) {
for (int i = configFiles.size() - 1; i >= 0; i--) {
File file = new File(configFiles.get(i));
if (file.exists()) {
configFilePath = configFiles.get(i);
break;
}
}
if (configFilePath == null) throw new IOException("there is no config file detected.");
else paramFromConfig = true;
}
if (paramFromConfig) {
if (configFilePath.endsWith(".properties")) {
paramsMap = ParamsUtils.toParamsMap(new PropertiesFile(configFilePath).getProperties());
} else {
paramsMap = ParamsUtils.toParamsMap(configFilePath);
}
} else {
paramsMap = ParamsUtils.toParamsMap(args);
paramsMap.putAll(ParamsUtils.toParamsMap(args));
}
return paramsMap;
}
public IEntryParam getEntryParam() {
return entryParam;
}
public CommonParams getCommonParams() {
return commonParams;
}
public Configuration getQiniuConfig() {
return qiniuConfig == null ? getDefaultQiniuConfig() : qiniuConfig;
}
private Configuration getDefaultQiniuConfig() {
Zone zone = OssUtils.getQiniuRegion(regionName);
Configuration configuration = new Configuration(zone);
if (connectTimeout > Constants.CONNECT_TIMEOUT) configuration.connectTimeout = connectTimeout;
if (readTimeout> Constants.READ_TIMEOUT) configuration.readTimeout = readTimeout;
if (requestTimeout > Constants.WRITE_TIMEOUT) configuration.writeTimeout = requestTimeout;
return configuration;
}
public ClientConfig getTenClientConfig() throws IOException {
return tenClientConfig == null ? getDefaultTenClientConfig() : tenClientConfig;
}
private ClientConfig getDefaultTenClientConfig() throws IOException {
if (regionName == null || "".equals(regionName)) regionName = OssUtils.getTenCosRegion(
commonParams.getTencentSecretId(), commonParams.getTencentSecretKey(), bucket);
ClientConfig clientConfig = new ClientConfig(new Region(regionName));
if (1000 * connectTimeout > clientConfig.getConnectionTimeout())
clientConfig.setConnectionTimeout(1000 * connectTimeout);
if (1000 * readTimeout > clientConfig.getSocketTimeout())
clientConfig.setSocketTimeout(1000 * readTimeout);
if (1000 * requestTimeout > clientConfig.getConnectionRequestTimeout())
clientConfig.setConnectionRequestTimeout(1000 * requestTimeout);
return clientConfig;
}
public ClientConfiguration getAliClientConfig() {
return aliClientConfig == null ? getDefaultAliClientConfig() : aliClientConfig;
}
private ClientConfiguration getDefaultAliClientConfig() {
ClientConfiguration clientConfig = new ClientConfiguration();
if (1000 * connectTimeout > clientConfig.getConnectionTimeout())
clientConfig.setConnectionTimeout(1000 * connectTimeout);
if (1000 * readTimeout > clientConfig.getSocketTimeout())
clientConfig.setSocketTimeout(1000 * readTimeout);
if (1000 * requestTimeout > clientConfig.getConnectionRequestTimeout())
clientConfig.setConnectionRequestTimeout(1000 * requestTimeout);
return clientConfig;
}
public IDataSource getDataSource() throws IOException {
if ("qiniu".equals(source)) {
return getQiniuOssContainer();
} else if ("tencent".equals(source)) {
return getTenOssContainer();
} else if ("aliyun".equals(source)) {
return getAliOssContainer();
} else if ("local".equals(source)) {
return getLocalFileContainer();
} else {
return null;
}
}
public InputSource getScannerSource() {
String parse = commonParams.getParse();
String separator = commonParams.getSeparator();
String addKeyPrefix = commonParams.getRmKeyPrefix();
String rmKeyPrefix = commonParams.getRmKeyPrefix();
return new InputSource(parse, separator, addKeyPrefix, rmKeyPrefix, indexMap);
}
public LocalFileContainer getLocalFileContainer() {
String filePath = commonParams.getPath();
String parse = commonParams.getParse();
String separator = commonParams.getSeparator();
String addKeyPrefix = commonParams.getRmKeyPrefix();
String rmKeyPrefix = commonParams.getRmKeyPrefix();
LocalFileContainer localFileContainer = new LocalFileContainer(filePath, parse, separator, addKeyPrefix,
rmKeyPrefix, indexMap, unitLen, threads);
localFileContainer.setSaveOptions(savePath, saveTotal, saveFormat, saveSeparator, rmFields);
localFileContainer.setRetryTimes(retryTimes);
return localFileContainer;
}
public QiniuOssContainer getQiniuOssContainer() {
Map prefixesMap = commonParams.getPrefixesMap();
List antiPrefixes = commonParams.getAntiPrefixes();
boolean prefixLeft = commonParams.getPrefixLeft();
boolean prefixRight = commonParams.getPrefixRight();
if (qiniuConfig == null) qiniuConfig = getDefaultQiniuConfig();
QiniuOssContainer qiniuOssContainer = new QiniuOssContainer(qiniuAccessKey, qiniuSecretKey, qiniuConfig,
bucket, antiPrefixes, prefixesMap, prefixLeft, prefixRight, indexMap, unitLen, threads);
qiniuOssContainer.setSaveOptions(savePath, saveTotal, saveFormat, saveSeparator, rmFields);
qiniuOssContainer.setRetryTimes(retryTimes);
return qiniuOssContainer;
}
public TenOssContainer getTenOssContainer() throws IOException {
String secretId = commonParams.getTencentSecretId();
String secretKey = commonParams.getTencentSecretKey();
Map prefixesMap = commonParams.getPrefixesMap();
List antiPrefixes = commonParams.getAntiPrefixes();
boolean prefixLeft = commonParams.getPrefixLeft();
boolean prefixRight = commonParams.getPrefixRight();
if (tenClientConfig == null) tenClientConfig = getDefaultTenClientConfig();
TenOssContainer tenOssContainer = new TenOssContainer(secretId, secretKey, tenClientConfig, bucket,
antiPrefixes, prefixesMap, prefixLeft, prefixRight, indexMap, unitLen, threads);
tenOssContainer.setSaveOptions(savePath, saveTotal, saveFormat, saveSeparator, rmFields);
tenOssContainer.setRetryTimes(retryTimes);
return tenOssContainer;
}
public AliOssContainer getAliOssContainer() throws IOException {
String accessId = commonParams.getAliyunAccessId();
String accessSecret = commonParams.getAliyunAccessSecret();
String endPoint;
if (regionName == null || "".equals(regionName)) regionName = OssUtils.getAliOssRegion(accessId, accessSecret, bucket);
if (regionName.matches("https?://.+")) {
endPoint = regionName;
} else {
if (!regionName.startsWith("oss-")) regionName = "oss-" + regionName;
endPoint = "http://" + regionName + ".aliyuncs.com";
}
Map prefixesMap = commonParams.getPrefixesMap();
List antiPrefixes = commonParams.getAntiPrefixes();
boolean prefixLeft = commonParams.getPrefixLeft();
boolean prefixRight = commonParams.getPrefixRight();
if (aliClientConfig == null) aliClientConfig = getDefaultAliClientConfig();
AliOssContainer aliOssContainer = new AliOssContainer(accessId, accessSecret, aliClientConfig, endPoint, bucket,
antiPrefixes, prefixesMap, prefixLeft, prefixRight, indexMap, unitLen, threads);
aliOssContainer.setSaveOptions(savePath, saveTotal, saveFormat, saveSeparator, rmFields);
aliOssContainer.setRetryTimes(retryTimes);
return aliOssContainer;
}
public ILineProcess
© 2015 - 2025 Weber Informatics LLC | Privacy Policy