为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Go中从公共文件夹发回图像?

如何在Go中从公共文件夹发回图像?

Go
红糖糍粑 2023-07-26 17:14:11
我是新手,如果这是一个明显的问题,那么抱歉,但我没有找到任何东西,所以我在这里发帖。这实际上是一个由两部分组成的问题。1)所以我的项目目录中有这个Web文件夹。它是公共的,我有一个中间件功能来检查 JWT。我正在使用此逻辑来避免 JWT 身份验证,但它现在可以正常工作。我明白了unauthorized。// List of endpoints that don't require auth by an access token        notAuth := []string{"/", "/refreshtokens", "/students/signup", "/students/signin", "/students/forgotpassword",            "/images"}        // Current request path        requestPath := r.URL.Path        // Check if the request does not need authentication, serve the request if it doesn't need it        for _, value := range notAuth {            if value == requestPath {                next.ServeHTTP(w, r)                return            }        }那么我怎样才能把这个URL放入数组中,这样它就可以逃脱JWT授权呢?2)这就是我公开文件夹的方式,但我不想要这样。router.PathPrefix("/images").Handler(http.StripPrefix("/images", http.FileServer(http.Dir("./web/"))))我想要的是类似的东西router.Handle("/image/{imageName}",func(w http.ResponseWriter, request *http.Request){http.ServeFile(this image name file)})这样我就可以发回所请求的文件。任何帮助将不胜感激。
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

对于#1:显然请求路径不是notAuthnotAuth也许您需要检查路径是否具有包含在?中的前缀。如果是这样,你需要小心/,因为它会通过所有路径。如果没有,记录请求路径并查看问题所在。

对于#2:你应该能够做到:

http.ServeFile(w,request,filepath.Join(baseDir,mux.Vars(request)["imageName"])


查看完整回答
反对 回复 2023-07-26
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信