hexo/node_modules/ali-oss/lib/common/client/getReqUrl.js

53 lines
1.9 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getReqUrl = void 0;
const copy_to_1 = __importDefault(require("copy-to"));
const url_1 = __importDefault(require("url"));
const merge_descriptors_1 = __importDefault(require("merge-descriptors"));
const is_type_of_1 = __importDefault(require("is-type-of"));
const isIP_1 = require("../utils/isIP");
const checkConfigValid_1 = require("../utils/checkConfigValid");
function getReqUrl(params) {
const ep = {};
const isCname = this.options.cname;
checkConfigValid_1.checkConfigValid(this.options.endpoint, 'endpoint');
copy_to_1.default(this.options.endpoint, false).to(ep);
if (params.bucket && !isCname && !isIP_1.isIP(ep.hostname) && !this.options.sldEnable) {
ep.host = `${params.bucket}.${ep.host}`;
}
let resourcePath = '/';
if (params.bucket && this.options.sldEnable) {
resourcePath += `${params.bucket}/`;
}
if (params.object) {
// Preserve '/' in result url
resourcePath += this._escape(params.object).replace(/\+/g, '%2B');
}
ep.pathname = resourcePath;
const query = {};
if (params.query) {
merge_descriptors_1.default(query, params.query);
}
if (params.subres) {
let subresAsQuery = {};
if (is_type_of_1.default.string(params.subres)) {
subresAsQuery[params.subres] = '';
}
else if (is_type_of_1.default.array(params.subres)) {
params.subres.forEach(k => {
subresAsQuery[k] = '';
});
}
else {
subresAsQuery = params.subres;
}
merge_descriptors_1.default(query, subresAsQuery);
}
ep.query = query;
return url_1.default.format(ep);
}
exports.getReqUrl = getReqUrl;