WebDAV 配置及相關工具

longware發表於2015-05-18

最近在專案中安裝和除錯伺服器,杯具的是,伺服器是內網地址,而且不可以直接SSH、SFTP,只能通過中間一臺linux作為跳板,然後在SSH命令列裡去操作目標機器。

如果只是命令列操作也就無所謂了,但是還要經常傳輸檔案,在跳板機上SSH,SFTP,SCP命令切換過來切換過去,累死了,有沒有更好的辦法?

依稀記得N年前折騰過一個通過http協議操作伺服器檔案的玩意,那就是WebDAV。

 

科普開始。WebDAV (Web-based Distributed Authoring and Versioning) 一種基於 HTTP 1.1協議的通訊協議。它擴充套件了HTTP 1.1,在GET、POST、HEAD等幾個HTTP標準方法以外新增了一些新的方法,使應用程式可直接對Web Server直接讀寫,並支援寫檔案鎖定(Locking)及解鎖(Unlock),還可以支援檔案的版本控制。更多說明,請自行百度谷歌。比如,可以通過開啟 http://127.0.0.1/uploads/ 來操作伺服器上指定目錄的檔案,非常方便,解決了某些單位網路埠和防火牆的限制。

 

WebDAV配置

 

WebDAV服務端,目前我只折騰過Apache httpd,其他的我還不瞭解。從apache httpd官網下載好httpd 2.x版本,下載安裝,完畢之後,開啟httpd.conf檔案,將最後幾行的一個註釋去掉。

1 # Distributed authoring and versioning (WebDAV)
2 Include conf/extra/httpd-dav.conf

然後編輯conf/extra/httpd-dav.conf檔案

#
# Distributed authoring and versioning (WebDAV)
# modified by longware
# Required modules: mod_dav, mod_dav_fs, mod_setenvif, mod_alias
#                   mod_auth_digest, mod_authn_file
#
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule alias_module modules/mod_alias.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_file_module modules/mod_authn_file.so

# The following example gives DAV write access to a directory called
# "uploads" under the ServerRoot directory.
#
# The User/Group specified in httpd.conf needs to have write permissions
# on the directory where the DavLockDB is placed and on any directory where
# "Dav On" is specified.

DavLockDB "D:/WebServer/apache/var/DavLock"

Alias /uploads "D:/WebServer/apache/uploads"

<Directory "D:/WebServer/apache/uploads">
    Dav On

    Order Allow,Deny
    Allow from all

    AuthType Digest
    AuthName DAV-upload

    # You can use the htdigest program to create the password database:
    #   htdigest -c "D:/WebServer/apache/user.passwd" DAV-upload admin
    AuthUserFile "D:/WebServer/apache/user.passwd"
    AuthDigestProvider file

    # Allow universal read-access, but writes are restricted
    # to the admin user.
    <LimitExcept GET OPTIONS>
        require user admin
    </LimitExcept>
</Directory>

#
# The following directives disable redirects on non-GET requests for
# a directory that does not include the trailing slash.  This fixes a
# problem with several clients that do not appropriately handle
# redirects for folders with DAV methods.
#
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

上面的程式碼中,LoadModule部分,請根據自己情況開啟,如果主httpd.conf檔案中都開啟了,此處就不用開啟,反之,在這裡要加上LoadModule。

然後在apache的bin目錄裡,在cmd模式裡,執行命令 

htdigest -c "D:/WebServer/apache/user.passwd" DAV-upload admin

會提示輸入密碼,此處就會生成一個使用者名稱和密碼對應的庫檔案。

然後重啟apache,在瀏覽器位址列輸入http://127.0.0.1/uploads/,如果看到403禁止訪問,應該就是配置成功了。

此配置檔案適用於Linux系統,本人已配置成功,之前折騰了很久,走了彎路,汗!如果想成功在客戶端操作檔案,必須要將apache的預設執行使用者daemon和目標資料夾設定為同一使用者,或者同一組,或者自己更改apache的預設使用者。

 

WebDAV客戶端

 

1、最簡便的客戶端工具,就是windows的資源管理器(建議win7以上作業系統),開啟我的電腦,右鍵“新增一個網路位置”,然後根據嚮導,輸入地址http://127.0.0.1/uploads/,需要驗證的時候,輸入口令,就在我的電腦裡建立了一個網路資料夾,雙擊開啟,就可以自由操作檔案了。

使用windows的資源管理器的優點是方便,缺點是,我感覺操作和響應有點慢,於是乎,我在尋找其他工具。

2、WINSCP 5.7.3

要5.7以上版本,之前的版本不支援。winscp介面友好,操作很方便,推薦。

3、Beyond Compare 4

如果你經常比較檔案和資料夾,推薦Beyond Compare,我從2.0開始用的,非常好。進行比較資料夾時,可以選擇其他檔案系統,選擇webdav即可。Beyond Compare 4才支援webdav,以前的版本不支援。

4、其他

BitKinex、Cyberduck、WebDrive、DAVExplorer、FarNetBox、AnyClient等等,我試用了下,感覺都怎麼的不那麼好用,要不UI不夠友好,要不功能不夠強大。

更多工具參考這裡,有些free有些收費。

http://en.wikipedia.org/wiki/Comparison_of_WebDAV_software

http://webdav.org/projects/

 

相關文章