为了账号安全,请及时绑定邮箱和手机立即绑定

如何提供 Blobstorage 图像的大型 zip 文件?

如何提供 Blobstorage 图像的大型 zip 文件?

Go
红糖糍粑 2021-06-04 13:14:28
我想提供一个动态 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)}   
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

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

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


查看完整回答
反对 回复 2021-06-07
  • 1 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信