Configuration
Variables d'environnement du module Fichiers, espaces personnels, quotas, permissions et tâches planifiées.
Variables d'environnement
| Variable | Défaut | Rôle |
|---|---|---|
LRVO_MODULE_DRIVE | — | Active le module. Requise, valeur exacte true. |
LRVO_MODULE_DRIVE_PERSONAL_SPACES | false | Ajoute un espace personnel « Mes fichiers » par utilisateur. |
LRVO_MODULE_DRIVE_TRASH_RETENTION_DAYS | 30 | Jours de conservation en corbeille avant purge définitive. |
LRVO_MODULE_DRIVE_VERSION_KEEP | 10 | Versions conservées par fichier, la version courante comprise. |
LRVO_MODULE_DRIVE_UPLOAD_CHUNK_MB | 8 | Taille d'une tranche d'envoi. Doit rester sous le plafond de corps de requête du proxy, 100 Mo chez Cloudflare. Le minimum de 5 vient du stockage. |
LRVO_MODULE_DRIVE_MAX_FILE_SIZE_MB | 2048 | Taille maximale d'un fichier. |
LRVO_MODULE_DRIVE_QUOTA_TOTAL_GB | 0 | Quota global du site. 0 signifie illimité. |
LRVO_MODULE_DRIVE_QUOTA_SHARED_GB | 0 | Quota de l'espace partagé. 0 signifie illimité. |
LRVO_MODULE_DRIVE_QUOTA_PERSONAL_GB | 5 | Quota de chaque espace personnel. 0 signifie illimité. |
LRVO_MODULE_DRIVE_BLOCKED_EXTENSIONS | — | Extensions interdites en plus de la liste intégrée, séparées par des virgules. |
LRVO_MODULE_DRIVE_ALLOWED_EXTENSIONS | — | Extensions retirées de la liste intégrée, séparées par des virgules. Une extension aussi présente dans ..._BLOCKED_EXTENSIONS reste refusée. |
LRVO_MODULE_DRIVE_ALLOW_SVG | false | Autorise le dépôt de fichiers SVG. |
LRVO_MODULE_DRIVE_THUMBNAILS | true | Génère les miniatures d'images. Sans effet si sharp est absent. |
LRVO_MODULE_DRIVE_CRON | true | Active les tâches planifiées. |
LRVO_MODULE_DRIVE_ICON_COLORS | true | Colore les icônes des listes selon le type de fichier. false les ramène toutes au gris. |
LRVO_MODULE_DRIVE_NOTIFY_WINDOW_MINUTES | 15 | Fenêtre de regroupement des avis de dépôt. |
LRVO_MODULE_DRIVE_DAILY_DIGEST_HOUR | 8 | Heure d'envoi du résumé quotidien. |
LRVO_MODULE_DRIVE_ACTIVITY_RETENTION_DAYS | 365 | Conservation du journal. 0 conserve indéfiniment. |
LRVO_MODULE_DRIVE_SHARE_MAX_DAYS | 0 | Durée de vie maximale d'un lien. 0 lève le plafond. |
LRVO_MODULE_DRIVE_BRAND_NAME | LRVO_NAME | Nom affiché sur la page publique de partage. |
LRVO_MODULE_DRIVE_LOGO_URL | LRVO_LOGO_URL | Logo de la page publique, thème clair. URL absolue ou chemin servi depuis public/. |
LRVO_MODULE_DRIVE_LOGO_URL_DARK | valeur de ..._LOGO_URL | Logo de la page publique, thème sombre. |
LRVO_MODULE_DRIVE_SITE_URL | LRVO_SITE_URL | Destination du lien posé autour du logo. |
La taille de tranche décide aussi de la voie d'envoi : un fichier qui tient dedans part en une requête, un fichier plus gros est découpé. Elle ne concerne que l'envoi, jamais la lecture : un téléchargement est streamé quelle que soit sa taille. Voir Fichiers acceptés.
Relever LRVO_MODULE_DRIVE_MAX_FILE_SIZE_MB très au delà de 80 Go sans relever la taille de tranche finit par dépasser les 10 000 parts qu'accepte le stockage. Le module refuse alors l'envoi en nommant l'incohérence plutôt que d'échouer à l'assemblage.
Marque de la page publique
Les quatre dernières variables ne servent qu'à /lrvo/drive/<jeton>, la page que voit un destinataire sans compte. L'administration n'en lit aucune.
..._LOGO_URL_DARK n'existe que parce qu'un logo noir disparaît sur un fond sombre. Sans lui, le logo clair sert dans les deux thèmes, ce qui convient à un logo en couleurs.
Sans ..._SITE_URL, le logo s'affiche sans être cliquable. Sans logo du tout, l'emplacement reste vide : un nom posé là où l'œil attend une image se lit comme un logo qui n'a pas chargé. Le nom du site figure de toute façon en pied de page.
Le nom vient de LRVO_NAME par défaut, le logo et la cible du lien de LRVO_LOGO_URL et LRVO_SITE_URL. Les variables du module ne servent qu'aux sites qui partagent sous une autre enseigne que celle de l'application. Le logo des courriels reste celui du site, LRVO_EMAIL_LOGO. Voir Variables d'environnement.
Espaces personnels
Désactivés par défaut. Une fois LRVO_MODULE_DRIVE_PERSONAL_SPACES=true, un item « Mes fichiers » apparaît dans la barre latérale et chaque utilisateur obtient son espace à sa première visite. Rien n'est créé pour les comptes qui n'y vont jamais.
Un espace personnel n'appartient qu'à son propriétaire. Un administrateur ne l'ouvre pas : ce n'est pas du contenu d'équipe. Ce qui doit être vu par d'autres passe par un partage, lien public ou partage interne.
Désactiver l'option ne supprime rien : les espaces existants deviennent inaccessibles depuis l'interface, et redeviennent visibles si l'option est réactivée.
Quotas
Deux niveaux, indépendants, tous deux vérifiés avant chaque écriture : celui de l'espace où l'on écrit, et celui du site entier.
Ces plafonds se règlent par variable d'environnement, et par aucun autre moyen. Un quota est une décision d'exploitation, liée à la taille réelle du seau : le régler depuis l'admin donnerait l'illusion de pouvoir dépasser ce que l'hébergement permet.
Une valeur à 0 lève la limite. Les variables sont relues à chaque contrôle : relever un quota prend effet au redémarrage qui charge le nouveau .env, sans écriture en base et sans toucher aux fichiers déjà déposés.
Deux points surprennent souvent, et sont voulus :
- un fichier en corbeille occupe toujours le quota, parce qu'il occupe toujours le stockage. Il ne se libère qu'à la purge, immédiate ou automatique ;
- les versions antérieures comptent aussi.
Un compteur peut dériver, par exemple si le processus s'arrête entre l'écriture du stockage et celle de la base. La tâche drive-recount le recalcule depuis la vérité, chaque dimanche.
Permissions
| Clé | Libellé | Ouvre |
|---|---|---|
drive.view | Consulter les fichiers | Navigateur, recherche, téléchargement, « Partagé avec moi ». |
drive.upload | Téléverser des fichiers | Dépôt et restauration d'une version antérieure. |
drive.manage | Créer, renommer et déplacer | Création de dossiers, renommage, déplacement. |
drive.delete | Supprimer des fichiers | Mise à la corbeille. |
drive.trash | Gérer la corbeille | Restauration, purge immédiate, vidage. |
drive.share | Gérer les partages | Liens publics et partages internes. |
drive.activity | Consulter l'historique | Page d'historique et ses filtres. |
drive.storage | Superviser le stockage | Vue complète du panneau « Stockage » : total du serveur, espaces personnels des autres comptes, corbeille, alertes. |
Elles sont semées sur le rôle admin à chaque lrvo-db init et lrvo-db migrate. Les autres rôles se règlent dans /admin/roles.
Tâches planifiées
Toutes passent par un verrou en base, donc une seule instance de serveur les exécute même quand plusieurs tournent.
| Nom | Quand | Rôle |
|---|---|---|
drive-purge-trash | 03:00 | Purge définitive au delà de la rétention. |
drive-prune-versions | 03:20 | Filet de sécurité sur la rétention des versions. |
drive-purge-activity | 03:40 | Purge du journal au delà de la rétention. |
drive-sweep-uploads | Chaque heure | Envois par tranches laissés ouverts, interrompus pour libérer les parts stockées, et sessions de partage expirées. |
drive-notify | Toutes les 5 minutes | Avis de dépôt groupés. |
drive-notify-daily | Heure configurée | Résumé quotidien des dépôts. |
drive-recount | Dimanche 04:00 | Recalcul des compteurs de quota. |
Elles n'ont pas d'écran : leur déroulement se lit dans lrvo_drive_job_lock, qui garde pour chaque tâche sa dernière exécution, son état et son résumé.
Le fuseau vient de LRVO_TIMEZONE, America/Toronto par défaut.