gpt4 book ai didi

google-app-engine - Golang GAE 将图像 Url 保存到 Blobstore

转载 作者:IT王子 更新时间:2023-10-29 02:05:10 28 4
gpt4 key购买 nike

我希望在 Go 中保存图像,例如 this :

url := "http://i.imgur.com/m1UIjW1.jpg"

response, e := http.Get(url)
if e != nil {
log.Fatal(e)
}

defer response.Body.Close()

file, err := os.Create("/tmp/asdf.jpg")
if err != nil {
log.Fatal(err)
}

_, err = io.Copy(file, response.Body)
if err != nil {
log.Fatal(err)
}

file.Close()

但是 - 我正在使用 Blobstore在 GAE 上,我发现的所有示例似乎都基于一些基于 users browser 的多部分表单上传。 ...

如何使用简单的 GET 请求在 GAE/Blobstore 上下载图像:

func handler(w http.ResponseWriter, r *http.Request) {
urlImage := "http://i.imgur.com/m1UIjW1.jpg"
//when a user calls this root handle, download urlImage to Blobstore
}

func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}

最佳答案

我认为,从上下文来看,您的意思是“将图像上传到 blobstore”,而您说的是“在 blobstore 上下载图像”。

曾几何时,您会使用 https://cloud.google.com/appengine/docs/go/blobstore/reference#Create 创建一个 blobstore Writer , 然后写在上面,然后关闭它。但是正如文档中提到的那样,现在已弃用;现在,您使用 cloud/storage 包代替 https://godoc.org/google.golang.org/cloud/storage#example-NewWriter 中的示例:

wc := storage.NewWriter(ctx, "bucketname", "filename1")
wc.ContentType = "image/jpg"
wc.ACL = []storage.ACLRule{{storage.AllUsers, storage.RoleReader}}
if _, err := wc.Write(response.Body); err != nil {
log.Fatal(err)
}

等等 -- 与示例相比,我只更改了内容类型以及您写入的确切字节数。

从本质上讲,blobstore 已被云存储取代,您应该使用后者。

关于google-app-engine - Golang GAE 将图像 Url 保存到 Blobstore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31754622/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com