Un depozit media Matrix Synapse poate consuma spațiu pe disc mai rapid decât baza de date a serverului de acasă, deoarece conține mai multe clase diferite de fișiere: fișiere media încărcate de utilizatori locali, miniaturi, fișiere media din cache preluate de pe servere de acasă la distanță și resurse utilizate pentru previzualizări URL. Soluția corectă este să nu ștergeți fișiere aleatorii din directorul media. Mai întâi identificați ce crește, apoi utilizați API-ul de administrare Synapse sau controalele de retenție, astfel încât metadatele bazei de date și fișierele de pe disc să rămână consecvente.
Începând cu octombrie 2026, versiunea actuală a Synapse este 1.162, iar documentația oficială pentru gestionarea media include API-uri pentru interogarea media, ștergerea media locală, golirea media la distanță din cache și configurarea retenției automate. Verificați versiunile oficiale Synapse dacă instalarea dvs. este semnificativ mai veche, deoarece comportamentul endpoint-urilor și opțiunile de configurare pot diferi de la o versiune la alta.
Listă de verificare rapidă pentru triaj
| Întrebare | Ce să verificați | Cea mai bună acțiune următoare |
| Este sistemul de fișiere aproape plin? | df -h | Confirmați care sistem de fișiere montat conține depozitul media. |
| Este Synapse media principalul consumator? | du -sh <media_store_path> | Compară-l cu alte directoare mari înainte de a șterge ceva. |
| Este memoria cache la distanță cea mai mare categorie? | du -sh <media_store_path>/* | sort -h | Ștergeți mai întâi vechile medii de stocare la distanță; în mod normal, acestea pot fi preluate din nou. |
| Este media utilizatorilor locali categoria principală? | Listări media API de administrare și date despre vârstă/mărime | Aplicați o politică deliberată de păstrare a conținutului media local; ștergerea este permanentă. |
| Continuă creșterea să revină? | media_retention, limite de încărcare, monitorizare | Adăugați alerte automate de retenție și capacitate. |
1. Confirmați că problema spațiului pe disc provine din depozitul media
Începeți cu sistemul de fișiere, nu cu Synapse. Executați:
df -h
du -sh /path/to/media_store
Calea este specifică instalării. media_store_pathSetarea Synapse definește directorul utilizat pentru imaginile și atașamentele încărcate, iar valoarea implicită documentată este media_storerelativă la directorul de date al Synapse. Pachetele de distribuție și implementările de containere setează adesea o cale explicită, așadar verificați configurația reală în loc să presupuneți o locație.
Legendă: Comparați utilizarea sistemului de fișiere cu dimensiunea depozitului media Synapse configurat înainte de a decide că curățarea media este soluția corectă.
Dacă discul este aproape plin, evitați să rulați operațiuni recursive ample care creează fișiere temporare mari sau copii de rezervă pe același sistem de fișiere. Dacă există un risc imediat de a rămâne fără spațiu, opriți mai întâi joburile cu scriere grea, fără legătură, sau adăugați capacitate temporară, apoi efectuați curățarea într-un mod controlat.
2. Verificați configurația mediilor active și identificați ce crește
Deschideți fișierul activ homeserver.yamlși găsiți media_store_path. De asemenea, examinați max_upload_size, any media_storage_providersși any block existent media_retention. Manualul oficial de configurare Synapse documentează aceste opțiuni.
Legendă: Confirmați elementul activ media_store_pathînainte de a măsura sau modifica stocarea media. Calea afișată aici este un exemplu de configurație.
Apoi, măsurați subdirectoarele de primul nivel:
du -sh /path/to/media_store/* 2>/dev/null | sort -h
Documentația depozitului media Synapse descrie categoriile importante de pe disc. Încărcările locale sunt stocate mai jos local_content, miniaturile locale mai jos local_thumbnails, fișierele la distanță memorate în cache mai jos remote_content, miniaturile la distanță mai jos remote_thumbnail, iar datele de previzualizare URL mai jos url_cacheși url_cache_thumbnails.
Legendă: O defalcare a dimensiunii la nivel de director ajută la distingerea memoriei cache recuperabile la distanță de încărcările utilizatorilor locali, care pot fi singura copie stocată de serverul dvs. de acasă.
Nu utilizați rm -rfîn interiorul acestor directoare ca metodă normală de curățare. Synapse urmărește, de asemenea, fișierele media din baza sa de date. Ocolirea căilor de curățare acceptate poate lăsa metadate referitoare la fișiere care nu mai există sau poate elimina conținut pe care utilizatorii încă se așteaptă să îl preia.
3. Recuperați mai întâi memoria cache la distanță atunci când este consumatorul principal
Mediile de stocare la distanță din cache sunt de obicei locul cu cel mai mic risc pentru a recupera spațiu. Synapse stochează copii ale mediilor găzduite inițial de alte servere de acasă. API-ul oficial Purge Remote Media elimină mediile de stocare la distanță din cache care au fost accesate ultima dată înainte de o anumită perioadă de timp. Dacă un utilizator solicită din nou acel mediu de stocare, Synapse îl va solicita din nou de la serverul de acasă de origine.
API-ul de administrare necesită un token de acces de administrator al serverului. Synapse recomandă păstrarea acestuia /_synapse/admin/...ascuns accesului public și apelarea sa locală, în mod normal. Consultați instrucțiunile oficiale pentru API-ul de administrare .
De exemplu, calculați o limită de 30 de zile în trecut și ștergeți memoria cache la distanță mai veche decât aceasta:
export SYNAPSE_ADMIN_TOKEN='your-admin-token'
CUTOFF_MS=$(( $(date -d '30 days ago' +%s) * 1000 ))
curl -sS -X POST -H "Authorization: Bearer $SYNAPSE_ADMIN_TOKEN" "http://127.0.0.1:8008/_synapse/admin/v1/purge_media_cache?before_ts=$CUTOFF_MS"
Răspunsul include un deletednumărător. Limita se bazează pe ultima accesare, nu doar pe ora modificării fișierului. Alegeți o perioadă care corespunde cu cât timp în urmă utilizatorii navighează în mod obișnuit. Conținutul la distanță șters poate fi preluat din nou numai dacă serverul de origine îl face încă disponibil.
4. Tratați media locală ca date permanente, cu excepția cazului în care aveți o politică de păstrare a datelor
Fișierele media locale sunt diferite. Acestea au fost încărcate pe serverul dvs. principal, așa că ștergerea lor poate deteriora definitiv atașamentele, imaginile sau alte referințe MXC. Înainte de a șterge în bloc fișierele media locale, verificați elementele reprezentative sau fișierele media ale utilizatorilor prin intermediul API-ului de administrare.
Pentru a interoga un anumit element media:
curl -sS -H "Authorization: Bearer $SYNAPSE_ADMIN_TOKEN" "http://127.0.0.1:8008/_synapse/admin/v1/media/example.org/MEDIA_ID"
Răspunsul poate include media_length, created_ts, last_access_ts, tipul MIME și starea de carantină. Documentația oficială a API-ului Media Admin definește aceste câmpuri și operațiunile de ștergere acceptate.
Legendă: Interogați metadatele media înainte de a aplica regulile de ștergere, astfel încât deciziile privind vârsta și dimensiunea să se bazeze pe înregistrările Synapse, mai degrabă decât pe marcajele temporale ale sistemului de fișiere.
Synapse poate șterge fișierele media locale după data ultimei accesări și, opțional, după dimensiune:
CUTOFF_MS=$(( $(date -d '180 days ago' +%s) * 1000 ))
curl -sS -X POST -H "Authorization: Bearer $SYNAPSE_ADMIN_TOKEN" "http://127.0.0.1:8008/_synapse/admin/v1/media/delete?before_ts=$CUTOFF_MS&size_gt=0&keep_profiles=true"
before_tseste o marcaj temporal Unix în milisecunde și se referă la ultimul acces. size_gteste un prag de octeți; valoarea implicită este zero. keep_profiles=trueeste valoarea implicită și păstrează suporturile media utilizate încă ca imagini de profil sau de cameră. Păstrați această protecție, cu excepția cazului în care aveți un motiv specific pentru a elimina acele imagini.
De asemenea, puteți lista sau șterge fișiere media încărcate de un anumit utilizator local cu /_synapse/admin/v1/users/<user_id>/media. Acest lucru este util atunci când un cont este responsabil pentru o creștere neobișnuită. Consultați documentația API-ului User Admin înainte de a utiliza operațiunea de ștergere, în special parametrii de ordonare și limită a acestora.
5. Împiedicați ca Media Store să umple din nou discul
Activează reținerea automată a fișierelor media
Pentru control continuu, Synapse oferă media_retention. Un exemplu bazat pe formatul oficial de configurare este:
media_retention:
local_media_lifetime: 180d
remote_media_lifetime: 30d
Fișierele media sunt eligibile pentru eliminare dacă nu au fost accesate pe durata de viață configurată. Dacă nu au fost accesate niciodată, Synapse folosește ora creării lor. Atât originalul, cât și miniaturile sunt eliminate. Dacă una dintre duratele de viață este omisă sau setată la nulă, categoria respectivă nu este eliminată automat.
Alegeți valoarea locală cu prudență: spre deosebire de memoria cache la distanță, suporturile media locale șterse nu pot fi reconstruite pur și simplu solicitând originalul unui alt server de domiciliu. Suporturile media din carantină nu sunt șterse prin retenție automată, iar suporturile media locale protejate sunt, de asemenea, excluse conform documentației de configurare.
Folosește controalele de încărcare pentru creșterea viitoare
max_upload_sizelimitează fiecare încărcare individuală; nu limitează dimensiunea totală a depozitului. Current Synapse permite, de asemenea, media_upload_limitslimitarea volumului de încărcare pe care un utilizator îl poate face în perioade de timp definite. Aceste controale reduc creșterea, dar nu înlocuiesc monitorizarea retenției sau a capacității.
Luați în considerare un furnizor de stocare atunci când sistemul de fișiere local este blocajul.
Synapse acceptă media_storage_providers, inclusiv un furnizor de sistem de fișiere care poate plasa medii într-un alt director. Acest lucru poate fi util atunci când aveți un volum sau un nivel de stocare dedicat. Este o modificare a arhitecturii de stocare, nu o comandă de curățare de urgență, așadar testați copiile de rezervă, permisiunile, accesul lucrătorilor și comportamentul de recuperare înainte de a migra mediile de producție.
Verificare după curățare
După orice curățare, verificați atât capacitatea, cât și comportamentul aplicației:
df -h
du -sh /path/to/media_store
du -sh /path/to/media_store/* 2>/dev/null | sort -h
- Deschideți un atașament încărcat local recent într-un client Matrix.
- Deschideți un atașament la distanță mai vechi și confirmați că poate fi preluat din nou.
- Verificați jurnalele Synapse pentru erori de la media worker sau de la sistemul de fișiere.
- Dacă utilizați lucrători media dedicați, confirmați că solicitările API-ului de administrare sunt direcționate către un lucrător de repozitoriu media. Documentația lucrătorilor Synapse listează endpoint-urile de administrare specifice mediilor care trebuie gestionate acolo.
- Înregistrați dimensiunea depozitului de suporturi de stocare după curățare și comparați-o din nou după câteva zile pentru a măsura rata reală de creștere.
Referință pentru decizii rapide
| Ce este mare? | Răspuns preferat | Riscul principal |
remote_content/remote_thumbnail | Ștergeți memoria cache la distanță prin ultima limită de acces; apoi setați remote_media_lifetime. | Fișierele media vechi trebuie descărcate din nou și pot fi indisponibile dacă sursa de origine nu le mai deservește. |
local_content/local_thumbnails | Definiți o regulă de retenție a datelor media, inspectați metadatele media, apoi utilizați API-urile de administrare pentru media locală. | Ștergerea este permanentă pentru conținutul găzduit de serverul dvs. |
| Cache-ul de previzualizare a URL-ului | Confirmați comportamentul previzualizării URL-ului și curățarea curentă a sinapselor înainte de a interveni manual. | Ștergerea manuală a sistemului de fișiere poate desincroniza metadatele stocate. |
| Toate categoriile continuă să crească | Adăugați media_retention, încărcați controale, monitorizare sau spațiu de stocare media dedicat. | Numai curățarea nu face decât să întârzie următorul incident de capacitate. |
Concluzie
Când un depozit media Matrix Synapse umple un disc, stabiliți mai întâi ce clasă media este responsabilă. Memoria cache la distanță este de obicei cea mai sigură țintă, deoarece Synapse are o API dedicată pentru purge și poate, în mod normal, recupera acel conținut. Mediile locale necesită o politică mult mai strictă, deoarece pot fi singura copie pe server a unui atașament. Odată ce spațiul imediat este recuperat, configurați media_retentionși monitorizați rata de creștere a depozitului media, astfel încât curățarea să devină o întreținere previzibilă în loc de o urgență.