如何通过 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 文件所需执行的操作,您可能需要使用任务队列卸载整个过程以防止请求超时。
以下是用于发送文件的 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 文件所需执行的操作,您可能需要使用任务队列卸载整个过程以防止请求超时。