@@ -2338,7 +2338,7 @@ base.init(COS, task);
23382338advance . init ( COS , task ) ;
23392339
23402340COS . getAuthorization = util . getAuth ;
2341- COS . version = '1.0.8 ' ;
2341+ COS . version = '1.0.9 ' ;
23422342
23432343module . exports = COS ;
23442344
@@ -9884,6 +9884,48 @@ function abortUploadTaskArray(params, callback) {
98849884 } ) ;
98859885}
98869886
9887+ // 高级上传
9888+ function uploadFile ( params , callback ) {
9889+ var self = this ;
9890+
9891+ // 判断多大的文件使用分片上传
9892+ var SliceSize = params . SliceSize === undefined ? self . options . SliceSize : params . SliceSize ;
9893+
9894+ var taskList = [ ] ;
9895+
9896+ var FileSize = params . FileSize ;
9897+ var fileInfo = { TaskId : '' } ;
9898+
9899+ // 整理 option,用于返回给回调
9900+ util . each ( params , function ( v , k ) {
9901+ if ( typeof v !== 'object' && typeof v !== 'function' ) {
9902+ fileInfo [ k ] = v ;
9903+ }
9904+ } ) ;
9905+
9906+ // 处理文件 TaskReady
9907+ var _onTaskReady = params . onTaskReady ;
9908+ params . onTaskReady = function ( tid ) {
9909+ fileInfo . TaskId = tid ;
9910+ _onTaskReady && _onTaskReady ( tid ) ;
9911+ } ;
9912+
9913+ // 处理文件完成
9914+ var _onFileFinish = params . onFileFinish ;
9915+ var onFileFinish = function ( err , data ) {
9916+ _onFileFinish && _onFileFinish ( err , data , fileInfo ) ;
9917+ callback && callback ( err , data ) ;
9918+ } ;
9919+
9920+ // 添加上传任务
9921+ var api = FileSize > SliceSize ? 'sliceUploadFile' : 'postObject' ;
9922+ taskList . push ( {
9923+ api : api ,
9924+ params : params ,
9925+ callback : onFileFinish ,
9926+ } ) ;
9927+ self . _addTasks ( taskList ) ;
9928+ }
98879929
98889930// 批量上传文件
98899931function uploadFiles ( params , callback ) {
@@ -10217,6 +10259,7 @@ function copySliceItem(params, callback) {
1021710259var API_MAP = {
1021810260 sliceUploadFile : sliceUploadFile ,
1021910261 abortUploadTask : abortUploadTask ,
10262+ uploadFile : uploadFile ,
1022010263 uploadFiles : uploadFiles ,
1022110264 sliceCopyFile : sliceCopyFile ,
1022210265} ;
0 commit comments