mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-01-03 14:03:09 +00:00
45 lines
1.1 KiB
C#
45 lines
1.1 KiB
C#
using Logging;
|
|
using Utils;
|
|
|
|
namespace AutoClient.Modes.FolderStore
|
|
{
|
|
public class QuotaCheck
|
|
{
|
|
private readonly ILog log;
|
|
private readonly string filepath;
|
|
private readonly CodexWrapper instance;
|
|
|
|
public QuotaCheck(ILog log, string filepath, CodexWrapper instance)
|
|
{
|
|
this.log = log;
|
|
this.filepath = filepath;
|
|
this.instance = instance;
|
|
}
|
|
|
|
public bool IsLocalQuotaAvailable()
|
|
{
|
|
try
|
|
{
|
|
return CheckQuota();
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
log.Error("Failed to check quota: " + exc);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
private bool CheckQuota()
|
|
{
|
|
var info = new FileInfo(filepath);
|
|
var fileSize = info.Length;
|
|
var padded = new ByteSize(Convert.ToInt64(fileSize * 1.1));
|
|
var space = instance.Node.Space();
|
|
var free = new ByteSize(space.FreeBytes);
|
|
|
|
log.Log($"Quota free: {free} - filesize: {padded}");
|
|
return free.SizeInBytes > padded.SizeInBytes;
|
|
}
|
|
}
|
|
}
|