chenpei cd6e40d9d2 优化:网络传输性能和稳定性 - TCP缓冲区+并发控制优化
主要改动:
1. TCP缓冲区优化(16MB)- 解决公网上传速度慢问题
2. 并发数降低到1-3 - 避免4并发导致ERR_CONNECTION_RESET
3. 动态并发控制 - 根据网络环境自动调整
4. Nginx超时增加到120s - 支持大分片上传
5. 上传进度修复 - 修复剩余时间计算
6. 新增任务-页面上传器和详情组件
7. 统一部署文档为deploy-remote-build.ps1

问题修复:
- 公网用户上传从200-900KB/s提升到预期3-5MB/s
- 内网用户上传更稳定,无连接重置错误
- UploadProgress组件剩余时间计算修正

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-27 09:33:09 +08:00
2025-10-26 09:11:04 +08:00
2025-10-26 09:11:04 +08:00

由壹点3D素材

一个现代化的3D素材分享平台,采用苹果官方UI设计规范。

技术栈

  • 前端: Next.js 14 + React 18 + TypeScript + TailwindCSS
  • 认证: NextAuth.js
  • 数据库: PostgreSQL + Prisma ORM
  • 存储: MinIO S3 (预览图) + 本地存储 (压缩包)

功能特性

  • ✅ 用户注册/登录系统
  • ✅ 素材上传(预览图 + 压缩包)
  • ✅ 素材浏览与下载
  • ✅ 管理员后台管理
  • ✅ 用户管理
  • ✅ 苹果风格UI设计

快速开始

1. 安装依赖

npm install

2. 配置环境变量

复制 .env.local 文件并填入你的配置:

# Database
DATABASE_URL=your_postgresql_url

# NextAuth
NEXTAUTH_SECRET=your_secret_key
NEXTAUTH_URL=http://localhost:3000

# MinIO S3 Storage
S3_ENDPOINT=your_s3_endpoint
S3_BUCKET=your_bucket_name
S3_ACCESS_KEY_ID=your_access_key
S3_SECRET_ACCESS_KEY=your_secret_key
S3_REGION=us-east-1
S3_PUBLIC_DOMAIN=your_public_domain
S3_FILE_PATH=your_file_path/

# Local storage
UPLOAD_DIR=./uploads

3. 初始化数据库

# 生成 Prisma Client
npm run prisma:generate

# 推送数据库模式
npm run prisma:push

4. 创建管理员账号

首次运行后,注册一个账号,然后在数据库中手动将该用户的 role 字段设置为 ADMIN。

UPDATE users SET role = 'ADMIN' WHERE email = 'your@email.com';

5. 启动开发服务器

npm run dev

访问 http://localhost:3000

项目结构

gongxiangp2/
├── app/                    # Next.js App Router
│   ├── api/               # API 路由
│   │   ├── auth/         # 认证相关
│   │   ├── materials/    # 素材相关
│   │   └── admin/        # 管理员相关
│   ├── login/            # 登录页面
│   ├── register/         # 注册页面
│   ├── admin/            # 管理员页面
│   └── page.tsx          # 首页
├── components/            # React 组件
│   ├── Header.tsx
│   └── UploadModal.tsx
├── lib/                   # 工具库
│   ├── prisma.ts         # Prisma 客户端
│   ├── auth.ts           # NextAuth 配置
│   └── s3.ts             # S3 存储服务
├── prisma/               # Prisma 配置
│   └── schema.prisma     # 数据库模式
└── uploads/              # 本地上传文件存储

数据库模型

User (用户)

  • id: UUID
  • email: 邮箱
  • username: 用户名
  • password: 密码 (加密)
  • role: 角色 (USER/ADMIN)

Material (素材)

  • id: UUID
  • previewUrl: 预览图URL (S3)
  • productModel: 商品型号
  • sceneName: 场景名称
  • authorName: 作者花名
  • zipFileName: 压缩包文件名
  • zipFilePath: 压缩包本地路径
  • userId: 用户ID (外键)

部署

生产环境构建

npm run build
npm start

环境变量

确保在生产环境中设置所有必要的环境变量,特别是:

  • NEXTAUTH_SECRET: 使用强随机字符串
  • NEXTAUTH_URL: 设置为生产域名

License

MIT

Description
共享平台项目 - 素材共享管理系统
Readme 302 MiB
Languages
Rust 76.9%
TypeScript 19.4%
JavaScript 2.2%
PowerShell 0.7%
Python 0.3%
Other 0.4%