Je travaille sur le développement d'une application qui effectuera une sauvegarde en ligne des fichiers et dossiers dans le PC, automatiquement ou manuellement. Actuellement, je ne gardais que la dernière version du fichier sur le serveur. Maintenant, je dois implémenter le versioning de sorte que seuls les changements peuvent être transférés sur le serveur en ligne et l'utilisateur doit être capable de télécharger n'importe quelle version disponible du fichier sur le serveur de sauvegarde.besoin d'implémenter le versioning dans l'outil de sauvegarde en ligne
Je dois effectuer une déduplication pour cela. Les gars, bien que je suis capable de l'exécuter en utilisant la taille de bloc fixe, mais face à une surcharge de transférer le fichier ayant des informations de CRC avec chaque sauvegarde de version.
Je n'ai jamais travaillé sur une telle technologie, donc manque d'expérience. Je suis impatient de savoir s'il existe une méthode réalisable pour intégrer cette fonctionnalité dans l'application sans trop de douleur. Est-ce qu'un outil tiers aiderait à faire la même chose? S'il vous plaît, faites-moi savoir?
Remarque: J'utilise le protocole FTP pour transférer les données.
Oui, je fais des recherches depuis la semaine dernière. Qu'est-ce que j'ai trouvé une solution où, je suis en bloc compte tenu du fichier et pour chaque version j'ai une structure_string (pour garder une trace de la disponibilité des blocs, de sorte qu'ils peuvent être atteints des versions précédentes) + une liste compilée de CRC de chaque bloc, de sorte que cette liste peut être téléchargée et comparée avec la liste de la version actuelle pour découvrir la différence. Je dois confirmer que mon approche est correcte et comment ils sont implémentés dans le monde réel? – Sumeet
Je suis sûr que ça peut marcher, mais ce n'est pas idéal. Comme je l'ai dit, certains types de changements vous obligeront à transférer le fichier entier (qui pourrait être GB) pour un changement d'un octet. Selon la taille du bloc, cela peut être des milliers ou des millions de blocs en double (chacun un fichier?) Sur votre serveur, ce qui rendra les listes de répertoires inutilement lentes. Je voudrais regarder le "delta encoding" lien sur la page rsync. Cela vous permet d'envoyer uniquement les parties du fichier qui ont réellement changé. Beaucoup de travail a été fait pour rendre cela efficace. Le code de dump et rsync est disponible pour regarder aussi bien. –
J'ai commencé à travailler sur le code Rsync. Qu'est-ce que tu penses? cela serait-il utile? – Sumeet