Use pre-signed url

This commit is contained in:
Kieran 2022-07-25 20:37:19 +01:00
parent 2162f5f964
commit 007e11571b
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941
2 changed files with 21 additions and 11 deletions

View File

@ -66,12 +66,14 @@ public class S3FileStore : StreamFileStore, IFileStore
{ {
if (!_config.Direct) return ValueTask.FromResult(new EgressResult()); if (!_config.Direct) return ValueTask.FromResult(new EgressResult());
var ub = new UriBuilder(_config.ServiceUrl!) var url = _client.GetPreSignedURL(new()
{ {
Path = $"/{_config.BucketName}/{request.Id}" BucketName = _config.BucketName,
}; Expires = DateTime.UtcNow.AddHours(1),
Key = request.Id.ToString()
});
return ValueTask.FromResult(new EgressResult(ub.Uri)); return ValueTask.FromResult(new EgressResult(new Uri(url)));
} }
public async ValueTask<PagedResult<PublicVoidFile>> ListFiles(PagedRequest request) public async ValueTask<PagedResult<PublicVoidFile>> ListFiles(PagedRequest request)

View File

@ -26,6 +26,8 @@ public class FixSize : IMigration
{ {
var files = await _fileMetadata.ListFiles<SecretVoidFileMeta>(new(0, int.MaxValue)); var files = await _fileMetadata.ListFiles<SecretVoidFileMeta>(new(0, int.MaxValue));
await foreach (var file in files.Results) await foreach (var file in files.Results)
{
try
{ {
var fs = await _fileStore.Open(new(file.Id, Enumerable.Empty<RangeRequest>()), CancellationToken.None); var fs = await _fileStore.Open(new(file.Id, Enumerable.Empty<RangeRequest>()), CancellationToken.None);
if (file.Size != (ulong)fs.Length) if (file.Size != (ulong)fs.Length)
@ -35,9 +37,15 @@ public class FixSize : IMigration
{ {
Size = (ulong)fs.Length Size = (ulong)fs.Length
}; };
await _fileMetadata.Set(newFile.Id, newFile); await _fileMetadata.Set(newFile.Id, newFile);
} }
} }
catch (Exception ex)
{
_logger.LogError(ex, "Failed to fix file {id}", file.Id);
}
}
return IMigration.MigrationResult.Completed; return IMigration.MigrationResult.Completed;
} }