cos-wx-sdk-v5 1.4.2 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
9
9
 
10
+ ## [v1.4.2](https://github.com/tencentyun/cos-wx-sdk-v5/compare/v1.4.1...v1.4.2) - 2022-09-09
11
+
12
+ fix
13
+ - 修复已知问题
14
+
15
+ ### Merged
16
+
17
+ - fix 1.4.2 [`#75`](https://github.com/tencentyun/cos-wx-sdk-v5/pull/75)
18
+ - fix:修复已知问题 [`#73`](https://github.com/tencentyun/cos-wx-sdk-v5/pull/73)
19
+
20
+ ### Commits
21
+
22
+ - Updated CHANGELOG.md [`a4a3e55`](https://github.com/tencentyun/cos-wx-sdk-v5/commit/a4a3e55fbb8ae0b4739a7a9f5b85b031e726553c)
23
+
24
+ ## [v1.4.1](https://github.com/tencentyun/cos-wx-sdk-v5/compare/v1.4.0...v1.4.1) - 2022-09-01
25
+
26
+ fix
27
+ - 修复已知问题
28
+
29
+ ### Commits
30
+
31
+ - fix:修复已知问题 [`d1a433f`](https://github.com/tencentyun/cos-wx-sdk-v5/commit/d1a433fbd787ba134a672141ae8c7d750df50704)
32
+
10
33
  ## [v1.4.0](https://github.com/tencentyun/cos-wx-sdk-v5/compare/v1.3.0...v1.4.0) - 2022-08-17
11
34
 
12
35
  feat
@@ -6450,7 +6450,7 @@ module.exports = function(module) {
6450
6450
  /*! exports provided: name, version, description, main, scripts, repository, author, license, dependencies, devDependencies, default */
6451
6451
  /***/ (function(module) {
6452
6452
 
6453
- module.exports = JSON.parse("{\"name\":\"cos-wx-sdk-v5\",\"version\":\"1.4.2\",\"description\":\"小程序 SDK for [腾讯云对象存储服务](https://cloud.tencent.com/product/cos)\",\"main\":\"demo/lib/cos-wx-sdk-v5.min.js\",\"scripts\":{\"dev\":\"cross-env NODE_ENV=development node build.js --mode=development\",\"build\":\"cross-env NODE_ENV=production node build.js --mode=production\",\"sts.js\":\"node server/sts.js\"},\"repository\":{\"type\":\"git\",\"url\":\"http://github.com/tencentyun/cos-wx-sdk-v5.git\"},\"author\":\"carsonxu\",\"license\":\"ISC\",\"dependencies\":{\"mime\":\"^2.4.6\",\"@xmldom/xmldom\":\"^0.8.2\"},\"devDependencies\":{\"babel-core\":\"6.26.3\",\"babel-loader\":\"8.2.5\",\"@babel/preset-env\":\"7.16.11\",\"body-parser\":\"^1.18.3\",\"cross-env\":\"^7.0.3\",\"express\":\"^4.17.1\",\"qcloud-cos-sts\":\"^3.0.2\",\"terser-webpack-plugin\":\"4.2.3\",\"webpack\":\"4.46.0\",\"webpack-cli\":\"4.10.0\"}}");
6453
+ module.exports = JSON.parse("{\"name\":\"cos-wx-sdk-v5\",\"version\":\"1.4.3\",\"description\":\"小程序 SDK for [腾讯云对象存储服务](https://cloud.tencent.com/product/cos)\",\"main\":\"demo/lib/cos-wx-sdk-v5.min.js\",\"scripts\":{\"dev\":\"cross-env NODE_ENV=development node build.js --mode=development\",\"build\":\"cross-env NODE_ENV=production node build.js --mode=production\",\"sts.js\":\"node server/sts.js\"},\"repository\":{\"type\":\"git\",\"url\":\"http://github.com/tencentyun/cos-wx-sdk-v5.git\"},\"author\":\"carsonxu\",\"license\":\"ISC\",\"dependencies\":{\"mime\":\"^2.4.6\",\"@xmldom/xmldom\":\"^0.8.2\"},\"devDependencies\":{\"babel-core\":\"6.26.3\",\"babel-loader\":\"8.2.5\",\"@babel/preset-env\":\"7.16.11\",\"body-parser\":\"^1.18.3\",\"cross-env\":\"^7.0.3\",\"express\":\"^4.17.1\",\"qcloud-cos-sts\":\"^3.0.2\",\"terser-webpack-plugin\":\"4.2.3\",\"webpack\":\"4.46.0\",\"webpack-cli\":\"4.10.0\"}}");
6454
6454
 
6455
6455
  /***/ }),
6456
6456
 
@@ -6461,8 +6461,14 @@ module.exports = JSON.parse("{\"name\":\"cos-wx-sdk-v5\",\"version\":\"1.4.2\",\
6461
6461
  /*! no static exports found */
6462
6462
  /***/ (function(module, exports, __webpack_require__) {
6463
6463
 
6464
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
6465
+
6464
6466
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
6465
6467
 
6468
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
6469
+
6470
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6471
+
6466
6472
  var session = __webpack_require__(/*! ./session */ "./src/session.js");
6467
6473
 
6468
6474
  var Async = __webpack_require__(/*! ./async */ "./src/async.js");
@@ -6604,8 +6610,10 @@ function sliceUploadFile(params, callback) {
6604
6610
  SliceSize: ChunkSize,
6605
6611
  onHashProgress: onHashProgress,
6606
6612
  tracker: tracker
6607
- }, params);
6613
+ }, params); // 这里用户传入的params.FileSize可能单位不统一,必须使用sdk内获取的大小
6614
+
6608
6615
 
6616
+ _params.FileSize = FileSize;
6609
6617
  getUploadIdAndPartList.call(self, _params, function (err, UploadData) {
6610
6618
  if (!self._isRunningTask(TaskId)) return;
6611
6619
  if (err) return ep.emit('error', err);
@@ -7384,68 +7392,105 @@ function abortUploadTaskArray(params, callback) {
7384
7392
  } // 高级上传
7385
7393
 
7386
7394
 
7387
- function uploadFile(params, callback) {
7388
- var self = this; // 判断多大的文件使用分片上传
7395
+ function uploadFile(_x, _x2) {
7396
+ return _uploadFile.apply(this, arguments);
7397
+ } // 批量上传文件
7389
7398
 
7390
- var SliceSize = params.SliceSize === undefined ? self.options.SliceSize : params.SliceSize;
7391
- var taskList = [];
7392
- var FileSize = params.FileSize;
7393
- var fileInfo = {
7394
- TaskId: ''
7395
- }; // 上传链路
7396
7399
 
7397
- if (self.options.EnableTracker) {
7398
- var accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');
7399
- params.tracker = new Tracker({
7400
- bucket: params.Bucket,
7401
- region: params.Region,
7402
- apiName: 'uploadFile',
7403
- fileKey: params.Key,
7404
- fileSize: FileSize,
7405
- accelerate: accelerate,
7406
- deepTracker: self.options.DeepTracker,
7407
- customId: self.options.CustomId,
7408
- delay: self.options.TrackerDelay
7409
- });
7410
- } // 整理 option,用于返回给回调
7400
+ function _uploadFile() {
7401
+ _uploadFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(params, callback) {
7402
+ var self, SliceSize, taskList, FileSize, fileInfo, accelerate, _onTaskReady, _onFileFinish, onFileFinish, simpleUploadMethod, api;
7411
7403
 
7404
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
7405
+ while (1) {
7406
+ switch (_context2.prev = _context2.next) {
7407
+ case 0:
7408
+ self = this; // 判断多大的文件使用分片上传
7412
7409
 
7413
- util.each(params, function (v, k) {
7414
- if (_typeof(v) !== 'object' && typeof v !== 'function') {
7415
- fileInfo[k] = v;
7416
- }
7417
- }); // 处理文件 TaskReady
7410
+ SliceSize = params.SliceSize === undefined ? self.options.SliceSize : params.SliceSize;
7411
+ taskList = []; // var FileSize = params.FileSize;
7418
7412
 
7419
- var _onTaskReady = params.onTaskReady;
7413
+ _context2.prev = 3;
7414
+ _context2.next = 6;
7415
+ return util.getFileSizeByPath(params.FilePath);
7420
7416
 
7421
- params.onTaskReady = function (tid) {
7422
- fileInfo.TaskId = tid;
7423
- _onTaskReady && _onTaskReady(tid);
7424
- }; // 处理文件完成
7417
+ case 6:
7418
+ FileSize = _context2.sent;
7419
+ _context2.next = 12;
7420
+ break;
7425
7421
 
7422
+ case 9:
7423
+ _context2.prev = 9;
7424
+ _context2.t0 = _context2["catch"](3);
7425
+ callback({
7426
+ error: _context2.t0
7427
+ });
7426
7428
 
7427
- var _onFileFinish = params.onFileFinish;
7429
+ case 12:
7430
+ fileInfo = {
7431
+ TaskId: ''
7432
+ }; // 上传链路
7433
+
7434
+ if (self.options.EnableTracker) {
7435
+ accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');
7436
+ params.tracker = new Tracker({
7437
+ bucket: params.Bucket,
7438
+ region: params.Region,
7439
+ apiName: 'uploadFile',
7440
+ fileKey: params.Key,
7441
+ fileSize: FileSize,
7442
+ accelerate: accelerate,
7443
+ deepTracker: self.options.DeepTracker,
7444
+ customId: self.options.CustomId,
7445
+ delay: self.options.TrackerDelay
7446
+ });
7447
+ } // 整理 option,用于返回给回调
7428
7448
 
7429
- var onFileFinish = function onFileFinish(err, data) {
7430
- // 格式化上报参数并上报
7431
- params.tracker && params.tracker.formatResult(err, data);
7432
- _onFileFinish && _onFileFinish(err, data, fileInfo);
7433
- callback && callback(err, data);
7434
- }; // 添加上传任务
7435
7449
 
7450
+ util.each(params, function (v, k) {
7451
+ if (_typeof(v) !== 'object' && typeof v !== 'function') {
7452
+ fileInfo[k] = v;
7453
+ }
7454
+ }); // 处理文件 TaskReady
7436
7455
 
7437
- var simpleUploadMethod = self.options.SimpleUploadMethod === 'postObject' ? 'postObject' : 'putObject';
7438
- var api = FileSize > SliceSize ? 'sliceUploadFile' : simpleUploadMethod;
7439
- taskList.push({
7440
- api: api,
7441
- params: params,
7442
- callback: onFileFinish
7443
- });
7456
+ _onTaskReady = params.onTaskReady;
7444
7457
 
7445
- self._addTasks(taskList);
7446
- } // 批量上传文件
7458
+ params.onTaskReady = function (tid) {
7459
+ fileInfo.TaskId = tid;
7460
+ _onTaskReady && _onTaskReady(tid);
7461
+ }; // 处理文件完成
7447
7462
 
7448
7463
 
7464
+ _onFileFinish = params.onFileFinish;
7465
+
7466
+ onFileFinish = function onFileFinish(err, data) {
7467
+ // 格式化上报参数并上报
7468
+ params.tracker && params.tracker.formatResult(err, data);
7469
+ _onFileFinish && _onFileFinish(err, data, fileInfo);
7470
+ callback && callback(err, data);
7471
+ }; // 添加上传任务
7472
+
7473
+
7474
+ simpleUploadMethod = self.options.SimpleUploadMethod === 'postObject' ? 'postObject' : 'putObject';
7475
+ api = FileSize > SliceSize ? 'sliceUploadFile' : simpleUploadMethod;
7476
+ taskList.push({
7477
+ api: api,
7478
+ params: params,
7479
+ callback: onFileFinish
7480
+ });
7481
+
7482
+ self._addTasks(taskList);
7483
+
7484
+ case 23:
7485
+ case "end":
7486
+ return _context2.stop();
7487
+ }
7488
+ }
7489
+ }, _callee2, this, [[3, 9]]);
7490
+ }));
7491
+ return _uploadFile.apply(this, arguments);
7492
+ }
7493
+
7449
7494
  function uploadFiles(params, callback) {
7450
7495
  var self = this; // 判断多大的文件使用分片上传
7451
7496
 
@@ -7477,77 +7522,111 @@ function uploadFiles(params, callback) {
7477
7522
 
7478
7523
 
7479
7524
  var taskList = [];
7480
- util.each(params.files, function (fileParams, index) {
7481
- var FileSize = fileParams.FileSize;
7482
- var fileInfo = {
7483
- Index: index,
7484
- TaskId: ''
7485
- }; // 更新文件总大小
7525
+ util.each(params.files, /*#__PURE__*/function () {
7526
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fileParams, index) {
7527
+ var FileSize, fileInfo, accelerate, _onTaskReady, PreAddSize, _onProgress, _onFileFinish, onFileFinish, simpleUploadMethod, api;
7528
+
7529
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
7530
+ while (1) {
7531
+ switch (_context.prev = _context.next) {
7532
+ case 0:
7533
+ // var FileSize = fileParams.FileSize;
7534
+ FileSize = 0;
7535
+ _context.prev = 1;
7536
+ _context.next = 4;
7537
+ return util.getFileSizeByPath(fileParams.FilePath);
7486
7538
 
7487
- TotalSize += FileSize; // 单个文件上传链路
7539
+ case 4:
7540
+ FileSize = _context.sent;
7541
+ _context.next = 9;
7542
+ break;
7488
7543
 
7489
- if (self.options.EnableTracker) {
7490
- var accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');
7491
- fileParams.tracker = new Tracker({
7492
- bucket: fileParams.Bucket,
7493
- region: fileParams.Region,
7494
- apiName: 'uploadFiles',
7495
- fileKey: fileParams.Key,
7496
- fileSize: FileSize,
7497
- accelerate: accelerate,
7498
- deepTracker: self.options.DeepTracker,
7499
- customId: self.options.CustomId,
7500
- delay: self.options.TrackerDelay
7501
- });
7502
- } // 整理 option,用于返回给回调
7544
+ case 7:
7545
+ _context.prev = 7;
7546
+ _context.t0 = _context["catch"](1);
7547
+
7548
+ case 9:
7549
+ fileInfo = {
7550
+ Index: index,
7551
+ TaskId: ''
7552
+ }; // 更新文件总大小
7553
+
7554
+ TotalSize += FileSize; // 单个文件上传链路
7555
+
7556
+ if (self.options.EnableTracker) {
7557
+ accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');
7558
+ fileParams.tracker = new Tracker({
7559
+ bucket: fileParams.Bucket,
7560
+ region: fileParams.Region,
7561
+ apiName: 'uploadFiles',
7562
+ fileKey: fileParams.Key,
7563
+ fileSize: FileSize,
7564
+ accelerate: accelerate,
7565
+ deepTracker: self.options.DeepTracker,
7566
+ customId: self.options.CustomId,
7567
+ delay: self.options.TrackerDelay
7568
+ });
7569
+ } // 整理 option,用于返回给回调
7503
7570
 
7504
7571
 
7505
- util.each(fileParams, function (v, k) {
7506
- if (_typeof(v) !== 'object' && typeof v !== 'function') {
7507
- fileInfo[k] = v;
7508
- }
7509
- }); // 处理单个文件 TaskReady
7572
+ util.each(fileParams, function (v, k) {
7573
+ if (_typeof(v) !== 'object' && typeof v !== 'function') {
7574
+ fileInfo[k] = v;
7575
+ }
7576
+ }); // 处理单个文件 TaskReady
7510
7577
 
7511
- var _onTaskReady = fileParams.onTaskReady;
7578
+ _onTaskReady = fileParams.onTaskReady;
7512
7579
 
7513
- fileParams.onTaskReady = function (tid) {
7514
- fileInfo.TaskId = tid;
7515
- _onTaskReady && _onTaskReady(tid);
7516
- }; // 处理单个文件进度
7580
+ fileParams.onTaskReady = function (tid) {
7581
+ fileInfo.TaskId = tid;
7582
+ _onTaskReady && _onTaskReady(tid);
7583
+ }; // 处理单个文件进度
7517
7584
 
7518
7585
 
7519
- var PreAddSize = 0;
7520
- var _onProgress = fileParams.onProgress;
7586
+ PreAddSize = 0;
7587
+ _onProgress = fileParams.onProgress;
7521
7588
 
7522
- fileParams.onProgress = function (info) {
7523
- TotalFinish = TotalFinish - PreAddSize + info.loaded;
7524
- PreAddSize = info.loaded;
7525
- _onProgress && _onProgress(info);
7526
- onTotalProgress({
7527
- loaded: TotalFinish,
7528
- total: TotalSize
7529
- });
7530
- }; // 处理单个文件完成
7589
+ fileParams.onProgress = function (info) {
7590
+ TotalFinish = TotalFinish - PreAddSize + info.loaded;
7591
+ PreAddSize = info.loaded;
7592
+ _onProgress && _onProgress(info);
7593
+ onTotalProgress({
7594
+ loaded: TotalFinish,
7595
+ total: TotalSize
7596
+ });
7597
+ }; // 处理单个文件完成
7531
7598
 
7532
7599
 
7533
- var _onFileFinish = fileParams.onFileFinish;
7600
+ _onFileFinish = fileParams.onFileFinish;
7534
7601
 
7535
- var onFileFinish = function onFileFinish(err, data) {
7536
- // 格式化上报参数并上报
7537
- fileParams.tracker && fileParams.tracker.formatResult(err, data);
7538
- _onFileFinish && _onFileFinish(err, data);
7539
- onTotalFileFinish && onTotalFileFinish(err, data, fileInfo);
7540
- }; // 添加上传任务
7602
+ onFileFinish = function onFileFinish(err, data) {
7603
+ // 格式化上报参数并上报
7604
+ fileParams.tracker && fileParams.tracker.formatResult(err, data);
7605
+ _onFileFinish && _onFileFinish(err, data);
7606
+ onTotalFileFinish && onTotalFileFinish(err, data, fileInfo);
7607
+ }; // 添加上传任务
7541
7608
 
7542
7609
 
7543
- var simpleUploadMethod = self.options.SimpleUploadMethod === 'postObject' ? 'postObject' : 'putObject';
7544
- var api = FileSize > SliceSize ? 'sliceUploadFile' : simpleUploadMethod;
7545
- taskList.push({
7546
- api: api,
7547
- params: fileParams,
7548
- callback: onFileFinish
7549
- });
7550
- });
7610
+ simpleUploadMethod = self.options.SimpleUploadMethod === 'postObject' ? 'postObject' : 'putObject';
7611
+ api = FileSize > SliceSize ? 'sliceUploadFile' : simpleUploadMethod;
7612
+ taskList.push({
7613
+ api: api,
7614
+ params: fileParams,
7615
+ callback: onFileFinish
7616
+ });
7617
+
7618
+ case 23:
7619
+ case "end":
7620
+ return _context.stop();
7621
+ }
7622
+ }
7623
+ }, _callee, null, [[1, 7]]);
7624
+ }));
7625
+
7626
+ return function (_x3, _x4) {
7627
+ return _ref.apply(this, arguments);
7628
+ };
7629
+ }());
7551
7630
 
7552
7631
  self._addTasks(taskList);
7553
7632
  } // 分片复制文件
@@ -12804,13 +12883,30 @@ var Tracker = /*#__PURE__*/function () {
12804
12883
  key: "formatResult",
12805
12884
  value: function () {
12806
12885
  var _formatResult = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(err, data) {
12807
- var _err$error, _err$error2, _err$error3;
12886
+ var _err$error, _err$error$error, _err$error2, _err$error2$error, _err$error3, _err$error4, _err$error5, _err$error5$error, _err$error6;
12808
12887
 
12809
12888
  var now, tookTime, networkType, errorCode, errorMessage, errorStatusCode, errorServiceName, requestId, errorType, exec;
12810
12889
  return _regeneratorRuntime().wrap(function _callee$(_context) {
12811
12890
  while (1) {
12812
12891
  switch (_context.prev = _context.next) {
12813
12892
  case 0:
12893
+ /**
12894
+ * 解析到err的格式为:
12895
+ * 1.服务端有返回时
12896
+ * {
12897
+ * err: 同下方error,
12898
+ * error: {
12899
+ * error: {
12900
+ * Code: '', Message: '', Resource: '', RequestId: '', TraceId: '',
12901
+ * },
12902
+ * statusCode: xxx,
12903
+ * headers: {},
12904
+ * RequestId: '',
12905
+ * },
12906
+ * }
12907
+ * 2.本地抛出或小程序直接报错
12908
+ * {error: 'message'}或{error: {error: 'message' }}
12909
+ */
12814
12910
  now = new Date().getTime();
12815
12911
  tookTime = now - this.params.startTime;
12816
12912
  _context.next = 4;
@@ -12818,11 +12914,11 @@ var Tracker = /*#__PURE__*/function () {
12818
12914
 
12819
12915
  case 4:
12820
12916
  networkType = _context.sent;
12821
- errorCode = err ? err === null || err === void 0 ? void 0 : (_err$error = err.error) === null || _err$error === void 0 ? void 0 : _err$error.Code : '';
12822
- errorMessage = err ? err === null || err === void 0 ? void 0 : (_err$error2 = err.error) === null || _err$error2 === void 0 ? void 0 : _err$error2.Message : '';
12823
- errorStatusCode = err ? err === null || err === void 0 ? void 0 : err.statusCode : data.statusCode;
12824
- errorServiceName = err ? err === null || err === void 0 ? void 0 : (_err$error3 = err.error) === null || _err$error3 === void 0 ? void 0 : _err$error3.Resource : '';
12825
- requestId = err ? (err === null || err === void 0 ? void 0 : err.headers) && (err === null || err === void 0 ? void 0 : err.headers['x-cos-request-id']) : (data === null || data === void 0 ? void 0 : data.headers) && (data === null || data === void 0 ? void 0 : data.headers['x-cos-request-id']);
12917
+ errorCode = err ? (err === null || err === void 0 ? void 0 : (_err$error = err.error) === null || _err$error === void 0 ? void 0 : (_err$error$error = _err$error.error) === null || _err$error$error === void 0 ? void 0 : _err$error$error.Code) || 'Error' : '';
12918
+ errorMessage = err ? (err === null || err === void 0 ? void 0 : (_err$error2 = err.error) === null || _err$error2 === void 0 ? void 0 : (_err$error2$error = _err$error2.error) === null || _err$error2$error === void 0 ? void 0 : _err$error2$error.Message) || (err === null || err === void 0 ? void 0 : (_err$error3 = err.error) === null || _err$error3 === void 0 ? void 0 : _err$error3.error) || (err === null || err === void 0 ? void 0 : err.error) || '' : '';
12919
+ errorStatusCode = err ? err === null || err === void 0 ? void 0 : (_err$error4 = err.error) === null || _err$error4 === void 0 ? void 0 : _err$error4.statusCode : data.statusCode;
12920
+ errorServiceName = err ? err === null || err === void 0 ? void 0 : (_err$error5 = err.error) === null || _err$error5 === void 0 ? void 0 : (_err$error5$error = _err$error5.error) === null || _err$error5$error === void 0 ? void 0 : _err$error5$error.Resource : '';
12921
+ requestId = err ? (err === null || err === void 0 ? void 0 : (_err$error6 = err.error) === null || _err$error6 === void 0 ? void 0 : _err$error6.RequestId) || '' : (data === null || data === void 0 ? void 0 : data.RequestId) || '';
12826
12922
  errorType = err ? requestId ? 'Server' : 'Client' : '';
12827
12923
  Object.assign(this.params, {
12828
12924
  tookTime: tookTime,
@@ -13433,7 +13529,7 @@ var apiWrapper = function apiWrapper(apiName, apiFn) {
13433
13529
  };
13434
13530
 
13435
13531
  var errMsg = checkParams();
13436
- var isSync = apiName === 'getAuth' || apiName === 'getObjectUrl';
13532
+ var isSync = apiName === 'getAuth';
13437
13533
  var Promise = global.Promise;
13438
13534
 
13439
13535
  if (!isSync && Promise && !callback) {
@@ -13614,7 +13710,24 @@ var getFileSize = /*#__PURE__*/function () {
13614
13710
  return function getFileSize(_x, _x2, _x3) {
13615
13711
  return _ref.apply(this, arguments);
13616
13712
  };
13617
- }();
13713
+ }(); // 通过FilePath获取上传文件的大小
13714
+
13715
+
13716
+ var getFileSizeByPath = function getFileSizeByPath(filePath) {
13717
+ return new Promise(function (resolve, reject) {
13718
+ wxfs.stat({
13719
+ path: filePath,
13720
+ success: function success(res) {
13721
+ var stats = res.stats;
13722
+ var size = stats.isDirectory() ? 0 : stats.size;
13723
+ resolve(size);
13724
+ },
13725
+ fail: function fail(res) {
13726
+ reject((res === null || res === void 0 ? void 0 : res.errMsg) || '');
13727
+ }
13728
+ });
13729
+ });
13730
+ };
13618
13731
 
13619
13732
  var getSkewTime = function getSkewTime(offset) {
13620
13733
  return Date.now() + (offset || 0);
@@ -13718,6 +13831,7 @@ var util = {
13718
13831
  camSafeUrlEncode: camSafeUrlEncode,
13719
13832
  throttleOnProgress: throttleOnProgress,
13720
13833
  getFileSize: getFileSize,
13834
+ getFileSizeByPath: getFileSizeByPath,
13721
13835
  getSkewTime: getSkewTime,
13722
13836
  obj2str: obj2str,
13723
13837
  getAuth: getAuth,