Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Eşitleme motoru, genellikle uzak bir sunucu ile yerel bir istemci arasında dosyaları eşitleyen bir hizmettir. Windows'da eşitleme altyapıları genellikle bu dosyaları Windows dosya sistemi ve Dosya Gezgini aracılığıyla kullanıcıya sunar. Windows 10, sürüm 1709'den önce, Windows'daki eşitleme altyapısı desteği Dosya Gezgini'nin gezinti bölmesi, Windows sistem tepsisi ve (daha fazla teknik uygulama için) dosya sistemi filtre sürücüleri gibi senaryodan bağımsız geçici yüzeylerle sınırlıydı.
Windows 10 sürüm 1709 (Fall Creators Update olarak da adlandırılır) bulut dosyaları API'sini kullanıma sunar. Bu API, eşitleme altyapıları desteğini resmileştiren yeni bir platformdur. Bulut dosyaları API'si, geliştiricilere ve son kullanıcılara birçok yeni avantaj sağlayacak şekilde eşitleme altyapıları için destek sağlar.
Bulut dosyaları API'sinde aşağıdaki yerel Win32 API'leri ve Windows Çalışma Zamanı (WinRT) API'leri bulunur:
- Bulut Filtresi API'si: Bu yerel Win32 API'si, kullanıcı modu ile dosya sistemi arasındaki sınırda işlevsellik sağlar. Bu API, yer tutucu dosyaların ve dizinlerin oluşturulmasını ve yönetilmesini işler.
- Windows.Storage.Provider ad alanı: Bu WinRT API'si, uygulamaların bulut depolama sağlayıcısını yapılandırmasına ve eşitleme kökünü işletim sistemine kaydetmesine olanak tanır.
Uyarı
Bulut dosyaları API'si şu anda UWP uygulamalarında bulut eşitleme altyapılarının uygulanmasını desteklememektedir. Bulut eşitleme altyapılarının masaüstü uygulamalarında uygulanması gerekir.
Desteklenen özellikler
Bulut dosyaları API'sinde bulut eşitleme altyapıları oluşturmaya yönelik aşağıdaki özellikler sağlanır.
Yer tutucu dosyalar
- Eşitleme motorları, dosya sistemi üst bilgisi için yalnızca 1 KB depolama alanı kullanan ve normal kullanım koşulları altında otomatik olarak tam dosyalara dönüşen yer tutucu dosyalar oluşturabilir. Yer tutucu dosyalar, Windows Kabuğu'ndaki uygulamalara ve son kullanıcılara tipik dosyalar olarak gösterilir.
- Yer tutucu dosyalar Windows çekirdeğinden Windows Kabuğu'na kadar dikey olarak tümleştirilir ve yer tutucu dosyalarla uygulama uyumluluğu genellikle sorun oluşturmaz. Yer tutucu bir dosyaya erişmek için dosya sistemi API'leri, Komut İstemi veya masaüstü ya da UWP uygulaması kullandığınızda, dosya ek kod değişiklikleri olmadan sulanır ve bu uygulama dosyayı normal şekilde kullanabilir.
- Dosyalar üç durumda bulunabilir:
- Yer tutucu dosyası: Dosyanın boş bir gösterimidir ve yalnızca eşitleme hizmeti kullanılabiliyorsa kullanılabilir.
- Tam dosya: Dosya örtük olarak sulanmıştır ve alan gerekiyorsa sistem tarafından susuz bırakılmış olabilir.
- Sabitlenmiş tam dosya: Dosya, Dosya Gezgini'nde kullanıcı tarafından açıkça indirildiği için çevrimdışı kullanılabilirliği garanti altına alınmıştır.
Aşağıdaki görüntüde yer tutucu, tam ve sabitlenmiş tam dosya durumlarının Dosya Gezgini'nde nasıl gösterildiği gösterilmektedir.
Standard senkronizasyon kök kaydı
Eşitleme kökünü kaydetmek basittir ve standartlaştırılmıştır. Bu, aşağıdaki ekran görüntüsünde gösterildiği gibi Dosya Gezgini'nin gezinti bölmesinde markalı bir düğüm oluşturmayı içerir. Kökler tek tek üst düzey girdiler olarak veya bir üst gruplandırma alt öğesi olarak oluşturulabilir.
Sistem kabuğu tümleştirmesi
- Durum simgeleri:
- Bulut dosyaları API'si, Dosya Gezgini'nde ve Windows masaüstünde gösterilen standartlaştırılmış, otomatik hidrasyon durumu simgeleri sağlar.
- Hidrasyon durumu için kullanılan standart Windows durum simgelerine ek olarak, hizmete özgü ek özellikler için özel durum simgeleri sağlayabilirsiniz.
- Eski simge kaplaması Kabuk uzantılarının yerini alır.
- İlerleme göstergesi:
- Bir yer tutucu dosyasının açılması birkaç saniyeden uzun sürerse, hidrasyon ilerlemesi gösterilecektir. İlerleme durumu, bağlama bağlı olarak birkaç konumda gösterilir:
- Kopyalama motoru iletişim penceresinde.
- Dosya Gezgini'nde dosyanın yanında satır içi ilerleme durumu gösterilir.
- Dosya, kullanıcının özel yönergesine göre açılmazsa, kullanıcıyı bilgilendirmek ve istenmeyen hidrasyon etkinliğinin kontrolünü sağlamak için bir toast bildirimi gösterilir.
- Bir yer tutucu dosyasının açılması birkaç saniyeden uzun sürerse, hidrasyon ilerlemesi gösterilecektir. İlerleme durumu, bağlama bağlı olarak birkaç konumda gösterilir:
- Küçük resimler ve meta veriler:
- Yer tutucu dosyalar, kullanıcıya sorunsuz bir Dosya Gezgini deneyimi sağlamak için hizmet tarafından sağlanan zengin küçük resimlere ve genişletilmiş dosya meta verilerine sahip olabilir.
- Dosya Gezgini gezinti bölmesi:
- Bir eşitleme kökünü bulut dosyaları API'sine kaydetmek, eşitleme kökünü (simge ve özel adla) Dosya Gezgini'nin gezinti bölmesinde görünmesine neden olur.
- Dosya Gezgini bağlam menüleri:
- Eşitleme kökünün bulut dosyaları API'sine kaydedilmesi, Dosya Gezgini'nin bağlam menüsünde kullanıcının dosyasının hidrasyon durumunu denetlemesine olanak sağlayan çeşitli fiilleri (menü girişleri) otomatik olarak sağlar.
- Masaüstü Köprüsü uyumlu API'ler kullanılarak bağlam menüsünün bu bölümüne ek fiiller eklenebilir.
- Dosya hidrasyonunun kullanıcı denetimi:
- Kullanıcılar, dosyalar kullanıcı tarafından açıkça sulanmasa bile dosya hidrasyonunu her zaman denetler. Kullanıcıyı uyarmak ve seçenekler sağlamak için arka plan hidrasyon için etkileşimli bir bildirim gösterilir. Aşağıdaki görüntüde, bir nemlendirme dosyası için bildirim gösterilmektedir.
- Bir kullanıcı etkileşimli bir bildirim aracılığıyla bir uygulamanın dosyaları nemlendirmesini engellerse, Ayarlar'dakiOtomatik dosya indirmeleri sayfasında uygulamanın engelini kaldırabilir.
- Kullanıcılar, dosyalar kullanıcı tarafından açıkça sulanmasa bile dosya hidrasyonunu her zaman denetler. Kullanıcıyı uyarmak ve seçenekler sağlamak için arka plan hidrasyon için etkileşimli bir bildirim gösterilir. Aşağıdaki görüntüde, bir nemlendirme dosyası için bildirim gösterilmektedir.
- Kopyalama altyapısı işlemlerini bağlama (Windows 10 Insider Preview Derlemesi 19624 ve sonraki sürümlerde desteklenir):
- Bulut depolama sağlayıcıları, senkronizasyon kökünde dosya işlemlerini izlemek için bir kabuk kopyalama kancası kaydedebilir.
- Sağlayıcı, kopyalama kancasını, eşitleme kök kayıt defteri anahtarının altındaki CopyHook kayıt defteri değerini, COM yerel sunucu nesnesinin CLSID'sine ayarlayarak kaydeder. Bu yerel sunucu nesnesi IStorageProviderCopyHook arabirimini uygular.
- Dosya paylaşımı (Windows 11 sürüm 21H2 ve sonraki sürümlerde desteklenir):
- Bulut depolama sağlayıcıları, kullanıcı eşitleme kökü altındaki bir bulut dosyasında "Paylaş" komutunu seçtiğinde çağrılacak bir paylaşım işleyicisi kaydedebilir.
- Sağlayıcı, eşitleme kök kayıt defteri anahtarının altındaki ShareHandler kayıt defteri değerini COM yerel sunucu nesnesinin CLSID değerine ayarlayarak paylaşım işleyicisini kaydeder. Bu yerel sunucu nesnesi IExplorerCommand arabirimini uygular.
Masaüstü Köprüsü
- Bulut dosyaları API'lerini kullanan eşitleme altyapıları, uygulama gereksinimi olarak Masaüstü Köprüsü'nü kullanacak şekilde tasarlanmıştır.
Bulut Yansıtma örneği
Cloud Mirror örneği, bulut dosyaları API'sini kullanan bir çözümün nasıl derlendiğini gösterir. Üretim kodu olarak kullanılması amaçlanmamıştır. Sağlam hata işleme özelliğinden yoksundur ve mümkün olduğunca kolay anlaşılacak şekilde yazılmıştır. Buna Cloud Mirror adı verilir çünkü yalnızca yerel diskinizde yerel bir klasörü yansıtır. Bulut dosyaları sunucunuzu temsil etmeye yönelik bir sunucu klasörü ve eşitleme kök yolunu belirtmeye yönelik bir istemci klasörü belirtirsiniz. Dosya Gezgini'ndeki gezinti bölmesinde TestStorageProviderDisplayName adlı bir üst düzey düğüm görüntülenir ve bu düğüm belirtilen istemci klasörüne eşlenir.
Eşitleme söz konusu olduğunda, tam olarak geliştirilmiş bir bulut dosyaları eşitleme sağlayıcısının uygulaması gerekenler şunlardır:
- Eşitleme kök dosyası yalnızca bir yer tutucu olduğunda, hizmet dosyanın içeriğini hidrasyon için kopyalamakla sorumludur. Bu, örnekte uygulanır.
- Eşitleme kök dosyası tam bir dosya olduğunda ve bulut hizmetindeki dosyanın içeriği değiştiğinde, hizmet değişikliği yerel eşitleme istemcisine bildirmekle sorumludur ve yerel eşitleme istemcisi kendi belirtimlerine göre birleştirmeleri işlemelidir. Bu örnekte uygulanmaz.
- Eşitleme kök dosyası tam bir dosya olduğunda ve eşitleme kök yolundaki (yerel istemci) dosyanın içeriği değiştiğinde, yerel eşitleme istemcisinin bulut hizmetine bildirmesi ve birleştirmeleri kendi belirtimlerine göre işlemesi gerekir. Yerel dosya değişikliği bildirimi örnekte uygulanır, ancak hiçbir şey yapmaz.
Örneği kullanma
- Yerel sabit sürücünüzde iki klasör oluşturun. Bunlardan biri sunucu, diğeri de istemci olarak hareket eder.
- Sunucu klasörüne bazı dosyalar ekleyin. İstemci klasörünün boş olduğundan emin olun.
- Cloud Mirror örneğini Visual Studio'da açın. CloudMirrorPackage projesini başlangıç projeniz olarak ayarlayın ve örneği derleyip çalıştırın. Örnek istendiğinde, sunucu ve istemci klasörlerinizin iki yolunu girin. Bundan sonra tanılama bilgilerini içeren bir konsol penceresi görürsünüz.
- Dosya Gezgini'ni açın ve TestStorageProviderDisplayName düğümünü ve sunucu klasörüne kopyaladığınız tüm dosyaların yer tutucularını gördüğünüzden emin olun. Seçiciyi kullanmadan dosyaları açmaya çalışan bir uygulamanın benzetimini yapmak için sunucu klasörüne birkaç görüntü kopyalayın. Eşitleme kök klasörünüzde bunlardan birine çift tıklayın ve bunun nemlendiğini onaylayın. Ardından Fotoğraflar uygulamasını açın. Uygulama, kullanıcının diğer resimlere bakarken gecikme yaşamama olasılığını daha yüksek hale getirmek için arka planda bitişik dosyaları önceden yükler. Arka planda dehidrasyon işleminin bildirim yoluyla veya Dosya Gezgini'nde gerçekleştiğini görebilirsiniz.
- Bir bağlam menüsü açmak için Dosya Gezgini'nde bir dosyaya sağ tıklayın ve TestCommand menü öğesini gördüğünüzden emin olun. Bu menü öğesine tıklanırken bir ileti kutusu görüntülenir.
- Örneği durdurmak için odağı konsol çıkışına ayarlayın ve Ctrl-C tuşlarına basın. Bu işlem, sağlayıcının kaldırılabilmesi amacıyla eşitleme kök kaydını temizleyecektir. Örnek kilitlenirse, eşitleme kökü kayıtlı olarak kalabilir. Bu, Dosya Gezgini'nin herhangi bir şeye her tıkladığınızda yeniden başlatılmasına neden olur ve sahte istemci ve sunucu konumları istenir. Bu durumda CloudMirrorPackage örnek uygulamasını bilgisayarınızdan kaldırın.
Örnek mimari
Örnek kasıtlı olarak basittir. Örnek işaretçilerini geçirmeyi gereksiz hale getirmek için statik sınıflar kullanır. Örnekteki ana sınıflar şunlardır:
-
FakeCloudProvider: Bu üst düzey sınıf aşağıdaki çalışan sınıflarını denetler:
- CloudProviderRegistrar: Senkronizasyon kök bilgilerini Windows Kabuk'a kaydeder.
- Yer tutucular: Eşitleme kök yolunda yer tutucu dosyalarını oluşturur.
- ShellServices: Bağlam menüsü, küçük resimler ve diğer hizmetler için Windows Kabuğu sağlayıcılarını oluşturur.
- CloudProviderSyncRootWatcher: Eşitleme kök yolundaki değişiklikleri izlemek ve bu değişiklikler üzerinde işlem yapmak üzere bir DirectoryWatcher örneği oluşturur.
- FileCopierWithProgress: Dosyaları sunucu klasöründen istemci klasörüne yavaş yavaş kopyalayarak gerçek bir bulut sunucusundan indirme simülasyonu oluşturur. İlerleme göstergesi sağlayarak, bildirim ve Dosya Gezgini kullanıcı arabiriminin kullanıcıya bilgilendirici bir şey göstermesine olanak tanır.
Yukarıdaki sınıflara ek olarak, örnek kullanıcıdan klasörler ve bazı yardımcı programlar istemesi için çeşitli yardımcı sınıflar da sağlar. TestExplorerCommandHandler, CustomStateProvider, ThumbnailProvider ve UriSource, bir kabuk hizmeti sağlayıcısına örnektir.
Bulut dosyaları API mimarisi
Bulut dosyaları API'sindeki depolama yığınının merkezinde cldflt.sysadlı bir dosya sistemi mini filtre sürücüsü bulunur. Bu sürücü, kullanıcının uygulamalarıyla eşitleme altyapınız arasında ara sunucu işlevi görür. Eşitleme altyapınız verileri isteğe bağlı olarak indirmeyi ve karşıya yüklemeyi bilirken, dosyaları bulut verileri yerel olarak kullanılabilirmiş gibi sunmak için Shell ile çalışmak cldflt.sys sorumluluğundadır.
Cldflt.sys şu anda yalnızca NTFS birimlerini destekler çünkü NTFS'ye özgü bazı özelliklere bağlıdır.
Bir sistemde birçok dosya sistemi mini filtre sürücüsü vardır ve bunlar aynı anda belirli bir birimde etkin olabilir. Bulut dosyaları API'sine en çok ilgi gösteren sürücüler virüsten koruma dosya sistemi filtreleridir.
Dosya sistemi mini filtre sürücüleri, filtre yöneticisi adı verilen özel bir çekirdek modu bileşeni tarafından yönetilir ve desteklenir. Diğer birçok görev arasında, filtre yöneticisi filtre iletisi bağlantı noktası olarak bilinen bir yapı aracılığıyla filtreler ve kullanıcı modu bileşenleri arasında filtrelenmemiş iletişimi kolaylaştırır.
Hidrasyon İlkeleri
Windows, çeşitli birincil hidrasyon ilkelerini ve ikincil hidrasyon ilkesi değiştiricilerini destekler. Birincil hidrasyon ilkeleri şu sıraya sahiptir:
Her zaman tam > Tam > Aşamalı > Kısmi
Hem uygulamalar hem de eşitleme motorları tercih ettikleri birincil hidrasyon ilkesini tanımlayabilir. Belirtilmezse, varsayılan hidrasyon ilkesi hem uygulamalar hem de eşitleme motorları için aşamalıdır.
Bulut dosyasının hidrasyon ilkesi, dosya açık zamanında şu formülle belirlenir:
File hydration policy = max(app hydration policy, provider hydration policy)
Örneğin, kullanıcının Tercih edilen bir hidrasyon ilkesi belirtmeyen Contoso PDF Görüntüleyicisi'ni kullanarak Fabrikam Cloud Drive'da depolanan bir PDF dosyasını açmaya çalıştığını düşünelim. Bu nedenle uygulama hidrasyon ilkesi, bu durumda varsayılan olarak aşamalı hidrasyondur. Ancak Fabrikam Cloud Drive tam bir hidrasyon eşitleme altyapısı olduğundan, dosyadaki son hidrasyon ilkesi tam hidrasyon haline gelir ve bu da dosyanın ilk erişimde tamamen nemlendirilmesine neden olur. Eşitleme altyapısının aşamalı hidrasyon desteğine sahip olduğu durumlarda da aynı sonuç ortaya çıkar, ancak uygulamanın tercihi tam hidrasyondur.
Dosya açıldıktan sonra dosya hidrasyon ilkesinin değiştirilemeyeceğini unutmayın.
Yeniden ayrıştırma noktaları kullanan uygulamalarla uyumluluk
Bulut dosyaları API'si , yeniden ayrıştırma noktalarını kullanarak yer tutucu sistemi uygular. Yeniden ayrıştırma noktalarıyla ilgili yaygın bir yanılgı, sembolik bağlantılarla aynı olmalarıdır. Bu yanlış anlama bazen uygulama uygulamalarına yansıtılır ve sonuç olarak, mevcut uygulamaların çoğu herhangi bir yeniden ayrıştırma noktasıyla karşılaştığında hatalarla karşılaşır.
Bu uyumluluk sorununu azaltmak için bulut dosyaları API'si, ana görüntüsü %systemroot%altında yer alan eşitleme altyapıları ve işlemler dışındaki tüm uygulamalardan ayrıştırma noktalarını her zaman gizler. Yeniden ayrıştırma noktalarını doğru anlayan uygulamalar, platformu bulut dosyaları API'sinin yeniden ayrıştırma noktalarını kullanıma sunmaya zorlamak için RtlSetProcessPlaceholderCompatibilityMode veya RtlSetThreadProcessPlaceholderCompatibilityMode kullanabilir.
Bulut dosyaları arama
Bulut dosyaları araması Windows 11, sürüm 24H2 ve sonraki sürümlerde Copilot+ bilgisayarlarda veya yapay zeka özellikli Bulut bilgisayarlarda desteklenir. Bulut depolama sağlayıcılarının Windows Search deneyimiyle tümleştirmesi için aşağıdaki özellikler kullanılabilir:
- Bulut depolama sağlayıcıları, eşitleme kökleri için bir dosya arama işleyicisi kaydederek arama sonuçlarını Dosya Gezgini ve Windows Search'e katkıda bulunmalarını sağlayabilir.
- Bulut depolama sağlayıcıları, kayıt defterlerindeki eşitleme kökü anahtarlarının altında bulunan SearchHandlerFactory kayıt defteri değerini, COM yerel sunucu nesnesinin CLSID’sine ayarlayarak bir arama işleyicisi kaydeder. Bu yerel sunucu nesnesi IStorageProviderSearchHandlerFactory arabirimini uygular.
- IStorageProviderSearchHandlerFactory, IStorageProviderSearchHandler uygulamasını oluşturur. Bu IStorageProviderSearchHandler uygulaması, bulutta yerel olarak kullanılamayabilecek dosyaları aramak için bulut sağlayıcısının arama hizmetini çağırır.
- Windows Search deneyimi, arama sırasında Find yöntemini çağırır ve sonuçları yerel arama dizin oluşturucusundan gelen sonuçlarla bir araya getirir.
İlgili içerik
Windows Search ile bulut dosyaları sağlayıcısı tümleştirmesi