如何解决go 中的 REST 服务接收 Tar 文件作为输入,并使用此数据使用 GO 客户端为 docker 加载图像
我正在满足我的项目的一个要求,我需要在 GO 中构建一个 REST 服务,该服务将 *.tar.gz 作为输入,我还需要使用此数据使用 go 客户端为 docker 引擎加载图像。我正在使用下面的代码来实现这一点。
r := mux.NewRouter()
r.HandleFunc("/api/upload",doUpload).Methods("POST").Headers("content-type","application/octet-stream")
func doUpload(w http.ResponseWriter,req *http.Request) {
cli,err := client.NewClientWithOpts(client.FromEnv,client.WithAPIVersionNegotiation())
buf,err := ioutil.ReadAll(req.Body)
err = imageLoad(cli,buf)
}
func imageLoad(dockerClient *client.Client,binary []byte) error {
ctx,cancel := context.WithTimeout(context.Background(),time.Minute*30)
defer cancel()
tarContent := bytes.NewReader(binary)
ilr,err := dockerClient.ImageLoad(ctx,tarContent,true)
}
现在,我正在使用 POSTMAN 来测试这个 API,我正在发送一个 tar 文件(我之前使用 docker save 命令保存)作为应用程序/八位字节流,这里的问题是请求继续发送并在服务器日志中我可以看到一些数字一直在打印,我无法加载图像。 任何人都可以建议我在发送请求和 REST 服务代码时需要做哪些更改,我是 go lang 的新手。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。