UNPKG

@aws-amplify/storage

Version:

Storage category of aws-amplify

49 lines (47 loc) 1.83 kB
'use strict'; // 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