在 google 云上托管 api 文件路径问题

Hosted api on google cloud issue with file paths

我在 main.go 文件的根目录中有一个图像文件。当 golang api 托管在 google 云上时,我如何获得提供文件的路径(当它托管在 google 云上时,似乎所有文件都被弄乱了)。这是我现在使用的代码:

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

您应该使用云存储来写入和读取文件。这将使您的文件可以在任何给定时间 运行 的所有服务实例中访问。