1 | import '@smithy/md5-js';
|
2 | import '@aws-amplify/core/internals/aws-client-utils';
|
3 | import '../../utils/client/runtime/s3TransferHandler/fetch.mjs';
|
4 | import 'fast-xml-parser';
|
5 | import '../../utils/client/runtime/s3TransferHandler/xhr.mjs';
|
6 | import 'buffer';
|
7 | import '@aws-amplify/core/internals/utils';
|
8 | import { assertValidationError } from '../../../../errors/utils/assertValidationError.mjs';
|
9 | import { StorageValidationErrorCode } from '../../../../errors/types/validation.mjs';
|
10 | import { MAX_OBJECT_SIZE, DEFAULT_PART_SIZE } from '../../utils/constants.mjs';
|
11 | import { createUploadTask } from '../../utils/transferTask.mjs';
|
12 | import { byteLength } from './byteLength.mjs';
|
13 | import { putObjectJob } from './putObjectJob.mjs';
|
14 | import { getMultipartUploadHandlers } from './multipart/uploadHandlers.mjs';
|
15 |
|
16 |
|
17 |
|
18 | function uploadData(input) {
|
19 | const { data } = input;
|
20 | const dataByteLength = byteLength(data);
|
21 | assertValidationError(dataByteLength === undefined || dataByteLength <= MAX_OBJECT_SIZE, StorageValidationErrorCode.ObjectIsTooLarge);
|
22 | if (dataByteLength !== undefined && dataByteLength <= DEFAULT_PART_SIZE) {
|
23 |
|
24 | const abortController = new AbortController();
|
25 | return createUploadTask({
|
26 | isMultipartUpload: false,
|
27 | job: putObjectJob(input, abortController.signal, dataByteLength),
|
28 | onCancel: (message) => {
|
29 | abortController.abort(message);
|
30 | },
|
31 | });
|
32 | }
|
33 | else {
|
34 |
|
35 | const { multipartUploadJob, onPause, onResume, onCancel } = getMultipartUploadHandlers(input, dataByteLength);
|
36 | return createUploadTask({
|
37 | isMultipartUpload: true,
|
38 | job: multipartUploadJob,
|
39 | onCancel: (message) => {
|
40 | onCancel(message);
|
41 | },
|
42 | onPause,
|
43 | onResume,
|
44 | });
|
45 | }
|
46 | }
|
47 |
|
48 | export { uploadData };
|
49 |
|