Introducción a la sincronización de archivos
Sync Framework incluye un proveedor de sincronización de archivos que extiende el objeto UnmanagedSyncProviderWrapper (en código administrado) o la interfaz IKnowledgeSyncProvider (en código no administrado) para simplificar la creación de una aplicación que sincroniza archivos y carpetas entre sistemas de archivos.
Crear e inicializar el proveedor
Código administrado Una aplicación crea un objeto FileSyncProvider. Las rutas de acceso y las opciones de configuración se especifican en el constructor.
Código no administrado Una aplicación crea un objeto IFileSyncProvider pasando CLSID_FileSyncProvider e IID_IFileSyncProvider a CoCreateInstance. Las rutas de acceso y las opciones de configuración se especifican llamando al método Initialize.
Las rutas de acceso que se especifican cuando se crea o se inicializa el proveedor definen la carpeta raíz para la sincronización, y la carpeta y el nombre de archivo en que los metadatos de sincronización están almacenados. Opcionalmente, la aplicación también puede especificar una carpeta para almacenar los archivos temporales, y una carpeta para los archivos de almacenamiento que se actualizan a causa de un conflicto. Las rutas de acceso deben ser válidas y existir antes de que se inicialice el proveedor.
Nota
En todos los métodos del proveedor de sincronización de archivos, las rutas de acceso no pueden superar el valor de MAX_PATH.
Se puede especificar un conjunto de marcas de configuración cuando se crea o se inicializa el proveedor. Estas marcas modifican el comportamiento del proveedor de varias maneras; por ejemplo, mejorando la detección de los cambios mediante el cálculo de un valor hash para cada archivo, o moviendo los archivos eliminados a la papelera de reciclaje en lugar de eliminarlos de forma definitiva. Estas marcas están representados por FileSyncOptions (en el código administrado) o FILESYNC_INIT_FLAGS (en el código no administrado).
Una vez creados e inicializados los proveedores de origen y de destino, se pueden pasar a una sesión de sincronización y se puede iniciar la sincronización.
Atributos de archivo
Sync Framework reconoce exclusivamente los siguientes atributos de archivo y carpeta:
FILE_ATTRIBUTE_DIRECTORY
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_SYSTEM
FILE_ATTRIBUTE_TEMPORARY
Otros atributos de archivo se omiten y no se propagan.
Seguridad y cifrado
El proveedor no realiza ninguna autenticación en las carpetas implicadas en la sincronización. La aplicación debe autenticar las carpetas que se utilizan antes de pasarlas al proveedor.
No se propaga la información de seguridad, como la lista de control de acceso discrecional (DACL). Corresponde a la aplicación o al usuario proteger correctamente las carpetas de destino para ayudar a evitar el acceso no autorizado.
Los archivos de una carpeta cifrada se descifran antes de enviarse y no se cifrarán en la carpeta de destino. Tenga en cuenta que esto significa que aunque la carpeta de origen esté cifrada, los archivos no estarán cifrados todavía al enviarse. Para ayudar a evitar el acceso no autorizado o la manipulación, el canal de comunicación entre el proveedor y la carpeta debe ser de confianza.
Los metadatos de sincronización y los archivos temporales se almacenan en las carpetas especificadas cuando se inicializa el proveedor. Estas carpetas se deben proteger apropiadamente y la carpeta temporal debe limpiarse para evitar la divulgación de información no deseada, porque estos archivos pueden contener datos del usuario.
Garantía de coherencia
Sync Framework garantiza que, cuando el proveedor de sincronización de archivos aplica un cambio, si no se puede aplicar todo el contenido de una secuencia de archivo, no se aplica ningún contenido. Esto se hace en parte abriendo los archivos en modo de recurso compartido exclusivo. Esto significa que ninguna otra aplicación podrá abrir o eliminar el archivo hasta que su identificador se cierre. Para obtener más información, vea la función CreateFile en la documentación de Microsoft Win32.
Si el archivo no se puede abrir en modo de recurso compartido exclusivo, se omitirá. La omisión se registrará en los metadatos para que se pueda procesar apropiadamente en sesiones futuras.
Almacenamiento de los metadatos
El proveedor de sincronización de archivos usa Metadata Storage Service para almacenar todos los metadatos de sincronización en un almacén de datos personalizado. El almacén de metadatos es un archivo. Este archivo puede estar almacenado con los archivos y las carpetas que se van a sincronizar o en otra ubicación que se especifica al inicializar el proveedor. Para obtener más información sobre los componentes de Metadata Storage Service, vea Sync Framework Metadata Storage Service.
Hacer copia de seguridad y restaurar una réplica del sistema de archivos
Cuando se restaura una réplica del sistema de archivos desde una copia de seguridad, se pueden producir problemas con la sincronización. Por ejemplo, los cambios locales que se efectuaron después de la restauración podrían no propagarse a otras réplicas. Esto puede producirse porque el contador usado para asignar versiones a los cambios en la réplica de origen puede hacer que sean detectados como obsoletos por otras réplicas.
Para asegurarse de que no se produzca esta situación, cuando se restaure una réplica del sistema de archivos desde una copia de seguridad descarte los metadatos de la sincronización y trate la réplica como si fuera nueva, asignándole un nuevo identificador de réplica. Entonces el proveedor de sincronización de archivos podrá crear los metadatos de la sincronización para la réplica y sincronizarla correctamente con las otras réplicas de la comunidad.
Vea también
Referencia
Interfaz IFileSyncProvider
Enumeración FILESYNC_INIT_FLAGS
FileSyncProvider
FileSyncOptions