UNPKG

@itwin/object-storage-minio

Version:
35 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleMinioUrlUpload = handleMinioUrlUpload; /*--------------------------------------------------------------------------------------------- * 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 handleMinioUrlUpload(input) { // minio responds with 411 error if Content-Length header is not present // used streamToBuffer to get the length before uploading for streams 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 metaHeaders = metadata ? (0, internal_1.metadataToHeaders)(metadata, "x-amz-meta-") : undefined; const headers = { ...metaHeaders, // 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