1
我想爲多個用戶上傳的圖片動態zip文件存儲在blobstorage如何提供Blob存儲圖片的大型zip文件?
我successfuly用下面的代碼做這件事,但我遇到這樣的情況,因爲他們消耗的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)
}