@aws-amplify/storage
Version:
Storage category of aws-amplify
49 lines (47 loc) • 1.83 kB
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.putObjectJob = void 0;
const core_1 = require("@aws-amplify/core");
const utils_1 = require("@aws-amplify/core/internals/utils");
const utils_2 = require("../../utils");
const client_1 = require("../../utils/client");
const userAgent_1 = require("../../utils/userAgent");
/**
* Get a function the returns a promise to call putObject API to S3.
*
* @internal
*/
const putObjectJob = ({ options: uploadDataOptions, key, data }, abortSignal, totalLength) => async () => {
const { bucket, keyPrefix, s3Config, isObjectLockEnabled } = await (0, utils_2.resolveS3ConfigAndInput)(core_1.Amplify, uploadDataOptions);
const finalKey = keyPrefix + key;
const { contentDisposition, contentEncoding, contentType = 'application/octet-stream', metadata, onProgress, } = uploadDataOptions ?? {};
const { ETag: eTag, VersionId: versionId } = await (0, client_1.putObject)({
...s3Config,
abortSignal,
onUploadProgress: onProgress,
userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.UploadData),
}, {
Bucket: bucket,
Key: finalKey,
Body: data,
ContentType: contentType,
ContentDisposition: contentDisposition,
ContentEncoding: contentEncoding,
Metadata: metadata,
ContentMD5: isObjectLockEnabled
? await (0, utils_2.calculateContentMd5)(data)
: undefined,
});
return {
key,
eTag,
versionId,
contentType,
metadata,
size: totalLength,
};
};
exports.putObjectJob = putObjectJob;
//# sourceMappingURL=putObjectJob.js.map
;