Explorateur de fichiers
[admin]
listen = "0.0.0.0:8080"
bearer_token = "changez-moi-en-production"
[api]
enabled = true
prefix = "/api/v1/files"
[api.ui]
enabled = true
path = "/files"
La page est sur http://serveur:8080/files.
Les options
Les deux cles sont lues au demarrage. Toutes les cles :
Reference [api.ui].
Ce que fait la page
La page est un client de l’API REST de fichiers, et de rien d’autre. Elle n’a
aucun droit propre : ce que l’ACL refuse, l’API le refuse, et la page affiche
le detail du serveur.
| Geste | Requete | Droit |
|---|---|---|
| se connecter | GET <prefix>?rights | - |
| ouvrir un dossier | GET <dossier>?list&offset=&limit=200, puis ?rights | list |
| telecharger | POST <fichier>?ticket, puis l’URL rendue confiee au navigateur | read |
| deposer | HEAD <fichier> (« Replace file? » s’il existe), puis PUT en flux | write |
| nouveau dossier | PUT <dossier>?mkdir | write |
| renommer | POST <chemin>?rename=<destination> | rename |
| supprimer | DELETE <chemin> | delete |
- Un bouton dont le droit manque sur le dossier courant est grise.
- Les requetes partent une a une, plus le depot en cours, pour rester sous
[auth] hash_per_addressenBasic. - Les depots partent un fichier apres l’autre, avec un panneau de progression (nom, pourcentage, debit, annulation).
- La liste est paginee par 200, triable par nom, taille ou date, dossiers d’abord.
- Le dossier courant est dans l’URL (
#/rapports/2026) : precedent, suivant et liens fonctionnent.
Se connecter
Identifiant et mot de passe (Basic, utilisateur local), ou « Use a token
instead » (Bearer, un JWT). La credential reste en memoire seulement :
recharger la page deconnecte. Seul le theme est garde (craft-admin-theme).
Les echecs comptent pour [api.ban].
Montages
La page commence a /, le home que rend GET ?rights. Un montage a / y
montre son home_dir ; des montages sous des noms y montrent la racine
synthetique qui les liste.
| Entree | Affichage |
|---|---|
| point de montage | icone de stockage, etiquette mount ; s’ouvre comme un dossier |
| repertoire synthetique | dossier ordinaire ; deposer, renommer, supprimer grises |
Telecharger : le ticket
Un lien du navigateur ne porte pas d’en-tete Authorization : la page demande
un ticket (ce fichier, cet utilisateur, dix minutes ; voir
L’API de fichiers), puis le navigateur
telecharge en flux. Pendant ces dix minutes, « Reessayer » et la reprise du
navigateur reutilisent la meme URL.
Les fichiers de la page sont publics, sous la meme CSP que la console ; les donnees passent par l’API.
Limites
| Limite | Effet |
|---|---|
| pas de reprise de depot | un depot interrompu est a refaire ; un telechargement relance apres dix minutes demande un nouveau clic |
| pas d’apercu ni d’edition | ni lien de partage, ni archive d’un dossier |
Basic derriere une adresse partagee (NAT) | les utilisateurs partagent hash_per_address ; declarez le proxy dans api.ban.trusted_proxies, ou connectez-vous par JWT |
Interface en anglais ou en francais (?lang=fr, sinon la langue du
navigateur) ; sous 720 px, les actions passent dans un menu.