如何通过 Http Servlet 响应发送大文件

How to send a large file over Http Servlet response

以下是用于发送文件的 HttpServletResponse header 和内容类型。最多 32MB 的数据被传递给客户端,但我的整个数据是 100MB 大小。

response.setContentType("application/octet-stream");
response.setHeader("Transfer-Encoding", "chunked");
response.setHeader("Content-Disposition", "attachment; filename="filename.bin");

我无法将此数据存储到云存储中,因为这将按用户创建。

是否可以通过HttpServletResponse实现?或者我需要转向其他方法,比如套接字等

请推荐一种适用于多客户端环境的方法。

App Engine 有配额,旨在保护每个人免受应用程序失控的影响。您的应用程序可以在单个入站 HTTP 请求中接收的最大数据量为 32MB。

如果您想上传更大的文件,那么您应该查看 Blobstore API

有关详细信息,请参阅 quota documentation

您无法绕过请求的 32mb 限制。最好的办法是将数据推送到 GCS,并生成 signed URL

根据生成 100mb 文件所需执行的操作,您可能需要使用任务队列卸载整个过程以防止请求超时。