Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как отследить копирование файла? / 25 сообщений из 33, страница 1 из 2
27.07.2016, 17:26
    #39281429
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Есть куча копий проги, каждая со своей локальной БД, надо в случае ее копирования сменить GUID БД. Копируют юзеры - как умеют.
Копирование чаще для переноса на другой комп, но если тут GUID поменяется, то не страшно.
Ломаю голову как бы это сделать автоматом.
Единственное что придумал: задействовать потоки NTFS, они теряются при копировании на флэшку с FAT32, теряются при копировании Far`ой. Но отлично копируются проводником.
...
Рейтинг: 0 / 0
27.07.2016, 17:30
    #39281432
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dima T,

Видится какое-то локальное хранилище (сайт к примеру), которое отдает пакет в виде прога + БД с измененным GUID.
...
Рейтинг: 0 / 0
27.07.2016, 17:57
    #39281448
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
DarkMasterDima T,

Видится какое-то локальное хранилище (сайт к примеру), которое отдает пакет в виде прога + БД с измененным GUID.
Тут столько сил вложено чтобы максимально упростить перенос проги простым копированием, юзеры обучены, так что не вариант откатываться к установке с нуля.
Кроме того установка с нуля заставит юзера переносить настройки и еще кое-какую инфу, ради чего собственно копирование делается.
...
Рейтинг: 0 / 0
27.07.2016, 18:06
    #39281452
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Немного дополню ТЗ: GUID БД нужен чтобы организовать между ними репликацию, чтобы каждый юзер видел что наработали другие. И есть центральная БД, куда все юзеры сливают наработанное, и оттуда получают наработанное другими. "Оттуда" построено так что при добавлении инфы от одной БД формируется команда всем остальным БД качать эту инфу, отсюда проблема если две БД имеют один GUID, то первая отправит инфу, а вторая не получит, или первая вперед получит команду, скачает, удалит, а вторая без инфы останется.
...
Рейтинг: 0 / 0
27.07.2016, 18:14
    #39281462
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Храни GUID в реестре (GetSetting/SaveSetting), в качестве ключа используй полный UNC файла БД. Если в реестре пусто - генери новый случайный.
...
Рейтинг: 0 / 0
27.07.2016, 18:16
    #39281466
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Другой вариант - хранить список гуидов в служебной таблице (ключ тот же). Таблицу также "еплицировать".
...
Рейтинг: 0 / 0
27.07.2016, 18:37
    #39281480
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
AkinaХрани GUID в реестре (GetSetting/SaveSetting), в качестве ключа используй полный UNC файла БД. Если в реестре пусто - генери новый случайный.
Рассматриваю как вариант. Но он наихудший. БД может быть в локалке и использоваться несколькими юзерами (они внутри БД). Добавление нового юзера, вызывает смену GUID БД, а смена GUID БД вызывает смену GUID всех юзеров БД. Все БД с их юзерами хранит центральная БД, и там будет куча "мертвых душ", оно самоочистится через полгода после смены, но засирать ими не хочется.
AkinaДругой вариант - хранить список гуидов в служебной таблице (ключ тот же). Таблицу также "еплицировать".
Это не понял, можно поподробнее.
...
Рейтинг: 0 / 0
27.07.2016, 20:38
    #39281529
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
В качестве уникального ключа используй (UNC станции + UNC пользователя + UNC файла БД).
...
Рейтинг: 0 / 0
28.07.2016, 07:54
    #39281618
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Подумал, пришел к выводу что направление изначально неправильное. Задача получается гораздо шире чем отсутствие контроля за размножением копий БД.
Проблемы с данными надо решать на уровне данных, а по какой причине возникла проблема - неважно. Кроме копирования есть еще восстановления с бэкапа. Сбои сети и т.д. и т.п.

Главная проблема в возникновении рассинхронизации данных в разных копиях БД, вот ее и надо решать в первую очередь. Буду протокол репликации пересматривать, сейчас все по минимуму: все оперативно получают только новое и плюс изредка полная синхронизация. Надо какую-то контрольную инфу текущего состояния при каждом обмене передавать, чтобы центральная БД обнаруживала рассинхронизацию и давала команду на полную синхронизацию. Дальше все внештатные случаи писать в лог и по нему уже изучать и выискивать причины.
...
Рейтинг: 0 / 0
28.07.2016, 14:03
    #39281902
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dima T"Оттуда" построено так что при добавлении инфы от одной БД формируется команда всем остальным БД качать эту инфу, отсюда проблема если две БД имеют один GUID, то первая отправит инфу, а вторая не получит, или первая вперед получит команду, скачает, удалит, а вторая без инфы останется.
А ты не удаляй после скачивания. Тогда вторая сможет скачать. И приказ к скачиванию рассылай всем без исключения. БД сама способна заметить, что эти данные у ней уже есть.
...
Рейтинг: 0 / 0
29.07.2016, 10:26
    #39282477
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dima T, посмотри как утилита rsync работает. Может поможет.
...
Рейтинг: 0 / 0
29.07.2016, 10:42
    #39282499
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
maytonDima T, посмотри как утилита rsync работает. Может поможет.
rsync тут лишний, у меня до 1000 записей неизменяемых с гуидами, можно просто все гуиды запросить, сверить, которых нет - запросить по ним полную инфу. Это и есть полная синхронизация.
Можно вообще тупо каждый раз полный список гуидов выдавать, но как-то это совсем неоптимально.

Как определить что файл скопирован я придумал: у папки где он лежит есть дата создания.
...
Рейтинг: 0 / 0
29.07.2016, 10:52
    #39282508
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dima TЕдинственное что придумал: задействовать потоки NTFS, они теряются при копировании на флэшку с FAT32, теряются при копировании Far`ой. Но отлично копируются проводником.
Потоки NTFS забирает в себя WinRAR если выставлен соотв. флажок.
...
Рейтинг: 0 / 0
29.07.2016, 10:55
    #39282511
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dima TКак определить что файл скопирован я придумал: у папки где он лежит есть дата создания.
Ты немножко нас всех запутал названием темы. Ведь тебе ничего отслеживать не надо.
Тебе надо:

1) Регистрация базы на рабочей станции. Выдача персонального GUID.
2) Гарантия того что база актуализируется.

Верно?
...
Рейтинг: 0 / 0
29.07.2016, 11:50
    #39282586
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
mayton1) Регистрация базы на рабочей станции. Выдача персонального GUID.
В этом и проблема. В локалке базу могут использовать по сети. В расшаренную папку положил и можно с нескольких компов работать.
А если сеть подглючивает, админов нет, то плюют на все прелести сетевой работы и делают каждый себе копию. Бывают другие причины отказаться от сетевой работы. Вот тебе и несколько баз с одним GUID.
mayton2) Гарантия того что база актуализируется.
Верно. И как можно быстрее. Центральная БД всех заинтересованных в онлайне оповещает о наличии новой инфы.
...
Рейтинг: 0 / 0
29.07.2016, 12:29
    #39282634
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dima T, ну что я могу сказать. Совет - вынести все в веб наверное будет слишком альтруистичным?
...
Рейтинг: 0 / 0
29.07.2016, 13:06
    #39282687
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
maytonDima T, ну что я могу сказать. Совет - вынести все в веб наверное будет слишком альтруистичным?
Не, все нельзя, веб не готов к работе в режиме 24/7. Даже такие монстры как соцсети иногда падают. Да и не везде у конечных пользователей с подключением к инету все замечательно.
...
Рейтинг: 0 / 0
29.07.2016, 13:55
    #39282752
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dima TА если сеть подглючивает, админов нет, то плюют на все прелести сетевой работы и делают каждый себе копию. Бывают другие причины отказаться от сетевой работы. Вот тебе и несколько баз с одним GUID.
Иди от обратного: затачивай БД изначально на автономную работу с синхронизацией при первой появившейся возможности.
...
Рейтинг: 0 / 0
29.07.2016, 14:00
    #39282763
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Я думаю с заказчиком просто прокашлять эту тему надо. Бизнес должен быть просто
предупрежден о том что система работает в 99% случаев в онлайне а в 1% допускается
офлайновая работа но с уведомлением пользователя. Дескыть - щас нет сети и как только
будет так сразу все заявки улетят.
...
Рейтинг: 0 / 0
29.07.2016, 14:11
    #39282773
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dimitry SibiryakovИди от обратного: затачивай БД изначально на автономную работу с синхронизацией при первой появившейся возможности.
Я к этому и иду, эта репликация первый шаг в эту сторону, но это только часть функционала, который сейчас есть при работе в локалке. Как весь функционал сделаю - можно будет каждого юзера посадить работать автономно.
...
Рейтинг: 0 / 0
29.07.2016, 14:16
    #39282782
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
maytonЯ думаю с заказчиком просто прокашлять эту тему надо. Бизнес должен быть просто
предупрежден о том что система работает в 99% случаев в онлайне а в 1% допускается
офлайновая работа но с уведомлением пользователя. Дескыть - щас нет сети и как только
будет так сразу все заявки улетят.
Не совсем понял к какому посту это предложение. Если к скорости репликации, то тут так и есть, 99% онлайна вполне допустимо.
...
Рейтинг: 0 / 0
29.07.2016, 15:31
    #39282869
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
У файла есть уникальный идентификатор... https://msdn.microsoft.com/en-us/library/aa363788(v=vs.85).aspx
...
Рейтинг: 0 / 0
29.07.2016, 16:17
    #39282949
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
BarloneУ файла есть уникальный идентификатор... https://msdn.microsoft.com/en-us/library/aa363788(v=vs.85).aspx
Спасибо. Вроде то что надо. Надо затестить.

авторFile IDs are not guaranteed to be unique over time, because file systems are free to reuse them.
И тут МС на идшниках сэкономил. Как с PID. Зачем создавать потенциальную возможность сохранения ID при замене файла? Тем более что там два DWORD под ID выделено.
...
Рейтинг: 0 / 0
29.07.2016, 22:39
    #39283181
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Dima TBarloneУ файла есть уникальный идентификатор... https://msdn.microsoft.com/en-us/library/aa363788(v=vs.85).aspx
Спасибо. Вроде то что надо. Надо затестить.
Потесть plz меняется ли ID если move-нуть файл в пределах одного volume.
И еще move с одного volume на другой.
...
Рейтинг: 0 / 0
29.07.2016, 22:51
    #39283186
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить копирование файла?
Затестю все варианты, отпишусь по результату.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как отследить копирование файла? / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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