# saveit **Repository Path**: bjdaijun/saveit ## Basic Information - **Project Name**: saveit - **Description**: 基于大模型生成的web应用。用户将文本拷贝到网页,在另一台电脑打开网页可以得到保存的文本 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-11 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # saveit #### 介绍 基于 Go 语言开发的轻量级文本/文件临时存储分享工具。用户可以快速保存文本内容或上传文件,生成分享链接,在另一台设备上打开链接即可查看或下载。所有数据支持设置自动过期时间,到期后自动清理。 #### 软件架构 - **后端**: Go + 标准库 (net/http) - **前端**: HTML5 + CSS3 + JavaScript - **数据存储**: 文件系统 (JSON格式) - **文件上传**: UUID 命名,防止冲突 - **自动清理**: 每小时检查并删除过期数据 **核心功能:** 1. **文本保存与分享**: 将文本内容保存到服务器,生成 6 位数字 ID 的访问链接 2. **文件上传下载**: 支持最大 100MB 的文件上传,返回完整下载 URL 3. **自定义过期时间**: 可设置数据的保留时长(分钟),默认 60 分钟 4. **倒计时显示**: 实时显示数据剩余有效时间 5. **自动清理机制**: 后台定时任务每小时清理过期数据 #### 安装教程 ##### 环境要求 - Go 1.16+ - Windows / Linux / macOS ##### 方式一:直接运行(推荐) ```bash # 克隆仓库 git clone cd saveit # 安装依赖 go mod download # 运行服务 go run main.go ``` ##### 方式二:编译运行 ```bash # 编译为可执行文件 go build -o saveit main.go # 运行 ./saveit # Linux/macOS saveit.exe # Windows ``` ##### 方式三:Docker 部署 ```bash # 使用 docker-compose docker-compose up -d # 或使用 Docker 命令 docker build -t saveit . docker run -d -p 8080:8080 --name saveit saveit ``` 服务启动后,访问 `http://localhost:8080` 即可使用。 #### 使用说明 ##### 1. 文本保存与分享 **步骤:** 1. 访问首页 `http://localhost:8080` 2. 在文本框中输入要保存的内容 3. 设置保留时间(分钟),默认 60 分钟 4. 点击「保存」按钮 5. 系统自动生成唯一链接,如:`http://localhost:8080/123456` 6. 复制链接分享给他人,对方打开即可查看 **特性:** - ✅ 页面实时显示倒计时 - ✅ 可随时修改内容并重新保存 - ✅ 到期后自动删除,保护隐私 ##### 2. 文件上传 **API 接口:** ``` POST http://localhost:8080/upload Content-Type: multipart/form-data 参数: - file: 要上传的文件(最大 100MB) ``` **响应示例:** ```json { "url": "http://localhost:8080/file/a1b2c3d4-e5f6-7890-abcd-ef1234567890.jpg", "filename": "a1b2c3d4-e5f6-7890-abcd-ef1234567890.jpg" } ``` **使用示例(curl):** ```bash curl -X POST -F "file=@example.pdf" http://localhost:8080/upload ``` ##### 3. 文件下载 访问上传时返回的 URL 即可下载文件: ``` GET http://localhost:8080/file/{filename} ``` ##### 4. API 接口说明 **保存文本(根路径):** ```bash POST http://localhost:8080/ Content-Type: application/json { "data": "要保存的文本内容", "minutes": 60 } # 响应 { "redirect": "/123456" } ``` **获取文本内容:** ```bash # 网页形式 GET http://localhost:8080/123456 # JSON 形式(纯文本) GET http://localhost:8080/123456?json=true ``` **更新文本内容:** ```bash POST http://localhost:8080/123456 Content-Type: application/json { "data": "新的文本内容", "minutes": 120 } ``` ##### 5. 目录结构 ``` saveit/ ├── data/ # 数据存储目录 │ ├── *.json # 文本数据文件(以 ID 命名) │ └── upload/ # 上传文件存储目录 │ └── *.exe # UUID 命名的上传文件 ├── index.html # 前端页面模板 ├── main.go # 主程序入口 ├── go.mod # Go 模块依赖 ├── Dockerfile # Docker 构建文件 └── docker-compose.yml # Docker Compose 配置 ``` ##### 界面预览 ![输入图片说明](https://foruda.gitee.com/images/1741654775972425389/ebe16896_84410.png "屏幕截图") #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request