@aws-amplify/storage 4.4.5 → 4.4.6-unstable.5
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/dist/aws-amplify-storage.js +206 -210
- package/dist/aws-amplify-storage.js.map +1 -1
- package/dist/aws-amplify-storage.min.js +3 -3
- package/dist/aws-amplify-storage.min.js.map +1 -1
- package/lib/common/S3ClientUtils.d.ts +23 -1
- package/lib/common/S3ClientUtils.js +75 -0
- package/lib/common/S3ClientUtils.js.map +1 -1
- package/lib/providers/AWSS3Provider.d.ts +0 -1
- package/lib/providers/AWSS3Provider.js +2 -41
- package/lib/providers/AWSS3Provider.js.map +1 -1
- package/lib/providers/AWSS3ProviderManagedUpload.d.ts +3 -10
- package/lib/providers/AWSS3ProviderManagedUpload.js +40 -94
- package/lib/providers/AWSS3ProviderManagedUpload.js.map +1 -1
- package/lib/providers/axios-http-handler.d.ts +1 -0
- package/lib/providers/axios-http-handler.js +3 -1
- package/lib/providers/axios-http-handler.js.map +1 -1
- package/lib-esm/common/S3ClientUtils.d.ts +23 -1
- package/lib-esm/common/S3ClientUtils.js +76 -1
- package/lib-esm/common/S3ClientUtils.js.map +1 -1
- package/lib-esm/providers/AWSS3Provider.d.ts +0 -1
- package/lib-esm/providers/AWSS3Provider.js +7 -46
- package/lib-esm/providers/AWSS3Provider.js.map +1 -1
- package/lib-esm/providers/AWSS3ProviderManagedUpload.d.ts +3 -10
- package/lib-esm/providers/AWSS3ProviderManagedUpload.js +44 -98
- package/lib-esm/providers/AWSS3ProviderManagedUpload.js.map +1 -1
- package/lib-esm/providers/axios-http-handler.d.ts +1 -0
- package/lib-esm/providers/axios-http-handler.js +3 -1
- package/lib-esm/providers/axios-http-handler.js.map +1 -1
- package/package.json +3 -3
- package/src/common/S3ClientUtils.ts +106 -2
- package/src/providers/AWSS3Provider.ts +10 -49
- package/src/providers/AWSS3ProviderManagedUpload.ts +26 -74
- package/src/providers/axios-http-handler.ts +4 -1
|
@@ -44856,6 +44856,8 @@ function Parser(options) {
|
|
|
44856
44856
|
this.replaceCDATAstr = replaceCDATAstr;
|
|
44857
44857
|
this.replaceCDATAarr = replaceCDATAarr;
|
|
44858
44858
|
|
|
44859
|
+
this.processTextOrObjNode = processTextOrObjNode
|
|
44860
|
+
|
|
44859
44861
|
if (this.options.format) {
|
|
44860
44862
|
this.indentate = indentate;
|
|
44861
44863
|
this.tagEndChar = '>\n';
|
|
@@ -44892,10 +44894,7 @@ Parser.prototype.parse = function(jObj) {
|
|
|
44892
44894
|
Parser.prototype.j2x = function(jObj, level) {
|
|
44893
44895
|
let attrStr = '';
|
|
44894
44896
|
let val = '';
|
|
44895
|
-
|
|
44896
|
-
const len = keys.length;
|
|
44897
|
-
for (let i = 0; i < len; i++) {
|
|
44898
|
-
const key = keys[i];
|
|
44897
|
+
for (let key in jObj) {
|
|
44899
44898
|
if (typeof jObj[key] === 'undefined') {
|
|
44900
44899
|
// supress undefined node
|
|
44901
44900
|
} else if (jObj[key] === null) {
|
|
@@ -44944,8 +44943,7 @@ Parser.prototype.j2x = function(jObj, level) {
|
|
|
44944
44943
|
} else if (item === null) {
|
|
44945
44944
|
val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
|
|
44946
44945
|
} else if (typeof item === 'object') {
|
|
44947
|
-
|
|
44948
|
-
val += this.buildObjNode(result.val, key, result.attrStr, level);
|
|
44946
|
+
val += this.processTextOrObjNode(item, key, level)
|
|
44949
44947
|
} else {
|
|
44950
44948
|
val += this.buildTextNode(item, key, '', level);
|
|
44951
44949
|
}
|
|
@@ -44960,14 +44958,22 @@ Parser.prototype.j2x = function(jObj, level) {
|
|
|
44960
44958
|
attrStr += ' ' + Ks[j] + '="' + this.options.attrValueProcessor('' + jObj[key][Ks[j]]) + '"';
|
|
44961
44959
|
}
|
|
44962
44960
|
} else {
|
|
44963
|
-
|
|
44964
|
-
val += this.buildObjNode(result.val, key, result.attrStr, level);
|
|
44961
|
+
val += this.processTextOrObjNode(jObj[key], key, level)
|
|
44965
44962
|
}
|
|
44966
44963
|
}
|
|
44967
44964
|
}
|
|
44968
44965
|
return {attrStr: attrStr, val: val};
|
|
44969
44966
|
};
|
|
44970
44967
|
|
|
44968
|
+
function processTextOrObjNode (object, key, level) {
|
|
44969
|
+
const result = this.j2x(object, level + 1);
|
|
44970
|
+
if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {
|
|
44971
|
+
return this.buildTextNode(result.val, key, result.attrStr, level);
|
|
44972
|
+
} else {
|
|
44973
|
+
return this.buildObjNode(result.val, key, result.attrStr, level);
|
|
44974
|
+
}
|
|
44975
|
+
}
|
|
44976
|
+
|
|
44971
44977
|
function replaceCDATAstr(str, cdata) {
|
|
44972
44978
|
str = this.options.tagValueProcessor('' + str);
|
|
44973
44979
|
if (this.options.cdataPositionChar === '' || str === '') {
|
|
@@ -44990,7 +44996,7 @@ function replaceCDATAarr(str, cdata) {
|
|
|
44990
44996
|
}
|
|
44991
44997
|
|
|
44992
44998
|
function buildObjectNode(val, key, attrStr, level) {
|
|
44993
|
-
if (attrStr &&
|
|
44999
|
+
if (attrStr && val.indexOf('<') === -1) {
|
|
44994
45000
|
return (
|
|
44995
45001
|
this.indentate(level) +
|
|
44996
45002
|
'<' +
|
|
@@ -47649,16 +47655,23 @@ function () {
|
|
|
47649
47655
|
/*!*****************************************!*\
|
|
47650
47656
|
!*** ./lib-esm/common/S3ClientUtils.js ***!
|
|
47651
47657
|
\*****************************************/
|
|
47652
|
-
/*! exports provided: getPrefix, createPrefixMiddleware, prefixMiddlewareOptions */
|
|
47658
|
+
/*! exports provided: getPrefix, createPrefixMiddleware, autoAdjustClockskewMiddleware, autoAdjustClockskewMiddlewareOptions, prefixMiddlewareOptions, credentialsProvider, createS3Client */
|
|
47653
47659
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
47654
47660
|
|
|
47655
47661
|
"use strict";
|
|
47656
47662
|
__webpack_require__.r(__webpack_exports__);
|
|
47657
47663
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPrefix", function() { return getPrefix; });
|
|
47658
47664
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPrefixMiddleware", function() { return createPrefixMiddleware; });
|
|
47665
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "autoAdjustClockskewMiddleware", function() { return autoAdjustClockskewMiddleware; });
|
|
47666
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "autoAdjustClockskewMiddlewareOptions", function() { return autoAdjustClockskewMiddlewareOptions; });
|
|
47659
47667
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefixMiddlewareOptions", function() { return prefixMiddlewareOptions; });
|
|
47668
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "credentialsProvider", function() { return credentialsProvider; });
|
|
47669
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createS3Client", function() { return createS3Client; });
|
|
47660
47670
|
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
|
|
47661
47671
|
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__);
|
|
47672
|
+
/* harmony import */ var _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/client-s3 */ "../../node_modules/@aws-sdk/client-s3/dist/es/index.js");
|
|
47673
|
+
/* harmony import */ var _providers_axios_http_handler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../providers/axios-http-handler */ "./lib-esm/providers/axios-http-handler.js");
|
|
47674
|
+
/* harmony import */ var _StorageConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./StorageConstants */ "./lib-esm/common/StorageConstants.js");
|
|
47662
47675
|
var __assign = undefined && undefined.__assign || function () {
|
|
47663
47676
|
__assign = Object.assign || function (t) {
|
|
47664
47677
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -47819,6 +47832,15 @@ var __generator = undefined && undefined.__generator || function (thisArg, body)
|
|
|
47819
47832
|
};
|
|
47820
47833
|
|
|
47821
47834
|
|
|
47835
|
+
|
|
47836
|
+
|
|
47837
|
+
|
|
47838
|
+
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Logger"]('S3ClientUtils'); // placeholder credentials in order to satisfy type requirement, always results in 403 when used
|
|
47839
|
+
|
|
47840
|
+
var INVALID_CRED = {
|
|
47841
|
+
accessKeyId: '',
|
|
47842
|
+
secretAccessKey: ''
|
|
47843
|
+
};
|
|
47822
47844
|
var getPrefix = function getPrefix(config) {
|
|
47823
47845
|
var credentials = config.credentials,
|
|
47824
47846
|
level = config.level,
|
|
@@ -47879,10 +47901,126 @@ var createPrefixMiddleware = function createPrefixMiddleware(opt, key) {
|
|
|
47879
47901
|
};
|
|
47880
47902
|
};
|
|
47881
47903
|
};
|
|
47904
|
+
|
|
47905
|
+
var isTimeSkewedError = function isTimeSkewedError(err) {
|
|
47906
|
+
return err.ServerTime && typeof err.Code === 'string' && err.Code === 'RequestTimeTooSkewed';
|
|
47907
|
+
}; // we want to take the S3Client config in parameter so we can modify it's systemClockOffset
|
|
47908
|
+
|
|
47909
|
+
|
|
47910
|
+
var autoAdjustClockskewMiddleware = function autoAdjustClockskewMiddleware(config) {
|
|
47911
|
+
return function (next, _context) {
|
|
47912
|
+
return function (args) {
|
|
47913
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47914
|
+
var err_1, serverDate;
|
|
47915
|
+
return __generator(this, function (_a) {
|
|
47916
|
+
switch (_a.label) {
|
|
47917
|
+
case 0:
|
|
47918
|
+
_a.trys.push([0, 2,, 3]);
|
|
47919
|
+
|
|
47920
|
+
return [4
|
|
47921
|
+
/*yield*/
|
|
47922
|
+
, next(args)];
|
|
47923
|
+
|
|
47924
|
+
case 1:
|
|
47925
|
+
return [2
|
|
47926
|
+
/*return*/
|
|
47927
|
+
, _a.sent()];
|
|
47928
|
+
|
|
47929
|
+
case 2:
|
|
47930
|
+
err_1 = _a.sent();
|
|
47931
|
+
|
|
47932
|
+
if (isTimeSkewedError(err_1)) {
|
|
47933
|
+
serverDate = new Date(err_1.ServerTime);
|
|
47934
|
+
config.systemClockOffset = serverDate.getTime() - Date.now();
|
|
47935
|
+
}
|
|
47936
|
+
|
|
47937
|
+
throw err_1;
|
|
47938
|
+
|
|
47939
|
+
case 3:
|
|
47940
|
+
return [2
|
|
47941
|
+
/*return*/
|
|
47942
|
+
];
|
|
47943
|
+
}
|
|
47944
|
+
});
|
|
47945
|
+
});
|
|
47946
|
+
};
|
|
47947
|
+
};
|
|
47948
|
+
};
|
|
47949
|
+
var autoAdjustClockskewMiddlewareOptions = {
|
|
47950
|
+
step: 'finalizeRequest',
|
|
47951
|
+
name: 'autoAdjustClockskewMiddleware'
|
|
47952
|
+
};
|
|
47882
47953
|
var prefixMiddlewareOptions = {
|
|
47883
47954
|
step: 'initialize',
|
|
47884
47955
|
name: 'addPrefixMiddleware'
|
|
47885
47956
|
};
|
|
47957
|
+
var credentialsProvider = function credentialsProvider() {
|
|
47958
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
47959
|
+
var credentials, cred, error_1;
|
|
47960
|
+
return __generator(this, function (_a) {
|
|
47961
|
+
switch (_a.label) {
|
|
47962
|
+
case 0:
|
|
47963
|
+
_a.trys.push([0, 2,, 3]);
|
|
47964
|
+
|
|
47965
|
+
return [4
|
|
47966
|
+
/*yield*/
|
|
47967
|
+
, _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Credentials"].get()];
|
|
47968
|
+
|
|
47969
|
+
case 1:
|
|
47970
|
+
credentials = _a.sent();
|
|
47971
|
+
if (!credentials) return [2
|
|
47972
|
+
/*return*/
|
|
47973
|
+
, INVALID_CRED];
|
|
47974
|
+
cred = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Credentials"].shear(credentials);
|
|
47975
|
+
logger.debug('credentials provider get credentials', cred);
|
|
47976
|
+
return [2
|
|
47977
|
+
/*return*/
|
|
47978
|
+
, cred];
|
|
47979
|
+
|
|
47980
|
+
case 2:
|
|
47981
|
+
error_1 = _a.sent();
|
|
47982
|
+
logger.warn('credentials provider error', error_1);
|
|
47983
|
+
return [2
|
|
47984
|
+
/*return*/
|
|
47985
|
+
, INVALID_CRED];
|
|
47986
|
+
|
|
47987
|
+
case 3:
|
|
47988
|
+
return [2
|
|
47989
|
+
/*return*/
|
|
47990
|
+
];
|
|
47991
|
+
}
|
|
47992
|
+
});
|
|
47993
|
+
});
|
|
47994
|
+
};
|
|
47995
|
+
var createS3Client = function createS3Client(config, emitter) {
|
|
47996
|
+
var region = config.region,
|
|
47997
|
+
cancelTokenSource = config.cancelTokenSource,
|
|
47998
|
+
dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting,
|
|
47999
|
+
useAccelerateEndpoint = config.useAccelerateEndpoint;
|
|
48000
|
+
var localTestingConfig = {};
|
|
48001
|
+
|
|
48002
|
+
if (dangerouslyConnectToHttpEndpointForTesting) {
|
|
48003
|
+
localTestingConfig = {
|
|
48004
|
+
endpoint: _StorageConstants__WEBPACK_IMPORTED_MODULE_3__["localTestingStorageEndpoint"],
|
|
48005
|
+
tls: false,
|
|
48006
|
+
bucketEndpoint: false,
|
|
48007
|
+
forcePathStyle: true
|
|
48008
|
+
};
|
|
48009
|
+
}
|
|
48010
|
+
|
|
48011
|
+
var s3client = new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["S3Client"](__assign(__assign({
|
|
48012
|
+
region: region,
|
|
48013
|
+
// Using provider instead of a static credentials, so that if an upload task was in progress, but credentials gets
|
|
48014
|
+
// changed or invalidated (e.g user signed out), the subsequent requests will fail.
|
|
48015
|
+
credentials: credentialsProvider,
|
|
48016
|
+
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["getAmplifyUserAgent"])()
|
|
48017
|
+
}, localTestingConfig), {
|
|
48018
|
+
requestHandler: new _providers_axios_http_handler__WEBPACK_IMPORTED_MODULE_2__["AxiosHttpHandler"]({}, emitter, cancelTokenSource),
|
|
48019
|
+
useAccelerateEndpoint: useAccelerateEndpoint
|
|
48020
|
+
}));
|
|
48021
|
+
s3client.middlewareStack.remove(_StorageConstants__WEBPACK_IMPORTED_MODULE_3__["SET_CONTENT_LENGTH_HEADER"]);
|
|
48022
|
+
return s3client;
|
|
48023
|
+
};
|
|
47886
48024
|
|
|
47887
48025
|
/***/ }),
|
|
47888
48026
|
|
|
@@ -48326,12 +48464,7 @@ var __generator = undefined && undefined.__generator || function (thisArg, body)
|
|
|
48326
48464
|
|
|
48327
48465
|
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('AWSS3Provider');
|
|
48328
48466
|
var DEFAULT_STORAGE_LEVEL = 'public';
|
|
48329
|
-
var DEFAULT_PRESIGN_EXPIRATION = 900;
|
|
48330
|
-
|
|
48331
|
-
var INVALID_CRED = {
|
|
48332
|
-
accessKeyId: '',
|
|
48333
|
-
secretAccessKey: ''
|
|
48334
|
-
};
|
|
48467
|
+
var DEFAULT_PRESIGN_EXPIRATION = 900;
|
|
48335
48468
|
/**
|
|
48336
48469
|
* Provide storage methods to use AWS S3
|
|
48337
48470
|
*/
|
|
@@ -48551,7 +48684,6 @@ function () {
|
|
|
48551
48684
|
|
|
48552
48685
|
if (acl) params.ACL = acl;
|
|
48553
48686
|
s3 = this._createNewS3Client(opt);
|
|
48554
|
-
s3.middlewareStack.remove(_common_StorageConstants__WEBPACK_IMPORTED_MODULE_11__["SET_CONTENT_LENGTH_HEADER"]);
|
|
48555
48687
|
_c.label = 2;
|
|
48556
48688
|
|
|
48557
48689
|
case 2:
|
|
@@ -49089,74 +49221,14 @@ function () {
|
|
|
49089
49221
|
return publicPath;
|
|
49090
49222
|
}
|
|
49091
49223
|
};
|
|
49092
|
-
|
|
49093
|
-
AWSS3Provider.prototype._credentialsProvider = function () {
|
|
49094
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
49095
|
-
var credentials, cred, error_7;
|
|
49096
|
-
return __generator(this, function (_a) {
|
|
49097
|
-
switch (_a.label) {
|
|
49098
|
-
case 0:
|
|
49099
|
-
_a.trys.push([0, 2,, 3]);
|
|
49100
|
-
|
|
49101
|
-
return [4
|
|
49102
|
-
/*yield*/
|
|
49103
|
-
, _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Credentials"].get()];
|
|
49104
|
-
|
|
49105
|
-
case 1:
|
|
49106
|
-
credentials = _a.sent();
|
|
49107
|
-
if (!credentials) return [2
|
|
49108
|
-
/*return*/
|
|
49109
|
-
, INVALID_CRED];
|
|
49110
|
-
cred = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Credentials"].shear(credentials);
|
|
49111
|
-
logger.debug('credentials provider get credentials', cred);
|
|
49112
|
-
return [2
|
|
49113
|
-
/*return*/
|
|
49114
|
-
, cred];
|
|
49115
|
-
|
|
49116
|
-
case 2:
|
|
49117
|
-
error_7 = _a.sent();
|
|
49118
|
-
logger.warn('credentials provider error', error_7);
|
|
49119
|
-
return [2
|
|
49120
|
-
/*return*/
|
|
49121
|
-
, INVALID_CRED];
|
|
49122
|
-
|
|
49123
|
-
case 3:
|
|
49124
|
-
return [2
|
|
49125
|
-
/*return*/
|
|
49126
|
-
];
|
|
49127
|
-
}
|
|
49128
|
-
});
|
|
49129
|
-
});
|
|
49130
|
-
};
|
|
49131
49224
|
/**
|
|
49132
49225
|
* Creates an S3 client with new V3 aws sdk
|
|
49133
49226
|
*/
|
|
49134
49227
|
|
|
49135
49228
|
|
|
49136
49229
|
AWSS3Provider.prototype._createNewS3Client = function (config, emitter) {
|
|
49137
|
-
var
|
|
49138
|
-
|
|
49139
|
-
dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting;
|
|
49140
|
-
var localTestingConfig = {};
|
|
49141
|
-
|
|
49142
|
-
if (dangerouslyConnectToHttpEndpointForTesting) {
|
|
49143
|
-
localTestingConfig = {
|
|
49144
|
-
endpoint: _common_StorageConstants__WEBPACK_IMPORTED_MODULE_11__["localTestingStorageEndpoint"],
|
|
49145
|
-
tls: false,
|
|
49146
|
-
bucketEndpoint: false,
|
|
49147
|
-
forcePathStyle: true
|
|
49148
|
-
};
|
|
49149
|
-
}
|
|
49150
|
-
|
|
49151
|
-
var s3client = new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["S3Client"](__assign(__assign({
|
|
49152
|
-
region: region,
|
|
49153
|
-
// Using provider instead of a static credentials, so that if an upload task was in progress, but credentials gets
|
|
49154
|
-
// changed or invalidated (e.g user signed out), the subsequent requests will fail.
|
|
49155
|
-
credentials: this._credentialsProvider,
|
|
49156
|
-
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["getAmplifyUserAgent"])()
|
|
49157
|
-
}, localTestingConfig), {
|
|
49158
|
-
requestHandler: new _axios_http_handler__WEBPACK_IMPORTED_MODULE_5__["AxiosHttpHandler"]({}, emitter, cancelTokenSource)
|
|
49159
|
-
}));
|
|
49230
|
+
var s3client = Object(_common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_8__["createS3Client"])(config, emitter);
|
|
49231
|
+
s3client.middlewareStack.add(Object(_common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_8__["autoAdjustClockskewMiddleware"])(s3client.config), _common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_8__["autoAdjustClockskewMiddlewareOptions"]);
|
|
49160
49232
|
return s3client;
|
|
49161
49233
|
};
|
|
49162
49234
|
|
|
@@ -49188,10 +49260,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
49188
49260
|
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__);
|
|
49189
49261
|
/* harmony import */ var _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/client-s3 */ "../../node_modules/@aws-sdk/client-s3/dist/es/index.js");
|
|
49190
49262
|
/* harmony import */ var _axios_http_handler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./axios-http-handler */ "./lib-esm/providers/axios-http-handler.js");
|
|
49191
|
-
/* harmony import */ var
|
|
49192
|
-
/* harmony import */ var
|
|
49193
|
-
/* harmony import */ var
|
|
49194
|
-
/* harmony import */ var _common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/S3ClientUtils */ "./lib-esm/common/S3ClientUtils.js");
|
|
49263
|
+
/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! events */ "../../node_modules/events/events.js");
|
|
49264
|
+
/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_3__);
|
|
49265
|
+
/* harmony import */ var _common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/S3ClientUtils */ "./lib-esm/common/S3ClientUtils.js");
|
|
49195
49266
|
function _typeof(obj) {
|
|
49196
49267
|
"@babel/helpers - typeof";
|
|
49197
49268
|
|
|
@@ -49385,7 +49456,6 @@ var __generator = undefined && undefined.__generator || function (thisArg, body)
|
|
|
49385
49456
|
|
|
49386
49457
|
|
|
49387
49458
|
|
|
49388
|
-
|
|
49389
49459
|
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('AWSS3ProviderManagedUpload');
|
|
49390
49460
|
|
|
49391
49461
|
var AWSS3ProviderManagedUpload =
|
|
@@ -49409,11 +49479,12 @@ function () {
|
|
|
49409
49479
|
this.params = params;
|
|
49410
49480
|
this.opts = opts;
|
|
49411
49481
|
this.emitter = emitter;
|
|
49482
|
+
this.s3client = this._createNewS3Client(opts, emitter);
|
|
49412
49483
|
}
|
|
49413
49484
|
|
|
49414
49485
|
AWSS3ProviderManagedUpload.prototype.upload = function () {
|
|
49415
49486
|
return __awaiter(this, void 0, void 0, function () {
|
|
49416
|
-
var _a, putObjectCommand,
|
|
49487
|
+
var _a, putObjectCommand, uploadId, numberOfPartsToUpload, parts, start;
|
|
49417
49488
|
|
|
49418
49489
|
var _this = this;
|
|
49419
49490
|
|
|
@@ -49430,36 +49501,30 @@ function () {
|
|
|
49430
49501
|
this.totalBytesToUpload = this.byteLength(this.body);
|
|
49431
49502
|
if (!(this.totalBytesToUpload <= this.minPartSize)) return [3
|
|
49432
49503
|
/*break*/
|
|
49433
|
-
,
|
|
49504
|
+
, 2]; // Multipart upload is not required. Upload the sanitized body as is
|
|
49434
49505
|
|
|
49435
49506
|
this.params.Body = this.body;
|
|
49436
49507
|
putObjectCommand = new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["PutObjectCommand"](this.params);
|
|
49437
|
-
return [4
|
|
49438
|
-
/*yield*/
|
|
49439
|
-
, this._createNewS3Client(this.opts, this.emitter)];
|
|
49440
|
-
|
|
49441
|
-
case 2:
|
|
49442
|
-
s3 = _b.sent();
|
|
49443
49508
|
return [2
|
|
49444
49509
|
/*return*/
|
|
49445
|
-
,
|
|
49510
|
+
, this.s3client.send(putObjectCommand)];
|
|
49446
49511
|
|
|
49447
|
-
case
|
|
49512
|
+
case 2:
|
|
49448
49513
|
return [4
|
|
49449
49514
|
/*yield*/
|
|
49450
49515
|
, this.createMultiPartUpload()];
|
|
49451
49516
|
|
|
49452
|
-
case
|
|
49517
|
+
case 3:
|
|
49453
49518
|
uploadId = _b.sent();
|
|
49454
49519
|
numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.minPartSize);
|
|
49455
49520
|
parts = this.createParts();
|
|
49456
49521
|
start = 0;
|
|
49457
|
-
_b.label =
|
|
49522
|
+
_b.label = 4;
|
|
49458
49523
|
|
|
49459
|
-
case
|
|
49524
|
+
case 4:
|
|
49460
49525
|
if (!(start < numberOfPartsToUpload)) return [3
|
|
49461
49526
|
/*break*/
|
|
49462
|
-
,
|
|
49527
|
+
, 9];
|
|
49463
49528
|
/** This first block will try to cancel the upload if the cancel
|
|
49464
49529
|
* request came before any parts uploads have started.
|
|
49465
49530
|
**/
|
|
@@ -49468,7 +49533,7 @@ function () {
|
|
|
49468
49533
|
/*yield*/
|
|
49469
49534
|
, this.checkIfUploadCancelled(uploadId)];
|
|
49470
49535
|
|
|
49471
|
-
case
|
|
49536
|
+
case 5:
|
|
49472
49537
|
/** This first block will try to cancel the upload if the cancel
|
|
49473
49538
|
* request came before any parts uploads have started.
|
|
49474
49539
|
**/
|
|
@@ -49479,7 +49544,7 @@ function () {
|
|
|
49479
49544
|
/*yield*/
|
|
49480
49545
|
, this.uploadParts(uploadId, parts.slice(start, start + this.queueSize))];
|
|
49481
49546
|
|
|
49482
|
-
case
|
|
49547
|
+
case 6:
|
|
49483
49548
|
// Upload as many as `queueSize` parts simultaneously
|
|
49484
49549
|
_b.sent();
|
|
49485
49550
|
/** Call cleanup a second time in case there were part upload requests
|
|
@@ -49491,21 +49556,21 @@ function () {
|
|
|
49491
49556
|
/*yield*/
|
|
49492
49557
|
, this.checkIfUploadCancelled(uploadId)];
|
|
49493
49558
|
|
|
49494
|
-
case
|
|
49559
|
+
case 7:
|
|
49495
49560
|
/** Call cleanup a second time in case there were part upload requests
|
|
49496
49561
|
* in flight. This is to ensure that all parts are cleaned up.
|
|
49497
49562
|
*/
|
|
49498
49563
|
_b.sent();
|
|
49499
49564
|
|
|
49500
|
-
_b.label =
|
|
49565
|
+
_b.label = 8;
|
|
49501
49566
|
|
|
49502
|
-
case
|
|
49567
|
+
case 8:
|
|
49503
49568
|
start += this.queueSize;
|
|
49504
49569
|
return [3
|
|
49505
49570
|
/*break*/
|
|
49506
|
-
,
|
|
49571
|
+
, 4];
|
|
49507
49572
|
|
|
49508
|
-
case
|
|
49573
|
+
case 9:
|
|
49509
49574
|
parts.map(function (part) {
|
|
49510
49575
|
_this.removeEventListener(part);
|
|
49511
49576
|
});
|
|
@@ -49513,7 +49578,7 @@ function () {
|
|
|
49513
49578
|
/*yield*/
|
|
49514
49579
|
, this.finishMultiPartUpload(uploadId)];
|
|
49515
49580
|
|
|
49516
|
-
case
|
|
49581
|
+
case 10:
|
|
49517
49582
|
// Step 3: Finalize the upload such that S3 can recreate the file
|
|
49518
49583
|
return [2
|
|
49519
49584
|
/*return*/
|
|
@@ -49531,7 +49596,7 @@ function () {
|
|
|
49531
49596
|
parts.push({
|
|
49532
49597
|
bodyPart: this.body.slice(bodyStart, bodyEnd),
|
|
49533
49598
|
partNumber: parts.length + 1,
|
|
49534
|
-
emitter: new
|
|
49599
|
+
emitter: new events__WEBPACK_IMPORTED_MODULE_3__["EventEmitter"](),
|
|
49535
49600
|
_lastUploadedBytes: 0
|
|
49536
49601
|
});
|
|
49537
49602
|
bodyStart += this.minPartSize;
|
|
@@ -49542,22 +49607,16 @@ function () {
|
|
|
49542
49607
|
|
|
49543
49608
|
AWSS3ProviderManagedUpload.prototype.createMultiPartUpload = function () {
|
|
49544
49609
|
return __awaiter(this, void 0, void 0, function () {
|
|
49545
|
-
var createMultiPartUploadCommand,
|
|
49610
|
+
var createMultiPartUploadCommand, response;
|
|
49546
49611
|
return __generator(this, function (_a) {
|
|
49547
49612
|
switch (_a.label) {
|
|
49548
49613
|
case 0:
|
|
49549
49614
|
createMultiPartUploadCommand = new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["CreateMultipartUploadCommand"](this.params);
|
|
49550
49615
|
return [4
|
|
49551
49616
|
/*yield*/
|
|
49552
|
-
, this.
|
|
49617
|
+
, this.s3client.send(createMultiPartUploadCommand)];
|
|
49553
49618
|
|
|
49554
49619
|
case 1:
|
|
49555
|
-
s3 = _a.sent();
|
|
49556
|
-
return [4
|
|
49557
|
-
/*yield*/
|
|
49558
|
-
, s3.send(createMultiPartUploadCommand)];
|
|
49559
|
-
|
|
49560
|
-
case 2:
|
|
49561
49620
|
response = _a.sent();
|
|
49562
49621
|
logger.debug(response.UploadId);
|
|
49563
49622
|
return [2
|
|
@@ -49588,22 +49647,19 @@ function () {
|
|
|
49588
49647
|
/*yield*/
|
|
49589
49648
|
, Promise.all(parts.map(function (part) {
|
|
49590
49649
|
return __awaiter(_this, void 0, void 0, function () {
|
|
49591
|
-
var
|
|
49650
|
+
var options, _a, Key, Bucket, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, res;
|
|
49592
49651
|
|
|
49593
49652
|
return __generator(this, function (_b) {
|
|
49594
49653
|
switch (_b.label) {
|
|
49595
49654
|
case 0:
|
|
49596
49655
|
this.setupEventListener(part);
|
|
49656
|
+
options = {
|
|
49657
|
+
emitter: part.emitter
|
|
49658
|
+
};
|
|
49659
|
+
_a = this.params, Key = _a.Key, Bucket = _a.Bucket, SSECustomerAlgorithm = _a.SSECustomerAlgorithm, SSECustomerKey = _a.SSECustomerKey, SSECustomerKeyMD5 = _a.SSECustomerKeyMD5;
|
|
49597
49660
|
return [4
|
|
49598
49661
|
/*yield*/
|
|
49599
|
-
, this.
|
|
49600
|
-
|
|
49601
|
-
case 1:
|
|
49602
|
-
s3 = _b.sent();
|
|
49603
|
-
_a = this.params, Key = _a.Key, Bucket = _a.Bucket, SSECustomerAlgorithm = _a.SSECustomerAlgorithm, SSECustomerKey = _a.SSECustomerKey, SSECustomerKeyMD5 = _a.SSECustomerKeyMD5;
|
|
49604
|
-
return [2
|
|
49605
|
-
/*return*/
|
|
49606
|
-
, s3.send(new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["UploadPartCommand"](__assign(__assign(__assign({
|
|
49662
|
+
, this.s3client.send(new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["UploadPartCommand"](__assign(__assign(__assign({
|
|
49607
49663
|
PartNumber: part.partNumber,
|
|
49608
49664
|
Body: part.bodyPart,
|
|
49609
49665
|
UploadId: uploadId,
|
|
@@ -49615,7 +49671,13 @@ function () {
|
|
|
49615
49671
|
SSECustomerKey: SSECustomerKey
|
|
49616
49672
|
}), SSECustomerKeyMD5 && {
|
|
49617
49673
|
SSECustomerKeyMD5: SSECustomerKeyMD5
|
|
49618
|
-
})))];
|
|
49674
|
+
})), options)];
|
|
49675
|
+
|
|
49676
|
+
case 1:
|
|
49677
|
+
res = _b.sent();
|
|
49678
|
+
return [2
|
|
49679
|
+
/*return*/
|
|
49680
|
+
, res];
|
|
49619
49681
|
}
|
|
49620
49682
|
});
|
|
49621
49683
|
});
|
|
@@ -49654,7 +49716,7 @@ function () {
|
|
|
49654
49716
|
|
|
49655
49717
|
AWSS3ProviderManagedUpload.prototype.finishMultiPartUpload = function (uploadId) {
|
|
49656
49718
|
return __awaiter(this, void 0, void 0, function () {
|
|
49657
|
-
var input, completeUploadCommand,
|
|
49719
|
+
var input, completeUploadCommand, data, error_2;
|
|
49658
49720
|
return __generator(this, function (_a) {
|
|
49659
49721
|
switch (_a.label) {
|
|
49660
49722
|
case 0:
|
|
@@ -49667,28 +49729,22 @@ function () {
|
|
|
49667
49729
|
}
|
|
49668
49730
|
};
|
|
49669
49731
|
completeUploadCommand = new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["CompleteMultipartUploadCommand"](input);
|
|
49670
|
-
|
|
49671
|
-
/*yield*/
|
|
49672
|
-
, this._createNewS3Client(this.opts)];
|
|
49732
|
+
_a.label = 1;
|
|
49673
49733
|
|
|
49674
49734
|
case 1:
|
|
49675
|
-
|
|
49676
|
-
_a.label = 2;
|
|
49677
|
-
|
|
49678
|
-
case 2:
|
|
49679
|
-
_a.trys.push([2, 4,, 5]);
|
|
49735
|
+
_a.trys.push([1, 3,, 4]);
|
|
49680
49736
|
|
|
49681
49737
|
return [4
|
|
49682
49738
|
/*yield*/
|
|
49683
|
-
,
|
|
49739
|
+
, this.s3client.send(completeUploadCommand)];
|
|
49684
49740
|
|
|
49685
|
-
case
|
|
49741
|
+
case 2:
|
|
49686
49742
|
data = _a.sent();
|
|
49687
49743
|
return [2
|
|
49688
49744
|
/*return*/
|
|
49689
49745
|
, data.Key];
|
|
49690
49746
|
|
|
49691
|
-
case
|
|
49747
|
+
case 3:
|
|
49692
49748
|
error_2 = _a.sent();
|
|
49693
49749
|
logger.error('error happened while finishing the upload. Cancelling the multipart upload', error_2);
|
|
49694
49750
|
this.cancelUpload();
|
|
@@ -49696,7 +49752,7 @@ function () {
|
|
|
49696
49752
|
/*return*/
|
|
49697
49753
|
];
|
|
49698
49754
|
|
|
49699
|
-
case
|
|
49755
|
+
case 4:
|
|
49700
49756
|
return [2
|
|
49701
49757
|
/*return*/
|
|
49702
49758
|
];
|
|
@@ -49756,7 +49812,7 @@ function () {
|
|
|
49756
49812
|
|
|
49757
49813
|
AWSS3ProviderManagedUpload.prototype.cleanup = function (uploadId) {
|
|
49758
49814
|
return __awaiter(this, void 0, void 0, function () {
|
|
49759
|
-
var input,
|
|
49815
|
+
var input, data;
|
|
49760
49816
|
return __generator(this, function (_a) {
|
|
49761
49817
|
switch (_a.label) {
|
|
49762
49818
|
case 0:
|
|
@@ -49772,22 +49828,16 @@ function () {
|
|
|
49772
49828
|
};
|
|
49773
49829
|
return [4
|
|
49774
49830
|
/*yield*/
|
|
49775
|
-
, this.
|
|
49831
|
+
, this.s3client.send(new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["AbortMultipartUploadCommand"](input))];
|
|
49776
49832
|
|
|
49777
49833
|
case 1:
|
|
49778
|
-
s3 = _a.sent();
|
|
49779
|
-
return [4
|
|
49780
|
-
/*yield*/
|
|
49781
|
-
, s3.send(new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["AbortMultipartUploadCommand"](input))];
|
|
49782
|
-
|
|
49783
|
-
case 2:
|
|
49784
49834
|
_a.sent();
|
|
49785
49835
|
|
|
49786
49836
|
return [4
|
|
49787
49837
|
/*yield*/
|
|
49788
|
-
,
|
|
49838
|
+
, this.s3client.send(new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["ListPartsCommand"](input))];
|
|
49789
49839
|
|
|
49790
|
-
case
|
|
49840
|
+
case 2:
|
|
49791
49841
|
data = _a.sent();
|
|
49792
49842
|
|
|
49793
49843
|
if (data && data.Parts && data.Parts.length > 0) {
|
|
@@ -49880,68 +49930,12 @@ function () {
|
|
|
49880
49930
|
|
|
49881
49931
|
return false;
|
|
49882
49932
|
};
|
|
49883
|
-
/**
|
|
49884
|
-
* @private
|
|
49885
|
-
* creates an S3 client with new V3 aws sdk
|
|
49886
|
-
*/
|
|
49887
|
-
|
|
49888
49933
|
|
|
49889
49934
|
AWSS3ProviderManagedUpload.prototype._createNewS3Client = function (config, emitter) {
|
|
49890
|
-
|
|
49891
|
-
|
|
49892
|
-
|
|
49893
|
-
|
|
49894
|
-
case 0:
|
|
49895
|
-
return [4
|
|
49896
|
-
/*yield*/
|
|
49897
|
-
, this._getCredentials()];
|
|
49898
|
-
|
|
49899
|
-
case 1:
|
|
49900
|
-
credentials = _a.sent();
|
|
49901
|
-
region = config.region, dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting, cancelTokenSource = config.cancelTokenSource, useAccelerateEndpoint = config.useAccelerateEndpoint;
|
|
49902
|
-
localTestingConfig = {};
|
|
49903
|
-
|
|
49904
|
-
if (dangerouslyConnectToHttpEndpointForTesting) {
|
|
49905
|
-
localTestingConfig = {
|
|
49906
|
-
endpoint: _common_StorageConstants__WEBPACK_IMPORTED_MODULE_3__["localTestingStorageEndpoint"],
|
|
49907
|
-
tls: false,
|
|
49908
|
-
bucketEndpoint: false,
|
|
49909
|
-
forcePathStyle: true
|
|
49910
|
-
};
|
|
49911
|
-
}
|
|
49912
|
-
|
|
49913
|
-
client = new _aws_sdk_client_s3__WEBPACK_IMPORTED_MODULE_1__["S3Client"](__assign(__assign({
|
|
49914
|
-
region: region,
|
|
49915
|
-
credentials: credentials,
|
|
49916
|
-
useAccelerateEndpoint: useAccelerateEndpoint
|
|
49917
|
-
}, localTestingConfig), {
|
|
49918
|
-
requestHandler: new _axios_http_handler__WEBPACK_IMPORTED_MODULE_2__["AxiosHttpHandler"]({}, emitter, cancelTokenSource),
|
|
49919
|
-
customUserAgent: Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["getAmplifyUserAgent"])()
|
|
49920
|
-
}));
|
|
49921
|
-
client.middlewareStack.remove(_common_StorageConstants__WEBPACK_IMPORTED_MODULE_3__["SET_CONTENT_LENGTH_HEADER"]);
|
|
49922
|
-
client.middlewareStack.add(Object(_common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_5__["createPrefixMiddleware"])(this.opts, this.params.Key), _common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_5__["prefixMiddlewareOptions"]);
|
|
49923
|
-
return [2
|
|
49924
|
-
/*return*/
|
|
49925
|
-
, client];
|
|
49926
|
-
}
|
|
49927
|
-
});
|
|
49928
|
-
});
|
|
49929
|
-
};
|
|
49930
|
-
/**
|
|
49931
|
-
* @private
|
|
49932
|
-
*/
|
|
49933
|
-
|
|
49934
|
-
|
|
49935
|
-
AWSS3ProviderManagedUpload.prototype._getCredentials = function () {
|
|
49936
|
-
return _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Credentials"].get().then(function (credentials) {
|
|
49937
|
-
if (!credentials) return false;
|
|
49938
|
-
var cred = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Credentials"].shear(credentials);
|
|
49939
|
-
logger.debug('set credentials for storage', cred);
|
|
49940
|
-
return cred;
|
|
49941
|
-
})["catch"](function (error) {
|
|
49942
|
-
logger.warn('ensure credentials error', error);
|
|
49943
|
-
return false;
|
|
49944
|
-
});
|
|
49935
|
+
var s3client = Object(_common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_4__["createS3Client"])(config, emitter);
|
|
49936
|
+
s3client.middlewareStack.add(Object(_common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_4__["createPrefixMiddleware"])(this.opts, this.params.Key), _common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_4__["prefixMiddlewareOptions"]);
|
|
49937
|
+
s3client.middlewareStack.add(Object(_common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_4__["autoAdjustClockskewMiddleware"])(s3client.config), _common_S3ClientUtils__WEBPACK_IMPORTED_MODULE_4__["autoAdjustClockskewMiddlewareOptions"]);
|
|
49938
|
+
return s3client;
|
|
49945
49939
|
};
|
|
49946
49940
|
|
|
49947
49941
|
return AWSS3ProviderManagedUpload;
|
|
@@ -51060,8 +51054,10 @@ function () {
|
|
|
51060
51054
|
};
|
|
51061
51055
|
|
|
51062
51056
|
AxiosHttpHandler.prototype.handle = function (request, options) {
|
|
51063
|
-
var requestTimeoutInMs = this.httpOptions.requestTimeout;
|
|
51064
|
-
|
|
51057
|
+
var requestTimeoutInMs = this.httpOptions.requestTimeout; // prioritize the call specific event emitter, this is useful for multipart upload as each individual parts has
|
|
51058
|
+
// their own event emitter, without having to create s3client for every individual calls.
|
|
51059
|
+
|
|
51060
|
+
var emitter = options.emitter || this.emitter;
|
|
51065
51061
|
var path = request.path;
|
|
51066
51062
|
|
|
51067
51063
|
if (request.query) {
|