Skip to content

Commit 27634be

Browse files
committed
output become more friendly
1 parent 5a367d4 commit 27634be

File tree

10 files changed

+55
-33
lines changed

10 files changed

+55
-33
lines changed

src/main/java/com/qcloud/cos_migrate_tool/meta/TaskStatics.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class TaskStatics {
2626
private TaskStatics() {}
2727

2828
public void setListFinished(boolean is_finished) {
29-
this.list_finished = true;
29+
this.list_finished = is_finished;
3030
}
3131

3232
public boolean getListFinished() {

src/main/java/com/qcloud/cos_migrate_tool/task/MigrateAliTaskExecutor.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,8 @@ public void buildTask() {
105105
com.qcloud.cos.utils.UrlEncoderUtils.urlDecode(s.getKey()),
106106
s.getSize(), s.getETag(), smallFileTransferManager,
107107
bigFileTransferManager, recordDb, semaphore);
108-
try {
108+
109109
AddTask(task);
110-
} catch (InterruptedException e) {
111-
log.error(e.getMessage());
112-
}
113110
}
114111
nextMarker = com.qcloud.cos.utils.UrlEncoderUtils
115112
.urlDecode(objectListing.getNextMarker());
@@ -121,10 +118,22 @@ public void buildTask() {
121118
} catch (OSSException e) {
122119
log.error("list fail msg: {}", e.getMessage());
123120
TaskStatics.instance.setListFinished(false);
121+
if (e.getErrorCode().equalsIgnoreCase("AccessDenied")) {
122+
System.out.println(e.getMessage());
123+
break;
124+
}
124125
} catch (ClientException e) {
125126
log.error("list fail msg: {}", e.getMessage());
126127
TaskStatics.instance.setListFinished(false);
128+
if (e.getErrorCode().equalsIgnoreCase("AccessDenied")) {
129+
System.out.println(e.getMessage());
130+
break;
131+
}
132+
} catch (Exception e) {
133+
log.error(e.getMessage());
134+
TaskStatics.instance.setListFinished(false);
127135
}
136+
retry_num++;
128137
} while (retry_num < 20);
129138

130139
}

src/main/java/com/qcloud/cos_migrate_tool/task/MigrateAwsTaskExecutor.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,7 @@ public void buildTask() {
106106
bigFileTransferManager, recordDb, semaphore);
107107
log.info("list key: {}, size: {}, etag: {}", objectSummary.getKey(), objectSummary.getSize(), objectSummary.getETag());
108108

109-
try {
110109
AddTask(task);
111-
} catch (InterruptedException e) {
112-
log.error(e.getMessage());
113-
}
114-
115110
}
116111
listObjectsRequest.setMarker(objectListing.getNextMarker());
117112
} while (objectListing.isTruncated());
@@ -125,6 +120,9 @@ public void buildTask() {
125120
} catch (AmazonClientException ace) {
126121
log.error("list fail AmazonClientException msg: {}", ace.getMessage().toString());
127122
TaskStatics.instance.setListFinished(false);
123+
} catch (Exception e) {
124+
log.error(e.getMessage());
125+
TaskStatics.instance.setListFinished(false);
128126
}
129127

130128
}

src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCopyBucketTask.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,13 @@ public void doTask() {
9191
}
9292
CopyObjectRequest copyObjectRequest = new CopyObjectRequest(new Region(srcRegion),
9393
srcBucketName, srcKey, destBucketName, destKey);
94+
95+
if (srcBucketName.equals(destBucketName) && ( destKey.equals("/" + srcKey) || srcKey.equals(destKey)) ) {
96+
ObjectMetadata newObjectMetadata = new ObjectMetadata();
97+
newObjectMetadata.addUserMetadata("x-cos-metadata-directive", "Replaced");
98+
copyObjectRequest.setNewObjectMetadata(newObjectMetadata);
99+
}
100+
94101
copyObjectRequest.setSourceEndpointSuffix(srcEndpointSuffx);
95102
try {
96103
Copy copy = smallFileTransfer.copy(copyObjectRequest, srcCOSClient, null);

src/main/java/com/qcloud/cos_migrate_tool/task/MigrateQiniuTaskExecutor.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,7 @@ public void buildTask() {
8888
item.hash, smallFileTransferManager, bigFileTransferManager, recordDb,
8989
semaphore);
9090

91-
try {
9291
AddTask(task);
93-
} catch (InterruptedException e) {
94-
log.error("add task fail,msg:{}", e.getMessage());
95-
}
9692
}
9793
}
9894

src/main/java/com/qcloud/cos_migrate_tool/task/MigrateUrllistTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ public void doTask() {
4646
headAttr = Downloader.instance.headFile(url, false);
4747
} catch (Exception e) {
4848
String printMsg = String.format("head url attr fail, url: %s", url);
49-
System.err.println(printMsg);
50-
log.error(printMsg, e);
49+
System.err.println(e.toString());
50+
log.error(e.toString(), printMsg);
5151
TaskStatics.instance.addFailCnt();
5252
return;
5353
}

src/main/java/com/qcloud/cos_migrate_tool/task/MigrateUrllistTaskExecutor.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,19 @@ public FileVisitResult visitFile(Path urllistPath, BasicFileAttributes attrs) th
8989

9090
MigrateUrllistTask task = new MigrateUrllistTask(config, line, url_path,
9191
smallFileTransferManager, bigFileTransferManager, recordDb, semaphore);
92-
try {
93-
AddTask(task);
94-
} catch (InterruptedException e) {
95-
log.error("add task fail,msg:{}", e.getMessage());
96-
}
92+
93+
AddTask(task);
94+
9795
}
9896

9997
TaskStatics.instance.setListFinished(true);
10098

10199
} catch (IOException e) {
102100
log.error("read line fail,msg:{}", e.getMessage());
103101
TaskStatics.instance.setListFinished(false);
102+
} catch (Exception e) {
103+
log.error(e.getMessage());
104+
TaskStatics.instance.setListFinished(false);
104105
}
105106

106107
try {

src/main/java/com/qcloud/cos_migrate_tool/task/Task.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
public abstract class Task implements Runnable {
2929
private Semaphore semaphore;
3030
public static final Logger log = LoggerFactory.getLogger(Task.class);
31-
31+
protected static Semaphore mutex = new Semaphore(1);
3232

3333
protected TransferManager smallFileTransfer;
3434
protected TransferManager bigFileTransfer;
@@ -38,6 +38,7 @@ public abstract class Task implements Runnable {
3838
QUERY_RESULT query_result;
3939

4040

41+
4142
public Task(Semaphore semaphore, CommonConfig config, TransferManager smallFileTransfer,
4243
TransferManager bigFileTransfer, RecordDb recordDb) {
4344
super();
@@ -58,7 +59,7 @@ public boolean isExist(RecordElement recordElement) {
5859
recordElement.buildValue());
5960
return true;
6061
}
61-
62+
6263
return false;
6364
}
6465

@@ -192,7 +193,7 @@ private String uploadSmallFile(PutObjectRequest putObjectRequest) throws Interru
192193

193194
public String uploadFile(String bucketName, String cosPath, File localFile,
194195
StorageClass storageClass, boolean entireMd5Attached, ObjectMetadata objectMetadata)
195-
throws Exception {
196+
throws Exception {
196197
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, cosPath, localFile);
197198
putObjectRequest.setStorageClass(storageClass);
198199

@@ -236,13 +237,21 @@ private void checkTimeWindows() throws InterruptedException {
236237
if (minuteOfDay >= timeWindowBegin && minuteOfDay <= timeWindowEnd) {
237238
return;
238239
}
239-
String printTips =
240-
String.format("currentTime %s, wait next time window [%02d:%02d, %02d:%02d]",
241-
dateTime.toString("yyyy-MM-dd HH:mm:ss"), timeWindowBegin / 60,
242-
timeWindowBegin % 60, timeWindowEnd / 60, timeWindowEnd % 60);
243-
System.out.println(printTips);
244-
log.info(printTips);
245-
Thread.sleep(60000);
240+
241+
if (mutex.tryAcquire()) {
242+
String printTips = String.format(
243+
"currentTime %s, wait next time window [%02d:%02d, %02d:%02d]",
244+
dateTime.toString("yyyy-MM-dd HH:mm:ss"), timeWindowBegin / 60,
245+
timeWindowBegin % 60, timeWindowEnd / 60, timeWindowEnd % 60);
246+
System.out.println(printTips);
247+
System.out.println(
248+
"---------------------------------------------------------------------");
249+
log.info(printTips);
250+
Thread.sleep(60000);
251+
mutex.release();
252+
} else {
253+
Thread.sleep(60000);
254+
}
246255
}
247256
}
248257

src/main/java/com/qcloud/cos_migrate_tool/task/TaskExecutor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ public abstract class TaskExecutor {
3636
protected COSClient cosClient;
3737
protected TransferManager smallFileTransferManager;
3838
protected TransferManager bigFileTransferManager;
39+
40+
3941

4042
enum RUN_MODE {
4143
NORMAL, DUMP_REQUESTID, QUERY_REQUESTID;

src/main/java/com/qcloud/cos_migrate_tool/utils/Downloader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ public HeadAttr headFile(String url, boolean qiniuDownLoadFlag) {
100100
int http_statuscode = httpResponse.getStatusLine().getStatusCode();
101101
if (http_statuscode < 200 || http_statuscode > 299) {
102102
String errMsg = String.format(
103-
"head failed, url: %s, httpResponse: %s, response_statuscode: %d", url,
104-
httpResponse.toString(), http_statuscode);
103+
"head failed, response_statuscode: %d, url: %s, httpResponse: %s, ", http_statuscode, url,
104+
httpResponse.toString());
105105
throw new Exception(errMsg);
106106
}
107107

0 commit comments

Comments
 (0)