@aws-amplify/storage 5.9.21 → 5.9.23

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.
Files changed (84) hide show
  1. package/lib/AwsClients/S3/abortMultipartUpload.d.ts +2 -3
  2. package/lib/AwsClients/S3/abortMultipartUpload.js +2 -2
  3. package/lib/AwsClients/S3/completeMultipartUpload.d.ts +2 -3
  4. package/lib/AwsClients/S3/completeMultipartUpload.js +2 -2
  5. package/lib/AwsClients/S3/copyObject.d.ts +2 -3
  6. package/lib/AwsClients/S3/copyObject.js +2 -2
  7. package/lib/AwsClients/S3/createMultipartUpload.d.ts +2 -3
  8. package/lib/AwsClients/S3/createMultipartUpload.js +2 -2
  9. package/lib/AwsClients/S3/deleteObject.d.ts +2 -3
  10. package/lib/AwsClients/S3/deleteObject.js +2 -2
  11. package/lib/AwsClients/S3/getObject.d.ts +2 -3
  12. package/lib/AwsClients/S3/getObject.js +2 -2
  13. package/lib/AwsClients/S3/headObject.d.ts +2 -3
  14. package/lib/AwsClients/S3/headObject.js +2 -2
  15. package/lib/AwsClients/S3/listObjectsV2.d.ts +2 -3
  16. package/lib/AwsClients/S3/listObjectsV2.js +2 -2
  17. package/lib/AwsClients/S3/listParts.d.ts +2 -3
  18. package/lib/AwsClients/S3/listParts.js +2 -2
  19. package/lib/AwsClients/S3/putObject.d.ts +2 -3
  20. package/lib/AwsClients/S3/putObject.js +2 -2
  21. package/lib/AwsClients/S3/runtime/base64/index.browser.js +2 -3
  22. package/lib/AwsClients/S3/runtime/base64/index.native.js +2 -3
  23. package/lib/AwsClients/S3/runtime/contentSha256middleware.js +2 -2
  24. package/lib/AwsClients/S3/runtime/xhrTransferHandler.d.ts +0 -1
  25. package/lib/AwsClients/S3/types.d.ts +0 -1
  26. package/lib/AwsClients/S3/uploadPart.d.ts +2 -3
  27. package/lib/AwsClients/S3/uploadPart.js +2 -2
  28. package/lib/AwsClients/S3/utils/deserializeHelpers.d.ts +2 -2
  29. package/lib/AwsClients/S3/utils/parsePayload.js +2 -2
  30. package/lib/AwsClients/S3/utils/serializeHelpers.js +2 -2
  31. package/lib/common/MD5utils.js +2 -2
  32. package/lib/common/MD5utils.native.js +2 -2
  33. package/lib/common/S3ClientUtils.d.ts +0 -1
  34. package/lib/common/S3ClientUtils.js +2 -2
  35. package/lib/common/StorageErrorStrings.js +3 -3
  36. package/lib/index.js +1 -0
  37. package/lib/providers/AWSS3Provider.js +36 -28
  38. package/lib/providers/AWSS3ProviderManagedUpload.d.ts +0 -1
  39. package/lib/providers/AWSS3ProviderManagedUpload.js +2 -2
  40. package/lib/providers/AWSS3UploadTask.d.ts +0 -1
  41. package/lib/providers/AWSS3UploadTask.js +14 -14
  42. package/lib/tsconfig.tsbuildinfo +1 -1
  43. package/lib-esm/AwsClients/S3/abortMultipartUpload.d.ts +2 -3
  44. package/lib-esm/AwsClients/S3/abortMultipartUpload.js +2 -2
  45. package/lib-esm/AwsClients/S3/completeMultipartUpload.d.ts +2 -3
  46. package/lib-esm/AwsClients/S3/completeMultipartUpload.js +2 -2
  47. package/lib-esm/AwsClients/S3/copyObject.d.ts +2 -3
  48. package/lib-esm/AwsClients/S3/copyObject.js +2 -2
  49. package/lib-esm/AwsClients/S3/createMultipartUpload.d.ts +2 -3
  50. package/lib-esm/AwsClients/S3/createMultipartUpload.js +2 -2
  51. package/lib-esm/AwsClients/S3/deleteObject.d.ts +2 -3
  52. package/lib-esm/AwsClients/S3/deleteObject.js +2 -2
  53. package/lib-esm/AwsClients/S3/getObject.d.ts +2 -3
  54. package/lib-esm/AwsClients/S3/getObject.js +2 -2
  55. package/lib-esm/AwsClients/S3/headObject.d.ts +2 -3
  56. package/lib-esm/AwsClients/S3/headObject.js +2 -2
  57. package/lib-esm/AwsClients/S3/listObjectsV2.d.ts +2 -3
  58. package/lib-esm/AwsClients/S3/listObjectsV2.js +2 -2
  59. package/lib-esm/AwsClients/S3/listParts.d.ts +2 -3
  60. package/lib-esm/AwsClients/S3/listParts.js +2 -2
  61. package/lib-esm/AwsClients/S3/putObject.d.ts +2 -3
  62. package/lib-esm/AwsClients/S3/putObject.js +2 -2
  63. package/lib-esm/AwsClients/S3/runtime/contentSha256middleware.js +2 -2
  64. package/lib-esm/AwsClients/S3/runtime/xhrTransferHandler.d.ts +0 -1
  65. package/lib-esm/AwsClients/S3/types.d.ts +0 -1
  66. package/lib-esm/AwsClients/S3/uploadPart.d.ts +2 -3
  67. package/lib-esm/AwsClients/S3/uploadPart.js +2 -2
  68. package/lib-esm/AwsClients/S3/utils/deserializeHelpers.d.ts +2 -2
  69. package/lib-esm/AwsClients/S3/utils/parsePayload.js +2 -2
  70. package/lib-esm/AwsClients/S3/utils/serializeHelpers.js +2 -2
  71. package/lib-esm/common/MD5utils.js +2 -2
  72. package/lib-esm/common/MD5utils.native.js +2 -2
  73. package/lib-esm/common/S3ClientUtils.d.ts +0 -1
  74. package/lib-esm/common/S3ClientUtils.js +2 -2
  75. package/lib-esm/index.js +1 -0
  76. package/lib-esm/providers/AWSS3Provider.js +19 -21
  77. package/lib-esm/providers/AWSS3ProviderManagedUpload.d.ts +0 -1
  78. package/lib-esm/providers/AWSS3ProviderManagedUpload.js +2 -2
  79. package/lib-esm/providers/AWSS3UploadTask.d.ts +0 -1
  80. package/lib-esm/providers/AWSS3UploadTask.js +12 -12
  81. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +24 -14
  83. package/src/index.ts +2 -0
  84. package/src/providers/AWSS3Provider.ts +1 -1
@@ -19,8 +19,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
19
  });
20
20
  };
21
21
  var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
24
  function verb(n) { return function (v) { return step([n, v]); }; }
25
25
  function step(op) {
26
26
  if (f) throw new TypeError("Generator is already executing.");
@@ -88,7 +88,7 @@ var DEFAULT_PRESIGN_EXPIRATION = 900;
88
88
  /**
89
89
  * Provide storage methods to use AWS S3
90
90
  */
91
- export var AWSS3Provider = /** @class */ (function () {
91
+ var AWSS3Provider = /** @class */ (function () {
92
92
  /**
93
93
  * Initialize Storage with AWS configurations
94
94
  * @param {Object} config - Configuration object for storage
@@ -134,9 +134,8 @@ export var AWSS3Provider = /** @class */ (function () {
134
134
  return this._config;
135
135
  };
136
136
  AWSS3Provider.prototype.startResumableUpload = function (addTaskInput, config) {
137
- var _a;
138
137
  var s3Config = addTaskInput.s3Config, emitter = addTaskInput.emitter, key = addTaskInput.key, file = addTaskInput.file, params = addTaskInput.params;
139
- var progressCallback = config.progressCallback, completeCallback = config.completeCallback, errorCallback = config.errorCallback, track = (_a = config.track, _a === void 0 ? false : _a);
138
+ var progressCallback = config.progressCallback, completeCallback = config.completeCallback, errorCallback = config.errorCallback, _a = config.track, track = _a === void 0 ? false : _a;
140
139
  if (!(file instanceof Blob)) {
141
140
  throw new Error(StorageErrorStrings.INVALID_BLOB);
142
141
  }
@@ -204,8 +203,7 @@ export var AWSS3Provider = /** @class */ (function () {
204
203
  */
205
204
  AWSS3Provider.prototype.copy = function (src, dest, config) {
206
205
  return __awaiter(this, void 0, void 0, function () {
207
- var credentialsOK, opt, acl, bucket, cacheControl, expires, track, serverSideEncryption, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, srcLevel, srcIdentityId, srcKey, destLevel, destKey, srcPrefix, destPrefix, finalSrcKey, finalDestKey, params, error_1;
208
- var _a, _b;
206
+ var credentialsOK, opt, acl, bucket, cacheControl, expires, track, serverSideEncryption, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, _a, srcLevel, srcIdentityId, srcKey, _b, destLevel, destKey, srcPrefix, destPrefix, finalSrcKey, finalDestKey, params, error_1;
209
207
  return __generator(this, function (_c) {
210
208
  switch (_c.label) {
211
209
  case 0: return [4 /*yield*/, this._ensureCredentials()];
@@ -216,8 +214,8 @@ export var AWSS3Provider = /** @class */ (function () {
216
214
  }
217
215
  opt = Object.assign({}, this._config, config);
218
216
  acl = opt.acl, bucket = opt.bucket, cacheControl = opt.cacheControl, expires = opt.expires, track = opt.track, serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId;
219
- srcLevel = (_a = src.level, _a === void 0 ? DEFAULT_STORAGE_LEVEL : _a), srcIdentityId = src.identityId, srcKey = src.key;
220
- destLevel = (_b = dest.level, _b === void 0 ? DEFAULT_STORAGE_LEVEL : _b), destKey = dest.key;
217
+ _a = src.level, srcLevel = _a === void 0 ? DEFAULT_STORAGE_LEVEL : _a, srcIdentityId = src.identityId, srcKey = src.key;
218
+ _b = dest.level, destLevel = _b === void 0 ? DEFAULT_STORAGE_LEVEL : _b, destKey = dest.key;
221
219
  if (!srcKey || typeof srcKey !== 'string') {
222
220
  throw new Error(StorageErrorStrings.NO_SRC_KEY);
223
221
  }
@@ -286,10 +284,10 @@ export var AWSS3Provider = /** @class */ (function () {
286
284
  });
287
285
  };
288
286
  AWSS3Provider.prototype.get = function (key, config) {
289
- var _a;
290
287
  return __awaiter(this, void 0, void 0, function () {
291
- var credentialsOK, opt, bucket, download, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, expires, track, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, progressCallback, validateObjectExistence, prefix, final_key, emitter, s3Config, params, response, error_2, error_3, url, _b, _c, error_4;
292
- var _d, _e;
288
+ var credentialsOK, opt, bucket, download, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, expires, track, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, progressCallback, _a, validateObjectExistence, prefix, final_key, emitter, s3Config, params, response, error_2, error_3, url, _b, _c, error_4;
289
+ var _d;
290
+ var _e;
293
291
  return __generator(this, function (_f) {
294
292
  switch (_f.label) {
295
293
  case 0: return [4 /*yield*/, this._ensureCredentials()];
@@ -299,7 +297,7 @@ export var AWSS3Provider = /** @class */ (function () {
299
297
  throw new Error(StorageErrorStrings.NO_CREDENTIALS);
300
298
  }
301
299
  opt = Object.assign({}, this._config, config);
302
- bucket = opt.bucket, download = opt.download, cacheControl = opt.cacheControl, contentDisposition = opt.contentDisposition, contentEncoding = opt.contentEncoding, contentLanguage = opt.contentLanguage, contentType = opt.contentType, expires = opt.expires, track = opt.track, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, progressCallback = opt.progressCallback, validateObjectExistence = (_d = opt.validateObjectExistence, _d === void 0 ? false : _d);
300
+ bucket = opt.bucket, download = opt.download, cacheControl = opt.cacheControl, contentDisposition = opt.contentDisposition, contentEncoding = opt.contentEncoding, contentLanguage = opt.contentLanguage, contentType = opt.contentType, expires = opt.expires, track = opt.track, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, progressCallback = opt.progressCallback, _a = opt.validateObjectExistence, validateObjectExistence = _a === void 0 ? false : _a;
303
301
  prefix = this._prefix(opt);
304
302
  final_key = prefix + key;
305
303
  emitter = new events.EventEmitter();
@@ -370,7 +368,7 @@ export var AWSS3Provider = /** @class */ (function () {
370
368
  return [3 /*break*/, 9];
371
369
  case 8:
372
370
  error_3 = _f.sent();
373
- if (((_a = error_3.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 404) {
371
+ if (((_e = error_3.$metadata) === null || _e === void 0 ? void 0 : _e.httpStatusCode) === 404) {
374
372
  dispatchStorageEvent(track, 'getSignedUrl', {
375
373
  method: 'get',
376
374
  result: 'failed',
@@ -381,9 +379,9 @@ export var AWSS3Provider = /** @class */ (function () {
381
379
  _f.trys.push([9, 12, , 13]);
382
380
  _b = getPresignedGetObjectUrl;
383
381
  _c = [__assign({}, s3Config)];
384
- _e = { expiration: expires || DEFAULT_PRESIGN_EXPIRATION };
382
+ _d = { expiration: expires || DEFAULT_PRESIGN_EXPIRATION };
385
383
  return [4 /*yield*/, s3Config.credentials()];
386
- case 10: return [4 /*yield*/, _b.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.credentials = _f.sent(), _e.signingRegion = s3Config.region, _e.signingService = S3_SERVICE_NAME, _e)])), params])];
384
+ case 10: return [4 /*yield*/, _b.apply(void 0, [__assign.apply(void 0, _c.concat([(_d.credentials = _f.sent(), _d.signingRegion = s3Config.region, _d.signingService = S3_SERVICE_NAME, _d)])), params])];
387
385
  case 11:
388
386
  url = _f.sent();
389
387
  dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'success' }, null, "Signed URL: ".concat(url));
@@ -407,9 +405,8 @@ export var AWSS3Provider = /** @class */ (function () {
407
405
  * contentLength, eTag, lastModified, metadata
408
406
  */
409
407
  AWSS3Provider.prototype.getProperties = function (key, config) {
410
- var _a;
411
408
  return __awaiter(this, void 0, void 0, function () {
412
- var credentialsOK, opt, bucket, track, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, prefix, final_key, s3Config, params, response, getPropertiesResponse, error_5;
409
+ var credentialsOK, opt, bucket, _a, track, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, prefix, final_key, s3Config, params, response, getPropertiesResponse, error_5;
413
410
  var _b;
414
411
  return __generator(this, function (_c) {
415
412
  switch (_c.label) {
@@ -420,7 +417,7 @@ export var AWSS3Provider = /** @class */ (function () {
420
417
  throw new Error(StorageErrorStrings.NO_CREDENTIALS);
421
418
  }
422
419
  opt = Object.assign({}, this._config, config);
423
- bucket = opt.bucket, track = (_b = opt.track, _b === void 0 ? false : _b), SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5;
420
+ bucket = opt.bucket, _a = opt.track, track = _a === void 0 ? false : _a, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5;
424
421
  prefix = this._prefix(opt);
425
422
  final_key = prefix + key;
426
423
  logger.debug("getProperties ".concat(key, " from ").concat(final_key));
@@ -455,7 +452,7 @@ export var AWSS3Provider = /** @class */ (function () {
455
452
  return [2 /*return*/, getPropertiesResponse];
456
453
  case 4:
457
454
  error_5 = _c.sent();
458
- if (((_a = error_5.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 404) {
455
+ if (((_b = error_5.$metadata) === null || _b === void 0 ? void 0 : _b.httpStatusCode) === 404) {
459
456
  dispatchStorageEvent(track, 'getProperties', {
460
457
  method: 'getProperties',
461
458
  result: 'failed',
@@ -702,7 +699,7 @@ export var AWSS3Provider = /** @class */ (function () {
702
699
  listResult = _c.sent();
703
700
  (_b = list.results).push.apply(_b, __spreadArray([], __read(listResult.results), false));
704
701
  list.hasNextToken = listResult.hasNextToken;
705
- list.nextToken = null !== null && null !== void 0 ? null : listResult.nextToken;
702
+ list.nextToken = listResult.nextToken;
706
703
  _c.label = 9;
707
704
  case 9:
708
705
  dispatchStorageEvent(track, 'list', { method: 'list', result: 'success' }, null, "".concat(list.results.length, " items returned from list operation"));
@@ -772,3 +769,4 @@ export var AWSS3Provider = /** @class */ (function () {
772
769
  AWSS3Provider.PROVIDER_NAME = 'AWSS3';
773
770
  return AWSS3Provider;
774
771
  }());
772
+ export { AWSS3Provider };
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PutObjectInput } from '../AwsClients/S3';
3
2
  import { EventEmitter } from 'events';
4
3
  export declare interface Part {
@@ -21,8 +21,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
21
21
  });
22
22
  };
23
23
  var __generator = (this && this.__generator) || function (thisArg, body) {
24
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
25
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
25
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import * as events from 'events';
3
2
  import { UploadTask } from '../types/Provider';
4
3
  import { PutObjectInput, UploadPartInput } from '../AwsClients/S3';
@@ -19,8 +19,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
19
  });
20
20
  };
21
21
  var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
24
  function verb(n) { return function (v) { return step([n, v]); }; }
25
25
  function step(op) {
26
26
  if (f) throw new TypeError("Generator is already executing.");
@@ -140,20 +140,20 @@ var AWSS3UploadTask = /** @class */ (function () {
140
140
  configurable: true
141
141
  });
142
142
  AWSS3UploadTask.prototype._listSingleFile = function (_a) {
143
- var key = _a.key, bucket = _a.bucket;
144
- return __awaiter(this, void 0, void 0, function () {
145
- var objectKeyPrefix, _b, Contents, obj;
146
- return __generator(this, function (_c) {
147
- switch (_c.label) {
143
+ return __awaiter(this, arguments, void 0, function (_b) {
144
+ var objectKeyPrefix, _c, Contents, obj;
145
+ var key = _b.key, bucket = _b.bucket;
146
+ return __generator(this, function (_d) {
147
+ switch (_d.label) {
148
148
  case 0: return [4 /*yield*/, this.prefixPromise];
149
149
  case 1:
150
- objectKeyPrefix = _c.sent();
150
+ objectKeyPrefix = _d.sent();
151
151
  return [4 /*yield*/, listObjectsV2(this.s3Config, {
152
152
  Bucket: bucket,
153
153
  Prefix: objectKeyPrefix + key,
154
154
  })];
155
155
  case 2:
156
- _b = (_c.sent()).Contents, Contents = _b === void 0 ? [] : _b;
156
+ _c = (_d.sent()).Contents, Contents = _c === void 0 ? [] : _c;
157
157
  obj = Contents.find(function (o) { return o.Key === "".concat(objectKeyPrefix).concat(key); });
158
158
  return [2 /*return*/, obj];
159
159
  }
@@ -284,9 +284,9 @@ var AWSS3UploadTask = /** @class */ (function () {
284
284
  });
285
285
  };
286
286
  AWSS3UploadTask.prototype._onPartUploadCompletion = function (_a) {
287
- var eTag = _a.eTag, partNumber = _a.partNumber, chunk = _a.chunk;
288
- return __awaiter(this, void 0, void 0, function () {
289
- return __generator(this, function (_b) {
287
+ return __awaiter(this, arguments, void 0, function (_b) {
288
+ var eTag = _b.eTag, partNumber = _b.partNumber, chunk = _b.chunk;
289
+ return __generator(this, function (_c) {
290
290
  this.completedParts.push({
291
291
  ETag: eTag,
292
292
  PartNumber: partNumber,