Skip to content

Commit afe4f1e

Browse files
author
吴炳亨
authored
Merge pull request #214 from NigelWu95/dev
Dev
2 parents 788cabb + 2d23948 commit afe4f1e

33 files changed

+442
-321
lines changed

docs/asyncfetch.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ ignore-same-key=
3636
|url-index| 字符串| 通过 url 操作时需要设置的 url 索引(下标),需要手动指定才会进行解析|
3737
|add-prefix| 字符串| 表示为保存的文件名添加指定前缀|
3838
|rm-prefix| 字符串| 表示将得到的目标文件名去除存在的指定前缀后再作为保存的文件名|
39-
|host| host 字符串| 抓取源资源时指定 host(暂未启用)|
39+
|host| host 字符串|(暂未启用)抓取源资源时指定 host|
4040
|md5-index| 字符串| 资源 md5 值索引(下标),需要手动指定才会进行解析|
4141
|callback-url| 公网可访问的 url 字符串| 设置回调地址|
4242
|callback-body| body 字符串| 设置回调 body|
4343
|callback-body-type| body-type 字符串| 设置回调 body 类型|
4444
|callback-host| host 字符串| 设置回调 host |
4545
|file-type| 0/1| 文件的存储类型|
46-
|ignore-same-key| true/false|(暂未启用)|
46+
|ignore-same-key| true/false|(暂未启用)为 false 时表示覆盖同名文件,为 true 表示不覆盖|
4747

4848
### 关于 url-index 和 md5-index
4949
当使用 file 源且 parse=tab/csv 时下标必须为整数。url-index 表示输入行含 url 形式的源文件地址,未设置的情况下则使用 key 字段加上 domain 的

docs/interactive.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -19,45 +19,45 @@ please input line data to process:
1919
10.mp4 avthumb/mp4
2020
java -jar qsuits-6.20.jar -i -process=pfop -ak=----- -sk=----- -bucket=temp -pipeline=audio-video -fops-index=1
2121
please input line data to process:
22-
10.mp4 avthumb/mp4
23-
z0.5cf4e0b138b9f31ea670c97e
22+
10.mp4 avthumb/mp4
23+
10.mp4 z0.5cf4e0b138b9f31ea670c97e
2424
```
2525
###### 3 通过 persistentId 查询 pfop 的结果 [pfopresult 配置](pfopresult.md)
2626
```
2727
➜ ~ java -jar qsuits-6.20.jar -i -process=pfopresult -persistentId-index=0
2828
please input line data to process:
2929
z0.5cf4e0b138b9f31ea670c97e
30-
{"code":0,"desc":"The fop was completed successfully","id":"z0.5cf4e0b138b9f31ea670c97e","inputBucket":"temp","inputKey":"10.mp4","items":[{"cmd":"avthumb/mp4","code":0,"desc":"The fop was completed successfully","hash":"FpBw7VMk5raxi-MG0ooVuPUSMNEs","key":"UAA-4hndfVc5V6DJX0EvslAUBBI=/FhbkdU00yYIPg13-Qu6jZzLVYqvT","returnOld":0}],"pipeline":"0.default","reqid":"5nIAAJCijWpxpKQV"}
30+
z0.5cf4e0b138b9f31ea670c97e {"code":0,"desc":"The fop was completed successfully","id":"z0.5cf4e0b138b9f31ea670c97e","inputBucket":"temp","inputKey":"10.mp4","items":[{"cmd":"avthumb/mp4","code":0,"desc":"The fop was completed successfully","hash":"FpBw7VMk5raxi-MG0ooVuPUSMNEs","key":"UAA-4hndfVc5V6DJX0EvslAUBBI=/FhbkdU00yYIPg13-Qu6jZzLVYqvT","returnOld":0}],"pipeline":"0.default","reqid":"5nIAAJCijWpxpKQV"}
3131
please input line data to process:
3232
```
3333
###### 4 查询空间资源的视频元信息 [avinfo 配置](avinfo.md)
3434
```
3535
➜ ~ java -jar qsuits-6.20.jar -i -process=avinfo -url-index=0
3636
please input line data to process:
3737
http://p3l1d5mx4.bkt.clouddn.com/10.mp4
38-
{"streams":[{"index":0,"codec_name":"h264","codec_long_name":"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10","profile":"High","codec_type":"video","codec_time_base":"1/60","codec_tag_string":"avc1","codec_tag":"0x31637661","width":720,"height":486,"coded_width":720,"coded_height":496,"has_b_frames":2,"sample_aspect_ratio":"1:1","display_aspect_ratio":"40:27","pix_fmt":"yuv420p","level":30,"chroma_location":"left","refs":1,"is_avc":"true","nal_length_size":"4","r_frame_rate":"30/1","avg_frame_rate":"30/1","time_base":"1/15360","start_pts":0,"start_time":"0.000000","duration_ts":92160,"duration":"6.000000","bit_rate":"695088","bits_per_raw_sample":"8","nb_frames":"180","disposition":{"default":1,"dub":0,"original":0,"comment":0,"lyrics":0,"karaoke":0,"forced":0,"hearing_impaired":0,"visual_impaired":0,"clean_effects":0,"attached_pic":0,"timed_thumbnails":0},"tags":{"creation_time":"2011-09-15T17:31:45.000000Z","language":"eng","handler_name":"VideoHandler"}}],"format":{"nb_streams":1,"nb_programs":0,"format_name":"mov,mp4,m4a,3gp,3g2,mj2","format_long_name":"QuickTime / MOV","start_time":"0.000000","duration":"6.000000","size":"524167","bit_rate":"698889","probe_score":100,"tags":{"major_brand":"isom","minor_version":"512","compatible_brands":"isomiso2avc1mp41","creation_time":"2011-09-15T17:31:45.000000Z","encoder":"Lavf57.71.100"}}}
38+
http://p3l1d5mx4.bkt.clouddn.com/10.mp4 {"streams":[{"index":0,"codec_name":"h264","codec_long_name":"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10","profile":"High","codec_type":"video","codec_time_base":"1/60","codec_tag_string":"avc1","codec_tag":"0x31637661","width":720,"height":486,"coded_width":720,"coded_height":496,"has_b_frames":2,"sample_aspect_ratio":"1:1","display_aspect_ratio":"40:27","pix_fmt":"yuv420p","level":30,"chroma_location":"left","refs":1,"is_avc":"true","nal_length_size":"4","r_frame_rate":"30/1","avg_frame_rate":"30/1","time_base":"1/15360","start_pts":0,"start_time":"0.000000","duration_ts":92160,"duration":"6.000000","bit_rate":"695088","bits_per_raw_sample":"8","nb_frames":"180","disposition":{"default":1,"dub":0,"original":0,"comment":0,"lyrics":0,"karaoke":0,"forced":0,"hearing_impaired":0,"visual_impaired":0,"clean_effects":0,"attached_pic":0,"timed_thumbnails":0},"tags":{"creation_time":"2011-09-15T17:31:45.000000Z","language":"eng","handler_name":"VideoHandler"}}],"format":{"nb_streams":1,"nb_programs":0,"format_name":"mov,mp4,m4a,3gp,3g2,mj2","format_long_name":"QuickTime / MOV","start_time":"0.000000","duration":"6.000000","size":"524167","bit_rate":"698889","probe_score":100,"tags":{"major_brand":"isom","minor_version":"512","compatible_brands":"isomiso2avc1mp41","creation_time":"2011-09-15T17:31:45.000000Z","encoder":"Lavf57.71.100"}}}
3939
please input line data to process:
4040
```
4141
###### 5 查询资源的 qhash [qhash 配置](qhash.md)
4242
```
4343
➜ ~ java -jar qsuits-6.20.jar -i -process=qhash -url-index=0
4444
please input line data to process:
4545
http://p3l1d5mx4.bkt.clouddn.com/10.mp4
46-
{"hash":"dc7a26a67763b478f0b05ec38b769349","fsize":524167}
46+
http://p3l1d5mx4.bkt.clouddn.com/10.mp4 {"hash":"dc7a26a67763b478f0b05ec38b769349","fsize":524167}
4747
```
4848
###### 6 异步抓取资源到指定空间 [asyncfetch 配置](asyncfetch.md)
4949
```
5050
➜ ~ java -jar qsuits-6.20.jar -i -process=asyncfetch -ak=------ -sk=------- -to-bucket=temp -url-index=0
5151
please input line data to process:
5252
http://p3l1d5mx4.bkt.clouddn.com/10.mp4
53-
200 {"id":"eyJ6b25lIjoiejAiLCJxdWV1ZSI6IlNJU1lQSFVTLUpPQlMtVjMiLCJwYXJ0X2lkIjozMCwib2Zmc2V0IjoxMjI3NTUwN30=","wait":14}
53+
10.mp4 http://p3l1d5mx4.bkt.clouddn.com/10.mp4 200 {"id":"eyJ6b25lIjoiejAiLCJxdWV1ZSI6IlNJU1lQSFVTLUpPQlMtVjMiLCJwYXJ0X2lkIjozMCwib2Zmc2V0IjoxMjI3NTUwN30=","wait":14}
5454
```
5555
###### 7 修改空间资源的生命周期 [lifecycle 配置](lifecycle.md)
5656
```
5757
➜ ~ java -jar qsuits-6.20.jar -i -process=lifecycle -ak=------ -sk=------- -bucket=temp -days=1
5858
please input line data to process:
5959
10.mp4
60-
200
60+
10.mp4 1
6161
```
6262
###### 8 修改空间资源的状态(启用/禁用)[status 配置](status.md)
6363
```
@@ -78,28 +78,28 @@ https://rs.qbox.me/chtype/dGVtcDoxMC5tcDQ=/type/1 {ResponseInfo:com.qiniu.http
7878
➜ ~ java -jar qsuits-6.20.jar -i -process=copy -ak=-------- -sk=-------- -bucket=temp -to-bucket=ts-work
7979
please input line data to process:
8080
10.mp4
81-
200
81+
10.mp4 10.mp4
8282
```
8383
###### 11 移动资源到指定空间 [move 配置](move.md)
8484
```
8585
➜ ~ java -jar qsuits-6.20.jar -i -process=move -ak=------- -sk=-------- -bucket=temp -to-bucket=ts-work
8686
please input line data to process:
8787
10.mp4
88-
200
88+
10.mp4 10.mp4
8989
```
9090
###### 12 对指定空间的资源进行重命名 [rename 配置](rename.md)
9191
```
9292
➜ ~ java -jar qsuits-6.20.jar -i -process=rename -ak=------ -sk=------- -bucket=temp -add-prefix=1 -prefix-force=true
9393
please input line data to process:
9494
10.mp4
95-
200
95+
10.mp4 10.mp4
9696
```
9797
###### 13 删除空间资源 [delete 配置](delete.md)
9898
```
9999
➜ ~ java -jar qsuits-6.20.jar -i -process=delete -ak=---------- -sk=--------- -bucket=ts-work
100100
please input line data to process:
101101
10.mp4
102-
200
102+
10.mp4
103103
```
104104
###### 14 查询空间资源的元信息 [stat 配置](stat.md)
105105
```

docs/single.md

+13-13
Original file line numberDiff line numberDiff line change
@@ -23,54 +23,54 @@ Exception in thread "main" java.io.IOException: please set pipeline, if you don'
2323
at com.qiniu.entry.QSuitsEntry.whichNextProcessor(QSuitsEntry.java:326)
2424
at com.qiniu.entry.EntryMain.main(EntryMain.java:32)
2525
➜ ~ java -jar qsuits-6.20.jar -s -process=pfop -ak=XgP9wnGCGGX8FlS7zxfOQcPev6pFUBo0T1Os375l -sk=scDsyT37O0qg4qM88XY1Bsg0ulj6O8u56Y-bu_7a -bucket=temp -key=110.mp4 -fops="avthumb/mp4|saveas/dGVtcDprZXkubXA0" -force-public=true
26-
z0.5cf6460238b9f31ea6d3d29d
26+
10.mp4 z0.5cf4e0b138b9f31ea670c97e
2727
```
2828
###### 3 通过 persistentId 查询 pfop 的结果 [pfopresult 配置](pfopresult.md)
2929
```
3030
➜ ~ java -jar qsuits-6.20.jar -s -process=pfopresult -pid=z0.5cf6460238b9f31ea6d3d29d
31-
{"code":0,"desc":"The fop was completed successfully","id":"z0.5cf6460238b9f31ea6d3d29d","inputBucket":"temp","inputKey":"110.mp4","items":[{"cmd":"avthumb/mp4|saveas/dGVtcDprZXkubXA0","code":0,"desc":"The fop was completed successfully","hash":"FpBw7VMk5raxi-MG0ooVuPUSMNEs","key":"key.mp4","returnOld":0}],"pipeline":"0.default","reqid":"uxAAACmnPRWo96QV"}
31+
z0.5cf6460238b9f31ea6d3d29d {"code":0,"desc":"The fop was completed successfully","id":"z0.5cf6460238b9f31ea6d3d29d","inputBucket":"temp","inputKey":"110.mp4","items":[{"cmd":"avthumb/mp4|saveas/dGVtcDprZXkubXA0","code":0,"desc":"The fop was completed successfully","hash":"FpBw7VMk5raxi-MG0ooVuPUSMNEs","key":"key.mp4","returnOld":0}],"pipeline":"0.default","reqid":"uxAAACmnPRWo96QV"}
3232
➜ ~ java -jar qsuits-6.20.jar -s -process=pfopresult -persistentId=z0.5cf6460238b9f31ea6d3d29d
33-
{"code":0,"desc":"The fop was completed successfully","id":"z0.5cf6460238b9f31ea6d3d29d","inputBucket":"temp","inputKey":"110.mp4","items":[{"cmd":"avthumb/mp4|saveas/dGVtcDprZXkubXA0","code":0,"desc":"The fop was completed successfully","hash":"FpBw7VMk5raxi-MG0ooVuPUSMNEs","key":"key.mp4","returnOld":0}],"pipeline":"0.default","reqid":"uxAAACmnPRWo96QV"}
33+
z0.5cf6460238b9f31ea6d3d29d {"code":0,"desc":"The fop was completed successfully","id":"z0.5cf6460238b9f31ea6d3d29d","inputBucket":"temp","inputKey":"110.mp4","items":[{"cmd":"avthumb/mp4|saveas/dGVtcDprZXkubXA0","code":0,"desc":"The fop was completed successfully","hash":"FpBw7VMk5raxi-MG0ooVuPUSMNEs","key":"key.mp4","returnOld":0}],"pipeline":"0.default","reqid":"uxAAACmnPRWo96QV"}
3434
```
3535
###### 4 查询空间资源的视频元信息 [avinfo 配置](avinfo.md)
3636
```
3737
➜ ~ java -jar qsuits-6.20.jar -s -process=avinfo -url=http://p3l1d5mx4.bkt.clouddn.com/10.mp4
38-
{"streams":[{"index":0,"codec_name":"h264","codec_long_name":"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10","profile":"High","codec_type":"video","codec_time_base":"1/60","codec_tag_string":"avc1","codec_tag":"0x31637661","width":720,"height":486,"coded_width":720,"coded_height":496,"has_b_frames":2,"sample_aspect_ratio":"1:1","display_aspect_ratio":"40:27","pix_fmt":"yuv420p","level":30,"chroma_location":"left","refs":1,"is_avc":"true","nal_length_size":"4","r_frame_rate":"30/1","avg_frame_rate":"30/1","time_base":"1/15360","start_pts":0,"start_time":"0.000000","duration_ts":92160,"duration":"6.000000","bit_rate":"695088","bits_per_raw_sample":"8","nb_frames":"180","disposition":{"default":1,"dub":0,"original":0,"comment":0,"lyrics":0,"karaoke":0,"forced":0,"hearing_impaired":0,"visual_impaired":0,"clean_effects":0,"attached_pic":0,"timed_thumbnails":0},"tags":{"creation_time":"2011-09-15T17:31:45.000000Z","language":"eng","handler_name":"VideoHandler"}}],"format":{"nb_streams":1,"nb_programs":0,"format_name":"mov,mp4,m4a,3gp,3g2,mj2","format_long_name":"QuickTime / MOV","start_time":"0.000000","duration":"6.000000","size":"524167","bit_rate":"698889","probe_score":100,"tags":{"major_brand":"isom","minor_version":"512","compatible_brands":"isomiso2avc1mp41","creation_time":"2011-09-15T17:31:45.000000Z","encoder":"Lavf57.71.100"}}}
38+
http://p3l1d5mx4.bkt.clouddn.com/10.mp4 {"streams":[{"index":0,"codec_name":"h264","codec_long_name":"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10","profile":"High","codec_type":"video","codec_time_base":"1/60","codec_tag_string":"avc1","codec_tag":"0x31637661","width":720,"height":486,"coded_width":720,"coded_height":496,"has_b_frames":2,"sample_aspect_ratio":"1:1","display_aspect_ratio":"40:27","pix_fmt":"yuv420p","level":30,"chroma_location":"left","refs":1,"is_avc":"true","nal_length_size":"4","r_frame_rate":"30/1","avg_frame_rate":"30/1","time_base":"1/15360","start_pts":0,"start_time":"0.000000","duration_ts":92160,"duration":"6.000000","bit_rate":"695088","bits_per_raw_sample":"8","nb_frames":"180","disposition":{"default":1,"dub":0,"original":0,"comment":0,"lyrics":0,"karaoke":0,"forced":0,"hearing_impaired":0,"visual_impaired":0,"clean_effects":0,"attached_pic":0,"timed_thumbnails":0},"tags":{"creation_time":"2011-09-15T17:31:45.000000Z","language":"eng","handler_name":"VideoHandler"}}],"format":{"nb_streams":1,"nb_programs":0,"format_name":"mov,mp4,m4a,3gp,3g2,mj2","format_long_name":"QuickTime / MOV","start_time":"0.000000","duration":"6.000000","size":"524167","bit_rate":"698889","probe_score":100,"tags":{"major_brand":"isom","minor_version":"512","compatible_brands":"isomiso2avc1mp41","creation_time":"2011-09-15T17:31:45.000000Z","encoder":"Lavf57.71.100"}}}
3939
```
4040
###### 5 查询资源的 qhash [qhash 配置](qhash.md)
4141
```
4242
➜ ~ java -jar qsuits-6.20.jar -s -process=qhash -url=http://p3l1d5mx4.bkt.clouddn.com/10.mp4
43-
{"hash":"dc7a26a67763b478f0b05ec38b769349","fsize":524167}
43+
http://p3l1d5mx4.bkt.clouddn.com/10.mp4 {"hash":"dc7a26a67763b478f0b05ec38b769349","fsize":524167}
4444
```
4545
###### 6 异步抓取资源到指定空间 [asyncfetch 配置](asyncfetch.md)
4646
```
4747
➜ ~ java -jar qsuits-6.20.jar -i -process=asyncfetch -ak=------ -sk=------- -to-bucket=temp -url=http://p3l1d5mx4.bkt.clouddn.com/10.mp4
48-
200 {"id":"eyJ6b25lIjoiejAiLCJxdWV1ZSI6IlNJU1lQSFVTLUpPQlMtVjMiLCJwYXJ0X2lkIjoyMiwib2Zmc2V0IjoxMjM0OTk2NH0=","wait":3}
48+
10.mp4 http://p3l1d5mx4.bkt.clouddn.com/10.mp4 200 {"id":"eyJ6b25lIjoiejAiLCJxdWV1ZSI6IlNJU1lQSFVTLUpPQlMtVjMiLCJwYXJ0X2lkIjoyMiwib2Zmc2V0IjoxMjM0OTk2NH0=","wait":3}
4949
```
5050
###### 7 修改空间资源的生命周期 [lifecycle 配置](lifecycle.md)
5151
```
5252
➜ ~ java -jar qsuits-6.20.jar -s -process=lifecycle -ak=------ -sk=------- -bucket=temp -days=1 -key=10.mp4
53-
200
53+
10.mp4 1
5454
```
5555
###### 8 修改空间资源的状态(启用/禁用)[status 配置](status.md)
5656
```
5757
➜ ~ java -jar qsuits-6.20.jar -s -process=status -ak=-------- -sk=-------- -bucket=temp -status=1 -key=10.mp4
58-
200
58+
10.mp4 1
5959
```
6060
###### 9 修改空间资源的存储类型(低频/标准)[type 配置](type.md)
6161
```
6262
➜ ~ java -jar qsuits-6.20.jar -s -process=type -ak=--------- -sk=-------- -bucket=temp -type=1 -key=10.mp4
63-
200
63+
10.mp4 1
6464
```
6565
###### 10 复制资源到指定空间 [copy 配置](copy.md)
6666
```
6767
➜ ~ java -jar qsuits-6.20.jar -s -process=copy -ak=-------- -sk=-------- -bucket=temp -to-bucket=ts-work -key=10.mp4
68-
200
68+
10.mp4 10.mp4
6969
```
7070
###### 11 移动资源到指定空间 [move 配置](move.md)
7171
```
7272
➜ ~ java -jar qsuits-6.20.jar -s -process=move -ak=------- -sk=-------- -bucket=temp -to-bucket=ts-work -key=10.mp4
73-
200
73+
10.mp4 10.mp4
7474
```
7575
###### 12 对指定空间的资源进行重命名 [rename 配置](rename.md)
7676
```
@@ -82,12 +82,12 @@ Exception in thread "main" java.io.IOException: there is no to-key index, if you
8282
at com.qiniu.entry.QSuitsEntry.whichNextProcessor(QSuitsEntry.java:321)
8383
at com.qiniu.entry.EntryMain.main(EntryMain.java:32)
8484
java -jar qsuits-6.20.jar -s -process=rename -ak=------ -sk=------- -bucket=temp -add-prefix=2 -prefix-force=true -key=10.mp4
85-
200
85+
10.mp4 10.mp4
8686
```
8787
###### 13 删除空间资源 [delete 配置](delete.md)
8888
```
8989
➜ ~ java -jar qsuits-6.20.jar -s -process=delete -ak=---------- -sk=--------- -bucket=ts-work -key=10.mp4
90-
200
90+
10.mp4
9191
```
9292
###### 14 查询空间资源的元信息 [stat 配置](stat.md)
9393
```

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.qiniu</groupId>
88
<artifactId>qsuits</artifactId>
9-
<version>6.20</version>
9+
<version>6.30</version>
1010
<name>qsuits</name>
1111
<description>qiniu-suits is a efficient tools for qiniu api implemented by java8.</description>
1212
<url>https://github.com/NigelWu95/qiniu-suits-java</url>

src/main/java/com/qiniu/convert/Converter.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public List<T> convertToVList(List<E> lineList) {
2121
try {
2222
mapList.add(convertToV(line));
2323
} catch (Exception e) {
24-
errorList.add(JsonUtils.toJson(line) + "\t" + e.getMessage());
24+
errorList.add(JsonUtils.toJson(line) + "\tcvterr " + e.getMessage());
2525
}
2626
}
2727
}
@@ -34,9 +34,9 @@ public int errorSize() {
3434
}
3535

3636
@Override
37-
public List<String> consumeErrors() {
37+
public String errorLines() {
3838
try {
39-
return new ArrayList<>(errorList);
39+
return String.join("\n", errorList);
4040
} finally {
4141
errorList.clear();
4242
}

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

+5-6
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void setProcessor(ILineProcess<T> processor) {
9393

9494
public void export(IReader<E> reader, IResultOutput<W> saver, ILineProcess<T> processor) throws IOException {
9595
ITypeConvert<String, T> converter = getNewConverter();
96-
ITypeConvert<T, String> writeTypeConverter = getNewStringConverter();
96+
ITypeConvert<T, String> stringConverter = getNewStringConverter();
9797
List<String> srcList = new ArrayList<>();
9898
List<T> convertedList;
9999
List<String> writeList;
@@ -114,13 +114,12 @@ public void export(IReader<E> reader, IResultOutput<W> saver, ILineProcess<T> pr
114114
if (line != null && !"".equals(line)) srcList.add(line);
115115
if (srcList.size() >= unitLen || (line == null && srcList.size() > 0)) {
116116
convertedList = converter.convertToVList(srcList);
117-
if (converter.errorSize() > 0)
118-
saver.writeError(String.join("\n", converter.consumeErrors()), false);
117+
if (converter.errorSize() > 0) saver.writeError(converter.errorLines(), false);
119118
if (saveTotal) {
120-
writeList = writeTypeConverter.convertToVList(convertedList);
119+
writeList = stringConverter.convertToVList(convertedList);
121120
if (writeList.size() > 0) saver.writeSuccess(String.join("\n", writeList), false);
122-
if (writeTypeConverter.errorSize() > 0)
123-
saver.writeError(String.join("\n", writeTypeConverter.consumeErrors()), false);
121+
if (stringConverter.errorSize() > 0)
122+
saver.writeKeyFile("string-error", stringConverter.errorLines(), false);
124123
}
125124
// 如果抛出异常需要检测下异常是否是可继续的异常,如果是程序可继续的异常,忽略当前异常保持数据源读取过程继续进行
126125
try {

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -151,15 +151,13 @@ public void export(ILister<E> lister, IResultOutput<W> saver, ILineProcess<T> pr
151151
if (saveTotal) {
152152
writeList = stringConverter.convertToVList(objects);
153153
if (writeList.size() > 0) saver.writeSuccess(String.join("\n", writeList), false);
154-
if (stringConverter.errorSize() > 0)
155-
saver.writeError(String.join("\n", stringConverter.consumeErrors()), false);
154+
if (stringConverter.errorSize() > 0) saver.writeKeyFile("string-error", stringConverter.errorLines(), false);
156155
}
157156
// 如果抛出异常需要检测下异常是否是可继续的异常,如果是程序可继续的异常,忽略当前异常保持数据源读取过程继续进行
158157
try {
159158
if (processor != null) {
160159
convertedList = converter.convertToVList(objects);
161-
if (converter.errorSize() > 0)
162-
saver.writeError(String.join("\n", converter.consumeErrors()), false);
160+
if (converter.errorSize() > 0) saver.writeError(converter.errorLines(), false);
163161
processor.processLine(convertedList);
164162
}
165163
} catch (QiniuException e) {

0 commit comments

Comments
 (0)