This commit is contained in:
Kieran 2022-07-06 22:52:21 +01:00
parent 9fc77e883a
commit 991a6c7713
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941
2 changed files with 39 additions and 0 deletions

View File

@ -132,6 +132,7 @@ services.AddAuthorization((opt) =>
services.AddTransient<RazorPartialToStringRenderer>();
services.AddTransient<IMigration, PopulateMetadataId>();
services.AddTransient<IMigration, MigrateToPostgres>();
services.AddTransient<IMigration, FixSize>();
// file storage
services.AddStorage(voidSettings);

View File

@ -0,0 +1,38 @@
using VoidCat.Model;
using VoidCat.Services.Abstractions;
namespace VoidCat.Services.Migrations;
public class FixSize : IMigration
{
private readonly ILogger<FixSize> _logger;
private readonly IFileMetadataStore _fileMetadata;
private readonly IFileStore _fileStore;
public FixSize(ILogger<FixSize> logger, IFileMetadataStore fileMetadata, IFileStore fileStore)
{
_logger = logger;
_fileMetadata = fileMetadata;
_fileStore = fileStore;
}
public async ValueTask<IMigration.MigrationResult> Migrate(string[] args)
{
var files = await _fileMetadata.ListFiles<SecretVoidFileMeta>(new(0, int.MaxValue));
await foreach (var file in files.Results)
{
var fs = await _fileStore.Open(new(file.Id, Enumerable.Empty<RangeRequest>()), CancellationToken.None);
if (file.Size != (ulong) fs.Length)
{
_logger.LogInformation("Updating file size {Id} to {Size}", file.Id, fs.Length);
var newFile = file with
{
Size = (ulong) fs.Length
};
await _fileMetadata.Set(newFile.Id, newFile);
}
}
return IMigration.MigrationResult.Completed;
}
}