GithubHelp home page GithubHelp logo

bitepeng / b0pass Goto Github PK

View Code? Open in Web Editor NEW
2.0K 40.0 271.0 84.84 MB

百灵快传(B0Pass):基于Go语言的高性能 "手机电脑超大文件传输神器"、"局域网共享文件服务器"。LAN large file transfer tool。

Home Page: https://4bit.cn/p/b0pass

License: Apache License 2.0

Go 92.99% HTML 6.50% Batchfile 0.43% Shell 0.08%
golang go file-transfer bigfile webserver wifi-network

b0pass's Introduction

百灵快传(B0Pass)

LAN large file transfer tool。

基于Go语言的高性能 “手机电脑超大文件传输神器”、“局域网共享文件服务器”。

只需一个文件(exe)双击开启。

1. 主要功能

1.1 功能描述

  • 局域网文件共享服务器
  • 简单的单个可执行文件
  • 共享文件界面(在同一局域网或WIFI下,传输超大文件)
  • 二维码扫码界面(支持手机传输,支持其它电脑输入网址)
  • 共享文件在线管理界面(主电脑打开、图片浏览器、重命名、删除等)
  • 更简洁高效的操作界面
  • 使用自研的 B0Boot-Go 框架重构代码,更简洁、更模块化
  • 文件上传界面支持多次选择(PC端支持拖拽上传)
  • 大文件上传过程分片处理(上传更丝滑,不卡顿)
  • 支持路径有空格或中文的情况
  • 支持Windows、Linux、MacOS操作系统
  • 支持端口(port)自定义配置
  • 支持域名(domain)自定义配置
  • 支持安卓手机APK应用(Uniapp开发的手机端)
  • 支持连接主电脑的手机和电脑发送键盘和鼠标命令(支持windows)
  • 提升项目安全性(debug模式)
  • JWT安全控制(配置Pread:只读|Pupload:上传|Padmin:管理,Token验证)
  • 支持对文件多选和全选操作
  • 支持对PDF文件在线预览
  • 支持对上传的压缩包在线解压
  • 支持上传整个文件夹
  • 自动检查更新版本

1.2 PC操作截图

主界面(功能说明)

主界面(图文模式、文件菜单)

主界面(列表模式)

手机扫码(到主界面)

手机扫码(到某个文件)

大文件上传(选择文件)

大文件上传(上传完成)

图片浏览器

Html文件 Web服务

1.3 手机操作截图

主界面

上传文件

文件操作

2. 发行版下载使用

下载前请阅读

  • 已编译好Windows、MacOS、Linux等平台的可执行文件
  • 只需下载到电脑,双击开启即可使用
  • 注意1:建议不要安装到“C:\Program Files (x86)”等系统目录,否则需要右键“以管理员身份运行”
  • 注意2:如果要自定义端口等配置,请修改config.ini文件
[gateway]
ListenAddr = ":8888"      # 配置IP和端口
Domain = "test.com:8888"  # 可选配置,配置访问域名(若使用80端口或nginx代理,可忽略端口)
[pass]
Path = "files"            # 文件管理根目录

最新版下载地址

3. 代码仓库

4. 使用场景

  • 手机电脑共享文件

    电脑上双击执行 -> 手机扫码 -> 手机、电脑文件可以互传。

  • 电脑之间共享文件

    电脑A上双击执行 -> 电脑B上浏览器输入A的地址 -> 电脑A、电脑B文件可以互传。

  • 虚拟机和电脑之间共享文件

    电脑上双击执行 -> 虚拟机上浏览器输入电脑的地址 -> 虚拟机、电脑文件可以互传。

  • 更多使用场景

    也可以用作“家庭影音中心”、“办公室文件共享”、“产品原型服务器”等。走局域网HTTP协议,Windows、MacOS、虚拟机、安卓、iPhone等都可以跨平台共享文件。

5. 源码编译

# 下载代码
git clone https://github.com/bitepeng/b0pass.git

# 使用go mod更新依赖
go mod tidy

# 开发运行
cd main && go run ./main.go

# 编译运行开发版本
cd main && ./build.bat

b0pass's People

Contributors

bitepeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

b0pass's Issues

一点小小的建议和配置文件的问题

1 我想添加其他目录但不知如何操作 ,直接更改启动报错 ,建议添加配置文件示例 ,是否支持多个目录?

2a745028c65085adb2e26ab77e7f557

2 以IPv6去访问时,二维码分享的链接还是IPv4的.

image

3 当配置监听ipv6时 ,二维码分享丢失端口, 且地址还是IPv4

image

前端代码被注释导致js错误,扫码功能出错

image
这里注释掉的这两行,因为没有id=btn_left_key 的这个组件,导致js报错
image

最终导致点击扫码按钮时,地址栏中的地址是http://undefinedundefined
image

由于不知道注释html代码的意图,这里没有提PR,目前本地把index.html中注释的部分打开了临时使用,可以正常使用没有发现什么问题

路径包含空格时打开文件夹出错

exe文件放在包含空格的目录时,例如“Program Files”
电脑打开目录会报错

/api/openurl?url=D:/Program%20Files
提示找不到目录“D:/Program”

更新:
实测最无脑的解决方法是修改"cmd /c start " 为 "cmd /c start explorer "

ssr代理与b0pass是否冲突呢?

请教一下,使用ssr会占用127.0.0.1:1080,然后如果此时开启b0pass,浏览器访问127.0.0.1:8899则会提示”localhost阻止了该访问,请(按提示)设置代理。“

其实可以反过来做成Android和iOS端

其实可以反过来做成Android和iOS端,这样就只需要打包两个平台了(而不是现在的三大桌面平台),类似于airdroid和快传这种,这样子的好处就是可以在PC上的网页端下载手机端的相册之类的了。
airdroid和快传的问题在于用户体验不够好,比如扫码后还需要点击按钮确认登陆,比较麻烦。
如果决定做Android和iOS端的话我可以帮忙设计提升易用性哦!

app 端上传文件会修改原始文件名

尝试了一下,非常好用

现象

  • 从 pc 上上传保留了原始文件名
  • 从 手机上传文件会修改原始文件名

期望

  • 手机端和pc端不修改原始文件名

TODO

  • clone 了一份代码,准备跟踪,发现是在前端代码已经修改了文件名,能修复一下么?

怎么用手机向电脑传输文本

如题,怎么用手机向电脑传输文本
用手机传文本时,电脑端不会刷新成手机端的文本,反而手机端的文本会自动刷新成电脑端的文本,即使电脑端的文本框清空时,手机端也会刷新成空白

能否添加手机之间传输文件的功能

我想到一个使用场景。可以在安卓app上也能开启http服务来当作服务端。其他操作逻辑和Windows平台一样,其他设备可以通过局域网来访问这台安卓设备指定的文件夹来传输文件。这样就可以在同一个局域网下不依赖Windows设备来传输文件了,比如手机之间传输文件,客户端(没有下载app)可以直接扫下载了app的手机的二维码来直接从浏览器http传输文件,这样对应客户端手机来说就十分方便了。

不能删除文字聊天中的最后一个字母

func GetTextData(r *ghttp.Request){
	getData:=r.GetString("data")
	dbKey:="data_text"
	if getData!=""{
		nustdbs.DBs.SetData(dbKey,getData)
	}
	dbData :=nustdbs.DBs.GetData(dbKey)
	response.JSON(r, 0, "ok", dbData)
}

我在传输文本框中,输入一段话儿,别的手机上可以实时的显示到,没问题,于是,我在一个手机上,删除这些字符,删除空的时候,最后一个字总是删除不掉,我看了看代码,好象上面这段代码判断了,如果不为空,才保存,这就导致文本框里,永完不能清空了,这算是BUG还是特性呢。
其实,不是不能清空最后一个字母,如果全选,再删除,则一个字也删除不掉,因为上面的代码不让保存空数据。

安卓到PC大文件700M上传总中断出错

安卓类原生 Los17.1 X浏览器, 电脑win7, 百灵0.1.9.

500兆以下文件上传电脑均一次成功, 700兆的文件上传到最后5%左右开始没有反应, 过一会就异常中断, 试了四五次都是一样出错, 从来没有成功过

另外一个小问题: Apk安装包从电脑取回手机时, 总是自动改名后缀为zip, (每次都要手工改回来) 不知道是bug呢,还是出于什么考虑?

使用了一段时间遇到几个问题

  1. 尝试了各种自定义域名和端口,都无法正确解析自定义的域名到本机IP. 是需要在hosts或者路由器配置吗?
  2. 自定义的路径有些字符不能出现,否则无法读取到文件夹内容(目前发现的不能有的字符是+, [, ], 但是-又可以)
  3. 上传大文件(5G以上),存在意外中断的可能,但是主机端会有损坏的文件(文件名一样,但是更小而且无法打开)
    • 是不是可以在上传前后比较一下md5? 不一致的话删除主机端的损坏文件并弹个通知?

可以加一个Office文件预览吗?

添加简易的Office文件预览,便于下载。

目前有个问题,我改动根目录下的ins文件,想把目标文件夹改成非files,会报错闪退,必须把文件夹改成files才可行。

建议: HTTPS的启用,用户的添加及权限管理

如题;
我打算使用改项目搭建局域网文件服务器之后,通过公网端口映射到指定局域网ip:端口的方式,实现远程外网访问。
请问如何使用例如HTTPS等加密方式;
以及如何增加用户并对用户的读/写权限进行管控

增加一个上传文件后,执行指定命令的功能 

比如,一群人在办公室开会,某个人的电脑联接到投影仪,运行本程序,显示出二维码,大家的手机扫描一下后,不同人手机上传的照片,如果是PNG或者JPG的,服务器在接收后,可以显示出这个文件,具体调用哪个程序显示,可以由电脑配置文件指定。比如,我用ubuntu,我就会调用

eog -w filepath
这样的话,大家可开会时,可以方便的把工作中拍到的照片在会议上方便的实时共享和讨论。
可以在配置文件中指定,比如
jpg,png=eog -w %f
这样的格式

作者有QQ群或者微信群不,我们这些对这个软件爱好的人,可以加进去讨论学习。

希望有自定义执行命令的功能

比如,我用的是linux,默认调用的是xdg-open,但是问题是这个命令只要调一次,就会生成一个新的图片进程实例,我在手机上点了10次,电脑上会出现10个运行的图片,最后我得一个一个关了才行,如果能在配置文件中进行自己配置命令就好了,比如,我改了一下代码,让他运行 eog -w,这样,就只会运行一个界面实例了,如果能支持就方便了。

# 应用系统设置
[setting]
    logpath = "tmp/log"
    port    = 8899
    uri     = "eog -w"

下面代码就可以支持

func Open(uri string) error {
	//runtime.GOOS
	run, ok := commands[runtime.GOOS]
	if !ok {
		return fmt.Errorf("don't know how to open things on %s platform", runtime.GOOS)
	}
  _uri := g.Config().GetString("setting.uri")
  if len(_uri) >0 {
    run = _uri
  }
	//exec.Command
	run = run + " " + uri
  fmt.Println(run)
	cmds := strings.Split(run, " ")
	cmd := exec.Command(cmds[0], cmds[1:]...)
	//cmd.Start
	fmt.Println("[CommandAs]", cmds)
	return cmd.Start()
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.