Comment créer un partage WebDAV avec JuiceFS

WebDAV est un protocole de partage de fichiers basé sur HTTP. Il a été conçu à l'origine pour l'édition collaborative de documents multi-utilisateurs et est également largement utilisé dans le stockage de fichiers sur Internet, la synchronisation de données et d'autres scénarios d'application de disque réseau.

Il existe un grand nombre d'applications sur les téléphones portables et les PC avec prise en charge intégrée de WebDAV, telles que l'outil de gestion de documents bien connu Zotero, l'outil de prise de notes populaire Notability sur l'iPad, le logiciel de bureau domestique WPS, le cross -outil de prise de notes Markdown Joplin, gestionnaire de fichiers ES, etc. , ce qui signifie que tant que vous disposez de votre propre stockage WebDAV, vous pouvez utiliser WebDAV pour enregistrer les données de document que nous avons générées sur ces logiciels.

Afin d'éviter toute confusion, il est nécessaire de clarifier les concepts liés à WebDAV. Comme le montre la figure ci-dessous, WebDAV est divisé en deux parties : serveur et client :

  • Serveur WebDAV : Le nuage bleu représente le serveur WebDAV, qui est utilisé pour répondre à la connexion du client et aux requêtes de lecture et d'écriture, et stocker des données.
  • Client WebDAV : divers programmes avec client WebDAV intégré, s'exécutant sur des téléphones portables, des tablettes ou des ordinateurs.

Après avoir compris la composition de l'architecture WebDAV, nous devons configurer notre propre ensemble de serveurs WebDAV. En fait, nous pouvons également l'appeler partage WebDAV. En bref, ce que nous devons faire est le "nuage bleu". partie du schéma d'architecture.

Dans le passé, un logiciel de serveur Web tel que le service HTTP Apache ou Nginx était généralement utilisé pour configurer le partage WebDAV. Comme il n'était pas disponible immédiatement, un chargement supplémentaire ou une compilation manuelle des modules WebDAV était nécessaire, ce qui augmentait la complexité de la configuration de WebDAV. dans une certaine mesure.

Bien que certains systèmes d'exploitation NAS fournissent également la fonction de configuration de partage WebDAV, mais limitée par l'environnement intranet, il est difficile pour le partage WebDAV configuré de tirer parti de sa fourniture de services basée sur Internet.

Si vous recherchez actuellement une solution de configuration de service de partage WebDAV plus générale, plus efficace et plus simple, JuiceFS peut être une solution à essayer pour vous.

JuiceFS est un système de fichiers distribué open source orienté cloud, reposant sur le stockage d'objets et la base de données, il peut rapidement créer un système de stockage hautes performances avec une capacité élastique. JuiceFS fournit POSIX, API S3, API HDFS, pilote Kubernetes CSI, Docker Volume Plugin, WebDAV et d'autres interfaces d'accès riches, qui peuvent facilement accéder à diverses applications.

Ensuite, je partagerai avec vous comment utiliser JuiceFS pour configurer facilement et rapidement un service WebDAV avec flexibilité d'espace, sécurité et praticité.

Préparation

Le partage WebDAV présenté dans cet article est une interface d'accès fournie par JuiceFS, qui repose sur le système de fichiers JuiceFS. Donc, avant la configuration, vous devez créer un système de fichiers JuiceFS.

Le système de fichiers JuiceFS se compose de deux parties : le stockage de données et le moteur de métadonnées. Le stockage de données peut être des services de stockage d'objets fournis par diverses plates-formes de cloud computing, ou des disques MinIO ou locaux auto-construits. Le moteur de métadonnées est utilisé pour stocker les informations de métadonnées du fichier. Il peut utiliser une base de données réseau telle que Redis, MySQL, PostgreSQL ou une base de données autonome telle que SQLite ou BadgerDB.

Afin de rendre le partage WebDAV accessible sur Internet, nous allons le créer ensuite sur un serveur cloud avec une adresse IPv4 publique fixe. Parce que WebDAV est créé en un seul endroit, il est accessible de n'importe où par adresse IP ou nom de domaine. Par conséquent, le stockage de données et le moteur de métadonnées qui composent JuiceFS peuvent être adaptés de manière plus flexible, tels que :

  1. Disque local + base de données autonome : Lorsque l'espace disponible du disque local du serveur cloud est suffisant.
  2. Stockage d'objets + base de données autonome : lorsqu'un espace de stockage de plus grande capacité est requis.
  3. Stockage d'objets + base de données réseau : lorsqu'un espace de stockage plus important est requis et que d'autres hôtes doivent accéder à JuiceFS en même temps.

Serveur Cloud

Supposons que nous ayons un service cloud configuré comme suit :

  • Système : Serveur Ubuntu 22.04 AMD64
  • Processeur : 1 cœur
  • Mémoire : 1 Go
  • Disque dur : 25 Go
  • Adresse IP : 120.118.8.10 (il s'agit d'une FAKE IP écrite au hasard à des fins de démonstration)

Pour le scénario décrit dans cet article, un serveur cloud d'entrée de gamme de n'importe quelle plate-forme cloud peut répondre aux besoins, et le point clé est d'avoir une adresse IPv4 de réseau public.

stockage d'objets

Supposons que nous ayons préparé les buckets suivants :

Pour le scénario décrit dans cet article, le stockage d'objets n'est pas nécessaire. Si l'espace disque du serveur cloud est suffisant, le disque dur peut être utilisé comme stockage d'objets de JuiceFS.

base de données

Pour le scénario décrit dans cet article, la base de données autonome est le choix le plus simple, ici nous utilisons une base de données SQLite à fichier unique. Inutile de préparer à l'avance, il sera automatiquement généré lors de la création du système de fichiers JuiceFS.

Si nécessaire, vous pouvez également vous référer au document « Comment paramétrer le moteur de métadonnées » pour utiliser d'autres types de bases de données.

Créer un système de fichiers JuiceFS

  1. Installer le client
curl -sSL https://d.juicefs.com/install | sh -
  1. créer un système de fichiers

Voici deux manières de créer un système de fichiers, choisissez-en une en fonction de vos besoins réels :

Méthode 1 : Utiliser un disque dur local comme stockage d'objets

juicefs format sqlite3://myjfs.db myjfs

Méthode 2 : Utiliser le service de stockage d'objets (les données sont stockées dans le stockage d'objets)

juicefs format --storage oss \
--bucket https://myjfs.oss-cn-shanghai.aliyuncs.com \
--access-key abcdefg \
--secret-key gfedcba \
sqlite3://myjfs.db myjfs

Déployer le service WebDAV

Une fois que le système de fichiers JuiceFS est prêt, vous pouvez commencer à configurer le partage WebDAV.Le moyen le plus simple est d'ouvrir directement le stockage JuiceFS sous la forme d'une interface WebDAV sans effectuer de réglages.

sudo juicefs webdav sqlite3://myjfs.db 120.118.8.10:80

Utilisez n'importe quel logiciel client WebDAV intégré pour accéder à http://120.118.8.10 pour vous connecter et accéder.

Bien qu'il soit très pratique, il n'est pas difficile de voir que cette méthode d'accès anonyme comporte de grands risques de sécurité. Premièrement, toute personne connaissant l'adresse IP peut lire et écrire nos fichiers directement via le client WebDAV sans authentification d'identité. Deuxièmement, utilisez le protocole HTTP non crypté. protocole, le processus de communication est facile à écouter et à attaquer. Il est très nécessaire pour nous d'améliorer les lacunes de ces deux aspects. En fait, c'est très simple. Pour résoudre le premier problème, il suffit de mettre en place l'authentification d'identité pour WebDAV, et pour résoudre le deuxième problème, il suffit de pour configurer le certificat SSL afin d'activer la prise en charge des connexions cryptées HTTPS.

Configurer l'authentification

JuiceFS v1.1 (à la date de publication de cet article, cette version n'a pas été officiellement publiée) et les versions supérieures commencent à prendre en charge les fonctions d'authentification WebDAV et de certificat SSL, veuillez confirmer la version de votre client avant de configurer, il est recommandé de se référer à "Manuellement Compiler le client JuiceFS " Compilez la branche principale du référentiel GitHub.

La configuration d'un nom d'utilisateur et d'un mot de passe pour l'accès WebDAV est aussi simple que la définition des variables d'environnement correspondantes :

export WEBDAV_USER=user
export WEBDAV_PASSWORD=mypassword

Certificat SSL

L'activation des connexions chiffrées HTTPS pour WebDAV nécessite un certificat SSL, soit un certificat de confiance émis par une autorité de certification, soit un certificat auto-signé émis par OpenSSL.

Les organisations CA n'émettent généralement que des certificats pour les noms de domaine, vous devez donc posséder un nom de domaine et le lier à l'adresse IP du serveur. Les outils gratuits d'émission de certificats incluent certbot, acme.sh, etc. Vous pouvez utiliser ces outils pour demander des certificats SSL gratuits. .

La demande et la délivrance d'un certificat par l'intermédiaire d'une autorité de certification tierce partie est un autre sujet.Pour plus de simplicité, un certificat auto-signé est utilisé pour réaliser cette fonction.

  1. Générer la clé privée du serveur
openssl genrsa -out private.key 4096
  1. Génération d'une demande de signature de certificat (CSR) Cette étape nécessite une série d'informations à fournir de manière interactive.
openssl req -new -key private.key -out client.csr
  1. Émettre un certificat à l'aide d'un CSR
openssl x509 -req -days 365 -in client.csr -signkey private.key -out client.crt
  1. effectuer le nettoyage
rm client.csr

Après les étapes ci-dessus, il y a deux fichiers, private.key et client.crt, dans le répertoire actuel, puis utilisez-les pour exécuter le service WebDAV.

Service WeDAV géré officiellement

Vous pouvez désormais combiner les éléments ci-dessus pour exécuter un service WebDAV avec une authentification de base et une connexion chiffrée HTTPS :

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

À ce stade, nous avons activé la connexion cryptée HTTPS et nous devons utiliser l'adresse avec https lors de l'accès à WebDAV https://120.118.8.10. En même temps, nous devons entrer le nom d'utilisateur et le mot de passe pour réussir la connexion.

De plus, étant donné que le certificat auto-signé est utilisé ici, certains clients peuvent émettre un avertissement indiquant que le certificat n'est pas approuvé lors de l'accès, ignorez-le simplement.

Si vous avez lié un nom de domaine au serveur et demandé un certificat SSL, la commande de déploiement de WebDAV doit être ajustée comme suit :

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

En conséquence, l'adresse d'accès doit également être remplacée par votre nom de domaine, par exemple : https://www.votre-domaine.com . En utilisant le certificat émis par l'institution CA, divers accès client WebDAV n'émettront pas d'avertissements, ce qui peut résoudre efficacement le problème que certaines applications ne peuvent pas se connecter au service WebDAV.

Exemple d'application

Prenant le navigateur de fichiers ES et Joplin comme exemples pour présenter comment configurer et utiliser le service WebDAV auto-construit pour synchroniser les données de document.

Remarque : lors de la configuration de WebDAV dans certaines applications, si l'adresse et les informations d'authentification d'identité sont saisies correctement, le programme signale toujours qu'il ne peut pas se connecter à WebDAV. Cela peut être dû au fait que le programme ne prend pas en charge les certificats auto-signés. Certificats de confiance à configurer le service WebDAV pour résoudre ce problème.

Navigateur de fichiers ES

Le navigateur de fichiers ES est un gestionnaire de fichiers tiers couramment utilisé sur le terminal mobile. En plus de pouvoir gérer des fichiers sur le téléphone mobile, il prend également en charge l'ajout de nombreux services de stockage tiers, y compris le stockage WebDAV.

Ajoutez simplement un type de stockage WebDAV dans le menu de service et remplissez l'adresse, le nom d'utilisateur et le mot de passe comme indiqué dans la figure ci-dessous.

Joplin

Joplin est un logiciel de prise de notes open source Markdown qui prend en charge la synchronisation de documents à l'aide de WebDAV. Entrez simplement votre lien WebDAV, votre nom d'utilisateur et votre mot de passe dans les paramètres de synchronisation.

Il convient de noter qu'ici, nous utilisons un certificat auto-signé, et Joplin signalera une erreur lors de la vérification de la configuration de la synchronisation. La solution consiste à développer les options avancées, à cocher "Ignorer les erreurs de certificat TLS", et les paramètres de l'application peuvent passer la vérification après avoir essayé de vérifier.

écrire à la fin

Comme FTP, WebDAV est un protocole de partage de fichiers relativement ancien, mais il est encore largement utilisé aujourd'hui. Il n'y a jamais le meilleur outil dans le domaine des technologies de l'information, seulement l'outil le plus adapté. En termes de fonctions, WebDAV n'a peut-être pas autant de fonctions qu'un client de disque réseau dédié, mais le protocole WebDAV est plus général et ouvert, et peut être utilisé directement sur un grand nombre d'applications prises en charge intégrées, qui peuvent non seulement protéger votre vie privée, mais évitez également d'être piraté.

WebDAV n'est qu'une des nombreuses interfaces d'accès prises en charge par JuiceFS. Si vous êtes intéressé, vous pouvez explorer davantage d'autres interfaces d'accès, telles que POSIX accessible sous la forme d'un disque local, la passerelle S3 accessible sous la forme d'une API S3 et Docker Volume Plugin pour accès conteneurisé, pilote Kubernetes CSI, etc. L'utilisation flexible de ces méthodes d'accès peut permettre d'obtenir des capacités de gestion de stockage cloud plus efficaces et flexibles. Nous partagerons plus d'informations sur le contenu connexe dans les articles suivants.

Si vous êtes utile, veuillez prêter attention à notre projet Juicedata/JuiceFS ! (0ᴗ0✿)

{{o.name}}
{{m.name}}

Acho que você gosta

Origin my.oschina.net/u/5389802/blog/7034331
Recomendado
Clasificación