4GB以上超大文件上传和断点续传服务器的实现

随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。

但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基本的上传功能,然而在实际使用中会发现,这些基于脚本语言实现的上传功能模块性能很弱,一是不支持2GB以上的内容上传;二是无法支持断点续传;三是效率极低,单台服务器最多支持几十个并发上传连接。

当前我们要搭建一个运营级的视频服务平台,在尝试了各种产品均无法满足要求,因此最后花精力自主用C++语言实现了这一高性能上传服务器。

项目地址:

http://git://10.168.4.241/up6/web/asp.net.git

Hyper Upload Server 超级上传服务器

这是一款超级文件上传服务器,采用异步I/O架构,采用C++语言编码实现。它支持4GB以上超大文件上传和断点续传,支持Windows和Linux服务器平台,支持任意格式的文件上传,尤其适合大的视频网站应用。单台服务器支持1000并发上传进程,支持PC端和智能手机端主流的浏览器。

主要特性

1. 服务器端采用异步I/O架设设计,具有高性能I/O处理能力,尤其适用于超大文件上传;

2. 服务器端采用高效内存分配技术确保在运行过程中服务器的内存开销最小化;

3. 完全采用标准协议实现,因此兼容几乎所有的PC端和移动端浏览器;

4. 服务器端采用C++语言自主实现,对上传文件的尺寸无限制,天生支持超大文件上传。

而基于PHP、JAVA等技术实现的文件上传服务天生无法支持超大文件上传,无法逾越2GB的最大文件尺寸瓶颈;

5. 服务器端采用无缓冲即时写入方式,上传数据写入一步到位。不同于PHP、JAVA等技术实现方式需要两步写入;

6. 服务器端可跨平台编译运行,支持Windows和Linux平台;

7. 高性能,单台服务器支持1000个并发上传进程;

8. 支持4GB以上超大文件上传,文件大小不受限制;

9. 客户端支持采用HTTP标准协议上传;

10.支持断点续传,断网、关机重启均不受影响;

11.支持HTML5浏览器上传进度实时显示;

12.支持IE8及以上浏览器上传进度显示;

13.支持查看客户端在线连接, 查看方法: http://ip:port/lists

14.多浏览器兼容,包括Chrome,Firefox,Safari,IE,Opera,Edge;

安装

第一步:解压文件到一个硬盘目录,例如d:\UploadServer

第二步:修改配置文件

修改d:\UploadServer\conf\config.xml,文件里的目录设置,

将所有 dir= 变量指向的目录修改为硬盘上的真实目录,如果没有就按配置文件创建;

第三步:安装服务

执行cmd打开命令行窗口按步骤输入以下命令:

d:  <br/>

cd UploadServer

HYFileServer.exe -i

第四步:启动服务

打开系统的服务管理器,找到Hyper Http Upload Service服务启动它。

第五步:在浏览器里输入 http://127.0.0.1:8080 查看服务器运行是否正常

如果上传页面正常显示说明安装成功

点击其中一个上传文件链接 按钮来上传一个文件。

如果要在其它主机上访问上传服务器页面,请将127.0.0.1用安装服务器的IP地址取代。

如果外部机器还不能访问,请检查防火墙的设置,看一下默认的8080端口是否开启。

第六步:如果要进一步了解上传服务器,请查看 d:\UploadServer\doc\文件上传服务器使用手册.pdf 文件。

– Linux 下执行安装

./hyupdsrv

如果要作为守护进程,执行

./hyupdsrv -d

详细配置可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/09/%E5%BE%80%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E4%BC%A0%E5%A4%A7%E6%96%87%E4%BB%B6/

示例下载,下载前选择合适的语言版本:

asp.net:https://gitee.com/xproer/asp-net/tree/6.5.38/

jsp-eclipse:https://gitee.com/xproer/jsp-eclipse/tree/6.5.38/

jsp-myeclipse:https://gitee.com/xproer/jsp-myeclipse/tree/6.5.38/

jsp-springboot:https://gitee.com/xproer/jsp-springboot/tree/6.5.38/

php:https://gitee.com/xproer/php/tree/6.5.38/

vue-cli:https://gitee.com/xproer/vue-cli

上传大文件解决方案方法相关推荐

  1. asp.net core mvc上传大文件解决方案

    asp.net core mvc上传大文件解决方案 参考文章: (1)asp.net core mvc上传大文件解决方案 (2)https://www.cnblogs.com/eggtwo/p/988 ...

  2. asp.net 上传大文件解决方案(转)

    这次在项目中,用到了大文件上传,要上传的文件有100多m,于是研究现在国内使用的大文件上传的 组件发现用的比较多的有两个控件AspnetUpload 2.0和Lion.Web.UpLoadModule ...

  3. 上传大文件解决方案插件

    HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.a ...

  4. Thttpd上传大文件的方法

    最近在给Microsoft做一个项目,碰到需要上传几百MB的文件,而thttpd本身也是支持上传文件功能的,只是thttpd为了考虑一些需求在某些方面进行了限制. 这里我做个简单的介绍,thttpd的 ...

  5. [Asp.net]Uploadify上传大文件,Http error 500 解决方案

    [Asp.net]Uploadify上传大文件,Http error 500 解决方案 参考文章: (1)[Asp.net]Uploadify上传大文件,Http error 500 解决方案 (2) ...

  6. [Asp.net]Uploadify上传大文件,Http error 404 解决方案 - wolfy

    引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章: [Asp.net]Up ...

  7. 使用uploadify上传大文件报 IO error #2038错误的解决方案

    使用uploadify上传大文件报 IO error #2038错误的解决方案 参考文章: (1)使用uploadify上传大文件报 IO error #2038错误的解决方案 (2)https:// ...

  8. php 上传过大文件,php 完美解决无法上传大文件方法

    无法上传大文件是因为php.ini配置有限制了,这样限制了用户默认最大为2MB了,超过了就不能上传了,如果你确实要上传我们可以按下面方法来处理一下. 打开php.ini, 参数  设置  说明 fil ...

  9. .NET上传大文件时提示Maximum request length exceeded错误的解决方法

    使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息.该错误信息的翻译:超过最大请求长度. 解决方法: ...

最新文章

  1. 哥伦比亚大学AI实验室主任Hod Lipson:阻碍无人驾驶技术发展的7个误区
  2. [转]数据结构:图的存储结构之邻接矩阵
  3. JAVA字符串的替换replace、replaceAll、replaceFirst的区别解析。
  4. 3D模型格式解析(OBJ)
  5. 非插件实现回复可见效果
  6. django url 生效_Django-url配置和详解
  7. 【Flink】A Typical reason for AskTimeOutException is that the recipientactor
  8. 计算机考试可以带首饰吗,高考时不许考生戴框架眼镜?“无声考场”有新规,考生别忽视...
  9. 揭秘2018图灵奖评选:Jeff Dean李开复和Lecun写信推荐Hinton
  10. VSC为_LCC 和 VSC (MMC) 的底层特性区别
  11. 提取swf素材_网页游戏素材提取工具及提取教程
  12. SVG排版公众号文章『CSS滤色混合模式』模板代码
  13. End-to-End Object Detection with Fully Convolutional Network 论文笔记
  14. JavaScript沙箱(环境,黑盒)
  15. 基于sqlite的android数据库编程,Android编程之SQLite数据库操作方法详解
  16. error: 'FILE' undeclared (first use in this function)
  17. 视频教程-Excel高效办公必会技巧(Excel系列课程)-Office/WPS
  18. 电感的参数化建模仿真与验证
  19. 解决ElasticSearch启动报错
  20. Debugger for Chrome

热门文章

  1. C++ 数据结构——BF算法
  2. python 翻译模块 翻译API使用(百度、有道、谷歌)
  3. python web server 知乎_“知乎网”技术方案初探
  4. 牛客-二叉树层序遍历
  5. 利用C51单片机模拟SPI进行双机通信
  6. python uniform 函数
  7. final修饰局部变量
  8. Java super关键字详解
  9. 线上bug检测工具 android,Android 测试中对于偶现且难以重现的 bug 的处理
  10. JS知识点总结(全)