sftp 下载实现
使用零拷贝技术优化合并分块的功能
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.arialyy.aria.ftp;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import aria.apache.commons.net.ftp.FTPClientConfig;
|
||||
import com.arialyy.aria.core.FtpUrlEntity;
|
||||
import com.arialyy.aria.core.common.FtpConnectionMode;
|
||||
@@ -172,7 +173,7 @@ public final class FtpTaskOption implements ITaskOption {
|
||||
}
|
||||
|
||||
public String getCharSet() {
|
||||
return charSet;
|
||||
return TextUtils.isEmpty(charSet) ? "UTF-8" : charSet;
|
||||
}
|
||||
|
||||
public void setCharSet(String charSet) {
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.arialyy.aria.core.common.RecordHelper;
|
||||
import com.arialyy.aria.core.config.Configuration;
|
||||
import com.arialyy.aria.core.download.DTaskWrapper;
|
||||
import com.arialyy.aria.core.loader.IRecordHandler;
|
||||
import com.arialyy.aria.core.wrapper.ITaskWrapper;
|
||||
import com.arialyy.aria.util.RecordUtil;
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -58,7 +59,7 @@ public final class FtpDRecordHandler extends RecordHandler {
|
||||
tr.threadId = threadId;
|
||||
tr.startLocation = startL;
|
||||
tr.isComplete = false;
|
||||
tr.threadType = getWrapper().getEntity().getTaskType();
|
||||
tr.threadType = record.taskType;
|
||||
//最后一个线程的结束位置即为文件的总长度
|
||||
if (threadId == (record.threadNum - 1)) {
|
||||
endL = getFileSize();
|
||||
@@ -75,7 +76,7 @@ public final class FtpDRecordHandler extends RecordHandler {
|
||||
record.threadRecords = new ArrayList<>();
|
||||
record.threadNum = threadNum;
|
||||
record.isBlock = Configuration.getInstance().downloadCfg.isUseBlock();
|
||||
record.taskType = getWrapper().getEntity().getTaskType();
|
||||
record.taskType = getWrapper().getRequestType();
|
||||
record.isGroupRecord = false;
|
||||
|
||||
return record;
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.arialyy.aria.core.TaskRecord;
|
||||
import com.arialyy.aria.core.ThreadRecord;
|
||||
import com.arialyy.aria.core.common.RecordHandler;
|
||||
import com.arialyy.aria.core.upload.UTaskWrapper;
|
||||
import com.arialyy.aria.core.wrapper.ITaskWrapper;
|
||||
import com.arialyy.aria.util.ALog;
|
||||
import com.arialyy.aria.util.RecordUtil;
|
||||
import java.util.ArrayList;
|
||||
@@ -87,7 +88,7 @@ final class FtpURecordHandler extends RecordHandler {
|
||||
tr.threadId = threadId;
|
||||
tr.startLocation = startL;
|
||||
tr.isComplete = false;
|
||||
tr.threadType = getWrapper().getEntity().getTaskType();
|
||||
tr.threadType = record.taskType;
|
||||
tr.endLocation = getFileSize();
|
||||
tr.blockLen = RecordUtil.getBlockLen(getFileSize(), threadId, record.threadNum);
|
||||
return tr;
|
||||
@@ -100,7 +101,7 @@ final class FtpURecordHandler extends RecordHandler {
|
||||
record.threadRecords = new ArrayList<>();
|
||||
record.threadNum = threadNum;
|
||||
record.isBlock = false;
|
||||
record.taskType = getWrapper().getEntity().getTaskType();
|
||||
record.taskType = getWrapper().getRequestType();
|
||||
record.isGroupRecord = getEntity().isGroupChild();
|
||||
|
||||
return record;
|
||||
|
||||
Reference in New Issue
Block a user