Forráskód Böngészése

更新环境配置,添加UPLOAD_FOLDER变量并移除文件上传中的默认文件夹设置

wuyi 4 hónapja
szülő
commit
7294264841
7 módosított fájl, 18 hozzáadás és 104 törlés
  1. 2 1
      .env
  2. 2 1
      .env.production
  3. 0 93
      README.md
  4. 5 1
      src/config/env.ts
  5. 0 4
      src/controllers/file.controller.ts
  6. 6 4
      src/services/file.service.ts
  7. 3 0
      src/types/fastify.d.ts

+ 2 - 1
.env

@@ -18,4 +18,5 @@ OSS_KEY=LTAI5tEwZWpR1U3ZpSJ4RMJE
 OSS_SECRET=YTAgTr8lWX4IrtDBM2Efpqa0iD5FfE
 OSS_BUCKET=afjp282x4b
 OSS_REGION=oss-ap-southeast-3
-OSS_ENDPOINT=https://oss-ap-southeast-3.aliyuncs.com
+OSS_ENDPOINT=https://oss-ap-southeast-3.aliyuncs.com
+UPLOAD_FOLDER=base

+ 2 - 1
.env.production

@@ -18,4 +18,5 @@ OSS_KEY=LTAI5tEwZWpR1U3ZpSJ4RMJE
 OSS_SECRET=YTAgTr8lWX4IrtDBM2Efpqa0iD5FfE
 OSS_BUCKET=afjp282x4b
 OSS_REGION=oss-ap-southeast-3
-OSS_ENDPOINT=https://oss-ap-southeast-3.aliyuncs.com
+OSS_ENDPOINT=https://oss-ap-southeast-3.aliyuncs.com
+UPLOAD_FOLDER=base

+ 0 - 93
README.md

@@ -1,93 +0,0 @@
-# Robin API
-
-一个基于 Fastify 和 TypeORM 的个人记账 API。
-
-## 功能特性
-
-- 用户认证(注册/登录)
-- JWT 认证
-- 钱包管理
-- 收支记录管理
-- Swagger API 文档
-
-## 技术栈
-
-- Fastify
-- TypeORM
-- MySQL
-- TypeScript
-- JWT
-
-## 开始使用
-
-### 环境要求
-
-- Node.js >= 16
-- MySQL >= 8.0
-- Yarn
-
-### 安装
-
-1. 克隆项目
-
-```bash
-git clone https://github.com/yourusername/robin-api.git
-cd robin-api
-```
-
-2. 安装依赖
-
-```bash
-yarn install
-```
-
-3. 配置环境变量
-
-复制 `.env.example` 文件为 `.env`,并根据你的环境修改配置:
-
-```bash
-cp .env.example .env
-```
-
-4. 创建数据库
-
-```sql
-CREATE DATABASE robin_db;
-```
-
-5. 运行开发服务器
-
-```bash
-yarn dev
-```
-
-### API 文档
-
-启动服务器后,访问 `http://localhost:3000/documentation` 查看 Swagger API 文档。
-
-## API 端点
-
-### 用户
-
-- POST /api/users/register - 用户注册
-- POST /api/users/login - 用户登录
-
-### 钱包
-
-- POST /api/wallets - 创建钱包
-- GET /api/wallets - 获取所有钱包
-- GET /api/wallets/:id - 获取单个钱包
-- PUT /api/wallets/:id - 更新钱包
-- DELETE /api/wallets/:id - 删除钱包
-
-### 记录
-
-- POST /api/records - 创建记录
-- GET /api/records - 获取所有记录
-- GET /api/records/:id - 获取单个记录
-- PUT /api/records/:id - 更新记录
-- DELETE /api/records/:id - 删除记录
-
-## 许可证
-
-MIT 

+ 5 - 1
src/config/env.ts

@@ -15,7 +15,8 @@ export const schema = {
     'OSS_SECRET',
     'OSS_BUCKET',
     'OSS_REGION',
-    'OSS_ENDPOINT'
+    'OSS_ENDPOINT',
+    'UPLOAD_FOLDER'
   ],
   properties: {
     PORT: {
@@ -63,6 +64,9 @@ export const schema = {
     },
     OSS_ENDPOINT: {
       type: 'string'
+    },
+    UPLOAD_FOLDER: {
+      type: 'string'
     }
   }
 }

+ 0 - 4
src/controllers/file.controller.ts

@@ -28,7 +28,6 @@ export class FileController {
       }
 
       const result = await this.fileService.uploadZip(buffer, filename, {
-        folder: 'tweb',
         maxSize: 100 * 1024 * 1024 // 100MB
       })
 
@@ -63,7 +62,6 @@ export class FileController {
       const mimeType = data.mimetype
 
       const result = await this.fileService.uploadFile(buffer, filename, mimeType, {
-        folder: 'tweb',
         maxSize: 10 * 1024 * 1024 // 10MB
       })
 
@@ -97,7 +95,6 @@ export class FileController {
       const filename = data.filename
 
       const result = await this.fileService.uploadImage(buffer, filename, {
-        folder: 'tweb',
         maxSize: 5 * 1024 * 1024 // 5MB
       })
 
@@ -131,7 +128,6 @@ export class FileController {
       const filename = data.filename
 
       const result = await this.fileService.uploadDocument(buffer, filename, {
-        folder: 'tweb',
         maxSize: 50 * 1024 * 1024 // 50MB
       })
 

+ 6 - 4
src/services/file.service.ts

@@ -21,11 +21,13 @@ export interface FileUploadOptions {
 export class FileService {
   private ossClient: OSS
   private bucket: string
+  private defaultFolder: string
 
   constructor(app: FastifyInstance) {
     const config = app.config
     
     this.bucket = config.OSS_BUCKET
+    this.defaultFolder = config.UPLOAD_FOLDER
     this.ossClient = new OSS({
       accessKeyId: config.OSS_KEY,
       accessKeySecret: config.OSS_SECRET,
@@ -76,7 +78,7 @@ export class FileService {
     
     // 获取当前日期文件夹
     const dateFolder = this.getDateFolder()
-    const baseFolder = options.folder || 'tweb'
+    const baseFolder = options.folder || this.defaultFolder
     const targetFolder = `${baseFolder}/${dateFolder}`
     
     // 构建文件路径
@@ -132,7 +134,7 @@ export class FileService {
     
     // 获取当前日期文件夹
     const dateFolder = this.getDateFolder()
-    const baseFolder = options.folder || 'tweb'
+    const baseFolder = options.folder || this.defaultFolder
     const targetFolder = `${baseFolder}/${dateFolder}`
     
     // 构建文件路径
@@ -181,7 +183,7 @@ export class FileService {
 
     return this.uploadFile(buffer, originalName, 'image/jpeg', {
       ...options,
-      folder: options.folder || 'tweb',
+      folder: options.folder || this.defaultFolder,
       allowedTypes: imageTypes,
       maxSize: options.maxSize || 10 * 1024 * 1024 // 默认10MB
     })
@@ -210,7 +212,7 @@ export class FileService {
 
     return this.uploadFile(buffer, originalName, 'application/pdf', {
       ...options,
-      folder: options.folder || 'tweb',
+      folder: options.folder || this.defaultFolder,
       allowedTypes: documentTypes,
       maxSize: options.maxSize || 50 * 1024 * 1024 // 默认50MB
     })

+ 3 - 0
src/types/fastify.d.ts

@@ -22,6 +22,9 @@ declare module 'fastify' {
       OSS_BUCKET: string
       OSS_REGION: string
       OSS_ENDPOINT: string
+      
+      // 文件上传配置
+      UPLOAD_FOLDER: string
     }
     dataSource: DataSource
   }