Skip to content

Commit aeaf17e

Browse files
author
吴炳亨
authored
Merge pull request #287 from NigelWu95/dev
optimize region get and add converting indexMap check for DefaultFile…
2 parents 0a20f87 + da42737 commit aeaf17e

File tree

4 files changed

+21
-14
lines changed

4 files changed

+21
-14
lines changed

docs/downloadfile.md

+3
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ private=
4242
queries 参数用于设置 url 的后缀或 ?+参数部分,资源下载可能需要下载不同格式或尺寸的如图片文件,因此可以通过一些图片处理样式或参数来设置对处理之后的
4343
图片进行下载。当设置 private(私有签名)的情况下,该参数会使用在 privateurl 操作中(因为 privateurl 操作在前,当前操作在后)。
4444

45+
### 下载超时时间
46+
timeout 参数可以通过全局的 timeout 来设置,参考:[网络设置](../README.md#7-网络设置)
47+
4548
### 关于 url-index
4649
当使用 file 源且 parse=tab/csv 时 [xx-]index(ex) 设置的下标必须为整数。url-index 表示输入行含 url 形式的源文件地址,未设置的情况下则使用
4750
key 字段加上 domain 的方式访问源文件地址,key 下标用 indexes 参数设置。

src/main/java/com/qiniu/datasource/DefaultFileContainer.java

+3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ public DefaultFileContainer(String path, Map<String, Map<String, String>> direct
1616
List<String> antiDirectories, boolean keepDir, Map<String, String> indexMap,
1717
List<String> fields, int unitLen, int threads) throws IOException {
1818
super(path, directoriesMap, antiDirectories, keepDir, indexMap, fields, unitLen, threads);
19+
FileInfo test = new FileInfo();
20+
test.filepath = "test";
21+
ConvertingUtils.toPair(test, indexMap, new StringMapPair());
1922
}
2023

2124
@Override

src/main/java/com/qiniu/entry/QSuitsEntry.java

+14-13
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,11 @@ private Configuration getDefaultQiniuConfig() throws IOException {
136136
qiniuAccessKey = entryParam.getValue("ak").trim();
137137
qiniuSecretKey = entryParam.getValue("sk").trim();
138138
}
139-
return getDefaultQiniuConfig(qiniuAccessKey, qiniuSecretKey, regionName);
139+
return getDefaultQiniuConfig(qiniuAccessKey, qiniuSecretKey, regionName, bucket);
140140
}
141141

142-
private Configuration getDefaultQiniuConfig(String ak, String sk, String regionName) throws IOException {
143-
com.qiniu.storage.Region region = null;
142+
private Configuration getDefaultQiniuConfig(String ak, String sk, String regionName, String bucket) throws IOException {
143+
com.qiniu.storage.Region region = CloudApiUtils.getQiniuRegion(regionName);
144144
String rsfDomain = entryParam.getValue("rsf-domain", null);
145145
String rsDomain = entryParam.getValue("rs-domain", null);
146146
String apiDomain = entryParam.getValue("api-domain", null);
@@ -149,10 +149,11 @@ private Configuration getDefaultQiniuConfig(String ak, String sk, String regionN
149149
if (rsfDomain != null) region = builder.rsfHost(rsfDomain).build();
150150
if (rsDomain != null) region = builder.rsHost(rsDomain).build();
151151
if (apiDomain != null) region = builder.apiHost(apiDomain).build();
152+
} else {
153+
region = (regionName == null || "".equals(regionName)) ?
154+
CloudApiUtils.getQiniuRegion(CloudApiUtils.getQiniuRegion(ak, sk, bucket))
155+
: CloudApiUtils.getQiniuRegion(regionName);
152156
}
153-
if (region == null) region = (regionName == null || "".equals(regionName)) ?
154-
CloudApiUtils.getQiniuRegion(CloudApiUtils.getQiniuRegion(ak, sk, bucket))
155-
: CloudApiUtils.getQiniuRegion(regionName);
156157
Configuration configuration = new Configuration(region);
157158
if (connectTimeout > Constants.CONNECT_TIMEOUT) configuration.connectTimeout = connectTimeout;
158159
if (readTimeout> Constants.READ_TIMEOUT) configuration.readTimeout = readTimeout;
@@ -161,8 +162,8 @@ private Configuration getDefaultQiniuConfig(String ak, String sk, String regionN
161162
return configuration;
162163
}
163164

164-
private Configuration getNewQiniuConfig() {
165-
com.qiniu.storage.Region region = null;
165+
private Configuration getNewQiniuConfig() throws IOException {
166+
com.qiniu.storage.Region region = CloudApiUtils.getQiniuRegion(regionName);
166167
String rsfDomain = entryParam.getValue("rsf-domain", null);
167168
String rsDomain = entryParam.getValue("rs-domain", null);
168169
String apiDomain = entryParam.getValue("api-domain", null);
@@ -172,7 +173,7 @@ private Configuration getNewQiniuConfig() {
172173
if (rsDomain != null) region = builder.rsHost(rsDomain).build();
173174
if (apiDomain != null) region = builder.apiHost(apiDomain).build();
174175
}
175-
Configuration configuration = region == null ? new Configuration() : new Configuration(region);
176+
Configuration configuration = new Configuration(region);
176177
if (connectTimeout > Constants.CONNECT_TIMEOUT) configuration.connectTimeout = connectTimeout;
177178
if (readTimeout> Constants.READ_TIMEOUT) configuration.readTimeout = readTimeout;
178179
if (requestTimeout > Constants.WRITE_TIMEOUT) configuration.writeTimeout = requestTimeout;
@@ -660,7 +661,7 @@ private ILineProcess<Map<String, String>> getAsyncFetch(Map<String, String> inde
660661
String ignore = entryParam.getValue("ignore-same-key", "false").trim();
661662
ParamsUtils.checked(ignore, "ignore-same-key", "(true|false)");
662663
String regionStr = entryParam.getValue("qiniu-region", regionName).trim();
663-
Configuration configuration = getDefaultQiniuConfig(ak, sk, regionStr);
664+
Configuration configuration = getDefaultQiniuConfig(ak, sk, regionStr, toBucket);
664665
AsyncFetch processor = single ? new AsyncFetch(ak, sk, configuration, toBucket, protocol, domain, urlIndex,
665666
addPrefix, rmPrefix) : new AsyncFetch(ak, sk, configuration, toBucket, protocol, domain, urlIndex,
666667
addPrefix, rmPrefix, savePath);
@@ -758,7 +759,7 @@ private ILineProcess<Map<String, String>> getMirrorFile(boolean single) throws I
758759
if (toBucket.equals(bucket) && "qiniu".equals(source))
759760
throw new IOException("the to-bucket can not be same as bucket if source is qiniu.");
760761
String regionStr = entryParam.getValue("qiniu-region", regionName).trim();
761-
Configuration configuration = getDefaultQiniuConfig(ak, sk, regionStr);
762+
Configuration configuration = getDefaultQiniuConfig(ak, sk, regionStr, toBucket);
762763
return single ? new MirrorFile(ak, sk, configuration, toBucket) : new MirrorFile(ak, sk, configuration, toBucket, savePath);
763764
}
764765

@@ -1096,7 +1097,7 @@ private ILineProcess<Map<String, String>> getFetch(Map<String, String> indexMap,
10961097
String addPrefix = entryParam.getValue("add-prefix", null);
10971098
String rmPrefix = entryParam.getValue("rm-prefix", null);
10981099
String regionStr = entryParam.getValue("qiniu-region", regionName).trim();
1099-
Configuration configuration = getDefaultQiniuConfig(ak, sk, regionStr);
1100+
Configuration configuration = getDefaultQiniuConfig(ak, sk, regionStr, toBucket);
11001101
return single ? new FetchFile(ak, sk, configuration, toBucket, protocol, domain, urlIndex, addPrefix, rmPrefix)
11011102
: new FetchFile(ak, sk, configuration, toBucket, protocol, domain, urlIndex, addPrefix, rmPrefix, savePath);
11021103
}
@@ -1131,7 +1132,7 @@ private ILineProcess<Map<String, String>> getSyncUpload(Map<String, String> inde
11311132
}
11321133
}
11331134
String regionStr = entryParam.getValue("qiniu-region", regionName).trim();
1134-
Configuration configuration = getDefaultQiniuConfig(ak, sk, regionStr);
1135+
Configuration configuration = getDefaultQiniuConfig(ak, sk, regionStr, toBucket);
11351136
return single ? new SyncUpload(ak, sk, configuration, protocol, domain, urlIndex, host, addPrefix, rmPrefix,
11361137
toBucket, expires, policy, params) : new SyncUpload(ak, sk, configuration, protocol, domain, urlIndex,
11371138
host, addPrefix, rmPrefix, toBucket, expires, policy, params, savePath);

src/main/java/com/qiniu/util/CloudApiUtils.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ public static void checkBaidu(BosClient bosClient) {
277277
}
278278

279279
public static Region getQiniuRegion(String regionName) throws IOException {
280-
if (regionName == null) return Region.autoRegion();
280+
if (regionName == null || "".equals(regionName)) return Region.autoRegion();
281281
switch (regionName) {
282282
case "z0":
283283
case "huadong":

0 commit comments

Comments
 (0)