APP 上传图片到我们的 python 后台,后台该如何接收啊

2014-11-05 16:38:44 +08:00
 p8p8
APP客户端上传图片到后台服务器(tornado),后台该如何接收啊?

谢谢各位!
8944 次点击
所在节点    Python
6 条回复
hisokc
2014-11-05 17:42:56 +08:00
app 那边图片内容转二进制,服务器端接收反转一下 将内容存成图片格式即可
shajiquan
2014-11-05 17:47:58 +08:00
1. APP 和 SERVER 相约一个编码方式。
2. APP 将图片编码,以数据流方式 POST 给 SERVER。
3. SERVER 将收到的文件解码,保存成文件。

如果这个接口只接受一个参数(也就是文件内容)的话,tornado 用 self.request.body 取出文件内容就好了。

另外建议把上传接口放在另外的服务器上处理,否则小心卡死。

或者,可以考虑使用七牛等云存储, 这样的话,APP 向 SERVER 请求向七牛上传文件所必须的 AUTH KEY,然后 APP 自己利用用户的网络上传图片到七牛,然后得到 filename 或者 file url,然后再进行后续操作。

这样做的好处是,不占用服务器带宽,不过分耗用服务器性能(文件读写)。
openroc
2014-11-06 10:54:12 +08:00
用torndo接收,会block进程,降低并发,最好使用nginx,接收upload。 :)
p8p8
2014-11-11 19:59:47 +08:00
@openroc 如何用nginx做upload接收啊,我试了一下,的确会block进程。延迟超过4000ms
openroc
2014-11-12 07:40:15 +08:00
@p8p8 google一下,很多:)
p8p8
2014-11-21 02:05:46 +08:00
@shajiquan

另外建议把上传接口放在另外的服务器上处理,否则小心卡死。

你提到的这点,我觉得比较合适,但是我这里有几个疑问,继续向你请教一下。

如果我把上传接口放在另外一台服务器上处理的话,另外一台就不用tornado做了是吧(否则另外一台不也会卡死么。),例如就用Flask?或者你有什么推荐的吗?

还有一个问题是,如果我把上传接口放在另外一台服务器上处理的话,那这个用户上传权限如何去做处理啊???这里可能是我思路没想通,难道要用单点登录?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144162

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX