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)
	}
}

源码解释

  1. os.Args[0]获取的是执行程序时的第一个参数,默认第一个参数是程序所在的目录
  2. filepath.Abs(filepath.Dir(os.Args[0]))是获取当前可执行程序所在的绝对路径
  3. http.Handle("/", http.FileServer(http.Dir(p)))是开启一个文件服务器,使用当前可执行文件所在的路径
  4. 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即可看到可执行文件所在的目录下的所有文件。

展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值