UNPKG

zater-docx-pdf2

Version:
127 lines (102 loc) 10.7 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _awsSdk = require('aws-sdk'); var _awsSdk2 = _interopRequireDefault(_awsSdk); var _fs = require('fs'); var _storageDocorator = require('./../../decorators/storageDocorator'); var _storageDocorator2 = _interopRequireDefault(_storageDocorator); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } class S3Storage extends _storageDocorator2.default { constructor(config) { super(); this.config = config; _awsSdk2.default.config.update({ accessKeyId: config.AWS_ACCESS_KEY_ID, secretAccessKey: config.AWS_SECRET_KEY, region: config.AWS_REGION }); } setBucket(bucket) { this.bucket = bucket; } setFile(file) { this.file = file; } getFileData() { return new Promise((resolve, reject) => { if (this.fileBuffer) { resolve(this.fileBuffer.data); } else { (0, _fs.readFile)(this.file, (err, fileData) => { if (err) { reject(err); } else { resolve(fileData); } }); } }); } getFileType() { if (this.file) return this.file.type; if (this.fileBuffer) return this.fileBuffer.type; return null; } upload() { var _this = this; return _asyncToGenerator(function* () { _awsSdk2.default.config.update({ region: _this.config.AWS_REGION }); return new Promise((() => { var _ref = _asyncToGenerator(function* (resolve, reject) { if (!_this.destinationDir) { reject('No bucket provided'); return; } if (!_this.file && !_this.fileBuffer) { reject('No file provided.'); return; } try { const fileData = yield _this.getFileData(); console.log('TENTANDO SUBIR ARQUIVO'); console.log(fileData); const s3bucket = new _awsSdk2.default.S3({ params: { Bucket: _this.bucket } }); const fileInfo = _this.getFinalFilePath(); s3bucket.createBucket(function () { const s3Params = { Key: fileInfo.fullPath, ContentType: _this.getFileType(), Body: fileData, ACL: 'public-read' }; s3bucket.upload(s3Params, function (uploadErr, uploadData) { if (_this.file) { (0, _fs.unlink)(_this.file, function (err) { if (err) throw new Error(err); }); } if (uploadErr) { return reject(uploadErr); } return resolve(_extends({}, uploadData, { file: fileInfo.fileName })); }); }); } catch (e) { reject(e); } }); return function (_x, _x2) { return _ref.apply(this, arguments); }; })()); })(); } } exports.default = config => new S3Storage(config); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcm92aWRlcnMvUzNTdG9yYWdlLmpzIl0sIm5hbWVzIjpbIlMzU3RvcmFnZSIsIlN0b3JhZ2VEZWNvcmF0b3IiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsIkFXUyIsInVwZGF0ZSIsImFjY2Vzc0tleUlkIiwiQVdTX0FDQ0VTU19LRVlfSUQiLCJzZWNyZXRBY2Nlc3NLZXkiLCJBV1NfU0VDUkVUX0tFWSIsInJlZ2lvbiIsIkFXU19SRUdJT04iLCJzZXRCdWNrZXQiLCJidWNrZXQiLCJzZXRGaWxlIiwiZmlsZSIsImdldEZpbGVEYXRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaWxlQnVmZmVyIiwiZGF0YSIsImVyciIsImZpbGVEYXRhIiwiZ2V0RmlsZVR5cGUiLCJ0eXBlIiwidXBsb2FkIiwiZGVzdGluYXRpb25EaXIiLCJjb25zb2xlIiwibG9nIiwiczNidWNrZXQiLCJTMyIsInBhcmFtcyIsIkJ1Y2tldCIsImZpbGVJbmZvIiwiZ2V0RmluYWxGaWxlUGF0aCIsImNyZWF0ZUJ1Y2tldCIsInMzUGFyYW1zIiwiS2V5IiwiZnVsbFBhdGgiLCJDb250ZW50VHlwZSIsIkJvZHkiLCJBQ0wiLCJ1cGxvYWRFcnIiLCJ1cGxvYWREYXRhIiwiRXJyb3IiLCJmaWxlTmFtZSIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFQSxNQUFNQSxTQUFOLFNBQXdCQywwQkFBeEIsQ0FBeUM7QUFDdkNDLGNBQVlDLE1BQVosRUFBb0I7QUFDbEI7QUFDQSxTQUFLQSxNQUFMLEdBQWNBLE1BQWQ7QUFDQUMscUJBQUlELE1BQUosQ0FBV0UsTUFBWCxDQUFrQjtBQUNoQkMsbUJBQWFILE9BQU9JLGlCQURKO0FBRWhCQyx1QkFBaUJMLE9BQU9NLGNBRlI7QUFHaEJDLGNBQVFQLE9BQU9RO0FBSEMsS0FBbEI7QUFLRDs7QUFFREMsWUFBVUMsTUFBVixFQUFrQjtB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V1MgZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQgeyByZWFkRmlsZSwgdW5saW5rIH0gZnJvbSAnZnMnO1xuaW1wb3J0IFN0b3JhZ2VEZWNvcmF0b3IgZnJvbSAnLi8uLi8uLi9kZWNvcmF0b3JzL3N0b3JhZ2VEb2NvcmF0b3InO1xuXG5jbGFzcyBTM1N0b3JhZ2UgZXh0ZW5kcyBTdG9yYWdlRGVjb3JhdG9yIHtcbiAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICBBV1MuY29uZmlnLnVwZGF0ZSh7XG4gICAgICBhY2Nlc3NLZXlJZDogY29uZmlnLkFXU19BQ0NFU1NfS0VZX0lELFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiBjb25maWcuQVdTX1NFQ1JFVF9LRVksXG4gICAgICByZWdpb246IGNvbmZpZy5BV1NfUkVHSU9OLFxuICAgIH0pO1xuICB9XG5cbiAgc2V0QnVja2V0KGJ1Y2tldCkge1xuICAgIHRoaXMuYnVja2V0ID0gYnVja2V0O1xuICB9XG5cbiAgc2V0RmlsZShmaWxlKSB7XG4gICAgdGhpcy5maWxlID0gZmlsZTtcbiAgfVxuXG4gIGdldEZpbGVEYXRhKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5maWxlQnVmZmVyKSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5maWxlQnVmZmVyLmRhdGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVhZEZpbGUodGhpcy5maWxlLCAoZXJyLCBmaWxlRGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKGZpbGVEYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0RmlsZVR5cGUoKSB7XG4gICAgaWYgKHRoaXMuZmlsZSkgcmV0dXJuIHRoaXMuZmlsZS50eXBlO1xuICAgIGlmICh0aGlzLmZpbGVCdWZmZXIpIHJldHVybiB0aGlzLmZpbGVCdWZmZXIudHlwZTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG5cbiAgYXN5bmMgdXBsb2FkKCkge1xuICAgIEFXUy5jb25maWcudXBkYXRlKHsgcmVnaW9uOiB0aGlzLmNvbmZpZy5BV1NfUkVHSU9OIH0pO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGVzdGluYXRpb25EaXIpIHtcbiAgICAgICAgcmVqZWN0KCdObyBidWNrZXQgcHJvdmlkZWQnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZmlsZSAmJiAhdGhpcy5maWxlQnVmZmVyKSB7XG4gICAgICAgIHJlamVjdCgnTm8gZmlsZSBwcm92aWRlZC4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmaWxlRGF0YSA9IGF3YWl0IHRoaXMuZ2V0RmlsZURhdGEoKTtcbiAgICAgICAgICBcbiAgICAgICAgY29uc29sZS5sb2coJ1RFTlRBTkRPIFNVQklSIEFSUVVJVk8nKVxuICAgICAgICBjb25zb2xlLmxvZyhmaWxlRGF0YSlcblxuICAgICAgICBjb25zdCBzM2J1Y2tldCA9IG5ldyBBV1MuUzMoe1xuICAgICAgICAgIHBhcmFtczogeyBCdWNrZXQ6IHRoaXMuYnVja2V0IH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZpbGVJbmZvID0gdGhpcy5nZXRGaW5hbEZpbGVQYXRoKCk7ICAgICAgICBcbiAgICAgICAgczNidWNrZXQuY3JlYXRlQnVja2V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBzM1BhcmFtcyA9IHtcbiAgICAgICAgICAgIEtleTogZmlsZUluZm8uZnVsbFBhdGgsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogdGhpcy5nZXRGaWxlVHlwZSgpLFxuICAgICAgICAgICAgQm9keTogZmlsZURhdGEsXG4gICAgICAgICAgICBBQ0w6ICdwdWJsaWMtcmVhZCcsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzM2J1Y2tldC51cGxvYWQoczNQYXJhbXMsICh1cGxvYWRFcnIsIHVwbG9hZERhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgICAgICAgICAgdW5saW5rKHRoaXMuZmlsZSwgKGVycikgPT4geyBpZiAoZXJyKSB0aHJvdyBuZXcgRXJyb3IoZXJyKTt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHVwbG9hZEVycikge1xuICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KHVwbG9hZEVycik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHsgLi4udXBsb2FkRGF0YSwgZmlsZTogZmlsZUluZm8uZmlsZU5hbWUgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uZmlnID0+IG5ldyBTM1N0b3JhZ2UoY29uZmlnKTtcbiJdfQ==