Gin如何配置web 文件服务,而不能访问文件列表?

Dear · 2021-06-29 11:00:26 · 4325 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-06-29 11:00:26 的主题,其中的信息可能已经有所发展或是发生改变。

Gin如何配置web 文件服务,而不能访问文件列表? 默认去掉文件名,可以直接打开所有文件下的列表,很危险的

router := gin.Default()
// 允许使用跨域请求  全局中间件
router.Use(Cors())
router.StaticFS("/upload", http.Dir("../upload"))
router.Run(":8081")

WX20210629-105945@2x.png


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4325 次点击  
加入收藏 微博
6 回复  |  直到 2022-11-07 10:53:11
__Golang__
__Golang__ · #1 · 4年之前

你可以把 http/fs.go serveFile函数中的dirList(w, r, f)注释了

coincoc
coincoc · #2 · 3年之前

我谷歌帮你看了一下

 //加载静态资源,例如网页的css、js
  router.Static("/static", "./static")

  //加载静态资源,一般是上传的资源,例如用户上传的图片
  router.StaticFS("/upload", http.Dir("upload"))

  //加载单个静态文件
  router.StaticFile("/favicon.ico", "./static/favicon.ico")
fnoop
fnoop · #3 · 3年之前

你这用法就有问题,StaticFS主要是存放静态文件的,比如css js 静态图片等这种本来就公开的数据,其他的本来就不应该用StaticFS

jarlyyn
jarlyyn · #4 · 3年之前

重写一下呗……

http.Dir和你想要的用途不一样,照着重写就行了。

不想重写那就放个index.html,php开源系统里一堆这样的解决放方案。

youyou
youyou · #5 · 3年之前

目录下 放一个 index.html 就好了

Dear
Dear · #6 · 2年之前
fnoopfnoop #3 回复

你这用法就有问题,`StaticFS`主要是存放静态文件的,比如`css` `js` 静态图片等这种本来就公开的数据,其他的本来就不应该用`StaticFS`

我是要做下载服务,是要公开数据,但是不能公开下载列表,有办法吗

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传