我有一个图像文件在根目录与主。文件。我如何得到的路径服务文件,而golang api托管在谷歌云(似乎所有的文件得到混乱时,其托管在谷歌云)。下面是我现在使用的代码:
func ServeImage(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
ex, err := os.Executable()
if err != nil {
panic(err)
}
executableDir := filepath.Dir(ex)
//TODO error
file, err := os.Open(path.Join(executableDir, "/"+params["name"]))
if (err != nil) {
http.Error(w, err.Error(), http.StatusBadRequest)
fmt.Println(err)
}
defer file.Close()
http.ServeContent(w, r, "image", time.Now(), file)
}
我从这得到的错误是:
open /layers/google.go.build/bin/_DSC7451.jpeg: no such file or directory
seeker can't seek
###如果你使用的是应用引擎,那么你真的没有访问文件系统。https://cloud。google。com/appengine/docs/standard/runtimes
您应该使用云存储来读写文件。这将允许在任何给定时间运行的服务的所有实例之间访问您的文件。