Files
vue-driven-cloud-storage/backend/node_modules/@alicloud/openapi-util/dist/client.js
237899745 b135987fe8 feat: 添加多项功能和修复
功能新增:
- OSS 存储使用情况显示(文件页面)
- OSS 当日流量统计(阿里云云监控API)
- 分享页面路由修复(/s/xxx 格式支持)

Bug修复:
- 修复分享页面资源路径(相对路径改绝对路径)
- 修复分享码获取逻辑(支持路径格式)
- 修复OSS配额undefined显示问题
- 修复登录流程OSS配置检查
- 修复文件数为null时的显示问题

依赖更新:
- 添加 @alicloud/cms20190101 云监控SDK
- 添加 @alicloud/openapi-client

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 21:04:22 +08:00

543 lines
19 KiB
JavaScript

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// This file is auto-generated, don't edit it
/**
* This is for OpenApi Util
*/
const $tea = __importStar(require("@alicloud/tea-typescript"));
const tea_util_1 = __importDefault(require("@alicloud/tea-util"));
const kitx_1 = __importDefault(require("kitx"));
const querystring_1 = __importDefault(require("querystring"));
const crypto_1 = __importDefault(require("crypto"));
const PEM_BEGIN = "-----BEGIN PRIVATE KEY-----\n";
const PEM_END = "\n-----END PRIVATE KEY-----";
function replaceRepeatList(target, repeat, prefix) {
if (prefix) {
prefix = prefix + '.';
}
for (var i = 0; i < repeat.length; i++) {
var item = repeat[i];
let key = prefix + (i + 1);
if (typeof item === 'undefined' || item == null) {
continue;
}
if (Array.isArray(item)) {
replaceRepeatList(target, item, key);
}
else if (item instanceof Object) {
flatMap(target, item, key);
}
else {
target[key] = item.toString();
}
}
}
function flatMap(target, params, prefix = '') {
if (prefix) {
prefix = prefix + '.';
}
params = toMap(params);
let keys = Object.keys(params);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let value = params[key];
key = prefix + key;
if (typeof value === 'undefined' || value == null) {
continue;
}
if (Array.isArray(value)) {
replaceRepeatList(target, value, key);
}
else if (value instanceof Object) {
flatMap(target, value, key);
}
else {
target[key] = value.toString();
}
}
return target;
}
function filter(value) {
return value.replace(/[\t\n\r\f]/g, ' ');
}
function getCanonicalizedHeaders(headers) {
const prefix = 'x-acs-';
const keys = Object.keys(headers);
const canonicalizedKeys = [];
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
if (key.startsWith(prefix)) {
canonicalizedKeys.push(key);
}
}
canonicalizedKeys.sort();
var result = '';
for (let i = 0; i < canonicalizedKeys.length; i++) {
const key = canonicalizedKeys[i];
result += `${key}:${filter(headers[key]).trim()}\n`;
}
return result;
}
function getCanonicalizedResource(uriPattern, query) {
const keys = !query ? [] : Object.keys(query).sort();
if (keys.length === 0) {
return uriPattern;
}
var result = [];
for (var i = 0; i < keys.length; i++) {
const key = keys[i];
result.push(`${key}=${query[key]}`);
}
return `${uriPattern}?${result.join('&')}`;
}
function getAuthorizationQueryString(query) {
let canonicalQueryArray = [];
const keys = !query ? [] : Object.keys(query).sort();
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
let param = key + '=';
if (typeof query[key] !== 'undefined' && query[key] !== null) {
param = param + encode(query[key]);
}
canonicalQueryArray.push(param);
}
return canonicalQueryArray.join('&');
}
function getAuthorizationHeaders(header) {
let canonicalheaders = "";
let tmp = {};
const keys = !header ? [] : Object.keys(header);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
const lowerKey = keys[i].toLowerCase();
if (lowerKey.startsWith("x-acs-") || lowerKey === "host" || lowerKey === "content-type") {
if (tmp[lowerKey]) {
tmp[lowerKey].push((header[key] || "").trim());
}
else {
tmp[lowerKey] = [(header[key] || "").trim()];
}
}
}
var hsKeys = Object.keys(tmp).sort();
for (let i = 0; i < hsKeys.length; i++) {
const hsKey = hsKeys[i];
let listSort = tmp[hsKey].sort();
canonicalheaders += `${hsKey}:${listSort.join(",")}\n`;
}
return { canonicalheaders, hsKeys };
}
function encode(str) {
var result = encodeURIComponent(str);
return result.replace(/!/g, '%21')
.replace(/'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29')
.replace(/\*/g, '%2A');
}
function normalize(params) {
var list = [];
var flated = {};
flatMap(flated, params);
var keys = Object.keys(flated).sort();
for (let i = 0; i < keys.length; i++) {
var key = keys[i];
var value = flated[key];
list.push([encode(key), encode(value)]);
}
return list;
}
function canonicalize(normalized) {
var fields = [];
for (var i = 0; i < normalized.length; i++) {
var [key, value] = normalized[i];
fields.push(key + '=' + value);
}
return fields.join('&');
}
function isModelClass(t) {
if (!t) {
return false;
}
return typeof t.types === 'function' && typeof t.names === 'function';
}
function isObjectOrArray(t) {
return Array.isArray(t) || (t instanceof Object && typeof t !== 'function');
}
function toMap(input) {
if (!isObjectOrArray(input)) {
return null;
}
else if (input instanceof $tea.Model) {
return $tea.toMap(input);
}
else if (input && input.toMap && typeof input.toMap === 'function') {
// 解决跨版本 Model 不互认的问题
return input.toMap();
}
else if (Array.isArray(input)) {
const result = [];
input.forEach((value) => {
if (isObjectOrArray(value)) {
result.push(toMap(value));
}
else {
result.push(value);
}
});
return result;
}
else if (input instanceof Object) {
const result = {};
Object.entries(input).forEach(([key, value]) => {
if (isObjectOrArray(value)) {
result[key] = toMap(value);
}
else {
result[key] = value;
}
});
return result;
}
}
class Client {
/**
* Convert all params of body other than type of readable into content
* @param input source Model
* @param output target Model
* @return void
*/
static convert(input, output) {
if (!output) {
return;
}
let inputModel = Object.assign({}, input);
let constructor = output.constructor;
let types = constructor.types();
// let constructor = <any>output.constructor;
for (let key of Object.keys(constructor.names())) {
if (inputModel[key] !== null && inputModel[key] !== undefined) {
if (isModelClass(types[key])) {
output[key] = new types[key](output[key]);
Client.convert(inputModel[key], output[key]);
}
else if (types[key] && types[key].type === 'array') {
output[key] = inputModel[key].map(function (d) {
if (isModelClass(types[key].itemType)) {
var item = new types[key].itemType({});
Client.convert(d, item);
return item;
}
return d;
});
}
else if (types[key] && types[key].type === 'map') {
output[key] = {};
Object.keys(inputModel[key]).map(function (d) {
if (isModelClass(types[key].valueType)) {
var item = new types[key].valueType({});
Client.convert(inputModel[key][d], item);
output[key][d] = item;
}
else {
output[key][d] = inputModel[key][d];
}
});
}
else {
output[key] = inputModel[key];
}
}
}
}
/**
* Get the string to be signed according to request
* @param request which contains signed messages
* @return the signed string
*/
static getStringToSign(request) {
const method = request.method;
const accept = request.headers['accept'];
const contentMD5 = request.headers['content-md5'] || '';
const contentType = request.headers['content-type'] || '';
const date = request.headers['date'] || '';
const header = `${method}\n${accept}\n${contentMD5}\n${contentType}\n${date}\n`;
const canonicalizedHeaders = getCanonicalizedHeaders(request.headers);
const canonicalizedResource = getCanonicalizedResource(request.pathname, request.query);
return `${header}${canonicalizedHeaders}${canonicalizedResource}`;
}
/**
* Get signature according to stringToSign, secret
* @param stringToSign the signed string
* @param secret accesskey secret
* @return the signature
*/
static getROASignature(stringToSign, secret) {
const utf8Buff = Buffer.from(stringToSign, 'utf8');
return kitx_1.default.sha1(utf8Buff, secret, 'base64');
}
/**
* Parse filter into a form string
* @param filter object
* @return the string
*/
static toForm(filter) {
if (!filter) {
return '';
}
let target = {};
flatMap(target, filter);
return tea_util_1.default.toFormString(target);
}
/**
* Get timestamp
* @return the timestamp string
*/
static getTimestamp() {
let date = new Date();
let YYYY = date.getUTCFullYear();
let MM = kitx_1.default.pad2(date.getUTCMonth() + 1);
let DD = kitx_1.default.pad2(date.getUTCDate());
let HH = kitx_1.default.pad2(date.getUTCHours());
let mm = kitx_1.default.pad2(date.getUTCMinutes());
let ss = kitx_1.default.pad2(date.getUTCSeconds());
return `${YYYY}-${MM}-${DD}T${HH}:${mm}:${ss}Z`;
}
/**
* Parse filter into a object which's type is map[string]string
* @param filter query param
* @return the object
*/
static query(filter) {
if (!filter) {
return {};
}
let ret = {};
flatMap(ret, filter);
return ret;
}
/**
* Get signature according to signedParams, method and secret
* @param signedParams params which need to be signed
* @param method http method e.g. GET
* @param secret AccessKeySecret
* @return the signature
*/
static getRPCSignature(signedParams, method, secret) {
var normalized = normalize(signedParams);
var canonicalized = canonicalize(normalized);
var stringToSign = `${method}&${encode('/')}&${encode(canonicalized)}`;
const key = secret + '&';
return kitx_1.default.sha1(stringToSign, key, 'base64');
}
/**
* Parse array into a string with specified style
* @param array the array
* @param prefix the prefix string
* @style specified style e.g. repeatList
* @return the string
*/
static arrayToStringWithSpecifiedStyle(array, prefix, style) {
if (!array) {
return '';
}
if (style === 'repeatList') {
let target = {};
replaceRepeatList(target, array, prefix);
return querystring_1.default.stringify(target, '&&');
}
else if (style === 'json') {
return JSON.stringify(toMap(array));
}
else if (style === 'simple') {
return array.join(',');
}
else if (style === 'spaceDelimited') {
return array.join(' ');
}
else if (style === 'pipeDelimited') {
return array.join('|');
}
else {
return '';
}
}
/**
* Transform input as map.
*/
static parseToMap(input) {
return toMap(input);
}
static getEndpoint(endpoint, serverUse, endpointType) {
if (endpointType == "internal") {
let strs = endpoint.split(".");
strs[0] += "-internal";
endpoint = strs.join(".");
}
if (serverUse && endpointType == "accelerate") {
return "oss-accelerate.aliyuncs.com";
}
return endpoint;
}
/**
* Encode raw with base16
* @param raw encoding data
* @return encoded string
*/
static hexEncode(raw) {
return raw.toString("hex");
}
/**
* Hash the raw data with signatureAlgorithm
* @param raw hashing data
* @param signatureAlgorithm the autograph method
* @return hashed bytes
*/
static hash(raw, signatureAlgorithm) {
if (signatureAlgorithm === "ACS3-HMAC-SHA256" || signatureAlgorithm === "ACS3-RSA-SHA256") {
const obj = crypto_1.default.createHash('sha256');
obj.update(raw);
return obj.digest();
}
else if (signatureAlgorithm == "ACS3-HMAC-SM3") {
const obj = crypto_1.default.createHash('sm3');
obj.update(raw);
return obj.digest();
}
}
static signatureMethod(secret, source, signatureAlgorithm) {
if (signatureAlgorithm === "ACS3-HMAC-SHA256") {
const obj = crypto_1.default.createHmac('sha256', secret);
obj.update(source);
return obj.digest();
}
else if (signatureAlgorithm === "ACS3-HMAC-SM3") {
const obj = crypto_1.default.createHmac('sm3', secret);
obj.update(source);
return obj.digest();
}
else if (signatureAlgorithm === "ACS3-RSA-SHA256") {
if (!secret.startsWith(PEM_BEGIN)) {
secret = PEM_BEGIN + secret;
}
if (!secret.endsWith(PEM_END)) {
secret = secret + PEM_END;
}
var signerObject = crypto_1.default.createSign("RSA-SHA256");
signerObject.update(source);
var signature = signerObject.sign({ key: secret, padding: crypto_1.default.constants.RSA_PKCS1_PADDING });
return signature;
}
}
/**
* Get the authorization
* @param request request params
* @param signatureAlgorithm the autograph method
* @param payload the hashed request
* @param acesskey the acesskey string
* @param accessKeySecret the accessKeySecret string
* @return authorization string
*/
static getAuthorization(request, signatureAlgorithm, payload, acesskey, accessKeySecret) {
const canonicalURI = (request.pathname || "").replace("+", "%20").replace("*", "%2A").replace("%7E", "~");
const method = request.method;
const canonicalQueryString = getAuthorizationQueryString(request.query);
const tuple = getAuthorizationHeaders(request.headers);
const canonicalheaders = tuple["canonicalheaders"];
const signedHeaders = tuple["hsKeys"];
const canonicalRequest = method + "\n" + canonicalURI + "\n" + canonicalQueryString + "\n" + canonicalheaders + "\n" +
signedHeaders.join(";") + "\n" + payload;
let raw = Buffer.from(canonicalRequest);
const stringToSign = signatureAlgorithm + "\n" + Client.hexEncode(Client.hash(raw, signatureAlgorithm));
const signature = Client.hexEncode(Client.signatureMethod(accessKeySecret, stringToSign, signatureAlgorithm));
const auth = `${signatureAlgorithm} Credential=${acesskey},SignedHeaders=${signedHeaders.join(';')},Signature=${signature}`;
return auth;
}
static getEncodePath(path) {
if (typeof path === 'undefined' || path === null) {
return '';
}
let strs = path.split('/');
for (let i = 0; i < strs.length; i++) {
strs[i] = encode(strs[i]);
}
return strs.join('/');
}
static getEncodeParam(param) {
if (typeof param === 'undefined' || param === null) {
return '';
}
return encode(param);
}
/**
* Transform a map to a flat style map where keys are prefixed with length info.
* Map keys are transformed from "key" to "#length#key" format.
* @param object the input object (can be a Model, Array, Map, or other types)
* @return the transformed object
*/
static mapToFlatStyle(object) {
if (object === null || object === undefined) {
return object;
}
if (Array.isArray(object)) {
const list = [];
for (let i = 0; i < object.length; i++) {
list.push(Client.mapToFlatStyle(object[i]));
}
return list;
}
else if (object instanceof $tea.Model || (object && object.toMap && typeof object.toMap === 'function')) {
// Handle TeaModel instances
const map = object instanceof $tea.Model ? $tea.toMap(object) : object.toMap();
const result = {};
for (const key of Object.keys(map)) {
const value = map[key];
if (value !== null && value !== undefined && typeof value === 'object' && !Array.isArray(value) && !(value instanceof $tea.Model) && !(value.toMap && typeof value.toMap === 'function')) {
// It's a plain Map/object
const flatMap = {};
for (const entryKey of Object.keys(value)) {
flatMap[`#${entryKey.length}#${entryKey}`] = Client.mapToFlatStyle(value[entryKey]);
}
result[key] = flatMap;
}
else {
result[key] = Client.mapToFlatStyle(value);
}
}
return result;
}
else if (typeof object === 'object') {
// Handle plain Map/object
const flatMap = {};
for (const key of Object.keys(object)) {
flatMap[`#${key.length}#${key}`] = Client.mapToFlatStyle(object[key]);
}
return flatMap;
}
return object;
}
}
exports.default = Client;
//# sourceMappingURL=client.js.map