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