@aws-amplify/storage 5.0.9-storage-part-size.4 → 5.0.9

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
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.0.9](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@5.0.8...@aws-amplify/storage@5.0.9) (2023-01-10)
7
+
8
+ **Note:** Version bump only for package @aws-amplify/storage
9
+
10
+
11
+
12
+
13
+
6
14
  ## [5.0.8](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@5.0.7...@aws-amplify/storage@5.0.8) (2022-12-27)
7
15
 
8
16
  **Note:** Version bump only for package @aws-amplify/storage
@@ -9,19 +9,19 @@ export declare interface Part {
9
9
  _lastUploadedBytes: number;
10
10
  }
11
11
  export declare class AWSS3ProviderManagedUpload {
12
+ protected minPartSize: number;
13
+ private queueSize;
12
14
  private body;
13
15
  private params;
14
16
  private opts;
15
17
  private completedParts;
16
18
  private s3client;
17
19
  private uploadId;
18
- private partSize;
19
20
  private bytesUploaded;
20
21
  private totalBytesToUpload;
21
22
  private emitter;
22
23
  constructor(params: PutObjectRequest, opts: any, emitter: events.EventEmitter);
23
24
  upload(): Promise<string | import("@aws-sdk/client-s3/types/").PutObjectCommandOutput>;
24
- private calculatePartSize;
25
25
  private createParts;
26
26
  private createMultiPartUpload;
27
27
  /**
@@ -8,19 +8,18 @@ var client_s3_1 = require("@aws-sdk/client-s3");
8
8
  var axios_http_handler_1 = require("./axios-http-handler");
9
9
  var events = tslib_1.__importStar(require("events"));
10
10
  var S3ClientUtils_1 = require("../common/S3ClientUtils");
11
- var MB = 1024 * 1024;
12
- var GB = 1024 * MB;
13
- var TB = 1024 * GB;
14
- var DEFAULT_PART_SIZE = 5 * MB;
15
- var MAX_OBJECT_SIZE = 5 * TB;
16
- var MAX_PARTS_COUNT = 10000;
17
- var DEFAULT_QUEUE_SIZE = 4;
18
11
  var logger = new core_1.ConsoleLogger('AWSS3ProviderManagedUpload');
19
12
  var AWSS3ProviderManagedUpload = /** @class */ (function () {
20
13
  function AWSS3ProviderManagedUpload(params, opts, emitter) {
14
+ // Defaults
15
+ this.minPartSize = 5 * 1024 * 1024; // in MB
16
+ this.queueSize = 4;
17
+ // Data for current upload
18
+ this.body = null;
19
+ this.params = null;
21
20
  this.opts = null;
22
21
  this.completedParts = [];
23
- this.partSize = DEFAULT_PART_SIZE;
22
+ this.uploadId = null;
24
23
  // Progress reporting
25
24
  this.bytesUploaded = 0;
26
25
  this.totalBytesToUpload = 0;
@@ -32,85 +31,79 @@ var AWSS3ProviderManagedUpload = /** @class */ (function () {
32
31
  }
33
32
  AWSS3ProviderManagedUpload.prototype.upload = function () {
34
33
  return tslib_1.__awaiter(this, void 0, void 0, function () {
35
- var putObjectCommand, _a, numberOfPartsToUpload, parts, start, error_1;
34
+ var _a, putObjectCommand, _b, numberOfPartsToUpload, parts, start, error_1;
36
35
  var _this = this;
37
- return tslib_1.__generator(this, function (_b) {
38
- switch (_b.label) {
36
+ return tslib_1.__generator(this, function (_c) {
37
+ switch (_c.label) {
39
38
  case 0:
40
- _b.trys.push([0, 9, , 11]);
41
- this.body = this.validateAndSanitizeBody(this.params.Body);
39
+ _c.trys.push([0, 10, , 12]);
40
+ _a = this;
41
+ return [4 /*yield*/, this.validateAndSanitizeBody(this.params.Body)];
42
+ case 1:
43
+ _a.body = _c.sent();
42
44
  this.totalBytesToUpload = this.byteLength(this.body);
43
- if (!(this.totalBytesToUpload <= DEFAULT_PART_SIZE)) return [3 /*break*/, 1];
45
+ if (!(this.totalBytesToUpload <= this.minPartSize)) return [3 /*break*/, 2];
44
46
  // Multipart upload is not required. Upload the sanitized body as is
45
47
  this.params.Body = this.body;
46
48
  putObjectCommand = new client_s3_1.PutObjectCommand(this.params);
47
49
  return [2 /*return*/, this.s3client.send(putObjectCommand)];
48
- case 1:
49
- // Step 1: Determine appropriate part size.
50
- this.calculatePartSize();
51
- // Step 2: Initiate the multi part upload
52
- _a = this;
53
- return [4 /*yield*/, this.createMultiPartUpload()];
54
50
  case 2:
55
- // Step 2: Initiate the multi part upload
56
- _a.uploadId = _b.sent();
57
- numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.partSize);
51
+ // Step 1: Initiate the multi part upload
52
+ _b = this;
53
+ return [4 /*yield*/, this.createMultiPartUpload()];
54
+ case 3:
55
+ // Step 1: Initiate the multi part upload
56
+ _b.uploadId = _c.sent();
57
+ numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.minPartSize);
58
58
  parts = this.createParts();
59
59
  start = 0;
60
- _b.label = 3;
61
- case 3:
62
- if (!(start < numberOfPartsToUpload)) return [3 /*break*/, 6];
63
- // Upload as many as `queueSize` parts simultaneously
64
- return [4 /*yield*/, this.uploadParts(this.uploadId, parts.slice(start, start + DEFAULT_QUEUE_SIZE))];
60
+ _c.label = 4;
65
61
  case 4:
62
+ if (!(start < numberOfPartsToUpload)) return [3 /*break*/, 7];
66
63
  // Upload as many as `queueSize` parts simultaneously
67
- _b.sent();
68
- _b.label = 5;
64
+ return [4 /*yield*/, this.uploadParts(this.uploadId, parts.slice(start, start + this.queueSize))];
69
65
  case 5:
70
- start += DEFAULT_QUEUE_SIZE;
71
- return [3 /*break*/, 3];
66
+ // Upload as many as `queueSize` parts simultaneously
67
+ _c.sent();
68
+ _c.label = 6;
72
69
  case 6:
70
+ start += this.queueSize;
71
+ return [3 /*break*/, 4];
72
+ case 7:
73
73
  parts.map(function (part) {
74
74
  _this.removeEventListener(part);
75
75
  });
76
76
  return [4 /*yield*/, this.finishMultiPartUpload(this.uploadId)];
77
- case 7:
77
+ case 8:
78
78
  // Step 3: Finalize the upload such that S3 can recreate the file
79
- return [2 /*return*/, _b.sent()];
80
- case 8: return [3 /*break*/, 11];
81
- case 9:
82
- error_1 = _b.sent();
79
+ return [2 /*return*/, _c.sent()];
80
+ case 9: return [3 /*break*/, 12];
81
+ case 10:
82
+ error_1 = _c.sent();
83
83
  // if any error is thrown, call cleanup
84
84
  return [4 /*yield*/, this.cleanup(this.uploadId)];
85
- case 10:
85
+ case 11:
86
86
  // if any error is thrown, call cleanup
87
- _b.sent();
87
+ _c.sent();
88
88
  logger.error('Error. Cancelling the multipart upload.');
89
89
  throw error_1;
90
- case 11: return [2 /*return*/];
90
+ case 12: return [2 /*return*/];
91
91
  }
92
92
  });
93
93
  });
94
94
  };
95
- AWSS3ProviderManagedUpload.prototype.calculatePartSize = function () {
96
- var partsCount = Math.ceil(this.totalBytesToUpload / this.partSize);
97
- while (partsCount > MAX_PARTS_COUNT) {
98
- this.partSize *= 2;
99
- partsCount = Math.ceil(this.totalBytesToUpload / this.partSize);
100
- }
101
- };
102
95
  AWSS3ProviderManagedUpload.prototype.createParts = function () {
103
96
  try {
104
97
  var parts = [];
105
98
  for (var bodyStart = 0; bodyStart < this.totalBytesToUpload;) {
106
- var bodyEnd = Math.min(bodyStart + this.partSize, this.totalBytesToUpload);
99
+ var bodyEnd = Math.min(bodyStart + this.minPartSize, this.totalBytesToUpload);
107
100
  parts.push({
108
101
  bodyPart: this.body.slice(bodyStart, bodyEnd),
109
102
  partNumber: parts.length + 1,
110
103
  emitter: new events.EventEmitter(),
111
104
  _lastUploadedBytes: 0,
112
105
  });
113
- bodyStart += this.partSize;
106
+ bodyStart += this.minPartSize;
114
107
  }
115
108
  return parts;
116
109
  }
@@ -228,10 +221,6 @@ var AWSS3ProviderManagedUpload = /** @class */ (function () {
228
221
  this.completedParts = [];
229
222
  this.bytesUploaded = 0;
230
223
  this.totalBytesToUpload = 0;
231
- if (!uploadId) {
232
- // This is a single part upload;
233
- return [2 /*return*/];
234
- }
235
224
  input = {
236
225
  Bucket: this.params.Bucket,
237
226
  Key: this.params.Key,
@@ -293,20 +282,19 @@ var AWSS3ProviderManagedUpload = /** @class */ (function () {
293
282
  }
294
283
  };
295
284
  AWSS3ProviderManagedUpload.prototype.validateAndSanitizeBody = function (body) {
296
- var sanitizedBody = this.isGenericObject(body)
297
- ? JSON.stringify(body)
298
- : body;
299
- /* TODO: streams and files for nodejs
300
- if (
301
- typeof body.path === 'string' &&
302
- require('fs').lstatSync(body.path).size > 0
303
- ) {
304
- sanitizedBody = body;
305
- } */
306
- if (this.byteLength(sanitizedBody) > MAX_OBJECT_SIZE) {
307
- throw new Error("File size bigger than S3 Object limit of 5TB, got " + this.totalBytesToUpload + " Bytes");
308
- }
309
- return sanitizedBody;
285
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
286
+ return tslib_1.__generator(this, function (_a) {
287
+ if (this.isGenericObject(body)) {
288
+ // Any javascript object
289
+ return [2 /*return*/, JSON.stringify(body)];
290
+ }
291
+ else {
292
+ // Files, arrayBuffer etc
293
+ return [2 /*return*/, body];
294
+ }
295
+ return [2 /*return*/];
296
+ });
297
+ });
310
298
  };
311
299
  AWSS3ProviderManagedUpload.prototype.isGenericObject = function (body) {
312
300
  if (body !== null && typeof body === 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"AWSS3ProviderManagedUpload.js","sourceRoot":"","sources":["../../src/providers/AWSS3ProviderManagedUpload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AWSS3ProviderManagedUpload.js","sourceRoot":"","sources":["../../src/providers/AWSS3ProviderManagedUpload.ts"],"names":[],"mappings":"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"}
@@ -9,19 +9,19 @@ export declare interface Part {
9
9
  _lastUploadedBytes: number;
10
10
  }
11
11
  export declare class AWSS3ProviderManagedUpload {
12
+ protected minPartSize: number;
13
+ private queueSize;
12
14
  private body;
13
15
  private params;
14
16
  private opts;
15
17
  private completedParts;
16
18
  private s3client;
17
19
  private uploadId;
18
- private partSize;
19
20
  private bytesUploaded;
20
21
  private totalBytesToUpload;
21
22
  private emitter;
22
23
  constructor(params: PutObjectRequest, opts: any, emitter: events.EventEmitter);
23
24
  upload(): Promise<string | import("@aws-sdk/client-s3/types/").PutObjectCommandOutput>;
24
- private calculatePartSize;
25
25
  private createParts;
26
26
  private createMultiPartUpload;
27
27
  /**
@@ -6,19 +6,18 @@ import { PutObjectCommand, CreateMultipartUploadCommand, UploadPartCommand, Comp
6
6
  import { SEND_UPLOAD_PROGRESS_EVENT, SEND_DOWNLOAD_PROGRESS_EVENT, } from './axios-http-handler';
7
7
  import * as events from 'events';
8
8
  import { createPrefixMiddleware, prefixMiddlewareOptions, autoAdjustClockskewMiddleware, autoAdjustClockskewMiddlewareOptions, createS3Client, } from '../common/S3ClientUtils';
9
- var MB = 1024 * 1024;
10
- var GB = 1024 * MB;
11
- var TB = 1024 * GB;
12
- var DEFAULT_PART_SIZE = 5 * MB;
13
- var MAX_OBJECT_SIZE = 5 * TB;
14
- var MAX_PARTS_COUNT = 10000;
15
- var DEFAULT_QUEUE_SIZE = 4;
16
9
  var logger = new Logger('AWSS3ProviderManagedUpload');
17
10
  var AWSS3ProviderManagedUpload = /** @class */ (function () {
18
11
  function AWSS3ProviderManagedUpload(params, opts, emitter) {
12
+ // Defaults
13
+ this.minPartSize = 5 * 1024 * 1024; // in MB
14
+ this.queueSize = 4;
15
+ // Data for current upload
16
+ this.body = null;
17
+ this.params = null;
19
18
  this.opts = null;
20
19
  this.completedParts = [];
21
- this.partSize = DEFAULT_PART_SIZE;
20
+ this.uploadId = null;
22
21
  // Progress reporting
23
22
  this.bytesUploaded = 0;
24
23
  this.totalBytesToUpload = 0;
@@ -30,85 +29,79 @@ var AWSS3ProviderManagedUpload = /** @class */ (function () {
30
29
  }
31
30
  AWSS3ProviderManagedUpload.prototype.upload = function () {
32
31
  return __awaiter(this, void 0, void 0, function () {
33
- var putObjectCommand, _a, numberOfPartsToUpload, parts, start, error_1;
32
+ var _a, putObjectCommand, _b, numberOfPartsToUpload, parts, start, error_1;
34
33
  var _this = this;
35
- return __generator(this, function (_b) {
36
- switch (_b.label) {
34
+ return __generator(this, function (_c) {
35
+ switch (_c.label) {
37
36
  case 0:
38
- _b.trys.push([0, 9, , 11]);
39
- this.body = this.validateAndSanitizeBody(this.params.Body);
37
+ _c.trys.push([0, 10, , 12]);
38
+ _a = this;
39
+ return [4 /*yield*/, this.validateAndSanitizeBody(this.params.Body)];
40
+ case 1:
41
+ _a.body = _c.sent();
40
42
  this.totalBytesToUpload = this.byteLength(this.body);
41
- if (!(this.totalBytesToUpload <= DEFAULT_PART_SIZE)) return [3 /*break*/, 1];
43
+ if (!(this.totalBytesToUpload <= this.minPartSize)) return [3 /*break*/, 2];
42
44
  // Multipart upload is not required. Upload the sanitized body as is
43
45
  this.params.Body = this.body;
44
46
  putObjectCommand = new PutObjectCommand(this.params);
45
47
  return [2 /*return*/, this.s3client.send(putObjectCommand)];
46
- case 1:
47
- // Step 1: Determine appropriate part size.
48
- this.calculatePartSize();
49
- // Step 2: Initiate the multi part upload
50
- _a = this;
51
- return [4 /*yield*/, this.createMultiPartUpload()];
52
48
  case 2:
53
- // Step 2: Initiate the multi part upload
54
- _a.uploadId = _b.sent();
55
- numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.partSize);
49
+ // Step 1: Initiate the multi part upload
50
+ _b = this;
51
+ return [4 /*yield*/, this.createMultiPartUpload()];
52
+ case 3:
53
+ // Step 1: Initiate the multi part upload
54
+ _b.uploadId = _c.sent();
55
+ numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.minPartSize);
56
56
  parts = this.createParts();
57
57
  start = 0;
58
- _b.label = 3;
59
- case 3:
60
- if (!(start < numberOfPartsToUpload)) return [3 /*break*/, 6];
61
- // Upload as many as `queueSize` parts simultaneously
62
- return [4 /*yield*/, this.uploadParts(this.uploadId, parts.slice(start, start + DEFAULT_QUEUE_SIZE))];
58
+ _c.label = 4;
63
59
  case 4:
60
+ if (!(start < numberOfPartsToUpload)) return [3 /*break*/, 7];
64
61
  // Upload as many as `queueSize` parts simultaneously
65
- _b.sent();
66
- _b.label = 5;
62
+ return [4 /*yield*/, this.uploadParts(this.uploadId, parts.slice(start, start + this.queueSize))];
67
63
  case 5:
68
- start += DEFAULT_QUEUE_SIZE;
69
- return [3 /*break*/, 3];
64
+ // Upload as many as `queueSize` parts simultaneously
65
+ _c.sent();
66
+ _c.label = 6;
70
67
  case 6:
68
+ start += this.queueSize;
69
+ return [3 /*break*/, 4];
70
+ case 7:
71
71
  parts.map(function (part) {
72
72
  _this.removeEventListener(part);
73
73
  });
74
74
  return [4 /*yield*/, this.finishMultiPartUpload(this.uploadId)];
75
- case 7:
75
+ case 8:
76
76
  // Step 3: Finalize the upload such that S3 can recreate the file
77
- return [2 /*return*/, _b.sent()];
78
- case 8: return [3 /*break*/, 11];
79
- case 9:
80
- error_1 = _b.sent();
77
+ return [2 /*return*/, _c.sent()];
78
+ case 9: return [3 /*break*/, 12];
79
+ case 10:
80
+ error_1 = _c.sent();
81
81
  // if any error is thrown, call cleanup
82
82
  return [4 /*yield*/, this.cleanup(this.uploadId)];
83
- case 10:
83
+ case 11:
84
84
  // if any error is thrown, call cleanup
85
- _b.sent();
85
+ _c.sent();
86
86
  logger.error('Error. Cancelling the multipart upload.');
87
87
  throw error_1;
88
- case 11: return [2 /*return*/];
88
+ case 12: return [2 /*return*/];
89
89
  }
90
90
  });
91
91
  });
92
92
  };
93
- AWSS3ProviderManagedUpload.prototype.calculatePartSize = function () {
94
- var partsCount = Math.ceil(this.totalBytesToUpload / this.partSize);
95
- while (partsCount > MAX_PARTS_COUNT) {
96
- this.partSize *= 2;
97
- partsCount = Math.ceil(this.totalBytesToUpload / this.partSize);
98
- }
99
- };
100
93
  AWSS3ProviderManagedUpload.prototype.createParts = function () {
101
94
  try {
102
95
  var parts = [];
103
96
  for (var bodyStart = 0; bodyStart < this.totalBytesToUpload;) {
104
- var bodyEnd = Math.min(bodyStart + this.partSize, this.totalBytesToUpload);
97
+ var bodyEnd = Math.min(bodyStart + this.minPartSize, this.totalBytesToUpload);
105
98
  parts.push({
106
99
  bodyPart: this.body.slice(bodyStart, bodyEnd),
107
100
  partNumber: parts.length + 1,
108
101
  emitter: new events.EventEmitter(),
109
102
  _lastUploadedBytes: 0,
110
103
  });
111
- bodyStart += this.partSize;
104
+ bodyStart += this.minPartSize;
112
105
  }
113
106
  return parts;
114
107
  }
@@ -226,10 +219,6 @@ var AWSS3ProviderManagedUpload = /** @class */ (function () {
226
219
  this.completedParts = [];
227
220
  this.bytesUploaded = 0;
228
221
  this.totalBytesToUpload = 0;
229
- if (!uploadId) {
230
- // This is a single part upload;
231
- return [2 /*return*/];
232
- }
233
222
  input = {
234
223
  Bucket: this.params.Bucket,
235
224
  Key: this.params.Key,
@@ -291,20 +280,19 @@ var AWSS3ProviderManagedUpload = /** @class */ (function () {
291
280
  }
292
281
  };
293
282
  AWSS3ProviderManagedUpload.prototype.validateAndSanitizeBody = function (body) {
294
- var sanitizedBody = this.isGenericObject(body)
295
- ? JSON.stringify(body)
296
- : body;
297
- /* TODO: streams and files for nodejs
298
- if (
299
- typeof body.path === 'string' &&
300
- require('fs').lstatSync(body.path).size > 0
301
- ) {
302
- sanitizedBody = body;
303
- } */
304
- if (this.byteLength(sanitizedBody) > MAX_OBJECT_SIZE) {
305
- throw new Error("File size bigger than S3 Object limit of 5TB, got " + this.totalBytesToUpload + " Bytes");
306
- }
307
- return sanitizedBody;
283
+ return __awaiter(this, void 0, void 0, function () {
284
+ return __generator(this, function (_a) {
285
+ if (this.isGenericObject(body)) {
286
+ // Any javascript object
287
+ return [2 /*return*/, JSON.stringify(body)];
288
+ }
289
+ else {
290
+ // Files, arrayBuffer etc
291
+ return [2 /*return*/, body];
292
+ }
293
+ return [2 /*return*/];
294
+ });
295
+ });
308
296
  };
309
297
  AWSS3ProviderManagedUpload.prototype.isGenericObject = function (body) {
310
298
  if (body !== null && typeof body === 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"AWSS3ProviderManagedUpload.js","sourceRoot":"","sources":["../../src/providers/AWSS3ProviderManagedUpload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AWSS3ProviderManagedUpload.js","sourceRoot":"","sources":["../../src/providers/AWSS3ProviderManagedUpload.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/storage",
3
- "version": "5.0.9-storage-part-size.4+5245927cc",
3
+ "version": "5.0.9",
4
4
  "description": "Storage category of aws-amplify",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -44,7 +44,7 @@
44
44
  "src"
45
45
  ],
46
46
  "dependencies": {
47
- "@aws-amplify/core": "5.0.9-storage-part-size.4+5245927cc",
47
+ "@aws-amplify/core": "5.0.9",
48
48
  "@aws-sdk/client-s3": "3.6.1",
49
49
  "@aws-sdk/s3-request-presigner": "3.6.1",
50
50
  "@aws-sdk/util-create-request": "3.6.1",
@@ -102,5 +102,5 @@
102
102
  "devDependencies": {
103
103
  "@types/sinon": "^7.5.1"
104
104
  },
105
- "gitHead": "5245927ccfc5b98598dd7ef84ff452e8a32bf70e"
105
+ "gitHead": "5e4beb9b69a91ffb6fc79cf6305e27cf9794cacf"
106
106
  }
@@ -28,15 +28,6 @@ import {
28
28
  createS3Client,
29
29
  } from '../common/S3ClientUtils';
30
30
 
31
- const MB = 1024 * 1024;
32
- const GB = 1024 * MB;
33
- const TB = 1024 * GB;
34
-
35
- const DEFAULT_PART_SIZE = 5 * MB;
36
- const MAX_OBJECT_SIZE = 5 * TB;
37
- const MAX_PARTS_COUNT = 10000;
38
- const DEFAULT_QUEUE_SIZE = 4;
39
-
40
31
  const logger = new Logger('AWSS3ProviderManagedUpload');
41
32
 
42
33
  export declare interface Part {
@@ -48,19 +39,22 @@ export declare interface Part {
48
39
  }
49
40
 
50
41
  export class AWSS3ProviderManagedUpload {
42
+ // Defaults
43
+ protected minPartSize = 5 * 1024 * 1024; // in MB
44
+ private queueSize = 4;
45
+
51
46
  // Data for current upload
52
- private body;
53
- private params: PutObjectRequest;
47
+ private body = null;
48
+ private params: PutObjectRequest = null;
54
49
  private opts = null;
55
50
  private completedParts: CompletedPart[] = [];
56
51
  private s3client: S3Client;
57
- private uploadId: string | undefined;
58
- private partSize = DEFAULT_PART_SIZE;
52
+ private uploadId = null;
59
53
 
60
54
  // Progress reporting
61
55
  private bytesUploaded = 0;
62
56
  private totalBytesToUpload = 0;
63
- private emitter: events.EventEmitter | null = null;
57
+ private emitter: events.EventEmitter = null;
64
58
 
65
59
  constructor(params: PutObjectRequest, opts, emitter: events.EventEmitter) {
66
60
  this.params = params;
@@ -71,34 +65,33 @@ export class AWSS3ProviderManagedUpload {
71
65
 
72
66
  public async upload() {
73
67
  try {
74
- this.body = this.validateAndSanitizeBody(this.params.Body);
68
+ this.body = await this.validateAndSanitizeBody(this.params.Body);
75
69
  this.totalBytesToUpload = this.byteLength(this.body);
76
- if (this.totalBytesToUpload <= DEFAULT_PART_SIZE) {
70
+ if (this.totalBytesToUpload <= this.minPartSize) {
77
71
  // Multipart upload is not required. Upload the sanitized body as is
78
72
  this.params.Body = this.body;
79
73
  const putObjectCommand = new PutObjectCommand(this.params);
80
74
  return this.s3client.send(putObjectCommand);
81
75
  } else {
82
- // Step 1: Determine appropriate part size.
83
- this.calculatePartSize();
84
- // Step 2: Initiate the multi part upload
76
+ // Step 1: Initiate the multi part upload
85
77
  this.uploadId = await this.createMultiPartUpload();
86
78
 
87
- // Step 3: Upload chunks in parallel as requested
79
+ // Step 2: Upload chunks in parallel as requested
88
80
  const numberOfPartsToUpload = Math.ceil(
89
- this.totalBytesToUpload / this.partSize
81
+ this.totalBytesToUpload / this.minPartSize
90
82
  );
91
83
 
92
84
  const parts: Part[] = this.createParts();
93
85
  for (
94
86
  let start = 0;
95
87
  start < numberOfPartsToUpload;
96
- start += DEFAULT_QUEUE_SIZE
88
+ start += this.queueSize
97
89
  ) {
90
+
98
91
  // Upload as many as `queueSize` parts simultaneously
99
92
  await this.uploadParts(
100
- this.uploadId!,
101
- parts.slice(start, start + DEFAULT_QUEUE_SIZE)
93
+ this.uploadId,
94
+ parts.slice(start, start + this.queueSize)
102
95
  );
103
96
  }
104
97
 
@@ -107,7 +100,7 @@ export class AWSS3ProviderManagedUpload {
107
100
  });
108
101
 
109
102
  // Step 3: Finalize the upload such that S3 can recreate the file
110
- return await this.finishMultiPartUpload(this.uploadId!);
103
+ return await this.finishMultiPartUpload(this.uploadId);
111
104
  }
112
105
  } catch (error) {
113
106
  // if any error is thrown, call cleanup
@@ -117,20 +110,12 @@ export class AWSS3ProviderManagedUpload {
117
110
  }
118
111
  }
119
112
 
120
- private calculatePartSize() {
121
- let partsCount = Math.ceil(this.totalBytesToUpload / this.partSize);
122
- while (partsCount > MAX_PARTS_COUNT) {
123
- this.partSize *= 2;
124
- partsCount = Math.ceil(this.totalBytesToUpload / this.partSize);
125
- }
126
- }
127
-
128
113
  private createParts(): Part[] {
129
114
  try {
130
115
  const parts: Part[] = [];
131
116
  for (let bodyStart = 0; bodyStart < this.totalBytesToUpload; ) {
132
117
  const bodyEnd = Math.min(
133
- bodyStart + this.partSize,
118
+ bodyStart + this.minPartSize,
134
119
  this.totalBytesToUpload
135
120
  );
136
121
  parts.push({
@@ -139,7 +124,7 @@ export class AWSS3ProviderManagedUpload {
139
124
  emitter: new events.EventEmitter(),
140
125
  _lastUploadedBytes: 0,
141
126
  });
142
- bodyStart += this.partSize;
127
+ bodyStart += this.minPartSize;
143
128
  }
144
129
  return parts;
145
130
  } catch (error) {
@@ -227,18 +212,13 @@ export class AWSS3ProviderManagedUpload {
227
212
  }
228
213
  }
229
214
 
230
- private async cleanup(uploadId: string | undefined) {
215
+ private async cleanup(uploadId: string) {
231
216
  // Reset this's state
232
217
  this.body = null;
233
218
  this.completedParts = [];
234
219
  this.bytesUploaded = 0;
235
220
  this.totalBytesToUpload = 0;
236
221
 
237
- if (!uploadId) {
238
- // This is a single part upload;
239
- return;
240
- }
241
-
242
222
  const input = {
243
223
  Bucket: this.params.Bucket,
244
224
  Key: this.params.Key,
@@ -297,23 +277,21 @@ export class AWSS3ProviderManagedUpload {
297
277
  }
298
278
  }
299
279
 
300
- private validateAndSanitizeBody(body: any): any {
301
- const sanitizedBody = this.isGenericObject(body)
302
- ? JSON.stringify(body)
303
- : body;
280
+ private async validateAndSanitizeBody(body: any): Promise<any> {
281
+ if (this.isGenericObject(body)) {
282
+ // Any javascript object
283
+ return JSON.stringify(body);
284
+ } else {
285
+ // Files, arrayBuffer etc
286
+ return body;
287
+ }
304
288
  /* TODO: streams and files for nodejs
305
289
  if (
306
290
  typeof body.path === 'string' &&
307
291
  require('fs').lstatSync(body.path).size > 0
308
292
  ) {
309
- sanitizedBody = body;
293
+ return body;
310
294
  } */
311
- if (this.byteLength(sanitizedBody) > MAX_OBJECT_SIZE) {
312
- throw new Error(
313
- `File size bigger than S3 Object limit of 5TB, got ${this.totalBytesToUpload} Bytes`
314
- );
315
- }
316
- return sanitizedBody;
317
295
  }
318
296
 
319
297
  private isGenericObject(body: any): body is Object {