This commit is contained in:
2025-02-25 10:01:12 +08:00
parent b3c2587903
commit 6a4ff85683
9 changed files with 64 additions and 45 deletions

33
src/module/config.ts Normal file
View File

@@ -0,0 +1,33 @@
import { useConfig } from '@kevisual/use-config';
import { useFileStore } from '@kevisual/use-config/file-store';
export const fileStore = useFileStore('proxy-upload');
type ConfigType = {
api: {
/**
* API host address
*/
host: string;
path?: string;
port?: number;
};
proxy: {
port?: number;
/**
* self domain kevisual.xiongxiao.me
*/
domain: string;
/**
* resources path
* https://minio.xiongxiao.me/resources
*/
resources: string;
/**
* allow origin xiongxiao.me zxj.im silkyai.cn
* 允许跨域访问的地址
*/
allowOrigin: string[];
};
};
export const config = useConfig<ConfigType>();

View File

@@ -1,7 +1,6 @@
import path from 'path';
import { redis, subscriber } from './redis/redis.ts';
import { useFileStore } from '@kevisual/use-config/file-store';
import { useConfig } from '@kevisual/use-config';
import { config, fileStore } from '../module/config.ts';
import fs from 'fs';
import crypto from 'crypto';
import { nanoid } from 'nanoid';
@@ -10,8 +9,7 @@ import { promisify } from 'util';
import { fetchApp, fetchDomain, fetchTest } from './query/get-router.ts';
const pipelineAsync = promisify(pipeline);
const { resources, api } = useConfig<{ resources: string; api: { host: string; path: string } }>();
const fileStore = useFileStore('upload');
const { resources } = config?.proxy || { resources: 'https://minio.xiongxiao.me/resources' };
const status: { [key: string]: boolean } = {};
const demoData = {
user: 'root',
@@ -255,10 +253,7 @@ export const downloadUserAppFiles = async (user: string, app: string, data: type
};
}
if (data.type === 'oss') {
let serverPath = 'https://' + resources + '/';
if(resources.includes('localhost')) {
serverPath = 'http://' + resources + '/';
}
let serverPath = new URL(resources).href + '/';
// server download file
for (let i = 0; i < files.length; i++) {
const file = files[i];

View File

@@ -1,22 +1,17 @@
import { getDNS, isLocalhost } from '@/utils/dns.ts';
import http from 'http';
import { UserApp } from './get-user-app.ts';
import { useFileStore } from '@kevisual/use-config/file-store';
import { config, fileStore } from '../module/config.ts';
import path from 'path';
import fs from 'fs';
import { useConfig } from '@kevisual/use-config';
import { getContentType } from './get-content-type.ts';
import { sleep } from '@/utils/sleep.ts';
const { api, domain, allowedOrigins } = useConfig<{
api: {
host: string;
port?: number;
};
domain: string;
allowedOrigins: string[];
}>();
const fileStore = useFileStore('upload');
const api = config?.api || { host: 'kevisual.xiongxiao.me', path: '/api/router' };
const domain = config?.proxy?.domain || 'kevisual.xiongxiao.me';
const allowedOrigins = config?.proxy?.allowOrigin || [];
const noProxyUrl = ['/', '/favicon.ico'];
export const handleRequest = async (req: http.IncomingMessage, res: http.ServerResponse) => {
if (req.url === '/favicon.ico') {
@@ -34,7 +29,7 @@ export const handleRequest = async (req: http.IncomingMessage, res: http.ServerR
let header: any = {};
if (req.headers?.['Authorization']) {
header.authorization = req.headers['Authorization'];
} else if(req.headers?.['authorization']) {
} else if (req.headers?.['authorization']) {
header.authorization = req.headers['authorization'];
}
if (req.headers?.['Content-Type']) {

View File

@@ -1,11 +1,6 @@
import { useConfig } from '@kevisual/use-config';
const { resources, api } = useConfig<{
resources: string;
api: { host: string; path: string };
ƒ;
}>();
import { config } from '../config.ts';
const api = config?.api || { host: 'kevisual.xiongxiao.me', path: '/api/router' };
const apiPath = api.path || '/api/router';
export const fetchTest = async (id: string) => {
const fetchUrl = 'http://' + api.host + apiPath;