UNPKG

@itwin/object-storage-s3

Version:

Object storage implementation base for S3 compatible providers

53 lines 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createS3Client = createS3Client; exports.assertS3TransferConfig = assertS3TransferConfig; exports.createStsClient = createStsClient; /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ const client_s3_1 = require("@aws-sdk/client-s3"); const client_sts_1 = require("@aws-sdk/client-sts"); const internal_1 = require("@itwin/cloud-agnostic-core/lib/internal"); const internal_2 = require("@itwin/object-storage-core/lib/common/internal"); function createS3Client(config) { const { baseUrl, region, accessKey, secretKey, sessionToken } = config; return new client_s3_1.S3Client({ endpoint: baseUrl, region, credentials: { accessKeyId: accessKey, secretAccessKey: secretKey, sessionToken, }, }); } function assertS3TransferConfig(transferConfig) { (0, internal_2.assertTransferConfig)(transferConfig); if (!("authentication" in transferConfig)) throw new internal_1.FalsyValueError("transferConfig.authentication"); (0, internal_1.assertPrimitiveType)(transferConfig.authentication, "transferConfig.authentication", "object"); (0, internal_1.assertPrimitiveType)(transferConfig.authentication.accessKey, "transferConfig.authentication.accessKey", "string"); (0, internal_1.assertPrimitiveType)(transferConfig.authentication.secretKey, "transferConfig.authentication.secretKey", "string"); (0, internal_1.assertPrimitiveType)(transferConfig.authentication.sessionToken, "transferConfig.authentication.sessionToken", "string"); if (!("region" in transferConfig)) throw new internal_1.FalsyValueError("transferConfig.region"); (0, internal_1.assertPrimitiveType)(transferConfig.region, "transferConfig.region", "string"); if (!("bucket" in transferConfig)) throw new internal_1.FalsyValueError("transferConfig.bucket"); (0, internal_1.assertPrimitiveType)(transferConfig.bucket, "transferConfig.bucket", "string"); } function createStsClient(config) { const { stsBaseUrl, region, accessKey, secretKey } = config; return new client_sts_1.STSClient({ apiVersion: "2011-06-15", endpoint: stsBaseUrl, region, credentials: { accessKeyId: accessKey, secretAccessKey: secretKey, }, }); } //# sourceMappingURL=Helpers.js.map