@@ -2422,7 +2422,7 @@ base.init(COS, task);
24222422advance . init ( COS , task ) ;
24232423
24242424COS . getAuthorization = util . getAuth ;
2425- COS . version = '1.2.12 ' ;
2425+ COS . version = '1.2.13 ' ;
24262426
24272427module . exports = COS ;
24282428
@@ -9342,6 +9342,52 @@ function abortUploadTaskArray(params, callback) {
93429342 } ) ;
93439343}
93449344
9345+ // 高级上传
9346+ function uploadFile ( params , callback ) {
9347+ var self = this ;
9348+
9349+ // 判断多大的文件使用分片上传
9350+ var SliceSize = params . SliceSize === undefined ? self . options . SliceSize : params . SliceSize ;
9351+
9352+ var taskList = [ ] ;
9353+
9354+ var Body = params . Body ;
9355+ var FileSize = Body . size || Body . length || 0 ;
9356+ var fileInfo = { TaskId : '' } ;
9357+
9358+ // 整理 option,用于返回给回调
9359+ util . each ( params , function ( v , k ) {
9360+ if ( typeof v !== 'object' && typeof v !== 'function' ) {
9361+ fileInfo [ k ] = v ;
9362+ }
9363+ } ) ;
9364+
9365+ // 处理文件 TaskReady
9366+ var _onTaskReady = params . onTaskReady ;
9367+ var onTaskReady = function ( tid ) {
9368+ fileInfo . TaskId = tid ;
9369+ _onTaskReady && _onTaskReady ( tid ) ;
9370+ } ;
9371+ params . onTaskReady = onTaskReady ;
9372+
9373+ // 处理文件完成
9374+ var _onFileFinish = params . onFileFinish ;
9375+ var onFileFinish = function ( err , data ) {
9376+ _onFileFinish && _onFileFinish ( err , data , fileInfo ) ;
9377+ callback && callback ( err , data ) ;
9378+ } ;
9379+
9380+ // 添加上传任务,超过阈值使用分块上传,小于等于则简单上传
9381+ var api = FileSize > SliceSize ? 'sliceUploadFile' : 'putObject' ;
9382+ taskList . push ( {
9383+ api : api ,
9384+ params : params ,
9385+ callback : onFileFinish
9386+ } ) ;
9387+
9388+ self . _addTasks ( taskList ) ;
9389+ }
9390+
93459391// 批量上传文件
93469392function uploadFiles ( params , callback ) {
93479393 var self = this ;
@@ -9676,6 +9722,7 @@ function copySliceItem(params, callback) {
96769722var API_MAP = {
96779723 sliceUploadFile : sliceUploadFile ,
96789724 abortUploadTask : abortUploadTask ,
9725+ uploadFile : uploadFile ,
96799726 uploadFiles : uploadFiles ,
96809727 sliceCopyFile : sliceCopyFile
96819728} ;
0 commit comments