UNPKG

@itwin/object-storage-s3

Version:

Object storage implementation base for S3 compatible providers

52 lines 3.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.S3ServerStorageBindings = void 0; /*--------------------------------------------------------------------------------------------- * 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 object_storage_core_1 = require("@itwin/object-storage-core"); const common_1 = require("../common"); const internal_2 = require("../common/internal"); const S3PresignedUrlProvider_1 = require("./S3PresignedUrlProvider"); const S3ServerStorage_1 = require("./S3ServerStorage"); const S3TransferConfigProvider_1 = require("./S3TransferConfigProvider"); const wrappers_1 = require("./wrappers"); /* eslint-enable @typescript-eslint/indent */ class S3ServerStorageBindings extends object_storage_core_1.ServerStorageDependency { dependencyName = common_1.Constants.storageType; register(container, config) { if (!config.accessKey) throw new internal_1.ConfigError("accessKey"); if (!config.bucket) throw new internal_1.ConfigError("bucket"); if (!config.baseUrl) throw new internal_1.ConfigError("baseUrl"); if (!config.region) throw new internal_1.ConfigError("region"); if (!config.roleArn) throw new internal_1.ConfigError("roleArn"); if (!config.secretKey) throw new internal_1.ConfigError("secretKey"); if (!config.stsBaseUrl) throw new internal_1.ConfigError("stsBaseUrl"); container.registerInstance(common_1.Types.S3Server.config, config); container.registerFactory(object_storage_core_1.Types.Server.serverStorage, (c) => new S3ServerStorage_1.S3ServerStorage(c.resolve(wrappers_1.S3ClientWrapper), c.resolve(object_storage_core_1.Types.Server.presignedUrlProvider), c.resolve(object_storage_core_1.Types.Server.transferConfigProvider))); container.registerInstance(client_s3_1.S3Client, (0, internal_2.createS3Client)(config)); container.registerInstance(client_sts_1.STSClient, (0, internal_2.createStsClient)(config)); container.registerInstance(common_1.Types.bucket, config.bucket); container.registerFactory(wrappers_1.StsWrapper, (c) => { return new wrappers_1.StsWrapper(c.resolve(client_sts_1.STSClient)); }); container.registerFactory(wrappers_1.S3ClientWrapper, (c) => { return new wrappers_1.S3ClientWrapper(c.resolve(client_s3_1.S3Client), c.resolve(common_1.Types.bucket)); }); container.registerFactory(object_storage_core_1.Types.Server.presignedUrlProvider, (c) => new S3PresignedUrlProvider_1.S3PresignedUrlProvider(c.resolve(client_s3_1.S3Client), c.resolve(common_1.Types.S3Server.config))); container.registerFactory(object_storage_core_1.Types.Server.transferConfigProvider, (c) => new S3TransferConfigProvider_1.S3TransferConfigProvider(c.resolve(wrappers_1.StsWrapper), c.resolve(common_1.Types.S3Server.config))); } } exports.S3ServerStorageBindings = S3ServerStorageBindings; //# sourceMappingURL=S3ServerStorageBindings.js.map