UNPKG

1.64 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4const common_1 = require("@nestjs/common");
5const storage_1 = require("@google-cloud/storage");
6const logging_1 = require("./logging");
7let 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};
34StorageProvider = 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);
39exports.StorageProvider = StorageProvider;
40//# sourceMappingURL=storage.provider.js.map
\No newline at end of file