yar229/WebDavMailRuCloud

Некорректное отображение занятого места на Яндекс.Диске

Pterko opened this issue · 1 comments

Приветствую!

Имеется проблема, из-за которой сервер возвращает некорректное значение quota-used-bytes при запросе занятого места на диске (а именно, при выполнении запроса PROPFIND /) при условии, что работа ведётся через протокол YadWeb.

Насколько я понял, проблема находится здесь:
https://github.com/yar229/WebDavMailRuCloud/blob/master/WebDavMailRuCloudStore/StoreBase/LocalStoreCollectionProps.cs#L66

               new DavQuotaUsedBytes<T>
                {
                    Getter = (cntext, collection) => 
                        collection.DirectoryInfo.Size
                    //IsExpensive = true  //folder listing performance
                },

В случае Яндекс.Диска, значение Size, получаемое из DirectoryInfo будет равно нулю. Желаемое значение возможно получить, изменив геттер на collection.FullPath == "/" ? CloudManager.Instance(cntext.Session.Principal.Identity).GetDiskUsage().Used.DefaultValue : long.MaxValue. Но, насколько я понимаю, в таком случае это может привести к проблемам производительности и совместимости с протоколом Mail.ru.

пробуйте 1.11.0.28