WebDAV:修訂版本之間的差異
出自福留子孫
(→Firefox) |
(→WebDAV 定義) |
||
(未顯示2位用戶所作出之22次版本) | |||
第 1 行: | 第 1 行: | ||
+ | [[分類:標準]] | ||
WebDAV 是 web-based distributed authoring and versioning(基於 Web 的分散式登入與版本控制) 的簡稱。它是 HTTP(S) 協定的一種延伸,可讓 Web 伺服器變成一般標準的網路磁碟。在啟用 WebDAV 服務後,你就能透過 HTTP 或 HTTPS 協定連線至 NAS。 | WebDAV 是 web-based distributed authoring and versioning(基於 Web 的分散式登入與版本控制) 的簡稱。它是 HTTP(S) 協定的一種延伸,可讓 Web 伺服器變成一般標準的網路磁碟。在啟用 WebDAV 服務後,你就能透過 HTTP 或 HTTPS 協定連線至 NAS。 | ||
+ | |||
+ | === WebDAV 定義=== | ||
+ | HTTP 和 Web 最初是作為讀 / 寫而發明的環境。 | ||
+ | *GET:讀取(資料)。 | ||
+ | *PUT:寫入或創建(資料)。 | ||
+ | *DELETE:刪除(資料)。 | ||
+ | *POST:傳輸(訊息資料)方法。 | ||
+ | |||
+ | WebDAV 是藉由額外定義 HTTP 中的 methods 與 headers 來實現遠端檔案存取上所需的操作與資訊傳遞: | ||
+ | *The method :描述被 Client端 執行的方法。 | ||
+ | *Headers :描述有關工作如何被完成的指令。 | ||
+ | *A body (optional):定義指令用到的資料或有關方法如何被執行的額外指令。 | ||
+ | |||
+ | 以下是他額外定義的 methods: | ||
+ | *MKCOL:建立目錄。 | ||
+ | *覆寫保護:如此多位使用者,可同時讀取檔案,但一次只有一個人可以修改檔案。 | ||
+ | **LOCK:鎖定。<br/>如:資源以供寫入、讀取,支援檔案系統常見的共享鎖與互斥鎖。 | ||
+ | **UNLOCK:解鎖。<br/>如:移除資源的鎖定。 | ||
+ | *屬性管理:修改與某些資源相關的內容。舉例來說,使用者可以寫入並取回檔案的内容資訊。 | ||
+ | **PROPFIND:檢索遠端系統的集文件的屬性列表,取得資源的屬性。<br/>如:查詢檔案的大小、列出目錄下的內容。 | ||
+ | **PROPPATCH:更新資源或集合的屬性。<br/>如:修改、刪除資源的屬性、如調整檔案的 ACL 規則。 | ||
+ | *命名儲存空間管理:有正確權限的使用者就可以在 WebVDAV 目錄中自由複製並移動檔案 | ||
+ | **MOVE(可選):移動資源到另一個位置或重命名。<br/>如:用於移動檔案、目錄。 | ||
+ | **COPY(可選):將資源從一個位置(URL)複製到另一個位置(URL)。<br/>如:用於複製檔案、目錄。 | ||
+ | |||
+ | === WebDAV 協議流程 === | ||
+ | <img src='http://jendo.org/~游士賢/使用說明/webdav/WebDAV協議流程.svg' width='600px' /> | ||
+ | |||
+ | === php 模組需求 === | ||
+ | #PHP module ctype | ||
+ | #PHP module dom | ||
+ | #PHP module GD | ||
+ | #PHP module iconv | ||
+ | #PHP module JSON | ||
+ | #PHP module libxml | ||
+ | #PHP module mbstring | ||
+ | #PHP module posix | ||
+ | #PHP module SimpleXML | ||
+ | #PHP module XMLReader | ||
+ | #PHP module XMLWriter | ||
+ | #PHP module zip | ||
+ | #PHP module zlib | ||
===伺服器啟動 webDAV=== | ===伺服器啟動 webDAV=== | ||
− | + | *啟用 WebDAV 功能: | |
+ | *#控制台:檔案服務(左選項) ➞ webDAV ➞ 啟動 WebDAV ➞ 套用。<br/><img src='http://jendo.org/~游士賢/使用說明/webdav/synology_webdav_setup_00.png' width='600px' /><br/> | ||
+ | *啟用匿名 WebDAV 帳號登入:允許用戶使用「anonymous」使用者名稱來透過 WebDAV 連線存取共用資料夾。<br/> | ||
+ | *#控制台:儲存空間(左選項) ➞ 儲存空間 ➞ 進階設定 ➞ 預設權限<br/><img src='http://jendo.org/~游士賢/使用說明/webdav/synology_webdav_setup_01.png' width='600px' /> | ||
+ | *#選取「系統內部使用者帳號」<br/><img src='http://jendo.org/~游士賢/使用說明/webdav/synology_webdav_setup_02.png' width='600px' /> | ||
+ | *#將「Anonymous FTP/We...」的選項打勾。(無帳號者權限)<br/><img src='http://jendo.org/~游士賢/使用說明/webdav/synology_webdav_setup_03.png' width='600px' /> | ||
===使用 webDAV=== | ===使用 webDAV=== | ||
====Firefox ==== | ====Firefox ==== | ||
− | # 網址列:https://ip:port/資料夾/ | + | # 網址列:https://ip:port/資料夾/檔案, port 若使用 http 預設 5005 ;若使用 https 預設 5006 |
# 同 session 的第一次讀取時,會要帳號密碼 | # 同 session 的第一次讀取時,會要帳號密碼 | ||
− | #* 非 | + | #* anonymous 資料夾,輸入帳號 anonymous ,免設密碼。 |
+ | #* 非 anonymous 資料夾,輸入有權讀取的帳號和密碼。 | ||
+ | #和 80 port 以 web 資料夾為根資料夾不同,webDAV 是 web 資料夾的上一層資料夾為網址列的根資料夾。 | ||
+ | # 這是可以用瀏覽器看 php 原始碼的方法,目前 RT1900ac 是沒有開放任何外 port 可以導向內部的 webDAV 服務。 | ||
====Windows 10==== | ====Windows 10==== | ||
第 38 行: | 第 89 行: | ||
anonymous 登入 | anonymous 登入 | ||
+ | |||
+ | ===參考資料=== | ||
+ | #[https://evertpot.com/167/ 用PHP實現WebDAV] | ||
+ | #[https://blog.csdn.net/weixin_32965939/article/details/116159093 php版dav,在 Apache 上配置 WebDAV 伺服器] | ||
+ | #[https://github.com/xinghanking/phpdav 使用php開發發現webdav協議的項目] | ||
+ | #[http://ir.lib.cyut.edu.tw:8080/bitstream/310901800/36653/1/Ap03.pdf Nextcloud 安裝準備] |
2023年1月6日 (五) 09:20的最新修訂版本
WebDAV 是 web-based distributed authoring and versioning(基於 Web 的分散式登入與版本控制) 的簡稱。它是 HTTP(S) 協定的一種延伸,可讓 Web 伺服器變成一般標準的網路磁碟。在啟用 WebDAV 服務後,你就能透過 HTTP 或 HTTPS 協定連線至 NAS。
目錄
WebDAV 定義
HTTP 和 Web 最初是作為讀 / 寫而發明的環境。
- GET:讀取(資料)。
- PUT:寫入或創建(資料)。
- DELETE:刪除(資料)。
- POST:傳輸(訊息資料)方法。
WebDAV 是藉由額外定義 HTTP 中的 methods 與 headers 來實現遠端檔案存取上所需的操作與資訊傳遞:
- The method :描述被 Client端 執行的方法。
- Headers :描述有關工作如何被完成的指令。
- A body (optional):定義指令用到的資料或有關方法如何被執行的額外指令。
以下是他額外定義的 methods:
- MKCOL:建立目錄。
- 覆寫保護:如此多位使用者,可同時讀取檔案,但一次只有一個人可以修改檔案。
- LOCK:鎖定。
如:資源以供寫入、讀取,支援檔案系統常見的共享鎖與互斥鎖。 - UNLOCK:解鎖。
如:移除資源的鎖定。
- LOCK:鎖定。
- 屬性管理:修改與某些資源相關的內容。舉例來說,使用者可以寫入並取回檔案的内容資訊。
- PROPFIND:檢索遠端系統的集文件的屬性列表,取得資源的屬性。
如:查詢檔案的大小、列出目錄下的內容。 - PROPPATCH:更新資源或集合的屬性。
如:修改、刪除資源的屬性、如調整檔案的 ACL 規則。
- PROPFIND:檢索遠端系統的集文件的屬性列表,取得資源的屬性。
- 命名儲存空間管理:有正確權限的使用者就可以在 WebVDAV 目錄中自由複製並移動檔案
- MOVE(可選):移動資源到另一個位置或重命名。
如:用於移動檔案、目錄。 - COPY(可選):將資源從一個位置(URL)複製到另一個位置(URL)。
如:用於複製檔案、目錄。
- MOVE(可選):移動資源到另一個位置或重命名。
WebDAV 協議流程
php 模組需求
- PHP module ctype
- PHP module dom
- PHP module GD
- PHP module iconv
- PHP module JSON
- PHP module libxml
- PHP module mbstring
- PHP module posix
- PHP module SimpleXML
- PHP module XMLReader
- PHP module XMLWriter
- PHP module zip
- PHP module zlib
伺服器啟動 webDAV
- 啟用 WebDAV 功能:
- 控制台:檔案服務(左選項) ➞ webDAV ➞ 啟動 WebDAV ➞ 套用。
- 控制台:檔案服務(左選項) ➞ webDAV ➞ 啟動 WebDAV ➞ 套用。
- 啟用匿名 WebDAV 帳號登入:允許用戶使用「anonymous」使用者名稱來透過 WebDAV 連線存取共用資料夾。
- 控制台:儲存空間(左選項) ➞ 儲存空間 ➞ 進階設定 ➞ 預設權限
- 選取「系統內部使用者帳號」
- 將「Anonymous FTP/We...」的選項打勾。(無帳號者權限)
- 控制台:儲存空間(左選項) ➞ 儲存空間 ➞ 進階設定 ➞ 預設權限
使用 webDAV
Firefox
- 網址列:https://ip:port/資料夾/檔案, port 若使用 http 預設 5005 ;若使用 https 預設 5006
- 同 session 的第一次讀取時,會要帳號密碼
- anonymous 資料夾,輸入帳號 anonymous ,免設密碼。
- 非 anonymous 資料夾,輸入有權讀取的帳號和密碼。
- 和 80 port 以 web 資料夾為根資料夾不同,webDAV 是 web 資料夾的上一層資料夾為網址列的根資料夾。
- 這是可以用瀏覽器看 php 原始碼的方法,目前 RT1900ac 是沒有開放任何外 port 可以導向內部的 webDAV 服務。
Windows 10
Windows 10 預設只允許 HTTPS WebDAV 連線,若需使用 HTTP 連線,必須先降低 Windows 10 的 WebClient 安全層級,才能使用 HTTP 連線 WebDAV。
- 改登錄 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
[BasicAuthLevel]之值由 1 改 2 - [以系統管理員身分執行 cmd]
- 執行「net stop webclient」先停止 WebClient 服務。可能會回覆「尚未啟動 WebClient 服務」。
- 再執行「net start webclient」,重新啟動 WebClient 服務。
- 去檔案總管,找到「本機」,按右鍵並「連線網路磁碟機」
- 輸入 協定 / ip / port 如右圖
- 輸入有效的使用者帳號及密碼,並點擊「確定」。 anonymous 會過,但無法使用。
- smb://ip/資料夾
- ftp://ip:21/資料夾
- sftp://ip:22
- dav://ip:5005/ 或 davs://ip:5006/
Mac 的檔案總管叫「Finder」
anonymous 登入