断点上传下载服务器怎么搭建
1. FTP该如何实现断点续传
客户端的实现步骤如下:
一、下载:
1、向服务器发送“REST + 本地文件长度”命令,告诉服务器,客户端要断点下载了。这时服务器还不知道客户端要下载哪个文件;
要实现FTP的断点续传,FTP服务器必须支持REST指令,这条指令在FTP协议文本RFC959中就已经定义了,不过它不是FTP服务器必须支持的指令。一般,你可以在下载前使用REST 100命令进行实验,如果服务器正常执行了这条命令,说明该服务器支持FTP断点续传。REST后面跟的数表示下载文件的起始位置,而REST 0表示从文件最开始处下载。REST命令本身并不执行下载功能,你仍需要使用RETR命令执行下载工作。
2、向服务器发送“RETR + 文件名”命令,通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据。
3、客户端定位本地文件指针(文件末尾);
4、两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据通道,循环调用recv接收数据并追加入本地文件;
二、上传:
1、获取服务器上和本地要上传文件的同名文件大小;
2、向服务器发送“APPE + 文件名”,通知服务器,接下来从数据通道发送给你的数据要附加到这个文件末尾。
3、定位本地文件指针(和FTP上文件大小相同的位置)
4、从文件指针处读数据并发送。
代码里将断点上传和断点下载放到同一个函数(MoveFile)里,通过get参数说明是上传还是下载。
2. 如何实现断点续传
其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。 打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为w www.sjtu.e.cn,文件名为down.zip。 GET /down.zip HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- excel, application/msword, application/vnd.ms-powerpoint, */* Accept-Language: zh-cn Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) Connection: Keep-Alive 服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下: 200 Content-Length=106786028 Accept-Ranges=bytes Date=Mon, 30 Apr 2001 12:56:11 GMT ETag=W/"02ca57e173c11:95b" Content-Type=application/octet-stream Server=Microsoft-IIS/5.0 Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT 所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给 Web服务器的时候要多加一条信息--从哪里开始。 下面是用自己编的一个"浏览器"来传递请求信息给Web服务器,要求从2000070字节开始。 GET /down.zip HTTP/1.0 User-Agent: NetFox RANGE: bytes=2000070- Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 仔细看一下就会发现多了一行RANGE: bytes=2000070- 这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。 服务器收到这个请求以后,返回的信息如下: 206 Content-Length=106786028 Content-Range=bytes 2000070-106786027/106786028 Date=Mon, 30 Apr 2001 12:55:20 GMT ETag=W/"02ca57e173c11:95b" Content-Type=application/octet-stream Server=Microsoft-IIS/5.0 Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT 和前面服务器返回的信息比较一下,就会发现增加了一行: Content-Range=bytes 2000070-106786027/106786028 返回的代码也改为206了,而不再是200了。 知道了以上原理,就可以进行断点续传的编程了。
3. 怎么搭建下载服务器
可以用分布式下载,这样对服务器影响很低,而且只要节点足够多,下载速度比常规要快!
4. 怎样创建FTP服务器要支持断点续传。
一般FTP服务器软件都支持的,IIS的FTP也支持,只是IIS7以上需要开启断点续传功能,默认是没开启的,IIS6默认是开启了的。
5. 怎么建立内网服务器,让员工能在服务器上上传和下载文件
你可以把你的服务器设置共享,然后为不同文件夹设置共享权限.
你也可使用软件来配置FTP文件服务器,推荐SERVER U
6. 如何让服务器支持断点续传
其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。
打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为w ,文件名为down.zip。 GET /down.zip HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- excel, application/msword, application/vnd.ms-powerpoint, */* Accept-Language: zh-cn Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) Connection: Keep-Alive 服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下: 200 Content-Length=106786028 Accept-Ranges=bytes Date=Mon, 30 Apr 2001 12:56:11 GMT ETag=W/"02ca57e173c11:95b" Content-Type=application/octet-stream Server=Microsoft-IIS/5.0 Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT
所谓断点续传,也就是要从文件已经下载的地方开始继续下载。
所以在客户端浏览器传给 Web服务器的时候要多加一条信息--从哪里开始。
下面是用自己编的一个"浏览器"来传递请求信息给Web服务器,要求从2000070字节开始。 GET /down.zip HTTP/1.0 User-Agent: NetFox RANGE: bytes=2000070- Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 仔细看一下就会发现多了一行RANGE: bytes=2000070- 这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。
服务器收到这个请求以后,返回的信息如下: 206 Content-Length=106786028 Content-Range=bytes 2000070-106786027/106786028 Date=Mon, 30 Apr 2001 12:55:20 GMT ETag=W/"02ca57e173c11:95b" Content-Type=application/octet-stream Server=Microsoft-IIS/5.0 Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT 和前面服务器返回的信息比较一下,就会发现增加了一行: Content-Range=bytes 2000070-106786027/106786028 返回的代码也改为206了,而不再是200了。
知道了以上原理,就可以进行断点续传的编程了。
7. 如何架设远程FTP服务器
在我们的实际网络生活中,特别是宽带网接入之后,FTP服务器作为文件的传输和共享工具得到广泛应用。FTP服务器在文件的传输上性能稳定,占用系统资源小,而且传输速度快,现在网上已经有很多的FTP服务器可供使用,而自己架设一个FTP服务器也很容易,下面介绍两种主流的FTP架构方式。
1.利用微软公司的IIS
微软的IIS功能非常强大,它除了提供WWW服务之外,还提供FTP的服务,利用它一样很容易就能架设一个功能卓越的FTP服务器。
IIS的安装前面已经讲解过,下面我们一起来看看通过设置IIS来架设FTP服务器的几个步骤。
第一步:启动IIS,并启动IIS上的FTP服务。在默认的情况下,此时你的FTP服务器已经搭建好,并且可以立即登录,但是该FTP中没有任何文件。
第二步:鼠标右击IIS中的“默认FTP站点”项,选择“属性”菜单,即可出现如图19的对话框。
第三步:选择“主目录”的标签,在FTP站点目录的“本地路径”处填上你要设置的共享文件路径。默认情况下,此处的文件夹位置为“C:\Inetpub\Ftproot”,你如果临时想改变共享目录,随时都可在此处修改(如图20),以后别人登录你的FTP服务器时显示的文件列表就是在这个目录中。
第三步:在“主目录”的标签处,你还可设置FTP服务器的文件访问权限,分别有读取、写入和日志访问,安全起见,这里的写入权限一般不选,保证匿名用户不能随意对你文件进行操作。
第四步:设置登录的用户。如果你愿意提供“匿名”的访问权限,还需在“安全标签”处选择上“允许匿名连接”(如图21)。此外,你还可从Windows系统帐号中选择FTP服务器的特殊帐号,当然也可以自己任意设置用户名和密码。
第五步:在“消息”标签处,有“欢迎”、“退出”和“最大连接数”3个输入框,分别代表别人在登录、退出时FTP服务器上给出的提示信息,你可根据自己的需要设置。此外,最大连接数是设置同时连接本地FTP的最大主机台数(如图22)。
第六步:在“FTP站点”的标签处设置FTP标识,包括说明、IP地址和端口,这里一般不需要改动,按照默认选择即可(如图23)。此外,在“C:\Winnt\System32\Logfiles”目录中你还可以看到连接上你FTP的IP、时间等日志信息。
此时,利用IE或者任何一款FTP的客户端软件即可登录你架设好的FTP站点。
2.利用Serv-U
在FTP服务器的搭建中,Serv-U是目前使用比较多的工具之一。它设置简单,功能强大,而且非常稳定,总体上来说上它比IIS附带的FTP服务器略胜一筹。它适用于所有的Windows版本,是一款共享软件,可以让用户免费使用一个月。
第一步:Serv-U的下载和安装。
目前Serv-U的最高版本为4.0,文件大小为2.9MB,它的下载站点之一为[url]http://www.rhinosoft.com.cn/download/ServUSetup.exe[/url]
点击下载的可执行文件即可开始安装了,安装过程很简单,所有设置保持默认值就可以,按“Next”完成每一步(如图24)。安装完毕,在Windows的桌面上就出现Serv-U的图标,双击Serv-U图标,出现Serv-U主窗口,点击主界面右边窗口的“Start server”即可启动FTP服务器 。
第二步:Serv-U的配置。
在Serv-U的安装完成之后即可出现配置向导,可以通过这个向导来对它进行配置,主要步骤如下。
A.安装程序首先启动一个设置向导帮助你设置FTP服务器,点击“Next”继续。
B.系统弹出输入IP的对话框,此项需要填入你准备为此FTP服务器绑定的IP地址。除非你的计算机有多个固定的IP地址,并且你只想其中一个被FTP服务器所使用,否则,建议不管你是否有固定的IP地址,都将此项保留为空(即让系统自动侦测),点击“Next”(如图25)。
C.输入Domain name(域名)。此处填入你FTP服务器的域名。但域名由DNS解析而不是由这里决定,因此实际上你可以填入任意内容,比如像“我的个人FTP服务器”这种对此FTP进行说明的文字。
D.输入FTP访问的端口号,一般保持默认的21即可。
E.匿名用户的创建和访问目录的设定。首先向导会提示你是否要创建匿名帐号,这里选择是,如果选择不,则用户需要用户名和密码才能访问FTP服务器。接下来安装向导提示输入匿名用户的主目录(Anonymous home directory),此处按照需要来设定匿名用户访问硬盘的位置。
F.选择匿名用户是否将其限制在主目录里,如果选择是,则用户只能访问其主目录及以下的目录树;如果选择否,则可以访问其主目录的同级或更高级的目录树。从安全角度考虑,一般建议选是。
G.创建新用户和访问目录。按照向导的提示一步一步创建新用户并输入密码(如图26),接着指定该用户可访问的目录和用户权限即可。
到这里,你的个人FTP就已经搭建完成了。不过这还只能实现Serv-U赋予的默认功能和权限,要真正让这个服务器能被你自己随心所欲地控制和管理,则还需要经过以下后续的操作,这主要包括如下几点。
A.对FTP用户的管理
欲增加一个新用户(包括增加Anonymous用户),则在Serv-U的一个域中选中Users(用户),然后单击右键,进入New User(新用户),依次根据提示为它设置好User Name(用户名)、Password(密码)、Home directory(主目录)等即可完成(如图27)。
欲删除一个用户,则在此用户上单击右键,选Delete User(删除用户)即可。
B.对目录权限的管理
在Serv-U左边框架中选中用户名,再在右边框架中进入Dir Access(目录存取)窗口,然后在列表中选中相应目录后,就可在窗口的右侧更改当前用户对它的访问权限了(如图28)。
文件的属性主要包括:
Read(读):对文件进行读操作(复制、下载,不含查看)的权力。
Write(写):对文件进行写操作(上传)的权力。
Append(附加):对文件进行写操作和附加操作的权力。
Delete(删除):对文件进行删除(上传、更名、删除、移动)操作的权力。
Execute(执行):直接运行可执行文件的权力。
List(列表):对文件和目录的查看权力。
Create(建立):建立目录的权力。
Remove(移动):对目录进行移动、删除和更名的权力。
Inherit(继承):如勾选中此项,则以上设置的属性将对当前Path(目录)及其下的整个目录树起作用;否则就只对其当前目录有效。
C.其他设置
在Local server下的Setting处还可设置服务器的一些通用信息。
在“max no.of users”处,设定同时登录该服务器的最大用户数。
在Max.Speed处根据自己电脑的配置,设置用户最大下载速度。
选择“Block users who connect more than XX times within YY seconds for ZZ minutes”复选框并设置相应的数值,可以防止有些恶意用户为达到攻击目的在短时间内对该服务器的频繁登录。
选择“Delete partially uploaded files”复选框,可以自动删除上传失败后留在服务器上不完整文件。如果不要选中这项,就能让Serv-U支持断点上传功能(如图29)。
3.架设FTP服务器的其他方式。
A.WS_FTP Server。这是一套非常有特色的FTP Server程序。它有简单而强大的图形接口。设置起来比较容易,可以在Win9X/NT/2000/XP系统下使用,是一个共享的英文软件,文件大小为3.3MB,下载站点之一:[url]http://www.skycn.com/soft/1296.html[/url]。
B.FileZilla Server。作为一个小巧、可*的FTP服务器软件,它配置简单,功能比较强大,适合Windows系列中的所有版本,文件大小为637kB,同时它是完全免费的软件,它的汉化版下载站点之一:[url]http://www.skycn.com/soft/8091.html[/url]。
C.TYPSoft FTP Server汉化版。由于该软件经过汉化,因此使用起来很容易上手,是一个非常适合初学者的FTP服务器端软件,它配置简单,也能方便地管理用户,软件大小只有480kB,是一款免费软件,它的下载站点之一:[url]http://www.skycn.com/soft/8335.html[/url]。