|
|
|
@ -26,8 +26,11 @@ namespace Volo.Abp.BlobStoring.Database |
|
|
|
{ |
|
|
|
var container = await GetOrCreateContainerAsync(args.ContainerName, args.CancellationToken); |
|
|
|
|
|
|
|
var blob = await DatabaseBlobRepository.FindAsync(container.Id, args.BlobName, |
|
|
|
args.CancellationToken); |
|
|
|
var blob = await DatabaseBlobRepository.FindAsync( |
|
|
|
container.Id, |
|
|
|
args.BlobName, |
|
|
|
args.CancellationToken |
|
|
|
); |
|
|
|
|
|
|
|
var content = await args.BlobStream.GetAllBytesAsync(args.CancellationToken); |
|
|
|
|
|
|
|
@ -40,58 +43,72 @@ namespace Volo.Abp.BlobStoring.Database |
|
|
|
} |
|
|
|
|
|
|
|
blob.SetContent(content); |
|
|
|
await DatabaseBlobRepository.UpdateAsync(blob); |
|
|
|
|
|
|
|
await DatabaseBlobRepository.UpdateAsync(blob, autoSave: true); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
blob = new DatabaseBlob(GuidGenerator.Create(), container.Id, args.BlobName, content); |
|
|
|
await DatabaseBlobRepository.InsertAsync(blob); |
|
|
|
await DatabaseBlobRepository.InsertAsync(blob, autoSave: true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public override async Task<bool> DeleteAsync(BlobProviderDeleteArgs args) |
|
|
|
{ |
|
|
|
var container = |
|
|
|
await DatabaseBlobContainerRepository.FindAsync(args.ContainerName, |
|
|
|
args.CancellationToken); |
|
|
|
var container = await DatabaseBlobContainerRepository.FindAsync( |
|
|
|
args.ContainerName, |
|
|
|
args.CancellationToken |
|
|
|
); |
|
|
|
|
|
|
|
if (container == null) |
|
|
|
{ |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
return await DatabaseBlobRepository.DeleteAsync(container.Id, args.BlobName, |
|
|
|
args.CancellationToken); |
|
|
|
return await DatabaseBlobRepository.DeleteAsync( |
|
|
|
container.Id, |
|
|
|
args.BlobName, |
|
|
|
autoSave: true, |
|
|
|
cancellationToken: args.CancellationToken |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
public override async Task<bool> ExistsAsync(BlobProviderExistsArgs args) |
|
|
|
{ |
|
|
|
var container = |
|
|
|
await DatabaseBlobContainerRepository.FindAsync(args.ContainerName, |
|
|
|
args.CancellationToken); |
|
|
|
var container = await DatabaseBlobContainerRepository.FindAsync( |
|
|
|
args.ContainerName, |
|
|
|
args.CancellationToken |
|
|
|
); |
|
|
|
|
|
|
|
if (container == null) |
|
|
|
{ |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
return await DatabaseBlobRepository.ExistsAsync(container.Id, args.BlobName, |
|
|
|
args.CancellationToken); |
|
|
|
return await DatabaseBlobRepository.ExistsAsync( |
|
|
|
container.Id, |
|
|
|
args.BlobName, |
|
|
|
args.CancellationToken |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
public override async Task<Stream> GetOrNullAsync(BlobProviderGetArgs args) |
|
|
|
{ |
|
|
|
var container = |
|
|
|
await DatabaseBlobContainerRepository.FindAsync(args.ContainerName, |
|
|
|
args.CancellationToken); |
|
|
|
var container = await DatabaseBlobContainerRepository.FindAsync( |
|
|
|
args.ContainerName, |
|
|
|
args.CancellationToken |
|
|
|
); |
|
|
|
|
|
|
|
if (container == null) |
|
|
|
{ |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
var blob = await DatabaseBlobRepository.FindAsync(container.Id, args.BlobName, |
|
|
|
args.CancellationToken); |
|
|
|
var blob = await DatabaseBlobRepository.FindAsync( |
|
|
|
container.Id, |
|
|
|
args.BlobName, |
|
|
|
args.CancellationToken |
|
|
|
); |
|
|
|
|
|
|
|
if (blob == null) |
|
|
|
{ |
|
|
|
|