ODrive : Personnalisation des règles de synchronisation et des paramètres avancés

ODrive, un client graphiqeu pour Google Drive, offre des fonctionnalités étendues pour une synchronisation de fichiers personnalisée. Ce guide explique comment configurer des règles de synchronisation et des paramètres avancés via l'interface et les fichiers de configuration, optimisant ainsi la gestion des fichiers dans le cloud.

Accéder à l'interface des paramètres avancés

Pour démarrer la personnalisation, ouvrez la page des paramètres. Dans l'écran initial, cliquez sur le bouton "Suivant" :

<a class="btn btn-primary" href="/settings">Suivant</a>

L'interface est pilotée par le script app/assets/javascript/settings.js, qui gère les interactions utilisateur et le contrôle de la synchronisation. Elle permet de définir les répertoires, d'activer les options avancées et de surveiller l'état de la synchronisation.

Configuration du répertoire de synchronisation local

ODrive autorise le choix d'un répertoire local pour la synchronisation. Le code ci-dessous traite la sélection via un sélecteur de fichiers et enregistre le chemin dans la configuration du compte :

function updateSyncFolder(profile) {
  const fileList = document.getElementById('inputFile').files;
  if (!fileList || fileList.length === 0) return;
  const chosenPath = fileList[0].path;
  document.getElementById('pathDisplay').textContent = chosenPath;
  profile.syncDirectory = chosenPath;
}

Lors de la sélection, considérez l'espace de stockage disponible, évitez les répertoires système, et privilégiez un dossier dédié et accessible.

Paramètres de suppression avancés : suppression permanente vs corbeille

ODrive propose deux stratégies de suppression, configurables via une case à cocher :

function setDeletePolicy(account, enablePermanent) {
  account.isPermanentDelete = enablePermanent;
  ipc.send('delete-policy-change', { userId: account.id, permanent: enablePermanent });
}

Cette configuration influence le comportement de suppression :

  • Suppression permanente : activée, les fichiers sont retirés définitivement de Google Drive.
  • Déplacement vers la corbeille : désactivée, les fichiers sont placés dans la corbeille avec possibilité de récupération pendant 30 jours.

Dans app/core/sync.js, la logique d'exécution est :

if (this.account.isPermanentDelete) {
  await this.removeFilePermanently(fileId);
} else {
  await this.moveFileToTrash(fileId);
}

Optimisation des règles de synchronisation : filtrage des fichiers

Par défaut, ODrive ignore les fichiers sans information de taille (typiquement les documents Google en ligne). Cette logique est implémentée dans la méthode shouldExcludeFile :

shouldExcludeFile(fileInfo) {
  if (fileInfo.id === this.rootFolderId) return true;
  if (this.isFolder(fileInfo)) return false;
  return !("size" in fileInfo);
}

Les utilisateurs peuvent personnaliser cette règle pour filtrer par extension de fichier, seuil de taille, ou exclure des fichiers temporaires ou de cache.

Astuces pour optimiser les performances de synchronisation

Pour améliorer l'efficacité, ODrive utilise des optimisations intégrées que l'on peut ajuster :

  1. Contrôle des téléchargements parallèles : par défaut, 10 fichiers sont téléchargés simultanément, configurable dans la méthode ParallelDownloadFlow : ``` for (let counter = 0; counter < 10; counter++) { if (queue.length >= 1) { activeQueue.push(queue.shift()); } else { break; } }
  2. Retry automatique en cas d'erreur réseau : la méthode retryOnNetworkError gère les reconnexions : ``` async retryOnNetworkError(task) { try { return await task(); } catch (error) { if (error.code !== 'ECONNRESET') throw error; } await new Promise(resolve => setTimeout(resolve, 2000)); return await task(); }
  3. Surveillance des modifications locales : le composant LocalFileMonitor détecte les changements en temps réel pour une synchronisation incrémentielle : ``` this.fileMonitor.on('add', filePath => this.schedule(() => this.processLocalAdd(filePath))); this.fileMonitor.on('unlink', filePath => this.schedule(() => this.processLocalDelete(filePath))); this.fileMonitor.on('change', filePath => this.schedule(() => this.processLocalUpdate(filePath)));
    
    

Surveillance de l'état de synchronisation et résolution des problèmes

ODrive fournit un retour en temps réel sur la synchronisation via l'interface :

ipc.on('sync-feedback', (event, data) => {
  const { progress } = data;
  document.getElementById('syncStatus').textContent = progress;
});

Problèmes courants et solutions :

  • Synchronisation bloquée : relanccez-la via le bouton "Synchroniser".
  • Conflits de fichiers : vérifiez les modifications simultanées par d'autres applications.
  • Espace disque insuffisant : libérez de l'espace ou changez le répertoire de synchronisation.
  • Problèmes réseau : assurez une connexion stable, surtout pour les fichiers volumineux.

Étiquettes: ODrive google drive synchronisation JavaScript Electron

Publié le 29 juin à 21h45