forked from Kieran/void.cat
Use pre-signed url
This commit is contained in:
parent
2162f5f964
commit
007e11571b
@ -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)
|
||||||
|
@ -27,15 +27,23 @@ 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)
|
||||||
{
|
{
|
||||||
var fs = await _fileStore.Open(new(file.Id, Enumerable.Empty<RangeRequest>()), CancellationToken.None);
|
try
|
||||||
if (file.Size != (ulong) fs.Length)
|
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Updating file size {Id} to {Size}", file.Id, fs.Length);
|
var fs = await _fileStore.Open(new(file.Id, Enumerable.Empty<RangeRequest>()), CancellationToken.None);
|
||||||
var newFile = file with
|
if (file.Size != (ulong)fs.Length)
|
||||||
{
|
{
|
||||||
Size = (ulong) fs.Length
|
_logger.LogInformation("Updating file size {Id} to {Size}", file.Id, fs.Length);
|
||||||
};
|
var newFile = file with
|
||||||
await _fileMetadata.Set(newFile.Id, newFile);
|
{
|
||||||
|
Size = (ulong)fs.Length
|
||||||
|
};
|
||||||
|
|
||||||
|
await _fileMetadata.Set(newFile.Id, newFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Failed to fix file {id}", file.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user