golang项目练习-临时云

Scroll Down

前几天看了个帖子有人在问有没有 临时网上放json的网盘并且能直连访问的 用于测试. 加之这两天学了golang于是就写了这么个小项目

项目

logo.png

项目地址
还有很多功能可以完善,感兴趣的朋友可以去扩展
例如 权限、统计、协同、等等(学完go可以用来练练手项目很小很容易修改)

线上地址

用途

前端页面测试,json测试,临时网盘

子域名访问实现

域名:tempyun.com
文件:a.txt
通过主域名访问路径如下:
http://tempyun.com/service/files/{用户名}/a.txt

实现访问路径:
http://{用户名}.tempyun.com/a.txt

实现:
将域名泛解析到服务器ip *.tempyun.com 192.168.1.1

通过过滤器将子域名(用户名)提取

服务代理访问路径并返回

func Ymfilter() {
	var Filter = func(ctx *context.Context) {
		doamin := beego.AppConfig.String("doamin")
		if ctx.Input.Host() != doamin {
			req := httplib.Get(strings.Replace(ctx.Input.Site(), ctx.Input.Host(), doamin, -1) + ":" + strconv.Itoa(ctx.Input.Port()) + "/" + strings.Replace(ctx.Input.Host(), "."+doamin, "", -1) + ctx.Input.URL())
			bytes, _ := req.Bytes()
			ctx.ResponseWriter.Write(bytes)
		}
	}
	beego.InsertFilter("/*", beego.BeforeRouter, Filter)
}

注意

记得检测前端页面传来的路径参数和用户名不得出现 ".."

本站运行:

Copyright © 2020 淡白记忆博客

Powered by Halo • Theme by Subtle Galaxy • REFERENCE FROM 寒山

Back to the top