Vállalati mentések
A vállalati adminisztrátorok és tulajdonosok a webes alkalmazásban nyitják meg a vállalatukat, és kiválasztják a Mentések menüpontot. Kérelmet nyújthatnak be mentésekhez, letölthetik a ZIP-fájlokat, és kezelhetik a mentőszerver API-kulcsait. Ez az export nem érhető el a mobilalkalmazásban.
Hatókör és korlátok
A mentés tartalmazza a vállalat szokásos projektbeszélgetéseit, beleértve az archivált beszélgetéseket is, üzenetekkel, reakciókkal, csevegőkártyákkal és a hozzájuk tartozó feltöltött csatolmányokkal. Továbbá a projekt- és csevegésmetaadatokat, a résztvevők neveit, valamint az ezekben a beszélgetésekben közzétett vállalati dokumentumokat. A vállalati adminisztrátorok és tulajdonosok menthetik azokat a vállalati beszélgetéseket is, amelyekhez személyesen nem csatlakoztak.
A közvetlen üzenetek, a privát jegyzetek, a személyesen látható szolgáltatások, a vállalatok közötti beszélgetések és a személyes vázlatok nem részei a mentésnek. A vállalati meghajtó és a külső linkek tartalma szintén kívül esik ezen a csevegés-exporton. A hiányzó kapcsolódó csatolmányok miatt a generálás sikertelen lehet. A ZIP egy adatexport; a Skavába történő automatikus visszaimportálás még nem áll rendelkezésre.
Kvóták, inkrementális mentések és megőrzés
Minden vállalat kérhet egy teljes mentést 7 napon belül és két inkrementális mentést 24 órán belül. Ezek a görgőző időablakok minden egyes kérésnél újrakezdődnek. Az ugyanazon kész fájl újratöltése nem von le a generálási kvótából. A sikertelen generálási feladatok nem számítanak bele ezeken a korlátokba.
Minden inkrementális mentés tartalmazza az utolsó, teljesen átvitt és ellenőrzőösszeggel megerősített mentés óta bekövetkezett módosításokat és törléseket. A lánc A + B + C: az A a teljes mentés, a B az A óta történt módosításokat, a C pedig a B óta bekövetkezett további változásokat tartalmazza. Az állapot visszaállításához minden csomagot sorban kell alkalmazni. A változatlan csatolmányok a láncban már meglévő fájlokra utalnak.
A letöltések a generálás befejezése után 24 órán át érhetők el. Ezt követően a ZIP fájl eltávolításra kerül, a történet pedig megmarad. A teljes mentést és minden kapcsolódó inkrementális mentést helyben tárolja. Az összehasonlító állapot a teljes mentéstől számított legfeljebb 90 napig használható; ezt követően új teljes mentés szükséges. Minden inkrementális mentés azonosítja a teljes mentést és közvetlen elődét azonosító és SHA-256 alapján.
Csak a teljesen átvett és megerősített csomag válik az új előddé. A kész, de még nem megerősített inkrementális mentés blokkolja a következő inkrementális mentést, amíg meg nem erősítik, vagy le nem jár. Ha egy nem megerősített csomag lejár, a következő kísérlet az utolsó megerősített állapottól indul, és tartalmazza a még nem mentett változásokat. Ha egy megerősített rész hiányzik helyben, töltsd le újra a 24 órás elérhetőség alatt, vagy indíts új teljes mentést a heti korlát figyelembevételével. Célszerű egy közös mentési könyvtárat használni vállalatonként; a független klienseknek ugyanazt a teljes láncot kell megőrizniük.
API-kulcs beállítása
Az API-kulcsok menüpontban adjon meg egy nevet, például „Cégnév NAS”, és hozza létre a kulcsot. Ez csak egyszer jelenik meg, egy év múlva lejár, és bármikor visszavonható. Tartsa a biztonsági mentési környezet védett titoktárában. A kulcs a cég tulajdonát képezi, és csak az adott cég biztonsági mentési API-jához fér hozzá. A létrehozó későbbi bejelentkezésétől függetlenül működik.
HTTPS-en keresztül küldje el az Authorization: Bearer YOUR_BACKUP_TOKEN fejlécben. Ne kerüljenek a kulcsok URL-címekbe, nyilvános szkriptekbe vagy naplófájlokba. Csak a cégadminisztrátorok és tulajdonosok hozhatnak létre, listázhatnak és vonhatnak vissza kulcsokat.
Python: teljes és inkrementális biztonsági mentés letöltése
Töltse le a company_backup.py Python klienset, és helyezze a szkript mellé. Linuxon vagy macOS-en Python 3.10 vagy újabb verzió szükséges, és csak a standard könyvtárat használja. Állítsa be a SKAVA_BACKUP_TOKEN változót a védett folyamatkörnyezetben, és cserélje ki a 42 számot a webes alkalmazás címében szereplő cégazonosítóra.
import os
from company_backup import BackupClient
client = BackupClient("https://chat.skava.io", 42,
os.environ["SKAVA_BACKUP_TOKEN"])
full = client.backup("full", "backups") # once every 7 days
# Later, up to twice in a rolling 24-hour window:
diff = client.backup("diff", "backups")
A beütemezett feladatok közvetlenül ugyanazt a klienst hívhatják meg:
python3 company_backup.py --company 42 --kind full --directory backups
python3 company_backup.py --company 42 --kind diff --directory backups
A kliens kéri a generálást, lekérdezi az állapotot, letölti a fájlt a lemezre, ellenőrzi a méretet, a SHA-256-ot és a ZIP tartalmát, majd visszaigazolja az átvételt. A teljes és az inkrementális mentéseket külön fájlokként tárolja. A rejtett állapotfájlt tartsa meg ebben a könyvtárban, mert az tartalmazza a láncot és a folytatáshoz szükséges adatokat. Egy újabb inkrementális mentés kérése előtt a kliens ellenőrzi az összes korábbi ZIP fájlt. Ha a folyamat megszakad, ismételje meg ugyanazt a parancsot. Ugyanabban a könyvtárban, ugyanahhoz a céghoz tartozó párhuzamos feladatok futását a rendszer megakadályozza.
API folyamat tartós kapcsolat nélkül
- Kérés:
POST /api/v1/companies/42/backupsa{"kind":"full","request_id":"YOUR_UNIQUE_ID"}testtel. Inkrementális mentéshez akindértékét állítsadiff-re, a helyi teljes mentés azonosítóját adja megbase_idnéven, az utolsó visszaigazolt csomag azonosítóját pedigparent_idnéven. A válaszban szerepel ajob.id. Újrapróbáláskor használja újra ugyanazt arequest_idértéket. - Állapotlekérdezés:
GET /api/v1/companies/42/backups/JOB_ID, kb. tíz másodpercenként. A generálás aqueuedvagyrunningállapotban a háttérben fut. A kérések között nem marad nyitva kapcsolat. - Letöltés: Amikor a
readyállapotban van ésavailable: true, hívja meg aGET /api/v1/companies/42/backups/JOB_ID/downloadvégpontot. Csak ez az átvitel tart nyitva kapcsolatot. Ha megszakad, töltsön le újra az egész fájlt. - Átvétel megerősítése: Ellenőrizze a
job.bytesés ajob.sha256értékeket. Vegye ki azX-Backup-Download-Idés azX-Backup-Receiptmezőket a letöltési válasz fejlécéből. Küldje el aPOST /api/v1/companies/42/backups/JOB_ID/downloads/DOWNLOAD_ID/confirmkérést a{"receipt":"RECEIPT","bytes":12345,"sha256":"SHA256"}testtel. Csak a teljes átvitel a megfelelő megerősítéssel számít sikeresnek.
A GET /api/v1/companies/42/backups visszatéríti az előzményeket, lapozva a next_offset segítségével. A kimerített kvóták vagy az ideiglenes kapacitáskorlátok HTTP 429 státuszkódot adnak vissza Retry-After mezővel. A mentések sorban készülnek a korlátok belül, így az egyidejű éjszakai feladatok nem terhelik túl az alkalmazást.
Letöltési előzmények megértése
Az előzmények mutatják a teljes vagy inkrementális típust, a kérés idejét, a lejárati dátumot, a teljes mentést, az előzményt és minden letöltési kísérletet a átvitt bájtokkal. A „Kész” az elkészült fájlt jelöli. Az „Átvitt” azt jelenti, hogy a szerver elküldte az összes bájtot. A „Ellenőrzőösszeg megerősítve” azt jelenti, hogy a kliens ellenőrizte és megerősítette a teljes átvételt. A megszakított és sikertelen kísérletek láthatóak maradnak.
A webböveg a mentés párbeszédablak megjelenése előtt ellenőrzi a fogadást a böngészőben. Ez a megerősítés nem bizonyítja, hogy a fájl később tartósan elmentődött a számítógépen. Az automatizált mentésekhez a Python kliens a megerősítés előtt írja a fájlt a lemezre. A webböveg letöltése 64 MiB-ig terjed; nagyobb archívumokhoz a Python klienst használja.