我正在编写一个api服务器,用于通过go-gin框架上传和提供视频和图像。我已将视频上传到另一台主机,并且可以正常运行
industries = ['Manufacturing', 'Food', 'Eco']
counts = [12, 78, 1]
tot = sum(counts)
# combine the two lists with zip and then reverse sort them
data = sorted(zip(industries, counts), key=lambda v: v[1], reverse=True)
plt.figure(figsize=(16, 6))
for (i, c) in data: # unpack and plot each tuple in sorted order
bars = plt.bar(i, c, width=0.2, bottom=None, align='center', data=None, color='g')
plt.annotate(f'{(c/tot)*100:0.02f}%\n', xy=(i, c), va='center', ha='center')
plt.xlim(-0.9, len(industries) - 1 + 0.9)
plt.show()
当我尝试通过铬访问router := gin.Default()
//config := cors.DefaultConfig()
//config.AllowAllOrigins = true
routerConfig := cors.Config{
AllowAllOrigins: true,
AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"},
AllowHeaders: []string{"X-Requested-With", "Authorization", "Origin", "Content-Length", "Content-Type"},
AllowCredentials: false,
MaxAge: 12 * time.Hour,
}
router.Use(cors.New(routerConfig))
router.StaticFS("/public", http.Dir("static"))
err := router.Run(":5000")
if err != nil {
panic(err)
}
时。它加载到浏览器。但是当我通过铬访问http://localhost:5000/public/{image_url}.png
时,它无法从浏览器加载任何内容(无法接收)
有人可以为我解释我在做什么错吗?
更新:
也许我错过了此内容:
当我调用http://localhost:5000/public/{video_url}.mp4
请求时,这是我的2个http软件包
答案 0 :(得分:1)
您的问题有两种可能的解释。
例如,我从这个video中获得,当您检查响应标题时,它应该显示
content-length: 1570024
content-range: bytes 0-1570023/1570024
content-type: video/mp4
我的建议是使用http.ServeFile,它支持服务范围请求。请参阅相关问题GoLang http webserver provide video (mp4)和How to serve http partial content with Go?。
已更新
检查Gin StaticFS Godoc后,我认为它不支持Range标头。
测试后
所以我尝试了您的代码,但我错了, Gin StaticFS可以提供视频等内容范围。
这是我的屏幕截图,已经使用Chromium进行了测试,效果很好:
我的结论是:您的操作系统上不支持您的Chromium或您的编解码器或视频编解码器(我不知道您的操作系统是什么),请检查以下MP4 not playing on Chrome version 27.0:
由于Chrome删除了对h264的支持,因此在某些计算机上,使用h264编码的mp4视频将无法正常工作(在Firebug /“网络”标签下查看时会引发解析器错误-与此处提交的问题一致),或者导致浏览器崩溃,具体取决于根据编码设置
不一致-完全取决于计算机上安装的编解码器-虽然我的机器上没有遇到此问题,但我们确实在办公室中出现了此问题(因此我们使用了此问题进行测试)
这可能与Quicktime / divX设置有关(有问题的计算机的Quicktime版本比我的本机版本早-我们并不想丢失测试计算机,因此我们没有对其进行更新)。 / p>