powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как синхронизировать папки по интернету?
17 сообщений из 17, страница 1 из 1
Как синхронизировать папки по интернету?
    #39822800
frizz_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю программку для синхронизации файлов по сети наподобие майл облака.
С синхронизацией файлов справился:
Программка работает следующим образом:1 сервер и несколько клиентов. Соединение по indy tcp.
1.Сначала у клиента получаем список файлов и заносим его в sqlite базу. Причем заодно сравниваем с существующим списком файлов в бд: если не совпадает размер или дата изменения файла - ставим отметку(в бд), что файл изменен и его нужно отправить на сервер, если файл есть в бд, но нет в каталоге - удаляем из базы+ ставим отметку на удаление файла из сервера.
2. Соединяемся с сервером, получаем список файлов, сравниваем со списком бд, при этом производим необходимые действия - обновляем, либо удаляем файлы либо на сервере, либо у клиента.

Проблема в синхронизации самих каталогов: допустим у клиента есть пустой каталог "Новая папка", 1 этап- вносим папку в бд.
2. синхронизируемся с сервером -> теперь серверная часть создает папку "Новая папка" у себя. Тут вроде все логично.
3. например я удаляю данную папку у клиента и создаю заново с тем же названием. (Получилось так что вроде папка та же, но экземпляр уже другой).
По логике - на сервере старая "Новая папка" должна обновиться. Но как у клиента унифицировать папку - непонятно.
Если б у каждой папки был свой id или guid - проблем бы не было - клиент сканирует свой каталог, видит в нем "Новую папку" - сравнивает id - если не совпадает - ставит отметку, что папка обновлена и ее нужно обновить и на сервере.
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822808
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frizz_,

чем же папка отличается от файла? Почему к папке отдельный подход? Если удалить у клиента файл, а потом создать с таким же именем, то файл будет таким же или другим?
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822810
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frizz_,

У папок/файлов - есть время создания.
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822812
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут непонятна цель всего задуманного. Сначала определись с целями, терминологией, а потом уже берись за планирование и реализацию.

Например для файловой системы клиента глубоко фиолетово была ли папка удалена и создана заново или нет. Это всё равно одна и та же папка.

Сложнее если папка была переименована, тогда (по идее) не надо повторно загружать на сервер уже сохранённые файлы. С другой стороны если файлы небольшие - пофиг - синхронизируй всё. Если файлы большие, то можно подумать о хешировании файлов и проверки наличия их на сервере без загрузки.

В папку как вариант при первой синхронизации можно сохранять идентификатор папки и просить пользователей не баловаться с этими идентификаторами. В общем успехов в создании своего GIT-a. :-)
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822814
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frizz_Если б у каждой папки был свой id или guid - проблем бы не было

У тебя удачный день, у них таки есть id.
http://delphi.cjcsoft.net/viewthread.php?tid=46358
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822873
frizz_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45frizz_,

чем же папка отличается от файла? Почему к папке отдельный подход? Если удалить у клиента файл, а потом создать с таким же именем, то файл будет таким же или другим?

1. Отличается тем, что в файле есть некое содержимое и оно может отличаться, то есть файл 1.txt= 12kb, а новый 1.txt=13kb, а старую "новая папку" я не могу отличить по размеру от новой "новой папки".
2. Отличается тем, что -> у клиента время изменения файла 01:01:01. В какой то момент программа отправляет файл серверу (когда появился интернет например). на сервере -дата изменения файла будет дата его получения: например 02:02:02. Хорошо, вместе с файлом отправляем и время его изменения на клиенте, получится что сервер получил в 02:02:02, но принудительно изменил атрибуты на 01:01:01. Это работает с файлами, но не с папками, допустим я поменял атрибут папки: выставил ему время изменения как у клиента но!- если в папку положить файл - изменится дата изменения папки, хотя саму папку я вроде как не менял (хотя на самом деле - копируя файл в папку - мы всего лишь добавляем запись в папку, то есть папка это тоже файл), как итог - при следующей синхронизации клиент видит что время изменения папки на сервере изменилось, значит его обновил другой клиент! надо закачать, хотя инициатор он сам же. Проблема в том, что сложно отслеживать время изменения каждой папки, в которых меняются файлы. Ищу идею, как бы обойтись без привязки синхронизации по времени(для папок), то есть однозначно синхронизировать папки ежду сервером и клиентом, игнорируя атрибуты времени. Программа как то должна понимать...блин, я запутался.
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822886
frizz_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimonkaНапример для файловой системы клиента глубоко фиолетово была ли папка удалена и создана заново или нет. Это всё равно одна и та же папка.

Не совсем:
1. Создаем папку у клиента
2. Вносим запись в бд + пометку, что ее нужно синхронизировать.
3 Синхронизируем, ставим отметку, что папка есть на сервере.
4. Удаляем папку у клиента(синхронизации еще нет)
5. На клиенте2 обновляем папку, синхронизируем, теперь на сервере это уже другая папка.
6. клиент1 подключается к сети - папка помечена на удаление, но на сервере уже не та папка.
DimonkaСложнее если папка была переименована, тогда (по идее) не надо повторно загружать на сервер уже сохранённые файлы. С другой стороны если файлы небольшие - пофиг - синхронизируй всё. Если файлы большие, то можно подумать о хешировании файлов и проверки наличия их на сервере без загрузки. Для этого сделал "теневую папку", куда перемещаются все, что удалено и переименовано. Файлы синхронизируются заново. Пока лучше ничего не придумал.
DimonkaВ папку как вариант при первой синхронизации можно сохранять идентификатор папки и просить пользователей не баловаться с этими идентификаторами. В общем успехов в создании своего GIT-a. :-) там папки со множественными вложениями и подпапками, да и вообще - влезать со своими файлами в чужие файловые структуры - нехорошо.
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822890
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем все эти лисапеды?
или это курсач?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822891
frizz_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovfrizz_Если б у каждой папки был свой id или guid - проблем бы не было

У тебя удачный день, у них таки есть id.
http://delphi.cjcsoft.net/viewthread.php?tid=46358

Спасибо мил человек, пока на ум приходит только одно - если эта функция работает - разместить его на сервере - клиент синхронизируется, новая папка создается на сервере, тут же получает этот id и отправляет его клиенту. Клиент прописывает его в в своей базе, в записи "Новая папка"... дальше пока не сообразил.
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822896
frizz_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящийзачем все эти лисапеды?
или это курсач?
битторентсюнч - скорость низкая, майл облако - ограничение
в размере передаваемого файла+ ограничение совокупного объема
нормальных бесплатных синхронизаторов не нашел, да и не подходят они мне.
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822898
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.06.2019 15:17, frizz_ пишет:
> тут же получает этот id и отправляет его клиенту.

тот Id и этот Id, это разные Id.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822900
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.06.2019 15:21, frizz_ пишет:
> нормальных бесплатных синхронизаторов не нашел, да и не подходят они мне.

поставь себе SFTP и не изобретай лисапеды.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822918
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frizz_нормальных бесплатных синхронизаторов не нашел

Ну и чем тебе rsync не подходит?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822921
frizz_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovfrizz_Если б у каждой папки был свой id или guid - проблем бы не было

У тебя удачный день, у них таки есть id.
http://delphi.cjcsoft.net/viewthread.php?tid=46358

Ура, функция работает и у вновь созданной папки показывает другой id. Еще раз благодарю.
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39822965
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frizz_Dimitry Sibiryakovпропущено...

У тебя удачный день, у них таки есть id.
http://delphi.cjcsoft.net/viewthread.php?tid=46358

Ура, функция работает и у вновь созданной папки показывает другой id. Еще раз благодарю.про привелегии не забудь
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39823345
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не воспользоваться готовым решением, например mega.nz?
...
Рейтинг: 0 / 0
Как синхронизировать папки по интернету?
    #39823346
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frizz_нормальных бесплатных синхронизаторов не нашел, да и не подходят они мне.

для начала надо бы озвучить требования
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как синхронизировать папки по интернету?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]