惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tenable Blog
Project Zero
Project Zero
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cyberwarzone
Cyberwarzone
PCI Perspectives
PCI Perspectives
G
GRAHAM CLULEY
H
Hacker News: Front Page
Cloudbric
Cloudbric
Latest news
Latest news
N
News and Events Feed by Topic
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
SecWiki News
SecWiki News
Security Latest
Security Latest
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Security Archives - TechRepublic
Security Archives - TechRepublic
V2EX - 技术
V2EX - 技术
B
Blog RSS Feed
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
Last Week in AI
Last Week in AI
IT之家
IT之家
Jina AI
Jina AI
Y
Y Combinator Blog
博客园 - 聂微东
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
P
Privacy International News Feed
B
Blog
S
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
Help Net Security
Help Net Security
D
DataBreaches.Net
博客园_首页
G
Google Developers Blog
I
InfoQ
量子位
大猫的无限游戏
大猫的无限游戏
S
Security @ Cisco Blogs

Tornado

docker 多进程部署 tornado - V2EX Tornado 的异步 怎么写的 - V2EX tornado 下 ckeditor 图片上传问题 - V2EX Tornado 异步怎么写的? - V2EX tornado 怎么能确保端口挂了 服务也不会停止? - V2EX Tornado 路由有什么好方法,一个一个写太麻烦了,有没有根据 url 和注解匹配的方法呢 - V2EX Tornado V4.5 release pypy 拿到赞助之后出了支持 Python3.5 的版本 - V2EX 请教 tornado 文件上传问题 tornado 做后台服务,如果前端没有用 cookie. - V2EX tornado 优秀项目推荐 问一个 tornado 解决阻塞的方案问题? - V2EX tornaqiniu(基于 tornado 的异步七牛 sdk) tornado 并行异步,如何保证在只有部分请求成功后,结果依旧可用。 - V2EX nginx 反向代理 tornado,如何 location 首页u rl? - V2EX 问一个关于 tornado 异常处理的新手问题 - V2EX tornado 的 coroutine 能和自定义的装饰器一起使用吗?? - V2EX Tornado 并发数很低,正常么? - V2EX 阅读 Tornado 源码过程中的一个疑惑,求解答 - V2EX gtornado - tornado 中 pymysql, pymemcache, storm orm 支持库 - V2EX Tornado 如何组织中大型项目,你们都是怎么样做的? - V2EX tornado 跑不通,小白求帮忙 - V2EX Tornado 4.3 发布 - V2EX Tornado 官方怎么不好好维护一个 sql 的异步数据库驱动? - V2EX 关于 tornado 阻塞的问题 - V2EX tornado 的 mysql 异步驱动性能测试 pypy 之 tornado - V2EX tornado 多个 url - V2EX RequestHandler 类的 get_current_user() 方法覆写无效 tornado 动态添加 url 的问题 tornado 怎么利用'next'参数进行页面跳转 finish() called twice 阿里云 ECS 1CPU 1G 1Mbs 跑 tornado 开多少进程合适? tornado.locale.format_date()的日期汉化问题 Tornado 分页问题求解! Tornado 开发中出错调试如何像 PHP 一样? - V2EX 新手完全不懂 tornado.concurrent.Future 有多少人 有付费学习 Tornado 的意愿,这是一个学习网站。 - V2EX 请问下 tornado 在 ios app 后台方面有成熟的实现吗? 新手求教关于 Tornado + SQLite 的两个问题 - V2EX Tornado 4.1 - V2EX 关于优雅地部署 Tornado 新代码的一种方式 - V2EX Tornado Template 如何获得 JavaScript 中的 var 变量? 学习 "Introduction to tornado" 提问 - V2EX 用 Tornado + Mongodb 开发要注意什么? - V2EX 用 Tornado 做的网站,大家在写测试的时候,一般都是怎么做的呢? - V2EX 分享本人基于 tornado 开发的应用层框架 - V2EX Nginx 多端口运行 Tornado 如何获取当前端口 - V2EX Tornado 框架如何写 MVC 模式? - V2EX
Tornado 如何拿到传输的文件流 - V2EX
zhze93 · 2019-04-25 · via Tornado

这是一个创建于 2607 天前的主题,其中的信息可能已经有所发展或是发生改变。

一个大文件
我在 client 通过 requests 库来进行传输

with open(path_file, "rb") as f:
    res = requests.post(url, data=f, timeout=600)

我在 server 端,从 tornado_request 中该如何接收这个文件流并保存下来呢。
谢谢各位的不吝赐教。

第 1 条附言  ·  2019 年 4 月 25 日

没有采用标准上传方式是因为这个文件过大了,内存扛不住,就用了 requests 的流式传输。
但是有个问题,我这样流式传输,我的 nginx upload 并没有反应。如果采用 form-data 的方式,nginx 是 OK 的。
所以只能自己在 server 端去拿到文件流保存下来。

sujin190

1

sujin190      2019 年 4 月 25 日

RequestHandler 上有 request 属性,request 这个有 body 原始字节属性,和 files 属性吧,files 就是已经被解析成 file 对象,body 则必须你自己解析了

再说调试下就知道了啊,python 用 pycharm 啥的还是调试很方便的

zhze93

2

zhze93      2019 年 4 月 25 日

@sujin190
调试过了。request body 接收到后是字符串,这里该怎么解析。
之前文件不大,传输的都是 form-data 格式,服务端我就直接二进制读写就行了。

momo1999

3

momo1999      2019 年 4 月 25 日

self.request.files

kidlj

4

kidlj      2019 年 4 月 25 日

几年前学习 Python web frameworks,flask 和 Django 都不太喜欢,看到 Tornado 的 api 一下子就喜欢了。可是当时不太懂 coroutine 和异步编程,觉得难以入门。后来学习了 Node.js 和 Express,也是很喜欢,现在回过头来看,Tornado 就相当于 Python 的 Express 吧。

sujin190

7

sujin190      2019 年 4 月 25 日

@zhze93 #2 正常 request.files 肯定是解析好的,requests.post 上传文件不是这么写的吧,你这是把文件内容读出来整个放到 body 里了,所以服务端 request.body 就是文件内容吧,直接写入文件就行了

wupeaking

8

wupeaking      2019 年 4 月 25 日

这个问题很多年前我也遇到过,request 一次是把 http 请求的数据全部读取完后返回给你的。 如果你是请求大文件这种一下就把内存干光了。 后来我是重写了 tornado 的 httpclient,每次读取一部分数据然后异步回调。 现在我转到 Go 了, 具体实现记不清了。 你要是需要我翻一翻以前的代码贴给你。