Клиенты показывают объем, который ушел в сеть. Но если соединение порвалось, то клиент спрашивает у сервера, сколько сервер успел закачать и продолжает закачку уже с этого места.
Сообщите, пожалуйста, об этой проблеме в нашу службу поддержки (для этого, нажмите по иконке Диска в трее, затем «Справка» — «Сообщить в Яндекс об ошибке»). Это позволит нам разобраться с проблемой, как можно быстрее.
Есть несколько вариантов решить эту задачу: первый — предложен вами, второй — подсчитывать размер каждый раз при обращении (так делают операционные системы).
Первый вариант дорогой, т.к. IO-операций много, и на одну IO операцию нужно обновлять всю иерархию папок до корня. Кроме того, для избежания неконсистентных данных при параллельных IO-операциях нужно будет ставить локи, что не убыстряет работу.
Второй вариант проще в реализации, но обходить все дерево папки — дорого.
Спасибо, за предложение. Уже сейчас можно просматривать содержимое архива через просмоторщик документов, возможно, частично это решит вашу задачу. Если нет, то расскажите, что вы предполагаете дальше делать с распакованными файлами?)
Подсчет места, занимаемого папкой, довольно тяжелая операция, поэтому мы решили не делать ее на каждое выделение папки. Но мы постараемся учесть Вашe пожелание и придумать дешевый способ показа.
Про загрузку папкой тоже пока не могу ничего обещать, но мы подумаем в эту сторону.
Контрольная сумма считается и на клиенте, и на сервере. Сначала клиент посылает контрольную сумму, если mpfs понимает, что такой файл уже есть, то файл не заливается заново. Если такого файла нет, то заливается и контрольная сумма пересчитывается на сервере. Пересчитываем на сервере, т.к. не все клиенты умеют подсчитывать контрольную сумму (например, при загрузке через браузер).
Конечно, в реальности все несколько сложней, но мы стараемся прикладывать все усилия, чтобы архитектура оставалась целостной и не порастала костылями. Пока получается;)
Первый вариант дорогой, т.к. IO-операций много, и на одну IO операцию нужно обновлять всю иерархию папок до корня. Кроме того, для избежания неконсистентных данных при параллельных IO-операциях нужно будет ставить локи, что не убыстряет работу.
Второй вариант проще в реализации, но обходить все дерево папки — дорого.
Про загрузку папкой тоже пока не могу ничего обещать, но мы подумаем в эту сторону.