# tkShareFile **Repository Path**: time--chicken/tkShareFile ## Basic Information - **Project Name**: tkShareFile - **Description**: 用于局域网内快速搭建共享文件和预览资源服务平台的解决方案...... - **Primary Language**: Go - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-07-05 - **Last Updated**: 2023-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tkShareFile #### 前言 * 虽然文件共享方案众多,但在一些极端的情况下(缺少库,跨平台等等),大部分方案可能都已经不适用了······ * Golang 拥有跨平台性,交叉编译效率也很高,部署服务的速度显而易见...... * 若为共享资源,考虑加入文件预览功能,因此会产生下一个问题。 * 若要预览文件,且考虑跨平台部署问题,需要减少各平台对本地应用程序的依赖问题,考虑将预览服务集成到浏览器当中,只需各平台上安装了 Web browser 就可以实现共享和预览功能...... * 考虑到前端开发速度的问题,采用Gin Web Framework······ #### 介绍 * 支持Linux, Windows等主流平台,但限于资源问题未测试过其它平台······ * 可用于局域网内快速构建共享文件和共享资源预览服务 * 依托浏览器,支持正常的`.mp3 .mp4 .png .jpg ......`等媒体文件 和 正常的普通文本文件,另加入`.pdf`文档文件 * 对于支持的文件类型可双击预览,不支持的预览类型可下载后查看······ #### 软件架构 * 基于 [Gin Web Framework](https://gin-gonic.com/) 开发 * pdf 文档预览服务依赖于 [PDF.js](https://mozilla.github.io/pdf.js/) * 文本预览服务依赖于 [highlight.js](https://highlightjs.org/) * 媒体文件预览服务依赖于 Google Chrome #### Bug * 仅支持谷歌浏览器,其它浏览器可能会出现显示异常,限于技术水平未能实现 * 上传小文件的情况未能得到根本解决 * 未测试多用户传输的情况······· * 移动端预览关于的屏幕尺寸问题,将在后续版本中修复...... * 无聊之处加了很多无用的css样式,背景视频,指针图案等等。【doge】【doge】【doge】 #### 安装教程 1. 跨平台使用需要安装 Golang 编译环境,(windows中)参考工程`windows_build_script`目录下的`.bat`脚本直接修改即可 2. 直接解压目录,免安装 3. 保证当前文件目录结构不会改变(`www`目录和`tkShareFile`可执行文件需要在同一个层级的目录) #### 使用说明 1. windows下可直接运行`tkShareFile.exe`,无Dos窗口可使用`windows_build_script`目录下的`windows-amd64-noDos.bat`进行编译 2. 更多设置请修改`www/conf.json`,修改后需要重启,此处仅展示部分信息。 ```json { "version": "0.3.1", "port": 80, //开启的端口号 "index_html_title": "临时文件传输工具", //首页title标签的内容 "is_default_dir": true, //是否使用默认的分享路径 "share_dir": "./share", //is_default_dir为true时使用这个路径,否则需要输入路径,noDos时需要注意 "transport_power": { "upload": true, //允许上传 "download": true, //允许下载 "media": true, //允许预览媒体文件,且当download键为true时 "text": true, //允许预览文本文件,且当download键为true时 "document": true //允许预览文档文件,且当download键为true时 } } ``` 3. 访问指定端口时会自动重定向到`/share/`(花样较多),静态资源访问接口`/shares`(简洁界面),但静态资源不适合大量访问,应尽量少用。 4. 大型文件不得超过2G 5. 如果双击运行的Dos窗口一闪而过,可参考 安装教程 第三条,未能解决请反馈错误信息,感激不尽······ #### 后语 1. 非常感谢 https://www.cnblogs.com/ahfuzhang 的一篇关于Golang上传大文件的文章,具体链接自己也不清楚了······ 2. 开发周期短,未能做出过多测试,后续将继续完善······ 3. 欢迎大佬指点迷津,感激不尽······ #### 更新日志 * 2021-8-21 v0.3.1 1. 添加对文本文件、pdf文档、图像文件的预览支持 2. 优化媒体文件预览、错误信息等页面 3. 优化错误处理结构(上传模块除外) 4. 修复了小文件上传失败的问题 5. 重写`conf.json`信息结构 6. 将`tk-share-file`更名为`tkShareFile` * 2021-8-2 v0.2.1 1. 将背景图片换成了视频 2. 更换鼠标指针图案 3. 优化css样式 4. 添加看板娘······ 5. 下调预览音频的音量 6. 调整MP4文件预览尺寸 * 2021-8-2 之前 v0.1.1 1. 通宵······