@aws-amplify/storage 6.0.17-unstable.e316a2e.0 → 6.0.17
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/cjs/providers/s3/apis/internal/getProperties.js +1 -1
- package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/getUrl.js +6 -6
- package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
- package/dist/cjs/providers/s3/apis/internal/list.js +2 -2
- package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +1 -1
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js +25 -25
- package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/base.js +1 -1
- package/dist/cjs/providers/s3/utils/client/base.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/base64/index.native.js +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/base64/index.native.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/contentSha256middleware.js +3 -3
- package/dist/cjs/providers/s3/utils/client/runtime/contentSha256middleware.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/fetch.js +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/fetch.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/xhr.js +4 -4
- package/dist/cjs/providers/s3/utils/client/runtime/s3TransferHandler/xhr.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/xhrTransferHandler.js +4 -4
- package/dist/cjs/providers/s3/utils/client/runtime/xhrTransferHandler.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/dom.js +4 -7
- package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/dom.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/pureJs.js +6 -5
- package/dist/cjs/providers/s3/utils/client/runtime/xmlParser/pureJs.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js +1 -1
- package/dist/cjs/providers/s3/utils/client/utils/deserializeHelpers.js.map +1 -1
- package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js +2 -2
- package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js.map +1 -1
- package/dist/cjs/providers/s3/utils/md5.js +8 -3
- package/dist/cjs/providers/s3/utils/md5.js.map +1 -1
- package/dist/cjs/providers/s3/utils/md5.native.js +6 -2
- package/dist/cjs/providers/s3/utils/md5.native.js.map +1 -1
- package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js +1 -1
- package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js.map +1 -1
- package/dist/cjs/providers/s3/utils/transferTask.js +10 -4
- package/dist/cjs/providers/s3/utils/transferTask.js.map +1 -1
- package/dist/esm/providers/s3/apis/getProperties.d.ts +1 -1
- package/dist/esm/providers/s3/apis/internal/getProperties.mjs +1 -1
- package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/getUrl.mjs +3 -3
- package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/internal/list.d.ts +1 -1
- package/dist/esm/providers/s3/apis/internal/list.mjs +2 -2
- package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/list.d.ts +3 -3
- package/dist/esm/providers/s3/apis/server/list.d.ts +3 -3
- package/dist/esm/providers/s3/apis/uploadData/multipart/getDataChunker.d.ts +2 -2
- package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +4 -4
- package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs +1 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/progressTracker.d.ts +3 -3
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +6 -6
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs +25 -25
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +1 -1
- package/dist/esm/providers/s3/apis/uploadData/multipart/uploadPartExecutor.d.ts +5 -5
- package/dist/esm/providers/s3/types/inputs.d.ts +2 -2
- package/dist/esm/providers/s3/types/options.d.ts +11 -11
- package/dist/esm/providers/s3/types/outputs.d.ts +1 -1
- package/dist/esm/providers/s3/utils/client/abortMultipartUpload.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/base.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/base.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/completeMultipartUpload.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/copyObject.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/copyObject.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/createMultipartUpload.d.ts +3 -3
- package/dist/esm/providers/s3/utils/client/createMultipartUpload.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/deleteObject.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/getObject.d.ts +3 -3
- package/dist/esm/providers/s3/utils/client/getObject.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/headObject.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/listObjectsV2.d.ts +3 -3
- package/dist/esm/providers/s3/utils/client/listParts.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/listParts.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/putObject.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/putObject.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.mjs +2 -2
- package/dist/esm/providers/s3/utils/client/runtime/contentSha256middleware.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs +2 -2
- package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs +6 -6
- package/dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.mjs +4 -4
- package/dist/esm/providers/s3/utils/client/runtime/xhrTransferHandler.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs +4 -7
- package/dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs +6 -5
- package/dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/types.d.ts +11 -22
- package/dist/esm/providers/s3/utils/client/uploadPart.d.ts +2 -2
- package/dist/esm/providers/s3/utils/client/uploadPart.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.d.ts +1 -3
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs +1 -1
- package/dist/esm/providers/s3/utils/client/utils/deserializeHelpers.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs +2 -2
- package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/client/utils/serializeHelpers.d.ts +1 -1
- package/dist/esm/providers/s3/utils/md5.mjs +8 -3
- package/dist/esm/providers/s3/utils/md5.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/md5.native.mjs +6 -2
- package/dist/esm/providers/s3/utils/md5.native.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +4 -4
- package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs +1 -1
- package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs.map +1 -1
- package/dist/esm/providers/s3/utils/transferTask.d.ts +10 -10
- package/dist/esm/providers/s3/utils/transferTask.mjs +10 -4
- package/dist/esm/providers/s3/utils/transferTask.mjs.map +1 -1
- package/dist/esm/types/common.d.ts +7 -7
- package/dist/esm/types/inputs.d.ts +9 -9
- package/dist/esm/types/options.d.ts +2 -2
- package/dist/esm/types/outputs.d.ts +6 -6
- package/dist/esm/utils/resolvePrefix.d.ts +2 -2
- package/package.json +107 -106
- package/src/errors/CanceledError.ts +1 -0
- package/src/errors/utils/assertValidationError.ts +1 -1
- package/src/providers/s3/apis/copy.ts +3 -1
- package/src/providers/s3/apis/downloadData.ts +5 -3
- package/src/providers/s3/apis/getProperties.ts +5 -2
- package/src/providers/s3/apis/getUrl.ts +3 -0
- package/src/providers/s3/apis/internal/copy.ts +5 -4
- package/src/providers/s3/apis/internal/getProperties.ts +8 -6
- package/src/providers/s3/apis/internal/getUrl.ts +11 -9
- package/src/providers/s3/apis/internal/list.ts +13 -10
- package/src/providers/s3/apis/internal/remove.ts +5 -3
- package/src/providers/s3/apis/list.ts +8 -4
- package/src/providers/s3/apis/remove.ts +4 -1
- package/src/providers/s3/apis/server/copy.ts +2 -1
- package/src/providers/s3/apis/server/getProperties.ts +3 -2
- package/src/providers/s3/apis/server/getUrl.ts +2 -1
- package/src/providers/s3/apis/server/list.ts +10 -7
- package/src/providers/s3/apis/server/remove.ts +2 -1
- package/src/providers/s3/apis/uploadData/byteLength.ts +1 -0
- package/src/providers/s3/apis/uploadData/index.ts +5 -2
- package/src/providers/s3/apis/uploadData/multipart/calculatePartSize.ts +1 -0
- package/src/providers/s3/apis/uploadData/multipart/getDataChunker.ts +6 -4
- package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +12 -9
- package/src/providers/s3/apis/uploadData/multipart/progressTracker.ts +5 -4
- package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +15 -12
- package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +42 -36
- package/src/providers/s3/apis/uploadData/multipart/uploadPartExecutor.ts +7 -6
- package/src/providers/s3/apis/uploadData/putObjectJob.ts +2 -2
- package/src/providers/s3/types/inputs.ts +4 -4
- package/src/providers/s3/types/options.ts +11 -11
- package/src/providers/s3/types/outputs.ts +1 -1
- package/src/providers/s3/utils/client/abortMultipartUpload.ts +5 -4
- package/src/providers/s3/utils/client/base.ts +8 -6
- package/src/providers/s3/utils/client/completeMultipartUpload.ts +14 -6
- package/src/providers/s3/utils/client/copyObject.ts +7 -4
- package/src/providers/s3/utils/client/createMultipartUpload.ts +7 -5
- package/src/providers/s3/utils/client/deleteObject.ts +6 -5
- package/src/providers/s3/utils/client/getObject.ts +14 -12
- package/src/providers/s3/utils/client/headObject.ts +6 -5
- package/src/providers/s3/utils/client/listObjectsV2.ts +6 -3
- package/src/providers/s3/utils/client/listParts.ts +9 -6
- package/src/providers/s3/utils/client/putObject.ts +6 -5
- package/src/providers/s3/utils/client/runtime/base64/index.browser.ts +2 -1
- package/src/providers/s3/utils/client/runtime/base64/index.native.ts +1 -1
- package/src/providers/s3/utils/client/runtime/contentSha256middleware.ts +6 -4
- package/src/providers/s3/utils/client/runtime/s3TransferHandler/fetch.ts +7 -5
- package/src/providers/s3/utils/client/runtime/s3TransferHandler/xhr.ts +11 -11
- package/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts +21 -14
- package/src/providers/s3/utils/client/runtime/xmlParser/dom.ts +6 -7
- package/src/providers/s3/utils/client/runtime/xmlParser/pureJs.ts +10 -5
- package/src/providers/s3/utils/client/types.ts +12 -14
- package/src/providers/s3/utils/client/uploadPart.ts +6 -5
- package/src/providers/s3/utils/client/utils/deserializeHelpers.ts +13 -8
- package/src/providers/s3/utils/client/utils/parsePayload.ts +6 -4
- package/src/providers/s3/utils/client/utils/serializeHelpers.ts +8 -5
- package/src/providers/s3/utils/md5.native.ts +9 -3
- package/src/providers/s3/utils/md5.ts +12 -4
- package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +10 -8
- package/src/providers/s3/utils/transferTask.ts +26 -14
- package/src/providers/s3/utils/userAgent.ts +1 -1
- package/src/types/common.ts +7 -7
- package/src/types/inputs.ts +11 -11
- package/src/types/options.ts +2 -2
- package/src/types/outputs.ts +6 -6
- package/src/utils/resolvePrefix.ts +7 -4
|
@@ -9,7 +9,7 @@ const utils_2 = require("../../utils");
|
|
|
9
9
|
const client_1 = require("../../utils/client");
|
|
10
10
|
const userAgent_1 = require("../../utils/userAgent");
|
|
11
11
|
const utils_3 = require("../../../../utils");
|
|
12
|
-
const getProperties = async
|
|
12
|
+
const getProperties = async (amplify, input, action) => {
|
|
13
13
|
const { key, options } = input;
|
|
14
14
|
const { s3Config, bucket, keyPrefix } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, options);
|
|
15
15
|
const finalKey = `${keyPrefix}${key}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getProperties.js","sources":["../../../../../../src/providers/s3/apis/internal/getProperties.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProperties = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst utils_2 = require(\"../../utils\");\nconst client_1 = require(\"../../utils/client\");\nconst userAgent_1 = require(\"../../utils/userAgent\");\nconst utils_3 = require(\"../../../../utils\");\nconst getProperties = async
|
|
1
|
+
{"version":3,"file":"getProperties.js","sources":["../../../../../../src/providers/s3/apis/internal/getProperties.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProperties = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst utils_2 = require(\"../../utils\");\nconst client_1 = require(\"../../utils/client\");\nconst userAgent_1 = require(\"../../utils/userAgent\");\nconst utils_3 = require(\"../../../../utils\");\nconst getProperties = async (amplify, input, action) => {\n const { key, options } = input;\n const { s3Config, bucket, keyPrefix } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, options);\n const finalKey = `${keyPrefix}${key}`;\n utils_3.logger.debug(`get properties of ${key} from ${finalKey}`);\n const response = await (0, client_1.headObject)({\n ...s3Config,\n userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(action ?? utils_1.StorageAction.GetProperties),\n }, {\n Bucket: bucket,\n Key: finalKey,\n });\n return {\n key,\n contentType: response.ContentType,\n size: response.ContentLength,\n eTag: response.ETag,\n lastModified: response.LastModified,\n metadata: response.Metadata,\n versionId: response.VersionId,\n };\n};\nexports.getProperties = getProperties;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;AAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACrD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC7C,MAAM,aAAa,GAAG,OAAO,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK;AACxD,IAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AACnC,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzG,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1C,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtE,IAAI,MAAM,QAAQ,GAAG,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE;AACpD,QAAQ,GAAG,QAAQ;AACnB,QAAQ,cAAc,EAAE,IAAI,WAAW,CAAC,wBAAwB,EAAE,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC;AAChH,KAAK,EAAE;AACP,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,GAAG,EAAE,QAAQ;AACrB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO;AACX,QAAQ,GAAG;AACX,QAAQ,WAAW,EAAE,QAAQ,CAAC,WAAW;AACzC,QAAQ,IAAI,EAAE,QAAQ,CAAC,aAAa;AACpC,QAAQ,IAAI,EAAE,QAAQ,CAAC,IAAI;AAC3B,QAAQ,YAAY,EAAE,QAAQ,CAAC,YAAY;AAC3C,QAAQ,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AACnC,QAAQ,SAAS,EAAE,QAAQ,CAAC,SAAS;AACrC,KAAK,CAAC;AACN,CAAC,CAAC;AACF,OAAO,CAAC,aAAa,GAAG,aAAa;;"}
|
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
// SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getUrl = void 0;
|
|
7
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
7
8
|
const validation_1 = require("../../../../errors/types/validation");
|
|
8
9
|
const client_1 = require("../../utils/client");
|
|
9
|
-
const
|
|
10
|
-
const utils_1 = require("../../utils");
|
|
10
|
+
const utils_2 = require("../../utils");
|
|
11
11
|
const assertValidationError_1 = require("../../../../errors/utils/assertValidationError");
|
|
12
12
|
const constants_1 = require("../../utils/constants");
|
|
13
|
-
const
|
|
14
|
-
const getUrl = async
|
|
13
|
+
const getProperties_1 = require("./getProperties");
|
|
14
|
+
const getUrl = async (amplify, input) => {
|
|
15
15
|
const { key, options } = input;
|
|
16
16
|
if (options?.validateObjectExistence) {
|
|
17
|
-
await (0, getProperties_1.getProperties)(amplify, { key, options },
|
|
17
|
+
await (0, getProperties_1.getProperties)(amplify, { key, options }, utils_1.StorageAction.GetUrl);
|
|
18
18
|
}
|
|
19
|
-
const { s3Config, keyPrefix, bucket } = await (0,
|
|
19
|
+
const { s3Config, keyPrefix, bucket } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, options);
|
|
20
20
|
let urlExpirationInSec = options?.expiresIn ?? constants_1.DEFAULT_PRESIGN_EXPIRATION;
|
|
21
21
|
const awsCredExpiration = s3Config.credentials?.expiration;
|
|
22
22
|
if (awsCredExpiration) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUrl.js","sources":["../../../../../../src/providers/s3/apis/internal/getUrl.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUrl = void 0;\nconst
|
|
1
|
+
{"version":3,"file":"getUrl.js","sources":["../../../../../../src/providers/s3/apis/internal/getUrl.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUrl = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst validation_1 = require(\"../../../../errors/types/validation\");\nconst client_1 = require(\"../../utils/client\");\nconst utils_2 = require(\"../../utils\");\nconst assertValidationError_1 = require(\"../../../../errors/utils/assertValidationError\");\nconst constants_1 = require(\"../../utils/constants\");\nconst getProperties_1 = require(\"./getProperties\");\nconst getUrl = async (amplify, input) => {\n const { key, options } = input;\n if (options?.validateObjectExistence) {\n await (0, getProperties_1.getProperties)(amplify, { key, options }, utils_1.StorageAction.GetUrl);\n }\n const { s3Config, keyPrefix, bucket } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, options);\n let urlExpirationInSec = options?.expiresIn ?? constants_1.DEFAULT_PRESIGN_EXPIRATION;\n const awsCredExpiration = s3Config.credentials?.expiration;\n if (awsCredExpiration) {\n const awsCredExpirationInSec = Math.floor((awsCredExpiration.getTime() - Date.now()) / 1000);\n urlExpirationInSec = Math.min(awsCredExpirationInSec, urlExpirationInSec);\n }\n const maxUrlExpirationInSec = constants_1.MAX_URL_EXPIRATION / 1000;\n (0, assertValidationError_1.assertValidationError)(urlExpirationInSec <= maxUrlExpirationInSec, validation_1.StorageValidationErrorCode.UrlExpirationMaxLimitExceed);\n // expiresAt is the minimum of credential expiration and url expiration\n return {\n url: await (0, client_1.getPresignedGetObjectUrl)({\n ...s3Config,\n expiration: urlExpirationInSec,\n }, {\n Bucket: bucket,\n Key: `${keyPrefix}${key}`,\n }),\n expiresAt: new Date(Date.now() + urlExpirationInSec * 1000),\n };\n};\nexports.getUrl = getUrl;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;AACxB,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACvC,MAAM,uBAAuB,GAAG,OAAO,CAAC,gDAAgD,CAAC,CAAC;AAC1F,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACrD,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,OAAO,OAAO,EAAE,KAAK,KAAK;AACzC,IAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AACnC,IAAI,IAAI,OAAO,EAAE,uBAAuB,EAAE;AAC1C,QAAQ,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1G,KAAK;AACL,IAAI,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzG,IAAI,IAAI,kBAAkB,GAAG,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,0BAA0B,CAAC;AAC1F,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;AAC/D,IAAI,IAAI,iBAAiB,EAAE;AAC3B,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC;AACrG,QAAQ,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AAClF,KAAK;AACL,IAAI,MAAM,qBAAqB,GAAG,WAAW,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACxE,IAAI,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,kBAAkB,IAAI,qBAAqB,EAAE,YAAY,CAAC,0BAA0B,CAAC,2BAA2B,CAAC,CAAC;AACzK;AACA,IAAI,OAAO;AACX,QAAQ,GAAG,EAAE,MAAM,IAAI,QAAQ,CAAC,wBAAwB,EAAE;AAC1D,YAAY,GAAG,QAAQ;AACvB,YAAY,UAAU,EAAE,kBAAkB;AAC1C,SAAS,EAAE;AACX,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;AACrC,SAAS,CAAC;AACV,QAAQ,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,GAAG,IAAI,CAAC;AACnE,KAAK,CAAC;AACN,CAAC,CAAC;AACF,OAAO,CAAC,MAAM,GAAG,MAAM;;"}
|
|
@@ -26,8 +26,8 @@ const list = async (amplify, input) => {
|
|
|
26
26
|
};
|
|
27
27
|
utils_3.logger.debug(`listing items from "${listParams.Prefix}"`);
|
|
28
28
|
return options.listAll
|
|
29
|
-
?
|
|
30
|
-
:
|
|
29
|
+
? _listAll({ s3Config, listParams, prefix })
|
|
30
|
+
: _list({ s3Config, listParams, prefix });
|
|
31
31
|
};
|
|
32
32
|
exports.list = list;
|
|
33
33
|
const _listAll = async ({ s3Config, listParams, prefix, }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../../../../../src/providers/s3/apis/internal/list.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.list = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst utils_2 = require(\"../../utils\");\nconst client_1 = require(\"../../utils/client\");\nconst userAgent_1 = require(\"../../utils/userAgent\");\nconst utils_3 = require(\"../../../../utils\");\nconst MAX_PAGE_SIZE = 1000;\nconst list = async (amplify, input) => {\n const { options = {}, prefix: path = '' } = input ?? {};\n const { s3Config, bucket, keyPrefix: prefix, } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, options);\n // @ts-expect-error pageSize and nextToken should not coexist with listAll\n if (options?.listAll && (options?.pageSize || options?.nextToken)) {\n const anyOptions = options;\n utils_3.logger.debug(`listAll is set to true, ignoring ${anyOptions?.pageSize ? `pageSize: ${anyOptions?.pageSize}` : ''} ${anyOptions?.nextToken ? `nextToken: ${anyOptions?.nextToken}` : ''}.`);\n }\n const listParams = {\n Bucket: bucket,\n Prefix: `${prefix}${path}`,\n MaxKeys: options?.listAll ? undefined : options?.pageSize,\n ContinuationToken: options?.listAll ? undefined : options?.nextToken,\n };\n utils_3.logger.debug(`listing items from \"${listParams.Prefix}\"`);\n return options.listAll\n ?
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../../../../src/providers/s3/apis/internal/list.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.list = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst utils_2 = require(\"../../utils\");\nconst client_1 = require(\"../../utils/client\");\nconst userAgent_1 = require(\"../../utils/userAgent\");\nconst utils_3 = require(\"../../../../utils\");\nconst MAX_PAGE_SIZE = 1000;\nconst list = async (amplify, input) => {\n const { options = {}, prefix: path = '' } = input ?? {};\n const { s3Config, bucket, keyPrefix: prefix, } = await (0, utils_2.resolveS3ConfigAndInput)(amplify, options);\n // @ts-expect-error pageSize and nextToken should not coexist with listAll\n if (options?.listAll && (options?.pageSize || options?.nextToken)) {\n const anyOptions = options;\n utils_3.logger.debug(`listAll is set to true, ignoring ${anyOptions?.pageSize ? `pageSize: ${anyOptions?.pageSize}` : ''} ${anyOptions?.nextToken ? `nextToken: ${anyOptions?.nextToken}` : ''}.`);\n }\n const listParams = {\n Bucket: bucket,\n Prefix: `${prefix}${path}`,\n MaxKeys: options?.listAll ? undefined : options?.pageSize,\n ContinuationToken: options?.listAll ? undefined : options?.nextToken,\n };\n utils_3.logger.debug(`listing items from \"${listParams.Prefix}\"`);\n return options.listAll\n ? _listAll({ s3Config, listParams, prefix })\n : _list({ s3Config, listParams, prefix });\n};\nexports.list = list;\nconst _listAll = async ({ s3Config, listParams, prefix, }) => {\n const listResult = [];\n let continuationToken = listParams.ContinuationToken;\n do {\n const { items: pageResults, nextToken: pageNextToken } = await _list({\n prefix,\n s3Config,\n listParams: {\n ...listParams,\n ContinuationToken: continuationToken,\n MaxKeys: MAX_PAGE_SIZE,\n },\n });\n listResult.push(...pageResults);\n continuationToken = pageNextToken;\n } while (continuationToken);\n return {\n items: listResult,\n };\n};\nconst _list = async ({ s3Config, listParams, prefix, }) => {\n const listParamsClone = { ...listParams };\n if (!listParamsClone.MaxKeys || listParamsClone.MaxKeys > MAX_PAGE_SIZE) {\n utils_3.logger.debug(`defaulting pageSize to ${MAX_PAGE_SIZE}.`);\n listParamsClone.MaxKeys = MAX_PAGE_SIZE;\n }\n const response = await (0, client_1.listObjectsV2)({\n ...s3Config,\n userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.List),\n }, listParamsClone);\n if (!response?.Contents) {\n return {\n items: [],\n };\n }\n const listResult = response.Contents.map(item => ({\n key: item.Key.substring(prefix.length),\n eTag: item.ETag,\n lastModified: item.LastModified,\n size: item.Size,\n }));\n return {\n items: listResult,\n nextToken: response.NextContinuationToken,\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
// SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.loadOrCreateMultipartUpload = void 0;
|
|
7
|
-
const uploadCache_1 = require("./uploadCache");
|
|
8
7
|
const client_1 = require("../../../utils/client");
|
|
9
8
|
const utils_1 = require("../../../../../utils");
|
|
9
|
+
const uploadCache_1 = require("./uploadCache");
|
|
10
10
|
/**
|
|
11
11
|
* Load the in-progress multipart upload from local storage or async storage(RN) if it exists, or create a new multipart
|
|
12
12
|
* upload.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialUpload.js","sources":["../../../../../../../src/providers/s3/apis/uploadData/multipart/initialUpload.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadOrCreateMultipartUpload = void 0;\nconst
|
|
1
|
+
{"version":3,"file":"initialUpload.js","sources":["../../../../../../../src/providers/s3/apis/uploadData/multipart/initialUpload.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadOrCreateMultipartUpload = void 0;\nconst client_1 = require(\"../../../utils/client\");\nconst utils_1 = require(\"../../../../../utils\");\nconst uploadCache_1 = require(\"./uploadCache\");\n/**\n * Load the in-progress multipart upload from local storage or async storage(RN) if it exists, or create a new multipart\n * upload.\n *\n * @internal\n */\nconst loadOrCreateMultipartUpload = async ({ s3Config, data, size, contentType, bucket, accessLevel, keyPrefix, key, contentDisposition, contentEncoding, metadata, abortSignal, }) => {\n const finalKey = keyPrefix + key;\n let cachedUpload;\n if (size === undefined) {\n utils_1.logger.debug('uploaded data size cannot be determined, skipping cache.');\n cachedUpload = undefined;\n }\n else {\n const uploadCacheKey = (0, uploadCache_1.getUploadsCacheKey)({\n size,\n contentType,\n file: data instanceof File ? data : undefined,\n bucket,\n accessLevel,\n key,\n });\n const cachedUploadParts = await (0, uploadCache_1.findCachedUploadParts)({\n s3Config,\n cacheKey: uploadCacheKey,\n bucket,\n finalKey,\n });\n cachedUpload = cachedUploadParts\n ? { ...cachedUploadParts, uploadCacheKey }\n : undefined;\n }\n if (cachedUpload) {\n return {\n uploadId: cachedUpload.uploadId,\n cachedParts: cachedUpload.parts,\n };\n }\n else {\n const { UploadId } = await (0, client_1.createMultipartUpload)({\n ...s3Config,\n abortSignal,\n }, {\n Bucket: bucket,\n Key: finalKey,\n ContentType: contentType,\n ContentDisposition: contentDisposition,\n ContentEncoding: contentEncoding,\n Metadata: metadata,\n });\n if (size === undefined) {\n utils_1.logger.debug('uploaded data size cannot be determined, skipping cache.');\n return {\n uploadId: UploadId,\n cachedParts: [],\n };\n }\n const uploadCacheKey = (0, uploadCache_1.getUploadsCacheKey)({\n size,\n contentType,\n file: data instanceof File ? data : undefined,\n bucket,\n accessLevel,\n key,\n });\n await (0, uploadCache_1.cacheMultipartUpload)(uploadCacheKey, {\n uploadId: UploadId,\n bucket,\n key,\n fileName: data instanceof File ? data.name : '',\n });\n return {\n uploadId: UploadId,\n cachedParts: [],\n };\n }\n};\nexports.loadOrCreateMultipartUpload = loadOrCreateMultipartUpload;\n"],"names":[],"mappings":"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"}
|
|
@@ -6,18 +6,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getMultipartUploadHandlers = void 0;
|
|
7
7
|
const core_1 = require("@aws-amplify/core");
|
|
8
8
|
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
9
|
-
const getDataChunker_1 = require("./getDataChunker");
|
|
10
9
|
const utils_2 = require("../../../utils");
|
|
11
10
|
const constants_1 = require("../../../utils/constants");
|
|
12
|
-
const initialUpload_1 = require("./initialUpload");
|
|
13
|
-
const progressTracker_1 = require("./progressTracker");
|
|
14
|
-
const uploadCache_1 = require("./uploadCache");
|
|
15
|
-
const uploadPartExecutor_1 = require("./uploadPartExecutor");
|
|
16
11
|
const StorageError_1 = require("../../../../../errors/StorageError");
|
|
17
12
|
const CanceledError_1 = require("../../../../../errors/CanceledError");
|
|
18
13
|
const client_1 = require("../../../utils/client");
|
|
19
14
|
const userAgent_1 = require("../../../utils/userAgent");
|
|
20
15
|
const utils_3 = require("../../../../../utils");
|
|
16
|
+
const uploadPartExecutor_1 = require("./uploadPartExecutor");
|
|
17
|
+
const uploadCache_1 = require("./uploadCache");
|
|
18
|
+
const progressTracker_1 = require("./progressTracker");
|
|
19
|
+
const initialUpload_1 = require("./initialUpload");
|
|
20
|
+
const getDataChunker_1 = require("./getDataChunker");
|
|
21
21
|
/**
|
|
22
22
|
* Create closure hiding the multipart upload implementation details and expose the upload job and control functions(
|
|
23
23
|
* onPause, onResume, onCancel).
|
|
@@ -28,10 +28,10 @@ const getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, s
|
|
|
28
28
|
let resolveCallback;
|
|
29
29
|
let rejectCallback;
|
|
30
30
|
let inProgressUpload;
|
|
31
|
-
let
|
|
31
|
+
let resolvedS3Config;
|
|
32
32
|
let abortController;
|
|
33
|
-
let
|
|
34
|
-
let
|
|
33
|
+
let resolvedBucket;
|
|
34
|
+
let resolvedKeyPrefix;
|
|
35
35
|
let uploadCacheKey;
|
|
36
36
|
// Special flag that differentiates HTTP requests abort error caused by pause() from ones caused by cancel().
|
|
37
37
|
// The former one should NOT cause the upload job to throw, but cancels any pending HTTP requests.
|
|
@@ -39,18 +39,18 @@ const getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, s
|
|
|
39
39
|
let isAbortSignalFromPause = false;
|
|
40
40
|
const startUpload = async () => {
|
|
41
41
|
const resolvedS3Options = await (0, utils_2.resolveS3ConfigAndInput)(core_1.Amplify, uploadDataOptions);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
resolvedS3Config = resolvedS3Options.s3Config;
|
|
43
|
+
resolvedBucket = resolvedS3Options.bucket;
|
|
44
|
+
resolvedKeyPrefix = resolvedS3Options.keyPrefix;
|
|
45
45
|
abortController = new AbortController();
|
|
46
46
|
isAbortSignalFromPause = false;
|
|
47
47
|
const { contentDisposition, contentEncoding, contentType = 'application/octet-stream', metadata, accessLevel, onProgress, } = uploadDataOptions ?? {};
|
|
48
48
|
if (!inProgressUpload) {
|
|
49
49
|
const { uploadId, cachedParts } = await (0, initialUpload_1.loadOrCreateMultipartUpload)({
|
|
50
|
-
s3Config,
|
|
50
|
+
s3Config: resolvedS3Config,
|
|
51
51
|
accessLevel: resolveAccessLevel(accessLevel),
|
|
52
|
-
bucket,
|
|
53
|
-
keyPrefix,
|
|
52
|
+
bucket: resolvedBucket,
|
|
53
|
+
keyPrefix: resolvedKeyPrefix,
|
|
54
54
|
key,
|
|
55
55
|
contentType,
|
|
56
56
|
contentDisposition,
|
|
@@ -65,13 +65,13 @@ const getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, s
|
|
|
65
65
|
completedParts: cachedParts,
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
-
const finalKey =
|
|
68
|
+
const finalKey = resolvedKeyPrefix + key;
|
|
69
69
|
uploadCacheKey = size
|
|
70
70
|
? (0, uploadCache_1.getUploadsCacheKey)({
|
|
71
71
|
file: data instanceof File ? data : undefined,
|
|
72
72
|
accessLevel: resolveAccessLevel(uploadDataOptions?.accessLevel),
|
|
73
73
|
contentType: uploadDataOptions?.contentType,
|
|
74
|
-
bucket:
|
|
74
|
+
bucket: resolvedBucket,
|
|
75
75
|
size,
|
|
76
76
|
key,
|
|
77
77
|
})
|
|
@@ -93,9 +93,9 @@ const getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, s
|
|
|
93
93
|
concurrentUploadPartExecutors.push((0, uploadPartExecutor_1.uploadPartExecutor)({
|
|
94
94
|
dataChunkerGenerator: dataChunker,
|
|
95
95
|
completedPartNumberSet,
|
|
96
|
-
s3Config,
|
|
96
|
+
s3Config: resolvedS3Config,
|
|
97
97
|
abortSignal: abortController.signal,
|
|
98
|
-
bucket,
|
|
98
|
+
bucket: resolvedBucket,
|
|
99
99
|
finalKey,
|
|
100
100
|
uploadId: inProgressUpload.uploadId,
|
|
101
101
|
onPartUploadCompletion,
|
|
@@ -105,11 +105,11 @@ const getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, s
|
|
|
105
105
|
}
|
|
106
106
|
await Promise.all(concurrentUploadPartExecutors);
|
|
107
107
|
const { ETag: eTag } = await (0, client_1.completeMultipartUpload)({
|
|
108
|
-
...
|
|
108
|
+
...resolvedS3Config,
|
|
109
109
|
abortSignal: abortController.signal,
|
|
110
110
|
userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.UploadData),
|
|
111
111
|
}, {
|
|
112
|
-
Bucket:
|
|
112
|
+
Bucket: resolvedBucket,
|
|
113
113
|
Key: finalKey,
|
|
114
114
|
UploadId: inProgressUpload.uploadId,
|
|
115
115
|
MultipartUpload: {
|
|
@@ -117,8 +117,8 @@ const getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, s
|
|
|
117
117
|
},
|
|
118
118
|
});
|
|
119
119
|
if (size) {
|
|
120
|
-
const { ContentLength: uploadedObjectSize } = await (0, client_1.headObject)(
|
|
121
|
-
Bucket:
|
|
120
|
+
const { ContentLength: uploadedObjectSize } = await (0, client_1.headObject)(resolvedS3Config, {
|
|
121
|
+
Bucket: resolvedBucket,
|
|
122
122
|
Key: finalKey,
|
|
123
123
|
});
|
|
124
124
|
if (uploadedObjectSize && uploadedObjectSize !== size) {
|
|
@@ -171,9 +171,9 @@ const getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, s
|
|
|
171
171
|
await (0, uploadCache_1.removeCachedUpload)(uploadCacheKey);
|
|
172
172
|
}
|
|
173
173
|
// 3. clear multipart upload on server side.
|
|
174
|
-
await (0, client_1.abortMultipartUpload)(
|
|
175
|
-
Bucket:
|
|
176
|
-
Key:
|
|
174
|
+
await (0, client_1.abortMultipartUpload)(resolvedS3Config, {
|
|
175
|
+
Bucket: resolvedBucket,
|
|
176
|
+
Key: resolvedKeyPrefix + key,
|
|
177
177
|
UploadId: inProgressUpload?.uploadId,
|
|
178
178
|
});
|
|
179
179
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadHandlers.js","sources":["../../../../../../../src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMultipartUploadHandlers = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst getDataChunker_1 = require(\"./getDataChunker\");\nconst utils_2 = require(\"../../../utils\");\nconst constants_1 = require(\"../../../utils/constants\");\nconst initialUpload_1 = require(\"./initialUpload\");\nconst progressTracker_1 = require(\"./progressTracker\");\nconst uploadCache_1 = require(\"./uploadCache\");\nconst uploadPartExecutor_1 = require(\"./uploadPartExecutor\");\nconst StorageError_1 = require(\"../../../../../errors/StorageError\");\nconst CanceledError_1 = require(\"../../../../../errors/CanceledError\");\nconst client_1 = require(\"../../../utils/client\");\nconst userAgent_1 = require(\"../../../utils/userAgent\");\nconst utils_3 = require(\"../../../../../utils\");\n/**\n * Create closure hiding the multipart upload implementation details and expose the upload job and control functions(\n * onPause, onResume, onCancel).\n *\n * @internal\n */\nconst getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, size) => {\n let resolveCallback;\n let rejectCallback;\n let inProgressUpload;\n let s3Config;\n let abortController;\n let bucket;\n let keyPrefix;\n let uploadCacheKey;\n // Special flag that differentiates HTTP requests abort error caused by pause() from ones caused by cancel().\n // The former one should NOT cause the upload job to throw, but cancels any pending HTTP requests.\n // This should be replaced by a special abort reason. However,the support of this API is lagged behind.\n let isAbortSignalFromPause = false;\n const startUpload = async () => {\n const resolvedS3Options = await (0, utils_2.resolveS3ConfigAndInput)(core_1.Amplify, uploadDataOptions);\n s3Config = resolvedS3Options.s3Config;\n bucket = resolvedS3Options.bucket;\n keyPrefix = resolvedS3Options.keyPrefix;\n abortController = new AbortController();\n isAbortSignalFromPause = false;\n const { contentDisposition, contentEncoding, contentType = 'application/octet-stream', metadata, accessLevel, onProgress, } = uploadDataOptions ?? {};\n if (!inProgressUpload) {\n const { uploadId, cachedParts } = await (0, initialUpload_1.loadOrCreateMultipartUpload)({\n s3Config,\n accessLevel: resolveAccessLevel(accessLevel),\n bucket,\n keyPrefix,\n key,\n contentType,\n contentDisposition,\n contentEncoding,\n metadata,\n data,\n size,\n abortSignal: abortController.signal,\n });\n inProgressUpload = {\n uploadId,\n completedParts: cachedParts,\n };\n }\n const finalKey = keyPrefix + key;\n uploadCacheKey = size\n ? (0, uploadCache_1.getUploadsCacheKey)({\n file: data instanceof File ? data : undefined,\n accessLevel: resolveAccessLevel(uploadDataOptions?.accessLevel),\n contentType: uploadDataOptions?.contentType,\n bucket: bucket,\n size,\n key,\n })\n : undefined;\n const dataChunker = (0, getDataChunker_1.getDataChunker)(data, size);\n const completedPartNumberSet = new Set(inProgressUpload.completedParts.map(({ PartNumber }) => PartNumber));\n const onPartUploadCompletion = (partNumber, eTag) => {\n inProgressUpload?.completedParts.push({\n PartNumber: partNumber,\n ETag: eTag,\n });\n };\n const concurrentUploadsProgressTracker = (0, progressTracker_1.getConcurrentUploadsProgressTracker)({\n size,\n onProgress,\n });\n const concurrentUploadPartExecutors = [];\n for (let index = 0; index < constants_1.DEFAULT_QUEUE_SIZE; index++) {\n concurrentUploadPartExecutors.push((0, uploadPartExecutor_1.uploadPartExecutor)({\n dataChunkerGenerator: dataChunker,\n completedPartNumberSet,\n s3Config,\n abortSignal: abortController.signal,\n bucket,\n finalKey,\n uploadId: inProgressUpload.uploadId,\n onPartUploadCompletion,\n onProgress: concurrentUploadsProgressTracker.getOnProgressListener(),\n isObjectLockEnabled: resolvedS3Options.isObjectLockEnabled,\n }));\n }\n await Promise.all(concurrentUploadPartExecutors);\n const { ETag: eTag } = await (0, client_1.completeMultipartUpload)({\n ...s3Config,\n abortSignal: abortController.signal,\n userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.UploadData),\n }, {\n Bucket: bucket,\n Key: finalKey,\n UploadId: inProgressUpload.uploadId,\n MultipartUpload: {\n Parts: inProgressUpload.completedParts.sort((partA, partB) => partA.PartNumber - partB.PartNumber),\n },\n });\n if (size) {\n const { ContentLength: uploadedObjectSize } = await (0, client_1.headObject)(s3Config, {\n Bucket: bucket,\n Key: finalKey,\n });\n if (uploadedObjectSize && uploadedObjectSize !== size) {\n throw new StorageError_1.StorageError({\n name: 'Error',\n message: `Upload failed. Expected object size ${size}, but got ${uploadedObjectSize}.`,\n });\n }\n }\n if (uploadCacheKey) {\n await (0, uploadCache_1.removeCachedUpload)(uploadCacheKey);\n }\n return {\n key,\n eTag,\n contentType,\n metadata,\n };\n };\n const startUploadWithResumability = () => startUpload()\n .then(resolveCallback)\n .catch(error => {\n const abortSignal = abortController?.signal;\n if (abortSignal?.aborted && isAbortSignalFromPause) {\n utils_3.logger.debug('upload paused.');\n }\n else {\n // Uncaught errors should be exposed to the users.\n rejectCallback(error);\n }\n });\n const multipartUploadJob = () => new Promise((resolve, reject) => {\n resolveCallback = resolve;\n rejectCallback = reject;\n startUploadWithResumability();\n });\n const onPause = () => {\n isAbortSignalFromPause = true;\n abortController?.abort();\n };\n const onResume = () => {\n startUploadWithResumability();\n };\n const onCancel = (message) => {\n // 1. abort in-flight API requests\n abortController?.abort(message);\n const cancelUpload = async () => {\n // 2. clear upload cache.\n if (uploadCacheKey) {\n await (0, uploadCache_1.removeCachedUpload)(uploadCacheKey);\n }\n // 3. clear multipart upload on server side.\n await (0, client_1.abortMultipartUpload)(s3Config, {\n Bucket: bucket,\n Key: keyPrefix + key,\n UploadId: inProgressUpload?.uploadId,\n });\n };\n cancelUpload().catch(e => {\n utils_3.logger.debug('error when cancelling upload task.', e);\n });\n rejectCallback(\n // Internal error that should not be exposed to the users. They should use isCancelError() to check if\n // the error is caused by cancel().\n new CanceledError_1.CanceledError(message ? { message } : undefined));\n };\n return {\n multipartUploadJob,\n onPause,\n onResume,\n onCancel,\n };\n};\nexports.getMultipartUploadHandlers = getMultipartUploadHandlers;\nconst resolveAccessLevel = (accessLevel) => accessLevel ??\n core_1.Amplify.libraryOptions.Storage?.S3?.defaultAccessLevel ??\n constants_1.DEFAULT_ACCESS_LEVEL;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"uploadHandlers.js","sources":["../../../../../../../src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMultipartUploadHandlers = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst utils_2 = require(\"../../../utils\");\nconst constants_1 = require(\"../../../utils/constants\");\nconst StorageError_1 = require(\"../../../../../errors/StorageError\");\nconst CanceledError_1 = require(\"../../../../../errors/CanceledError\");\nconst client_1 = require(\"../../../utils/client\");\nconst userAgent_1 = require(\"../../../utils/userAgent\");\nconst utils_3 = require(\"../../../../../utils\");\nconst uploadPartExecutor_1 = require(\"./uploadPartExecutor\");\nconst uploadCache_1 = require(\"./uploadCache\");\nconst progressTracker_1 = require(\"./progressTracker\");\nconst initialUpload_1 = require(\"./initialUpload\");\nconst getDataChunker_1 = require(\"./getDataChunker\");\n/**\n * Create closure hiding the multipart upload implementation details and expose the upload job and control functions(\n * onPause, onResume, onCancel).\n *\n * @internal\n */\nconst getMultipartUploadHandlers = ({ options: uploadDataOptions, key, data }, size) => {\n let resolveCallback;\n let rejectCallback;\n let inProgressUpload;\n let resolvedS3Config;\n let abortController;\n let resolvedBucket;\n let resolvedKeyPrefix;\n let uploadCacheKey;\n // Special flag that differentiates HTTP requests abort error caused by pause() from ones caused by cancel().\n // The former one should NOT cause the upload job to throw, but cancels any pending HTTP requests.\n // This should be replaced by a special abort reason. However,the support of this API is lagged behind.\n let isAbortSignalFromPause = false;\n const startUpload = async () => {\n const resolvedS3Options = await (0, utils_2.resolveS3ConfigAndInput)(core_1.Amplify, uploadDataOptions);\n resolvedS3Config = resolvedS3Options.s3Config;\n resolvedBucket = resolvedS3Options.bucket;\n resolvedKeyPrefix = resolvedS3Options.keyPrefix;\n abortController = new AbortController();\n isAbortSignalFromPause = false;\n const { contentDisposition, contentEncoding, contentType = 'application/octet-stream', metadata, accessLevel, onProgress, } = uploadDataOptions ?? {};\n if (!inProgressUpload) {\n const { uploadId, cachedParts } = await (0, initialUpload_1.loadOrCreateMultipartUpload)({\n s3Config: resolvedS3Config,\n accessLevel: resolveAccessLevel(accessLevel),\n bucket: resolvedBucket,\n keyPrefix: resolvedKeyPrefix,\n key,\n contentType,\n contentDisposition,\n contentEncoding,\n metadata,\n data,\n size,\n abortSignal: abortController.signal,\n });\n inProgressUpload = {\n uploadId,\n completedParts: cachedParts,\n };\n }\n const finalKey = resolvedKeyPrefix + key;\n uploadCacheKey = size\n ? (0, uploadCache_1.getUploadsCacheKey)({\n file: data instanceof File ? data : undefined,\n accessLevel: resolveAccessLevel(uploadDataOptions?.accessLevel),\n contentType: uploadDataOptions?.contentType,\n bucket: resolvedBucket,\n size,\n key,\n })\n : undefined;\n const dataChunker = (0, getDataChunker_1.getDataChunker)(data, size);\n const completedPartNumberSet = new Set(inProgressUpload.completedParts.map(({ PartNumber }) => PartNumber));\n const onPartUploadCompletion = (partNumber, eTag) => {\n inProgressUpload?.completedParts.push({\n PartNumber: partNumber,\n ETag: eTag,\n });\n };\n const concurrentUploadsProgressTracker = (0, progressTracker_1.getConcurrentUploadsProgressTracker)({\n size,\n onProgress,\n });\n const concurrentUploadPartExecutors = [];\n for (let index = 0; index < constants_1.DEFAULT_QUEUE_SIZE; index++) {\n concurrentUploadPartExecutors.push((0, uploadPartExecutor_1.uploadPartExecutor)({\n dataChunkerGenerator: dataChunker,\n completedPartNumberSet,\n s3Config: resolvedS3Config,\n abortSignal: abortController.signal,\n bucket: resolvedBucket,\n finalKey,\n uploadId: inProgressUpload.uploadId,\n onPartUploadCompletion,\n onProgress: concurrentUploadsProgressTracker.getOnProgressListener(),\n isObjectLockEnabled: resolvedS3Options.isObjectLockEnabled,\n }));\n }\n await Promise.all(concurrentUploadPartExecutors);\n const { ETag: eTag } = await (0, client_1.completeMultipartUpload)({\n ...resolvedS3Config,\n abortSignal: abortController.signal,\n userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.UploadData),\n }, {\n Bucket: resolvedBucket,\n Key: finalKey,\n UploadId: inProgressUpload.uploadId,\n MultipartUpload: {\n Parts: inProgressUpload.completedParts.sort((partA, partB) => partA.PartNumber - partB.PartNumber),\n },\n });\n if (size) {\n const { ContentLength: uploadedObjectSize } = await (0, client_1.headObject)(resolvedS3Config, {\n Bucket: resolvedBucket,\n Key: finalKey,\n });\n if (uploadedObjectSize && uploadedObjectSize !== size) {\n throw new StorageError_1.StorageError({\n name: 'Error',\n message: `Upload failed. Expected object size ${size}, but got ${uploadedObjectSize}.`,\n });\n }\n }\n if (uploadCacheKey) {\n await (0, uploadCache_1.removeCachedUpload)(uploadCacheKey);\n }\n return {\n key,\n eTag,\n contentType,\n metadata,\n };\n };\n const startUploadWithResumability = () => startUpload()\n .then(resolveCallback)\n .catch(error => {\n const abortSignal = abortController?.signal;\n if (abortSignal?.aborted && isAbortSignalFromPause) {\n utils_3.logger.debug('upload paused.');\n }\n else {\n // Uncaught errors should be exposed to the users.\n rejectCallback(error);\n }\n });\n const multipartUploadJob = () => new Promise((resolve, reject) => {\n resolveCallback = resolve;\n rejectCallback = reject;\n startUploadWithResumability();\n });\n const onPause = () => {\n isAbortSignalFromPause = true;\n abortController?.abort();\n };\n const onResume = () => {\n startUploadWithResumability();\n };\n const onCancel = (message) => {\n // 1. abort in-flight API requests\n abortController?.abort(message);\n const cancelUpload = async () => {\n // 2. clear upload cache.\n if (uploadCacheKey) {\n await (0, uploadCache_1.removeCachedUpload)(uploadCacheKey);\n }\n // 3. clear multipart upload on server side.\n await (0, client_1.abortMultipartUpload)(resolvedS3Config, {\n Bucket: resolvedBucket,\n Key: resolvedKeyPrefix + key,\n UploadId: inProgressUpload?.uploadId,\n });\n };\n cancelUpload().catch(e => {\n utils_3.logger.debug('error when cancelling upload task.', e);\n });\n rejectCallback(\n // Internal error that should not be exposed to the users. They should use isCancelError() to check if\n // the error is caused by cancel().\n new CanceledError_1.CanceledError(message ? { message } : undefined));\n };\n return {\n multipartUploadJob,\n onPause,\n onResume,\n onCancel,\n };\n};\nexports.getMultipartUploadHandlers = getMultipartUploadHandlers;\nconst resolveAccessLevel = (accessLevel) => accessLevel ??\n core_1.Amplify.libraryOptions.Storage?.S3?.defaultAccessLevel ??\n constants_1.DEFAULT_ACCESS_LEVEL;\n"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ exports.defaultConfig = exports.isDnsCompatibleBucketName = exports.SERVICE_NAME
|
|
|
7
7
|
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
8
8
|
const aws_client_utils_1 = require("@aws-amplify/core/internals/aws-client-utils");
|
|
9
9
|
const utils_2 = require("./utils");
|
|
10
|
-
const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9
|
|
10
|
+
const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/;
|
|
11
11
|
const IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/;
|
|
12
12
|
const DOTS_PATTERN = /\.\./;
|
|
13
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../../../../../src/providers/s3/utils/client/base.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultConfig = exports.isDnsCompatibleBucketName = exports.SERVICE_NAME = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst aws_client_utils_1 = require(\"@aws-amplify/core/internals/aws-client-utils\");\nconst utils_2 = require(\"./utils\");\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../../../../../src/providers/s3/utils/client/base.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultConfig = exports.isDnsCompatibleBucketName = exports.SERVICE_NAME = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst aws_client_utils_1 = require(\"@aws-amplify/core/internals/aws-client-utils\");\nconst utils_2 = require(\"./utils\");\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nexports.SERVICE_NAME = 's3';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region, and input parameters.\n */\nconst endpointResolver = (options, apiInput) => {\n const { region, useAccelerateEndpoint, customEndpoint, forcePathStyle } = options;\n let endpoint;\n // 1. get base endpoint\n if (customEndpoint) {\n endpoint = new utils_1.AmplifyUrl(customEndpoint);\n }\n else if (useAccelerateEndpoint) {\n if (forcePathStyle) {\n throw new Error('Path style URLs are not supported with S3 Transfer Acceleration.');\n }\n endpoint = new utils_1.AmplifyUrl(`https://s3-accelerate.${(0, aws_client_utils_1.getDnsSuffix)(region)}`);\n }\n else {\n endpoint = new utils_1.AmplifyUrl(`https://s3.${region}.${(0, aws_client_utils_1.getDnsSuffix)(region)}`);\n }\n // 2. inject bucket name\n if (apiInput?.Bucket) {\n if (!(0, exports.isDnsCompatibleBucketName)(apiInput.Bucket)) {\n throw new Error(`Invalid bucket name: \"${apiInput.Bucket}\".`);\n }\n if (forcePathStyle || apiInput.Bucket.includes('.')) {\n endpoint.pathname = `/${apiInput.Bucket}`;\n }\n else {\n endpoint.host = `${apiInput.Bucket}.${endpoint.host}`;\n }\n }\n return { url: endpoint };\n};\n/**\n * Determines whether a given string is DNS compliant per the rules outlined by\n * S3. Length, capitaization, and leading dot restrictions are enforced by the\n * DOMAIN_PATTERN regular expression.\n * @internal\n *\n * @see https://github.com/aws/aws-sdk-js-v3/blob/f2da6182298d4d6b02e84fb723492c07c27469a8/packages/middleware-bucket-endpoint/src/bucketHostnameUtils.ts#L39-L48\n * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html\n */\nconst isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) &&\n !IP_ADDRESS_PATTERN.test(bucketName) &&\n !DOTS_PATTERN.test(bucketName);\nexports.isDnsCompatibleBucketName = isDnsCompatibleBucketName;\n/**\n * @internal\n */\nexports.defaultConfig = {\n service: exports.SERVICE_NAME,\n endpointResolver,\n retryDecider: (0, aws_client_utils_1.getRetryDecider)(utils_2.parseXmlError),\n computeDelay: aws_client_utils_1.jitteredBackoff,\n userAgentValue: (0, utils_1.getAmplifyUserAgent)(),\n useAccelerateEndpoint: false,\n uriEscapePath: false, // Required by S3. See https://github.com/aws/aws-sdk-js-v3/blob/9ba012dfa3a3429aa2db0f90b3b0b3a7a31f9bc3/packages/signature-v4/src/SignatureV4.ts#L76-L83\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ function toBase64(input) {
|
|
|
13
13
|
if (typeof input === 'string') {
|
|
14
14
|
return buffer_1.Buffer.from(input, 'utf-8').toString('base64');
|
|
15
15
|
}
|
|
16
|
-
return
|
|
16
|
+
return buffer_1.Buffer.from(input.buffer).toString('base64');
|
|
17
17
|
}
|
|
18
18
|
exports.toBase64 = toBase64;
|
|
19
19
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/base64/index.native.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = exports.utf8Encode = void 0;\nconst buffer_1 = require(\"buffer\");\nfunction utf8Encode(input) {\n return buffer_1.Buffer.from(input, 'utf-8');\n}\nexports.utf8Encode = utf8Encode;\nfunction toBase64(input) {\n if (typeof input === 'string') {\n return buffer_1.Buffer.from(input, 'utf-8').toString('base64');\n }\n return
|
|
1
|
+
{"version":3,"file":"index.native.js","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/base64/index.native.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = exports.utf8Encode = void 0;\nconst buffer_1 = require(\"buffer\");\nfunction utf8Encode(input) {\n return buffer_1.Buffer.from(input, 'utf-8');\n}\nexports.utf8Encode = utf8Encode;\nfunction toBase64(input) {\n if (typeof input === 'string') {\n return buffer_1.Buffer.from(input, 'utf-8').toString('base64');\n }\n return buffer_1.Buffer.from(input.buffer).toString('base64');\n}\nexports.toBase64 = toBase64;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;AAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnC,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AACD,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;AAChC,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AACD,OAAO,CAAC,QAAQ,GAAG,QAAQ;;"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
4
|
// SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.contentSha256MiddlewareFactory = void 0;
|
|
7
7
|
const aws_client_utils_1 = require("@aws-amplify/core/internals/aws-client-utils");
|
|
8
8
|
const constants_1 = require("./constants");
|
|
9
9
|
/**
|
|
@@ -13,7 +13,7 @@ const constants_1 = require("./constants");
|
|
|
13
13
|
*
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
|
-
const
|
|
16
|
+
const contentSha256MiddlewareFactory = () => (next) => async function contentSha256Middleware(request) {
|
|
17
17
|
if (request.headers[constants_1.CONTENT_SHA256_HEADER]) {
|
|
18
18
|
return next(request);
|
|
19
19
|
}
|
|
@@ -23,5 +23,5 @@ const contentSha256Middleware = (options) => (next) => async function contentSha
|
|
|
23
23
|
return next(request);
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
exports.
|
|
26
|
+
exports.contentSha256MiddlewareFactory = contentSha256MiddlewareFactory;
|
|
27
27
|
//# sourceMappingURL=contentSha256middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentSha256middleware.js","sources":["../../../../../../../src/providers/s3/utils/client/runtime/contentSha256middleware.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.
|
|
1
|
+
{"version":3,"file":"contentSha256middleware.js","sources":["../../../../../../../src/providers/s3/utils/client/runtime/contentSha256middleware.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentSha256MiddlewareFactory = void 0;\nconst aws_client_utils_1 = require(\"@aws-amplify/core/internals/aws-client-utils\");\nconst constants_1 = require(\"./constants\");\n/**\n * A middleware that adds the x-amz-content-sha256 header to the request if it is not already present.\n * It's required for S3 requests in browsers where the request body is sent in 1 chunk.\n * @see https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html\n *\n * @internal\n */\nconst contentSha256MiddlewareFactory = () => (next) => async function contentSha256Middleware(request) {\n if (request.headers[constants_1.CONTENT_SHA256_HEADER]) {\n return next(request);\n }\n else {\n const hash = await (0, aws_client_utils_1.getHashedPayload)(request.body);\n request.headers[constants_1.CONTENT_SHA256_HEADER] = hash;\n return next(request);\n }\n};\nexports.contentSha256MiddlewareFactory = contentSha256MiddlewareFactory;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,8BAA8B,GAAG,KAAK,CAAC,CAAC;AAChD,MAAM,kBAAkB,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;AACnF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAA8B,GAAG,MAAM,CAAC,IAAI,KAAK,eAAe,uBAAuB,CAAC,OAAO,EAAE;AACvG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE;AAC5D,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAClF,QAAQ,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;AAClE,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,KAAK;AACL,CAAC,CAAC;AACF,OAAO,CAAC,8BAA8B,GAAG,8BAA8B;;"}
|
|
@@ -13,5 +13,5 @@ const contentSha256middleware_1 = require("../contentSha256middleware");
|
|
|
13
13
|
*
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
|
-
exports.s3TransferHandler = (0, composers_1.composeTransferHandler)(aws_client_utils_1.authenticatedHandler, [contentSha256middleware_1.
|
|
16
|
+
exports.s3TransferHandler = (0, composers_1.composeTransferHandler)(aws_client_utils_1.authenticatedHandler, [contentSha256middleware_1.contentSha256MiddlewareFactory]);
|
|
17
17
|
//# sourceMappingURL=fetch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/s3TransferHandler/fetch.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.s3TransferHandler = void 0;\nconst aws_client_utils_1 = require(\"@aws-amplify/core/internals/aws-client-utils\");\nconst composers_1 = require(\"@aws-amplify/core/internals/aws-client-utils/composers\");\nconst contentSha256middleware_1 = require(\"../contentSha256middleware\");\n/**\n * S3 transfer handler for node based on Node-fetch. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header. However, it does not support request&response process tracking like browser.\n *\n * @internal\n */\nexports.s3TransferHandler = (0, composers_1.composeTransferHandler)(aws_client_utils_1.authenticatedHandler, [contentSha256middleware_1.
|
|
1
|
+
{"version":3,"file":"fetch.js","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/s3TransferHandler/fetch.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.s3TransferHandler = void 0;\nconst aws_client_utils_1 = require(\"@aws-amplify/core/internals/aws-client-utils\");\nconst composers_1 = require(\"@aws-amplify/core/internals/aws-client-utils/composers\");\nconst contentSha256middleware_1 = require(\"../contentSha256middleware\");\n/**\n * S3 transfer handler for node based on Node-fetch. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header. However, it does not support request&response process tracking like browser.\n *\n * @internal\n */\nexports.s3TransferHandler = (0, composers_1.composeTransferHandler)(aws_client_utils_1.authenticatedHandler, [contentSha256middleware_1.contentSha256MiddlewareFactory]);\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;AACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;AACnF,MAAM,WAAW,GAAG,OAAO,CAAC,wDAAwD,CAAC,CAAC;AACtF,MAAM,yBAAyB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,iBAAiB,GAAG,IAAI,WAAW,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,yBAAyB,CAAC,8BAA8B,CAAC,CAAC;;"}
|
|
@@ -15,9 +15,9 @@ const xhrTransferHandler_1 = require("../xhrTransferHandler");
|
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
17
|
exports.s3TransferHandler = (0, composers_1.composeTransferHandler)(xhrTransferHandler_1.xhrTransferHandler, [
|
|
18
|
-
contentSha256middleware_1.
|
|
19
|
-
aws_client_utils_1.
|
|
20
|
-
aws_client_utils_1.
|
|
21
|
-
aws_client_utils_1.
|
|
18
|
+
contentSha256middleware_1.contentSha256MiddlewareFactory,
|
|
19
|
+
aws_client_utils_1.userAgentMiddlewareFactory,
|
|
20
|
+
aws_client_utils_1.retryMiddlewareFactory,
|
|
21
|
+
aws_client_utils_1.signingMiddlewareFactory,
|
|
22
22
|
]);
|
|
23
23
|
//# sourceMappingURL=xhr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhr.js","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/s3TransferHandler/xhr.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.s3TransferHandler = void 0;\nconst aws_client_utils_1 = require(\"@aws-amplify/core/internals/aws-client-utils\");\nconst composers_1 = require(\"@aws-amplify/core/internals/aws-client-utils/composers\");\nconst contentSha256middleware_1 = require(\"../contentSha256middleware\");\nconst xhrTransferHandler_1 = require(\"../xhrTransferHandler\");\n/**\n * S3 transfer handler for browser and React Native based on XHR. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header, and request&response process tracking.\n *\n * @internal\n */\nexports.s3TransferHandler = (0, composers_1.composeTransferHandler)(xhrTransferHandler_1.xhrTransferHandler, [\n contentSha256middleware_1.
|
|
1
|
+
{"version":3,"file":"xhr.js","sources":["../../../../../../../../src/providers/s3/utils/client/runtime/s3TransferHandler/xhr.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.s3TransferHandler = void 0;\nconst aws_client_utils_1 = require(\"@aws-amplify/core/internals/aws-client-utils\");\nconst composers_1 = require(\"@aws-amplify/core/internals/aws-client-utils/composers\");\nconst contentSha256middleware_1 = require(\"../contentSha256middleware\");\nconst xhrTransferHandler_1 = require(\"../xhrTransferHandler\");\n/**\n * S3 transfer handler for browser and React Native based on XHR. On top of basic transfer handler, it also supports\n * x-amz-content-sha256 header, and request&response process tracking.\n *\n * @internal\n */\nexports.s3TransferHandler = (0, composers_1.composeTransferHandler)(xhrTransferHandler_1.xhrTransferHandler, [\n contentSha256middleware_1.contentSha256MiddlewareFactory,\n aws_client_utils_1.userAgentMiddlewareFactory,\n aws_client_utils_1.retryMiddlewareFactory,\n aws_client_utils_1.signingMiddlewareFactory,\n]);\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;AACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;AACnF,MAAM,WAAW,GAAG,OAAO,CAAC,wDAAwD,CAAC,CAAC;AACtF,MAAM,yBAAyB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACxE,MAAM,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,iBAAiB,GAAG,IAAI,WAAW,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,kBAAkB,EAAE;AAC7G,IAAI,yBAAyB,CAAC,8BAA8B;AAC5D,IAAI,kBAAkB,CAAC,0BAA0B;AACjD,IAAI,kBAAkB,CAAC,sBAAsB;AAC7C,IAAI,kBAAkB,CAAC,wBAAwB;AAC/C,CAAC,CAAC;;"}
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.xhrTransferHandler = void 0;
|
|
7
7
|
const aws_client_utils_1 = require("@aws-amplify/core/internals/aws-client-utils");
|
|
8
8
|
const core_1 = require("@aws-amplify/core");
|
|
9
|
-
const constants_1 = require("./constants");
|
|
10
9
|
const CanceledError_1 = require("../../../../../errors/CanceledError");
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
11
|
const logger = new core_1.ConsoleLogger('xhr-http-handler');
|
|
12
12
|
/**
|
|
13
13
|
* Base transfer handler implementation using XMLHttpRequest to support upload and download progress events.
|
|
@@ -71,12 +71,12 @@ const xhrTransferHandler = (request, options) => {
|
|
|
71
71
|
if (!xhr)
|
|
72
72
|
return;
|
|
73
73
|
const responseHeaders = convertResponseHeaders(xhr.getAllResponseHeaders());
|
|
74
|
-
const responseType = xhr
|
|
74
|
+
const { responseType: loadEndResponseType } = xhr;
|
|
75
75
|
const responseBlob = xhr.response;
|
|
76
|
-
const responseText =
|
|
76
|
+
const responseText = loadEndResponseType === 'text' ? xhr.responseText : '';
|
|
77
77
|
const bodyMixIn = {
|
|
78
78
|
blob: () => Promise.resolve(responseBlob),
|
|
79
|
-
text: (0, aws_client_utils_1.withMemoization)(() =>
|
|
79
|
+
text: (0, aws_client_utils_1.withMemoization)(() => loadEndResponseType === 'blob'
|
|
80
80
|
? readBlobAsText(responseBlob)
|
|
81
81
|
: Promise.resolve(responseText)),
|
|
82
82
|
json: () => Promise.reject(
|