Сервисы синхронизации, такие как Dropbox, теория индексации файлов? - PullRequest
2 голосов
/ 10 февраля 2011

Я понял, что, используя сервис Amazon S3 напрямую, я могу сэкономить много денег.Вместо покупки такого клиента, как GoodSync или Jungle Disk, я подумал, что было бы интересно создать собственное приложение для синхронизации Windows, которое синхронизировало бы мои файлы с S3.

Я обнаружил, что могу использовать FileSystemWatcher для мониторингадля изменений в файлах и каталогах, но я ищу теорию того, как другие сервисы, такие как Dropbox, индексируют свои файлы.Такие вещи, как сравнение размера файла с размером, записанным в индексе где-либо на клиентском ПК, затем использование этой информации для определения, выполнять синхронизацию или нет.

Я использую C # и ссылки на разные библиотеки илиПримеры кода, которые я мог бы использовать, были бы полезны, но я в основном ищу лучший способ индексировать файлы и чтобы кто-то указывал мне правильное направление.

Спасибо

1 Ответ

1 голос
/ 02 марта 2011

Я сам пошел по этому пути.Фактически, теперь, когда Mozy отказался от своего неограниченного плана, а Carbonite решил НЕ делать резервные копии определенных файлов ... таких как файлы 3GP и файлы * .dat, если вы не заходите и не добавляете их вручную, я очень недоволен онлайн-резервным копированием.

Но ваш вопрос был о синхронизации.Dropbox делает это лучше всего.Но это дорого.Но я не уверен, что S3 будет дешевле.

В любом случае, у вас будет много препятствий.По моему опыту, проблемы, с которыми я столкнулся:

1) Распространение удаляет

2) FileSystemWatcher просто пропускает события, такие как быстрое добавление файлов в папку и удаление их

3) и т. Д.

Теперь некоторые идеи о том, как I снова решит эту проблему:

1) Сохраните небольшую базу данных SQLite для имен файлов / пути локально 2) Скопируйтефайлы в каталог tmp перед отправкой на S3.3) В файлах изменений / обновлений / удалений / и т.д. сохраните эту мета-информацию в SQLite

В любом случае, просто некоторые идеи.

...