YSpace 项目功能介绍 ==================== 一、项目简介 ------------ YSpace 是一个基于 Go 开发的个人空间和资源目录系统。它可以把链接、文字、文件、图片和多级目录集中管理,并通过网页提供浏览、预览、下载、留言和付费访问等功能。 系统采用服务端渲染结合前端异步交互的方式,编译后可以作为独立程序运行,适合个人主页、资源分享站、资料归档空间和小型内容展示站使用。 二、内容管理功能 ------------------ 1. 多级目录管理 - 支持创建根目录和多级子目录。 - 支持目录备注、目录进入、返回上级和目录搜索。 - 支持手动调整内容顺序,也可以通过拖拽改变同级排序或移动到其他目录。 - 删除目录时会同步处理目录下的内容和关联文件。 2. 链接管理 - 支持添加外部网址并设置显示标题。 - 链接可以设置为免费内容或付费内容。 - 管理员可以随时修改链接标题、地址和购买价格。 3. 文字内容 - 支持创建和保存文字资料。 - 访客可以在线查看文字内容,也可以将文字内容作为文本文件下载。 - 管理员可以直接打开文本查看器进行编辑。 4. 文件和图片 - 支持上传普通文件和常见图片。 - 图片支持在线预览,普通文件支持下载。 - 文件可以设置公开状态、访问密码、购买价格和是否允许下载。 - 管理员可以修改文件名称、访问方式、价格和下载权限。 三、访客访问功能 ------------------ 1. 内容公开控制 - 内容可以设置为公开或非公开。 - 非公开内容需要输入访问密码后才能查看。 - 目录解锁后,可以继续浏览其中允许访问的内容。 - 访问授权保存在当前浏览器的临时会话中,密码本身不会保存到浏览器中。 2. 目录搜索 - 支持搜索目录、子目录和文件名称。 - 受密码保护或需要购买的内容可以作为锁定项目显示。 - 未获得授权时,不会继续展示受保护目录内部的内容和直接操作入口。 3. 内容预览与下载 - 图片可以在页面中预览。 - 文字可以在线阅读。 - 文件可以按照管理员设置进行在线读取或下载。 - 服务端会在访问、预览和下载时再次检查目录权限、密码权限和购买权限。 四、后台管理功能 ------------------ 1. 管理员登录 - 支持管理员密码登录和退出。 - 管理密码经过安全哈希处理后保存,不保存明文密码。 - 支持修改管理员密码,修改后已有登录会话会失效。 - 登录失败次数过多时会暂时限制继续尝试。 2. 内容维护 - 支持创建、编辑、删除目录和内容。 - 支持调整顺序、移动层级和修改访问规则。 - 管理员可以查看所有内容,不受访客公开、密码和购买限制影响。 3. 管理页面交互 - 管理操作支持异步刷新,减少整页跳转。 - 编辑窗口、确认窗口、文本查看器和图片查看器均可在页面内使用。 - 页面会记录访客当前所在目录和使用中的功能面板,操作完成后可以尽量恢复原来的浏览位置。 五、文件上传功能 ------------------ 1. 支持普通文件上传和分片上传。 2. 单个文件最大支持 256MB。 3. 分片上传支持上传进度显示、断点续传、失败重试、任务取消和多文件队列。 4. 浏览器可以记住未完成的上传任务,重新打开页面后继续上传。 5. 服务端会校验文件大小、文件类型、上传位置和分片顺序。 6. 上传完成后自动创建对应的文件或图片内容记录,并应用管理员选择的公开、下载和付费设置。 7. 长时间未更新的临时上传任务会自动清理,避免长期占用存储空间。 六、支付宝付费功能 -------------------- 1. 支持为目录、链接、文字、文件和图片设置购买金额,金额为零时表示免费。 2. 管理员可以配置支付宝应用信息、密钥、生产或沙箱环境、订单名称和支付通知设置。 3. 访客发起购买后,系统创建临时订单并生成支付宝当面付二维码。 4. 前端会显示付款二维码并查询订单状态,支付成功后自动授予访问权限。 5. 订单有效期为 5 分钟,超时未支付的订单会被关闭和清理。 6. 付费目录的授权覆盖该目录及其后代内容;付费文件、图片、文字和链接只授权对应内容。 7. 支付完成后会生成购买凭证,访客可以在其他浏览器中输入凭证恢复访问权限。 8. 系统会校验支付宝请求、响应和异步通知的 RSA2 签名,并核对应用身份和支付金额。 9. 支付创建操作具备频率限制,短时间内重复发起过多购买请求会被暂时限制。 10. 管理员可以在后台查看已支付订单。 11. 当前版本提供购买和访问授权功能,不包含退款流程。 七、留言板功能 ---------------- 1. 访客可以发布姓名和留言,未填写姓名时使用匿名访客身份。 2. 支持留言分页、顶层留言回复和管理员回复。 3. 访客只能回复自己发布的顶层留言,管理员可以回复任意留言。 4. 管理员可以发布管理员留言、置顶留言和删除留言。 5. 留言内容和姓名有长度限制,系统会清理无效字符并保存作者识别信息。 6. 留言提交后可以保留当前页面的目录和面板状态。 八、页面装修功能 ------------------ 1. 支持修改空间名称和管理入口名称。 2. 支持自定义 CSS 和 JavaScript。 3. 支持设置背景图片、背景视频、背景位置、背景尺寸、遮罩透明度和面板透明度。 4. 支持设置主色、强调色、列表样式和文字效果。 5. 支持针对标题、目录列表、内容节点、留言板和操作按钮等区域单独调整颜色、背景、字体、边框和字号。 6. 支持编辑顶部友情链接。 7. 支持上传和更换网站图标。 8. 页面装修设置会保存到数据库,并在访客页面中生效。 九、安全与权限功能 -------------------- 1. 管理员会话、目录解锁会话和购买访问授权相互独立。 2. 密码类信息使用哈希形式保存,访问凭证和支付访客标识不会以明文形式写入数据库。 3. 所有后台操作都会校验管理员身份和请求方法。 4. 文件名会经过清理,避免直接使用客户端路径保存文件。 5. 文件大小、文件类型、上传分片、访问节点和购买金额都会在服务端校验。 6. 非管理员访问不存在页面或频繁访问受保护管理功能时,系统会记录违规行为,并可在达到阈值后暂时封禁相关 IP。 7. 管理员可以查看和解除 IP 黑名单。 8. 自定义跳转、顶部链接和文件响应均有安全校验,降低开放跳转和错误内容解析风险。 十、数据与运行特性 -------------------- 1. 支持 SQLite 和 MySQL 两种数据库,首次配置时可以选择使用的数据库类型。 2. 系统会自动创建所需数据表,并在升级时补充缺少的字段和索引。 3. 目录、内容、留言、设置、订单和权限记录保存在数据库中,上传文件保存在文件存储区域。 4. 程序启动后会显示可访问的服务地址,用户可以使用浏览器打开系统。 5. 支持 Windows 双击启动,也支持通过 Go 命令编译运行。 6. 运行数据可以独立保存,便于备份和迁移。 7. 管理会话、密码解锁会话和部分频率限制状态保存在进程内存中,程序重启后临时会话会失效。 十一、功能限制与建议 ---------------------- 1. 单个上传文件最大为 256MB。 2. 分片上传默认以 4MB 为一个分片。 3. 付费订单默认 5 分钟后过期。 4. 生产环境接入支付宝时,建议使用公网可访问的 HTTPS 支付通知服务。 5. 自定义 JavaScript 具有较高页面控制权限,应仅由可信管理员使用。 6. 备份时应同时备份数据库和上传文件,否则只能恢复内容记录,无法恢复实际文件。