Каков наилучший метод для определения использования ресурса размера файла в SenseNet? - PullRequest
0 голосов
/ 24 апреля 2018

Чтобы взимать плату за использование ресурсов, например, за хранение базы данных, нам нужно знать размер файлов нашего клиента.Существует ли простой способ подсчета использования ресурсов для рабочей области клиента?

1 Ответ

0 голосов
/ 24 апреля 2018

Если вы просто хотите узнать размер файлов в рабочей области, вы можете использовать приведенную ниже функцию, хотя общее использование ресурсов, вероятно, намного выше.

Рассчитать размер файла - полезно, но не близкок общему объему хранилища.

public static int DocumentFileSizeMB(string path)
{
    var size = 0;

    var results = ContentQuery.Query(SafeQueries.TypeInTree, null, "File", path);
    if (results != null && results.Count > 0)
    {
        var longsize = results.Nodes.Sum(n => n.GetFullSize());
        size = (int)(longsize / 1000000);
    }

    return size;
}

Чтобы получить лучшее представление о ресурсах дискового пространства, вызовите функцию SenseNet GetTreeSize() на узле.Однако это не дает полного использования ресурсов из-за другого содержимого, связанного с вычислением размера узла, но не хранимого под узлом, такого как таблицы индекса, записи журнала и т. Д.

Лучший метод, но все еще не полное использование ресурса.

public static int NodeStorageSizeMB(string path)
{
    var size = 0;

    var node = Node.LoadNode(path);
    if (node != null)
    {
        size = (int)(node.GetTreeSize() / 1000000); // Use 10**6 as Mega, not 1024*1024, which is "mebibyte".
    }

    return size;
}
...