问题描述
我开发了一个在 golang 中运行 web 服务器的小型 web 应用程序。 每个用户都可以登录,查看他们的文档列表(之前上传的)并点击一个项目来查看一个 html 页面,该页面显示了文档的一些字段以及一个带有 src 属性的标签
src 属性包含一个 url,如“mydocuments/download/123-456-789.pdf”
在服务器端,我通过 http 处理程序处理 URL(“mydocuments/download/*”)
mymux.HandleFunc(pat.Get("/mydocuments/download/:docname"),DocDownloadHandler)
哪里:
fileServer := http.StripPrefix("/mydocs/download/",http.FileServer(http.Dir("/the-real-path-to-documents-folder/user-specific-folder/)))
当然还有我提供文件
fileServer.ServeHTTP(w,r)
重要提示:存放文件的目录不是我为网站申请的static-files目录,而是用户上传后所有文件结束的目录。
我的问题 当我尝试将代码转换为也在 Google Cloud 上运行时,我正在尝试更改代码,以便将文件存储在存储桶中(或者,更好地存储在“子目录”中 -因为它们没有正确存在 - 一个桶)。
如何修改代码,以便通过云存储桶映射可用的真实文档 url? 我还可以使用上面的 http.FileServer 技术吗(如果可以,我应该使用什么代替 http.Dir 来映射存储文档的存储桶“子文件夹”路径)?
我希望我已经足够清楚地解释了我的问题... 对于任何不清楚的地方,我提前道歉......