- แม้ว่า โครงสร้างพื้นฐานที่มี S3 เป็นศูนย์กลาง จะกลายเป็นมาตรฐานโดยพฤตินัยสำหรับการจัดเก็บไฟล์ แต่ในสภาพแวดล้อมแบบโปรเจ็กต์ส่วนตัวหรือโฮสต์เอง WebDAV ก็ยังถูกเสนอให้เป็นทางเลือกที่มีประโยชน์อยู่เสมอ
- ผู้เขียนอธิบายว่าตนเริ่มกลับมาใช้ WebDAV อีกครั้งในฐานะที่เก็บไฟล์แบบยืนยันตัวตนอย่างเรียบง่าย เพราะรู้สึกเหนื่อยล้ากับ ความซับซ้อนและการผูกติดกับ S3
- WebDAV รองรับโดยตรงในเครื่องมือหลากหลาย เช่น MacOS Finder, Windows Explorer, rclone, curl จึงเข้าถึงได้ง่าย
- บนเว็บเซิร์ฟเวอร์หลักอย่าง Apache, Nginx และ Caddy สามารถตั้งค่า ไดเรกทอรีส่วนตัวแยกตามผู้ใช้ได้อย่างง่ายดาย และยังเชื่อมต่อกับการยืนยันตัวตนแบบ LDAP ได้ด้วย
- สำหรับ นักพัฒนาที่ต้องการหลุดพ้นจากการผูกติดกับคลาวด์ และรักษาโครงสร้างพื้นฐานจัดการไฟล์ของตัวเองให้เรียบง่าย WebDAV ก็ยังเป็นตัวเลือกที่ใช้งานได้จริง
ปัญหาของการจัดเก็บไฟล์แบบ S3 เป็นศูนย์กลาง
- FTP หายไปแล้ว ส่วน SFTP ก็ใช้งานไม่สะดวกเพราะมีโครงสร้างที่ พึ่งพา SSH และการยืนยันตัวตนแบบยูนิกซ์มากเกินไป
- เมื่อ AWS S3 กลายเป็นมาตรฐานอุตสาหกรรมโดยพฤตินัย เว็บแอปส่วนใหญ่จึงถูกออกแบบโดยตั้งสมมติฐานว่าจะต้องเชื่อมต่อกับ S3
- สิ่งนี้ เป็นประโยชน์กับ Amazon แต่สร้างความไม่สะดวกให้ผู้ใช้อื่น
- ในโปรเจ็กต์ส่วนตัวหรือสภาพแวดล้อมที่โฮสต์เอง ความสามารถซับซ้อนของ S3 นั้นไม่จำเป็น และเพียงมีที่เก็บไฟล์ที่ต้องยืนยันตัวตนก็เพียงพอแล้ว
- ผู้เขียนเลิกใช้ S3 และเปลี่ยนมาใช้ WebDAV พร้อมแนะนำให้นักพัฒนาคนอื่นพิจารณาทางเลือกเดียวกัน
ผู้ใช้และความต้องการที่เหมาะกับ WebDAV
- WebDAV เหมาะกับผู้ใช้ทั่วไปหรือโปรเจ็กต์ขนาดเล็กที่ต้องการ การเข้าถึงผ่าน HTTP ในระดับระบบไฟล์
- ความสามารถที่ต้องการ: การยืนยันตัวตน, การเขียนไฟล์, การซิงก์อย่างมีประสิทธิภาพ, การตั้งค่าเป็นส่วนตัวโดยค่าเริ่มต้น, และการสลับเป็นสาธารณะได้ง่าย
- ความสามารถที่ไม่จำเป็น: ACL ขั้นสูง, signed URL, การจัดการเวอร์ชัน, tiered storage, lifecycle rules, quota เป็นต้น
- ความต้องการแบบนี้เป็นสิ่งที่นักพัฒนาส่วนตัวส่วนใหญ่น่าจะเข้าใจได้ และ ไม่จำเป็นต้องดูแลระบบซับซ้อน อย่าง OpenStack Swift, CEPH หรือ Minio
- โดยเฉพาะอย่างยิ่ง Minio ที่ล่าสุด ตัด UI สำหรับการจัดการออกไปจำนวนมาก และเปลี่ยนให้ต้องเขียนไฟล์นโยบาย JSON ด้วยตนเอง ทำให้ไม่มีประสิทธิภาพนักสำหรับเป้าหมายที่ต้องการแค่เก็บไฟล์อย่างง่าย
การเข้าถึง WebDAV และการรองรับจากเครื่องมือ
- WebDAV รองรับมาให้โดยตรงในระบบปฏิบัติการและเครื่องมือหลากหลาย
- MacOS Finder: ป้อน
https://... ในเมนู “เชื่อมต่อกับเซิร์ฟเวอร์”
- Windows Explorer: ใช้ฟังก์ชัน “เชื่อมต่อไดรฟ์เครือข่าย” หรือ “เชื่อมต่อเว็บไซต์”
- CLI และแอป: rclone, curl, CyberDuck, WinSCP, Filezilla เป็นต้น
- หลายคนมองว่า WebDAV เป็นเทคโนโลยีล้าสมัย แต่ในความเป็นจริง เว็บเซิร์ฟเวอร์ส่วนใหญ่รองรับมาให้โดยตรง
- สามารถเปิดใช้ได้ง่ายบน Apache, Nginx, Caddy, Lighttpd, IIS เป็นต้น
- OwnCloud และ NextCloud ก็ใช้การเข้าถึงบนพื้นฐานของ WebDAV เช่นกัน
ตัวอย่างการใช้งาน WebDAV จริง
- WebDAV ถูกใช้อยู่แล้วในรูปแบบ CardDAV, CalDAV สำหรับการซิงก์รายชื่อผู้ติดต่อและปฏิทิน
- กล่าวคือ ผู้ใช้จำนวนมากกำลังใช้บริการบนพื้นฐาน WebDAV ในชีวิตประจำวันโดยไม่รู้ตัว
- ผู้เขียนตั้งค่า WebDAV บน Apache และเชื่อมกับการยืนยันตัวตนแบบ LDAP เพื่อให้ ผู้ใช้แต่ละคนเข้าถึงไดเรกทอรีส่วนตัวของตนเอง
- Caddy สามารถตั้งค่าแยกไดเรกทอรีตามผู้ใช้ได้ง่ายกว่า แต่ Apache ก็ทำได้ดีเพียงพอ
- แม้การตั้งค่า Apache จะค่อนข้างซับซ้อน แต่ก็สามารถ รับประกันความเป็นส่วนตัวในสภาพแวดล้อมหลายผู้ใช้ ได้
ตัวอย่างการตั้งค่า WebDAV บน Apache
- โมดูลที่จำเป็นบน Apache:
mod_dav, mod_dav_fs, mod_dav_lock
- รวมถึงการตั้งค่า
BrowserMatch เพื่อรองรับไคลเอนต์รุ่นเก่า
- องค์ประกอบการตั้งค่าหลัก
- ใช้
DavLockDB, DavMinTimeout, DavDepthInfinity เป็นต้น เพื่อควบคุมการทำงานของ WebDAV
- ใช้
AuthType Basic, AuthBasicProvider ldap เป็นต้น เพื่อเชื่อมกับการยืนยันตัวตนแบบ LDAP
- ใช้
RewriteEngine เพื่อจำกัดให้ผู้ใช้ที่ล็อกอินแล้วเข้าถึงได้เฉพาะไดเรกทอรีของตนเอง
- หากสร้างไดเรกทอรีที่มีชื่อเดียวกับชื่อผู้ใช้ไว้ใต้
/usr/local/www/webdav ผู้ใช้นั้นก็จะสามารถใช้งานพื้นที่ของตนได้หลังยืนยันตัวตน
กรณีใช้งาน WebDAV และความเป็นไปได้ในการต่อยอด
- ผู้เขียนใช้งาน WebDAV ร่วมกับแอปต่อไปนี้
- Joplin: แอปซิงก์โน้ตกับเซิร์ฟเวอร์ของตัวเอง
- Keepassium: ไคลเอนต์ Keepass สำหรับ iOS/MacOS
- VLC, Infuse: สำหรับสตรีมและเล่นสื่อ
- rclone: ซิงก์ไฟล์เพื่อเผยแพร่บล็อกแบบสแตติก (เร็วกว่า NFS/SMB และไม่ต้องใช้ VPN)
- นอกจากนี้ยังค้นพบโปรเจ็กต์ใหม่ชื่อ Altmount
- สามารถ “เมานต์” คอนเทนต์ที่โพสต์บน Usenet เพื่อเข้าถึงได้โดยตรงโดยไม่ต้องดาวน์โหลด
- จุดที่น่าสนใจคือสามารถเข้าถึง Usenet ได้อย่างง่ายดายด้วยความเร็วระดับหลายกิกะบิต
2 ความคิดเห็น
ภายในโครงสร้างพื้นฐานที่บ้านผมใช้ nfs หรือ smb ส่วนภายนอกก็ยังใช้ WebDAV ได้ดีอยู่ครับ ฮ่าๆ
ความคิดเห็นใน Hacker News
มันทำให้ซิงก์หรือเมานต์ระหว่างเซิร์ฟเวอร์ WebDAV ได้ และยังสามารถเปิดเผย local filesystem, S3, Google Drive ฯลฯ เป็นเซิร์ฟเวอร์ WebDAV ได้ด้วย
RFC ดีกว่า FTP แต่ก็ยังมี พฤติกรรมที่ไม่เป็นมาตรฐาน จากความต่างของแต่ละ implementation อยู่มาก จึงต้องมีวิธีเลี่ยงหลายอย่าง
โดยปกติจะตั้งค่าเวลาแก้ไขหรือแฮชไม่ได้ แต่ implementation อย่าง ownCloud และ Nextcloud รองรับ
เพราะทำงานบน HTTP และ TLS จึงเร็วกว่า SFTP มาก
NFS ก็ทำงานบน TCP และเข้ารหัสได้เช่นกัน แต่ Windows รองรับได้ไม่ดี และมีแค่ macOS ที่รองรับมาให้โดยปริยาย
ในทางกลับกัน WebDAV ใช้งานได้ดีบนทั้งสองแพลตฟอร์ม
ตอนนี้ใช้ davx5 อยู่ แต่เข้าถึงไฟล์ได้ไม่ค่อยสะดวก
มันเข้ากันได้ดีกับโครงสร้างพื้นฐาน mTLS ที่ตั้งไว้แล้ว จึงชอบ WebDAV มากกว่า
ฝั่งเซิร์ฟเวอร์ใช้ sftpgo อยู่
มันไม่ใช่เทคโนโลยีของ Amazon เจ้าเดียว และยังมีโปรเจกต์โอเพนซอร์สที่ได้รับการสนับสนุนจาก EU Horizon อย่าง Garage S3 ด้วย
https://garagehq.deuxfleurs.fr/
ตัวอย่างเช่น Tailscale Drive Share สร้างอยู่บน WebDAV และพื้นที่เก็บไฟล์ของ Fastmail ก็เข้าถึงผ่าน WebDAV ได้
WebDAV เป็นเทคโนโลยีที่เจ๋งมากทีเดียว
มันทำงานได้ดีมาก
ทั้ง Windows และ macOS มีการรองรับในตัว แต่ผู้ใช้ทั่วไปเข้าถึงไม่ได้
ของ Windows ใช้ได้เฉพาะ WSL ส่วนของ macOS ใช้ได้เฉพาะการ virtualization จึงน่าเสียดาย
ถ้าสามารถเมานต์ 9p จาก UI ได้โดยตรงก็น่าจะยอดเยี่ยมมาก
ใช้ร่วมกับไคลเอนต์ NextCloud (เดสก์ท็อป/Android) ได้ และยังใช้ได้ใน Gnome Online Accounts หรือ Nautilus ด้วย
https://codeberg.org/lunae/dav-next
ตอนนี้ยังไม่มีแพ็กเกจหรือไบนารีรีลีส แต่ยินดีรับฟีดแบ็ก
บนแพลตฟอร์มคลาวด์ของบริษัทเราเองก็กำลังพัฒนาฟีเจอร์ให้เข้าถึงแบบไดรฟ์ผ่าน WebDAV ได้
ใช้โครงสร้างพื้นฐานที่อิง HTTP เดิมได้เลย จึงแทบไม่เพิ่มความซับซ้อน
เทคโนโลยีที่น่าเบื่อแต่เสถียร นี่แหละที่อยู่ได้นาน
แถมยังเป็นมาตรฐานเปิดด้วย
โฮสติ้งแบบแชร์จำนวนมากยังคงแนะนำให้อัปโหลดผ่าน FTP อยู่
แม้จะใช้ SSH key หรือ SFTP ได้ด้วย แต่ในเอกสารก็ยังพูดถึงเครื่องมือ FTP อย่าง FileZilla อยู่
คู่มือ FTP ของ OVHcloud
ทุกวันนี้ยังใช้โปรโตคอลที่ไม่เข้ารหัสอยู่นี่แทบไม่น่าเชื่อ
ถ้าเป็นโฮสติ้งแบบนั้นฉันคงตัดทิ้งทันที
คิดถึงยุคที่มันเคยใช้แจกจ่ายซอฟต์แวร์หรือใช้ในวงการวิชาการ แต่ตอนนี้แทบเหลือแค่การใช้งานช่วงท้ายแล้ว
มันซิงก์ระหว่างผู้ใช้หลายบัญชี iCloud ได้ และไม่ต้องสมัคร Dropbox ด้วย
เร็วกว่า CloudKit และภาระในการดูแลรักษาก็น้อยกว่า
คิดว่าน่าจะใช้ต่อไปได้อีกนาน
แถมยังมีเว็บสแครปเปอร์มาให้ จึงเหมาะกับการเก็บ Markdown จากแชตบอต LLM
ทุกวันนี้ผู้ให้บริการส่วนใหญ่ต่างก็รองรับความเข้ากันได้กับ S3 API
สุดท้ายแล้วก็ดูเหมือนกำลังพูดถึง ตัวโปรโตคอลนั้นเอง