当前位置: 首页 > 知识库问答 >
问题:

使用tornado AsynchtpClient streaming\u回调下载大型文件失败

越风史
2023-03-14

下面的代码适用于小文件(

import tornado, tornado.httpclient

def main():
    url = "https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi"
    # url = "http://releases.ubuntu.com/16.04.1/ubuntu-16.04.1-desktop-amd64.iso?_ga=1.179801251.666251388.1483725275"
    client = tornado.httpclient.AsyncHTTPClient()
    request = tornado.httpclient.HTTPRequest(url=url, streaming_callback=on_chunk)
    client.fetch(request,on_done)

total_data = 0
def on_done(response):
    print total_data
    print response

def on_chunk(chunk):
    global total_data
    total_data += len(chunk)

main()
tornado.ioloop.IOLoop.current().start()

我得到:

19161088 HTTP响应(_body=无,缓冲区=

使用Python下载时,但是

0 HTTPResponse(_body=None,buffer=None,code=599,effective_url=)http://releases.ubuntu.com/16.04.1/ubuntu-16.04.1-desktop-amd64.iso?_ga=1.179801251.666251388.1483725275“,错误=HTTP 599:连接已关闭,头=,原因=,未知',请求=,请求时间=0.10775566101074219,时间信息={})

尝试Ubuntu时。。。

共有1个答案

樊俊悟
2023-03-14

streaming\u callback可以处理任何大小的文件,但默认情况下AsyncHTTPClient仍然强制执行100MB的限制。要增加这一点,请使用

AsyncHTTPClient.configure(None, max_body_size=1000000000)
 类似资料:
  • 问题内容: 我需要使用curl下载远程文件。 这是我的示例代码: 但是它不能处理大文件,因为它首先读取内存。 是否可以将文件直接流式传输到磁盘? 问题答案:

  • 我们有一个运行在Linux上的Weblogic服务器,有多个受管服务器。我所关心的托管服务器的最大堆大小为1024MB。该服务器上部署了多个应用程序。其中一个应用程序处理来自REST api的响应来下载250MB的文件。对于大于50 MB的文件,有时没有问题,但有时服务器会因OOM错误而崩溃。以下是我的代码: 由于存在内存问题,我尝试采用InpuStream方法。以下是更改后的代码: 此代码没有进

  • 我刚刚在google Drive中得到了一个500MB文件的大列表。我该如何在本地Linux机器上排队下载它们呢? 我不能把它们都压缩成一个大的下载 我无法将它们全部设置为一次下载 我不能整天都在这里小批量下载它们。 我从google drive的wget/curl大型文件这样的文档中看到,google drive的api被贬低了,我们不能wget它们。 所以我正在寻找一种从谷歌驱动器按顺序下载大

  • 我想用我的. htaccess将upload_max_filesize设置为3G(或最大值),因为我无法访问php.ini.我做了很多研究,这就是我现在得到的: .htaccess: 但不知怎么的,这对我不起作用。当我加上 对于我的PHP脚本,我只得到这样的响应: 当我使用而不是时,我得到一个500内部服务器错误 那么我做错了什么<提前谢谢! 编辑/解决方案:我使用的是一个共享托管服务,它不允许我

  • 我有一个文件表示为块的列表,目标是下载所有块,加入并保存为一个文件。 它应该适用于大文件 应该是跨浏览器解决方案 null null null null 但我仍然无法实现我的目标与涵盖的需求… 如果有人有经验,最好的解决方案,我恳请分享它在这里。谢谢

  • PHP不遵守上载\u最大\u文件大小 详细信息:使用 和. conf中搜索grep-inrupload_max_filesize,只返回12M值。搜索 /etc/httpd/conf/ /etc/httpd/conf.d/显然是虚拟主机的根。在grep返回0结果的虚拟主机中没有特殊设置。