Golang Go语言中使用x/net/webdav包访问目录显示不全问题
Golang Go语言中使用x/net/webdav包访问目录显示不全问题
比如访问 C 盘的时候,仅显示了几个文件夹,并且会提示以下内容:
http: superfluous response.WriteHeader call from golang.org/x/net/webdav.(*Handler).ServeHTTP (webdav.go:74)
实际错误应该是
open C:\Config.Msi: Access is denied
但是指定某个目录,并且不存在拒绝访问的文件的时候,可以完整显示目录。
有遇到同样问题的小伙伴吗,这个该怎么解决?
更多关于Golang Go语言中使用x/net/webdav包访问目录显示不全问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
代码就用最简单的:<br>package main<br><br>import (<br> "fmt"<br> "net/http"<br><br> "<a target="_blank" href="http://golang.org/x/net/webdav" rel="nofollow noopener">golang.org/x/net/webdav</a>"<br>)<br><br>func main() {<br> err := http.ListenAndServe(":10001", &webdav.Handler{<br> FileSystem: webdav.Dir("C:/"),<br> LockSystem: webdav.NewMemLS(),<br> })<br> if err != nil {<br> msg := fmt.Sprintf("启动失败:%v", err)<br> panic(msg)<br> }<br>}<br><br>
更多关于Golang Go语言中使用x/net/webdav包访问目录显示不全问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Access is denied
启动进程的用户没有读取某些文件的权限 。
用管理员身份启动?
尝试过打包出来,用管理员启动还是不行
同遇到了 在 win 下可以正常工作 linux 下不行
解决了吗,我也遇到了这个问题
在Golang中使用x/net/webdav
包访问目录时遇到显示不全的问题,可能由以下几个原因引起:
-
权限问题:确保你的应用或服务有足够的权限去访问和列出目标目录中的所有文件和子目录。权限不足可能会导致部分文件或目录被忽略。
-
过滤器设置:检查是否有代码逻辑或配置在列出目录内容时应用了过滤规则,这可能会排除掉某些文件或目录。
-
分页或限制:如果WebDAV服务器或你的客户端代码实现了分页逻辑,确保分页参数正确设置,以覆盖所有内容。
-
网络问题:网络延迟或中断可能导致目录列表不完整。确保网络连接稳定,并考虑实现重试逻辑。
-
服务器实现:不同WebDAV服务器的实现可能有差异,某些服务器可能不支持列出所有文件类型的操作,或者对列表操作有特定的限制。
-
客户端库限制:
x/net/webdav
包可能本身存在限制或未处理的边缘情况。查看该库的文档和Issue跟踪器,看是否有相关的讨论或修复。
解决这类问题通常需要从日志开始分析,确认请求和响应的详细情况,同时检查代码逻辑和服务器配置。如果问题依旧存在,考虑使用其他成熟的WebDAV客户端库或更新x/net/webdav
到最新版本。