托管api在谷歌云问题与文件路径

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


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


尚方宝剑之说
浏览 76回答 1
1回答

翻过高山走不出你

如果您使用的是应用程序引擎,那么您实际上无法访问文件系统。https://cloud.google.com/appengine/docs/standard/runtimes您应该使用云存储来写入和读取文件。这将允许在任何给定时间可能正在运行的所有服务实例中访问您的文件。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go