11package com .qcloud .cos_migrate_tool .app ;
22
3+ import java .io .BufferedReader ;
4+ import java .io .FileInputStream ;
5+ import java .io .FileNotFoundException ;
6+ import java .io .IOException ;
7+ import java .io .InputStreamReader ;
8+
39import org .slf4j .Logger ;
410import org .slf4j .LoggerFactory ;
511
814import com .qcloud .cos_migrate_tool .config .CopyBucketConfig ;
915import com .qcloud .cos_migrate_tool .config .CopyFromAliConfig ;
1016import com .qcloud .cos_migrate_tool .config .CopyFromAwsConfig ;
17+ import com .qcloud .cos_migrate_tool .config .CopyFromCompetitorConfig ;
1118import com .qcloud .cos_migrate_tool .config .CopyFromLocalConfig ;
1219import com .qcloud .cos_migrate_tool .config .CopyFromQiniuConfig ;
1320import com .qcloud .cos_migrate_tool .config .CopyFromUrllistConfig ;
21+ import com .qcloud .cos_migrate_tool .config .CopyFromCspConfig ;
1422import com .qcloud .cos_migrate_tool .config .MigrateType ;
1523import com .qcloud .cos_migrate_tool .meta .TaskStatics ;
1624import com .qcloud .cos_migrate_tool .task .MigrateAliTaskExecutor ;
1725import com .qcloud .cos_migrate_tool .task .MigrateAwsTaskExecutor ;
1826import com .qcloud .cos_migrate_tool .task .MigrateCopyBucketTaskExecutor ;
27+ import com .qcloud .cos_migrate_tool .task .MigrateCspTaskExecutor ;
1928import com .qcloud .cos_migrate_tool .task .MigrateLocalTaskExecutor ;
2029import com .qcloud .cos_migrate_tool .task .MigrateQiniuTaskExecutor ;
2130import com .qcloud .cos_migrate_tool .task .MigrateUrllistTaskExecutor ;
@@ -40,6 +49,8 @@ private static TaskExecutor buildTaskExecutor(CommonConfig config) {
4049 return new MigrateUrllistTaskExecutor ((CopyFromUrllistConfig ) config );
4150 } else if (ConfigParser .instance .getMigrateType ().equals (MigrateType .MIGRATE_FROM_QINIU )) {
4251 return new MigrateQiniuTaskExecutor ((CopyFromQiniuConfig ) config );
52+ } else if (ConfigParser .instance .getMigrateType ().equals (MigrateType .MIGRATE_FROM_CSP )) {
53+ return new MigrateCspTaskExecutor ((CopyFromCspConfig ) config );
4354 } else {
4455 System .out .println ("unknown migrate type" );
4556 }
@@ -48,26 +59,80 @@ private static TaskExecutor buildTaskExecutor(CommonConfig config) {
4859 }
4960
5061 public static void main (String [] args ) {
62+
5163 if (!ConfigParser .instance .parse ()) {
5264 return ;
5365 }
5466
5567 CommonConfig config = ConfigParser .instance .getConfig ();
56- while (true ) {
57- TaskStatics .instance .reset ();
58-
59- TaskExecutor taskExecutor = buildTaskExecutor (config );
60- taskExecutor .run ();
61- taskExecutor .waitTaskOver ();
6268
63- if (!config .isDamonMode ())
64- break ;
69+ String batchTaskPath = config .getBatchTaskPath ();
70+ if (!batchTaskPath .isEmpty ()) {
71+
72+ FileInputStream inputStream = null ;
73+ try {
74+ inputStream = new FileInputStream (batchTaskPath );
75+ } catch (FileNotFoundException e ) {
76+ e .printStackTrace ();
77+ return ;
78+ }
79+ BufferedReader bufferedReader = new BufferedReader (new InputStreamReader (inputStream ));
6580
81+ String str = null ;
6682 try {
67- Thread .sleep (config .getDamonInterVal () * 1000 );
68- } catch (InterruptedException e ) {
69- log .error ("the program is interrupted!" , e );
70- break ;
83+ while (true ) {
84+ while ((str = bufferedReader .readLine ()) != null ) {
85+ String [] task = str .split ("\t " );
86+ if (!((CopyFromCompetitorConfig ) config ).setTask (task )) {
87+ System .out .printf ("task:%s invalid\n " , str );
88+ log .error ("task:{} invalid" , str );
89+ continue ;
90+ }
91+
92+ TaskStatics .instance .reset ();
93+
94+ TaskExecutor taskExecutor = buildTaskExecutor (config );
95+ taskExecutor .run ();
96+ taskExecutor .waitTaskOver ();
97+ }
98+
99+ if (!config .isDamonMode ())
100+ break ;
101+
102+ try {
103+ Thread .sleep (config .getDamonInterVal () * 1000 );
104+ } catch (InterruptedException e ) {
105+ log .error ("the program is interrupted!" , e );
106+ break ;
107+ }
108+ }
109+
110+ inputStream .close ();
111+ bufferedReader .close ();
112+ } catch (IOException e ) {
113+ // TODO Auto-generated catch block
114+ e .printStackTrace ();
115+ return ;
116+ }
117+
118+ } else {
119+
120+ while (true ) {
121+ TaskStatics .instance .reset ();
122+
123+ TaskExecutor taskExecutor = buildTaskExecutor (config );
124+ taskExecutor .run ();
125+ taskExecutor .waitTaskOver ();
126+
127+ if (!config .isDamonMode ())
128+ break ;
129+
130+ try {
131+ Thread .sleep (config .getDamonInterVal () * 1000 );
132+ } catch (InterruptedException e ) {
133+ log .error ("the program is interrupted!" , e );
134+ break ;
135+ }
71136 }
72137 }
73138 }
0 commit comments