WebDAV ist ein HTTP-basiertes File-Sharing-Protokoll, das ursprünglich für die kollaborative Bearbeitung von Mehrbenutzerdokumenten entwickelt wurde und auch in der internetbasierten Dateispeicherung, Datensynchronisierung und anderen Anwendungsszenarien für Netzwerkfestplatten weit verbreitet ist.
Es gibt eine Vielzahl von Anwendungen auf Handys und PCs mit eingebauter Unterstützung für WebDAV, etwa das bekannte Dokumentenverwaltungstool Zotero, das beliebte Notiztool Notability auf dem iPad, die heimische Office-Software WPS, das Cross -Plattform Markdown-Notiztool Joplin, ES-Dateimanager usw. Das bedeutet, dass Sie, solange Sie über einen eigenen WebDAV-Speicher verfügen, WebDAV verwenden können, um die von uns mit dieser Software generierten Dokumentdaten zu speichern.
Um Verwirrung zu vermeiden, ist es notwendig, die Konzepte im Zusammenhang mit WebDAV zu klären.Wie in der folgenden Abbildung gezeigt, ist WebDAV in zwei Teile unterteilt: Server und Client:
- WebDAV-Server : Die blaue Wolke stellt den WebDAV-Server dar, der verwendet wird, um auf die Verbindung des Clients zu antworten, Lese- und Schreibanfragen zu lesen und Daten zu speichern.
- WebDAV-Client : verschiedene Programme mit integriertem WebDAV-Client, die auf Mobiltelefonen, Tablets oder Computern ausgeführt werden.
Nachdem wir die Zusammensetzung der WebDAV-Architektur verstanden haben, müssen wir eine Reihe von eigenen WebDAV-Servern konfigurieren. Tatsächlich können wir es auch WebDAV-Sharing nennen. Kurz gesagt, was wir tun müssen, ist die "blaue Wolke". Teil des Architekturdiagramms.
In der Vergangenheit wurde WebDAV-Sharing in der Regel über Webserver-Software wie Apache HTTP Service oder Nginx konfiguriert, da diese nicht out-of-the-box verfügbar waren, war ein zusätzliches Laden oder manuelles Kompilieren von WebDAV-Modulen erforderlich, was die Komplexität der Konfiguration von WebDAV erhöhte in einem gewissen Ausmaß.
Obwohl einige NAS-Betriebssysteme auch die Konfigurationsfunktion für die WebDAV-Freigabe bereitstellen, ist es für die konfigurierte WebDAV-Freigabe schwierig, die Vorteile ihrer internetbasierten Dienstbereitstellung zu nutzen, jedoch durch die Intranetumgebung eingeschränkt.
Wenn Sie derzeit nach einer allgemeineren, effektiveren und einfacheren Konfigurationslösung für den WebDAV-Freigabedienst suchen, ist JuiceFS möglicherweise eine Lösung, die es wert ist, für Sie ausprobiert zu werden.
JuiceFS ist ein Cloud-orientiertes verteiltes Open-Source-Dateisystem, das auf Objektspeicher und Datenbank basiert und schnell ein Hochleistungsspeichersystem mit elastischer Kapazität aufbauen kann. JuiceFS bietet POSIX, S3-API, HDFS-API, Kubernetes-CSI-Treiber, Docker-Volume-Plugin, WebDAV und andere Rich-Access-Schnittstellen, die problemlos auf verschiedene Anwendungen zugreifen können.
Als Nächstes werde ich mit Ihnen teilen, wie Sie mit JuiceFS einfach und schnell einen WebDAV-Dienst mit Platzflexibilität, Sicherheit und Praktikabilität konfigurieren können.
Vorbereitung
Die in diesem Artikel vorgestellte WebDAV-Freigabe ist eine von JuiceFS bereitgestellte Zugriffsschnittstelle, die auf dem JuiceFS-Dateisystem aufbaut. Vor der Konfiguration müssen Sie also ein JuiceFS-Dateisystem erstellen.
Das JuiceFS-Dateisystem besteht aus zwei Teilen: Datenspeicherung und Metadaten-Engine Datenspeicherung können Objektspeicherdienste sein, die von verschiedenen Cloud-Computing-Plattformen bereitgestellt werden, oder selbst erstellte MinIO- oder lokale Festplatten. Die Metadaten-Engine wird verwendet, um die Metadateninformationen der Datei zu speichern.Sie kann eine netzwerkbasierte Datenbank wie Redis, MySQL, PostgreSQL oder eine eigenständige Datenbank wie SQLite oder BadgerDB verwenden.
Um die WebDAV-Freigabe über das Internet zugänglich zu machen, erstellen wir sie als nächstes auf einem Cloud-Server mit fester öffentlicher IPv4-Adresse. Da WebDAV an einem Ort erstellt wird, kann von überall über die IP-Adresse oder den Domänennamen darauf zugegriffen werden. Daher können die Datenspeicher- und Metadaten-Engine, aus denen JuiceFS besteht, flexibler angepasst werden, wie z. B.:
- Lokaler Datenträger + eigenständige Datenbank: Wenn der verfügbare Speicherplatz auf dem lokalen Datenträger des Cloud-Servers ausreicht.
- Objektspeicher + eigenständige Datenbank: Wenn eine größere Speicherkapazität erforderlich ist.
- Objektspeicher + Netzwerkdatenbank: Wenn mehr Speicherplatz benötigt wird und andere Hosts gleichzeitig auf JuiceFS zugreifen müssen.
Cloud-Server
Angenommen, wir haben einen Cloud-Dienst wie folgt konfiguriert:
- System: Ubuntu-Server 22.04 AMD64
- Prozessor: 1 Kern
- Speicher: 1 GB
- Festplatte: 25 GB
- IP-Adresse: 120.118.8.10 (dies ist eine zufällig geschriebene FAKE-IP zu Demonstrationszwecken)
Für das in diesem Artikel beschriebene Szenario kann ein Cloud-Server der Einstiegsklasse einer beliebigen Cloud-Plattform die Anforderungen erfüllen, und der entscheidende Punkt ist eine IPv4-Adresse für ein öffentliches Netzwerk.
Objektspeicher
Angenommen, wir haben die folgenden Buckets vorbereitet:
- Speichertyp: Alibaba Cloud OSS
- Bucket-URL: https://myjfs.oss-cn-shanghai.aliyuncs.com
- Zugriffsschlüssel: abcdefg
- Geheimer Schlüssel: gfedcba
Für das in diesem Artikel beschriebene Szenario ist kein Objektspeicher erforderlich.Wenn der Festplattenspeicher des Cloud-Servers ausreicht, kann die Festplatte als Objektspeicher von JuiceFS verwendet werden.
Datenbank
Für das in diesem Artikel beschriebene Szenario ist die eigenständige Datenbank die einfachste Wahl, hier verwenden wir eine Einzeldatei-SQLite-Datenbank. Sie müssen sich nicht im Voraus vorbereiten, es wird automatisch generiert, wenn das JuiceFS-Dateisystem erstellt wird.
Falls erforderlich, können Sie auch auf das Dokument „ How to set up the metadata engine “ zurückgreifen, um andere Arten von Datenbanken zu verwenden.
JuiceFS-Dateisystem erstellen
- Installieren Sie den Client
curl -sSL https://d.juicefs.com/install | sh -
- Dateisystem erstellen
Im Folgenden finden Sie zwei Möglichkeiten, ein Dateisystem zu erstellen. Wählen Sie eine entsprechend den tatsächlichen Anforderungen aus:
Methode 1: Verwenden Sie eine lokale Festplatte als Objektspeicher
juicefs format sqlite3://myjfs.db myjfs
Methode 2: Objektspeicherdienst verwenden (Daten werden im Objektspeicher gespeichert)
juicefs format --storage oss \
--bucket https://myjfs.oss-cn-shanghai.aliyuncs.com \
--access-key abcdefg \
--secret-key gfedcba \
sqlite3://myjfs.db myjfs
Stellen Sie den WebDAV-Dienst bereit
Sobald das JuiceFS-Dateisystem bereit ist, können Sie mit der Konfiguration der WebDAV-Freigabe beginnen.Am einfachsten ist es, den JuiceFS-Speicher in Form einer WebDAV-Oberfläche direkt zu öffnen, ohne Einstellungen vorzunehmen.
sudo juicefs webdav sqlite3://myjfs.db 120.118.8.10:80
Verwenden Sie eine beliebige integrierte WebDAV-Client-Software, um auf http://120.118.8.10 zuzugreifen , um eine Verbindung herzustellen und darauf zuzugreifen.
Obwohl es sehr bequem ist, ist es nicht schwer zu erkennen, dass diese anonyme Zugriffsmethode große Sicherheitsrisiken birgt: Erstens kann jeder, der die IP-Adresse kennt, unsere Dateien direkt über den WebDAV-Client ohne Identitätsauthentifizierung lesen und schreiben, zweitens verwenden Sie unverschlüsseltes HTTP Protokoll ist der Kommunikationsprozess leicht abhörbar und angreifbar. Es ist sehr wichtig für uns, die Mängel in diesen beiden Aspekten zu verbessern. Tatsächlich ist es sehr einfach. Um das erste Problem zu lösen, müssen wir nur die Identitätsauthentifizierung für WebDAV einrichten, und um das zweite Problem zu lösen, brauchen wir nur um das SSL-Zertifikat zu konfigurieren, um die Unterstützung für verschlüsselte HTTPS-Verbindungen zu aktivieren.
Authentifizierung einrichten
JuiceFS v1.1 (zum Zeitpunkt der Veröffentlichung dieses Artikels wurde diese Version noch nicht offiziell veröffentlicht) und höhere Versionen beginnen mit der Unterstützung von WebDAV-Authentifizierungs- und SSL-Zertifikatsfunktionen, bitte bestätigen Sie Ihre Client-Version vor der Einstellung, es wird empfohlen, sich auf „Manually Kompilieren Sie den JuiceFS- Client " Kompilieren Sie den Hauptzweig des GitHub-Repositorys.
Das Einrichten eines Benutzernamens und Passworts für den WebDAV-Zugriff ist so einfach wie das Festlegen der entsprechenden Umgebungsvariablen:
export WEBDAV_USER=user
export WEBDAV_PASSWORD=mypassword
SSL-Zertifikat
Das Aktivieren von HTTPS-verschlüsselten Verbindungen für WebDAV erfordert ein SSL-Zertifikat, entweder ein vertrauenswürdiges Zertifikat, das von einer Zertifizierungsstelle ausgestellt wurde, oder ein selbstsigniertes Zertifikat, das von OpenSSL ausgestellt wurde.
CA-Organisationen stellen in der Regel nur Zertifikate für Domainnamen aus, daher müssen Sie einen Domainnamen besitzen und ihn an die Server-IP binden. Zu den kostenlosen Zertifikatausstellungstools gehören certbot, acme.sh usw. Sie können diese Tools verwenden, um kostenlose SSL-Zertifikate zu beantragen .
Ein weiteres Thema stellt die Beantragung und Ausstellung eines Zertifikats durch eine externe CA-Zertifizierungsstelle dar. Der Einfachheit halber wird für diese Funktion ein selbstsigniertes Zertifikat verwendet.
- Generieren Sie den privaten Schlüssel des Servers
openssl genrsa -out private.key 4096
- Generieren einer Certificate Signing Request (CSR) Dieser Schritt erfordert die interaktive Bereitstellung einer Reihe von Informationen.
openssl req -new -key private.key -out client.csr
- Stellen Sie ein Zertifikat mit einem CSR aus
openssl x509 -req -days 365 -in client.csr -signkey private.key -out client.crt
- Bereinigung durchführen
rm client.csr
Nach den obigen Schritten gibt es zwei Dateien, private.key und client.crt, im aktuellen Verzeichnis, und verwenden Sie sie dann, um den WebDAV-Dienst auszuführen.
Offiziell betriebener WeDAV-Dienst
Sie können das Obige nun kombinieren, um einen WebDAV-Dienst mit Basisauthentifizierung und einer HTTPS-verschlüsselten Verbindung auszuführen:
export WEBDAV_USER=user
export WEBDAV_PASSWORD=mypassword
sudo juicefs webdav --cert-file ./client.crt --key-file ./private.key sqlite3://myjfs.db 120.118.8.10:443
An dieser Stelle haben wir die verschlüsselte HTTPS-Verbindung aktiviert und müssen beim Zugriff auf WebDAV die Adresse mit https verwenden https://120.118.8.10
. Gleichzeitig müssen wir den Benutzernamen und das Passwort eingeben, um eine erfolgreiche Verbindung herzustellen.
Da hier das selbstsignierte Zertifikat verwendet wird, können einige Clients außerdem eine Warnung ausgeben, dass dem Zertifikat beim Zugriff nicht vertraut wird. Ignorieren Sie es einfach.
Wenn Sie einen Domainnamen an den Server gebunden und ein SSL-Zertifikat beantragt haben, sollte der Befehl zum Deployment von WebDAV wie folgt angepasst werden:
export WEBDAV_USER=user
export WEBDAV_PASSWORD=mypassword
sudo juicefs webdav --cert-file ./your-domain.crt --key-file ./your-domain.key sqlite3://myjfs.db www.your-domain.com:443
Entsprechend sollte auch die Zugangsadresse auf Ihren Domainnamen geändert werden, zum Beispiel: https://www.ihre-domain.com . Unter Verwendung des von der CA-Institution ausgestellten Zertifikats werden verschiedene WebDAV-Client-Zugriffe keine Warnungen ausgeben, was das Problem effektiv lösen kann, dass einige Anwendungen keine Verbindung zum WebDAV-Dienst herstellen können.
Anwendungsbeispiel
Am Beispiel des ES-Dateibrowsers und Joplin wird vorgestellt, wie der selbst erstellte WebDAV-Dienst konfiguriert und verwendet wird, um Dokumentdaten zu synchronisieren.
Hinweis: Wenn beim Einrichten von WebDAV in einigen Anwendungen die Adress- und Identitätsauthentifizierungsinformationen korrekt eingegeben werden, meldet das Programm dennoch, dass es keine Verbindung zu WebDAV herstellen kann.Dies kann daran liegen, dass das Programm keine selbstsignierten Zertifikate unterstützt.Vertrauenswürdige Zertifikate konfigurieren den WebDAV-Dienst, um dieses Problem zu beheben.
ES-Dateibrowser
Der ES-Dateibrowser ist ein häufig verwendeter Dateimanager von Drittanbietern auf dem mobilen Endgerät.Neben der Möglichkeit, Dateien auf dem Mobiltelefon zu verwalten, unterstützt er auch das Hinzufügen vieler Speicherdienste von Drittanbietern, einschließlich WebDAV-Speicher.
Fügen Sie einfach einen WebDAV-Speichertyp im Servicemenü hinzu und geben Sie die Adresse, den Benutzernamen und das Passwort ein, wie in der folgenden Abbildung gezeigt.
Joplin
Joplin ist eine Open-Source-Markdown-Notizsoftware, die die Synchronisierung von Dokumenten mit WebDAV unterstützt. Geben Sie einfach Ihren WebDAV-Link, Ihren Benutzernamen und Ihr Passwort in den Synchronisierungseinstellungen ein.
Es ist zu beachten, dass wir hier ein selbstsigniertes Zertifikat verwenden und Joplin bei der Überprüfung der Synchronisationskonfiguration einen Fehler meldet. Die Lösung besteht darin, die erweiterten Optionen zu erweitern, „TLS-Zertifikatsfehler ignorieren“ zu aktivieren, und die Anwendungseinstellungen können die Überprüfung bestehen, nachdem sie versucht haben, sie zu überprüfen.
am Ende schreiben
Wie FTP ist auch WebDAV ein relativ altes File-Sharing-Protokoll, das jedoch auch heute noch weit verbreitet ist. Im Bereich der Informationstechnologie gibt es nie das beste Werkzeug, sondern nur das am besten geeignete Werkzeug. In Bezug auf die Funktionen hat WebDAV möglicherweise nicht so viele Funktionen wie ein dedizierter Netzwerkfestplattenclient, aber das WebDAV-Protokoll ist allgemeiner und offener und kann direkt auf einer großen Anzahl integrierter unterstützter Anwendungen verwendet werden, die nicht nur schützen können schützen Sie Ihre Privatsphäre, vermeiden Sie aber auch Hackerangriffe.
WebDAV ist nur eine der vielen Zugriffsschnittstellen, die von JuiceFS unterstützt werden. Wenn Sie daran interessiert sind, können Sie weitere Zugriffsschnittstellen untersuchen, wie z Plugin für containerisierten Zugriff, Kubernetes CSI-Treiber usw. Durch die flexible Verwendung dieser Zugriffsmethoden können effizientere und flexiblere Cloud-Speicherverwaltungsfunktionen erreicht werden.Wir werden in nachfolgenden Artikeln mehr über verwandte Inhalte berichten.
Wenn Sie hilfreich sind, beachten Sie bitte unser Projekt Juicedata/JuiceFS ! (0ᴗ0✿)