在工作中,经常碰到要给同事共享文件的需求。一般可能就走微信、飞书都公共的聊天工具发送了,但是如果要分享的文件比较大或者是涉密文件的话,这种方式就不太可行了,所以这篇文章就来聊一聊试用不同语言如何快速起一个本地的 http 服务用于共享文件。
nodejs
官网:https://www.npmjs.com/package/http-server,nodejs 有一个 http-server 的包,简单来说这就是一个 0 配置的命令行静态 http 服务器,主要实现是基于 nodejs 的 http 模块,通过 createServer 函数来创建了一个服务。
安装命令,这里我使用的是 npm
,也可以使用 npx
或者其他的方式,参考官网说明
npm install --global http-server
安装好后,进入到要分享的目录,执行
http-server .
然后就可以看到服务的地址了,把地址发给对方就可以了
对方打开后看到的页面如下,点击需要的文件名就能下载了
python
python3 内置了 http.server 类,可以直接通过一行命令启动一个本地文件服务器
# pyton3
python -m http.server
# python2
python -m SimpleHTTPServer 8080
启动后的效果如下
对方访问的效果是这样的
go
好像没找到可以直接用的 http 服务包,于是自己大概写了一个
package main
import (
"fmt"
"net/http"
"os"
)
func main() {
// 获取当前目录路径
dir, err := os.Getwd()
if err != nil {
fmt.Println("Error getting current directory:", err)
return
}
// 创建文件服务器
fs := http.FileServer(http.Dir(dir))
// 设置 HTTP 处理器
http.Handle("/", fs)
// 启动 HTTP 服务器
port := ":8080"
fmt.Println("Server is running on http://localhost" + port)
err = http.ListenAndServe(port, nil)
if err != nil {
fmt.Println("Error starting HTTP server:", err)
}
}
代码比较简单,就不过多说明了。执行一下
go run server.go
运行结果如下
总结一下
还是 nodejs 和 python 比较方便,讲道理,python 更胜一筹,不用安装依赖包,自带的就可以解决这个需求。如果大家知道 go 有什么包能实现的话,也欢迎留言哦~