关于在客户端上传大批量数据时的相应策略

技术点探索
场景:
1、在TEACH平台上传课件前,需要将组成的资源文件MD5值算出,然后发送给服务器,让服务器检查哪些需要新上传,哪些需要复用?
一般有文件个数按400个计。每条记录需要包括:文件MD5(32个字符) 32*400=12K左右

2、在OFFICE插件上传试题功能中,需要将一张OFFICE试卷分解成若干个PNG和DOCX,一般以40道题为例 ,大约800个文件左右。
每个文件需要申请一个上传的签名信息,就是要进行800次HTTP请求连接,这就是最近上传试题导致拒绝服务的原因。

黄海的思路:
1、由多次发起请求,合并为一次请求。
2、一次请求的话,请求体变大,对于服务器珍贵的带宽资源,将十分致命,因为以前的大文件上传下载都是分解到OSS了,现在还要面对这个问题。
3、办法:使用HTTP的GZIP,在请求前对请求BODY进行GZIP压缩,在服务器获取到请求体后,根据请求的GZIP标签,动态解压,获取信息,返回时使用NGINX的GZIP
压缩进行处理返回体。

参考办法如下:

http压缩 Content-Encoding: gzip  
http://liuviphui.blog.163.com/blog/static/20227308420141843933379/

Gzip Encoding an HTTP POST Request Body
http://www.cymbeline.ch/2014/03/16/gzip-encoding-an-http-post-request-body/

============================================================================
web中gzip,deflate的压缩与解压
http://crazysky.iteye.com/blog/775333

后期需要转到LUA版:
Nginx与Gzip请求
http://huoding.com/2013/09/02/283

============================================================================

需要联合测试FLEX与C#中,如何在REQUEST时使用GZIP进行压缩,而且服务器能成功解压。

时间: 2024-10-30 13:39:20

关于在客户端上传大批量数据时的相应策略的相关文章

[PHP]利用XAMPP搭建本地服务器, 然后利用iOS客户端上传数据到本地服务器中(三. PHP端代码实现)

一.安装XAMPP   http://www.cnblogs.com/lidongxu/p/5256330.html 二. 配置MySql http://www.cnblogs.com/lidongxu/p/5256515.html 然后呢, 今天我们就来接触下PHP开发语言 1. 首先呢, 需要在我们本机服务器文件夹资源下新建个.php文件,   废话嘛(你要写php啦!) 2. 在register.php 输入以下代码 <?php // 1. 获取客户端利用post方式网络请求的body里的

SecureCRT上传下载数据的方法

转自http://blog.sina.com.cn/s/blog_4af3b94f0101kfw5.html ———————————————————————————————————————————————————— SecureCRT这款SSH客户端软件同时具备了终端仿真器和文件传输功能.比ftp命令方便多了,而且服务器不用再开FTP服务了.rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具. windows端需要支持ZModem的telnet/ssh客户端

Java基础知识强化之网络编程笔记14:TCP之多个客户端上传到一个服务器的思考(多线程改进)

1. 多个客户端上传到一个服务器的思考 通过while循环可以改进一个服务器接收多个客户端. 但是这个是有问题的.如果是这种情况,假设我还有张三,李四,王五这三个人分别执行客户端  张三:好好学习.avi(100M) 256k  李四:天天向上.mp3(3M)   1M  王五:ILoveJava.txt(1k) 100M 这要等张三传完了,再去传李四…… 2. 使用多线程改进: (1)线程类UserThread: 1 package cn.itcast_15; 2 3 import java.

asp.net 客户端上传文件全路径获取方法

asp.net  获取客户端上传文件全路径方法: eg:F:\test\1.doc 基于浏览器安全问题,浏览器将屏蔽获取客户端文件全路径的方法,只能获取到文件的文件名,如果需要获取全路径则需要另想其他方法 如下提供两种方法: 方法1:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可. 方法2: function getPath() { //获取file 控件对象 var obj =

Thinkphp5+PHPExcel实现批量上传表格数据功能

http://www.jb51.net/article/129262.htm 1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHPExcel文件放在这里 2.前端代码 <!DOCTYPE html> <html> <head> <title>批量导入数据</title> </head> <body> <form action="{:url

Java 网络编程案例三:多个客户端上传文件

需求:每一个客户端启动后都可以给服务器上传一个文件,服务器接收到文件后保存到一个upload目录中.可以同时接收多个客户端的文件上传. 分析: (1)服务器端要“同时”处理多个客户端的请求,那么必须使用多线程,每一个客户端的通信需要单独的线程来处理. (2)服务器保存上传文件的目录只有一个upload,而每个客户端给服务器发送的文件可能重名,所以需要保证文件名的唯一.我们可以使用“时间戳”作为文件名,而后缀名不变 (3)客户端需要给服务器上传文件名(含后缀名)以及文件内容.而文件名是字符串,文件

winform下通过webclient使用非流方式上传(post)数据和文件

这两天因为工作的需要,需要做一个winform上传数据到服务器端的程序.当时第一个想法是通过webservice的方式来实现,后来觉得麻 烦,想偷懒就没有用这样的方式,http的post方式变成了第一选择.因为以前用的都是httpwebrequest之类的东西进行post提 交,winform下面还真的是第一次,不过很快就在网上找到了webclient这个类,接下来开始实现功能,话说webclient用起来还真的很简 单,一个头信息的声明,然后是URL,最后是post的数据,就完事了.正在高兴的

使用cmd命令行方式登录ftp上传下载数据

部分用户在使用ftp工具登录空间上传下载过程中经常会遇到各种问题,如主动模式,被动模式,以及其他导致无法登陆ftp .上传数据.下载数据的问题,这时候不妨使用一下命令行方式.命令行下可以避免很多由于ftp工具配置导致的问题,而且这种方式下下载数据的速率明显比使用ftp工具更快.下面就来看一下如何使用ftp 命令进行简单的上传下载数据.1.登录ftp在“开始”->”运行”中输入“cmd”,进入cmd命令行模式,接下来输入:ftp 118.193.22.151输入自己的网站ip地址,接下来会提示输入

在asp.net中用客户端上传控件上传文件( 需要注意的)

在asp.net中使用<inpu nme=“file” type=“file”>客户端控件上传文件, 代码大致如下: for(int i=0; i< Request.Files.Count; i++) //这里就是获取不到file的个数 { if(Request.Files[i].ContentLength > 0) { Response.Write (Request.Files [i].FileName ); } } 在我的页面中,Request.Files.Count怎么弄都是