Les backends
Un backend est un stockage nomme, decrit une fois dans [[backends]] ;
les montages le citent par son nom.
[[backends]]
name = "disque" # le nom que citent les montages
type = "local" # local, sftp, s3 ou webhdfs
root = "/srv/sftp" # les cles propres au type
[[roles]]
name = "utilisateurs"
[[roles.mounts]]
backend = "disque"
home_dir = "/{username}"
acl = [{ path = "/", rights = ["read", "write", "list"], recursive = true }]
Les [[backends]] s’ecrivent dans config.toml ou dans roles_file, ou ils
se rechargent a chaud avec les roles.
Les types
| Type | type = | Le stockage | Ce que home_dir y designe | Ecritures |
|---|---|---|---|---|
| Local | "local" | un repertoire du serveur | un sous-repertoire de root | oui |
| Proxy SFTP | "sftp" | un serveur SFTP amont, sous un compte de service | un repertoire de l’amont | oui |
| S3 et compatibles | "s3" | un bucket AWS S3, MinIO, Garage, Scaleway… | un prefixe de cle, apres prefix | oui |
| WebHDFS (Knox) | "webhdfs" | HDFS a travers Apache Knox | un repertoire HDFS | lecture seule |
Les binaires et images publies portent les quatre types (Les features du binaire).
Les cles de tout backend
Toutes les cles : Reference [[backends]].
Une sous-table ([backends.auth], [backends.credentials]) se rattache au
[[backends]] qui la precede : ecrivez-la juste apres lui. GET /admin/config
et l’onglet Configuration montrent chaque backend, secrets remplaces par ***.
Cles communes a tous les types
Ce qu’elles font sur chaque type est dans la page du type ; leur defaut et leur effet, dans la meme Reference.
hidden_stores se resout montage, puis backend, puis [server.hidden_stores] ;
stale_partials backend, puis [uploads.stale_partials] ; cle par cle
(Uploads).
Reservation entre instances
Le premier envoi vers une destination la garde jusqu’a sa fin
(pourquoi). Entre instances, c’est
un verrou <lock_prefix><nom> pose a cote de la destination. lock_prefix :
- fait de 8 caracteres a 64 octets, sans
/ni caractere de controle ; - nomme aussi les noms jetables du serveur (
PPnew.<jeton>,PPprobe.,PPstale.pour un prefixeP) ; - reserve au serveur tout nom qui commence par lui, sans egard a la casse,
comme
.craftfilegate-upload...: choisissez-en un qu’aucun fichier des utilisateurs ne porte.
Disponibilite
Chaque instance visite chaque backend en arriere-plan ([server.backend_probe]) : up, down apres failures_before_down visites en echec, unknown avant la premiere ; un WARN a chaque changement (Depannage), l’etat dans GET /admin/health, la vue Instances et craftfilegate_backend_up (Metriques). Sur S3, une visite est un ListObjectsV2 facture, toutes les 15 s par instance par defaut.