1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const tslib_1 = require("tslib");
|
4 | const common_1 = require("@nestjs/common");
|
5 | const storage_1 = require("@google-cloud/storage");
|
6 | const logging_1 = require("./logging");
|
7 | let StorageProvider = class StorageProvider {
|
8 | constructor(configurationProvider) {
|
9 | this.configurationProvider = configurationProvider;
|
10 | this.logger = logging_1.createLogger('storage');
|
11 | const config = {};
|
12 | if (configurationProvider.isDevelopment()) {
|
13 | this.logger.info('Application is running locally, using keyfile.json credentials to connect to Google Cloud Storage');
|
14 | config.keyFilename = './keyfile.json';
|
15 | }
|
16 | this._storage = new storage_1.Storage(config);
|
17 | this.logger.info(`Default Google Cloud Storage bucket: ${configurationProvider.bucket}`);
|
18 | this._defaultBucket = this.storage.bucket(configurationProvider.bucket);
|
19 | }
|
20 | get storage() {
|
21 | return this._storage;
|
22 | }
|
23 | get defaultBucket() {
|
24 | return this._defaultBucket;
|
25 | }
|
26 | async getDefaultBucketResumableUploadUrl(fileId) {
|
27 | const gcsFile = this._defaultBucket.file(fileId);
|
28 | const urls = await gcsFile.createResumableUpload({
|
29 | origin: this.configurationProvider.host,
|
30 | });
|
31 | return urls[0];
|
32 | }
|
33 | };
|
34 | StorageProvider = tslib_1.__decorate([
|
35 | common_1.Injectable(),
|
36 | tslib_1.__param(0, common_1.Inject('Configuration')),
|
37 | tslib_1.__metadata("design:paramtypes", [Object])
|
38 | ], StorageProvider);
|
39 | exports.StorageProvider = StorageProvider;
|
40 |
|
\ | No newline at end of file |