@use-services/alioss
Version:
42 lines (41 loc) • 1.85 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = exports.Service = void 0;
const use_services_1 = require("use-services");
const ali_oss_1 = require("ali-oss");
class Service {
constructor(option) {
this.args = option.args;
const { accessKeyId, accessKeySecret } = this.args.oss;
const client = new ali_oss_1.default(this.args.oss);
const sts = new ali_oss_1.default.STS({
accessKeyId,
accessKeySecret,
endpoint: this.args.sts.endpoint,
});
this.oss = client;
this.sts = sts;
}
getStsData(sessionName) {
return __awaiter(this, void 0, void 0, function* () {
const { arn, policy, expiration = 15 * 60, session } = this.args.sts;
const { credentials } = yield this.sts.assumeRole(arn, policy, expiration, sessionName || session);
return {
region: this.args.oss.region,
bucket: this.args.oss.bucket,
credentials,
};
});
}
}
exports.Service = Service;
exports.init = (0, use_services_1.createInitFn)(Service);