golang实现的文件服务器
Posted yubo_725
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang实现的文件服务器相关的知识,希望对你有一定的参考价值。
最近在学习golang,使用golang实现了一个最简单的文件服务器,程序只有简单的十多行代码,可以编译成windows, linux, mac多平台可执行文件。
源码
package main
import (
"fmt"
"net/http"
"os"
"path/filepath"
)
func main()
p, _ := filepath.Abs(filepath.Dir(os.Args[0]))
http.Handle("/", http.FileServer(http.Dir(p)))
err := http.ListenAndServe(":8088", nil)
if err != nil
fmt.Println(err)
源码解释
os.Args[0]
获取的是执行程序时的第一个参数,默认第一个参数是程序所在的目录filepath.Abs(filepath.Dir(os.Args[0]))
是获取当前可执行程序所在的绝对路径http.Handle("/", http.FileServer(http.Dir(p)))
是开启一个文件服务器,使用当前可执行文件所在的路径http.ListenAndServe(":8088", nil)
是监听8088端口并开启文件服务器
编译
要将源码编译成不同平台的可执行文件,需要使用gox
工具,使用下面的命令安装gox
:
go get github.com/mitchellh/gox
执行成功之后,使用gox
命令即可自动编译出各个平台的可执行文件,如果想为某个平台单独编译,可以使用如下方式:
gox -os "windows linux" -arch amd64
-os
参数指定了编译平台,-arch
参数指定了处理器架构
运行
直接打开编译出来的可执行程序,即可运行,在浏览器中访问http://ip:8088即可看到可执行文件所在的目录下的所有文件。
以上是关于golang实现的文件服务器的主要内容,如果未能解决你的问题,请参考以下文章