Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A szinkronizálási motor olyan szolgáltatás, amely fájlokat szinkronizál, általában egy távoli gazdagép és egy helyi ügyfél között. A Windows szinkronizálási motorjai gyakran a Windows fájlrendszeren és a Fájlkezelőn keresztül jelenítik meg ezeket a fájlokat a felhasználónak. A Windows 10 1709-es verziója előtt a Windowsban a szinkronizálási motor támogatása ad-hoc felületekre korlátozódott, amelyek nem függnek a konkrét forgatókönyvektől, mint például a Fájlkezelő navigációs panelje, a Windows tálca és (további technikai alkalmazások esetén) fájlrendszer-szűrő illesztőprogramok.
A Windows 10 1709-es verziója (más néven Fall Creators Update) bevezette a cloud files API-t. Ez az API egy új platform, amely formálisan támogatja a szinkronizálási motorokat. A cloud files API a szinkronizálási motorokat úgy támogatja, hogy számos új előnnyel járjon a fejlesztők és a végfelhasználók számára.
A cloud files API a következő natív Win32 API-kat és Windows Runtime (WinRT) API-kat tartalmazza:
- Cloud Filter API: Ez a natív Win32 API a felhasználói mód és a fájlrendszer határán biztosít funkciókat. Ez az API kezeli a helyőrző fájlok és könyvtárak létrehozását és kezelését.
- Windows.Storage.Provider névtér: Ez a WinRT API lehetővé teszi, hogy az alkalmazások konfigurálják a felhőtárhely-szolgáltatót, és regisztrálják a szinkronizálási gyökerét az operációs rendszerrel.
Megjegyzés:
A cloud files API jelenleg nem támogatja a felhőszinkronizálási motorok implementálását az UWP-alkalmazásokban. A felhőszinkronizálási motorokat asztali alkalmazásokban kell implementálni.
Támogatott funkciók
A cloud files API a következő funkciókat biztosítja a felhőszinkronizálási motorok létrehozásához.
Helyőrző fájlok
- A szinkronizálási motorok olyan helyőrző fájlokat hozhatnak létre, amelyek csak 1 KB tárterületet használnak fel a fájlrendszer fejlécéhez, és normál használati feltételek mellett automatikusan teljes fájlokká hidratálódnak. A Helyőrző fájlok jellemző fájlokként jelenik meg az alkalmazások és a Végfelhasználók számára a Windows Shellben.
- A helyőrző fájlok függőlegesen integrálva vannak a Windows kerneltől egészen a Windows Shellig, és a helyőrző fájlokkal való alkalmazáskompatibilitás általában nem probléma. Akár fájlrendszer API-kat, parancssort, akár asztali vagy UWP-alkalmazást használ egy helyőrző fájl eléréséhez, a fájl további kódmódosítások nélkül is hidratál, és az alkalmazás normál módon használhatja a fájlt.
- A fájlok három állapotban létezhetnek:
- Helyőrző fájl: A fájl üres ábrázolása, és csak akkor érhető el, ha a szinkronizálási szolgáltatás elérhető.
- Teljes fájl: A fájlt implicit módon hidratálták, és szükség esetén a rendszer dehidratálhatja.
- Rögzített teljes fájl: A fájlt a felhasználó explicit módon hidratálta a Fájlkezelőn keresztül, és garantáltan offline állapotban is elérhető lesz.
Az alábbi kép bemutatja, hogyan jelennek meg a helyőrző, a teljes és a rögzített teljes fájlállapotok a Fájlkezelőben.
Szabványosított szinkronizálási gyökérregisztráció
A szinkronizálási gyökér regisztrálása egyszerű és szabványosított. Ez magában foglalja egy márkajelzéssel rendelkező csomópont létrehozását a Fájlkezelő navigációs paneljén, ahogyan az az alábbi képernyőképen látható. A gyökereket legfelső szintű bejegyzésként vagy egy szülőcsoport gyerekeiként lehet létrehozni.
Shell-integráció
- Állapotikonok:
- A cloud files API szabványosított, automatikus hidratálási állapotikonokat biztosít a Fájlkezelőben és a Windows asztalon.
- A hidratálási állapothoz használt szabványos Windows-állapotikonok mellett egyéni állapotikonokat is megadhat további szolgáltatásspecifikus tulajdonságokhoz.
- Lecseréli az örökölt ikon átfedési Shell-bővítményeit.
- Állapot jelzése:
- Ha megnyit egy helyőrző fájlt, amely több mint néhány másodpercet vesz igénybe a hidratáláshoz, a hidratálás előrehaladása jelenik meg. Az előrehaladás a környezettől függően néhány helyen jelenik meg.
- Másolási motor párbeszédpanelen.
- A fájl mellett folymatban lévő állapot jelenik meg a fájlkezelőben.
- Ha a fájl nem a felhasználó adott utasítása szerint van megnyitva, megjelenik egy bejelentési értesítés, amely tájékoztatja a felhasználót, és módot ad a nem szándékos hidratálási tevékenység szabályozására.
- Ha megnyit egy helyőrző fájlt, amely több mint néhány másodpercet vesz igénybe a hidratáláshoz, a hidratálás előrehaladása jelenik meg. Az előrehaladás a környezettől függően néhány helyen jelenik meg.
- Miniatűrök és metaadatok:
- A helyőrző fájlok gazdag szolgáltatással ellátott miniatűrökkel és kiterjesztett fájl metaadatokkal is rendelkezhetnek, hogy a felhasználó zökkenőmentes Fájlkezelő-élményt nyújtson.
- A Fájlkezelő navigációs ablaka:
- Ha regisztrál egy szinkronizálási gyökerét a cloud files API-val, az azt eredményezi, hogy a szinkronizálási gyökér (ikonnal és egyéni névvel) megjelenik a Fájlkezelő navigációs paneljén.
- A Fájlkezelő helyi menüi:
- A szinkronizálási gyökér regisztrálása a felhőfájlok API-jával automatikusan több igét (menübejegyzést) biztosít a Fájlkezelő helyi menüjében, amelyek segítségével a felhasználó szabályozhatja a fájl hidratálási állapotát.
- A helyi menü ezen szakaszához további igék is hozzáadhatók asztali hídkompatibilis API-k használatával.
- A fájlhidratálás felhasználói vezérlése:
- A felhasználók mindig felügyelik a fájlok hidratálását, még akkor is, ha a fájlokat nem hidratálja explicit módon a felhasználó. Egy interaktív értesítés láthatóvá válik a háttérben történő hidratálás céljából, amely figyelmezteti a felhasználót, és lehetőségeket biztosít. Az alábbi képen egy hidratáló fájl bejelentési értesítése látható.
- Ha egy felhasználó letiltja, hogy egy alkalmazás interaktív bejelentéssel hidratálja a fájlokat, feloldhatja az alkalmazás letiltását a BeállításokAutomatikus fájlletöltések lapján.
- A felhasználók mindig felügyelik a fájlok hidratálását, még akkor is, ha a fájlokat nem hidratálja explicit módon a felhasználó. Egy interaktív értesítés láthatóvá válik a háttérben történő hidratálás céljából, amely figyelmezteti a felhasználót, és lehetőségeket biztosít. Az alábbi képen egy hidratáló fájl bejelentési értesítése látható.
- Másolási motor műveleteinek csatlakoztatása (a Windows 10 Insider Preview Build 19624-ben és újabb verzióiban támogatott):
- A felhőtárhely-szolgáltatók regisztrálhatnak egy külső másoló horogot a szinkronizálási gyökértartomány fájlműveleteinek figyelésére.
- A szolgáltató úgy regisztrálja a másolási horogot, hogy a szinkronizálási gyökérregisztrációs kulcs alatt lévő CopyHook beállításjegyzék-értéket a COM helyi kiszolgálóobjektum CLSID azonosítójára állítja. Ez a helyi kiszolgálóobjektum implementálja az IStorageProviderCopyHook felületet.
- Fájlmegosztás (a Windows 11 21H2-es és újabb verzióiban támogatott):
- A felhőtárhely-szolgáltatók regisztrálhatnak egy megosztáskezelőt, amely akkor lesz meghívva, amikor a felhasználó kiválasztja a "Megosztás" parancsot egy felhőfájlon a szinkronizálási gyökér alatt.
- A szolgáltató úgy regisztrálja a megosztáskezelőt, hogy a ShareHandler beállításjegyzék-értékét a szinkronizálási főkulcs alatt a COM helyi kiszolgálóobjektum CLSID azonosítójára állítja. Ez a helyi kiszolgálóobjektum implementálja az IExplorerCommand felületet.
Asztali híd
- A felhőfájlok API-jait használó szinkronizálási motorokat úgy tervezték, hogy implementálási követelményként az Asztali hidat használják.
Felhőtükör minta
A Cloud Mirror-minta bemutatja, hogyan hozhat létre olyan megoldást, amely a cloud files API-t használja. Nem használható éles kódként. Nem rendelkezik robusztus hibakezeléssel, és úgy van megírva, hogy a lehető legegyszerűbben érthető legyen. A neve Cloud Mirror, mert egyszerűen tükröz egy helyi mappát a helyi lemezen. Meg kell adnia egy kiszolgálómappát, amely a felhőfájlok kiszolgálóját és egy ügyfélmappát jelöl, amely a szinkronizálás gyökérútvonalának megadására szolgál. Megjelenik egy felső szintű csomópont a TestStorageProviderDisplayName nevű Fájlkezelő navigációs ablaktábláján, és ez a csomópont a megadott ügyfélmappára lesz leképezve.
A szinkronizálás során a teljes mértékben fejlett felhőfájlok szinkronizálási szolgáltatójának ezeket kell implementálnia:
- Ha a szinkronizálási gyökérfájl csak helyőrző, a szolgáltatás feladata a fájl tartalmának másolása a hidratáláshoz. Ez a mintában van implementálva.
- Ha a szinkronizálási gyökérfájl teljessé válik, és a fájl tartalma megváltozik a felhőszolgáltatásban, akkor a szolgáltatásnak értesítenie kell a helyi szinkronizálási ügyfelet a változásról, és a helyi szinkronizálási ügyfélnek a saját specifikációjának megfelelően kell kezelnie az egyesítéseket. Ez nincs implementálva a mintában.
- Ha a szinkronizálási gyökérfájl teljes fájl, és a szinkronizálás gyökérútvonalában (a helyi ügyfél) lévő fájl tartalma megváltozik, a helyi szinkronizálási ügyfélnek értesítenie kell a felhőszolgáltatást, és kezelnie kell az egyesítéseket a saját specifikációjuk szerint. A helyi fájlmódosítási értesítés implementálva van a mintában, de nem tesz semmit.
Mintát használni
- Hozzon létre két mappát a helyi merevlemezen. Az egyik kiszolgálóként, a másik pedig ügyfélként fog működni.
- Adjon hozzá néhány fájlt a szerver mappához. Győződjön meg arról, hogy az ügyfélmappa üres.
- Nyissa meg a Cloud Mirror-mintát a Visual Studióban. Állítsa be a CloudMirrorPackage projektet indítási projektként, majd hozza létre és futtassa a mintát. Amikor a minta kéri, adja meg a kiszolgáló és az ügyfélmappák két elérési útját. Ezt követően megjelenik egy diagnosztikai információkat tartalmazó konzolablak.
- Nyissa meg a Fájlkezelőt, és győződjön meg arról, hogy megjelenik a TestStorageProviderDisplayName csomópont és a kiszolgálómappába másolt összes fájl helyőrzője. Ha egy olyan alkalmazást szeretne szimulálni, amely a választó használata nélkül próbál fájlokat megnyitni, másoljon több képet a kiszolgálómappába. Kattintson duplán az egyikre a szinkronizálás gyökérmappájában, és győződjön meg arról, hogy az hidratál. Ezután nyissa meg a Fényképek alkalmazást. Az alkalmazás előre betölti a szomszédos fájlokat a háttérben, hogy nagyobb valószínűséggel a felhasználó ne tapasztaljon késést a többi kép átnézésekor. A háttér dehidratációja pirítósokkal vagy a Fájlkezelőben figyelhető meg.
- A helyi menü megjelenítéséhez kattintson a jobb gombbal egy fájlra a Fájlkezelőben, és ellenőrizze, hogy megjelenik-e a TestCommand menüelem. Erre a menüelemre kattintva megjelenik egy üzenetmező.
- A minta leállításához állítsa a fókuszt a konzol kimenetére, és nyomja le a Ctrl-C billentyűkombinációt. Ezzel törli a szinkronizálási gyökérregisztrációt, hogy a szolgáltató el legyen távolítva. Ha a minta összeomlik, lehetséges, hogy a szinkronizációs gyökér regisztrálva marad. Ez azt eredményezi, hogy a Fájlkezelő minden kattintáskor újraindul, és a rendszer kérni fogja a hamis ügyfél- és kiszolgálóhelyeket. Ha ez történik, távolítsa el a CloudMirrorPackage mintaalkalmazást a számítógépről.
Mintaarchitektúra
A minta szándékosan egyszerű. Statikus osztályokat használ, hogy szükségtelenné tegye a példánymutatók átadását. A minta fő osztályai a következők:
-
FakeCloudProvider: Ez a felső szintű osztály a következő feldolgozóosztályokat vezérli:
- CloudProviderRegistrar: Regisztrálja a szinkronizálási gyökéradatokat a Windows Shellben.
- Helyőrzők: Létrehozza a helyőrző fájlokat a szinkronizálás gyökérútvonalán.
- ShellServices: A Windows Shell-szolgáltatókat a helyi menühöz, miniatűrökhöz és egyéb szolgáltatásokhoz hozza létre.
- CloudProviderSyncRootWatcher: Példányosít egy Címtárfigyelőt a szinkronizálási gyökérútvonal módosításainak figyeléséhez és a módosítások követéséhez.
- FileCopierWithProgress: Fájlok másolása a kiszolgálómappából az ügyfélmappába lassan, adattömbökben, hogy szimulálja a letöltésüket egy valódi felhőkiszolgálóról. Az előrehaladás jelzését adja meg, hogy a bejelentések és a Fájlkezelő felhasználói felülete valami informatívat jelenítsen meg a felhasználó számára.
A fenti osztályok mellett a minta több segédosztályt is biztosít, amelyek mappákat és segédprogramokat kérnek a felhasználótól. A TestExplorerCommandHandler, a CustomStateProvider, a ThumbnailProvider és az UriSource mind példa a Shell-szolgáltatókra.
Cloud Files API-architektúra
A cloud files API tárolóveremének középpontjában egy cldflt.sysnevű fájlrendszer miniszűrő-illesztőprogram található. Ez az illesztőprogram proxyként működik a felhasználó alkalmazásai és a szinkronizálási motor között. A szinkronizálási motor tudja, hogyan töltheti le és töltheti fel az adatokat igény szerint, miközben az cldflt.sys feladata, hogy a Shelllel együttműködve olyan fájlokat jelenítsen meg, mintha a felhőbeli adatok helyileg elérhetők lennének.
Cldflt.sys jelenleg csak az NTFS-köteteket támogatja, mert az NTFS-hez egyedi funkcióktól függ.
A rendszerben számos fájlrendszer miniszűrő-illesztőprogram található, és egyszerre aktívak lehetnek egy adott köteten. A felhőfájlok API-jának leginkább érdekes illesztőprogramjai a vírusellenes fájlrendszer szűrői.
A fájlrendszer miniszűrő-illesztőprogramjait a szűrőkezelő nevű speciális kernel módú összetevő felügyeli és támogatja. A szűrőkezelő számos egyéb feladat mellett a szűrőüzenet-port néven ismert szerkezeten keresztül megkönnyíti a szűrők és a felhasználói mód összetevői közötti szűretlen kommunikációt.
Hidratálási szabályzatok
A Windows számos elsődleges hidratálási szabályzatot és másodlagos hidratálási szabályzatmódosítót támogat. Az elsődleges hidratálási szabályzatok sorrendje a következő:
Mindig teljes > Teljes > Progresszív > Részleges
Az alkalmazások és a szinkronizálási motorok is meg tudják határozni az elsődleges hidratálási szabályzatukat. Ha nincs megadva, az alapértelmezett hidratálási szabályzat progresszív mind az alkalmazások, mind a szinkronizálási motorok esetében.
A felhőfájlok hidratálási szabályzatát a következő képlet határozza meg a fájl megnyitásakor:
File hydration policy = max(app hydration policy, provider hydration policy)
Tegyük fel például, hogy a felhasználó egy Fabrikam Cloud Drive-on tárolt PDF-fájlt próbál megnyitni a Contoso PDF Viewer használatával, amely nem ad meg előnyben részesített hidratálási szabályzatot. Az alkalmazás hidratálási szabályzata ezért alapértelmezés szerint progresszív hidratálás. Mivel azonban a Fabrikam Cloud Drive egy teljes szinkronizáló motor, a fájl végső hidratálási beállítása teljes hidratálás lesz, így a fájl az első hozzáféréskor teljesen hidratálódik. Ugyanez történik azokban az esetekben is, amikor a szinkronizálási motor támogatja a fokozatos hidratálást, de az alkalmazás előnyben részesítése a teljes hidratálás.
Vegye figyelembe, hogy a fájl hidratálási szabályzata a fájl megnyitása után nem módosítható.
Kompatibilitás az újraelemzési pontokat használó alkalmazásokkal
A cloud files API újraelemzési pontok használatával implementálja a helyőrző rendszert. Az újraelemzési pontokkal kapcsolatos gyakori tévhit, hogy ugyanazok, mint a szimbolikus hivatkozások. Ez a tévhit időnként tükröződik az alkalmazás implementációiban, és emiatt számos meglévő alkalmazás hibát tapasztal, amikor bármilyen újraelemzési ponttal találkozik.
A kompatibilitási probléma megoldásához a cloud files API mindig elrejti az újraelemzési pontokat az összes alkalmazás elől, kivéve a szinkronizálási motorokat és folyamatokat, amelyek fő képe %systemroot%alatt található. Az újraelemzési pontokat helyesen ismerő alkalmazások kényszeríthetik a platformot, hogy elérhetővé tegyék a felhőfájlok API-újraelemzési pontjait az RtlSetProcessPlaceholderCompatibilityMode vagy az RtlSetThreadProcessPlaceholderCompatibilityMode használatával.
Felhőalapú fájlok keresése
A felhőalapú fájlok keresését a Windows 11 24H2-es és újabb verziói támogatják a Copilot+ rendszerű számítógépeken vagy az AI-kompatibilis felhőalapú számítógépeken. A felhőtárhely-szolgáltatók az alábbi funkciókkal integrálhatók a Windows Search szolgáltatással:
- A felhőszolgáltatók regisztrálhatnak egy fájlkeresési kezelőt a szinkronizálási gyökerükhöz, lehetővé téve számukra, hogy a keresési eredményekhez hozzájáruljanak a Fájlkezelőben és a Windows Searchben.
- A felhőszolgáltatók úgy regisztrálnak egy keresési kezelőt, hogy a searchHandlerFactory beállításjegyzék értékét a szinkronizálási gyökérregisztrációs kulcs alatt a COM helyi kiszolgálóobjektum CLSID azonosítójára állítják. Ez a helyi kiszolgálóobjektum implementálja az IStorageProviderSearchHandlerFactory felületet.
- Az IStorageProviderSearchHandlerFactory létrehozza az IStorageProviderSearchHandler implementációját. Ez az IStorageProviderSearchHandler implementáció meghívja a felhőszolgáltató keresési szolgáltatását olyan fájlok keresésére, amelyek esetleg nem érhetők el helyileg az eszközön.
- A Windows Keresési felület meghívja a Keresés metódust a keresés során, és egyesíti annak eredményeit a helyi keresési indexelővel.
Kapcsolódó tartalom
Felhőfájlok szolgáltatói integrációja a Windows Search szolgáltatással