UNPKG

memory-card

Version:

ES6 Map like Async API, with Swagger API Backend Support.

134 lines 4.49 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.StorageObs = void 0; /// <reference path="./types.d.ts" /> const esdk_obs_nodejs_1 = __importDefault(require("esdk-obs-nodejs")); const config_js_1 = require("../config.js"); const backend_js_1 = require("./backend.js"); class StorageObs extends backend_js_1.StorageBackend { obs; constructor(name, options) { config_js_1.log.verbose('StorageObs', 'constructor()'); options.type = 'obs'; super(name, options); options = options; this.obs = new esdk_obs_nodejs_1.default({ access_key_id: options.accessKeyId, secret_access_key: options.secretAccessKey, server: options.server, }); } toString() { const text = [ this.constructor.name, '<', this.name, '>', ].join(''); return text; } async save(payload) { config_js_1.log.verbose('StorageObs', 'save()'); const options = this.options; await this.putObject({ Body: JSON.stringify(payload), Bucket: options.bucket, Key: this.name, }); } async load() { config_js_1.log.verbose('StorageObs', 'load()'); try { const result = await this.getObject(); if (!result) { return {}; } config_js_1.log.info('presss', result); return result; } catch (e) { config_js_1.log.warn('StorageObs', 'load() exception: %s', e); return {}; } } async destroy() { config_js_1.log.verbose('StorageObs', 'destroy()'); await this.deleteObject(); } async putObject(payload) { const options = this.options; return new Promise((resolve, reject) => { this.obs.putObject({ Body: JSON.stringify(payload), Bucket: options.bucket, Key: this.name, }, (err, result) => { if (err) { reject(err); } else { config_js_1.log.verbose('obs putObject result', JSON.stringify(result)); if (result.CommonMsg.Status === 200) { resolve(); } else { reject(new Error('obs putObject error')); } } }); }); } async getObject() { const options = this.options; return new Promise((resolve, reject) => { this.obs.getObject({ Bucket: options.bucket, Key: this.name, }, (err, result) => { if (err) { reject(err); } else { config_js_1.log.verbose('obs getObject result', JSON.stringify(result.CommonMsg)); if (result.CommonMsg.Status < 300 && result.InterfaceResult) { const buffer = result.InterfaceResult.Content; const str = buffer.toString(); const obj = JSON.parse(str); resolve((JSON.parse(obj.Body))); } else { reject(new Error('obs getObject error')); } } }); }); } async deleteObject() { const options = this.options; return new Promise((resolve, reject) => { this.obs.putObject({ Bucket: options.bucket, Key: this.name, }, (err, result) => { if (err) { reject(err); } else { config_js_1.log.verbose('obs putObject result', JSON.stringify(result)); if (result.CommonMsg.Status < 300) { resolve(); } else { reject(new Error('obs deleteObject error')); } } }); }); } } exports.StorageObs = StorageObs; exports.default = StorageObs; //# sourceMappingURL=obs.js.map