gpt4 book ai didi

google-app-engine - 如何提供 Blobstorage 图像的大型 zip 文件?

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

我想提供一个动态 zip 文件,其中包含存储在 blobstorage 中的多个用户上传的图像

我用下面的代码成功地做到了,但是我遇到了 Appengine 实例被终止的问题,因为它们消耗了太多内存。

是否可以通过将它们直接流式传输到客户端而不将它们保存在内存中来提供此类 zip 文件?还有其他解决方案吗?

w.Header().Set("Content-Type", "application/zip")
w.Header().Set("Content-Disposition", "attachment;filename=photos.zip")

writer := zip.NewWriter(w)

defer writer.Close()

for _, key := range l.Files {
info, err := blobstore.Stat(c, appengine.BlobKey(key))

if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

wr, err := writer.Create(info.Filename)

if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

reader := blobstore.NewReader(c, appengine.BlobKey(key))

io.Copy(wr, reader)
}

最佳答案

您应该在 blobstore 中创建 zip 文件,然后从那里提供它:

通过这种方式,您还可以加快对已创建/存储的相同 zip/包的后续请求。

关于google-app-engine - 如何提供 Blobstorage 图像的大型 zip 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146725/

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