重要更新见最下头!!!
前言
之前写过python版的高性能静态文件下载服务,直接运行访问端口就可以下载服务器上的静态文件。但是代码是python写的,部署起来真的是太难了,尤其是依赖问题,使用go语言有天生的部署优势。
代码
static_file_server.go
package main
import (
"flag"
"fmt"
"net/http"
"path/filepath"
)
var (
port int
dir string
)
func main() {
flag.IntVar(&port, "p", 8888, "开放端口")
flag.StringVar(&dir, "d", ".", "静态文件目录")
flag.Parse()
addr := fmt.Sprintf("0.0.0.0:%d", port)
dir, err := filepath.Abs(dir)
if err != nil {
panic("文件路径不正确")
}
fmt.Printf("开启文件下载服务 %s at %s\n", dir, addr)
err = http.ListenAndServe(addr, http.FileServer(http.Dir(dir)))
if err != nil {
panic(err)
}
}
2021.09.26更新!!!
我用go实现的比较简陋,现在已经有了更好的实现,是用rust实现的,性能更好,包又小,功能还更全。强烈推荐:
次博客仍然保留,仅做学习交流使用,实际使用更推荐miniserve