Skip to content

Commit 96f810b

Browse files
committed
fix:优化uploadFile、uploadFIles文件路径不正确场景
1 parent 9c061e9 commit 96f810b

File tree

1 file changed

+85
-87
lines changed

1 file changed

+85
-87
lines changed

sdk/advance.js

Lines changed: 85 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -795,47 +795,48 @@ function uploadFile(params, callback) {
795795
var taskList = [];
796796

797797
fs.stat(params.FilePath, function (err, stat) {
798-
try {
799-
var isDir = stat.isDirectory();
800-
var FileSize = params.ContentLength = stat.size || 0;
801-
var fileInfo = {TaskId: ''};
802-
803-
// 整理 option,用于返回给回调
804-
util.each(params, function (v, k) {
805-
if (typeof v !== 'object' && typeof v !== 'function') {
806-
fileInfo[k] = v;
807-
}
808-
});
809-
810-
// 处理文件 TaskReady
811-
var _onTaskReady = params.onTaskReady;
812-
var onTaskReady = function (tid) {
813-
fileInfo.TaskId = tid;
814-
_onTaskReady && _onTaskReady(tid);
815-
};
816-
params.onTaskReady = onTaskReady;
817-
818-
// 处理文件完成
819-
var _onFileFinish = params.onFileFinish;
820-
var onFileFinish = function (err, data) {
821-
_onFileFinish && _onFileFinish(err, data, fileInfo);
822-
callback && callback(err, data);
823-
};
824-
825-
// 添加上传任务
826-
var api = FileSize <= SliceSize || isDir ? 'putObject' : 'sliceUploadFile';
827-
if (api === 'putObject') {
828-
params.Body = isDir ? '' : fs.createReadStream(params.FilePath);
829-
params.Body.isSdkCreated = true;
798+
if (err) {
799+
return callback(err);
800+
}
801+
802+
var isDir = stat.isDirectory();
803+
var FileSize = params.ContentLength = stat.size || 0;
804+
var fileInfo = {TaskId: ''};
805+
806+
// 整理 option,用于返回给回调
807+
util.each(params, function (v, k) {
808+
if (typeof v !== 'object' && typeof v !== 'function') {
809+
fileInfo[k] = v;
830810
}
831-
taskList.push({
832-
api: api,
833-
params: params,
834-
callback: onFileFinish,
835-
});
836-
self._addTasks(taskList);
837-
} catch (e) {
811+
});
812+
813+
// 处理文件 TaskReady
814+
var _onTaskReady = params.onTaskReady;
815+
var onTaskReady = function (tid) {
816+
fileInfo.TaskId = tid;
817+
_onTaskReady && _onTaskReady(tid);
818+
};
819+
params.onTaskReady = onTaskReady;
820+
821+
// 处理文件完成
822+
var _onFileFinish = params.onFileFinish;
823+
var onFileFinish = function (err, data) {
824+
_onFileFinish && _onFileFinish(err, data, fileInfo);
825+
callback && callback(err, data);
826+
};
827+
828+
// 添加上传任务
829+
var api = FileSize <= SliceSize || isDir ? 'putObject' : 'sliceUploadFile';
830+
if (api === 'putObject') {
831+
params.Body = isDir ? '' : fs.createReadStream(params.FilePath);
832+
params.Body.isSdkCreated = true;
838833
}
834+
taskList.push({
835+
api: api,
836+
params: params,
837+
callback: onFileFinish,
838+
});
839+
self._addTasks(taskList);
839840
});
840841
}
841842

@@ -873,61 +874,58 @@ function uploadFiles(params, callback) {
873874
var count = params.files.length;
874875
util.each(params.files, function (fileParams, index) {
875876
fs.stat(fileParams.FilePath, function (err, stat) {
876-
try {
877-
var isDir = stat.isDirectory();
878-
var FileSize = fileParams.ContentLength = stat.size || 0;
879-
var fileInfo = {Index: index, TaskId: ''};
877+
var isDir = stat ? stat.isDirectory() : false;
878+
var FileSize = fileParams.ContentLength = stat ? stat.size : 0;
879+
var fileInfo = {Index: index, TaskId: ''};
880880

881-
// 更新文件总大小
882-
TotalSize += FileSize;
881+
// 更新文件总大小
882+
TotalSize += FileSize;
883883

884-
// 整理 option,用于返回给回调
885-
util.each(fileParams, function (v, k) {
886-
if (typeof v !== 'object' && typeof v !== 'function') {
887-
fileInfo[k] = v;
888-
}
889-
});
884+
// 整理 option,用于返回给回调
885+
util.each(fileParams, function (v, k) {
886+
if (typeof v !== 'object' && typeof v !== 'function') {
887+
fileInfo[k] = v;
888+
}
889+
});
890890

891-
// 处理单个文件 TaskReady
892-
var _onTaskReady = fileParams.onTaskReady;
893-
var onTaskReady = function (tid) {
894-
fileInfo.TaskId = tid;
895-
_onTaskReady && _onTaskReady(tid);
896-
};
897-
fileParams.onTaskReady = onTaskReady;
891+
// 处理单个文件 TaskReady
892+
var _onTaskReady = fileParams.onTaskReady;
893+
var onTaskReady = function (tid) {
894+
fileInfo.TaskId = tid;
895+
_onTaskReady && _onTaskReady(tid);
896+
};
897+
fileParams.onTaskReady = onTaskReady;
898898

899-
// 处理单个文件进度
900-
var PreAddSize = 0;
901-
var _onProgress = fileParams.onProgress;
902-
var onProgress = function (info) {
903-
TotalFinish = TotalFinish - PreAddSize + info.loaded;
904-
PreAddSize = info.loaded;
905-
_onProgress && _onProgress(info);
906-
onTotalProgress({loaded: TotalFinish, total: TotalSize});
907-
};
908-
fileParams.onProgress = onProgress;
899+
// 处理单个文件进度
900+
var PreAddSize = 0;
901+
var _onProgress = fileParams.onProgress;
902+
var onProgress = function (info) {
903+
TotalFinish = TotalFinish - PreAddSize + info.loaded;
904+
PreAddSize = info.loaded;
905+
_onProgress && _onProgress(info);
906+
onTotalProgress({loaded: TotalFinish, total: TotalSize});
907+
};
908+
fileParams.onProgress = onProgress;
909909

910-
// 处理单个文件完成
911-
var _onFileFinish = fileParams.onFileFinish;
912-
var onFileFinish = function (err, data) {
913-
_onFileFinish && _onFileFinish(err, data);
914-
onTotalFileFinish && onTotalFileFinish(err, data, fileInfo);
915-
};
910+
// 处理单个文件完成
911+
var _onFileFinish = fileParams.onFileFinish;
912+
var onFileFinish = function (err, data) {
913+
_onFileFinish && _onFileFinish(err, data);
914+
onTotalFileFinish && onTotalFileFinish(err, data, fileInfo);
915+
};
916916

917-
// 添加上传任务
918-
var api = FileSize <= SliceSize || isDir ? 'putObject' : 'sliceUploadFile';
919-
if (api === 'putObject') {
920-
fileParams.Body = isDir ? '' : fs.createReadStream(fileParams.FilePath);
921-
fileParams.Body.isSdkCreated = true;
922-
}
923-
taskList.push({
924-
api: api,
925-
params: fileParams,
926-
callback: onFileFinish,
927-
});
928-
--count === 0 && self._addTasks(taskList);
929-
} catch (e){
917+
// 添加上传任务
918+
var api = FileSize <= SliceSize || isDir ? 'putObject' : 'sliceUploadFile';
919+
if (api === 'putObject') {
920+
fileParams.Body = isDir ? '' : fs.createReadStream(fileParams.FilePath);
921+
fileParams.Body.isSdkCreated = true;
930922
}
923+
taskList.push({
924+
api: api,
925+
params: fileParams,
926+
callback: onFileFinish,
927+
});
928+
--count === 0 && self._addTasks(taskList);
931929
});
932930
});
933931
}

0 commit comments

Comments
 (0)