C# Microsoft Sync Framework - хранилище метаданных на сервере WebDAV
Я хотел бы реализовать простой пользовательский поставщик для синхронизации файлов между локальными файлами и сервером webdav с помощью Microsoft Sync Framework. Единственный пример для простого провайдера синхронизации файлов, который я нашел, предназначен для локального использования: https://code.msdn.microsoft.com/windowsdesktop/File-Sync-with-Simple-c497bf87/sourcecode?fileId=19013&pathId=1569663015
Моя проблема в том, что я не знаю, как настроить MetadataStore для сохранения на удаленном сервере. Вот некоторые изменения, которые я сделал в коде:
public MySimpleSyncFileProvider(Guid guidReplica, string rootFolder)
{
this._replicaId = new SyncId(guidReplica);
this._rootFolder = "/";
// Find location for metadata store
string metaDir = Path.Combine(_rootFolder, ".metadata");
WebDAV.CreateDirectory(metaDir);
WebDAV.SetAttributes(metaDir, WebDAVFileAttribute.isHidden);
string metadataPath = Path.Combine(_rootFolder, ".metadata\\filemeta");
// Open it
if (WebDAV.Exists(metadataPath))
this._metadataStore = SqlMetadataStore.OpenStore(metadataPath); //TODO
else
this._metadataStore = SqlMetadataStore.CreateStore(metadataPath); //TODO
}
Мне пришлось бы изменить методы "OpenStore" и "CreateStore", но я не смог перезаписать SqlMetadataStore.
У вас есть какие-нибудь предложения? Или, может быть, пример, как реализовать пользовательский FileSyncProvider для сервисов webdav?
Пожалуйста, помогите мне.
1 ответ
Я исправил эту проблему, просто сохранив файлы MetadataStore на локальном компьютере и используя сетевые ресурсы.