UNPKG

@itwin/object-storage-google

Version:

Object storage implementation using Google Cloud Storage

64 lines 3.8 kB
"use strict"; /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GoogleClientStorage = void 0; const inversify_1 = require("inversify"); const internal_1 = require("@itwin/object-storage-core/lib/common/internal"); const internal_2 = require("@itwin/object-storage-core/lib/server/internal"); const object_storage_core_1 = require("@itwin/object-storage-core"); const wrappers_1 = require("./wrappers"); let GoogleClientStorage = class GoogleClientStorage extends object_storage_core_1.ClientStorage { constructor(_storageFactory) { super(); this._storageFactory = _storageFactory; } async download(input) { if ((0, internal_1.instanceOfUrlTransferInput)(input)) return await (0, internal_2.downloadFromUrl)(input); (0, internal_1.assertRelativeDirectory)(input.reference.relativeDirectory); if (input.transferType === "local") { (0, internal_2.assertLocalFile)(input.localPath); } const storage = this._storageFactory.createFromToken(input.transferConfig); const downloadBuffer = await storage.downloadFile(input.reference, input.localPath); if (input.transferType === "local") return input.localPath; return (0, internal_2.bufferToTransferType)(downloadBuffer, input.transferType); } async upload(input) { const isUrlTransfer = (0, internal_1.instanceOfUrlTransferInput)(input); if (!isUrlTransfer) (0, internal_1.assertRelativeDirectory)(input.reference.relativeDirectory); if (typeof input.data === "string") await (0, internal_2.assertFileNotEmpty)(input.data); if (isUrlTransfer) return (0, internal_2.uploadToUrl)(input.url, input.data, input.metadata); const storage = this._storageFactory.createFromToken(input.transferConfig); await storage.uploadFile(input.reference, input.data, input.metadata); } async uploadInMultipleParts(input) { (0, internal_1.assertRelativeDirectory)(input.reference.relativeDirectory); if (typeof input.data === "string") await (0, internal_2.assertFileNotEmpty)(input.data); const storage = this._storageFactory.createFromToken(input.transferConfig); await storage.uploadFile(input.reference, input.data, input.options?.metadata, undefined, input.options?.partSize); } }; exports.GoogleClientStorage = GoogleClientStorage; exports.GoogleClientStorage = GoogleClientStorage = __decorate([ (0, inversify_1.injectable)(), __metadata("design:paramtypes", [wrappers_1.ClientStorageWrapperFactory]) ], GoogleClientStorage); //# sourceMappingURL=GoogleClientStorage.js.map