update
This commit is contained in:
@@ -39,6 +39,14 @@ export const s3Proxy = async (req: http.IncomingMessage, res: http.ServerRespons
|
||||
if (objectPath.startsWith(s3.bucket + '/')) {
|
||||
objectPath = objectPath.replace(s3.bucket + '/', '');
|
||||
}
|
||||
if (objectPath.endsWith('/')) {
|
||||
// 获取目录列表
|
||||
res.statusCode = 200;
|
||||
res.setHeader('Content-Type', 'application/json; charset=utf-8');
|
||||
const list = await oss.listObjects(objectPath);
|
||||
res.end(JSON.stringify(list, null, 2));
|
||||
return;
|
||||
}
|
||||
oss.getObject(objectPath).then((response) => {
|
||||
if (!response.Body) {
|
||||
res.statusCode = 404;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: '配置项介绍'
|
||||
description: 'Assistant 应用配置项完整说明文档,包括应用信息、代理、服务器、认证、AI等各项配置详解'
|
||||
description: 'Assistant 应用配置项完整说明文档,包括应用信息、代理、服务器、认证、AI、存储等各项配置详解'
|
||||
tags: ['config', 'configuration', 'settings', 'assistant']
|
||||
createdAt: '2025-12-18'
|
||||
---
|
||||
@@ -22,28 +22,38 @@ createdAt: '2025-12-18'
|
||||
}
|
||||
```
|
||||
|
||||
- **id**: `string` - 应用唯一标识符,用于识别具体设备或应用实例
|
||||
- **url**: `string` - 应用访问地址
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | `string` | 应用唯一标识符,用于识别具体设备或应用实例 |
|
||||
| url | `string` | 应用访问地址 |
|
||||
|
||||
## token - 访问令牌
|
||||
|
||||
用于身份验证的访问令牌。
|
||||
|
||||
```json
|
||||
{
|
||||
"token": "your-access-token"
|
||||
}
|
||||
```
|
||||
|
||||
- **token**: `string` - 用于身份验证的访问令牌
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| token | `string` | 访问令牌 |
|
||||
|
||||
## registry - 注册中心
|
||||
|
||||
注册中心地址,默认为 `https://kevisual.cn`。
|
||||
|
||||
```json
|
||||
{
|
||||
"registry": "https://kevisual.cn"
|
||||
}
|
||||
```
|
||||
|
||||
- **registry**: `string` - 注册中心地址,默认为 `https://kevisual.cn`
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| registry | `string` | 注册中心地址 |
|
||||
|
||||
## proxy - 前端代理配置
|
||||
|
||||
@@ -61,16 +71,18 @@ createdAt: '2025-12-18'
|
||||
}
|
||||
```
|
||||
|
||||
- **proxy**: `ProxyInfo[]` - 代理配置数组
|
||||
- **path**: `string` - 匹配的路径前缀
|
||||
- **target**: `string` - 目标服务器地址
|
||||
- **pathname**: `string` - 转发到目标服务器的路径
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| proxy | `ProxyInfo[]` | 代理配置数组 |
|
||||
| proxy[].path | `string` | 匹配的路径前缀 |
|
||||
| proxy[].target | `string` | 目标服务器地址 |
|
||||
| proxy[].pathname | `string` | 转发到目标服务器的路径 |
|
||||
|
||||
示例:访问 `/root/home` 会被转发到 `https://kevisual.cn/root/home`
|
||||
|
||||
## api - API代理配置
|
||||
|
||||
专门用于API请求的代理配置。
|
||||
专门用于 API 请求的代理配置,例如 `/api` 或 `/v1` 开头的请求。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -89,17 +101,23 @@ createdAt: '2025-12-18'
|
||||
}
|
||||
```
|
||||
|
||||
- **api.proxy**: `ProxyInfo[]` - API代理配置数组,配置方式同 `proxy`
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|{------|
|
||||
| api.proxy | `ProxyInfo[]` | API代理配置数组 |
|
||||
|
||||
## description - 应用描述
|
||||
|
||||
应用的描述信息。
|
||||
|
||||
```json
|
||||
{
|
||||
"description": "我的助手应用"
|
||||
}
|
||||
```
|
||||
|
||||
- **description**: `string` - 应用的描述信息
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| description | `string` | 应用描述信息 |
|
||||
|
||||
## server - 服务器配置
|
||||
|
||||
@@ -114,8 +132,10 @@ createdAt: '2025-12-18'
|
||||
}
|
||||
```
|
||||
|
||||
- **server.path**: `string` - 服务器监听地址,默认 `127.0.0.1`
|
||||
- **server.port**: `number` - 服务器监听端口号
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| server.path | `string`` | 服务器监听地址,默认 `127.0.0.1` |
|
||||
| server.port | `number` | 服务器监听端口号 |
|
||||
|
||||
## share - 远程访问配置
|
||||
|
||||
@@ -130,8 +150,10 @@ createdAt: '2025-12-18'
|
||||
}
|
||||
```
|
||||
|
||||
- **share.url**: `string` - 远程应用代理地址
|
||||
- **share.enabled**: `boolean` - 是否启用远程访问功能
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| share.url | `string` | 远程应用代理地址 |
|
||||
| share.enabled | `boolean` | 是否启用远程访问功能 |
|
||||
|
||||
## watch - 文件监听配置
|
||||
|
||||
@@ -145,17 +167,23 @@ createdAt: '2025-12-18'
|
||||
}
|
||||
```
|
||||
|
||||
- **watch.enabled**: `boolean` - 是否启用文件监听
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| watch.enabled | `boolean` | 是否启用文件监听 |
|
||||
|
||||
## home - 首页路径
|
||||
|
||||
访问根路径 `/` 时自动重定向的首页地址。
|
||||
|
||||
```json
|
||||
{
|
||||
"home": "/root/home"
|
||||
}
|
||||
```
|
||||
|
||||
- **home**: `string` - 访问根路径 `/` 时自动重定向的首页地址
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| home | `string` | 首页路径 |
|
||||
|
||||
## ai - AI功能配置
|
||||
|
||||
@@ -172,28 +200,32 @@ createdAt: '2025-12-18'
|
||||
}
|
||||
```
|
||||
|
||||
- **ai.enabled**: `boolean` - 是否启用AI功能
|
||||
- **ai.provider**: `string` - AI提供商,可选 `'DeepSeek'` | `'Custom'` 或其他自定义值
|
||||
- **ai.apiKey**: `string` - API密钥
|
||||
- **ai.model**: `string` - 使用的模型名称
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| ai.enabled | `boolean` | 是否启用 AI 功能 |
|
||||
| ai.provider | `string` | AI 提供商,可选 `'DeepSeek'` | `'Custom'` |
|
||||
| ai.apiKey | `string` | API 密钥 |
|
||||
| ai.model | `string` | 使用的模型名称 |
|
||||
|
||||
## scripts - 自定义脚本
|
||||
## asr - 语音识别配置
|
||||
|
||||
定义自定义脚本命令,在应用启动时执行。
|
||||
配置阿里云语音识别服务。
|
||||
|
||||
```json
|
||||
{
|
||||
"scripts": {
|
||||
"start": "node server.js",
|
||||
"build": "npm run build",
|
||||
"custom": "echo 'Hello World'"
|
||||
"asr": {
|
||||
"enabled": true,
|
||||
"token": "your-asr-token"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- **scripts**: `Record<string, string>` - 键值对形式的脚本配置
|
||||
- key: 脚本名称
|
||||
- value: 要执行的命令
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| asr.enabled | `boolean` | 是否启用语音识别功能 |
|
||||
| asr.token | `string` | 阿里云 ASR 服务令牌 |
|
||||
|
||||
使用模型:`qwen3-asr-flash-realtime`
|
||||
|
||||
## auth - 认证和权限配置
|
||||
|
||||
@@ -207,33 +239,70 @@ createdAt: '2025-12-18'
|
||||
}
|
||||
```
|
||||
|
||||
- **auth**: `AuthPermission` - 认证权限配置对象
|
||||
- **share**: 共享访问模式
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| auth.share | `string` | 共享访问模式,影响 pages 目录下页面的对外共享权限 |
|
||||
|
||||
**share 可选值:**
|
||||
- `"protected"` - 需要认证才能访问(默认)
|
||||
- `"public"` - 公开访问,无需认证
|
||||
- `"private"` - 私有访问,完全禁止外部访问
|
||||
|
||||
> **说明**: `share` 配置影响 pages 目录下页面的对外共享权限
|
||||
## storage - 存储配置
|
||||
|
||||
## https - HTTPS证书配置
|
||||
配置文件存储,支持本地文件系统和 S3/MinIO 两种存储方式。
|
||||
|
||||
配置HTTPS服务和证书。
|
||||
### 本地文件存储 (FileStorage)
|
||||
|
||||
```json
|
||||
{
|
||||
"https": {
|
||||
"type": "https",
|
||||
"keyPath": "/path/to/private.key",
|
||||
"certPath": "/path/to/certificate.crt"
|
||||
"storage": [
|
||||
{
|
||||
"id": "local-storage",
|
||||
"path": "./uploads",
|
||||
"type": "local"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- **https.type**: `'https' | 'http'` - 服务协议类型,默认 `'http'`
|
||||
- **https.keyPath**: `string` - SSL证书私钥文件路径
|
||||
- **https.certPath**: `string` - SSL证书文件路径
|
||||
### S3/MinIO 存储 (S3Storage)
|
||||
|
||||
> **注意**: 通常不需要配置HTTPS,可以通过反向代理(如Nginx)实现HTTPS访问
|
||||
```json
|
||||
{
|
||||
"storage": [
|
||||
{
|
||||
"id": "s3-storage",
|
||||
"bucket": "my-bucket",
|
||||
"region": "us-east-1",
|
||||
"accessKeyId": "AKIAXXXXXXXXXXXXXXXX",
|
||||
"secretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"endpoint": "https://s3.amazonaws.com",
|
||||
"type": "s3"
|
||||
},
|
||||
{
|
||||
"id": "minio-storage",
|
||||
"bucket": "my-bucket",
|
||||
"region": "us-east-1",
|
||||
"accessKeyId": "minioadmin",
|
||||
"secretAccessKey": "minioadmin",
|
||||
"endpoint": "http://localhost:9000",
|
||||
"type": "minio"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| storage[].id | `string` | 存储标识符,唯一标识一个存储配置 |
|
||||
| storage[].type | `'local' \| 's3' \| 'minio'` | 存储类型 |
|
||||
| storage[].path | `string` | 本地存储路径(仅 type 为 `local` 时有效) |
|
||||
| storage[].bucket | `string` | 存储桶名称(仅 type 为 `s3` 或 `minio` 时有效) |
|
||||
| storage[].region | `string` | 存储区域(仅 type 为 `s3` 或 `minio` 时有效) |
|
||||
| storage[].accessKeyId | `string` | 访问密钥 ID(仅 type 为 `s3` 或 `minio` 时有效) |
|
||||
| storage[].secretAccessKey | `string` | 访问密钥(仅 type 为 `s3` 或 `minio` 时有效) |
|
||||
| storage[].endpoint | `string` | 服务端点地址(仅 type 为 `s3` 或 `minio` 时有效,可选) |
|
||||
|
||||
## 完整配置示例
|
||||
|
||||
@@ -279,13 +348,29 @@ createdAt: '2025-12-18'
|
||||
"apiKey": "sk-xxx",
|
||||
"model": "deepseek-chat"
|
||||
},
|
||||
"scripts": {
|
||||
"setup": "npm install",
|
||||
"dev": "npm run dev"
|
||||
"asr": {
|
||||
"enabled": true,
|
||||
"token": "your-asr-token"
|
||||
},
|
||||
"auth": {
|
||||
"share": "protected"
|
||||
},
|
||||
"storage": [
|
||||
{
|
||||
"id": "local-storage",
|
||||
"path": "./uploads",
|
||||
"type": "local"
|
||||
},
|
||||
{
|
||||
"id": "s3-storage",
|
||||
"bucket": "my-bucket",
|
||||
"region": "us-east-1",
|
||||
"accessKeyId": "AKIAXXXXXXXXXXXXXXXX",
|
||||
"secretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"endpoint": "https://s3.amazonaws.com",
|
||||
"type": "s3"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
@@ -295,8 +380,8 @@ createdAt: '2025-12-18'
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **安全性**: 不要在配置文件中硬编码敏感信息(如 token、apiKey),建议使用环境变量
|
||||
1. **安全性**: 不要在配置文件中硬编码敏感信息(如 token、apiKey、secretAccessKey),建议使用环境变量
|
||||
2. **端口选择**: 确保选择的端口未被占用
|
||||
3. **代理配置**: 合理配置代理路径,避免路径冲突
|
||||
4. **HTTPS**: 生产环境建议使用反向代理配置HTTPS,而非直接在应用中配置
|
||||
5. **权限控制**: 根据实际需求选择合适的 `auth.share` 模式
|
||||
4. **权限控制**: 根据实际需求选择合适的 `auth.share` 模式
|
||||
5. **存储配置**: 根据应用规模选择合适的存储方式,本地存储适合开发和小型应用,S3/MinIO 适合生产环境
|
||||
|
||||
Reference in New Issue
Block a user