UNPKG

@itwin/object-storage-s3

Version:

Object storage implementation base for S3 compatible providers

33 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleS3UrlUpload = handleS3UrlUpload; /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ const fs_1 = require("fs"); const stream_1 = require("stream"); const internal_1 = require("@itwin/object-storage-core/lib/common/internal"); const internal_2 = require("@itwin/object-storage-core/lib/server/internal"); async function handleS3UrlUpload(input) { const { data, metadata, url } = input; let dataToUpload; if (typeof data === "string") { await (0, internal_2.assertFileNotEmpty)(data); dataToUpload = await (0, internal_2.streamToBuffer)((0, fs_1.createReadStream)(data)); } else if (data instanceof stream_1.Readable) dataToUpload = await (0, internal_2.streamToBuffer)(data); else dataToUpload = data; const metadataHeaders = metadata ? (0, internal_1.metadataToHeaders)(metadata, "x-amz-meta-") : {}; const headers = { ...metadataHeaders, // eslint-disable-next-line @typescript-eslint/naming-convention "Content-Length": dataToUpload.byteLength.toString(), }; return (0, internal_2.uploadToUrl)(url, dataToUpload, headers); } //# sourceMappingURL=Helpers.js.map