@itwin/object-storage-s3
Version:
Object storage implementation base for S3 compatible providers
53 lines • 2.71 kB
JavaScript
;
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