首页 > Web开发 > 详细

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

时间:2021-08-25 23:43:04      阅读:42      评论:0      收藏:0      [点我收藏+]

用途

局域网下,用来共享文件,方便文件的传输;
使用 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 实现 静态文件共享服务

原文:https://www.cnblogs.com/deja-ve/p/15186686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!