用途
局域网下,用来共享文件,方便文件的传输;
使用 go build 打包成可执行文件就更好使用了;
上代码
package main
import (
"log"
"net/http"
)
func main() {
ServerShareDir()
}
func ServerShareDir() {
shareDir := "./" // 分享文件的路径 这里使用的是当前目录
mux := http.NewServeMux()
mux.Handle("/", shareServer(http.FileServer(http.Dir(shareDir))))
err := http.ListenAndServe(":7788", mux)
if err != nil {
log.Println(err)
}
}
func shareServer(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// 打印来源ip及访问的文件夹/文件
log.Printf("remote form ip:%s, uri: %s\n", r.RemoteAddr, r.RequestURI)
next.ServeHTTP(w, r)
})
}
可改进的点
- 可增加外部传参指定服务监听端口、共享文件夹;
- 启动时输出局域网ip;