golang net/http 实现 静态文件共享服务

用途

局域网下,用来共享文件,方便文件的传输;
使用 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)
	})
}

可改进的点

  1. 可增加外部传参指定服务监听端口共享文件夹;
  2. 启动时输出局域网ip

golang net/http 实现 静态文件共享服务

上一篇:使用 flex 布局处理 左面图 右文字的需要注意的css问题


下一篇:小程序------- 框架结构,app.js,下拉刷新,导航栏,tab选项栏(三)