# EasyLanNetdisk **Repository Path**: Codefish9/ELN-EasyLanNetdisk ## Basic Information - **Project Name**: EasyLanNetdisk - **Description**: EasyLanNetdisk,一款局域网环境下的高效文件存储与分享解决方案,支持跨平台使用,实现便捷快速的文件管理。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-22 - **Last Updated**: 2025-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: 网盘, HTML, Python ## README # EasyLanNetdisk 家庭网络磁盘系统 ## 一、项目概述 EasyLanNetdisk 是一个专为家庭场景设计的轻量级网络磁盘系统,基于 Python Flask 框架开发。它致力于为家庭成员打造一个安全、便捷且高效的文件共享与管理平台。通过简洁易用的网页界面,用户无需复杂的技术知识,就能轻松完成文件的上传、下载、删除等操作。同时,系统支持多用户登录,并依据用户所属家庭对文件进行分类存储,极大地提升了文件管理的条理性和查找效率。 在如今数字化生活日益普及的时代,家庭中的各种设备不断产生海量数据,如照片、视频、文档等。家庭成员之间频繁的文件共享需求也随之增长。传统的文件共享方式,如 USB 存储设备、社交媒体文件传输等,往往存在容量限制、安全性不足、操作繁琐等问题。EasyLanNetdisk 正是为了解决这些痛点而生,为家庭用户提供了一站式的文件存储与共享解决方案,让家庭文件管理变得更加简单、安全和高效。 ## 二、项目背景 ### 家庭文件管理的现状与挑战 随着智能手机、数码相机、平板电脑等设备的普及,家庭中的数码文件数量呈爆炸式增长。家庭成员之间分享旅行照片、孩子成长视频、重要文档等需求愈发强烈。然而,现有的文件共享方式存在诸多弊端。例如,使用 USB 存储设备需要物理接触,不方便远程共享;社交媒体平台虽然方便,但存在文件大小限制,且隐私性难以保障。此外,不同设备之间的文件同步也是一个难题。 ### 开发动机与目标 EasyLanNetdisk 的开发旨在打破传统文件共享方式的局限,为家庭用户提供一个专属的、安全可靠的文件共享平台。项目的目标是实现以下几点: 1. **便捷性**:提供简单易用的网页界面,让家庭成员无需专业知识即可轻松使用。 2. **安全性**:采用严格的用户认证机制,确保用户信息和文件的安全。 3. **分类管理**:根据用户所属家庭对文件进行分类存储,方便用户查找和管理。 4. **可扩展性**:设计灵活的架构,便于后续功能的扩展和升级。 ## 三、主要功能详解 ### 3.1 用户认证 - **多用户支持**:系统支持多个用户同时使用,每个用户都有独立的账号和密码。通过 `FA.txt` 文件进行用户信息的管理,确保每个家庭成员都能拥有自己的专属存储空间。 - **安全验证机制**:使用 Flask 框架提供的安全工具,对用户密码进行加密存储和验证,有效防止用户信息泄露。登录过程中,系统会对用户输入的用户名和密码进行严格验证,只有通过验证的用户才能进入系统。 ### 3.2 文件管理 - **文件上传**:用户可以通过网页界面选择本地文件进行上传。系统支持批量上传功能,用户可以一次性选择多个文件进行上传,大大提高了文件上传的效率。上传过程中,会显示上传进度条,让用户实时了解上传状态。 - **文件下载**:在文件列表中,用户可以方便地找到所需文件并点击下载按钮。系统会将文件快速下载到用户本地设备,支持断点续传功能,确保大文件下载的稳定性。 - **文件删除**:经过授权的用户可以删除不需要的文件。删除操作会在日志中进行记录,方便管理员进行审计和追溯。 ### 3.3 文件分类 系统会根据用户所属的家庭对文件进行分类存储。每个家庭在 `File` 文件夹下有独立的子文件夹,用户上传的文件会自动存储到对应的家庭文件夹中。这种分类方式使得文件管理更加有序,用户可以快速找到自己需要的文件。 ### 3.4 自动隐藏功能 系统会自动隐藏 `FA.txt` 文件,该文件包含用户的账号和密码信息,为了保证系统的安全性,用户在前端界面无法看到该文件及其对应的删除按钮。这一设计有效防止了用户误操作,保护了用户信息的安全。 ### 3.5 其他特色功能 - **简易部署**:EasyLanNetdisk仅需一台装有Python的台式计算机,启动程序后无需键盘鼠标和显示器就可以自己独立运行。 - **进度显示**:在文件上传过程中,会实时显示上传进度条,同时显示上传速度、已上传大小和剩余大小等信息,让用户对上传过程有更清晰的了解。 - **权限管理**:不同用户可以拥有不同的文件管理权限,管理员可以对用户权限进行灵活配置,确保文件的安全性和可控性。 - **可内网穿透**: 使用Ngrok程序将您的电脑和设备连接起来,随时随地传输文件。 ## 四、技术栈深度解析 ### 4.1 后端技术 - **Python Flask**:作为核心框架,Flask 轻量级且灵活,能够快速搭建 Web 应用程序。它提供了路由、请求处理、会话管理等功能,方便开发者实现业务逻辑。同时,Flask 拥有丰富的扩展库,可以轻松集成各种功能,如数据库操作、用户认证等。 - **Jinja2**:用于生成 HTML 模板,实现前后端数据的动态交互。Jinja2 支持模板继承、变量替换、循环和条件判断等功能,使得前端页面的开发更加高效和灵活。 - **Werkzeug**:提供了一系列实用工具,如文件上传处理、安全认证等。Werkzeug 的文件上传功能可以方便地处理用户上传的文件,确保文件的安全性和完整性。 ### 4.2 前端技术 - **HTML/CSS**:用于构建用户界面,提供简洁美观的用户体验。通过 CSS 样式表,可以对页面进行个性化设计,实现响应式布局,确保在不同设备上都能正常显示。 - **JavaScript**:用于实现页面的交互功能,如按钮点击事件、文件上传进度显示等。JavaScript 可以增强用户体验,使页面更加动态和流畅。 ## 五、系统优势 ### 5.1 安全性高 系统采用严格的用户认证机制,对用户密码进行加密存储,有效防止信息泄露。同时,自动隐藏 `FA.txt` 文件,避免用户信息被误操作或恶意访问。此外,文件删除操作会进行日志记录,方便管理员进行审计和追溯。 ### 5.2 易用性强 简洁的网页界面设计,让用户无需复杂的操作即可完成文件的上传、下载和删除等操作。上传进度条、文件分类管理等功能,进一步提升了用户体验,降低了用户的学习成本。 ### 5.3 可扩展性好 系统采用模块化设计,各个功能模块之间耦合度低,便于后续功能的扩展和升级。开发者可以根据需求添加新的功能模块,如文件夹管理、在线预览等。 ### 5.4 成本低廉 基于开源技术栈开发,无需额外的商业授权费用。用户只需要一台普通的计算机和网络环境,即可搭建自己的家庭网络磁盘系统,大大降低了使用成本。 ## 六、应用场景 ### 6.1 家庭文件共享 家庭成员可以通过 EasyLanNetdisk 共享照片、视频、文档等各种文件。例如,家长可以上传孩子的成长照片和视频,供其他家庭成员随时查看;家庭成员之间也可以共享重要的文档,如保险单、房产证等。 ### 6.2 小型团队协作 对于一些小型团队,如创业团队、学生小组等,也可以使用 EasyLanNetdisk 进行文件共享和协作。团队成员可以上传和下载项目相关的文件,提高工作效率。 ### 6.3 个人文件备份 用户可以将自己的重要文件备份到 EasyLanNetdisk 中,避免因设备故障或丢失导致文件丢失。同时,用户可以在不同设备上访问自己的文件,实现文件的多端同步。 ## 七、环境要求 - Python 3.x - 所需的 Python 库可以通过 `requirements.txt` 文件进行安装,该文件列出了项目运行所需的所有依赖库。 ## 八、安装步骤 ### 8.1 克隆项目 ### 8.2 创建虚拟环境(可选但推荐) ```bash python -m venv venv .\venv\Scripts\activate ``` ### 8.3 安装依赖 ```bash pip install -r requirements.txt ``` ## 九、运行项目 ```bash python app.py ``` 运行上述命令后,打开浏览器访问 app.log 文件中第五行的链接 即可进入系统登录页面。 ## 十、使用说明 ### 10.1 配置账户 在首次运行项目时,请在 File 文件夹中添加以用户名命名的文件夹,创建好后创建‘FA.txt’文件,并在第一行编写用户名,第二行编写密码。 ### 10.2 登录 在登录页面输入用户名和密码,点击登录按钮即可进入系统。 ### 10.3 文件上传 在文件管理页面,点击上传按钮,选择要上传的文件,点击确认即可完成文件上传。 ### 10.4 文件下载 在文件列表中,找到要下载的文件,点击下载按钮即可将文件下载到本地。 ### 10.5 文件删除 在文件列表中,找到要删除的文件,点击删除按钮即可删除该文件。 ## 十一、项目结构 ```plaintext EasyLanNetdisk/ ├── File/ # 存储用户上传的文件 ├── app.log # 日志文件 ├── app.py # 主应用程序文件 ├── requirements.txt # 项目依赖文件 ├── rizhi.txt # 可能的日志文件 └── templates/ # 前端模板文件 ├── index.html # 文件管理页面模板 └── login.html # 登录页面模板 ``` ## 十二、注意事项 - 请确保在运行项目前已经安装了所有的依赖库。 - 为了保证系统的安全性,建议定期更换用户密码。 - 系统会自动隐藏 `FA.txt` 文件,请勿手动删除该文件,以免影响系统正常运行。 ## 十三、贡献与反馈 如果您在使用过程中遇到任何问题,或者有任何建议和意见,欢迎通过以下方式反馈: - 提交 Issue 到项目的仓库。 - 发送邮件到"yshz66574@163.com"邮箱。 ## 十四、未来规划 1. 开发文件夹相关功能,支持文件夹的创建、重命名、删除等操作。 2. 实现回收站功能,防止误删文件。 3. 支持在线预览文件,包括图片、视频、文档等。 4. 优化文件上传和下载速度,提升用户体验。 5. 增加更多的用户权限管理选项,满足不同场景的需求。 感谢您使用 EasyLanNetdisk!