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

Google app engine 如何通过Http Servlet响应发送大文件,google-app-engine,servlets,google-cloud-storage,google-cloud-endpoints,google-cloud-platform,Google App Engine,Servlets,Google Cloud Storage,Google Cloud Endpoints,Google Cloud Platform,以下是用于发送文件的HttpServletResponse头和内容类型。高达32MB的数据被传递到客户端,但我的整个数据大小为100MB response.setContentType("application/octet-stream"); response.setHeader("Transfer-Encoding", "chunked"); response.setHeader("Content-Disposition", "attachment; filename="filename.bi

以下是用于发送文件的HttpServletResponse头和内容类型。高达32MB的数据被传递到客户端,但我的整个数据大小为100MB

response.setContentType("application/octet-stream");
response.setHeader("Transfer-Encoding", "chunked");
response.setHeader("Content-Disposition", "attachment; filename="filename.bin");
我无法将此数据存储到云存储,因为这将由每个用户创建

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


请为多客户端环境推荐一种方法。

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

如果你想上传更大的文件,那么你应该看看


有关更多详细信息,请参阅。

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

如果你想上传更大的文件,那么你应该看看


有关更多详细信息,请参阅。

您无法绕过32mb的请求限制。您的最佳选择是将数据推送到地面军事系统,并生成一个数据集


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

您无法绕过32mb的请求限制。您的最佳选择是将数据推送到地面军事系统,并生成一个数据集


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

Hi@Brainislav我正在使用google app engine来实现这一点。GAE标签是获得可见性所必需的。这(32MB的问题)是发生在任何浏览器上,还是只发生在特定的浏览器上。设置
内容长度
标题可能很有用。请参见,您应该通过API设置分块传输模式,而不是通过这种方式。除非您通过API告诉它,否则它实际上不会进行任何分块。@EJP如何做?请共享一个引用。呃,哎呀,
HttpServletResponse
中没有用于此的API,但这更是不设置标题的原因。除非servlet容器执行任何分块编码,否则不会有任何分块编码,在这种情况下,它将插入自己的分块和头。在Tomcat中,这是通过设置一个.Hi@Brainislav来实现的。我正在使用google应用程序引擎来实现这一点。GAE标签是获得可见性所必需的。这(32MB的问题)是发生在任何浏览器上,还是只发生在特定的浏览器上。设置
内容长度
标题可能很有用。请参见,您应该通过API设置分块传输模式,而不是通过这种方式。除非您通过API告诉它,否则它实际上不会进行任何分块。@EJP如何做?请共享一个引用。呃,哎呀,
HttpServletResponse
中没有用于此的API,但这更是不设置标题的原因。除非servlet容器执行任何分块编码,否则不会有任何分块编码,在这种情况下,它将插入自己的分块和头。在Tomcat中,这是通过设置一个.Hi@jarmod来完成的,我明白你的意思了。我想下载生成的数据,类似Blobstore/云存储是否可行?如果你有什么想法,请分享。如果你想上传或下载大文件,那么我认为你可能应该使用GCS,你的客户应该直接与GCS服务交互以进行上传/下载。在下载的情况下,您的应用服务器可以创建一个有时间限制的签名URL,将其提供给客户端,然后客户端可以直接从GCS安全地下载文件。你应该避免让你的应用程序服务器充当GCS上传和下载的代理服务器。嗨@jarmod,我明白你的意思了。我想下载生成的数据,类似Blobstore/云存储是否可行?如果你有什么想法,请分享。如果你想上传或下载大文件,那么我认为你可能应该使用GCS,你的客户应该直接与GCS服务交互以进行上传/下载。在下载的情况下,您的应用服务器可以创建一个有时间限制的签名URL,将其提供给客户端,然后客户端可以直接从GCS安全地下载文件。您应该避免让您的应用程序服务器充当向GCS上传和从GCS下载的代理服务器。