Skip to main content

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ípusElőnézet
Word .doc, .docxCsak olvasható Collabora
Excel .xls, .xlsxCsak olvasható Collabora
PowerPoint .ppt, .pptxCsak olvasható Collabora
PDFBöngésző PDF-nézegetője
PNG, JPEG, GIF, WebPBöngésző képnézegetője
MP3, WAV, Ogg, támogatott MP4 audioNatí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/markdownMarkdown a GitHub Flavored Markdown szerint
HTML .html, .htm, text/htmlIzolált, csak olvasható dokumentum
Kód és egyszerű szövegHató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.