我用php开发了一个webdav协议的软件phpdav
github地址:
https://github.com/xinghanking/phpdav
我想要把它推广出去,所以先用个实际的应用例子,介绍下他的使用功能及价值,至于服务器端怎么安装使用,另行开文在介绍。
之所以这么做,我想有使用价值才有开发价值,如果有很多人支持感兴趣,我也有继续开发下去的动力,至于为什么用php,因为我目前对这门语言最熟悉最顺手,但我也可能会推出另一个语言的版本。
如果你是一个网站服务器管理员或者web应用开发者、个人站长,你平时管理你的开发机或者网站服务器,上传网站代码或者各类应用文件,可能都是使用诸如cuteftp、xftp、winscp之类的工具软件这样做。
左边本地文件目录视图,右边远程服务器文件目录视图,然后各种拖拽操作。
现在我来提供一种在你的服务器安装了我开发的phpdav软件的前提下
无论你本地电脑用的是windows还是mac本都不需要另行安装任何第三方工具软件就可以管理远程服务器文件目录的方式——把你要管理的远程服务器文件目录挂载成一个本地电脑的硬盘。
现在用一个实际的例子来体现我开发的phpdav软件的使用价值:
网络地址:https://cloud.httpsdav.club
(该网络地址映射我一个vps服务器的/home/phpdav/mycloud目录)
登录用户名:liuzhongliang
密码:liuzhongliang
如果你的本地电脑操作系统为win7,请直接看下面的部分;
如果你的本地电脑操作系统为win10,请绕过下面win7的部分直奔win10的部分;
如果你的本地电脑为mac本,请绕过前面提到的两个部分,直奔mac的部分;
win7挂载示例
- 点击桌面“计算机”,进入我的电脑
2. 进入“计算机”(或者称“我的电脑”),点击映射网络驱动器,如下图红线框所示。
3. 在弹出的标题为“映射网络驱动器”的窗口的文件夹输入框内填写示例中的网络地址。
4. 在上一步的弹出窗口点击完成按钮后,会弹出如下图所示的登录弹框,输入示例中的用户名和密码。
点击确定后,看下是不是多出了一块对应你第三步所选的驱动器盘符的硬盘?
win10挂载示例
- 点击桌面图标“这台电脑”
2. 点击计算机里的“映射网络驱动器”,将会弹出标题为“映射网络驱动器”的弹出窗口
3. 在标题为“映射网络驱动器”的弹出窗口的文件夹输入框内填写示例中的网络地址
4. 点击上一步弹窗内的完成按钮,在弹出的登录弹框内输入示例中的用户名和密码
点击弹框内的确定按钮后,看是不是在“这台电脑”的页面里多出了一块硬盘?
mac 挂载示例
- mac桌面点击前往里的连接服务器
2. 服务器地址里输入示例中的地址
3. 点击连接,弹出窗口内输入用户名和密码
. 点击连接,看挂载是不是成功了?
挂载成功后,你就可以像使用本地硬盘一样的对服务器上映射的目录操作了。
至于性能
如果你本地硬盘写入速度为100M, 网速为1G带宽,服务器的硬盘写入速度入200M ,那么我想你挂载的网络硬盘会比你的本地硬盘还好使用。
至于安全
我们可以开启https通信的的双向ssl加密功能来确保安全。
也许有熟悉webdav协议的网友说,不就是webdav协议么?干嘛用php来实现,我直接用nginx里webdav模块配置就行,但是你会发现你直接用nginx自带的webdav模块配置后,无法实现挂载,原因很简单,nginx的原生webav模块功能很有限,没有实现webdav里的PROPFIND的方法,你要使用的话,得借助第三方的软件;
也许有人说github里有人提供的nginx的webdav第三方扩展模块,我把它编译进行就成了;
没错,编译了那个第三方开发者提供的扩展模块后,你可以实现挂载,但你会发下无法在挂载的盘内实现创建文件、创建文件夹等功能,原因很简单,这个作者提供的第三方模块提供的功能也很有限……
我用php开发的这个phpdav软件实现了webdav协议的所有基本方法,全功能;
而且php是解释性脚本语言,有什么功能要改要扩展,免编译,直接修改就成。
也许还有人时候我可以用apache里的webdav, 但你会发现apahce会在你的每个文件夹下建立一个.DAV的文件目录……,而且apache里的webdav协议的方法也支持不全,诸如加锁……
为什么我会了解这些细节?因为我以前就是用这些,遇到了一些其方法不全和不支持的地方。
而且我还想用php实现其webdav基本协议全功能后,还可以附加一些用户账号体系等功能……
这就是我的下一步开发计划了,先看下我现在做的能不能推广出去得到大家的支持吧?