Melléklet-olvasó és Office-előnézet
Az üzenetolvasó a tárolt mellékleteket eredeti letöltési és csak olvasható előnézeti lehetőséggel jeleníti meg. Az Office-fájlokhoz a beállított Collabora-szolgáltatás tartozik, helyi vagy távoli elhelyezés szerint. A távoli renderer a WOPI-n keresztül csak szűkített hozzáférést kap a fájlbájtokhoz. Általános S3-URL-t nem kap.
Támogatott fájlok és határok
| Fájltípus | Előnézet |
|---|---|
Word .doc, .docx | Csak olvasható Collabora |
Excel .xls, .xlsx | Csak olvasható Collabora |
PowerPoint .ppt, .pptx | Csak olvasható Collabora |
| Böngésző PDF-nézegetője | |
| PNG, JPEG, GIF, WebP | Böngésző képnézegetője |
| MP3, WAV, Ogg, támogatott MP4 audio | Natív audióvezérlők, a böngésző kodekjeitől függően |
| MP4, WebM videó | Natív videóvezérlők |
Markdown .md, .markdown, text/markdown | Markdown a GitHub Flavored Markdown szerint |
HTML .html, .htm, text/html | Izolált, csak olvasható dokumentum |
| Kód és egyszerű szöveg | Hatókörített szintaxiskiemelés vagy escape-elt forrás |
Minden beépített előnézet legfeljebb 25 000 000 bájtot fogad el, a pontos határt is beleértve. Ez a tárolt fájlméret, nem egy Office ZIP kibontott tartalma. A MIME-engedélylisták és a böngésző kodekjei továbbra is korlátozzák a lejátszást. A nem támogatott, sérült vagy túl nagy fájlok letöltése elérhető marad.
A támogatott Office-fájlkiterjesztés élvez elsőbbséget. A kiterjesztés nélküli nevek hat támogatott Office MIME-típus egyikét használhatják. Az előnézeti név a kikövetkeztetett kiterjesztést kapja. Az eredeti letöltési nevek változatlanok maradnak. A makrót engedélyező kiterjesztések ki vannak zárva, és a CODE makrófuttatás le van tiltva. Nincs szerkesztési, mentési, átnevezési vagy másként mentési folyamat.
Szöveg, Markdown és HTML
A Markdown támogatja a táblázatokat és a feladatlistákat. Kihagyja a nyers HTML-t, a képeket alternatív szöveggel helyettesíti, a hivatkozásokat pedig nem navigálható címkékként jeleníti meg. Külső erőforrásokat nem tölt le automatikusan.
A HTML a srcDoc-ot használja egy üres sandbox attribútumú iframe-ben. Az előkészítés eltávolítja a szkripteket, iframe-eket, objectet, embedet, base/meta/link elemeket, template-eket és noscript elemeket. Eltávolítja az esemény-, navigációs és fetch-attribútumokat is. A tartalombiztonsági szabályzat tiltja a szkripteket, a külső erőforrásokat, a form-műveleteket és a base URL-eket. Inline stílusok és Base64 PNG/JPEG/GIF/WebP képek megmaradhatnak.
A HTTP-melléklet-útvonal a nyers HTML-t application/octet-stream típusú letöltésként küldi. A felület korlátos tartalmat tölt le, és a megjelenítését elkülöníti.
A rendszer csak megnyitáskor tölti be a szövegrenderert. A Markdown-, HTML- és kódkérések preview=true paramétert használnak. A szintaxisválasztás explicit highlight.js lexert használ automatikus felismerés nélkül, hatókörített GitHub világos és sötét témákkal.
Támogatott kiterjesztések: js, jsx, mjs, cjs, ts, tsx, json, css, scss, sql, py, sh, bash, ps1, xml, yaml, yml, c, h, cpp, hpp, cs, java, go, rs, php, rb, toml, ini, txt, log.
MIME-visszalépések: text/plain, application/json, application/xml, text/xml, text/css, application/javascript. Ismeretlen lexer esetén escape-elt szöveg látszik.
200 000 bájt felett a szövegelőnézet kihagyja a gazdag Markdown/HTML-elemzést és a szintaxiskiemelést. Escape-elt forrást mutat az összes 25 000 000 bájtos korláton belül. Ez a böngészőfeldolgozási korlát nem változtatja meg az eredeti letöltést.
Adatút és jogosultság
A backend egységesíti a Graph-tömböket, az onboarding {items} manifesteket és a régi fájlnév-manifesteket. Ellenőrzi az aktív üzenetet, a postafiók tulajdonosát és a hozzá tartozó, nem törölt mellékletet. Az S3-ban és a régi adatbázisban tárolt bájtokat támogatja.
A natív előnézet hitelesített BFF-bájtokat tölt le, és böngészőoldali Blob URL-t hoz létre. Az előnézet bezárásakor vagy cseréjekor ez az URL felszabadul.
Az Office-előnézet azonos originről indított POST /api/mail/attachments/office-session hívással kér munkamenetet. A BFF ellenőrzi a munkamenetet, a kifejezetten csatlakoztatott fiók tulajdonjogát, a melléklet hozzáférését és méretét. A megtekintő URL-jét érvényesített CODE-felfedezési útvonalakból és a beállított BFF HTTPS-originből építi.
A WOPI CheckFileInfo és GetFile minden hívása ellenőrzi a token hatókörét és lejáratát. Ellenőrzi az aktuális fiók- és postafiók-tulajdonjogot, a jogosultságokat és a tartalom hash-ét. Megváltozott fájlhoz új előnézeti munkamenet kell. A WOPI csak olvasási útvonalakat tesz elérhetővé, a metaadat pedig tiltja az írást. Az eredeti letöltés külön művelet marad.
A backend preview=true kérése ellenőrzi a metaadatot és a tényleges bájtméretet. Az S3-olvasás ellenőrzi a Content-Length értéket és a beérkező streamet. A túlméret HTTP 413 választ ad. A tokent tartalmazó WOPI- és CODE-útvonalak kikapcsolják a hozzáférési naplózást. Soha ne másold a tokeneiket jelentésbe.
Futtatókörnyezet és meglévő setup frissítése
A gyökér deployment rögzített Collabora CODE-ot tartalmaz gazdagépi (host) port nélkül. A jelenlegi memóriakorlátok a kiválasztott futtatókörnyezeti profilból jönnek, nem egy rögzített melléklet-útmutatóbeli összegből. Lásd a memóriareferenciát.
A CODE a fejlesztői kiadás. Production deploymenthez támogatott kiadás és saját kapacitás- és kompatibilitás-ellenőrzés kell. Az önálló üzemeltetés nem jelent szállítói production-támogatást.
A normál inicializálás előkészíti az aláírási anyagot, és elindítja a kiválasztott függőségeket. Meglévő setup esetén őrizd meg az adatokat, és használd a szokásos vagy hatókörített életciklust. Az előnézet hozzáadásához ne resetelj tárhelyet. Először ellenőrizd a gazdagép kapacitását.
Proxy-útvonalak
A böngészőeszközök és a dokumentum-WebSocketek a BFF originján keresztül érik el a Collaborát. Csak a szükséges megtekintő- és felfedezési útvonalakat tedd elérhetővé. Az adminisztrációs és a közvetlen konverziós API-kat tartsd privátan. A WOPI-engedélylistának a kiválasztott callback-szabályzatot kell követnie.
A távoli renderer emellett távoli callback-előkészítést igényel. Változtatás után ellenőrizd a tényleges dokumentumoldalt, a fájlolvasást és az eredeti letöltést. Egy socket-hiba callback-hibát jelezhet, nem böngészőkapcsolati hibát.