Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.qiniu.service.qoss.MoveFile Maven / Gradle / Ivy
Go to download
qiniu-suits is a efficient tools for qiniu api implemented by java8.
package com.qiniu.service.qoss;
import com.qiniu.storage.BucketManager.*;
import com.qiniu.service.interfaces.ILineProcess;
import com.qiniu.storage.Configuration;
import java.io.IOException;
import java.util.List;
import java.util.Map;
public class MoveFile extends OperationBase implements ILineProcess>, Cloneable {
final private String toBucket;
final private String newKeyIndex;
final private String keyPrefix;
final private String rmPrefix;
public MoveFile(String accessKey, String secretKey, Configuration configuration, String bucket, String toBucket,
String newKeyIndex, String keyPrefix, String rmPrefix, boolean forceIfOnlyPrefix, String savePath,
int saveIndex) throws IOException {
// 目标 bucket 为空时规定为 rename 操作
super(toBucket == null || "".equals(toBucket) ? "rename" : "move", accessKey, secretKey, configuration, bucket,
savePath, saveIndex);
if (newKeyIndex == null || "".equals(newKeyIndex)) {
this.newKeyIndex = "key";
if (toBucket == null || "".equals(toBucket)) {
// rename 操作时未设置 new-key 的条件判断
if (forceIfOnlyPrefix) {
if (keyPrefix == null || "".equals(keyPrefix))
throw new IOException("although prefix-force is true, but the add-prefix is empty.");
} else {
throw new IOException("there is no newKey index, if you only want to add prefix for renaming, " +
"please set the \"prefix-force\" as true.");
}
}
} else {
this.newKeyIndex = newKeyIndex;
}
this.toBucket = "".equals(toBucket) ? null : toBucket;
this.keyPrefix = keyPrefix == null ? "" : keyPrefix;
this.rmPrefix = rmPrefix == null ? "" : rmPrefix;
}
public MoveFile(String accessKey, String secretKey, Configuration configuration, String bucket, String toBucket,
String newKeyIndex, String keyPrefix, String rmPrefix, boolean forceIfOnlyPrefix, String savePath)
throws IOException {
this(accessKey, secretKey, configuration, bucket, toBucket, newKeyIndex, keyPrefix, rmPrefix, forceIfOnlyPrefix,
savePath, 0);
}
private String formatKey(String key) {
return keyPrefix + key.substring(0, rmPrefix.length()).replace(rmPrefix, "")
+ key.substring(rmPrefix.length());
}
synchronized public BatchOperations getOperations(List> lineList) {
batchOperations.clearOps();
lineList.forEach(line -> {
if (line.get("key") == null || line.get(newKeyIndex) == null)
errorLineList.add(String.valueOf(line) + "\tno target key in the line map.");
else {
if (toBucket == null || "".equals(toBucket))
batchOperations.addRenameOp(bucket, line.get("key"), formatKey(line.get(newKeyIndex)));
else
batchOperations.addMoveOp(bucket, line.get("key"), toBucket, formatKey(line.get(newKeyIndex)));
}
});
return batchOperations;
}
public String getInputParams(Map line) {
return line.get("key") + "\t" + line.get(newKeyIndex);
}
}