# teafile **Repository Path**: sky819/teafile ## Basic Information - **Project Name**: teafile - **Description**: TeaFile 是一个基于 Spring Boot 的文件上传服务,主要功能包括: - 支持任意文件上传 - 上传 PDF 文件自动转换为图片 - 提供文件访问 URL - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-01-05 - **Last Updated**: 2025-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TeaFile 文件上传服务 TeaFile 是一个基于 Spring Boot 的文件上传服务,主要功能包括: - 支持任意文件上传 - 上传 PDF 文件自动转换为图片 - 提供文件访问 URL ## 功能特性 - **文件上传**:支持上传任意类型文件,单文件最大 10MB - **PDF 转换**:上传 PDF 文件自动转换为 300DPI 的 PNG 图片 - **文件存储**: - 文件按年月组织存储(yyyyMM) - 支持 UUID 命名或原始文件名存储 - 文件可通过 URL 直接访问 ## 技术栈 - Spring Boot - Apache PDFBox(PDF 转换) - Swagger(API 文档) ## 快速开始 1. 启动应用: ```bash mvn spring-boot:run ``` 2. 访问 API 文档: ``` http://localhost:8080/teafile/swagger-ui.html ``` 3. 使用 `/api/files/upload` 接口上传文件 ## 配置说明 配置文件:`src/main/resources/application.properties` | 配置项 | 默认值 | 说明 | |--------|--------|------| | server.port | 8080 | 服务端口 | | server.servlet.context-path | /teafile | 上下文路径 | | file.storage.root-path | ./storage | 文件存储根目录 | | file.storage.use-uuid-naming | false | 是否使用 UUID 命名文件 | | spring.servlet.multipart.max-file-size | 10MB | 单文件最大大小 | | spring.servlet.multipart.max-request-size | 50MB | 请求最大大小 | | swagger.enabled | true | 是否启用 Swagger | ## 文件存储结构 ``` storage/ └── yyyyMM/ # 按年月组织的存储目录 ├── 文件名.pdf ├── 文件名_page_1.png └── 文件名_page_2.png ``` ## API 示例 ### 上传文件 **请求** ```bash curl -X POST -F "file=@example.pdf" http://localhost:8080/teafile/api/files/upload ``` **响应** ```json { "originalFileUrl": "http://localhost:8080/teafile/202501/example.pdf", "convertedImageUrls": [ "http://localhost:8080/teafile/202501/example_page_1.png", "http://localhost:8080/teafile/202501/example_page_2.png" ] } ``` ## 开发指南 1. 克隆项目 2. 安装依赖: ```bash mvn install ``` 3. 运行测试: ```bash mvn test ``` 4. 打包: ```bash mvn package ``` ## 许可证 MIT License