UNPKG

@itwin/object-storage-s3

Version:

Object storage implementation base for S3 compatible providers

41 lines 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.S3PresignedUrlProvider = 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 s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner"); const internal_1 = require("@itwin/object-storage-core/lib/common/internal"); const internal_2 = require("./internal"); class S3PresignedUrlProvider { _client; _bucket; constructor(client, bucket) { this._client = client; this._bucket = bucket; } async getDownloadUrl(reference, expiry) { /* eslint-disable @typescript-eslint/naming-convention */ return (0, s3_request_presigner_1.getSignedUrl)(this._client, new client_s3_1.GetObjectCommand({ Bucket: this._bucket, Key: (0, internal_1.buildObjectKey)(reference), }), { expiresIn: (0, internal_2.getExpiresInSeconds)(expiry), }); /* eslint-enable @typescript-eslint/naming-convention */ } async getUploadUrl(reference, expiry) { /* eslint-disable @typescript-eslint/naming-convention */ return (0, s3_request_presigner_1.getSignedUrl)(this._client, new client_s3_1.PutObjectCommand({ Bucket: this._bucket, Key: (0, internal_1.buildObjectKey)(reference), }), { expiresIn: (0, internal_2.getExpiresInSeconds)(expiry), }); /* eslint-enable @typescript-eslint/naming-convention */ } } exports.S3PresignedUrlProvider = S3PresignedUrlProvider; //# sourceMappingURL=S3PresignedUrlProvider.js.map